I have been doing some preliminary research for a project and am trying to understand how sensor-less speed control of brushed DC motors can be done by inspecting the back EMF.
Where I am at with my understanding is that there are two key methods in use for this.
Measure Current & Voltage and do a calculation based on coil resistance.
I believe in this approach the back EMF is calculated by measuring the average voltage across the motor and using information about the average current and coil resistance to get the back EMF. i.e. $$V_{EMF} = V_{motor}-I_{motor} \times R_{coil}$$ This approach sounds pretty straight foward to implement but I found references that accuracy is compromised with changes in temperature due to resistance changes in the motor windings, this makes sense but I don't have a feel for what the temperature co-efficient of motor coils is, is it possible to just assume the temperature co-efficient of copper?
Measure the voltage across the motor while not being driven
This sounds like the more advanced approach but I don't quite understand how it works. I believe the idea is meant to be during the switch off period it is possible to directly measure the back-emf after waiting for "switching noise" to subside. What I don't understand is why the voltage drop from the coil resistance doesn't mess up this value.
I have been using the following resources for reference.
- AN893 - Low-Cost Bidirectional Brushed DC Motor Control Using PIC16F684
- AN10513 Brushed DC motor control using the LPC2101
- AB-021 : Measuring RPM From Back EMF
The last of these links portrays a basic uni-directional PWM control with a low side switching. Best of all the article includes some scope plots (if it is impolite to include there plot here let me know and I will remove it)
In the plot we can see the spike after turn off, and then back EMF being measured between the supply and motor terminal. I would have thought the only voltage we should see is the flyback diodes voltage drop. The only way I can understand this technique is if the current through the motor is dropping to zero in each PWM cycle, the "switching noise" being the time the current is flowing through the flyback diode is this typically what actually happens? I haven't really had any experience driving DC motors, but have had some experience in building test gear to measure solenoid opening times based on back EMF.
In Summary
- Does motor current really drop to zero each PWM cycle for a typical brushed DC motor.
- Am I understanding both methods correctly
- Are there any key criteria to select one method over the other (noting that I probably want to measure current anyway)