seegongsik
Saved words
SC · Control

Steady-State Error

The error a closed loop is left with when it cannot follow its target all the way is the steady-state error. Its size is set by the number of integrators the open loop has at the origin, the system type, and by the kind of input. Choosing the input (step, ramp, parabola) and the system type (type 0, 1, 2), watch the error vanish to zero when the type is higher than the order of the input, settle to a finite value when they are equal, and run away without bound when the type is lower.

Type and input decide the error

The gold curve is the tracking error e(t) = r(t) − y(t), the difference between the target input and the closed-loop output. The dashed line is the steady-state value that error reaches over time. Choose the input among step (constant), ramp (a straight line), and parabola (accelerating); choose the system type among type 0, 1, 2 (the number of poles the open loop has at the origin). The gain K sets the size of any finite error. When the system type is at least one step higher than the input, the error sinks to zero (perfect tracking); when they are exactly equal, it stops at a nonzero constant (you can shrink it by raising K, but never make it zero); when the type is lower, the error grows without end (tracking fails). The type-1 system K/(s(s+1)(s+2)) is the very plant we used throughout F1 to F6.

tracking error e(t) = r − y (dashed = steady-state error)
input
system type (poles at origin)
gain K2.0
Error constants and steady-state error
K_p = · K_v = 1.0 · K_a = 0
e_ss = 1.00
The system type exactly equals the order of the input, so the error stops at a nonzero constant. For step and type 0 it is e = 1/(1+K_p), for ramp and type 1 it is e = 1/K_v, for parabola and type 2 it is e = 1/K_a. Raising the gain K grows that error constant and shrinks the error, but it only ever stays finite, never zero. To erase the error completely you must raise the system type one more step.
Finite error remains

Read the error with the final value theorem

The steady-state error falls out cleanly from the final value theorem. In unit feedback the Laplace transform of the error is E(s) = R(s)/(1+L(s)), and its value after infinite time is e_ss = lim_{t→∞} e(t) = lim_{s→0} s·E(s) = lim_{s→0} s·R(s)/(1+L(s)). A step input is R = 1/s, a ramp is R = 1/s², a parabola is R = 1/s³, so s·R is 1, 1/s, 1/s² respectively. The error then depends on how large 1+L(s) is as s→0, and if L(s) has a pole at the origin, L blows up as s→0 and the error goes to zero. In the end, the force that drives the error to zero is the poles L has at the origin, the number of integrators.

Observeess = lim(s→0) s·R(s) / (1+L(s))
Final value theorem: ess = lims→0 s·R/(1+L).
Choosezero step error needs L to have ?
Zero step error needs just one pole at the origin (an integrator).
Fill inramp error ess = 1 / ?
Ramp error = 1/Kv, with Kv = lim s·L.
On your owntype 2 tracks step and ramp with error ?
Type 2 tracks step and ramp with zero error.

The three error constants and the type table

Naming the quantity that governs the error for each input gives the error constants. A step input corresponds to the position error constant K_p = lim_{s→0} L(s), a ramp to the velocity error constant K_v = lim_{s→0} s·L(s), and a parabola to the acceleration error constant K_a = lim_{s→0} s²·L(s). The error then tidies up to 1/(1+K_p) for a step, 1/K_v for a ramp, and 1/K_a for a parabola. The system type settles, all at once, whether these constants are finite or infinite. Type 0 has only K_p finite while K_v and K_a are zero, so a finite error to a step but infinite error to a ramp and parabola. Type 1 has K_p infinite (zero step error), K_v finite (finite ramp error), and K_a zero (infinite parabola). Type 2 has K_p and K_v infinite (zero step and ramp error) and K_a finite (finite parabola error). This 3 × 3 table is the whole of steady-state error.

Two knobs to cut the error, and the price

There are two ways to cut the steady-state error. One is to raise the system type, that is to add an integrator in the controller and so a pole at the origin. This drives the error for that input all the way to zero; the integral term of F5 and the lag compensator of F6 did exactly this. The other is to raise the gain and so the error constant, which only shrinks a finite error without removing it. Neither way is free. A pole at the origin delays the phase by 90° and eats into the phase margin, pushing the system toward instability (the very phase loss we saw in F3 and F6), and raising the gain, as we saw in F1 to F4, sends the closed loop straight to instability. The boundary where the type-1 plant K/(s(s+1)(s+2)) goes unstable at K=6 is still alive here. So real design is a tug-of-war between steady-state accuracy and stability and speed, and you add integrators only as many as truly needed, filling in the phase with lead compensation as you go.

Back to the first screen

With the tracking error e(t) up on the screen, we changed the input and the system type and watched its final value. When the system type was higher than the order of the input the error vanished to zero; when they were equal it stopped at a finite value like 1/(1+K_p), 1/K_v, or 1/K_a; when it was lower it ran away without bound. Every one of these cases came out of the single final value theorem e_ss = lim_{s→0} s·R/(1+L), and how much the poles at the origin blow up 1+L decided whether the error went to zero. The gain K only changed the size of a finite error, never breaking through the wall of order. The integral term of F5 and the lag compensator of F6 were, in the end, the act of moving one step up this table to erase the error.

The steady-state error ess is the error a closed loop is left with when it cannot follow its target to the end, found by the final value theorem ess = lims→0 s·R(s)/(1+L(s)). The error by input is step 1/(1+Kp), ramp 1/Kv, parabola 1/Ka, with error constants Kp=lim L, Kv=lim sL, Ka=lim s²L. When the system type (the number of poles L has at the origin) is higher than the order of the input the error is zero, equal gives finite, lower gives infinite. Type 0 is finite only for a step; type 1 is zero for a step and finite for a ramp; type 2 is zero for a step and ramp and finite for a parabola. The way to erase the error is to add an integrator and raise the system type (F5 integral, F6 lag), but a pole at the origin eats the phase margin, trading away stability (the K=6 boundary of F1 to F4 still holds here).
Closing the control chapter

With this, one full turn of the control chapter is complete. We judged stability with Routh (F1), followed the path of the poles with the root locus (F2), measured the distance with the two margins of the Bode plot (F3), watched the encirclement of −1 with Nyquist (F4), shaped the response with PID (F5), molded the phase with lead-lag compensation (F6), and now read the limits of tracking with the steady-state error (F7). That the three goals of stability, speed of response, and steady-state accuracy pull against one another and are bound into a single design is the whole of classical control. Going further from here, state space that handles many inputs and outputs at once and pole placement that puts the poles where you want them, digital control that controls from sampled signals, and optimal control that minimizes a cost are waiting. But every one of those roads, too, is built on the language of poles, zeros, margins, and error that we have seen in this chapter.