2018-12-21 03:09 PM
Hello All,
I am using the Motor Control SDK and Workbench with the Nucleo F446 evaluation board and X-Nucleo IHM07M1 motor driver board, together with a PMSM 8 pole servo motor.
The issue I have is that when I set the torque ref (Iq) to > 0 and flux ref (Id) to 0 in the advanced tab of the workbench and press "start motor" the rotor fixates in the same way as in the alignment phase. When I turn the rotor shaft by hand it "snaps" into position at regular angle intervals.
To check for encoder and current measurement problems, I inserted some debugging code into the FOC algorithm to dump encoder position, Iq and Id values. This is a result from the debugging, where you can the rotor fixating and Iq and Id settling on their commanded values.
The thing is that I do not understand how the torque vector can settle on 10000 without the rotor starting to spin, and it should definitely not snap into position. The latter shall as I understand it happen when Iq = 0 and Id >0, but not in this case.
Does anybody have any ideas what the issue might be here?
Thanks,
2019-01-03 04:24 PM
Hello again,
after some investigation of this and inspection of the ST code, it seems that the encoder alignment algorithm used by ST does not work properly. And when tested empirically by manually aligning the rotor to 0 degrees electrical angle by applying current to the U and V phases (U+ and V-), the resulting rotor angle differs by 60 electrical degrees from the one resulting from setting encoder angle to 0 degrees in ST Motor Control Workbench.
It is very odd that the ST code does not appear to be correct, but that is nevertheless the case.
What I will do now is probably to exchange the ST code with my own which statically will align the rotor to 0 degrees electrical angle by applying current to the U and V phases (U+ and V-).
If ST has some feedback on this it would be nice.
Thanks,
2019-01-24 09:12 AM
Dear Pax,
Thanks for your feedback,
We will check,
Claire
2019-01-24 01:12 PM
Hello Claire,
I have worked a bit more with this and I got the system to work with another PMSM motor. The motor used above has 8 poles and a 10 000 PPR encoder. The winding resistance (RS) is around 1 Ohm and the inductance (RH) around 4 mH, so low figures. Possibly that could play into the problems.
I tested with another PMSM motor, with 10 poles, RS=6 Ohm, RH=20mH, 2048 PPR encoder. That worked fine.
In the process of reviewing this situation I also found a bug on the X-Nucleo IHM07M1 PCB: the phase current measurement shunt resistors are rated at 1W according to the schematic, but at 2.8A current they consume 2.6W.
2021-06-15 01:15 AM
The question has been moved from the "Motor Control Hardware" section to the "STM32 Motor Control" section (the question is about the STM32 MC SDK).
Best regards