EMCH 367 · Controls · Fall 2026

Servo Motor Lab

One DC motor, one step of voltage, two ways of wiring it. Left to itself the motor turns a voltage into a speed, so it can never hold an angle. Wrap a loop around it and the same motor turns a voltage into an angle — exactly 1 rad for every 1 V, and the motor’s own gain cancels out of that number entirely.

The instrument

Step the voltage, watch the shaft

A step of V volts is applied at t = 0. In Open loop the voltage drives the motor directly; in Closed loop it is a command, and what reaches the motor is the error between where the shaft is and where it was told to be. The needle is the shaft; the blue mark is the command.

DC servo — step response

INPUT

Commands 1.00 rad = 57.3° of shaft

MOTOR AND LOAD

JUMP TO
Command u Shaft angle θ(t)

The model

From torque balance to transfer function

The electrical side is fast enough to ignore here, so the motor is one rotating inertia with viscous drag, driven by a torque proportional to the applied voltage. Everything that follows comes out of that one line.

(a) THE MOTOR AS ONE INERTIA V T = K·V J ω = θ̇ c θ J θ̈ + c θ̇ = K·V(t) (b) WRAPPED IN UNIT FEEDBACK u + − e K Js² + cs θ unit feedback — the shaft angle itself
The plant is an inertia with viscous drag: one pole at s = −c/J and, decisively, one at s = 0. That second pole is the whole story.
  1. Balance the torques on the rotor

    Applied torque, minus viscous drag, accelerates the inertia. The constant K lumps the torque constant of the motor together with whatever the amplifier contributes, so its units are newton-metres per volt.

    J θ̈ + c θ̇ = K·V(t) EOM
  2. Transform with zero initial conditions

    Term by term, ℒ[θ̈] = s²Θ(s) and ℒ[θ̇] = sΘ(s), so

    [J s² + c s] Θ(s) = K·V(s)
    Θ(s)V(s) = KJ s² + c s = Ks (J s + c) open loop

    Factoring the s out of the denominator is the moment the problem announces itself: there is a free integrator between voltage and angle.

  3. Apply a step and invert

    With V(s) = A/s the transform has a double pole at the origin, and a double pole at the origin inverts to a ramp:

    Θ(s) = A Ks²(J s + c)   ⟶   θ(t) = A Kc [ t − τ(1 − e−t/τ) ],   τ = J/c

    Differentiate and the meaning is plain — the speed settles, the angle never does:

    θ̇(t) = A Kc(1 − e−t/τ)  ⟶  θ̇(∞) = A Kc rad/s per volt

    A constant voltage buys a constant speed. There is no voltage you can hold that parks the shaft at an angle, because holding any voltage at all means turning forever.

  4. Close the loop and the order stays, the type drops

    Feed the shaft angle back and subtract it from the command. With e = u − θ and θ = G·e,

    θ = G(u − θ)  ⟶  ΘU = G1 + G = KJ s² + c s + K closed loop

    The free integrator is gone. Both poles now sit strictly in the left half plane for any positive K, J and c, so the step response settles instead of running away, and in the standard second order form

    ωn = √(K/J)      ζ = c2√(K J)
  5. Check the error it settles to

    The error transform is what the command leaves over after the loop has had its say:

    E(s) = [1 − GCL]·U(s) = A (J s + c)J s² + c s + K
    ess = lims→0 s·E(s) = 0 zero, for every K

    With the lecture numbers J = 10, c = 4, K = 114 and a one volt step this is (10s + 4)/(10s² + 4s + 114), and the final value theorem sends it to zero — the free integrator that made the open loop useless is exactly what makes the closed loop exact.

Calibration

Why one volt is exactly one radian

Set the step to 1 V and the shaft settles at 1.000 rad. Drag K anywhere from 1 to 400 and it still settles at 1.000 rad. That is not a tuning — nothing on this page was fitted to make it come out round.

Put s = 0 into the closed loop transfer function and every term carrying an s vanishes:

GCL(0) = KJ·0 + c·0 + K = KK = 1

The motor’s gain divides itself out. Whatever K is — a strong motor, a weak one, a hot one whose magnets have drifted — the steady angle per volt of command is the same number, and that number is 1. Inertia and damping do not appear either; they set how the shaft gets there, never where it stops.

The open loop has no such number to offer. Its steady gain from volts to radians does not exist, because the angle has no steady value; the only steady thing is θ̇(∞) = AK/c radians per second, which depends on K and c directly. A ten percent change in the motor’s magnets is a ten percent change in every angle it reaches — and it never stops anyway.

So what actually sets the scale? The feedback path, not the motor. Put a sensor of gain H in the return line and the same algebra gives Θ/U = K/(Js² + cs + KH), whose DC value is 1/H — so the shaft settles at A/H. Here H = 1, the encoder reports radians and one volt buys one radian. Change the encoder’s scale factor and you have changed the calibration of the whole servo, without touching the motor. This is why the sensor, not the actuator, is the part a control engineer refuses to economise on.

The trade

What raising the gain buys, and what it costs

If K cannot change where the shaft stops, it is worth asking what it does change. Both of the second order parameters depend on it — and they pull in opposite directions.

ωn = √(K/J)  ↗      ζ = c2√(K J)  ↘

Raising K raises ωn as √K, which is the response getting faster, and lowers ζ as 1/√K, which is the response getting ringier. The product ζωn = c/2J is independent of K — so the envelope of the decay, and with it the settling time ts ≈ 4/(ζωn) = 8J/c, does not improve at all no matter how hard you push the gain. All the extra gain does is pack more oscillations into the same decay.

The lecture numbers sit hard against that wall. At K = 114 with J = 10 and c = 4, ζ = 0.059: the shaft overshoots to 1.83 rad — eighty three percent past its target — and then rings for twenty seconds. It arrives at the right place; it just makes a meal of getting there. To settle that you have to raise c, not lower K: the presets above do exactly that, holding K fixed and putting c = 2ζ√(KJ).

Model limits. The armature inductance is ignored, so there is no electrical pole and no current limit — a real amplifier would saturate long before the transient this model predicts for a five volt step. Friction is purely viscous, with no stiction to leave the shaft parked slightly off target. The load is rigid, so there is no resonance between motor and load. What the model does carry exactly is the part the course is about: where the poles are, and what they do to the response.

Exercises

Five things to try on the bench

1 · Watch it sail past the target

Leave everything at Reset and switch to Open loop. The shaft reaches the commanded 1 rad after 0.43 s, leaves the top of the chart at 0.65 s, and by the end of the 30 s window has turned 784 rad — about 125 full revolutions. Press Fit the curve to see the whole ramp at once, then name the pole responsible and say why no choice of voltage fixes it.

2 · Break the gain and keep the answer

In Closed loop, drag K from 1 to 400. Overshoot, ringing and ωn all change violently; the final angle stays 1.00 rad to every digit shown. Explain it from GCL(0) in one line.

3 · Confirm the calibration is linear

Step to 1 V, then 2.5 V, then 5 V. The settled angle reads 1.00, 2.50, 5.00 rad, and the peak scales by the same factor each time, because overshoot is a ratio fixed by ζ alone.

4 · Find critical damping by hand

Keep K = 114, J = 10 and raise c until the overshoot readout first reads 0.0 %. You will stop near c = 62.5, short of critical damping c = 2√(KJ) = 67.5: there ζ ≈ 0.93 and the overshoot is only about 0.05 %, below what the readout can show. Now set c = 67.5 and notice the needle reaches the command without ever crossing it.

5 · Prove gain cannot buy settling time

Note the settling time at K = 114 (18.8 s), then double K: it reads 19.2 s — and the two percent it did move is only the last ring leaving the band at a different point in its cycle, since doubling K changed the frequency. The decay envelope e−ζωnt is identical, because ζωn = c/2J has no K in it. Now double c instead and watch it halve. What does that say about where to spend your effort on a sluggish servo?