Lecturer

Set up MATLAB

cd matlab
pwd
clear all
imatlab_export_fig('print-svg')  % Static svg figures.
format compact
Copy to clipboard
ans =
    '/Users/eechris/code/src/github.com/cpjobling/eglm03-textbook/02/matlab'
Copy to clipboard

2. Steady-state and Transient Response

This chapter is concerned with the analysis of steady-state and transient response performance of control systems.

The second-order system response and its relationship to the closed-loop poles and zeros is revised. The effect of an additional zero or an additional pole on the 2nd order response is examined and pole-zero cancellation is discussed.

System type-number and its relationship to steady-state error response is revised.

2.1. Reading

You should read sections 4.2 Time Domain Criteria and 4.1 Steady-State Criteria of the Handout Control System Design Methods, Compensation Strategies and Design Criteria.

2.2. Transient Performance

2.2.1. A Second-Order System

a second order system

Where are the system poles and what does the model 2nd Order response look like for each of these cases?

ωn

ζ

3

3

3

1

3

0.8

3

0.5

3

0

2.2.2. Effect of Damping on 2nd Order Response

wn = 3;
z = [3, 2.5, 2, 1.5, 1, 0.9, 0.8, 1/sqrt(2), 0.5, 0.4, 0.3, 0.2, 0.1, 0];
Copy to clipboard
zeta = 1/sqrt(2);
G = tf(wn^2, [1, 2*zeta*wn, wn^2])
subplot(211),pzmap( G),axis([-20, 1, -4, 4])
subplot(212),step( G),axis([0,10,0,2])
Copy to clipboard
G =
Copy to clipboard
          9
Copy to clipboard
  -----------------
Copy to clipboard
  s^2 + 4.243 s + 9
Copy to clipboard
Continuous-time transfer function.
Copy to clipboard
../_images/ssntr_9_7.svg

Or download and run this script second_resp.m in MATLAB.

model 2nd order response

2.2.3. How do the natural frequency and damping ratio relate to pole locations?

T(s)=ω2ns2+ζωns+ω2n
P1,2=ζωn±jωn1ζ2=σd±jωd

pole locations

2.2.4. How do the transient performance criteria map to the closed loop poles?

2.2.4.1. Settling time Ts

Settling time is related to relative stability and speed of response.

1% settling time:

Ts4.6σd

Design region for 1% settling time

2.2.4.2. Rise Time Tr

Rise time is related to speed of response

Tr1.8ωn

Design region for specified rise time

2.2.4.3. Percentage overshoot (%OS or Mp)

Percentage overshoot is related to damping

%OS=exp(πζ1ζ2)×100
%OS(1ζ0.6)×1000ζ0.6

Design region for specified Percentage Overshoot

2.2.4.4. Combined constraints

  • If system has inadequate rise time (too slow) we must raise the natural frequency

  • If system has too much overshoot we need to increase damping

  • If transient persists too long, move the poles further to the left in the s-plane

Design area for combined constraints

2.2.5. What if the system is not second order?

  • What is the effect of an extra zero?

  • What is the effect of an extra pole?

  • What if there are many poles and zeros?

2.2.5.1. Effect of an Extra Zero

First normalize transfer function:

G(s)=C(s)R(s)=1(sωn)2+2ζ(sωn)+1

Then add a zero

G(s)=C(s)R(s)=(sαζωn)+1(sωn)2+2ζ(sωn)+1

Note that α is a multiplier of the real part of the complex poles ζωn.

2.2.5.2. 2nd order system with extra zero

Matlab demo (run zero2nd.m):

zero2nd
Copy to clipboard
Tc =
Copy to clipboard
          1000
Copy to clipboard
  ---------------------
Copy to clipboard
  10 s^2 + 140 s + 1000
Copy to clipboard
Continuous-time transfer function.
Copy to clipboard
../_images/ssntr_38_7.svg

result

Design curves (see handout):

design curves -- effect of an extra zero

2.2.5.3. .. how about adding an extra pole?

G(s)=C(s)R(s)=1((sαζωn)+1)((sωn)2+2ζ(sωn)+1)

Note that α is a multiplier of the real part of the complex poles.

2.2.5.4. 2nd order system with extra pole

Matlab demo (run pole2nd.m):

pole2nd
Copy to clipboard
Tc =
Copy to clipboard
          1000
Copy to clipboard
  ---------------------
Copy to clipboard
  10 s^2 + 140 s + 1000
Copy to clipboard
Continuous-time transfer function.
Copy to clipboard
../_images/ssntr_46_7.svg

result

Design curves (see handout):

design curves -- effect of an extra pole

2.2.6. Dominant poles and order reduction

Because the time response of many real systems will be dominated by two or three low frequency poles, a complex high order system can often be simplified by ignoring the effects of high-frequency poles and zeros or a pole that is effectively cancelled by a zero. This MATLAB script file demonstrates this.

Matlab demo (Run reduction.m)

In this example we ignore any poles or zeros that are located 4 or more times the real part of the dominant poles s=1±j or poles that a cancelled by a closed-loop zero and see that the seventh order system is effectively only a third-order system.

sigma = 1;
wd = 1;
disp('Full order system')
zeros = [-6*sigma; -3.2*sigma]
poles = [-9*sigma
   -7*sigma+j*2*wd
   -7*sigma-j*2*wd
   -3*sigma
   -2*sigma
   -sigma+j*wd
   -sigma-j*wd]
g = zpk(zeros,poles,prod(abs(poles))/prod(abs(zeros)));
Copy to clipboard
Full order system
Copy to clipboard
zeros =
   -6.0000
   -3.2000
Copy to clipboard
poles =
  -9.0000 + 0.0000i
  -7.0000 + 2.0000i
  -7.0000 - 2.0000i
  -3.0000 + 0.0000i
  -2.0000 + 0.0000i
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
Copy to clipboard
subplot(121)
pzmap(poles,zeros)
subplot(122)
step(g)
Copy to clipboard
../_images/ssntr_52_0.svg

Now remove redundant terms

Step 1: remove high frequency pole at 9σ

z1 = zeros
p1 = poles(2:7)
g1 = zpk(z1,p1,prod(abs(p1))/prod(abs(z1)));
Copy to clipboard
z1 =
   -6.0000
   -3.2000
Copy to clipboard
p1 =
  -7.0000 + 2.0000i
  -7.0000 - 2.0000i
  -3.0000 + 0.0000i
  -2.0000 + 0.0000i
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
Copy to clipboard
subplot(121)
pzmap(p1,z1)
subplot(122)
step(g,g1)
Copy to clipboard
../_images/ssntr_55_0.svg

Step 2: remove complex hf pole pair

z2 = z1
p2 = p1(3:6)
g2 = zpk(z2,p2,prod(abs(p2))/prod(abs(z2)));
Copy to clipboard
z2 =
   -6.0000
   -3.2000
Copy to clipboard
p2 =
  -3.0000 + 0.0000i
  -2.0000 + 0.0000i
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
Copy to clipboard
subplot(121)
pzmap(p2,z2)
subplot(122)
step(g,g1,g2)
Copy to clipboard
../_images/ssntr_58_0.svg

Step 3: remove hf zero

z3= z2(2)
p3 = p2
g3 = zpk(z3,p3,prod(abs(p3))/prod(abs(z3)));
Copy to clipboard
z3 =
   -3.2000
Copy to clipboard
p3 =
  -3.0000 + 0.0000i
  -2.0000 + 0.0000i
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
Copy to clipboard
subplot(121)
pzmap(p3,z3)
subplot(122)
step(g,g1,g2,g3)
Copy to clipboard
../_images/ssntr_61_0.svg

Step 4: remove pole-zero cancellation terms

z4= []
p4 = p3(2:4)
g4 = zpk(z4,p4,prod(abs(p4))/prod(abs(z4)));
Copy to clipboard
z4 =
     []
Copy to clipboard
p4 =
  -2.0000 + 0.0000i
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
Copy to clipboard
subplot(121)
pzmap(p4,z4)
subplot(122)
step(g,g1,g2,g3,g4)
Copy to clipboard
../_images/ssntr_64_0.svg

Step 5: remove last non-dominant pole’)

z5 = z4
p5 = p4(2:3)
g5 = zpk(z5,p5,prod(abs(p5))/prod(abs(z5)));
Copy to clipboard
z5 =
     []
Copy to clipboard
p5 =
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
Copy to clipboard
subplot(121)
pzmap(p5,z5)
subplot(122)
step(g,g1,g2,g3,g4,g5)
Copy to clipboard
../_images/ssntr_67_0.svg

Original system

g
Copy to clipboard
g =
Copy to clipboard
                298.12 (s+6) (s+3.2)
Copy to clipboard
  -------------------------------------------------
Copy to clipboard
  (s+9) (s+3) (s+2) (s^2 + 2s + 2) (s^2 + 14s + 53)
Copy to clipboard
Continuous-time zero/pole/gain model.
Copy to clipboard

Reduced order system

g4
Copy to clipboard
g4 =
Copy to clipboard
           4
Copy to clipboard
  --------------------
Copy to clipboard
  (s+2) (s^2 + 2s + 2)
Copy to clipboard
Continuous-time zero/pole/gain model.
Copy to clipboard
subplot(221)
pzmap(poles,zeros)
subplot(222)
step(g)
subplot(223)
pzmap(p4,z4)
subplot(224)
step(g,g4)
Copy to clipboard
../_images/ssntr_72_0.svg

What are the steady-state performance criteria?

2.3. Steady-state response

  • Canonical system

  • Disturbance rejection

  • System type for non-unity gain feedback

2.3.1. Canonical System

(unity-gain feedback)

Canonical system with unity gain feedback

E(s)=R(s)C(s)
E(s)=Go(s)1+Go(s)R(s)

2.3.2. Steady-state Performance

For a unity-gain negative feedback system with open-loop transfer function Go(s) the steady-state error (SSE) response of the closed-loop system is related to system type number according to the table shown below.

</tbody>
Copy to clipboard
  System Type Number
  Type 0 Type 1 Type 2
Type of input SSE Step Velocity Acceleration
Step$$\frac{1}{1+K_p}$$$$\frac{1}{1+K_p}$$$\infty$$\infty$
Ramp$$\frac{1}{K_v}$$$$0$$$$\frac{1}{K_v}$$$\infty$
Parabola$$\frac{1}{K_a}$$$$0$$$$0$$$$\frac{1}{K_a}$$

Position error constant for step input: R(s)=1/s:

Kp=lims0Go(s)

Velocity error constant for ramp input: R(s)=1/s2:

Kv=lims0sGo(s)

Acceleration error constant for parabolic input: R(s)=1/s3:

Ka=lims0s2Go(s)

2.4. Special Cases

For these models calculate the error response (E(s)=Go(s)Nd(s) for the “disturbance rejection” case and E(s)=R(s)C(s) for the “non-unity-gain-feedback”) case and use the final value theorem to calculate the steady state step error.

Compare your result with the result of the simulation.

You should note that in both cases the plant transfer function has type number 1. Do the rules of system type number as you understand them carry over to these special cases?

2.4.1. Disturbance rejection? (Compliance)

Assuming that the system is originally at steady-state (E(s)=R(s)C(s)=0) what is the steady-state error to a step change in the disturbance in nd(t)? (Nd(s)=1/s)

A system to illustrate compliance

[Model file disturbance_rejection.mdl]

disturbance_rejection
Copy to clipboard

2.4.2. Non-unity gain feedback

A system to illustrate non-unity gain feedback

[Model file non_unity_gain_feedback.mdl]

non_unity_gain_feedback
Copy to clipboard

2.5. Further Reading

The System Metrics section of the Control Systems Wikibook amplifies some of the topics covered in this chapter.

The topics covered in this chapter are also amplified in

  • Nise. Chapter 4: Time Response.

  • Dorf and Bishop. Chapter 5: The Performance of Feedback Control Systems.