In the ECE 486 Control Systems lab, we need good estimates of the overshoot, rise time, and settling time of a given second-order system. These estimates are helpful when designing controllers to meet time-domain specifications.

These-domain time specifications were designed for the step-input system response. Other inputs, such as a ramp or a quick pulse may be better analyzed by using other specifications such as phase delay.

Note that these estimates are only accurate for second-order systems with no zeros. For example, a non-minimum-phase zero could have a significant effect on the settling time. However, these estimates still represent the essential qualities of higher-order systems with two dominant poles. For this reason, Franklin advocates using simple estimates rather than exact fits; designers should normally use them as rough guidelines anyway.

Second-order System Model:

Any second-order system of the form
k/((s+p1)*(s+p2))
may be rewritten as
k*wn^2/(s^2 + 2*zeta*wn*s + wn^2)
where wn is the natural frequency and zeta is the damping coefficient.

Control Lab Definitions:

Mp - (peak output - steady state)/step size
t_r - rise time from 10% of the step size to 90% of the step size
t_s - settling time from control start to the system staying within 5% of the steady state - bigger bound than in Franklin since our systems are often noisy.

Estimates

For reference, first consider the estimates found in common textbooks.
Franklin, Section 3.4, gives
Mp = exp(-pi*zeta/sqrt(1-zeta^2))
t_r = 2.2/(zeta*wn)
t_s = 4.6/(zeta*wn)

Kuo, Section 7-5, gives
Mp = exp(-pi*zeta/sqrt(1-zeta^2))
t_r = (1-0.4167*zeta+2.917*zeta^2)/wn for zeta<1
t_s = 3.2/(zeta*wn) for zeta<0.69; and t_s = 4.5*zeta/wn for zeta>0.69

Our formulas for estimating these values are:
Mp = exp(-pi*zeta/sqrt(1-zeta^2)) for zeta<1; and Mp = 0 for zeta>1
t_r = (1.2 - 0.45*zeta + 2.6*zeta^2)/wn for zeta<1.2; and t_r = (4.7*zeta-1.2)/wn for zeta>1.2
t_s = -0.5*log( (1-zeta^2)/400) )/(zeta*wn) for zeta<0.7; and t_s = (6.6*zeta-1.6)/wn for zeta>0.7

These formulas were modified from earlier versions of the lab manual, and it is easy to see that their heritage traces back to Kuo's book. However, in practice, there were consistent errors in the older formulas; and these caused certain bizarre conclusions in student lab reports.

Therefore, better values were chosen through trial and error, according to two guiding principles: the coefficients should be simple and the misprediction error should be small. In order to help with this task, this Matlab script was written. It simulates a number of system zetas, determines Mp, t_r, and t_s for each zeta, and plots the estimated and observed values.

Verification

Here are some representative plots:

Here we see that the formula for overshoot matches reality quite nicely. The small error near zeta=1.6 is due to terminating the simulation at t=20, before the system had fully risen to 1.


Here we see that the rise time formula is accurate as well. There are slight imperfections, but the general trends are well preserved.


Here we see how the number of large oscillations has a major effect on settling time. For zeta>0.7, no oscillations exceed 105% of the step size; therefore, the settling times rise smoothly as the damping coefficient increases and slows the system response. At zeta=0.7, the first oscillation exceeds 105%; at zeta=0.44, the second oscillation falls below 95%, and at zeta=0.3, the third breaks over 105%.

Because of the complexity which would be required to model each break exactly, our estimate simply provides an upper bound on the settling time. Also note that this graph exaggerates the magnitude of the effect; the curves at zeta=0.68 and zeta=0.70 look quite similar; their difference is almost negligible unless 105% is a critical value.


References:
Gene F. Franklin, J. David Powell, and Abbas Emami-Naeini, Feedback Control of Dynamic Systems, 4th ed., Prentice Hall, 2002.
Benjamin C. Kuo, Automatic Control Systems, 7th ed., Prentice Hall, 1995.