I am trying to simulate a winch as a speed-regulated motor that works through a gearbox to lift a mass. The output of the gearbox is a drum, which rotates to accumulate cable.

I feel comfortable converting the mass to a moment of inertia and I also feel comfortable with converting that moment of inertia (output-side) to the moment of inertia "seen" by the motor (input-side) with the gearbox ratio. With a simple simulation, I have no problem writing the equations of motion.

My complication comes when I want to model "stretch" in the cable. I thought I could do this by simply putting a spring of arbitrary stiffness between the winch drum and the mass, as pictured below.

Spring Inertia

With this model, for the sake of simulation, I'm assuming I know the "drum height", which would be how far the drum has turned multiplied by the drum radius, and the height of the load. The spring force would be $k(\phi r - y)$, but how do I apply this to the motor?

I have a motor model:

$$ \frac{\Theta}{V} = \frac{K_T}{R_a Js+K_T K_b} $$ and a PI controller model:

$$ \frac{V}{\Theta_\mbox{error}} = \frac{k_p \left(s + \frac{k_i}{k_p} \right)}{s}\\ $$ where $\Theta$ is the motor speed, $V$ is terminal voltage, $J$ is the inertia of the load and machinery, and $R_a$, $K_T$, and $K_b$ are the motor armature resistance, torque constant, and back EMF constant, respectively.

The interaction I'm interested in studying occurs when the PI controller is tuned to the anticipated load inertia $J$, which would be found with the motor, gearbox, drum, and load mass, but the system actually "sees" the springy-mass.

Simplification is done by setting the $k_i/k_p$ ratio equal to $K_TK_b/R_aJ$, giving:

$$ \frac{\Theta}{\Theta_{\mbox{error}}} = \frac{V}{\Theta_{\mbox{error}}}\frac{\Theta}{V} = \left( \frac{k_p \left( s + \frac{K_TK_b}{R_aJ} \right) }{s} \right) \left( \frac{\frac{K_T}{R_aJ}}{s+\frac{K_T K_b}{R_aJ}} \right) $$

(Note I can leave $k_p$ as variable because the ratio $k_i/k_p$ can be set to whatever I want via $k_i$ as long as $k_p$ isn't zero.)

So, in an ideal world, where the value of "total" inertia $J$ is known in advance, the pole cancels, and the entire system reduces to:

$$ \frac{\Theta}{\Theta_{\mbox{error}}} = \left( \frac{k_p}{s} \right) \left( \frac{\frac{K_T}{R_aJ}}{1} \right) \\ $$ $$ \frac{\Theta}{\Theta_{\mbox{error}}} = \frac{1}{\frac{R_aJ}{k_pK_T}s} $$

Finally, $\Theta_{\mbox{error}} = \Theta_{\mbox{ref}} - \Theta_{\mbox{out}}$, so, with algebra:

$$ \boxed{\frac{\Theta_{\mbox{out}}}{\Theta_{\mbox{ref}}} = \frac{1}{\frac{R_aJ}{k_pK_T}s + 1}}$$

So, kind of sorry to shotgun so much detail, but I wanted to impress on anyone reading that I feel confident with all of my steps so far and that I have spent considerable effort working on this problem. Now, again to my question - I want to simulate stretch in the cable between the drum and the load, but I'm not sure how to use the spring force to modulate load inertia.

One thought I had was to try to fake an "equivalent mass", by assuming:

$$ F = m_{\mbox{equivalent}}a \\ m_{\mbox{equivalent}} = \frac{F_{\mbox{spring}}}{a} \\ $$

but this doesn't feel right, and I'm not sure what I would use for acceleration $a$.

I'm frustrated to be this far along on the problem and getting stumped by what seems like should be an easy issue, but I really can't think of a way to approach this problem. I think if I could frame it correctly I could work out the mechanics, but it's the force-to-inertia conversion I feel like needs to be made that has me stumped.

Finally, for the record, I have also tried back-tracking my motor model to include the load torque. This gives seemingly-reasonable results, but in the end I subtract the load torque from the motor torque to get net torque, then apply that net torque to the total inertia to get motor acceleration. That feeds on down the line and, again, I'm not sure that I'm treating total inertia correctly.

  • $\begingroup$ I originally posted this to physics, but the only response was two comments suggesting I ask here. I have since deleted the question there to avoid cross-posting. $\endgroup$
    – Chuck
    Commented Aug 6, 2016 at 0:01
  • $\begingroup$ The spring constant can be modelled using the stiffness of the cable (Young's modules) the for a given load the cable will stretch more if it is unrolled for a longer length. This would make the spring "constant" roughly inversely proportional to the length of the unrolled cable. However this tension also has to be transferred to drum, so this tension will also be present to some extend in the cable which is rolled onto the drum. $\endgroup$
    – fibonatic
    Commented Aug 7, 2016 at 2:50
  • $\begingroup$ @fibonatic - That's the plan. The "stored" tension in the drum could create a kind of hysteresis or memory effect. That shouldn't be too hard to model but, again, the particular point I'm stuck on right now is determining how to calculate the total inertia of the system. I don't think I can use the load mass directly, but I'm not sure how to modulate it with the spring (or spring deflection). $\endgroup$
    – Chuck
    Commented Aug 7, 2016 at 13:06

4 Answers 4


Let's first compute the model. The control design is a separate effort.

The torque applied to the drum is $n T_M $, where n is the gear ratio and $T_M$ is the output produced by the motor. $T_M= K_T i(t)$, where $K_T$ is a proportionality constant and $i(t)$ is the motor current.

Now we can write the equations for the mechanical system: $$ m y''(t)+m g-k (y(t)-r \theta (t))=0$$ $$ J \theta ''(t)+k r (y(t)-r \theta (t))=n K_T i(t)$$

Here m is the mass and k is the spring constant.

To write the motor equation, we need to determine the back emf. The back emf is proportional to the motor speed and to write it in terms of the drum speed we multiply it also with the gear ratio n. $$L i'(t)+R i(t)+n K_b \theta '(t)=V(t) $$

Here $V(t)$ is the applied voltage, $L$ is the inductance, $R$ is the resistance, and $K_b$ is the proportionality constant.

These three equations have $V(t)$ as the input and $i(t)$,$\theta (t)$, and $y(t)$ as states/outputs. This can be used to obtain the state-space model or transfer-function model. (The following were obtained using Mathematica)

enter image description here

Now the control design can begin...


Since there has been some confusion about the inertia to be used, let me clarify the answer. I am going to assume one set of gears in the gearbox - a gear with inertia $J_1$ on the drum side and a gear with inertia $J_2$ on the motor side.

In the answer above I neglected the inertia of the gears. The only change that needs to be done now is modify the second equation as follows.

$$ \left(J+J_1\right) \theta ''(t)+k r (y(t)-r \theta (t))=n i(t) K_T$$

If the equation to describe the transient dynamics of the motor shaft is also desired then it is an additional equation involving $\theta_M$(rotation of the motor shaft), the inertia $J_2$, etc. However, this is not necessary if the objective is to control the drum position.

  • $\begingroup$ This is a great answer, but what specifically are you using as $J$ in your motor torque equation? Just the motor/gearbox/drum inertias? $\endgroup$
    – Chuck
    Commented Aug 8, 2016 at 16:46
  • 1
    $\begingroup$ The torque equation I wrote is just for the drum. $J$ is the inertia of the drum. (It can be made more complicated by saying that the inertia varies as the cable is being wound, the cable is not massless, etc. But, I think the current assumptions will not be problematic.) $\endgroup$ Commented Aug 8, 2016 at 17:26
  • $\begingroup$ @Chuck, that was quite a bounty. Thank you! $\endgroup$ Commented Aug 15, 2016 at 16:02
  • $\begingroup$ Not a problem; the question I had has been bugging me for a long time now. Your answer reinforced to me that I need to go "back to the basics" - A free body diagram. I see now that the question (and my way of thinking) was pretty misguided. Imagine if I had asked how I could treat drag on an aircraft as a speed-dependent inertia for the aircraft? Really, it's a silly question - a force is a force and a mass (or inertia) is not. They're related, but not interchangeable. Thanks again for the dynamics refresher! $\endgroup$
    – Chuck
    Commented Aug 15, 2016 at 17:22

Stretch in the spring delta $ Y = A.sin(\omega.t) = A.sin\sqrt(k/m) . t $ So the delta Y is not constant but if you are interested in delt Y_max

delta $Y max = m/k$, by Hooks law.
Because your system doesn't accelerate except at the beginning and end assuming the pulley starts and stops suddenly that's you maximum. Any gradual start/stop acceleration will have to be subtracted from the acceleration of spring which is
$ - \omega^2 . t$
$ \omega = \sqrt(k/m)$

looking at free body diagram of mass
As you noted force is $ K(\phi.r - y)$

$m.dx^2/dt^2 = -K(\phi.r-r)$
divide both sides by K we get:

$m/K.dx^2/dt^2 +\phi.r=y$

$\omega^2.dx^2/dt^2 +\phi.r =y$

I hope this will help.

  • $\begingroup$ I'm not interested in static analysis - this is a dynamic system I'm trying to simulate. I'm also not interested in the spring stretch; I can calculate that if I can correctly update the motor acceleration. My issue is determining the motor acceleration. It should be $\tau_{\mbox{net}}/J$, but what is the load inertia when the spring is included? That's the core of my question. Without the spring, as seen by the motor, the load inertia is $mr^2\mbox{GB}^2$. How do I incorporate the spring? $\endgroup$
    – Chuck
    Commented Aug 6, 2016 at 13:14
  • $\begingroup$ I will edit my answer and try to at least set the system up for a Base excitation vibration. $\endgroup$
    – kamran
    Commented Aug 6, 2016 at 16:28
  • $\begingroup$ @Chuck I think this one with a bit of modification would be what you looking for. Forced Vibrations: math.ubc.ca/~israel/m215/forced/forced.html -Look at the third case where the force is by moving the support up and down. $\endgroup$
    – kamran
    Commented Aug 6, 2016 at 19:59
  • $\begingroup$ If you do not want the dynamic response for when the system has passed through start up and stabilized into a harmonic motion but interested to see how it responds at the transient time when drum starts to turn you want to use Duhamel integral. It breaks the force of spring into small, dx, lengths with their impulse acting on the on the system and then integrated over the time. This integral is called convolution integral and Matlab has it. $\endgroup$
    – kamran
    Commented Aug 9, 2016 at 4:46

I realize this is an old thread, and I am not sure how deep of a dive you finally took on this, but one thing I don't see accounted for in your equations is drum/cable friction. This will be small, and like the accumulated mass of the wound steel wire rope you did not include, it may not be on your list. The cable could be pre-stretched and pre-loaded, however any movement between the cable and drum due to cable stretch will also encounter friction. In my industry (theater rigging, stage machinery design), the groove contacts a greater area than a flat drum application, and we usually have additional friction along the redirect sheaves and mules in the lineset to account for especially in 2:1 or 4:1 mechanical advantage systems.

  • $\begingroup$ This is a good suggestion, thanks. Do you have any design references or other texts you could link? I'm wondering specifically about trade handbooks or something similar. Thanks again! $\endgroup$
    – Chuck
    Commented Aug 14, 2018 at 16:08
  • $\begingroup$ There are some trade-specific books, but for the most part it's all mechanical engineering or physics, so the same machine design and similar references. Things like Cat-0 E-Stops factoring into the usage of chain motors and truss rigging, typical of live events or rock concerts, are common in temporary and permanent show installations. I have designed winches for stage effects, trading speed for hauling capacity or vice versa, but this is all in mechanical engineering or applied mathematics. $\endgroup$
    – Eggy
    Commented Aug 16, 2018 at 3:11
  • $\begingroup$ Ah okay, I've got all of those then lol. Always on the lookout for a good handbook, though :) $\endgroup$
    – Chuck
    Commented Aug 16, 2018 at 12:41

I think the approach of Suba Thomas gives a good model: start with the sum of forces at the load and the sum of moments at the drum. Then determine the needed motor model.

The initial motor model of chuck needs a stiff system where a single value for the moment of inertia can be calculated, while the goal of the model is:

The interaction I'm interested in studying occurs when the PI controller is tuned to the anticipated load inertia $J$, which would be found with the motor, gearbox, drum, and load mass, but the system actually "sees" the springy-mass.

One note about the inertia in the drum moment equation of Suba Thomas: Do not forget the inertia of the motor increased to the drum. Depending on the chosen motor, its influence can be significant. So I would choose $J = J_{motor} * i^2 + J_{drum}$

  • $\begingroup$ In the model (in my answer), the inertia of the motor is captured by the current variable. What was neglected was any effects from the gears. Pls see my updated answer. $\endgroup$ Commented Aug 10, 2016 at 19:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.