# speed of DC motor

M

#### Michael Griffin

At 17:20 20/06/00 -0400, Johan Bengtsson wrote:
<clip>
>This will not simply work by feeding back only the current itself: The
>drive is trying to keep the tacho signal EQUAL to the desired
>speed, feeding this with the current and reverse the action of the
>controller will effectively give you a constant torque controller (ie the
>motor speed is ignored and the motor current and thereby torque is
>held constant) If you get the motor voltage + I*R (could easily be
>managed by some OP-amps + some resistors if you want to do it
>yourself) you can as well make the signal work "the right way"
>immediately
<clip>

Your explanation here is certainly much more clear and complete than mine was. I think I can elaborate on it though to make it even slightly clearer.

Let us take your equation:

"motor voltage + I*R"

"Motor voltage" is easily measured and scaled into a range acceptable to the tach voltage input. However, I am not sure whether this
should be the set point (command) voltage, or the actual voltage applied to the motor. One the one hand the former is likely to be more stable, while on the other hand the latter has the potential to compensate for errors in applied voltage.

"I" (current) is also easily measured.

"R" is not easily measured, but rather is generally determined by other means and then assumed to be constant (this limits the accuracy
because it actually varies slightly, along with other internal losses). Another way of looking at this is that "R" is a scaling factor applied to
"I" (this is where the multiplication in I*R comes in). In practice you would tweak some pots to get the correct motor speed at different set points after installation - but we are getting ahead of ourselves here.

Now we need to sum "motor voltage" and "I*R". When we sum them though, we want an increase in current to *subtract* from the "motor
voltage" reading, not add to it. This will cause an increase in load (which shows up as an increase in current) to reduce the feedback signal, causing the applied voltage to be *increased* to compensate. A decrease in load will
cause the opposite effect. This would emulate what a tach does when the motor slows down due to increased load. Note that the motor current feedback would likely be a small component of this feedback signal.

Now for the bad news. I can't think of any inexpensive off the shelf signal conditioners etc. which give a very fast response. The fast ones which I can think of generally cost a lot more than a new drive. Slow response could make the motor hard to control. The originator of this thread may be stuck with building the electronics on a piece of perf board (which nobody else would want to have to repair), unless of course the whole objective of this was to simply satisfy his curiosity as to how these things work.

Furthermore, while this approach may save on external components, I don't believe that it is as accurate as true tach feed back. The main
benefit of it would be to help flatten out a motor performance curve within a region of interest.
If a DC brush motor had no internal losses and flux density had no limits, it wouldn't slow down as more load was applied - it would simply draw more current but remain at the speed determined by the applied voltage. IR compensation tries to emulate this by increasing the applied voltage as the current increases.

To put this all in the proper perspective though, IR compensation is already built in as an option to a number of DC drives. I have however, not seen it actually used very often as it can be rather tedious to set up and calibrate.

The originator's first posting was:
<clip>
> I heard that the speed of the DC motor can be controlled by
>sensing the back EMF of the motor. I read one article in EDN
>about it. The author sensed current through armature and used it
>as a feedback for speed control.
>
> But I know that current through the armature represents the
>torque not speed. And from 0 to rated motor speed torque suppied
>by the motor is same.
<clip>

**********************
Michael Griffin