EMCH 367 · Controls · Fall 2026
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
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.
Commands 1.00 rad = 57.3° of shaft
The model
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.
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.
Term by term, ℒ[θ̈] = s²Θ(s) and ℒ[θ̇] = sΘ(s), so
Factoring the s out of the denominator is the moment the problem announces itself: there is a free integrator between voltage and angle.
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:
Differentiate and the meaning is plain — the speed settles, the angle never does:
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.
Feed the shaft angle back and subtract it from the command. With e = u − θ and θ = G·e,
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
The error transform is what the command leaves over after the loop has had its say:
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
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:
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
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.
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).
Exercises
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.
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.
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.
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.
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?