I'm looking at making a BLDC controller with an MCU, and have be reading through the atmel guide AVR444 which steps through a design and software needed for a sensorless back-emf timing controlled driver.
I'm broadening my understanding of the subject. The application I am looking at is for a RC quadcopter, so the level of speed precision isn't critical as long as the overall thrust can vary with a pretty quick response. The load isn't going to vary much either. The motor will be 3 phase (Y windings), around 5-10V, <10A I imagine.
I understand the concept of back-emf in the floating windings to sync up rotating the electrical field. However, my understanding is also that the torque experienced at the rotor is proportional to difference in rotation between the electrical field and the permanent rotor field. So the rotor usually lags slightly behind, causing torque to force it to try and catch up.
The AVR444 app note designs the software to drive the motor blind (using a fixed timings) to begin with, and speed it up to a point then let the back-emf control software to take over. This makes perfect sense to me, but what I am curious about is what is the limitation of driving the motor blind?
As long as there isn't a huge difference between the rotor rotational speed and the electrical field rotational speed, the torque will speed up the rotor and force it to match the electrical field. Since the electrical field is controlled by the software, what would be the issue with blindly driving the electrical field and assuming the rotor keeps up? It is likely to slip rotations every now and then I imagine, but at reasonably high speeds (1000 to 5000rpm) and with some degree of inertia, surely this will average out? If the speed varies by say 100rpm back an forth, I'm not too fussed.
Using a fixed voltage for the motor drive, and a fixed rotation frequency, I expect the current in the windings to vary with the amount of torque needed for the rotor to match pace with the electrical rotation. A current limiter on the power supply could stop anything too crazy.
Thoughts? I realize the preferred method is to use back-emf in a control loop, but I'm looking for an idea as to what the limitations of not using a control loop and blindly driving a BLDC motor would be.
EDIT:
In addition to being an interesting research point, it also has practical use. Blindly driving BLDC motors is a fairly trivial task, that a single control MCU could perform. The current design I'm looking at requires small, separate MCUs to run tight control loops per motor. In a design with 4 motors (possibly more), it's the difference between 1 and 5 MCUs on the board.
Best Answer
Driving a motor blind is a bad idea for several reasons:
With position feedback, the magnetic field can be kept near the optimum angle, which means the current goes to actually pushing the motor instead of holding it in place. Put another way, the amplitude is just what it needs to be to keep the motor spinning at the desired speed in the maximum torque configuration. When you don't know where the rotor is, you end up over-driving the motor.
Another way to look at this is that the driving field has a sine and cosine component. Let's say the cosine is the part 90° ahead of the rotor and the sine part is where the rotor currently is. Any phase angle can be thought of as just a different mix of the sine and cosine components. However, only the cosine component moves the motor. The sine component only causes heating and represents wasted power.
However, at this point it's right on the edge and any change will cause less torque. If the load on the motor increases, the rotor will get more than 90° behind, which causes less torque, which causes it to get even more behind. Over the next 1/4 turn of slip, the forward torque will decrease to zero. Then for the next 1/2 turn after that, the driving torque actually pushes the rotor backwards.
At this point you're totally screwed. Remember you got into this predicament in the first place because the driving torque couldn't keep up with load, and you've just experienced a net negative drive over the last 3/4 turn. If the load is suddenly removed and if you're very lucky, the rotor might be able to speed up to sync up with the drive in the next 1/4 cycle, but certainly not if whatever condition caused the problem in the first place is still present.
Once the rotor gets out of sync, the net torque over any one rotation is 0. The product of two sine waves of different frequency always averages to 0 regardless of the phase angle between them.