I have started to work on a project of mines, which consists in implementing the stabilization of a single axis gimbal using a generic microcontroller (STM32 or
Arduino Uno).
The gimbal axis is driven by a sensorless three phase brushless DC (BLDC) motor, while on it's shaft there is a generic payload provided with an IMU board (3 axes gyros + 3 axes accelometers), which can give feedback to the microcontroller about the angular rates and accelerations of the motor.
The microcontroller is feeding an inverter bridge (L6234) in order to drive the BLDC motor.
I have googled a bit about this topic and there are so many solutions out there for high speed applications, but not that much for low ones.
Moreover, the thing I really do not understand is about the control of the BLDC motor, so my questions are:
- Can I use a sensorless control of the motor, by sensing the back EMF
even if the motor is spinning very low? - How can I energize properly the phases of the BLDC motor, from standstill, if it is sensorless?
- Can I use the IMU for finding out how to spin the BLDC motor properly without counter rotations (meaning that I know when to commutate)?
- How can I hold the motor standstill when reaching the setpoint?
- Should I implemebt a speed controller or a torque (current) one for such an application (sensorless driving of BLDC motors at low speeds)?
Could you give me any help, please?
Best Answer
Technically, yes you can. However, in practice, it is not possible/difficult. The reason is that because the back emf voltage is so low, you need to amplify it (extra circuits) or work with low resolution data. Since the resolution is lowered, you get cogging because it becomes difficult to identify exact point of zero crossing. Also, back emf can't be lower than the noise in your system, you won't detect it.
You will do an open-loop start-up sequence and hope that the motor catches up. Continue open-loop operation until a critical back emf speed is achieved.
IMU generally gives information about accelerations. So, you will integrate that to find the rotor positions. This operation will take some time and there will be calculation errors (You'd get cogging in BLDC motors). I'd say, this method would be more difficult than the back-emf method. IMU method is better for stepper motors. (Stepper motors + IMU = nice gimbal system)
You will switch the mosfets at a constant frequency. The motor will move at a constant speed. Is that what you mean by this question?
BLDC motors are inefficient and hard to control at low speeds. Why not use a stepper motor? If you really have to use BLDC, though, use both current and back emf method combined. They have their benefits.