Let's Make Robots!

DC motor speed controle thoery



I am struggling to grasp the principles of pulse width modulation, current stability and motor selection. To my understanding the pulse with modulation is the time period the current is switched on and off. This allows the motor to slow down and speed up but at a time frame that is considered as “smooth” for the motor and the current physical load that is on the motor. During this time the current will be with in a preset rang of units that are controlled by the oscillator and its frequency. Allowing for motor speed control.

 Is my understanding correct?

Now for the real problem, I have no idea if this is correct but is the current stability percentage the time frame between the unit of time the current is on and off, or could it be seen like this? The only reason I am asking is because I figure if you draw a graph of the current and PWM the lowest values of the 2 graphs would be in unison with each other before a new PWM is produced and the current rises again. If this is your current stability percentage then it would explain to me why there is a limiting condition for the frequency of the PWM. How do I calculate the minimum frequency for a motor? Does it depend on the work load the motor has to do? Is the motor ripple the tolerance of the time frame that the motor is switch on and of giving a certain “dwell” period for the motor?


Please correct me if my understandings are not up to date or if something does not stick well.       


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Thanks a lot. I really appreciate it.

Thanks for the information. It is not for homework. It is for a robot I am building, I have the equations to calculate the time constant and the current stability percentage. The reason why I am trying to calculate it is because our electronics stores are mad with there prices and I don’t want to waste money or time at trail and error. I am thinking of using a car wiper motor. It provides sufficient power when ran through a worm gear to move my 30KG + robot. It seems to me you have a lot of knowledge about motor speed control. I have no teachers or any one in this country that can help me with this. So I depend on the internet and self study to figure things out and can only hope that my thought process is correct. I have some understanding about the circuitry and how it works but my theory is holding me back. Would you please explain to me what the mechanical time constant and electrical time constant is and who it connects to the PMW and the motor.     

What I'd tried to get across was that PWM frequency doesn't really matter that much in h-bridge selection. The primary parameters to be concerned with would be that the h-bridge be able to carry the current needed by the motor, at the voltage the motor is rated at. PWM frequency, particularly with an inefficient automotive motor, is not that great of a concern.

You mentioned a wiper motor. This indicates a probable 12 volt source (technically 13.8 or so) and a pretty substantial current draw at that voltage level.  I'd suggest something like the second relay h-bridge shown on the h-bridge matrix here, as it has worked with some drill motors that required a bit of current. Something like this VNH2SP30 driver would be a version that might be able to handle your motor, though I'd check current ratings to be sure.

Unless there is some purpose (like homework) for it, why are you worried about calculating a minimum frequency for a motor? 

Some observations : PWM is a square wave signal in volts that is varied in duty cycle (the pulse width) to provide a variable voltage to a device for speed control or other variations. The combined inductance of the motor reacting at the frequency controls the current flowing through the motor. Most professional motor controllers for average brushed DC motors use a PWM frequency of 20 kHz to keep the signalling out of human hearing range, not necessarily for efficient control of motors. Some people will find that a low frequency, perhaps in the 100s of hertz, provide a good drive signal for the motors they have chosen. Other motors like high-end coreless motors (Faulhaber, Maxon) may operate better at 60 kHz or higher. One factor to get above for good motor control is the mechanical time constant of the motor. It is helpful for the PWM frequency to at least be faster than the motor can mechanically react. The second threshold to overcome for efficient motor control is the electrical time constant of the motor. Having a frequency of double these is usually a good drive method.  The mechanical is determined by robot inertia, bearing friction etc. The second is determined from the inductance ( in Henrys ) combined with the resistance of the windings. Inductance will be the primary  characteristic to overcome for efficient drive.

It may be calculated from the motor specifications, however many times it is simply easier to "try it out" and empirically measure performance.