Controlling torque of DC Brushed Motor

Posted on 2011-05-04
Medium Priority
Last Modified: 2012-05-11

I have a trouble here and I'm almost sure that what I want to do is impossible.
But to be 100% sure I want to ask all you about your opinions.

I have a DC Brushed motor with permanent magnets.
A very common motor like Fig1.

(Just a pic. from internet, not the real one)

Note: I don't have motor datasheet because I don't know motor model or brand.
But it's like Mabuchi's motors.

I made a H Bridge circuit with PWM to control SPEED and DIRECTION of rotation.

Now I need to implement a torque correction.

When loading the motor, the PWM threshold must increase to keep torque constant.

I did this before using sensors like Hall sensors and optical encoders.
The feedback from Hall/Optic. Encoder tells me when the motor reachs the desired speed meaning that torque is enough for the load applied.

But now I need to do this correction without any sensor attached to the motor.

To do this, first I added a shunt resistor to measure the motor current.
But I need another parameter to determinate the correction behavior.

With the shunt, I can detect if the motor is loaded. The current will rise and based on this I need to increase PWM Threshold in order to increase motor torque, keeping torque constant with load variation. The problem is that when the voltage increases, to correct the torque loss due to the load, the current also increases. And as the current is my feedback about load, that condition cause an infinite grow of voltage because I'm unable to detect when I need to stop increasing motor voltage. Also I can't measure motor speed that is a perfect reference for this correction circuit.

Someone have any idea about how to do this torque control without sensors attached to motor ?

I think that is not possible due the math and physics rules as I described above.
But if some technique to catch motor commutation just by power supply wire is possible then I would be able to measure motor speed solving the problem.

The big question is:

How to measure DC Brushed Permanent Magnet Motor speed by power supply signal ?

Any ideas ?

Thank you all in advance.
Question by:giovaniluigi
  • 3
  • 2
LVL 27

Expert Comment

ID: 35693062
There are several additional things to look at:

You may be able to tell the motor speed by looking at the glitch frequency.
Every time the brushes make or break, you get a glitch.

And you can also look at power balance:

Electrical Power into the motor is V*I

This power goes into heating the windings:  I²*R

and into friction and mechanical work.

The rotary power of the motor is  proportional to   Torque * RPM

Motor equations are here:


You should also check out Back EMF.  I understood it once a long time ago.
LVL 27

Expert Comment

ID: 35693160
This is seems very relevant:

     Back-EMF refers to using the voltage generated by a spinning motor (EMF)
     to conclude the speed of the motor's rotation.


Author Comment

ID: 35693964

I think the better way is going by BEMF.

But, as I have PWM into motor windings, I need to read the BEMF just when the H BRIDGE is with both lowside transistors "ON" and both highside transistors "OFF".

Now this is another problem.

When the motor is running this condition will never happens.
This is what I understood by some files and pages that I found on internet and by your links
Sign your company up to try the MB 660 headset now

Take control and stay focused in noisy open office environments with the MB 660. By reducing background noise, you can revitalize your office and improve concentration.

LVL 27

Accepted Solution

d-glitch earned 2000 total points
ID: 35698225
What are you trying to do with the motor and what tools do you have?
And what is your budget.

Are you trying to make an analog controller or do you have a µC available?

You may be able to calibrate the motor:

    A constant PWM and current correspond to a fixed RPM and loading.
    Build that data table.

    At any time you know the applied PWM (voltage) and you can measure
    current I and dI/dt.  

Can't you measure Back EMF when the H-bridge is off with something like
an INA117?


Author Comment

ID: 35699677
All this, is because I have a friend with a lot of machines that have no control.
Those machines have just a motor connected to a transformer. And... That's all.

I want to implement a torque correction to all of those machines.

I did a circuit with a uC PIC controlling the bridge.

I did the table that you mentioned before, but it doesn't worked well.
Mostly because of measuring problems with the opamp in the shunt.
I used a LM258.
I filtered the signal that comes out from opamp, due to the PWM influence.
But the PIC A/D can have some accuracy problems due to this signal.

I will try to measure back EMF or redo the table.
I'm not expert on eletronics.
In analog parts, I have no experience.
My area is computer, but I trying...
LVL 31

Expert Comment

by:James Murrell
ID: 36890372
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Finding a job can be stressful - searches, resume tweaks, and networking events can be super boring. Luckily we're here to help you land your dream job!
Backups and Disaster RecoveryIn this post, we’ll look at strategies for backups and disaster recovery.
Where to go on the main page to find the job listings. How to apply to a job that you are interested in from the list that is featured on our Careers page.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Suggested Courses

750 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question