Motor Physics

Hi all,

I would like to know what variables influence voltage and what variables influence current when considering the circuit going into a motor. From what I understand, voltage is entirely controlled by the Victor, and current is entirely controlled by the Torque the motor must produce. Someone on my team insists of thinking a motor as a simple resistor with a constant amount of ohms, but I keep yelling at him until I’m blue in the face that it is not the case. Can one of you settle the argument? He is claiming that due to this simple resistor-like nature, increasing the PWM value under constant load would increase the voltage, therefore increasing the current. I believe that measuring the current will give a accurate reading of the torque of the robot and does not need a compensation based on the voltage sent to it. In other words, let’s say I have the joystick at the origin. The current is, perse, 10 amps. I immediately push the joystick to max thrust. Due to the increase in torque, the robot goes to 20 amps or something. Then, it will reach a certain constant velocity, and will drop back down to 10 amps. This how I see it, is it correct? Please, someone, settle this dispute.

Okay… Pulse Width Modulation…

This works by pulsing the 12V to the motor on and off very quickly. The longer the pluse with, the longer 12V is applied, and thus the higher the average voltage.

Frequency = 1/Period
Voltage = Current * Resistance : Current = Voltage / Resistance
Power = Voltage * Current

You can think of a circiut as if the wires were pipes and the electrons were water:

-Voltage is the WATER PRESSURE
-Current is the AMOUNT OF WATER
-Resistance is the SIZE OF THE PIPE

You are right in saying the that speed controller only controls the voltage. This is true. Current doesn’t depend on torque, however. Torque is a function of Current. That is, more current will increse motor torque, while more voltage will increase motor speed. KEEP IN MIND, though, that current, voltage, and resistance are all related! You are also correct in saying that measuring the current will give you a good idea of the torque produced by the motor. The reisistance of the motor should be relatively fixed (borrowing things like heat), so if you monitor current you can also find voltage. You can use this information to look up in the spec sheets for the motor the amount of torque being produced. On the other hand, your firend is right that increasing the voltage causes the current to go up. The motor does act as a resistor… BUT…

…Inductance…

The motor isn’t exactly like a resistor. Instead, it acts like an inductor because that’s what it is. An inductor is a coil of wire usually wrapped around some kind of ferrous metal. Inductors store energy in the form of magnetic fields (EMF). Do inductors conduct perfectly, though? No… they limit current as well… but instead of it being called resistance… it is called REACTANCE.

Reactance (Inductor) = 2 * (Pi) * Frequency * Inductance

Why does this matter? It is important because the Reactance of the motor WILL CHANGE when frequency changes. Does the speed controller change the frequency? No. Remember that frequency is based on peroid. The peroid remains constant, while the width of the pulse changes. What does all of this mean? Grab the spec for the Victor 883, and look at the frequency it modulates at. Look at the spec sheet for the motor, and look up it’s inductance. From here you can calculate what the “resistance” of the motor will be on the robot. Then you can make a graph of Current VS Voltage through the motor.

The end result is that your friend is “right.” I hope that helps clear things up…

Edit: GAR! Getting ASCII art to not be mangled is annoyingly difficult!

Ok, thanks. Ah… all this math is confusing. What my friend and I are trying to do is get like an approximation of the resultant force on the robot, such as the inertia of the goal when attached. We are trying to make a function to calculate this based on the current, but I’m not sure how everything factors in. If the resistance is constant, doesn’t that mean voltage and current will be related the same way regardless of the torque of the motor?

Ok, thanks. Ah… all this math is confusing. What my friend and I are trying to do is get like an approximation of the resultant force on the robot, such as the inertia of the goal when attached. We are trying to make a function to calculate this based on the current, but I’m not sure how everything factors in. If the resistance is constant, doesn’t that mean voltage and current will be related the same way regardless of the torque of the motor?

*Originally posted by Ulibrium *
**If the resistance is constant, doesn’t that mean voltage and current will be related the same way regardless of the torque of the motor? **

Yes. If you have a 600 Ohm resistance, and you put 12V across it, the current through that resistance will always be 0.02A. (Current = Voltage / Resistance : 0.02 = 12 / 600)

When the Victor increases the voltage, and the current rises, the total power going though the motor increases (remember, Power = Voltage * Current). The motor uses this power to create a magenetic field that is “more” (sorry, the exact physics of the feild I’m not too sure of, can somone else help me out on this?). As such, the motor spins faster and harder. Nifty home experement: Connect a small motor to a power source through a potentiometer. Measure the voltage and current going though the motor as you increase and decrease the resistance. You can get a feel for speed by looking at the shaft, and for torque you can feel how hard it is to stall the motor with your hand. Or if you’re willing to take my voltage/current/resistance formula on faith (Ohm’s Law), then just think of a drill… if you spin it slowly, the voltage is low, so the current is low, so it is easy to stall. If you spin it at full speed, the voltage is higher, so the current is higher, so it is harder to stall.

OK, listen, you might know what you are talking about, but you have thorougly confused me. If current is a function of torque, and voltage is a function of current, then torque is a function of voltage??? If so, why measure current at all? Why not I do a simple experiment once, find the ohms, and just apply Ohm’s Law with another proportionality constant to the Y-axis value of the joystick, and ba-da-bing, I got my measurement of torque.

Let’s get more confused…

When the Victor supplies power to the motor from a standstill, the motor uses the torque, a function of the current flowing in what is mostly a resistor, to start turning. I = Vsupply / “R”

As soon as it starts turning, the motor becomes a generator, and generates a “back” voltage which opposes the current, by having the positive voltage generated by the armature closest to the positive supply from the Victor. The amount of current that can now flow in the “resistor” is (Vsupply - Vback)/“R”.

The faster the armature spins, the greater the back voltage, and the less the current. This is why max speed can only occur at zero torque. Add some torque load, and the motor must slow down, until the back emf is low enough to allow enough current to flow to generate enough torque to turn the load. Think about how this will find an equilibrium.

When you grab the shaft and stop it, you reduce the back emf, and you are back to the locked rotor situation, treating the motor as a resistor. To measure the torque at speed (to include the effect of the back voltage), you would have to apply a brake, varying the friction on the spinning shaft, and see what load the brake will just pull with out turning, while slipping around the shaft.

Whoa… thank you. That clarified things. Is there a formula for calculating Vback from the angular velocity? Also, what’s the formula for getting torque from the current?

Much appreciated.

The formulae for a DC motor with permanent magnet or constant current field , consistent with my names for them are:

Vback = k1 * w (in, say, rpm)
Torque = k2 * Iarmature

This is somewhat bogus, because the k’s are not magic, but something you can (must) figure.

If the motor is running free, with little current entering, Vback = Vsupply (= 12V, say).
thus k1 = 12V / free speed rpms.

If the armature, aka rotor, is locked/stalled, then the (stall) torque is spec’d, at locked rotor amps (you could allow for field current in parallel), so k2 = stall torque / locked rotor current.

Essentially, the back voltage (usually called back emf) is linear with speed, and torque is linear with armature current, for a given field current in a given motor.

Bear in mind that this is first approximation stuff, but we probably need not go further with it for now.

I am just wondering, after talking to Ulibrium online the whole morning about all these… about how the voltage affects the torque-current curve?

I know that in the speed torque curve, stall torque and free speed is proportional to the amount of voltage you give.

So, when you give less power to the motor, under the same load the motor would feel the load heavier because it’s a weaker motor… Say like you are giving the motor 6v instead of 12v, the stall torque is half the stall torque at 12v.

So what’s the stall current when that happens? Is it the same, or is it half the stall current? However, I have a feeling that double the current is the case, because the motor is feeling double the load due to half power…

Another think I saw happening is that when you drive a robot around, and if you drive it at less than full voltage (like pushing the joystick halfway forward instead of full forward), the motor heat up faster. Do this mean it draw more current when you give it less voltage? This would be consistent with my theory that stall current is double when voltage is half…

Try this site for lots of good DC motor theory:

http://www.micromo.com/03application_notes.asp

Check it out. What do you think?