Introduction
This short article builds on the work we’ve done in modeling DC motors. Here I’ll show you how to turn that knowledge into practice and at the same time, extract useful information from motor datasheets.
The reason you’ll have to do that exercise is that most motor manufacturers usually specify only a few things on their datasheets. Here are a few examples:
https://www.moog.com/content/dam/moog/literature/MCG/moc23series.pdf
https://www.faulhaber.com/fileadmin/Import/Media/EN_1219_G_FMM.pdf
https://www.contact-evolution.ch/files/DC_motors.pdf
Motor operating points and parameters
There are four interesting operating points of a motor, and a manufacturer usually specifies the parameters for at least a few:
- No-load characteristics is measured when there’s nothing attached to the shaft of the motor, and is supplied the rated operating voltage
- Stall characteristics is measured when the motor shaft is completely blocked (can’t move at all) and the motor is supplied its rated operating voltage – note, that to measure actual torque, the shaft needs to move a little bit, and as a result – as you will see later – friction still plays a role in this operating point
- The maximum efficiency characteristics, again measured with the rated operating voltage supplied
- The maximum power output characteristics, still with the rated operating voltage applied.
The interesting parameters at these for operating points are (using the ‘s’ suffix for ‘spec’):
- Speed (s_{s})
- Torque (T_{s})
- Current (I_{s})
- Voltage on the motor terminals (though it’s kept constant between all four measurements above) (V_{s})
From these, the following parameters can be determined:
- Motor constants (K_{T}, K_{E})
- Motor internal resistance (R_{m})
- Motor friction (T_{friction})
To make sense of it all
It is important to understand that all measurements are done in a static condition. This means that reactive elements (the inductance of the coils, L_{m} or the inertia of the rotor, J_{m}) don’t play a role in the parameters, but it also means that they can’t be determined if the datasheet doesn’t specify them.
As always, the motor conversion equations are true, and are the same for all operating points:
T = K_{T}*I
and
V_{g} = K_{E}*s
There are two losses in the motor to consider: the internal resistance (R_{m}) and the friction (T_{friction}). In this discussion we will use the much more accurate (though non-linear) friction model as opposed to the linear drag model to represent mechanical losses in the motor. That means that the friction torque (T_{friction}) is constant as long as the direction of the rotation doesn’t change. With the reactive elements out of the way, we know that the current through the motor will drop a constant voltage across the internal resistance and the rest is available for mechanical conversion:
V_{s} = I*R_{m}+V_{g}
Similarly, some of the torque on the mechanical side is used to compensate for the friction and the rest is available on the shaft of the motor:
T_{s} = T_{converted} – T_{friction}
From these, for any of the measurements, we can get the following:
T_{s} + T_{friction} = K_{T}*I_{s}
V_{s} – I_{s}*R_{m} = K_{E}*s_{s}
The knowns here are: T_{s}, s_{s}, I_{s} and V_{s}. We’re looking for T_{friction}, R_{m}, K_{T} and K_{E}. If you have data available from the datasheet for at least two of the four operating points, you can in theory arrive at the unknowns. However, two special cases can help: if you have information on the stall or no-load operating point, a few things get simpler. In both cases, all the energy pumped into the motor on the electrical side is entirely used up on the internal losses: the resistance and the friction.
For the stalled case, the shaft is not rotating, which means that the generator voltage (V_{g}) must be 0, just as s_{s} is. The second equation becomes simpler with that knowledge:
V_{s} – I_{s(stall)}*R_{m} = 0
From this, R_{m} can be expressed:
R_{m} = V_{s}/I_{s(stall)}
For the no-load case, we know that the converted torque is just enough to compensate the friction, there’s no torque left on the shaft. So T_{s} must be 0. Because of that, the first equation becomes:
T_{friction} = K_{T}*I_{s(no-load)}
Putting this value for T_{friction} back into the the torque equation for the stall-case, we get:
T_{s(stall)} + K_{T}*I_{s(no-load)} = K_{T}*I_{s(stall)}
Now, solving it for K_{T}, we get:
K_{T} = T_{s(stall)}/(I_{s(stall)}-I_{s(no-load)})
With these two, we can calculate the remaining two parameters (T_{friction} and K_{E}) for any operating point using our original two equations:
T_{s} + T_{friction} = K_{T}*I_{s} which leads to T_{friction} = K_{T}*I_{s} – T_{s}
V_{s} – I_{s}*R_{m} = K_{E}*s_{s} which leads to K_{E} = (V_{s} – I_{s}*R_{m})/S_{s}
Of course T_{friction} and K_{E} should be constants, independent of the set of parameters we calculate them from, but it’s a good test to calculate them from all possible sources and see how much different the values are.
Let’s try it!
I’m going to use my usual motor, the RS-550PF-8021. The datasheet specifies all four operating points, that I’m summarizing in the following table:
T_{s} | s_{s} | V_{s} | I_{s} | |
---|---|---|---|---|
no-load | 0 mNm | 24000 RPM | 12 V | 1.5 A |
stall | 647.25 mNm | 0 | 12 V | 148 A |
maximum efficiency | 58.252 mNm | 21840 RPM | 12 V | 14.685 A |
maximum power | 323.62 mNm | 12000 RPM | 12 V | 74.75 A |
From the stall and no-load numbers, we can get:
K_{T} = 4.418 mNm/A and R_{m} = 81mΩ. (As it turns out the datasheet also specifies these parameters and they in fact match up with our calculations.)
And with that, we can calculate the other two parameters for the operating points:
T_{friction} | K_{E} | |
---|---|---|
no-load | 6.627 mNm | N/A |
stall | 6.627 mNm | 4.726 |
maximum efficiency | 6.632 mNm | 4.726 |
maximum power | 6.627 mNm | 4.726 |
The numbers are almost perfectly the same, only the friction shows a less than 0.1% error.
The last parameter specified in the datasheet is actually a typo: it’s not he back-EMF constant (K_{E}), but another parameter of the motor that we haven’t talked about yet, K_{M}. It can be calculated like this:
K_{M} = K_{T}/sqrt(R_{m})
You can verify that both the value and the unit works out from the numbers we have so far.
Further reading
To prepare this article, I’ve used the following papers. They can be a good source for additional information and background.
- http://www.globe-motors.com/dc_motor.pdf (can’t find it any more, sorry)
- https://www.faulhaber.com/fileadmin/user_upload_global/support/MC_Support/Motors/Tutorials_Motors/dff_200276_whitepaper_motorcalculation_fin.pdf
Thanks, it was very useful 🙂
Pingback: My Asymmetric Electrodynamic Machines - Page 111
how to find the TF from this datasheet ?
Not sure what TF would be. If you think about the friction torque, the article should show you how to get it.
How to find the transfer function of the motor to build a pid controller
There’s no silver bullet, if for nothing else, because you not only need the motor, but also all the mechanical system attached to it. You can actually construct the equivalent circuit for a motor, that’s described here: https://www.modularcircuits.com/blog/articles/bridge-to-the-far-side/motor-modeling/.
For how to model the rest of the mechanical system, I suggest you read this article: https://www.modularcircuits.com/blog/articles/bridge-to-the-far-side/modeling-mechanical-systems/. The last step is that you will have to construct the electrical system ‘as seen’ by the driver of the motor, which means, you’ll have to apply the motor transfer function (electro-mechanical transfer) to the mechanical system.
Hopefully, the techniques described in these two articles will help you solve your problem.
How to obtain the transfer function of the dc motor with these parameters since inductance and inertia is not calculated. The transfer function is important in designing a controller