Question about PWM and DC motor control

Hi,

I understand that PWM is a popular way to control the speed of a DC motor, so if i want the motor to go at 60% of its maximum speed, then the PWM signal needs to have a duty cycle of 60%.

My question is that: an alternative way could also be to supply PWM at 20% of the time, 3 times in one period, and this should give an overall PWM of 60% duty cycle. Wouldn't this work? It seems to me that it should. But is it better or not than just have the PWM HIGH just once?

pwm_waveform (1).png

TON is the time for which signal is HIGH and TOFF is the time for which it is LOW. So terminal voltage applies to DC motor is only for TON (ON) time of Period.

pwm_waveform (1).png

DryRun:
My question is that: an alternative way could also be to supply PWM at 20% 3 times in one period and this would give an overall PWM of 60% duty cycle. Wouldn't this work? It seems to me that it should. But is it better or not than just have the PWM HIGH just once?

That doesn't make any sense. You can't define an arbitrary time as a period. If the signal is up for 2 units and down for 8 units then that's 20% and the period is the 10 units. There's no way that can be the same as being up for 6 and down for 4 which is 60%.

Steve

OK, let me try to explain my question a bit clearer... If the period for one cycle of PWM is 10 seconds, then instead of having the PWM be ON or HIGH for the first 6 seconds and then OFF for the rest of the 4 seconds, why not have the PWM stay ON for 2 s, then OFF for 1s, then ON for another 2s and OFF for 1s and then ON for 2s and then OFF for 2s. The total would be 6 seconds with ON, so this should be 60% for one period or cycle.

You are just changing the frequency of the PWM signal (with the exception of the last 2 seconds). Seems like a pain in the ass for little or no gain. So why?

groundFungus:
You are just changing the frequency of the PWM signal (with the exception of the last 2 seconds). Seems like a pain in the ass for little or no gain. So why?

I was just wondering since someone in my study group asked this and we were stuck in trying to understand. But it makes sense now that changing the signal's OFF and ON within the previous time period would mean that the frequency will change and ultimately give the same duty cycle and average output voltage.

DryRun:
OK, let me try to explain my question a bit clearer... If the period for one cycle of PWM is 10 seconds, then instead of having the PWM be ON or HIGH for the first 6 seconds and then OFF for the rest of the 4 seconds, why not have the PWM stay ON for 2 s, then OFF for 1s, then ON for another 2s and OFF for 1s and then ON for 2s and then OFF for 2s. The total would be 6 seconds with ON, so this should be 60% for one period or cycle.

You could do that (though I can't imagine why) but if a signal is on for 2s and off for 1s or on for 2s and off for 2s you can't call those 20% of anything so it's the terminology that's wrong. 2 on 1 off is 66.66%, 2 on 2 off is 50%.

The total over 10 is 6 on 4 off so on balance that's 60% but it will only be equivalent to a "real" 60% PWM if you can guarantee that the whole pattern of 2,1,2,1,2,2 always keeps repeating.

Steve

slipstick:
You could do that (though I can’t imagine why) but if a signal is on for 2s and off for 1s or on for 2s and off for 2s you can’t call those 20% of anything so it’s the terminology that’s wrong. 2 on 1 off is 66.66%, 2 on 2 off is 50%.

The total over 10 is 6 on 4 off so on balance that’s 60% but it will only be equivalent to a “real” 60% PWM if you can guarantee that the whole pattern of 2,1,2,1,2,2 always keeps repeating.

Steve

That makes it clearer. Thanks! I was puzzling over this as it could be a trick question during my project presentation. I have to explain about the H-bridge and how it’s used to control DC motors with Arduino.

You also neglected to address the actual voltage used by the system and how that relates to the rated motor voltage.

For example, if you had a motor that required 12 volts for 10000 rpm and you applied a 6 volt PWM signal with a 50% duty cycle, would you expect the motor to run at 5000 rpm? What speed would you expect to see?

WattsThat:
You also neglected to address the actual voltage used by the system and how that relates to the rated motor voltage.

For example, if you had a motor that required 12 volts for 10000 rpm and you applied a 6 volt PWM signal with a 50% duty cycle, would you expect the motor to run at 5000 rpm? What speed would you expect to see?

The motor requires 6 V in my case but it can be supplied with higher voltage up to a limit. I need to check the datasheet... But to answer your question... 6 V PWM signal at 50% duty cycle would give an average output voltage of 3 V, using the formula: Average voltage = Input voltage x Duty cycle. So, the motor won't run at 5000rpm but maybe 2500rpm? But i get your point. Thanks for the suggestion. :slight_smile:

Yup, I’d say you’ve reached the point of PWM enlightenment :wink: