Disturbance Rejection & Control Systems
Disturbance Rejection & Control Systems
Pole-Placement Problem
Input-output Model Approach
Xiang Cheng
Associate Professor
Department of Electrical & Computer Engineering
The National University of Singapore
uc yr
Reference Model
+
u y
Controller System to be controlled
+ +
–
Objective: To make the closed loop model follow the reference model as close as
possible.
3
Two-Degree-of-Freedom Controller
uc Bm ( z ) yr
Reference Model
Am ( z )
Feedforward
controller
y
u ff
u fb + u
Feedback System to be controlled
+ controller
– +
u = u fb + u ff
Match Am (z ) Match Bm (z ) 4
uc Bm ( z ) yr
Reference Model
Am ( z )
H ff
+ u
-Lw + B( z ) ω
∑ Process y
-L + A( z ) x
Observer
B m ( z)
How to choose the Feedforward T.F.? H ff =
B( z )
Zero Placement
Separation Property! 5
Step One: Proportional Control --- State Feedback Control
u x
r = 0+ L Process
–
•Ackermann’s formula
•If the uncontrollable poles are stable, then we can still control the system to
some degree.
•Stabilizable.
•If the uncontrollable poles are unstable, then we have to make big changes to
the original system such that the system becomes controllable!
7
u y
Step 2: observer
Process
Measure
+
–
Observer
ŷ Compare
Correct
K
x(k + 1) = Φx(k ) + Γu (k )
y (k ) = cx(k )
e(k + 1) = (Φ − Kc )e(k )
How to choose K?
•Ackermann’s formula
Use direct comparison
| zI − (Φ − Kc) | Ao (z )
-Lw + u ω
∑ Process
-L + x
u (k ) = − Lc z (k ) = − Lx (k ) − Lωω (k )
ω (z ) H ω (z ) Y(z)
If the disturbance is constant, is it possible to to make its output ZERO?
Make the steady-state gain H ω (1) = 0 9
Tracking Problem: how to match the reference model?
Y ( z) B( z ) Bm ( z )
= H ff ( z ) →
U c ( z) Am ( z ) Am ( z )
Bm ( z )
•How to design the feed-forward controller? H ff ( z ) =
B( z )
•Under what conditions is perfect tracking attainable? How to make sure that the
inputs and outputs are bounded?
Y ( z ) Bm ( z )
=
U c ( z ) Am ( z )
B(z) is stable!
U ( z ) A( z ) Bm ( z )
=
U c ( z ) B ( z ) Am ( z )
11
•So we need a new approach to deal with input-output model directly.
Open Loop Control:
uc B ( z) yr
Reference Model m
Am ( z )
A( z ) Bm ( z )
B ( z ) Am ( z )
u y
B( z )
What is the simplest controller?
A( z )
Let’s derive the T.F. from command signal uc to output y
B( z ) A( z ) Bm ( z )
Y ( z) = U c ( z)
A( z ) B( z ) Am ( z )
Should we cancel out A(z)? No. One A(z) is operating on u c , the other A is on y.
Should we cancel out B(z)? Yes. Both of them are operating on the input u.
Bm ( z ) A( z ) A( z ) Bm ( z )
Y ( z) = U c ( z) U ( z) = U c ( z)
Am ( z ) A( z ) B( z ) Am ( z )
What is the condition to assure the output is bounded? A(z) is stable
What is the condition to assure the input is bounded? B(z) is stable
12
Both the system and its inverse have to be stable!
Two-Degree-of-Freedom Controller
uc Bm ( z ) yr
Reference Model
Am ( z )
T ( z)
R( z )
y
u ff
S ( z)
u fb + u B( z )
+ System
– R( z ) + A( z )
Y ( z) B( z ) R( z ) U ff ( z ) T ( z )
= =
U ff ( z ) A( z ) R ( z ) + B ( z ) S ( z ) U c ( z ) R( z )
Y ( z) Y ( z ) U ff ( z ) B( z ) R( z ) T ( z)
= =
U c ( z ) U ff ( z ) U c ( z ) A( z ) R ( z ) + B ( z ) S ( z ) R ( z )
Should we cancel out R(z)? Yes. Both of them are operating on uff.
Y ( z) T ( z ) B( z )
=
U c ( z ) A( z ) R ( z ) + B ( z ) S ( z )
S ( z)
How to design the feedback controller ? Match the poles or zeros?
R( z )
Choose R(z) and S(z) such that Acl ( z ) = A( z ) R ( z ) + B ( z ) S ( z ) = Am ( z ) Ao ( z )
14
Why not directly match Am (z ) ? The order of Am (z ) may be lower than the closed loop
Y ( z)
=
T ( z ) B( z )
=
T ( z ) B( z ) Bm ( z )
U c ( z ) A( z ) R( z ) + B( z ) S ( z ) Am ( z ) Ao ( z ) Am ( z )
T ( z)
How to design the feedforward controller ? R(z) is already fixed!
R( z )
•How to choose T(z)?
to B( z ) to B(1)
What is the steady state gain of ?
Am ( z ) Am (1)
to B(1) A (1)
How to choose to to make the static gain unity? Am (1)
1 →
= to = m
B (1)
•Is perfect tracking attainable? Can we match the zeros?
Y ( z ) Bm ( z ) B( z )
T ( z ) = Ao ( z ) Bm ( z ) =
U c ( z) Am ( z )
15
• Is it possible to get rid of B(z ) ? Yes. Under certain conditions!
Can we add more freedom?
uc Bm ( z ) yr
Reference Model
Am ( z )
T ( z)
H ff (z )
R( z )
y
u ff
S ( z)
u fb + u B( z )
+ System
– R( z ) + A( z )
Diophantine Equation
17
Break
Self-Driving Car
18
As in the state-space approach, let’s try to design the feedback controller first.
u y
r +
Controller S ( z ) System
B( z )
– R( z ) A( z )
S ( z ) B( z )
Y R( z ) A( z ) S ( z ) B( z ) R( z ) A( z ) + S ( z ) B ( z ) → Acl ( z ) = Am ( z ) Ao ( z )
= =
R 1 + S ( z ) B( z ) R( z ) A( z ) + S ( z ) B( z )
R ( z ) A( z ) A( z ) y = B( z )u
h2
Example: the double integrator ( z + 1) A( z ) = ( z − 1) 2
Y ( z) = 2 U ( z)
( z − 1) 2
h2
B( z ) = ( z + 1)
2
Let’s try the simplest controller, the proportional controller, R = 1, S = s0
2 h2 2 h2 h2
RA + SB = ( z − 1) + s0 ( z + 1) = z + ( s0 − 2) z + s0 + 1 Acl = z 2 + p1 z + p 2
2 2 2
Can we match them?
Two equations with one parameter s0----mission impossible!
Match the coefficients: •How many equations? •How many design parameters?
So we can easily compute the design parameters by solving the three equations.
•What if the desired C.P. of the reference model is Am = z 2 + p1 z + p2 ?
•Can we match Am direcly? No!
Let’s introduce Ao such that Acl = Am Ao
One simple choice: Ao = z Acl = z 3 + p1 z 2 + p2 z
Can we match Acl now? Yes!
20
What is the lesson? The controller must have sufficient degree of freedom!
Now let’s consider the following question:
Given polynomials A(z) and B(z), and a third polynomial , Acl (z )
can we find R(z) and S(z) such that
A( z ) R ( z ) + B ( z ) S ( z ) = Acl ( z ) Diophantine equation
•From A( z ) R ( z ) + B ( z ) S ( z ) = Acl ( z )
z3 : p0 a 0 r0 + b0 s 0
compare the coefficients
z2 : p1 a1 r0 + a 0 r1 + b1 s 0 + b0 s1
z: p2 a 2 r0 + a1 r1 + b2 s 0 + b1 s1
1: p3 a 2 r1 + b2 s1
•How many equations? •How many design parameters? 21
Four Four
Rewrite it in a compact matrix form, a0 0 b0 0 r0 p 0
a
1 a0 b1 b0 r1 p1
=
•Sylvester matrix a 2 a1 b2
b1 s 0 p2
0 a2 0 b2 s1 p3
•What is the condition on the Sylvester matrix for getting the solution?
The solution exists as long as the Sylvester matrix is non-singular!
•What is the condition for non-singularity of Sylvester matrix?
Let’s take a look at a simple example:
Y ( z) ( z + 1) A( z ) = ( z + 2)( z + 1)
=
U ( z ) ( z + 2)( z + 1) B( z ) = z + 1
A( z ) R( z ) + B( z ) S ( z ) = ( z + 2)( z + 1) R ( z ) + ( z + 1) S ( z )
= ( z + 1)[( z + 2) R( z ) + S ( z )]
Is it possible to choose R and S such that AR+BS matches any Acl?
Can you design R(z) and S(z) such that
z3
( z + 1)[( z + 2) R( z ) + S ( z )] =
It is impossible! Unless Acl contains the same factor (z+1).
So one condition to assure Sylvester matrix is nonsingular: 22
A(z) and B(z) should not have any common factors.
Sylvester matrix is 2nx2n matrix:
•Sylvester Theorem:
The Sylvester matrix is nonsingular if and only if the two polynomials A(z) and
B(z) have no common factors.
23
The basic solution for pole placement:
u y
r +
Controller S ( z ) System
B( z )
– R( z ) A( z )
A( z ) R ( z ) + B ( z ) S ( z ) = Acl ( z )
24
Why is the order of the controller n-1? Can we use lower-order controller?
Assume the order of the controller is m, how many design parameters?
2(m+1)
m+n+1
The number of design parameters should be at least the number of the matching eqns.
2(m + 1) ≥ m + n + 1 m ≥ n −1
What would happen if the order of the controller is larger than n-1?
The number of design parameters exceeds the number of equations!
But how does this pole-zero cancellation affect the controller design, R(z) and S(z)?
27
•The corresponding Diophantine equation
A( z ) R ( z ) + B ( z ) S ( z ) = Acl ( z )
becomes
Where to find B + (z ) ?
Where to find A+ (z ) ?
Is the order of this Diophantine equation lower than the original one? •Yes
The closed loop T.F. from the command signal to the output:
Y ( z) ( z − b)T ( z ) T ( z)
= ≈
U c ( z ) ( z − b)( z 2 + p1 z + p 2 ) ( z 2 + p1 z + p 2 )
T ( z ) = z (1 + p1 + p2 )
29
The resulting controller is
S ( z) T( z )
U ( z) =
− Y ( z) + Uc ( z)
R( z ) R( z )
(q − b)u (k ) = q (1 + p1 + p2 )uc (k ) − ( s0 q + s1 ) y (k )
Do it by a loop!
u (k ) = bu (k − 1) + (1 + p1 + p2 )uc (k ) − s0 y (k ) − s1 y (k − 1)
30
Disturbance Rejection Problem
uc Bm ( z ) yr
Reference Model
Am ( z )
T ( z)
R( z )
y
u ff
S ( z) u fb + u B( z )
+
System
– R( z ) + + A( z )
Disturbance v
B( z ) R( z ) B(1) R(1)
=
Acl ( z ) z =1
Acl (1)
Can we cancel out B(z)? Yes if B(z) is stable! And let R(z) contain B(z)
Choose R(z) and S(z) such that Acl ( z ) = A( z ) R ( z ) + B ( z ) S ( z ) = Am ( z ) Ao ( z ) B ( z )
How to choose T(z) to match the reference model? T ( z ) = Bm ( z ) Ao ( z )
Y ( z) T ( z ) B( z ) B ( z ) Ao ( z ) B ( z ) Bm ( z ) 34
= = m =
U c ( z ) A( z ) R ( z ) + B ( z ) S ( z ) Am ( z ) Ao ( z ) B ( z ) Am ( z )
Is the condition of stable inverse essential? Do we need this condition
if we add more degree of freedom? yr
uc Bm ( z )
Reference Model
Am ( z )
T ( z)
H ff (z )
R( z )
y
u ff
+ S ( z) u fb + u B( z )
System
– R( z ) + A( z )
What is the transfer function from the command signal to the output now?
Ao ( z ) Bm ( z )
H ff =
Y ( z) B( z ) R( z ) B( z ) R( z ) Y ( z ) Bm ( z )
= H ff ( z ) =
U c ( z) Am ( z ) Ao ( z ) U c ( z ) Am ( z )
What is the transfer function from the command signal to the input ?
Y B Y B
= m =
U c Am U A
U ( z ) A( z ) Bm ( z )
=
U c ( z ) Am ( z ) B ( z )
T ( z)
R( z )
y
u ff
+ S ( z) u fb+u B( z )
R( z ) System A( z )
– + +
Disturbance v
Occam’s razor -- the simpler, the better.
Separation Property: Design feedback controller first, then build feedforward controller.
Step One: Figure out the design requirements on R(z).
•If need to cancel zeros: R(z) must contain the zero factor B(z)
•Disturbance rejection: R must contain (z-1) (integrator) for constant disturbance.
•Causality conditions: Deg (R) >= Deg (S)
Step Two: Design R and S by solving the Diophantine equation AR + BS = Acl
Step Three: Choose T or Hff at the final stage, to satisfy other design requirements.
The order of controller can be increased in order to meet other design requirements.
Stable inverse condition is required for perfect tracking 37
(perfect match of the reference model)
Design Example: speed control system
Consider the vehicle, which has a weight m = 1000 kg. Assuming the average
friction coefficient b= 100, design a speed control system such that the vehicle
can reach 100 km/h from 0 km/h in 8 s with an overshoot less 5%. Assuming
the sampling period T = 0.6 seconds,
1−ζ 2
R( s) =
1 M p = e −πζ /
s ωn2
H (s) = 2
r (t ) = 1 s + 2ζωn s + ωn2
ζ ≥ 0.6901 ⇒ ζ =
0.7
4.6 4.6
ts ≅ ⇒ ωn ≅
ζωn tsζ
4.6
⇒ ω=
n = 0.82
8 × 0.7
0.67
Desired CLTF ⇒ H d (s) =
s 2 + 1.15s + 0.67
39
Convert the desired reference model from continuous time to discrete-time
You can use the conversion table 2.1 or the MATLAB command c2d.
0.0952 z + 0.0755
H d ( z) =
z 2 − 1.331z + 0.5016
uc 0.0952 z + 0.0755 yr
z 2 − 1.331z + 0.5016
H ff ( z )
y
u ff
+ S ( z) u fb+u 0.00058
– R( z )
+ + z − 0.942
Disturbance v
40
We want to reject the constant disturbance, what should we include in R(z)?
AR + BS = ( z − 0.942)( z − 1) + 0.00058( s0 z + s1 )
z 2 + (0.00058s0 − 1.942) z + 0.00058s1 + 0.942
=
s0 = 1053.4 s1 = −759.3
We have
z − 1, S =
R= 1053.4 z − 759.3
41
Y ( z) B( z ) R( z )
= H ff ( z )
U c ( z) A( z ) R( z ) + B( z ) S ( z )
Y ( z) B( z ) R( z )
= H ff ( z )
U c ( z) Am ( z )
Bm ( z )
Design H ff (z ) to match Am ( z )
B( z ) R( z ) B m ( z ) Bm ( z )
H ff ( z ) = H ff =
Am ( z ) Am ( z ) B( z ) R( z )
42
Verification through SIMULINK
Now simulate the digital two-degree-of-freedom control system response with actual plant
Yes.
The overshoot is less than 5%.
The settling time is around 8s.
43
Q & A…
44