Back-EMF speed detection in motors

Mar 22, 2013 102 Replies

I'm working on a project that involves replacing some existing electronics with some that I've designed. It's controlling the speed of DC brushed motors. Since the original equipment uses a knowledge of the applied voltage and the motor current to infer back EMF and therefor motor speed, that's what I've done, too.



My problem is that my equipment is consistently sensing the speed as being faster than it really is, by a constant amount -- except when the motor is stalled, when the reading is correctly zero. So I end up servoing the motor speed to a figure that's a 20-30 RPM higher than desired.



It's not just a mis-calibration of the motor torque constant or the resistance -- if that were the case, then the motor speed error would depend on the command speed or the applied torque. I can easily calibrate out any dependence on torque (by adjusting the calibrated motor resistance) and I can get a 1:1 correspondence between increments in the commanded speed and increments in the actual speed. But I'm left with this @#$% offset.



Has anyone seen this? Anyone care to hazard a guess at what's going on?



Thanks.


My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com

Brush noise trashing an opamp?

John Larkin Highland Technology, Inc jlarkin at highlandtechnology dot com http://www.highlandtechnology.com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom laser drivers and controllers Photonics and fiberoptic TTL data links VME thermocouple, LVDT, synchro acquisition and simulation

How, specifically, are you "inferring" the back EMF from the applied voltage and the current? ...Jim Thompson

| James E.Thompson | mens | | Analog Innovations | et | | Analog/Mixed-Signal ASIC's and Discrete Systems | manus | | Phoenix, Arizona 85048 Skype: Contacts Only | | | Voice:(480)460-2350 Fax: Available upon request | Brass Rat | | E-mail Icon at http://www.analog-innovations.com | 1962 | I love to cook with wine. Sometimes I even put it in the food.

Back EMF = voltage - current * R

where R is the calibrated armature resistance (and yes, it changes discernibly when the motor heats -- that's not my immediate problem).

My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com

I was once told by my lecturer many, many years ago, that the gap between brushes and the commutator require a small voltage to produce a plasma to carry the commutator current.

Have you worked out this "offset" voltage?

Mike Perkins Video Solutions Ltd www.videosolutions.ltd.uk

Stray inductance.

Vladimir Vassilevsky DSP and Mixed Signal Designs

formatting link

The idea of computing back EMF, and using that to improve speed regulation, is pretty much equivalent to driving the armature from a power supply with a negative output resistance.

That can get unstable, with intertial issues, so it sometimes makes sense to tweak the dynamics of that negative resistance.

John Larkin Highland Technology, Inc jlarkin at highlandtechnology dot com http://www.highlandtechnology.com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom laser drivers and controllers Photonics and fiberoptic TTL data links VME thermocouple, LVDT, synchro acquisition and simulation

Tim - is the voltage supplied from a pulse width modulated source? If so, is it measured or calculated?

Hul

Hi, Tim:-

To control a brushed PM DC motor using IR compensation, you apply a voltage proportional to the desired speed, plus a compensation term equal to the product of the motor (and series wiring) resistance and the measured armature current.

To get a fixed RPM error implies to me that either your current sensor or your voltage DAC (or whatever) has a DC offset.

Picking some numbers out of the air:- If the motor is a 24V motor that goes 5000 RPM at full voltage Say maximum operating current is 1A, and resistance is 2.4 ohm (LRA of 10A)

Voltage error for 25 RPM is 120mV

Current error for 25 RPM is 0.12/2.4 = 50mA

--sp

My WAG is that your "armature resistance" is not really a constant. There will be times when (depending on the commutator) the brushes will likely be connected to two separate windings; other times only one. Given sufficient rpm you could probably use some time-averaged value; is that what you've done?

Seconded, although on gut feeling. Not sure I can explain it.

Would that not contribute to an effective R? Perhaps the "offset" (which isn't a true offset -- it's still zero at zero!) is a polynomial correction instead (leakage's offset being proportional to RPM)?

Tim

Deep Friar: a very philosophical monk. Website: http://seventransistorlabs.com

Ah, that's a good one too...

Tim, you say it's zero at zero (locked rotor), but is it always zero? Does the offset change with position..?

Tim

Deep Friar: a very philosophical monk. Website: http://seventransistorlabs.com

Have you taken into consideration the brush drop (typically 0.5-0.8 V per brush)??

Here is something that might help, although they use a PWM drive and measure the back EMF during the OFF period:

formatting link

The following seems to use an encoder, but may have some helpful info:

formatting link

More info:

formatting link

And this:

formatting link

I have heard that it may be possible to sense the change in current and/or voltage caused by the commutation but it tends to be noisy and dependent on things like brush and commutator condition.

Paul

You've received a number of hints already. One more: Could it be that this motor is arcing? Then you would not see any effect when at standstill.

Regards, Joerg http://www.analogconsultants.com/

Tip 7? That only works if there's no current in the shunt diode, which has nasty implications.

John Larkin Highland Technology Inc www.highlandtechnology.com jlarkin at highlandtechnology dot com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom timing and laser controllers Photonics and fiberoptic TTL data links VME analog, thermocouple, LVDT, synchro, tachometer Multichannel arbitrary waveform generators

In the past I've done really good with just using an external resistor equal to the winding resistance, so I'm not quite sure what setup Tim is using. ...Jim Thompson

| James E.Thompson | mens | | Analog Innovations | et | | Analog/Mixed-Signal ASIC's and Discrete Systems | manus | | Phoenix, Arizona 85048 Skype: Contacts Only | | | Voice:(480)460-2350 Fax: Available upon request | Brass Rat | | E-mail Icon at http://www.analog-innovations.com | 1962 | I love to cook with wine. Sometimes I even put it in the food.

Hmm, I had to scroll up there to see what type of motor you are using..

If that is a shunt/PM style motor, I don't quite understand how that will work? Maybe I am missing something.

I have a pretty good understanding of DC brushed motors and I just don't see it happening that way.

Dynamic(R) = Varm / Iarm.

Now since the motor has some DC R in it, this must be treated like a series R with an ideal motor.

Most drive electronics knows the size of the motor and knows ~ what the DC R should be, along with the expected dynamic current from the motor. The drive will advance the arm voltage above the set point when current is building to calculate for this offset. When monitoring feedback for an external reference for example, this offset should be removed. Many high end drives have the ability to adjust this.

So, output arm voltage must be offset (increased) as current increases, to over come the DC R. much like satisfying a voltage need at a divider node, the motor being the point of the dropping R and DC R in the motor being the series R.

I've played around with lots of small motor drive circuits and that is how I've done it. The feed back circuit uses the current to scale the voltage reading back so that output voltage will raise above set point to satisfy the offset requirements. This will make the motor spin a little faster and match your readings.

That's my blog for the day, and long winded as it is. Most likely nothing you can use. :)

P.S. Flux density in the field is going to effect your speed at specific arm voltages, just incase you didn't think of that.

Have a good day..

Jamie

Here's the way I've done it in the past...

formatting link
...Jim Thompson

| James E.Thompson | mens | | Analog Innovations | et | | Analog/Mixed-Signal ASIC's and Discrete Systems | manus | | Phoenix, Arizona 85048 Skype: Contacts Only | | | Voice:(480)460-2350 Fax: Available upon request | Brass Rat | | E-mail Icon at http://www.analog-innovations.com | 1962 | I love to cook with wine. Sometimes I even put it in the food.

Cool. That exactly doubles the copper loss.

John Larkin Highland Technology Inc www.highlandtechnology.com jlarkin at highlandtechnology dot com Precision electronic instrumentation Picosecond-resolution Digital Delay and Pulse generators Custom timing and laser controllers Photonics and fiberoptic TTL data links VME analog, thermocouple, LVDT, synchro, tachometer Multichannel arbitrary waveform generators

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required