Motor Torque Equation

By Harvey Morehouse



Contents:



Motor Torque Equation


About the writer: Harvey Morehouse is a contractor/consultant with many years of experience using circuit analysis programs. His primary activities are in Reliability, Safety, Testability and Circuit Analysis. He may be reached at harvey.annie@verizon.net. Simple questions for which I know the answer are free. Complex questions, especially where I am ignorant of the answers, are costly!!!

Summary: In this article we will be building a little motor torque equation solver. This block is not very complex, however it will be useful with some other devices we will and have created in the construction of motor models. Because those models can be rather busy, we will use this and other devices as abstractions, hiding details of what is within, making the block diagrams less formidable.

Motor Equation:

The general motor torque equation can be expressed as:

Tm = Tl + J*dw/dt

In words, the torque of the motor equals the torque of the load plus the product of inertia and the rate of change of angular velocity with time. The units in this equation must of course be consistent. In the MKS system of measurement the torques are expressed in newton meters, the inertia in Kg-m2 /sec, and angular velocity in sec-1 (actually dimensionless-radians/sec).

Now of course beneath the seeming simplicity of this equation is the little detail that the motor and load torques are complex, and often very nonlinear. However, SPICE is good at arriving at numerical solutions to nonlinear differential equations. Thus the torques, and even the inertia can be nonlinear functions of time, w, the integral of w or angle, as well as other parameters.

However in the general case:

dw/dt = (Tm - Tl)/J

and

w = Integral[Tm - Tl]/J

Given that all of these items might be functions of time, a circuit that will solve for w is shown in Figure 1 following:



Figure 1
Motor torque equation block circuit #1

In Figure 1 we see the simple realization of this function, together with test circuitry consisting of voltage sources v2, v3 and v4 together with resistors R2, R3 and R4. Device A1 is an x-spice integrator block. In this circuit, the torques are constants as is the inertia. The graph of the circuit is shown in the following Figure 2.


Figure 2
Motor torque equation block circuit test #1

This rather unimpressive output is just a ramp, as one would expect the integral of a constant to be.

The circuit can be more interesting with a variable loading. This is shown in the circuit of Figure 3.


Figure 3
Motor torque equation block circuit test #2

In this test circuit we have added a variable inertia, by means of nonlinear arbitrary source B2. B2 provides a load torque which is a constant plus a value proportional to the square of the angular velocity, such as might be provided by a fan type load. The output graph is shown in Figure 4.


Figure 4
Motor torque equation block circuit test #1

Here we see that the load which increases with velocity eventually causes a steady state velocity to be reached.

Now one could use many different loading conditions and inertial load variables, but the point here is to create a building block to be used in mechanical simulations of rotary devices, and motors in particular. Consequently, the circuit in Figure 5 following should be converted into a subcircuit and added to the library.


Figure 5
Motor Torque Equation Block

The circuit shows the model, together with a subcircuit part that represents this divide in a large block beneath it. A netlist for the circuit is:

Motor equation 3.cpr

***** subcircuit definitions

*** Created by Harvey Morehouse

***** main circuit
B1 5 0 v = v(Tm) - v(Tl)
A1 5 Omega integrator_block
R2 J 0 10Meg
R3 Tl 0 10Meg
R4 Tm 0 10Meg
.model integrator_block int gain = 1/v(J) out_lower_limit = -1t out_upper_limit = 1t
.OPTIONS method = trap
.end

Conclusions:

A simple circuit has been created which can be used together with some other devices to help in the modeling of mechanical motor type problems to solve the motor equation.



Motor Torque Equation: Part2


Summary: In this article we will be building a little motor torque equation solver. This block is not very complex, however it will be useful with some other devices we will and have created in the construction of motor models. Because those models can be rather busy, we will use this and other devices as abstractions, hiding details of what is within, making the block diagrams less formidable.

Motor Equation:

Please read the Motor Torque Equation - Constant inertia article. This article removes the restriction that the motor inertial load is a constant value. The general motor torque equation can be expressed as:

Tm = Tl + J*dw/dt

In words, the torque of the motor equals the torque of the load plus the product of inertia and the rate of change of angular velocity with time. The units in this equation must of course be consistent. In the MKS system of measurement the torques are expressed in newton meters, the inertia in Kg-m2 /sec, and angular velocity in sec-1 (actually dimensionless-radians/sec).

However, the equation as shown is in general incorrect. Suppose w is constant. In that case, changing inertia J has no effect on the rotational system. So what happened to the energy stored in the inertial mass? Where did it go?

This is similar to the defining equation of an inductance, which is commonly stated as:

e = L*di/dt

This is only true if L is constant. Similarly for mechanical systems, IF the rotational inertia can change with time, and such things are possible, the equation is really:

Tm = Tl + d(J(t)*w(t))/dt

Tm - Tl = d(J(t)*w(t))/dt

Tm - Tl = J(t)*d(w(t))/dt + w(t)*d(J(t))/dt

Now, suppose that J is unchanging. In that case the familiar motor torque equation is reached. Suppose w is unchanging. IF J changes with time, then for w to be unchanging, Tm and/or Tl must change.

Can rotational inertia change with time, or with rotational velocity? Yes. One example could be a centrifugal pump used with liquids. When it is empty, air is being accelerated - when the liquid is within the pump, the inertia is greater as a greater mass is being rotated. Another example is a rotary governor, where masses are rotated further away from the center of rotation as the angular velocity increases.

But who cares? Well, in creating a model one must be cognizant of all of the possible uses of the model and its limitations. In the MTE#1 model, it was inherently assumed that the inertial J was a constant, yet an input terminal was provided where a variable representing J might be used as an input. Here that limitation will be removed.

Proceeding now with the revised motor torque equation:

Tm - Tl = d(J(t)*w(t))/dt

Integral[Tm - Tl] = J(t)*w(t)

w(t) = Integral[Tm - Tl]/ J(t)

Notice there is really little change from the circuit of the first article. IF J(t) is a constant, it is removable from the integral and is equivalent to that shown here. If not, the first model cannot be used as the J(t) term should not be within the integral.

A circuit which solves this equation is shown in Figure 1 following:



Figure 1
Motor Torque Equation #2

The netlist for this circuit is:

Motor equation#2 - 1.cpr
*
* Created by Harvey Morehouse for use with Beige Bag B2SPICE
*
* This model allows the inertia J to be time variant

***** main circuit
B1 5 0 v = v(Tm) - v(Tl)
A1 5 6 integrator_block
R1 Omega 0 1Meg
R2 J 0 1Meg
R3 Tl 0 1Meg
R4 Tm 0 1Meg
B2 Omega 0 v = v(6)/v(J)

.model integrator_block int in_offset = 0.0 gain = 1 out_lower_limit = -1t out_upper_limit = 1t out_ic = 0.0

.TRAN 1E-5 1 0 1E-6 uic

.OPTIONS method = trap

.end

This model is straightforward, and is very similar to that in the previous article, and it should be turned into a subcircuit labeled MTE#2. It is worthwhile however to investigate the differences between the two circuits. Figure 2 contains the two circuits, the upper instance being the more general MTE#2 and the lower being the MTE#1 model.


Figure 2
MTE#2 and MTE#1 graph, J = constant

In the circuit of Figure 2, the torques applied to the MTE#2 circuit (upper) and the MTE#1 circuit (lower) are both equal to 2 n-m. The load torques are set to a value of 1 + v(Omega)^2 and 1 + v(Omega2)^2 for MTE#2 and MTE#1 circuits respectively. Omega is the resultant angular velocity of MTE#2 circuit and Omega2 is the resultant for the MTE#1 circuit.

With a constant value of J =1, we would expect that both solutions would be identical. The output graph for this circuit is shown in Figure 2 following:


Figure 3
MTE#2 and MTE#1 graph, J = constant graph

From Figure 3 we find that the outputs are indeed identical, as expected.

Now, to test the effects of a varying value of J, we can use the same circuit as in Figure 2 however, we will set the inertia J equal to v = .1 + v(Omega)^2 and v = .1 + v(Omega2)^2 for MTE#2 and MTE#1 respectively, where Omega and Omega2 are the respective angular velocity outputs.

The resultant graph is shown in the following Figure 4.


Figure 4
MTE#2 and MTE#1 graph, J = f(Omega)

Here we see that the effects of a variable inertia load produces a faster rise time (red curve) when the (incorrect) MTE#1 circuit is used compared to the correct output (green curve) of circuit model MTE#2 output. Inasmuch as the MTE#2 circuit is always correct in its output, there is no real need to incorporate an MTE#1 model into the library, as the only penalty is the slight processing increase for the generator and resistor to divide the integral output by the value of J, whether J is time variant or not.

Aside:

This problem arose when the good folks at B2SPICE noticed some errors in the first, original MTE#1 article after it was posted. The errors mainly involved an incorrect netlist. The first article has been corrected, and the MTE#1 device is really not required if the MTE#2 device in this article is used.

Conclusions:

A simple circuit has been created which can be used together with some other devices to help in the modeling of mechanical motor type problems by solving the motor torque equation, now correctly formulated for a more general case.