cancel
Showing results for 
Search instead for 
Did you mean: 

Motor only moving when quadrature encoder is rotated

UmutU
Associate III

I am trying to move a BLDC motor with encoder feedback in closed loop. When passing a speed/torque reference nothing happens. But when I move/rotate the encoder, the motor starts spinning according to the speed of the encoder rotating. The motor is otherwise just locked in its place. I've clicked through several settings, read through many posts, the only "clue" I found was one poster saying that they had to check "Reverse counting direction" under the speed sensing settings. Well, that doesn't do much other than changing the direction the motor spins whenever the encoder is being rotated. I am probably missing something but how could I solve this issue?

For the record: The motor moves without any issues in sensorless mode.

My setup is as follows: stm32g431rb with an IHM16M1, a BLDC motor, an AMT103V quadrature encoder. Also using Motor Control Workbench 5.4.8 (I already tried 6.1.2, motor profiler is worse or rather non functional most of the time and when it works, the results are the same)

1 ACCEPTED SOLUTION

Accepted Solutions

Hello UmutU,

Thank you for the picture and the video, I think I have a better understanding of your issue. Are you using the MotorPilot to control your motor ? Does it give back any error ?

I really recommend the use of MCSDK 6.1.2. Even if the MotorProfiler is less stable, the generated firmware by Workbench is much more efficient and the MotorPilot provides interesting features that could be useful in your case, such as the possibility to see the currents going to your motor.

In the meantime, the way I see it maybe the counter torque applied by the encoder is too high. As the frame of your encoder is loose, and not fixed to your motor, the system struggles.
Have you tried holding the frame of the encoder when starting the motor ? Ideally the frame of the motor and the encoder should be considered the same (they are both not moving).

Try taking a look at your currents when starting the motor, to see if your motor is receiving current or if the issue comes from the firmware.

Hope this will help,
Gaël A.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

View solution in original post

12 REPLIES 12
Gael A
ST Employee

Hello UmutU,

Since your motor runs in sensorless, maybe your motor phases are not plugged in the right order. Please check that each phases of your motor is correctly plugged to the corresponding phase of the IHM16 power board. Indeed, it doesn't matter for sensorless mode, but it does for Encoder.

Hope this will help,
Gaël A.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Well, swapped the cables as much as I could and the result is the same. The motor only moves if I manually rotate the encoder by putting my finger inside the hollow shaft (sorry for this sentence). I might have worded my initial post a bit too long. The motor does not move until the encoder is being moved.

Hello UmutU,

I don't really get what you are saying. Is your encoder fixed to your motor shaft or is it on the side ?
Otherwise, may I ask you to send a picture of your setup so I can get a better idea on what you are working on please ?

Regards,
Gaël A.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Hey, I added a picture of my setup. Yes, it sucks and is horrible. We are a group of students struggling together on this with different setups/motors/boards, so budget is as low as one can imagine... I also know that the cables look bad but they are correctly attached as I get a good reading from the encoder.PXL_20230724_095920486.jpg

The AMT103v encoder is on top of the motor. We 3D printed some mounts which keeps the encoder on top. I also added a video on what I meant with "the motor only turns when the encoder is being turned." Conventional methods with speed or torque ramps apply some current to the motor but the motor does not move at all. It then is just stuck a little bit in its initial position. The only way to get the motor moving/vibrating/spinning/overcurrenting at all is shown in the video. 

Hello UmutU,

Thank you for the picture and the video, I think I have a better understanding of your issue. Are you using the MotorPilot to control your motor ? Does it give back any error ?

I really recommend the use of MCSDK 6.1.2. Even if the MotorProfiler is less stable, the generated firmware by Workbench is much more efficient and the MotorPilot provides interesting features that could be useful in your case, such as the possibility to see the currents going to your motor.

In the meantime, the way I see it maybe the counter torque applied by the encoder is too high. As the frame of your encoder is loose, and not fixed to your motor, the system struggles.
Have you tried holding the frame of the encoder when starting the motor ? Ideally the frame of the motor and the encoder should be considered the same (they are both not moving).

Try taking a look at your currents when starting the motor, to see if your motor is receiving current or if the issue comes from the firmware.

Hope this will help,
Gaël A.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Doesn't the video look like position control?

hth

KnarfB

Thought so too at first, but the entire set up is in torque/speed control, which is ultimately what I need at the end.

So, I redid the profiling with 5.4.8 and created a new project in 6.1.2. Same issue. The motor does get current because sometimes there is a clean movement (not a full rotation) which then stops again, most of the time the motor barely moves a degree and is then "locked" you could say. I did try holding down the encoder and making sure the encoder stays firm on the motor. Sadly, nothing. Maybe there isn't enough current going through?

What I also noticed was changing the "Alignment electrical angle of Id" parameter changes the motor behavior for the alignment of the motor. I set it to 270 and the motor moves more for the alignment. I have absolutely 0 idea if that has to mean something though.

UmutU
Associate III

@Gael A I honestly still struggle with this. Do you have any other ideas or maybe updates?