Go Down

Topic: How to decrease the motor Speed without losing the maximum Torque (Read 2387 times) previous topic - next topic


Hi there,

I am using MDS40A motor driver(http://www.cytron.com.my/viewProduct.php?pcode=MDS40A&name=SmartDrive40) to drive a power window motor (12V, brushed motor) similar to the one at (http://www.cytron.com.my/viewProduct.php?pcode=MO-PW-R&name=Power%20Window%20Motor%20%28Wira%29%20-%20Right). I am using PWM generated by Arduino to control the speed of the motor. As I use lower value of PWM to get slower speed (the current gets reduced as well), the torque of the motor is drastically reduced. I am using Arduino Uno.

What I have understood is that with PWM, the voltage and current are not affected by the duty cycle. Torque depends on available current, while RPM depends on available current or amount of time it is ON. When the motor is ON, it resists load (accelerates) and when it's OFF it does not resist load (gets slowed by load/decelerates), hence RPM can be controlled by amount of time motor is ON, while torque stays at max due to max current at ON period.

I want to decrease the motor speed without losing the maximum torque. Can anyone help me on this? Can it be done with code?


What max current are you seeing?  What is the motor's DC resistance?
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


I want to decrease the motor speed without losing the maximum torque.

I think a motor develops "maximum torque" at 0 rpm with maximum current applied. Anything different and the motor will probably not be developing "maximum torque".
Google forum search: Use Google Search box in upper right side of this page.
Why I like my 2005 Rio Yellow Honda S2000  https://www.youtube.com/watch?v=pWjMvrkUqX0


Amateurs built the ark, Professionals built the Titanic


If the motor is fairly large, it would have a fairly high inductance, meaning that a high PWM frequency may just be turned into heat by the coils. You could try reducing the PWM frequency so that the coils have more time to saturate during each cycle, just be aware that you may get more audible noise and more jerkiness if you do that. http://playground.arduino.cc/Code/PwmFrequency explains how to change the PWM frequency of the arduino.
Another potential option would be to simply gear down the motor if space permits. This method will actually increase the torque of the motor.


You need a PID loop for RPM control
Look here http://forum.arduino.cc/index.php?topic=8652.msg70286#msg70286

When mechanicaly loaded, the system will increase PWM in an attempt to maintain "actual speed" at "target speed" level.
This is the only way to run at low speed (20 RPM) while maintaining a high torque

Go Up