Sunteți pe pagina 1din 38

Chapter 10: Introduction to Control Systems

10.1 For the system in Fig. P10.1 the closed-loop transfer function (CLTF) is

GC ( s )GP ( s ) Y (s)
T ( s)  
1  GC ( s )GP ( s ) H ( s ) R( s )

6 4
KP KP
a) T ( s)  s  2  6K P b) T ( s )  s  2s 
2 4K P
6 s  2  6K P 1  KP 2
4 s  2s  4 K P
2
1  KP
s2 s  2s

8 1
KP KP
c) T ( s)  s  6s 2 
3 8K P d) T ( s)  s  6 s  10 
2 KP
1  KP 3
8 s  6s 2  8K P
3
1  KP 2
2 s  6s  10  2 K P
2

s  6s 2
s  6s  10

2
KP
e) T ( s)  s 1 2 K P ( s  20)
 2
1  KP
2 20 s  21s  20  40 K P
s  1 s  20

3
KP
f) T ( s )  s  6s
2 3K P ( s  10)
 3
1 KP 2
3 10 s  16s 2  60s  30 K P
s  6s s  10

KPs  KI 2
g) T ( s )  s s  5s  4 
2 2( K P s  K I )
KPs  KI 2 s  5s  ( 4  2 K P ) s  2 K I
3 2
1
s s 2  5s  4

1
(KDs  KP )
h) T ( s )  s  3s 
2 KDs  KP
1  (KDs  KP ) 2
1 s  (3  K D ) s  K P
2

s  3s

KDs2  KPs  KI 1
s s  2s  6 
2 KDs2  KPs  KI
i) T ( s) 
K s2  KPs  KI 1 s 3  ( 2  K D ) s 2  (6  K P ) s  K I
1 D
s s 2  2s  6

Copyright © 2016 John Wiley & Sons


Chapter 10

10.2 The closed-loop transfer function (CLTF) is

G( s) 0.6 0.6s
T ( s)   
1  G( s) H ( s) 1  0.6 s  0.6
s

a) Because the input is a step (constant), we can use the DC gain of the CLTF to obtain the
steady-state response. Since T(s = 0) = 0, the steady-state output is y ()  0 .

b) The time constant of the first-order CLTF is  = 1/0.6 = 1.6667 s. Hence the settling time is
approximately four time constants, or tS = 4= 6.6667 s.

2
Copyright © 2016 John Wiley & Sons
Chapter 10

10.3 The closed-loop transfer function (CLTF) is

1
KP 2
T (s) 
K PGP ( s )
 s  6s  8  KP
1  K P GP ( s ) H ( s ) 1  K 1 s  6s  8  K P
2

s  6s  8
P 2

a) When gain KP = 2, the denominator of the closed-loop transfer function is

Characteristic equation: s 2  6 s  10  0 Closed-loop roots: s  3  j

Since the closed-loop roots have negative real parts the closed-loop system is stable for KP = 2.

b) The CLTF is second order. Maximum overshoot is solely a function of damping ratio 

M OS  e / 1 2
= 0.25

Hence, for MOS = 0.25 we require  = 0.4037. The first-order denominator term of the CLTF is

6  2n  2(0.4037)n

where the undamped natural frequency is n  8  K P = 7.4313 rad/s. Therefore KP = 47.224.

c) When gain KP = 0.5, the denominator of the closed-loop transfer function is s 2  6 s  8.5 .
The closed-loop roots are s1 = –3.7071 and s2 = –2.2929. The “slowest” closed-loop root is s2 and
its associated time constant is 2 = 1/2.2929 = 0.4361 s. The settling time is tS = 42 = 1.7445 s.

3
Copyright © 2016 John Wiley & Sons
Chapter 10

10.4 The closed-loop transfer function (CLTF) is

2
KP
K PGP ( s ) s 1 2 K P ( s  6)
T ( s)    2
1  K PGP ( s ) H ( s) 1  K 2 6 s  7 s  6  12 K P
s 1 s  6
P

a) The (closed-loop) undamped natural frequency is obtained from the zeroth-order term, or
n  6  12K P = 4 rad/s. Hence the gain setting must be KP = 0.8333.

b) The (closed-loop) damping ratio is obtained from the first-order term 7 = 2n , where the
undamped natural frequency is n  6  12K P . Setting  = 0.7 and solving for the gain yields
the solution KP = 1.5833.

c) With gain setting KP = 2, the CLTF is

4( s  6)
T (s) 
s  7 s  30
2

Because the input is a constant (magnitude of 4) we can use the CLTF DC gain: T(s = 0) = 24/30
= 0.8 and hence the steady-state output is yss = (4)(0.8) = 3.2.

4
Copyright © 2016 John Wiley & Sons
Chapter 10

10.5 a) The complete closed-loop transfer function is

1
K1G ( s )
Y (s) s
T (s)  
R( s) 1  K G ( s) 1
1
s

where G(s) is the closed-loop transfer function of the “inner” closed-loop feedback system:

1
G ( s)  s  4  1
1
K2 s  4  K2
s4

Substituting this result for G(s) yields the overall CLTF:

1 1
K1
Y ( s) s  4  K2 s K1
T ( s)   
R( s) 1  K 1 1 s 2  ( 4  K 2 ) s  K1
s  4  K2 s
1

b) The (closed-loop) damping ratio is obtained from the first-order term 4 + K2 = 2n , where
the undamped natural frequency is n  K1 . Substituting the Option 1 gains (K1 = 15, K2 = 2)
yields n = 3.873 rad/s and damping ratio  = 0.7746. Substituting the Option 2 gains (K1 = 30,
K2 = 3) yields n = 5.4772 rad/s and damping ratio  = 0.6390. Therefore Option 1 gains provide
the largest closed-loop damping ratio.

5
Copyright © 2016 John Wiley & Sons
Chapter 10

10.6 a) We may use Table 10-3 to compute the steady-state tracking error. Note that the plant
is a type 1 system (it has one “pure integrator”). For a ramp input (with slope 0.2) the steady-
state error for a type-1 system is

0 .2
Type-1 system: ess 
K sv

where the “static velocity error constant” is K sv  lim s G ( s ) . The forward transfer function is
s0

3K P
G ( s) 
s ( s  4)

When the control gain is KP = 2, we get Ksv = 6/4 = 1.5, and the steady-state error ess = 0.1333.

b) If we use a PI controller the forward transfer function becomes

KPs  KI 3 3( K s  K I )
G ( s)  GC ( s)GP ( s)   2P
s s( s  4) s ( s  4)

Because the forward transfer function is type 2 the steady-state error for a ramp input is zero.

6
Copyright © 2016 John Wiley & Sons
Chapter 10

10.7 The closed-loop transfer function (CLTF) is

KPs  KI 1
Y ( s) s ( s  2)( s  8) KPs  KI
T ( s)    3
K
R( s ) 1  P s  K I 1 s  10s  (16  K P ) s  K I
2

s ( s  2)( s  8)

a) Using gains KP = 5 and KI = 25 the CLTF becomes

5s  25
T ( s) 
s  10 s 2  21s  25
3

The three roots of the closed-loop transfer function are s1 = –7.6926 and s2,3  1.1537  j1.3852 .
Since all closed-loop roots have negative real parts the closed-loop system is stable for this gain
setting.

b) We want the output at time t = 8 s for a ramp input r(t) = 1.4t. The complex closed-loop root
at s2,3  1.1537  j1.3852 is the “slowest” root and its settling time is approximately 3.5 s.
Hence, the closed-loop transient response has died out by t = 8 s. Using Table 10-1 we see that
the for a type 1 system the steady-state error for a ramp input (with slope 1.4) is

1 .4
Type-1 system: ess 
K sv

The system is clearly type 1 due to the PI controller in the forward path. The “static velocity
error constant” is K sv  lim s G ( s ) . The forward transfer function is
s0

KPs  KI 1 5s  25
G ( s)  GC ( s)GP ( s)   (using the PI gains)
s ( s  2)( s  8) s( s  2)( s  8)

Hence Ksv = 25/16 = 1.5625, and the steady-state error for a ramp input is ess = 0.8960. The
output at time t = 8 s can be computed using the tracking error since e = r – y. Therefore

y(8) = r(8) – ess = (1.4)(8) – 0.8960 = 10.3040

7
Copyright © 2016 John Wiley & Sons
Chapter 10

10.8 a) The MATLAB commands for computing the closed-loop transfer function are

>> Kp = 3; % P gain
>> sysGp = tf(6,[1 2]); % plant transfer function GP(s)
>> sysG = Kp*sysGp; % forward transfer function G(s)
>> sysH = 1; % feedback transfer function H(s)
>> sysT = feedback(sysG,sysH) % closed-loop transfer function T(s)

The solution is T ( s )  18 which verifies the solution in Problem 10.1a.


s  20

b) The single root of the CLTF is a negative real number s = –20 and hence the transient closed-
loop step response is an exponential function (no oscillations). The time constant is  = 1/20 =
0.05 s and the settling time is tS = 4 = 0.2 s. The DC gain of the CLTF is 18/20 = 0.9 and
therefore the steady-state response to a unit-step input is yss = 0.9.

c) The composite Simulink model is below: note the two separate systems and simulations. Both
step function blocks are unit-step inputs.

The plot of outputs y and y1 vs. time t from executing the Simulink model is below:
1

0.9

0.8

0.7

0.6
Output, y

0.5

0.4

0.3

0.2

0.1

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time, s

Note that both y and y1 responses are identical (as expected) and show an exponential rise to a
steady-state value of 0.9 with a settling time of 0.2 s which verifies part (b).

8
Copyright © 2016 John Wiley & Sons
Chapter 10

10.9 a) The MATLAB commands for computing the closed-loop transfer function are

>> Kp = 5; % P gain
>> sysGp = tf(8,[1 6 0 0]); % plant transfer function GP(s)
>> sysG = Kp*sysGp; % forward transfer function G(s)
>> sysH = 1; % feedback transfer function H(s)
>> sysT = feedback(sysG,sysH) % closed-loop transfer function T(s)

40
The solution is T ( s )  which verifies the solution in Problem 10.1c.
s  6 s 2  40
3

b) The three roots of the CLTF are s1  6.852 and s2,3  0.4260  j 2.3783 . Because two
roots are complex the transient response will exhibit oscillations (with frequency of 2.378 rad/s).
However, the two complex roots have positive real parts and therefore the closed-loop system is
unstable and does not reach a steady-state value (the response oscillates and diverges to infinity).

c) The composite Simulink model is below:

The plot of outputs y and y1 vs. time t from executing the Simulink model is below:

60
50
40
30
20
Output, y

10
0
-10
-20
-30
-40
-50
0 2 4 6 8 10
Time, s

Note that both y and y1 responses are identical (as expected) and show an unstable oscillatory
response to the step input which verifies part (b).

9
Copyright © 2016 John Wiley & Sons
Chapter 10

10.10 a) The MATLAB commands for computing the closed-loop transfer function are

>> Kp = 4; % P gain
>> sysGp = tf(1,[1 6 10]); % plant transfer function GP(s)
>> sysG = Kp*sysGp; % forward transfer function G(s)
>> sysH = 2; % feedback transfer function H(s)
>> sysT = feedback(sysG,sysH) % closed-loop transfer function T(s)

4
The solution is T ( s )  which verifies the solution in Problem 10.1d.
s  6 s  18
2

b) The two roots of the CLTF are s1, 2  3  j 3 . Because the two roots are complex the
transient response will exhibit oscillations (with frequency of 3 rad/s). The time constant is  =
1/3 = 0.3333 s and the settling time is tS = 4 = 1.3333 s. The DC gain of the CLTF is 4/18 =
0.2222 and therefore the steady-state response to a unit-step input is yss = 0.2222.

c) The composite Simulink model is below: Note the feedback transfer function H(s) = 2.

The plot of outputs y and y1 vs. time t from executing the Simulink model is below:

0.25

0.2

0.15
Output, y

0.1

0.05

0
0 0.5 1 1.5 2 2.5
Time, s

Note that both y and y1 responses are identical (as expected) and show an oscillatory response to
the step input with settling time of 1.333 s and steady-state response of 0.222 which verifies part
(b). The closed-loop response is well damped and only shows a slight overshoot of yss.

10
Copyright © 2016 John Wiley & Sons
Chapter 10

10.11 a) The MATLAB commands for computing the closed-loop transfer function are

>> Kp = 0.3; % P gain


>> KI = 2; % I gain
>> sysGc = tf([Kp KI],[1 0]); % PI transfer function GC(s)
>> sysGp = tf(2,[1 5 4]); % plant transfer function GP(s)
>> sysG = sysGc*sysGp; % forward transfer function G(s)
>> sysH = 1; % feedback transfer function H(s)
>> sysT = feedback(sysG,sysH) % closed-loop transfer function T(s)

0 .6 s  4
The solution is T ( s )  which verifies the solution in Problem 10.1g.
s 3  5 s 2  4 .6 s  4

b) The three roots of the CLTF are s1  4.1190 and s2,3  0.4405  j 0.8815 . Because two
roots are complex the transient response will exhibit oscillations (with frequency of 0.8815 rad/s).
The slowest time constant is  = 1/0.4405 = 2.2701 s and the settling time is tS = 4 = 9.081 s.
The DC gain of the CLTF is 4/4 = 1 and therefore the steady-state response to a unit-step input is
yss = 1.

c) The composite Simulink model is below:

The plot of outputs y and y1 vs. time t from executing the Simulink model is below:
1.4

1.2

1
Output, y

0.8

0.6

0.4

0.2

0
0 5 10 15
Time, s

Note that both y and y1 responses are identical (as expected) and show an oscillatory response to
the step input with settling time of 9.1 s and steady-state response of unity which verifies part (b).

11
Copyright © 2016 John Wiley & Sons
Chapter 10

10.12 a) The closed-loop transfer function (CLTF) is

3
K ( s  5)
Y ( s) s2 3Ks  15K
T (s)   
R( s ) 1  K ( s  5) 3 s 2  3Ks  15K
s2

Using the “standard form” for an underdamped second-order system, the zeroth-order term
provides the undamped natural frequency, n  15K , and the first-order term is 2n  3K .
Substituting for n we obtain the damping ratio:

  1.5 K / 15 K = 0.7071

Therefore the required gain is K = 3.3333.

b) The following MATLAB commands will create the root-locus plot and draw the “s grid” lines
on the root locus:

>> sysGc = tf([1 5],1); % PD transfer function GC(s)


>> sysGp = tf(3,[1 0 0]); % plant transfer function GP(s)
>> sysGH = sysGc*sysGp; % open-loop transfer function G(s)H(s)
>> rlocus(sysGH); % draw root locus of G(s)H(s)
>> sgrid; % draw s-grid on root locus
>> [K,CL_roots] = rlocfind(sysGH) % click on root locus plot to get K

Root Locus
5
0.9 0.81 0.7 0.56 0.4 0.2
4
0.955
3

2 0.988

1
Imaginary Axis

12 10 8 6 4 2
0

-1

-2 0.988

-3
0.955
-4
0.9 0.81 0.7 0.56 0.4 0.2
-5
-12 -10 -8 -6 -4 -2 0
Real Axis

Clicking on the root-locus branch that crosses the 45-deg “s grid” line of  = 0.7 gives us the gain
K = 3.2506 and closed-loop roots  4.877  j 4.953 which essentially verifies part (a).

12
Copyright © 2016 John Wiley & Sons
Chapter 10

10.13 a) The MATLAB commands for the root locus are below:

>> sysGH = tf(40,[3 24 51 30]); % plant transfer function GP(s) = G(s)H(s)


>> rlocus(sysGH); % draw root locus of G(s)H(s)

Root Locus
10

2
Imaginary Axis

-2

-4

-6

-8

-10
-16 -14 -12 -10 -8 -6 -4 -2 0 2 4
Real Axis

b) We can use MATLAB’s rlocfind command to estimate the gain KP where the closed-loop
roots cross the imaginary axis (i.e., marginal stability).

>> [Kp,CL_roots] = rlocfind(sysGH) % click on root locus plot to get KP

Placing the cross-hair target on the imaginary axis crossing yields Kp = 9.1698 and the closed-
loop roots CL_roots = –7.9535 and  0.0233  j 4.0779 which are very close to point of
marginal stability (i.e., the real part of the complex roots is nearly zero). We can use the
MATLAB command rlocus to iterate on Kp until we obtain purely imaginary closed-loop
roots. For example:

>> Kp = 9.2; % P gain


>> CL_roots = rlocus(sysGH,Kp) % compute closed-loop roots for given gain KP

Eventually we find that for gain KP = 9.45 the closed-loop roots are –8 and  j 4.1231 . This
gain and closed-loop roots indicate the marginal stability condition.

13
Copyright © 2016 John Wiley & Sons
Chapter 10

c) The closed-loop Simulink model with gain KP = 9.45 is below:

The closed-loop response to a unit-step input is a harmonic oscillation as expected (i.e., marginal
stability). The period is about 1.52 sec, so the frequency is  = 2/1.52 = 4.13 rad/s which is
very close to the closed-loop pole at the imaginary axis crossing from part (b).

1.8

1.6

1.4

1.2
Output, y

0.8

0.6

0.4

0.2

0
0 2 4 6 8 10
Time, s

14
Copyright © 2016 John Wiley & Sons
Chapter 10

10.14 The Simulink model of the closed-loop system with a PI controller and ramp input (slope
is 1.4) is below:

The plot of ramp input r(t) and closed-loop response y(t) is below. Note that the output at time t
= 8 s is about 10.3 which verifies the calculation in Problem 10.7b.

12

10 Ramp input, r(t)


Output, y(t)
Ramp input, r and output, y

0
0 1 2 3 4 5 6 7 8
Time, s

15
Copyright © 2016 John Wiley & Sons
Chapter 10

10.15 a) The MATLAB commands for the root locus using PD control are below:

>> sysGc = tf([1 1],1); % PD controller transfer function GC(s)


>> sysGp = tf(1,[1 0 4]); % plant transfer function GP(s)
>> sysGH = sysGc*sysGp; % forward transfer function G(s)H(s)
>> rlocus(sysGH); % draw root locus of G(s)H(s)
>> sgrid; % draw s-grid on root locus
>> [K,CL_roots] = rlocfind(sysGH) % click on root locus plot to get K

Placing the cross-hair target on the approximate 45-deg line (i.e.,  = 0.7071) on the root locus
and clicking (see root locus plot below) yields the gain K and closed-loop roots:

Gain K = 3.9753 and CL_roots =  1.9877  j 2.0061

We can iterate on gain K using the rlocus command to obtain the gain K = 4 and closed-loop
roots  2  j 2 (i.e.,  = 0.7071).

Root Locus
2.5
0.76 0.64 0.5 0.38 0.24 0.12

2
0.88

1.5

1
0.97

0.5
Imaginary Axis

3.5 3 2.5 2 1.5 1 0.5


0

-0.5

0.97
-1

-1.5

0.88
-2

0.76 0.64 0.5 0.38 0.24 0.12


-2.5
-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0
Real Axis

Root locus with PD controller

b) The MATLAB commands for the root locus with the lead controller are below:

>> sysGc = tf([1 1],[1 10]); % lead controller transfer function GC(s)
>> sysGp = tf(1,[1 0 4]); % plant transfer function GP(s)
>> sysGH = sysGc*sysGp; % forward transfer function G(s)H(s)
>> rlocus(sysGH); % draw root locus of G(s)H(s)
>> [K,CL_roots] = rlocfind(sysGH) % click on root locus plot to get K

16
Copyright © 2016 John Wiley & Sons
Chapter 10

The root locus is below. For maximum damping we want to minimize the angle from the
negative real axis to the radial line from the origin to the root locus. The “knee” of the complex
root-locus branch (see selected point below) will maximize damping. The gain and associated
closed-loop roots are

Gain K = 43.8148 and CL_roots =  3.3849  j 3.8065 and –3.2303

Root Locus
25

20

15

10

5
Imaginary Axis

-5

-10

-15

-20

-25
-10 -8 -6 -4 -2 0 2
Real Axis

Root locus with lead controller

c) The Simulink models of the closed-loop system with the PD and lead controllers are below:

System with PD controller

17
Copyright © 2016 John Wiley & Sons
Chapter 10

System with lead controller

The closed-loop responses to a step input are plotted on the same figure (below):

0.25
PD controller
Lead controller
0.2

0.15
Output, y

0.1

0.05

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Time, s

18
Copyright © 2016 John Wiley & Sons
Chapter 10

10.16 The basic MATLAB commands for creating the root locus with the PD controller are

>> zC = 0.5; % select the zero location zC


>> sysGc = tf([1 zC],1); % PD transfer function (without gain K)
>> sysGp = tf(2,[1 3 0 0 ]); % plant transfer function
>> sysGH = sysGc*sysGp; % open-loop transfer function
>> rlocus(sysGH); % create root locus plot for open-loop TF
>> sgrid % draw s-grid ( and n contours) on root locus
>> [K,CL_poles]=rlocfind(sysGH); % put crosshairs on root locus and click

We see with trial values of zero location zC that if the PD controller zero is to the left of the plant
pole at s = –3 then the two root-locus branches emanating from the double open-loop pole at s = 0
move to the right-half plane (unstable). Furthermore, is the PD controller zero zC is too close to
the open-loop pole at s = –3 then it has little effect on the two loci emanating from the origin.
Therefore, the key is to place the PD zero near to the origin so that it “pulls” the double loci
branches to the left in order to increase damping. A good solution occurs with zC = 0.5 (see root
locus plot below)

Root Locus
3
3
0.64 0.5 0.38 0.28 0.17 0.08
2.5

0.8
2
2

1.5

1 0.94 Satisfies  > 0.65 1

and n > 1 rad/s 0.5


Imaginary Axis

0.5

-1 0.94
1

1.5

-2
2
0.8

2.5
0.64 0.5 0.38 0.28 0.17 0.08
-3
-3 -2.5 -2 -1.5 -1 -0.5 30
Real Axis

Root locus with controller zero at zC = –0.5

Clearly part of the complex loci branches have damping ratio  > 0.65 and n > 1 rad/s (see doted
region on root locus plot). Therefore it is possible to use rlocfind to click on the branch in
this region and obtain the following results:

K = 1.8572, and the three closed-loop poles are s1 = –1.1902 and s2,3  0.9049  j 0.8611

Hence a good PD controller design is GC(s) = 1.8572(s + 0.5). Using this PD controller the two
underdamped poles of the closed-loop system have undamped natural frequency n = 1.25 rad/s
and damping ratio  = 0.724.

19
Copyright © 2016 John Wiley & Sons
Chapter 10

10.17 a) To apply Ziegler-Nichol’s reaction-curve method, we obtain the plant’s open-loop


response to a unit-step input (obtained using Simulink). The open-loop response is below:

Open-loop response to unit step input, y


2.5

1.5

0.5

0
0 50 100 150 200 250 300 350 400
Time, s

From this “S-shaped reaction curve” response we estimate the delay time as Td = 15 s and the
maximum slope as R = 2.7/98 = 0.0276. Using Table 10-1, the Ziegler-Nichols PID gains are

1 .2
Proportional gain: KP   2.904
RTd

0 .6
Integral gain: KI   0.097
RTd2

0 .6
Derivative gain: KD   21.778
R

b) The Simulink model of the closed-loop system using the Ziegler-Nichols PID gains is below:

20
Copyright © 2016 John Wiley & Sons
Chapter 10

The closed-loop response to a unit-step input is shown below. Note that the maximum percent
overshoot is almost 75%.

1.8

1.6

1.4
Closed-loop response, y
1.2

0.8

0.6

0.4

0.2

0
0 50 100 150 200 250 300 350 400
Time, s
Closed-loop response using Ziegler-Nichols PID gains (S-curve method)

c) We need to add damping in order to decrease the overshoot. The closed-loop response can be
improved by increasing the derivative gain KD that was obtained using the Ziegler-Nichols
reaction-curve method. After some trial and error, we see that a derivative gain KD = 65 and
proportional gain KP = 4 provides a fast response with less overshoot (more damping). A plot
showing both closed-loop responses using the PID schemes from part (b) and part (c) is below.

1.8
Ziegler-Nichols PID gains
1.6
K = 4, K = 0.097, K = 65
P I D
1.4
Closed-loop response, y

1.2

0.8

0.6

0.4

0.2

0
0 50 100 150 200 250 300 350 400
Time, s
Closed-loop response using Ziegler-Nichols PID gains (S-curve method) and improved gains

21
Copyright © 2016 John Wiley & Sons
Chapter 10

10.18 To apply Ziegler-Nichol’s ultimate-gain method, we obtain the plant’s closed-loop


response to a unit-step input with a proportional (P) controller only. The P-gain KP is
increased until sustained oscillations are observed (i.e., marginal stability). The plot below
shows the closed-loop step response with the “ultimate gain” of KU = 4.65.

1.8

1.6

1.4
Closed-loop response, y

1.2

0.8

0.6

0.4

0.2

0
0 50 100 150 200 250 300 350 400
Time, s

From this plot we estimate the period to be PU = 70 s. Using Table 10-2, the Ziegler-Nichols PID
gains are

Proportional gain: K P  0.6 KU  2.79

1 .2 K U
Integral gain: KI   0.08
PU

Derivative gain: K D  0.075KU PU  24.41

b) The Simulink model of the closed-loop system using the Ziegler-Nichols PID gains is below:

22
Copyright © 2016 John Wiley & Sons
Chapter 10

The closed-loop response to a unit-step input is shown below. Note that the maximum percent
overshoot is 60%.

1.8

1.6

Closed-loop PID response, y


1.4

1.2

0.8

0.6

0.4

0.2

0
0 50 100 150 200 250 300 350 400
Time, s
Closed-loop response using Ziegler-Nichols PID gains (ultimate-gain method)

c) We need to add damping in order to decrease the overshoot. The closed-loop response can be
improved by increasing the derivative gain KD that was obtained using the Ziegler-Nichols
ultimate-gain method. After some trial and error, we see that a derivative gain KD = 60 and
proportional gain KP = 3.5 provides a fast response with less overshoot (more damping). A plot
showing both closed-loop responses using the PID schemes from part (b) and part (c) is below.

1.8
Ziegler-Nichols PID gains
1.6 Kp = 3.5, K I = 0.08, K D = 60
Closed-loop PID responses, y

1.4

1.2

0.8

0.6

0.4

0.2

0
200 250 300 350 0400 50 100 150
Time, s
Closed-loop response using Ziegler-Nichols PID gains (ultimate-gain method) and improved gains

23
Copyright © 2016 John Wiley & Sons
Chapter 10

10.19 a) The MATLAB commands for the root locus plots are

>> pL = 4; % select the lead controller pole location


>> sysGc = tf([1 3],[1 pL]); % lead controller transfer function (without gain K)
>> KA = 2; % actuator gain
>> sysGp = tf(1,[1 0.3 0 ]); % plant transfer function
>> sysGH = sysGc*KA*sysGp; % open-loop transfer function
>> rlocus(sysGH); % create root locus plot for open-loop TF
>> sgrid % draw s-grid ( and n contours) on root locus

The four different root-locus plots for the four different lead controllers are below:
Root Locus Root Locus
10 20
10 20
0.32 0.23 0.16 0.115 0.07 0.035 0.54 0.4 0.3 0.21 0.13 0.0617.5
8
8 15
15 0.7
0.48
6 12.5
6
10
10
4 7.5
4
0.75 0.9
5
2 5
2

Imaginary Axis
Imaginary Axis

2.5

0 0

-2 2.5
2 -5
5
0.75 0.9
-4 7.5
4
-10
10
-6
6 12.5
0.48 -15 0.7
-8 15
8
0.32 0.23 0.16 0.115 0.07 0.035 0.54 0.4 0.3 0.21 0.13 0.0617.5
-10 -20
-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 10 0 -15 -10 -5 20 0
Real Axis Real Axis

(i) Lead controller (s+3)/(s+4) (ii) Lead controller (s+3)/(s+15)

Root Locus Root Locus


10 15
0.91 0.83 0.72 0.58 0.4 0.2 0.86 0.76 0.64 0.5 0.34 0.16
8
0.96 0.94
10
6

4
0.99 5 0.985
2
Imaginary Axis

Imaginary Axis

25 20 15 10 5 30 25 20 15 10 5
0 0

-2

0.99 -5 0.985
-4

-6
-10
0.96 0.94
-8
0.91 0.83 0.72 0.58 0.4 0.2 0.86 0.76 0.64 0.5 0.34 0.16
-10 -15
-25 -20 -15 -10 -5 0 -30 -25 -20 -15 -10 -5 0
Real Axis Real Axis

(iii) Lead controller (s+3)/(s+25) (iv) Lead controller (s+3)/(s+30)

b) When the pole of the lead controller is near the zero of the controller (at s = –3) the lead controller has
very little effect on the dominant complex closed-loop pole locations – see plot (i). As the lead controller
pole is moved to the left (i.e., pL becomes larger) the complex root locus branches are bent to the left and
closer to the negative real axis – see (ii) and (iii). For lead controllers with large pL the closed-loop system
has improved damping and faster response because the dominate complex poles have moved to the left and
are closer to the negative real axis. The root locus for the lead controller with a pole at –30 [plot (iv)]
resembles the PD controller root locus of Example 10.12 (Fig. 10.42). The root locus for the lead
controller with a pole at –15 [plot (ii)] resembles the lead controller root locus of Example 10.13 (Fig.
10.49). The low-pass filtering effect of the lead controller pole is diminished as the pole is moved to the
left and hence the lead controller “looks like” a pure PD controller.

24
Copyright © 2016 John Wiley & Sons
Chapter 10

10.20 The MATLAB commands create the Bode diagram for a unity P-gain, KP = 1

>> Kp = 1; % P-gain
>> sysGp = tf(0.3,[0.04 0.12 1.08 1 0]); % plant transfer function
>> sysGH = Kp*sysGp; % open-loop transfer function
>> bode(sysGH); % create Bode diagram
>> grid; % draw grid

Bode Diagram
50

0
Magnitude (dB)

-50

-100

-150
-90
Phase (deg)

-180

-270

-360
-2 -1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
Bode diagram for P-gain KP = 1

For a phase margin of 50 deg, the phase angle of KPG(s)H(s) must be –130 deg at the frequency
that corresponds to 0 dB on the magnitude Bode plot. The above Bode diagram shows that the
phase is roughly –130 deg at frequency  = 0.75 rad/s. The magnitude plot shows roughly –10
dB at frequency  = 0.75 rad/s when the P-gain is unity. Hence the magnitude plot must be
shifted upwards by 10 dB which corresponds to increasing the gain by 1010/20 = 3.16. Therefore a
P-gain setting of KP = 3.16 will result in a phase margin of 50 deg.

The MATLAB commands verify this approximate value for the proper gain setting for KP:

>> Kp = 3.16; % P-gain


>> sysGp = tf(0.3,[0.04 0.12 1.08 1 0]); % plant transfer function
>> sysGH = Kp*sysGp; % open-loop transfer function
>> [Gm,Pm,Wgm,Wpm] = margin(sysGH) % compute gain and phase margins

The result is Pm = 48.9 deg which is very close to the desired 50 deg.

25
Copyright © 2016 John Wiley & Sons
Chapter 10

10.21 a) The MATLAB commands to compute gain and phase margins for P-control are

>> Kp = 2.5; % P-gain


>> sysGp = tf(40,[3 24 51 30]); % plant transfer function
>> sysGH = Kp*sysGp; % open-loop transfer function
>> margin(sysGH) % plots Bode diagram and computes GM, PM
Bode Diagram
Gm = 11.6 dB (at 4.12 rad/sec) , Pm = 50.9 deg (at 1.97 rad/sec)
50

Magnitude (dB) 0

-50

-100

-150
0
Phase (deg)

-90

-180

-270
-2 -1 0 1 2 3
10 10 10 10 10 10
Frequency (rad/sec)

The gain and phase margins are Gm = 11.6 dB and Pm = 50.9 deg, respectively.

b) The MATLAB commands to compute gain and phase margins for PD-control are

>> sysGc = tf([1.5 2.5],1); % PD controller transfer function


>> sysGp = tf(40,[3 24 51 30]); % plant transfer function
>> sysGH = sysGc*sysGp; % open-loop transfer function
>> margin(sysGH) % plots Bode diagram and computes GM, PM
Bode Diagram
Gm = Inf dB (at Inf rad/sec) , Pm = 80.8 deg (at 3.09 rad/sec)
20

0
Magnitude (dB)

-20

-40

-60
0

-45
Phase (deg)

-90

-135

-180
-2 -1 0 1 2
10 10 10 10 10
Frequency (rad/sec)

The gain and phase margins are Gm = infinity and Pm = 80.8 deg, respectively. The gain
margin is infinite because the phase angle never reaches –180 deg.

26
Copyright © 2016 John Wiley & Sons
Chapter 10

c) The MATLAB commands to plot the root locus (P-controller) are

>> sysGp = tf(40,[3 24 51 30]); % plant transfer function


>> sysGH = sysGp; % open-loop transfer function
>> rlocus(sysGH) % plots root locus for P-controller system

Root Locus
10

2
Imaginary Axis

-2

-4

-6

-8

-10
-16 -14 -12 -10 -8 -6 -4 -2 0 2 4
Real Axis

Root locus for system with P-controller

The MATLAB commands to plot the root locus (PD-controller) are

>> sysGc = tf([1 1.66667],1); % PD controller transfer function


>> sysGp = tf(40,[3 24 51 30]); % plant transfer function
>> rlocus(sysGc*sysGp) % plots root locus for PD-controller system

Root Locus
3

1
Imaginary Axis

-1

-2

-3
-6 -5 -4 -3 -2 -1 0
Real Axis

Root locus for system with PD-controller

We see that the closed-loop system with P-control can be driven unstable if the gain is too high;
i.e., the Bode diagram shows a finite gain margin and the root locus shows the complex poles
crossing the imaginary axis and moving into the right-half plane. Adding a zero at s = –1.6667
(PD control) shifts the breakaway point to the left (faster response) and causes the asymptotes to
be 90 deg which results in a stable closed-loop system for all gains (i.e., the complex branches
never cross the imaginary axis). The Bode diagram shows infinite gain margin for PD control.

27
Copyright © 2016 John Wiley & Sons
Chapter 10

10.22 We begin the controller design by computing the steady-state error for a type 1 system
with a ramp input (slope is 0.5)
0 .5
Type-1 system: ess 
K sv

where the “static velocity error constant” is K sv  lim s G ( s ) . The forward transfer function is
s0

K (s  zL ) 0 .1
G ( s )  GC ( s )GP ( s ) 
s  p L s ( s  1)( s  6)

Therefore the static velocity error constant is K sv  0.1Kz L and the steady-state error requirement
6 pL
is
0.5 30 p L
ess    0 .2 (A)
K sv Kz L

Next, we can check the stability margins for a simple P-controller using MATLAB’s margin
command:

>> sysGp = tf(0.1,[1 7 6 0]); % plant transfer function


>> sysGH = sysGp; % open-loop transfer function
>> Kp = 48; % P-gain
>> margin(Kp*sysGH) % plots Bode diagram and computes GM, PM
Bode Diagram
Gm = 18.8 dB (at 2.45 rad/sec) , Pm = 50.2 deg (at 0.663 rad/sec)
100

50
Magnitude (dB)

-50

-100

-150

-200
-90

-135
Phase (deg)

-180

-225

-270
-2 -1 0 1 2 3
10 10 10 10 10 10
Frequency (rad/sec)

We see that with P-gain KP = 48 the gain margin is 18.8 dB and phase margin is 50.2 deg. If the
P-gain is increased the 50-deg phase margin constraint is violated. The steady-state error using a
P-controller (with gain KP = 48) is

0.5 0.5
ess    0.625  violates constraint Eq. (A)
K sv 0.01667 K P

28
Copyright © 2016 John Wiley & Sons
Chapter 10

Hence while a simple P-controller can satisfy the GM and PM constraints it cannot satisfy the
steady-state accuracy requirement.

We can increase the gain KP so that the steady-state error is less than 0.2 as required. Therefore,
set KP = 150 so that ess = 0.2. The gain and phase margins with KP = 150 are

>> sysGp = tf(0.1,[1 7 6 0]); % plant transfer function


>> sysGH = sysGp; % open-loop transfer function
>> Kp = 150; % P-gain
>> margin(Kp*sysGH) % plots Bode diagram and computes GM, PM
Bode Diagram
Gm = 8.94 dB (at 2.45 rad/sec) , Pm = 22.2 deg (at 1.41 rad/sec)
100

50
Magnitude (dB)

-50

-100

-150
-90

-135
Phase (deg)

-180

-225

-270
-2 -1 0 1 2 3
10 10 10 10 10 10
Frequency (rad/sec)

Note that the 0-dB and 180-deg crossover frequencies are close to each other which results in the
low gain and phase margins.

We can increase the phase margin by adding the lead controller zero near the 0-dB crossover
frequency. Hence, choose zL = 1. Next, select the lead controller pole at pL = 7. Equation (A)
requires that the controller gain K be at least 1050 so that the steady-state error is 0.2. The gain
and phase margins with the lead controller and gain K = 1050 are computed below:

>> sysGc = tf([1 1],[1 7]); % lead controller transfer function


>> sysGp = tf(0.1,[1 7 6 0]); % plant transfer function
>> sysGH = sysGc*sysGp; % open-loop transfer function
>> K = 1050; % controller gain
>> margin(K*sysGH) % plots Bode diagram and computes GM, PM

The Bode diagram (next page) shows that gain margin is Gm = 14.3 dB and phase margin is
Pm = 51.9 deg which satisfies the first two design requirements

29
Copyright © 2016 John Wiley & Sons
Chapter 10

Bode Diagram
Gm = 14.3 dB (at 6.48 rad/sec) , Pm = 51.9 deg (at 2.23 rad/sec)
50

Magnitude (dB)
-50

-100

-150
-90

-135
Phase (deg)

-180

-225

-270
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

Bode diagram with lead controller 1050(s + 1)/(s + 7)

Hence, a satisfactory lead controller design is

1050( s  1)
GC ( s ) 
s7

30
Copyright © 2016 John Wiley & Sons
Chapter 10

10.23 Using the Bode diagram in Fig. P10.23, we see that the –180 deg phase-crossing frequency
is about 1 rad/s and the 0-dB gain crossover frequency is about 0.66 rad/s. The magnitude
at the phase-crossing frequency is about –7 dB, so the gain margin (in decibels) is 7 dB.
The gain margin as a multiplicative factor is 107/20 so GM = 2.24.

The phase angle at the 0-dB gain crossover frequency is roughly –158 deg. Hence the phase
margin is the difference between the –180 deg and –158 deg, or pm = 22 deg.

Since the GM is 2.24 and the current gain is K = 2, the control gain for marginal stability is
(2.24)(2) or KMS = 4.48.

31
Copyright © 2016 John Wiley & Sons
Chapter 10

10.24 a) The MATLAB commands for the root locus plot are

>> KV = 2.2e-4; % solenoid/valve gain


>> sysGp = tf(7.003e6,[1 28.3 15890 0]); % plant transfer function
>> sysGH = KV*sysGp; % open-loop transfer function
>> rlocus(sysGH); % create root locus plot for open-loop TF

The root-locus plot with P-control is below. Clearly a simple proportional controller will not
work since the two complex roots immediately move toward the imaginary axis (decreasing
damping) as the gain KP is increased and eventually cross the imaginary axis. Hence the closed-
loop system becomes unstable for larger gain values.

Root Locus
400

300

200

100
Imaginary Axis

-100

-200

-300

-400
-500 -400 -300 -200 -100 0 100 200
Real Axis

Root locus for system with a P-controller

b) MATLAB’s rlocfind command can be used to place the crosshair target on the imaginary
axis crossing to obtain the gain KP

>> [Kp,CL_roots] = rlocfind(sysGH) % click on root locus branch

The selected point is Kp = 305.8247 and the three closed-loop roots are s1 = –29.58 and
s2,3  0.64  j126.2 which is very close to the point of marginal stability (i.e., crossing the
imaginary axis). We can use the MATLAB command rlocus to iterate on KP until the complex
closed-loop roots have zero real parts. The exact solution for the maximum gain for marginal
stability is KP = 291.9.

c) The plant (pneumatic servo) is a type-1 system. The steady-state error for a type-1 system
with a ramp input (with slope of 0.008) is

0.008
Type-1 system: ess 
K sv

where the “static velocity error constant” is K sv  lim s G ( s ) . The forward transfer function is
s0

32
Copyright © 2016 John Wiley & Sons
Chapter 10

7.003(106 ) K P KV
G( s)  GC ( s) KV GP ( s) 
s( s 2  28.3s  15890)

Hence, using KP = 10 V/m and KV = 2.2(10-4) m/V we obtain Ksv = 0.9696. The steady-state error
for a ramp input is ess = 0.0083 m (or, 8.3 mm).

d) The MATLAB commands for the root locus plot with a PD controller are

>> KV = 2.2e-4; % solenoid/valve gain


>> sysGc = tf([1 5],1); % PD controller transfer function
>> sysGp = tf(7.003e6,[1 28.3 15890 0]); % plant transfer function
>> sysGH = sysGc*KV*sysGp; % open-loop transfer function
>> rlocus(sysGH); % create root locus plot for open-loop TF

The root-locus plot with PD-control is below. Adding the open-loop zero at s = –5 has made the
closed-loop system stable for all values of gain K (i.e., all root-locus branches remain in the left-
half plane and do not cross the imaginary axis). However, the closed-loop damping is
insufficient: the complex roots immediately move “upward” and to the right as gain K increases
and therefore damping decreases as gain is increased. Note that the damping ratio of the open-
loop plant is  = 0.112 which is very low.

Root Locus
250

200

150

100

50
Imaginary Axis

-50

-100

-150

-200

-250
-15 -10 -5 0
Real Axis

Root locus for system with a PD-controller

e) The MATLAB commands for the root locus plot with the PVA controller are

>> KV = 2.2e-4; % solenoid/valve gain


>> sysGc = tf([1 30 200],1); % PVA controller transfer function
>> sysGp = tf(7.003e6,[1 28.3 15890 0]); % plant transfer function
>> sysGH = sysGc*KV*sysGp; % open-loop transfer function
>> rlocus(sysGH); % create root locus plot for open-loop TF

The root-locus plot with PVA-control is on the next page. The PVA controller adds two open-
loop zeros at s = –10 and s = –20. These two zeros “bend” the closed-loop roots to the left for a
faster closed-loop response. The root locus shows that increasing the gain K causes the two

33
Copyright © 2016 John Wiley & Sons
Chapter 10

complex roots to move left and “downward” thus increasing the system damping and reducing the
settling time. The closed-loop system is stable for all gains since the roots remain in the left-half
plane. The closed-loop system can have any damping ratio between  = 0.112 (open-loop) and 
= 1 by adjusting the gain K (the system can also be overdamped, or  > 1, when the complex
branches enter the negative real axis). Thus the PVA controller greatly improves the stability and
damping characteristics compared to the P- and PD-control schemes in parts (a) and (d).

Root Locus
150

100

50
Imaginary Axis

-50

-100

-150
-160 -140 -120 -100 -80 -60 -40 -20 0
Real Axis

Root locus for system with a PVA-controller

34
Copyright © 2016 John Wiley & Sons
Chapter 10

10.25 The Simulink model of the Space Shuttle Flare and Shallow Glide Slope is below:

Note that the maximum value of incremental normal acceleration, nZ , occurs at time t = 0 since
the integrator feedback is initially zero and therefore can be computed from the forward loop:

C V
nZ , max  = 0.4
 g

Hence, using C = 0.09 rad, V = 420 ft/s, and g = 32.2 ft/s2, we obtain time constant  = 2.9348 s.

The closed-loop response for nZ is plotted below. Clearly the initial (peak) value of nZ is 0.4 g
as expected. The incremental normal acceleration exponentially decays to zero over 4 time
constants, i.e. the settling time is tS = 4= 11.74 s.

0.5

0.45
Incremental normal acceleration, nZ , g

0.4

0.35

0.3

0.25

0.2

0.15

0.1

0.05

0
0 5 10 15
Time, s

35
Copyright © 2016 John Wiley & Sons
Chapter 10

10.26 We begin the controller design by computing the steady-state error for a type 1 system
with a ramp input (slope is 20)
20
Type-1 system: ess 
K sv

where the “static velocity error constant” is K sv  lim s G ( s ) . The forward transfer function with
s0
a lead controller is

K (s  zL ) 400
G ( s )  GC ( s )GP ( s ) 
s  pL s ( s  20.4)

Therefore the static velocity error constant is K sv  400 Kz L and the steady-state error
20.4 p L
requirement is
20 (20)( 20.4) p L
ess    0 .1 (A)
K sv 400 Kz L

For a P-controller we require a gain of roughly K = 10 to satisfy Eq. (A). We can check the
stability margins for a simple P-controller using MATLAB’s margin command:

>> sysGp = tf(400,[1 20.4 0]); % plant transfer function


>> sysGH = sysGp; % open-loop transfer function
>> Kp = 10; % P-gain
>> margin(Kp*sysGH) % plots Bode diagram and computes GM, PM
Bode Diagram
Gm = Inf dB (at Inf rad/sec) , Pm = 18.3 deg (at 61.6 rad/sec)
50
Magnitude (dB)

-50
-90
Phase (deg)

-135

-180
0 1 2 3
10 10 10 10
Frequency (rad/sec)

Bode diagram for P-controller with KP = 10

We see that with P-gain KP = 10 the gain margin is infinite and phase margin is 18.3 deg. The
Bode diagram shows that we can increase the phase margin only by decreasing the gain (i.e.,
shifting the magnitude plot “down”). However if KP < 10 then the steady-state accuracy, Eq. (A),
is not satisfied.

36
Copyright © 2016 John Wiley & Sons
Chapter 10

The Bode diagram for the P-controller shows that the phase is approximately –135 deg (required
for PM = 45 deg) at frequency  = 20 rad/s. Hence, we can place the zero of the lead controller
at zC = 35 (i.e., just after the PM crossover frequency). Next we can place the lead controller pole
at pL = 130. After some trial and error (using the below MATLAB commands) we can define the
lead controller and compute the steady-state error and plot the Bode diagram with the lead
controller:

>> zL = 35; % lead controller open-loop zero


>> pL = 130; % lead controller open-loop pole
>> sysGc = tf([1 zL],[1 pL]); % lead controller transfer function
>> sysGp = tf(400,[1 20.4 0]); % plant transfer function
>> sysGH = sysGc*sysGp; % open-loop transfer function
>> K = 38; % controller gain
>> eSS = 20*20.4*pL/(400*K*zL) % steady-state error
>> margin(K*sysGH) % plots Bode diagram and computes GM, PM

Bode Diagram
Gm = Inf dB (at Inf rad/sec) , Pm = 45.2 deg (at 97.3 rad/sec)
50
Magnitude (dB)

-50

-100
-90
Phase (deg)

-135

-180
0 1 2 3 4
10 10 10 10 10
Frequency (rad/sec)

Bode diagram for lead controller 38(s + 35)/(s + 130)

The above Bode plot shows that the phase margin is 45.2 deg which satisfies the design
requirement. The steady-state error, using Eq. (A), is

20 (20)( 20.4)(130)
ess    0.0997
K sv (400)(38)(35)

which satisfies the first design requirement. Hence a satisfactory lead controller is

38( s  35)
GC ( s )  Lead controller
( s  130)

37
Copyright © 2016 John Wiley & Sons
Chapter 10

The Simulink model of the closed-loop control system is below:

The ramp response and ramp input are below. Note that the steady-state error is 0.1 rad.

4
Reference ref
Reference angle and DC motor angle, rad

3.5
DC motor 
3

2.5

1.5

0.5

0
0 0.05 0.1 0.15 0.2
Time, s

The DC motor voltage input ein(t) is plotted below.


4.5

4
Input voltage to DC motor, ein, V

3.5

2.5

1.5

0.5

0
0 0.05 0.1 0.15 0.2
Time, s

38
Copyright © 2016 John Wiley & Sons