Hello All,
I am new to Motor control of BLDC/PMSM and FOC control. My understanding so far is that for startup, we initially provide high RPM (Open loop Ramp), which will make motor consume more current, makes motor physical parameters like inertia less, just to start the motor. And, then we transition to closed loop i.e we get feedback from system about current and motor speed, and simultaneously PI controller for speed and current start to regulate speed and current.
But, what if this transition did not happened and motor continues to run in FOC open loop (no regulation of current). We still can command to any rpm and motor will run that but it should not be safe. I did see the phase current during open loop, which were high as compared to closed loop, but they were within motor limits.
Please help me understand the consequence of continuous open loop operation? And how to figure out the root cause for motor not transitioning to closed ?
Thanks in advance!
You don’t need to start in open loop and switch to closed loop. It’s all closed loop from the start.
This assumes you have a sensor e.g magnetic or encoder or hall measuring the position of the shaft.
Where I’ve seen something similar to what you describe is with sensorless foc or sensorless trapezoidal. Sensorless required you to measure back emf that is induced in the non driven phase. This doesn’t work at slow speeds because the bemf is too small to measure. So, in this case you can start openloop and switch to sensorless when bemf becomes measurable
Yes, Sorry I should have mentioned in some detail. Open loop ramp which I was mentioning was in sensor-less foc.
Yes, BEMF is negligible at lower rpm. In my case, i am able to command BLDC at even 1000 rpm in open loop start, but it still is not transitioning to closed loop after some time (induced BEMF should be somewhat significant at 1000 rpm), Motor keeps on running at 1000 rpm. If I try to go higher, motor stalls. I tried to lower the threshold limits, even excluding the stall function, but did not worked so far.
One more thing is the load on motor is higher than usual (i.e I am testing the motor at negative 30 temp, around 0.3 Nm) , so temperature / torque might be some factor.
So wanted to understand how motor behaves in sensorless open loop control.
Do you might be having suggestion on how to figure out ? or anything about sensorless open loop ?
Thank you!
I get the impression that you are not talking about a board running the simplefoc library as what you are trying to do is something I don’t think simplefoc supports yet .
What firmware are you using?
The consequences of continuous open loop running is that you are totally guessing what current is required to keep the motor running. This is particularly tricky if load changes. If the current is too low, then the motor will stall or slip. If the current is too high then you are using more juice than you need and the motor will get hotter.
It is a bit difficult for us to help figure out why your motor isn’t transitioning if it is using some 3rd party firmware that we don’t know anything about.
About 4 years ago, when using VESC firmware, I had a motor that transitioned from hall to sensorless and from memory 1000rpm was very close to the lower limit for sensorless but I imagine it is very motor specific. I’d continue to play with the BEMF threshold and rpm thresholds.