# DC motor modeling

Does anyone know how I can obtain the s-plane model of a DC motor? I'm not referring to a general motor transfer function (available in many control
books), but the real tf, obtained from the electrical and mechanical parameters of the motor.
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Jose,
I'm not sure how well I understand what you want, vs what you have. What TF are you interested in? You have a choice of input variable (voltage vs. current) output variable (position, velocity, acceleration, or torque) to say nothing about modelling the load the motor drives -- which generally cannot be ignored. Assuming you have the parameters, and know what TF you want, it's basically algebra.
A more common problem is that you lack some of the parameters -- or distrust nominal values/are unsure of their variations. Note that friction (except for textbook viscose damping) is nonlinear, and thus cannot be modelled properly by a transfer function. Backlash in gear trains is similarly nonlinear. (Describing functions can model nonlinearities, though most people don't want to mess with that.) Many common (DC brush) motors have friction of 1-3% of their momentary stall torque, and that friction is usually more coulomb than viscose. This does not include friction from gear-trains, just brushes and bearings.
Parameter variation is a problem that many don't appreciate fully -- until it fouls things up. If memory serves, for typical copper wire used in rotors, the resistance of the motor at max temp is roughly 40% greater than the cold resistance (which is what's usually on data-sheets.) (Look up the temperature coef of copper, and calculate this yourself for the motor's rotor-temp limit. 155 deg C is common if you don't have a spec.) Load variations cause huge TF variations as well. So, one generally has to design control laws that are robust to wide variations in several parameters at once. Control based on feedback from a co-located sensor (one on the motor's shaft) generally leads to stable control -- assuming the sign is correct and the loop gain is sane (and rolls off at sufficiently high frequencies.) Non-colocated sensor feedback (e.g. on the far side of a gear train) can lead to significantly better performance (e.g. better steady-state accuracy), but ensuring stability becomes harder.
If you have a sensor for shaft angle, and a means of collecting data, you can do some experiments to estimate parameters you lack. For instance, put an offset weight on the shaft, and put a steady current (+ a small high-frequency dither to minimize the effects of friction, if you can.) If you set the current such that the weight moves significantly (but doesn't spin around), you can estimate Kt (the motor's Torque/current) from the angle and the weight+center of mass of the offset weight. Caveat: unless you have a reasonably accurate friction model, it can be hard to estimate the rotor inertia from experimental data. There are more elaborate ways to measure parameters (and fit transfer {or describing} functions), but I suggest doing the simplest things that'll get you rough estimates, and design assuming that parameters will vary significantly.
HTH,
Larry
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Thank you ver much, Larry, your answer is exactly the kind of explanation I was looking for.

not
control
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

## Site Timeline

• ### FA / eBay: Motors, drivers, sensors, and power supplies.

• - previous thread in General Robotics Forum
• ### Servo drive signals for HP 7978 tape drive controller

• - last updated thread in General Robotics Forum

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.