xenovacivus
New Member
Allow me to offer information from my experience with motor PWM controls.
When powering small hobby motors (less than 1A or so), I've found that using lower frequencies (around 100Hz or so) is fairly effective in controlling motor speed. Using higher frequencies usually caused the motor to rotate either not at all, or too fast.
When powering larger motors, there was no noticeable difference between low (100Hz) and very high frequencies (50Khz). As stated in previous posts, frequencies greater than 20KHz or so are desirable since they reduce the irritating audible noise put off by the motors. There are other benefits of higher frequencies, including smaller components needed to reduce electrical noise.
In terms of power, every switch involves some losses. Higher frequencies mean more switches in any given period of time, and thus greater losses. There is a point at which the switching speed is slower than the PWM frequency (usually in the 100Khz + range, but can vary greatly), and the controller does nothing much but dissipate power. Therefor, if your controller works well at both 50Hz and 50Khz, you'll probably save battery power by running at 50Hz.
For your particular motor, WestKite, I think your best option depends on what you'll be using the motor for. From your post you say that a frequency of 400Hz results in visible pulses of the motor. This is expected, but will be more intense if the motor controller you use performs electrical braking (essentially shorting the motor terminals) during the off times of the PWM pulse. Without electrical braking, you might see a smoother motor speed - but you'll still need a over voltage protection diode in your circuit to prevent the voltage generated by the motor exceeding the ratings of your parts.
If the motor will drive a load with significant inertia (a heavy wheel, or a robot), you may be fine with the pulsed operation since it will become less noticeable with the larger load. I use a PWM frequency of 50Hz on a line following robot and don't notice any jumpiness in the operation due to the inertia of the robot tending to keep it moving at a constant speed.
As for the reduced usable duty cycle at higher frequencies, I've noticed this as well. I'm pretty sure it has a lot to do with the static friction of the motor being much higher than the dynamic friction: so the motor doesn't start going until significant voltage is applied, and then all of a sudden it goes fairly fast. I've seen this same result in many cheaper motors, especially the ones with plastic gearboxes. One solution to this problem is to purchase a more expensive motor with higher quality bearings. Or you might try one of those pancake motors with high torque and low max speed.
Finally, I find it interesting that the resulting torque is less at higher PWM frequencies. I suspect that either the transistors (or mosfets) used to switch the motor on and off are not switching fast enough, or that the circuit is performing electrical braking through lossy components. If you measure the voltage across the motor at full duty cycle (255 on your PWM), you should measure right around 12 volts. If you measure significantly less, then either your switching components are slow, or there is electrical braking occurring which is detrimental to the performance of the circuit. I can't really go into any more detail without assuming something about your actual schematic, so I'll leave it at that for now.
In short, 50Hz-20Khz should be fine for any smaller motor controller. At frequencies higher than 20Khz, you may start noticing switch turn on/off performance issues. To get switching frequencies of 100Khz +, motor controller designers have to do quite a bit of research into how to make their switches turn on and off fast enough to be effective.
Just ask if you think I can offer any more useful information. Thanks for reading!
- Xeno
When powering small hobby motors (less than 1A or so), I've found that using lower frequencies (around 100Hz or so) is fairly effective in controlling motor speed. Using higher frequencies usually caused the motor to rotate either not at all, or too fast.
When powering larger motors, there was no noticeable difference between low (100Hz) and very high frequencies (50Khz). As stated in previous posts, frequencies greater than 20KHz or so are desirable since they reduce the irritating audible noise put off by the motors. There are other benefits of higher frequencies, including smaller components needed to reduce electrical noise.
In terms of power, every switch involves some losses. Higher frequencies mean more switches in any given period of time, and thus greater losses. There is a point at which the switching speed is slower than the PWM frequency (usually in the 100Khz + range, but can vary greatly), and the controller does nothing much but dissipate power. Therefor, if your controller works well at both 50Hz and 50Khz, you'll probably save battery power by running at 50Hz.
For your particular motor, WestKite, I think your best option depends on what you'll be using the motor for. From your post you say that a frequency of 400Hz results in visible pulses of the motor. This is expected, but will be more intense if the motor controller you use performs electrical braking (essentially shorting the motor terminals) during the off times of the PWM pulse. Without electrical braking, you might see a smoother motor speed - but you'll still need a over voltage protection diode in your circuit to prevent the voltage generated by the motor exceeding the ratings of your parts.
If the motor will drive a load with significant inertia (a heavy wheel, or a robot), you may be fine with the pulsed operation since it will become less noticeable with the larger load. I use a PWM frequency of 50Hz on a line following robot and don't notice any jumpiness in the operation due to the inertia of the robot tending to keep it moving at a constant speed.
As for the reduced usable duty cycle at higher frequencies, I've noticed this as well. I'm pretty sure it has a lot to do with the static friction of the motor being much higher than the dynamic friction: so the motor doesn't start going until significant voltage is applied, and then all of a sudden it goes fairly fast. I've seen this same result in many cheaper motors, especially the ones with plastic gearboxes. One solution to this problem is to purchase a more expensive motor with higher quality bearings. Or you might try one of those pancake motors with high torque and low max speed.
Finally, I find it interesting that the resulting torque is less at higher PWM frequencies. I suspect that either the transistors (or mosfets) used to switch the motor on and off are not switching fast enough, or that the circuit is performing electrical braking through lossy components. If you measure the voltage across the motor at full duty cycle (255 on your PWM), you should measure right around 12 volts. If you measure significantly less, then either your switching components are slow, or there is electrical braking occurring which is detrimental to the performance of the circuit. I can't really go into any more detail without assuming something about your actual schematic, so I'll leave it at that for now.
In short, 50Hz-20Khz should be fine for any smaller motor controller. At frequencies higher than 20Khz, you may start noticing switch turn on/off performance issues. To get switching frequencies of 100Khz +, motor controller designers have to do quite a bit of research into how to make their switches turn on and off fast enough to be effective.
Just ask if you think I can offer any more useful information. Thanks for reading!
- Xeno