I am trying to control a real inverted pendulum by means of a DC motor, for this I must model the torque of the motor, the work I've done in this direction is the following (which I believe is right):

Derivation of model

Something I don't get is, both the motor back-emf constant ($k_e$) and the torque constant ($k_t$) are supposed to be the same, at least as far as I've read on several places. Is it safe to assume both are the same ($k_e = k_t = K$), in which case, I can obtain the constant by measuring the angular speed and the voltage applied to the motor, and dividing both, right?

  • $\begingroup$ Kt=Ke only in the case where SI units are being used. There can also be differences in how they are defined between motor manufacturers. $\endgroup$
    – welf
    Mar 31, 2020 at 22:15

1 Answer 1


Your general model for an electric motor could be for example, as follows.

$$J \phi ''(t)=\text{I} \tau -R \phi '(t)$$

with J as your [kg m^2] inertia, I in [A] amps, and R your friction...at the moment, I can't remember the unit is, and $\tau$ your torque constant [Nm/A]

This is a simple linear ODE and is solved also fairly easily. With initial conditions:

$$\phi (0)=0,\phi '(0)=\phi _0$$ $$\phi (t)\to \frac{J e^{-\frac{R t}{J}} \left(\text{I} \tau -R \phi _0\right)-\text{I} J \tau +\text{I} R t \tau +J R \phi _0}{R^2}$$

This is of course your angle dependant on time, but we want the change, or namely the velocity.

So we take the derivative, $\frac{d\phi}{dt}$

$$\omega(t)=\frac{i R \tau -R \left(\text{i$\tau $}-R \phi _0\right) e^{-\frac{R t}{J}}}{R^2}$$

If we take some a data trace we have from playing the motor at different amperages, we can calculate or fit R and J if they're unknown, like for example:

enter image description here

With the values being {R -> 0.0000186966, J -> 0.000138553} for that particular example.

Or in your case, you can find your torque constant if you know the rest. However, generally you can find that in a motor data sheet...as it appears your don't have one, you can go about it this way. Are you using some kind of software to be able to read such things, matlab, mathematica, or scripted something yourself?

I would highly suggest trying to get a data trace and fit the data to $\omega(t)$ rather than messing around with the maths.


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.