cancel
Showing results for 
Search instead for 
Did you mean: 

Speed feedback error, PLL speed overshoot at startup exit

MicheleBTQ
Associate II

[PN]:

NUCLEO G071RB

X-NUCLEO-IHM08M1

Own Motor (4mR, 250uH, 1200rpm, 30Apk, 5pp, inertia known, friction guessed)


[VERSION]: Version of MCSDK 6.4.2, STM32 FW 1.6.3
[TOOL]: CubeMX 6.17.0, Motor Control Workbench Version: 6.4.2 Build: 260313.082202

[DETAILS]:

Settings: 20kHz, 100us regulator (2PWM), ADC Sampling 7.5adcclk (234ns), Sensing config see attached.

After startup, fails with "Speed Feedback". Plotted graphs show good BEMF response, proper angle and reasonable speed signals (see graphs attached), angle of PLL are somewhat behind OpenLoop. Arround start-up exit speed of 432rpm, the calculated speed of the PLL rises quickly while currents are being reduced, shortly after motor stops.

The set target speed in the Motor Pilot is 510 rpm. I tried to switch off UART interface to check if it is linked to MCU load, no success. Debug says "bemfConsistent = true, isSpeedReliable = false"

I tried to change PLL settings as described in the wiki, but could not observe any change.


[EXPECTED BEHAVIOR]: Switch smoothly to FOC and hold desired speed.
[HOW TO REPRODUCE]: see above

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @MicheleBTQ,

The point about using the motor profiler relates to the fact that the PID gains are also computed from the motor inertia and friction values.
As you mentioned, the switch from open-loop to closed-loop operation is complete, but the speed decreases after the transition. Did you try to increase the speed regulator PID gains to improve response?

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

View solution in original post

6 REPLIES 6
GMA
ST Employee

hello @MicheleBTQ,

If you have another STM32 control board, you can run the motor profiler (described in Motor Profiler Application Note chapter available through "Workbench tool">About>Documentations>Documentation>"User manual" tab)?
The motor profiler is available for all series except STM32F0, STM32G0, and STM32C0.
Did you reduce the G2 gain when referring to the PLL settings as described in the wiki?
Did you try using a higher speed target, defined in the pilot or in Workbench Drive Settings > Speed regulator?

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

Hi,

thank you for your answer. I have another board, but I read that profiling does not work with motors with that low inductance and resistance. Is that different with the new SDK versions? Apart from that, I don't see much sense, the motor is completely measured using micro-ohm-meter, LCR meter, intertia comes from CAD and BMEF constant has been measured at 100rpm steps up to full rpm.

 

I did reduce G2 gain as described, no difference could be observed.

I tried also using higher rpm, and shorter or longer startup ramps, result is always the same. 

 

Thanks and best regards

Michele

MicheleBTQ
Associate II

Sometimes is see also that the motor stops after the failed startup-exit-transition, but it is being still commuted and the PLL still generates a RPM signal. But there's no visble BEMF anymore and currents are near zero.

Hello @MicheleBTQ,

The point about using the motor profiler relates to the fact that the PID gains are also computed from the motor inertia and friction values.
As you mentioned, the switch from open-loop to closed-loop operation is complete, but the speed decreases after the transition. Did you try to increase the speed regulator PID gains to improve response?

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA
MicheleBTQ
Associate II

Profiling solved the topic. Appearently the profiler can also profile motors with very low inductance, other than stated in the documentation.

Hello @MicheleBTQ ,

Thank you for your feedback.

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA