Searching \ for 'Torque control' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page:
Search entire site for: 'Torque control'.

Truncated match.
PICList Thread
'Torque control'
1999\11\23@221800 by Jinx

face picon face
Hi, has anyone got, or can they point me to, info on torque control
of DC motors ?

I've got a 1/2HP 12V DC motor, PWM (10kHz) speed-controlled by
an IRF151 to ground. The F84 has 8 pushbuttons for Stop, Full and
6 fixed speeds, which works OK, but the customer's needs have
changed and would like better speed regulation under a now variable

a) how do I derive an error signal from the motor ? (vaned opto ?)
b) should this be applied to the PIC via an ADC ?
c) could this be applied to the FET instead ?

One possibility I'm thinking of is compare the loaded rpm to the
unloaded at a particular PWM and look for a drop or rise. I wonder
if there's a simpler analogue way, but essentially the whole thing is
digital and mixing the two may be more trouble than it's worth.


1999\11\23@230934 by Wagner Lipnharski

Hi Jinx.  The most common way is measuring and controlling speed, but it
is not the best you can do. Lets see why. Suppose the motor is rotating
at 1000 rpm, and the variable load increases, what will happens here is
that the motor will consume more current.

You can say, ahhha, I will measure the motor current delta variations
and will regulate by this feedback.  Ok, it works too. But still not
good enough. Why?

Question: What is the first thing that happens when the load increases?
It creates more drag to the motor belt, pulley, whatever is being used
to transfer power. So, if you can measure the actual torque at the motor
belt, pulley, shaft, by analyzing the element stress, as torsion for
example, your control circuit will be correcting the power applied to
the motor, before the motor will start to drain more current, so the
correction will be smooth and clean as a walk in the park.

Everything mechanical have a slack. For example, the automobile air bags
use a front accelerometer installed near the front bumper, and it feels
the crash impact much sooner than your head hits the panel or worse, the
windshield. In real, this mechanical slack saves your life by exploding
the air bag as fast as possible.  In your DC motor control is the same.
If you measures the delta current, is the same as installing the air bag
sensor at the windshield, it will only detonate after you rip your ears
off (and something else) at the broken windshield.  So, as close to the
load you install the sensor, more smooth and perfect will be your speed
or torque control.

There are few ways to do that.

1) Using strain gages and measuring the effective "torsion" of the shaft
or pulleys.  Even that it is somehow difficult to install and adjust,
including extra electronics around the SG's, it is one of the most
precise and "scientific" way to do that, you can call yourself updated
to the best technology if you do that. Prepare yourself for general
headaches and surprises, but it *is not* impossible.

2) Using opto sensors and slotted disks.  Install an opto sensor with a
slotted disk right at the motor shaft, close to the motor, and another,
exactly the same sensor and disk as close as possible to the load.  By
adjusting once, and then measuring the time difference between both
pulses, your controller can anticipate changes in the load much before
the motor even feels it.  Solutions like that is used around, and a
slack element is inserted in purpose to amplify this delta torque, as a
rubber coupler or something like that.  This solution is cheap, easy to
instal and works pretty nice.  Its accuracy and resolution will depend
mainly in how small are the disk slots.  The problem with this solution
is that your mechanical can not has slipering transferring power as an
oily belt or something like that.  Timing belts or even gears are the
best power drive elements for this solution.  Both disks have tinny
slots at the disk edge. One extra slot is made at the inner of the disk,
and it is to be used as one revolution sync, so your microcontroller
doesn't get lost between timing changes from both disks pulses.  This
solution is totally digital, so no strange little analog insects on the
board, exception if the opto sensors are not sensible enough to drive a
digital signal, but even in this case a simple LM358 or LT1413 (DIP 8)
fix it easily.  This solution has the advantage of inform your control
circuit the actual rpm of the motor, or better, the rpm at the load, so
you can control it in both ways.

In both solutions, it should have a special "power start" routine to
allow a different power control to the motor, until it reaches the
"cruise speed and torque".  Special programmed routines can handle
different actions to different torque changes, so it will not damage the
motor or power drive elements, as for example a "soft start" to save
energy and mechanics, and also a possible "break" action when the load

It is fun and very educational to work with systems like that


Jinx wrote:
{Quote hidden}

1999\11\23@233703 by Jinx

face picon face
Very good advice Mr. L,  you are a good lad.

(PS (and PBW) still giving the BASIC the once over BTW)

1999\11\23@234950 by Maris

picon face
At 04:16 PM 11/24/99 +1300, you wrote:
>Hi, has anyone got, or can they point me to, info on torque control
>of DC motors ?
>I've got a 1/2HP 12V DC motor, PWM (10kHz) speed-controlled by
>an IRF151 to ground. The F84 has 8 pushbuttons for Stop, Full and
>6 fixed speeds, which works OK, but the customer's needs have
>changed and would like better speed regulation under a now variable

You can use a sample-hold to read the back EMF from the motor during the
time the IRF151 is off. This voltage is proportional to the motor speed -
essentially the motor acts as a generator during this time. I'm assuming
the motor is a permanent magnet type.

The sample-hold can be a 4066 analog switch, a capacitor and an opamp
configured as a voltage follower or non-inverting amplifier. Be sure to use
a series resistor and a 15V zener across the input to the 4066 or it won't
last long.

Load the voltage with 1K or so and sample a few microseconds after the
transistor turns off to reduce pickup of transients. Then lowpass filter
the voltage and amplify it so you can read it with a DAC. Use that to
control the PWM. The lowpass filter can just be a resistor and a cap, 10K
and .1uF might do for a start.

I used this with a 12V 1/4HP motor with 1KHz PWM and the results were quite
good, the motor speed stayed constant around 2% over the full range of loads.

A possibly simpler way would be to use a toothed disk mounted to the motor
shaft with a slotted photosensor on the edge, you could read the time
between pulses and use that to adjust the PWM.

Or if that's not practical, you could mount a tiny magnet to some rotating
part such as a pulley (often nonmagnetic) and use a hall effect sensor to
pick up the time between rotations. This will work up to around 15,000 rpm.
Radio Shack sells small cobalt-samarium magnets (about 1/8" diameter),
these should work OK. Digi-Key has a variety of Hall-effect sensors, pick a
sensitive one so you don't have to place the sensor too close to the
rotating part.


1999\11\23@235548 by Brent Brown

picon face
Gidday Jinx,

Sounds like a fun project. If your customer wants better speed
regulation then you are quite right in saying that you need some
method of measuring the actual motor speed. Then you will have a
closed loop control system instead of an open loop control system.

Your PIC would then have preset speeds to try and maintain,
instead of preset PWM ratios. Your control system needs to have
a control methodology such as P, PI, PID or fuzzy logic, and
accordingly would have to be tuned to work in the given application.

Torque control is also possible, but why control the torque of the
motor when what you really need is speed control? Hope I'm not
making a wrong assumption about your application here.

Wagner suggested some good ways of reading the motor speed. If
its a pulse type pickup, put it into an interrupt input or timer input
on the PIC and keep things digital (nothing to gain in making it an
analog voltage and then using an ADC).

One cunning way of reading motor speed is reading the motor
voltage when during the PWM off period. The motor is now a
generator and the emf is proportional to speed. I know there can be
some pretty funny waveforms to watch out for, but it can be done.

Apply the speed error directly to the FET? I'm not sure I follow you
here. That would start you down the track of making a speed
controller circuit outside of the PIC, when it may make sense to
get the PIC doing all of it. Oh, is the PWM controller a seperate
circuit or is the PIC doing this?

Jinx wrote:
{Quote hidden}

Brent Brown
Electronic Design Solutions &
HI-TECH Software Sales
16 English Street
Hamilton, New Zealand
Toll Free: 0508 HITECH (0508 448 324)
Ph/fax: +64 7 849 0069
Mobile: 025 334 069

1999\11\24@033811 by Jinx

face picon face
To Maris and Brett -

Thanks for your suggestions. I wasn't sure when to get access to the
back EMF. The load doesn't change very quickly and isn't required to
be compensated for quickly either. Yes, it is a permanent magnet motor.

Both yours and Wagner's suggestion are worth investigating, which I'll
be doing.

As I see it there are pros and cons to either. Wagner's system is almost
instantaneous or pre-emptive and empirical but requires more complex
s/w. Back EMF is a little slower, measures after-the-fact, but the s/w is

It's a toss-up, this particular application could be done either way. The
customer is chasing an order for selling 40 of these so there's some
incentive not to be lazy and justifies investigating all avenues. Getting
some results shouldn't take too long. I'm hoping to put up a web page
in the near future and it's the sort of completed generic project I'd like
to put on it.


1999\11\24@064122 by soon lee

Hi    guys
got a question here
is there a standard for the value of PWM frequency for motors and how you
determind it??

{Original Message removed}

1999\11\24@070502 by Jinx

face picon face
From: soon lee <.....pslnKILLspamspam@spam@CYBERWAY.COM.SG>

> Hi    guys
> got a question here
> is there a standard for the value of PWM frequency for motors and how you
> determind it??
> thanks
> regards

I'm not too sure, but one factor to consider is the audible noise that
comes from motor at the freq you drive the PWM at. Does a motor
resonate at a particular freq, like a speaker ? If so, is this affected
by the number of poles, or whether a motor is electro- or permanent
magnet type ?

I noted Russell McMahon's comments about the rotor losing touch
with the magnetic fields as the frequency is increased. This would
seem to imply that there's an optimum range of driving conditions.


1999\11\24@091711 by Wagner Lipnharski

Yes, there is a particular frequency that the motor works better, and
that value should be find by experiment in a dynamometer or something
like that.  Lots of variables set that particular frequency, including
the inertia and vibration (and reverberation) at the motor ball
bearings. Just to start to think about it, imagine your pwm signal being
ON for 10 seconds, and OFF for 30 seconds, so your pwm would be 25%,
right? It will be not the right frequency (0.025 Hz) and the motor will
act in an undesireble way.  Also using 2.5GHz will cause strange motor
behavior, so it means that the right frequency is in between somewhere.
Everyone sits in a different spot on the beach, also the motor pwm


Jinx wrote:
{Quote hidden}

1999\11\24@092056 by soon lee

The motor that i am using does resonate at a particular freq frequency
so do you have any doc that is related to this??
the driver circuit i have produce a proportaional output voltage when the
motor is not connect but when i connect the motor, the output voltage remain
the same for several duty cycle. the different is very littlr about 1 volt
does this have some thing to do with the frequency that i am using??

{Original Message removed}

More... (looser matching)
- Last day of these posts
- In 1999 , 2000 only
- Today
- New search...