I’m interested in how the torque of a brushed DC motor changes as its supply voltage decreases. I have seen a small amount of data that implies it is not linear, but I’m hoping for some good data on the CIM, Fisher Price, Globe, or RS-545, controlled with a Jaguar.
Currently I’m only interested in the data at the motor’s max efficiency, but apparently that can be calculated from its stall torque and the RPM at no load.
My assumption is that, because it’s PWM, the ratio between speed and torque will remain constant as long as the actual supply voltage remains constant. (I’ve heard the output of our motor controllers described as voltage, due to the lack of inexpensive oscilloscopes, and I realize this is confusing and most likely incorrect terminology. At the same time, I’d prefer not to limit my resources to teams that have both an oscilloscope and a dynomometer.)
Any links or first-hand data? Public libraries are notoriously poor at returning results for “brushed DC motor”.
We know that the Jaguar controls the speed of a CIM motor very linearly. We also have data on the voltage drop across a resistive load. Could we correspond the voltage drop across the resistive load to the current draw of the CIM motor, and thus the torque of the motor?
In other words, torque is pretty linear.
(I can’t seem to find where I got the vic-jag comparative data. It looks like a graph from an Excel spreadsheet.)
There’s no easy relationship between PWM command -> voltage across the motor (which is very linear for the Jaguar but not quite so linear for a Victor) -> output torque.
I encourage you to search the CD threads for similar posts. I know that you’ll find a few white papers and embedded spreadsheets and tools to help understand DC brush motor modeling.
Without going into too much detail, a DC brush motor can be very accurately modeled as a series combination of 3 elements - winding resistance ®, winding inductance (L) and back EMF (E). The voltage across the motor (V) is given by the following.
V = E + iR + Ldi/dt = constant*PWM command (for a Jaguar)
The only other equations that you need to know are -
E=kspeed with k in Volts per radian/second
torque=ki where k is the same # as above but in Newton*meters per Amp
(it’s actually very interesting that the proportionality constant “k” is the same # in both V/(rad/sec) and Nm/A)
Not to get confusing to new kid on the block, but motor curves are given for a fixed 12 volt hard regulated source voltage. Then the manufacturer varies one of the other variables to obtain the curve. (See the CIM motor curve in the FRC Suggestions Document) Note that speed, power, current and torque vary in relation to each other. Add more load or demand more torque and the current rises and speed falls. Reduce the load and the current falls but the speed rises. Design the load so that your application will keep the motor in one area on the curve and you can be sure that the current will also remain in that area of the curve. Ask the motor to deliver too much torque and the current will go sky high.
In our controllers, the PWM nature of the output simulates a change in current and therefore speed and torque are affected. Even if the load is relatively constant, the change in current moves the operation of the motor with repsect to the curves. However, efficiency and peak power cannot be determined mathematically from no load speed and stall torque. Nor can no load speed be calculated from the tables. As Russ has pointed out, Back EMF affects the motor response. If a motor has all load removed, then the free speed is determined by the back EMF. At some high RPM (which varies with the motor design), the back EMF and supply voltage cancel each other and the motor speed can go no higher (for a fixed power supply voltage).
The controller (Jaguar or Victor) is always switching the supply voltage less any series resistance between the battery and the motor. You will note that in all of the curves supplied, the specifications are always given at 12 volts DC. Take a look at the file below for the 3.5" CIM motor that was a KOP motor in 2006. You will see that max power occurs at the point where the current and efficiency curves cross. But note where the max efficiency actually occurs, at a much higher RPM and lower current.
So as I have stated in other forums, although the output change per PWM value is more linear for the Jaguar, talking about linearity when connected to a real world motor, means very little. Your load, series wiring, software and motor will all be different from all other users. The battery voltage changes over a match and with how many motors are turned on and their respective loads. Every motor we use on the robot has a varying load and that varying load will move you around on the motor curve. Turn on 4 CIM motors and drive into the side of the field, and the power supply will fall. If you are still giving the same PWM value to a motor controller, it cannot drive the motor speed to the same point as when the four CIM are not being driven. Linearity only holds true when all other variables are held constant.
If your battery is 11.5 volts the motor will run slower than if the battery was 12 volts. In a normal robot, if one motor is turned on it will run at a specific speed that varies with battery voltage. However, as more motors are turned on, more current flows through the primary wiring (#6) and the PD. Even if the battery remained at 12 volts (which it can’t in the real world), the current flowing through the #6 and PD will cause a voltage drop across the resistance contained in those devices. If four CIM motors were at full throttle with the robot pressed against a field border and the wheels are not turning, then the motor are in stall at 129 amps per motor. All things being equal, 500 amps through #6 wire drops 0.25 volts/ft. In a typical robot, with 5 ft of #6 (remember both the red and black wires need to be included) plus the series resistance of the battery and the series resistance of the PD you would be lucky to get 7 volts at the output of the PD per motor. You can fudge your way to a prediction if you show the motor as a resistor but the motor is not a true resistive load. Using Ohm’s Law, 12 volts at 129 amps would be about 0.010 ohms for the motor.
I tend to use worse case analysis since in my work I need to find what might have caused a failure to prevent a repeat in the future. Although, under normal operation you would not run at 129 amps per CIM, during parts of the match most people will. This occasional high current is what is tripping the over current sensor in the Jaguars. The FETs can handle temporary over current and the Victors have been doing it for years. It is the sustained over current that causes problems. Keep this in mind, a motor that is in stall is one in which current is applied but the motor is not turning. Every motor is in stall when you start it. Move the robot with a four CIM drive and you will draw 516 amps for a short period of time when it starts to move.
11.5V is 11.5V, regardless of how it got to 11.5V.
A CIM will perform differently connected to an 8V, 10V, or 11.5V source than it will to a 12V source. And because our batteries are not ideal voltage sources (they have a built-in resistance) and our wiring is resistive, their terminal voltage will drop under load. So pull a lot of current from your battery (say, by stalling your drive motors) and you will find that your shooter, for example, has slowed down because the effective instantaneous terminal voltage of your battery has dropped.
Effects like this that prompt Al to correctly say that claims of motor response “linearity” are dependent upon many factors besides the speed controller response.
Per Eric’s comment, the most common model for this is that battery’s output impedance changes as a function of charge state (and age). For example, the battery could have an output impedance of 25 milliOhms when fully charged and new but could increase by a factor of 2 or more (very common to be even larger) when old or less than fully charged.
Okay, just making sure.
So feed-forward will be a little off, but feedback will still work properly.
Sounds like I need an accessible current sensor on the robot. CAN will make things so much easier (even though its accuracy is ±1 Amp).
In the meantime, I believe we can calculate current from the latest supply voltage, the PWM-speed curve (no load), the PWM-current curve (no load), the PWM command, the speed of the motor, and the speed-current curve at 12v.
And about that stall current, the Jaguars are only rated for 100A peak starting current. (pg4 of http://kamocat.com/Jag/BDC_Datasheet.pdf) That’s some good incentive to not start your motors at full speed.
It matters not what value you send to the motor, when it starts it is in stall. Since the speed controller is switching the full battery voltage, full stall current is realized even if for a short period of time. It does not matter what the Jaguar is rated for, it will still produce an output that is capable of the full stall current. The only thing that limits the current is the series resistance between the battery and the motor. That is the internal resistance of the battery (11 mohm) the #6 wire (about 2 mohm), the main circuit breaker and 40 amp breaker (much less than 1 mohm), the #10 0r #12 wire to the controller and motor(4 mohm for #10) and the series resistance of the controller (4 mohm). If you are looking at the current alone, it will have ripple (an AC component) as the brush assembly first contacts one winding and then two at a time and then back to one. (The brush is wide enough to hit two commutator segments at the same time) As we have been discussing, temperature, load, battery condition, and state of charge would have to be factored into your calculations to be accurate. That is assuming every motor was made exactly alike. These motors are too inexpensive to be that accurate motor to motor. Your best bet is to monitor the speed of the motor via tach or rotational sensor. The motor output is the only thing you would be really interested in and sensing the output takes all other factors into account.
BTW, check the current rating for the FETs and multiply by three (for three FETs in parallel) to see what the max current ability of the output devices really is.