2020-08-28 04:19 AM
Hi!
I'm working with custom HW built for sensorless control of SM-PMSM. I've adopted MCSDK library to run it and tuned controllers + observers to achieve most of my requirements. Performance is quite good, but occasionally the motor just stalls (at startup or due to unpredicted load), while still pretending "ramping up" to desired speed. I would describe it as the observer got fooled recreating angle and speed from its own setpoints not from the current state and blindly drives the output further and further just buzzing the motor.
Missed something in the SDK?
I though that this probably is one of the typical limitations of current sensorless algorithms and i cannot do anything with that / must live with that / give up some of my requirements. But maybe i missed something and does anyone know of some "gotcha" or met similar problem and dealt with that / knows the cure? Could it be easily solved by some settings?
Possible solutions exceeding the SDK?
Is there a way of aiding additional BEMF signals from phase voltages sensing to the observer to improve tracking? I'm thinking of similar to TI's FAST approach which uses filtered (out of PWM) phase voltage signals that could potentialy improve tracking performance. Of course, filter's phase delay would need compensation in the estimation. Does anyone know of open observer which could be used with BEMF signals and replace ST's closed one? Or could i somehow inject those into Valphabeta state before running ST observer?
Solved! Go to Solution.
2020-09-15 05:28 AM
Dear Mateusz
One of our engineer answered this:
“
It seems that everything was done in the right way as most of your requirements have been achieved.
The only limitation regarding the Observer-PLL, is that it needs a minimum level of speed to work efficiently (it depends on the motor and the associated Power Board).
As your problem seems happen during the startup phase with an unpredicted load, one suggestion could be to tune the startup parameters.
You may also try to tune the Observer gains and the thresholds used to consider that the speed measures are in the right range of acceptance (see Workbench GUI interface / Speed sensing).
By adding more input like the phase voltages to the observer, it will for sure improve the B-EMF estimation. This approach is not yet supported in our current MCSDK.
A registration and approbation from ST are needed to download the observer source code.
“
Does it answer well to your question?
Best regards
Laurent Ca...
2020-09-14 03:18 AM
Dear Mateusz
Just in case, what version of MC-SDK are you using?
Best regards
Laurent Ca...
2020-09-14 03:41 AM
5.4.4
Currently, i implemented some kind of workaround giving the controller more time to start by moving all the calibrations just after board power-up, not in start procedure and most importantly, by specifying MUCH higher current in open loop ramp-up (almost motor max current) and keeping it constant for specified time before the next step with loop closing procedure, minimizing occurrences of those buzzing fails to ~1% of desired startups (from about 5-10%).
The negative effect is that i always trip power supply current limits, when bench testing and in 90% startup cases this high current ramp is unnecessary.
2020-09-15 05:28 AM
Dear Mateusz
One of our engineer answered this:
“
It seems that everything was done in the right way as most of your requirements have been achieved.
The only limitation regarding the Observer-PLL, is that it needs a minimum level of speed to work efficiently (it depends on the motor and the associated Power Board).
As your problem seems happen during the startup phase with an unpredicted load, one suggestion could be to tune the startup parameters.
You may also try to tune the Observer gains and the thresholds used to consider that the speed measures are in the right range of acceptance (see Workbench GUI interface / Speed sensing).
By adding more input like the phase voltages to the observer, it will for sure improve the B-EMF estimation. This approach is not yet supported in our current MCSDK.
A registration and approbation from ST are needed to download the observer source code.
“
Does it answer well to your question?
Best regards
Laurent Ca...
2020-09-15 06:02 AM
Sure, thanks for the answer.
I was trying to guarantee that minimum speed by forcing the rotor with higher current for fixed time blocking the closed-loop switchover, as said earlier. I'll stick with that, maybe tune as much as i can out of it considering your extra tips and I'll wait for future improvements of the MCSDK.
I hope for some solution with performance similar to TI's Instaspin, as it really works seamlessly with the same application even at zero speed and reversals, but ultimately TI's MCU is not an option for me, because while having smooth startup, it ***** in everything besides that...
Regards,
Mateusz
2021-06-15 12:37 AM
The question has been set only to the "STM32 Motor Control" topic (the question is only about the STM32 MC SDK).
Best regards