Fall 2001 16.31 17–23
Reference Input - II
? On page 17-5, compensator implemented with a reference command
by changing to feedback on e(t)=r(t) ? y(t) rather than ?y(t)
G
c
(s) G(s)
? ?
?
–
re yu
– So u = G
c
(s)e = G
c
(s)(r ?y), and have u = ?G
c
(s)y if r =0.
– Intuitively appealing because it is the same approach used for
the classical control, but it turns out not to be the best approach.
? Can improve the implementation by using a more general form:
˙x
c
= A
c
x
c
+ Ly + Gr
u = ?Kx
c
+
ˉ
Nr
– Now explicitly have two inputs to the controller (y and r)
–
ˉ
N performs the same role that we used it for previously.
– Introduce G as an extra degree of freedom in the problem.
? First: if
ˉ
N =0andG = ?L,thenwerecoverthesameimple-
mentation used previously, since the controller reduces to:
˙x
c
= A
c
x
c
+ L(y ? r)=A
c
x
c
+ B
c
(?e)
u = ?Kx
c
= ?C
c
x
c
– So if G
c
(s)=C
c
(sI?A
c
)
?1
B
c
, then the controller can be written
as u = G
c
(s)e (negative signs cancel).
Fall 2001 16.31 17–24
? Second: this generalization does not change the closed-loop poles
of the system, regardless of the selection of G and
ˉ
N,since
˙x = Ax + Bu , y = Cx
˙x
c
= A
c
x
c
+ Ly + Gr
u = ?Kx
c
+
ˉ
Nr
?
bracketleftbigg
˙x
˙x
c
bracketrightbigg
=
bracketleftbigg
A ?BK
LC A
c
bracketrightbiggbracketleftbigg
x
x
c
bracketrightbigg
+
bracketleftbigg
B
ˉ
N
G
bracketrightbigg
r
y =
bracketleftbig
C 0
bracketrightbig
bracketleftbigg
x
x
c
bracketrightbigg
– So the closed-loop poles are the eigenvalues of
bracketleftbigg
A ?BK
LC A
c
bracketrightbigg
regardless of the choice of G and
ˉ
N
– G and
ˉ
N impact the forward path, not the feedback path
? Third: given this extra freedom, what is the best way to use it?
– One good objective is to select G and
ˉ
N so that the state esti-
mation error is independent of r.
– With this choice, changes in r do not tend to cause such large
transients in ?x
– Note that for this analysis, take ?x = x ? x
c
since x
c
≡ ?x
˙
?x =˙x ? ˙x
c
= Ax + Bu? (A
c
x
c
+ Ly + Gr)
= Ax + B(?Kx
c
+
ˉ
Nr) ? ({A ? BK ? LC}x
c
+ LCx + Gr)
Fall 2001 16.31 17–25
˙
?x = Ax + B(
ˉ
Nr) ? ({A ? LC}x
c
+ LCx + Gr)
=(A ? LC)x + B
ˉ
Nr? ({A ? LC}x
c
+ Gr)
=(A ? LC)?x + B
ˉ
Nr? Gr
=(A ? LC)?x +(B
ˉ
N ? G)r
? Thus we can eliminate the e?ect of r on ?x by setting G ≡ B
ˉ
N
? Fourth: if this generalization does not change the closed-loop poles
of the system, then what does it change?
– The zeros of the y/r transfer function, which are given by:
general det
?
?
sI ? ABK?B
ˉ
N
?LC sI ? A
c
?G
C 0 0
?
?
=0
previous det
?
?
sI ? ABK 0
?LC sI ? A
c
L
C 0 0
?
?
=0
new det
?
?
sI ? ABK?B
ˉ
N
?LC sI ? A
c
?B
ˉ
N
C 0 0
?
?
=0
Fall 2001 16.31 17–26
? Hard to see how this helps, but consider the scalar case:
new det
?
?
sI ? ABK?B
ˉ
N
?LC sI ? A
c
?B
ˉ
N
C 0 0
?
?
=0
? C(?BKB
ˉ
N +(sI ? A
c
)B
ˉ
N)=0
?CB
ˉ
N(BK ? (sI ? [A ? BK ? LC])) = 0
CB
ˉ
N(sI ? [A ? LC]) = 0
– So that the zero of the y/r path is the root of sI?[A?LC]=0
which is the pole of the estimator.
– With this selection of G = B
ˉ
N the estimator dynamics are can-
celed out of the response of the system to a reference command.
– No such cancelation occurs with the previous implementation.
? Fifth: select
ˉ
N to ensure that the steady-state error is zero.
– As before, this can be done by selecting
ˉ
N so that the DC gain
of the closed-loop y/r transfer function is 1.
y
r
vextendsingle
vextendsingle
vextendsingle
DC
defines
bracketleftbig
C 0
bracketrightbig
parenleftBigg
?
bracketleftbigg
A ?BK
LC A
c
bracketrightbigg
?1
parenrightBigg
bracketleftbigg
B
B
bracketrightbigg
ˉ
N =1
? The new implementation of the controller is
˙x
c
= A
c
x
c
+ Ly + B
ˉ
Nr
u = ?Kx
c
+
ˉ
Nr
– Which has two separate inputs y and r
– Selection of
ˉ
N ensure that the steady-state performance is good
– The new implementation gives better transient performance.
Fall 2001 16.31 17–27
Figure 13: Example #1: G(s)=
8·14·20
(s+8)(s+14)(s+20)
.
? Method #1: previous implementation.
? Method #2: previous, with the reference input scaled to ensure
that the DC gain of y/r|
DC
=1.
? Method #3: new implementation with both G = B
ˉ
N and
ˉ
N selected.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Step Response
meth1
meth2
meth3
Fall 2001 16.31 17–28
Figure 14: Example #2: G(s)=
0.94
s
2
?0.0297
.
? Method #1: previous implementation.
? Method #2: previous, with the reference input scaled to ensure
that the DC gain of y/r|
DC
=1.
? Method #3: new implementation with both G = B
ˉ
N and
ˉ
N selected.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.5
1
1.5
Step Response
meth1
meth2
meth3
Fall 2001 16.31 17–29
Figure 15: Example #3: G(s)=
8·14·20
(s?8)(s?14)(s?20)
.
? Method #1: previous implementation.
? Method #2: previous, with the reference input scaled to ensure
that the DC gain of y/r|
DC
=1.
? Method #3: new implementation with both G = B
ˉ
N and
ˉ
N selected.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
?3
?2
?1
0
1
2
3
4
Step Response
meth1
meth2
meth3