Automatic Control 1 - State estimation and linear observers

advertisement
Lecture: State estimation and linear observers
Automatic Control 1
State estimation and linear observers
Prof. Alberto Bemporad
University of Trento
Academic year 2010-2011
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
1 / 13
Lecture: State estimation and linear observers
State estimation
State estimation
State estimation problem
At each time k construct an estimate x̂(k) of the state
x(k), by only measuring the output y(k) and input u(k)
Open-loop observer: Build an artificial copy of the system, fed in parallel by
with the same input signal u(k)
!"#$%&'$()*+,'-..
u(k)
A,B
A,B
x(k)
/+0-)./$/-
C
y(k)
ˆ
x(k)
./$/-)-./&%$/-
The “copy” is a numerical simulator x̂(k + 1) = Ax̂(k) + Bu(k) reproducing the
behavior of the real system
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
2 / 13
Lecture: State estimation and linear observers
State estimation
Open-loop observer
!"#$%&'$()*+,'-..
u(k)
x(k)
A,B
/+0-)./$/-
A,B
C
y(k)
ˆ
x(k)
./$/-)-./&%$/-
The dynamics of the real system and of the numerical copy are
x(k + 1)
=
Ax(k) + Bu(k)
True process
x̂(k + 1)
=
Ax̂(k) + Bu(k)
Numerical copy
The dynamics of the estimation error x̃(k) = x(k) − x̂(k) are
x̃(k + 1) = Ax(k) + Bu(k) − Ax̂(k) − Bu(k) = Ax̃(k)
and then x̃(k) = Ak (x(0) − x̂(0))
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
3 / 13
Lecture: State estimation and linear observers
State estimation
Open-loop observer
!"#$%&'$()*+,'-..
u(k)
A,B
A,B
x(k)
/+0-)./$/-
C
y(k)
ˆ
x(k)
./$/-)-./&%$/-
The estimation error is x̃(k) = Ak (x(0) − x̂(0)). This is not ideal, because
The dynamics of the estimation error are fixed by the eigenvalues of A and
cannot be modified
The estimation error vanishes asymptotically if and only if A is asymptotically
stable
Note that we are not exploiting y(k) to compute the state estimate x̂(k) !
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
4 / 13
Lecture: State estimation and linear observers
State observer
Luenberger observer
!"#$%&'$()*+,'-..
u(k)
x(k)
A,B
/+0-)./$/-
A,[B L]
ˆ
x(k)
./$/-)
-./&%$/-
y(k)
C
ˆ y(k)
C
+
./$/-),1.-+2-+
Luenberger observer: Correct the estimation equation with
a feedback from the estimation error y(k) − ŷ(k)
x̂(k + 1) = Ax̂(k) + Bu(k) +
L(y(k) − Cx̂(k))
|
{z
}
feedback on estimation error
where L ∈ Rn×p is the observer gain
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
David G.
Luenberger
(1937-)
Academic year 2010-2011
5 / 13
Lecture: State estimation and linear observers
State observer
Luenberger observer
!"#$%&'$()*+,'-..
u(k)
A,B
A,[B L]
x(k)
/+0-)./$/-
ˆ
x(k)
./$/-)
-./&%$/-
y(k)
C
ˆ y(k)
C
+
./$/-),1.-+2-+
The dynamics of the state estimation error x̃(k) = x(k) − x̂(k) is
x̃(k + 1)
=
Ax(k) + Bu(k) − Ax̂(k) − Bu(k) − L[y(k) − Cx̂(k)]
=
(A − LC)x̃(k)
and then x̃(k) = (A − LC)k (x(0) − x̂(0))
Same idea for continuous-time systems ẋ(t) = Ax(t) + Bu(t)
dx̂(t)
dt
= Ax̂(t) + Bu(t) + L[y(t) − Cx̂(t)]
The dynamics of the state estimation error are
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
dx̃(t)
dt
= (A − LC)x̃(t)
Academic year 2010-2011
6 / 13
Lecture: State estimation and linear observers
State observer
Eigenvalue assignment of state observer
Theorem
If the pair (A, C) is observable, then the eigenvalues of
(A − LC) can be placed arbitrarily
Proof:
If the pair (A, C) is completely observable, the dual system (A0 , C0 , B0 , D0 ) is
completely reachable
Then we can design a compensator K for the dual system and place the
eigenvalues of (A0 + C0 K) arbitrarily
The eigenvalues of matrix (A0 + C0 K) = eigenvalues of its transpose (A + K 0 C)
Define L = −K 0 . The theorem is proved.
MATLAB
» L=acker(A’,C’,P)’;
» L=place(A’,C’,P)’;
Prof. Alberto Bemporad (University of Trento)
ƒ
where P = [λ1 λ2 . . . λn ] = desired observer
eigenvalues
Automatic Control 1
Academic year 2010-2011
7 / 13
Lecture: State estimation and linear observers
Example of observer design
Example of observer design
We want to design a state observer for the continuous-time system in
state-space form

−1 0
2
 ẋ(t) =
x(t) +
u(t)
1 −1
0
—
”

0 12 x(t)
y(t) =
We want to place the poles of the observer in {−4, −4}
It is easy to verify that the system is completely observable
h i
`
Let L = `12 be the unknown observer gain
Write the generic state estimation matrix
A − LC =
−1
1
Prof. Alberto Bemporad (University of Trento)
0
−1
−
`1
`2
”
0
Automatic Control 1
1
2
–
—
=
−1
1
− 21 `1
−1 − 12 `2
™
Academic year 2010-2011
8 / 13
Lecture: State estimation and linear observers
Example of observer design
Example of observer design (cont’d)
The characteristic polynomial of the observer is
1
1
1
det(λI − A + LC) = λ2 + (2 + `2 )λ + `2 + `1 + 1
2
2
2
Impose the polynomial equals the desired one (λ + 4)2 = λ2 + 8λ + 16
Solve the linear system of equations in `1 , `2 and get
`1 = 18, `2 = 12
The resulting Luenberger observer is
dx̂(t)
−1 −9
2
18
=
x̂(t) +
u(t) +
y(t)
1 −7
0
12
dt
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
9 / 13
Lecture: State estimation and linear observers
Example of observer design
Example of observer design in MATLAB
MATLAB
»
»
»
»
A
B
C
D
=[1.8097 -0.8187; 1 0];
= [0.5; 0];
=[0.1810 -0.1810];
= 0;
» L=place(A’,C’,[.5 .7])’
State-space model in discrete-time
−0.8187
A = 1.8097
, B = 0.5
0
1
0
C = [ 0.1810 −0.1810 ] , D = 0
Resulting observer gain
L=
» eig(A-L*C)
ans = 0.7000 0.5000
Prof. Alberto Bemporad (University of Trento)
”
−82.6341
−86.0031
—
Double-check observer poles: answer is ok !
Automatic Control 1
Academic year 2010-2011
10 / 13
Lecture: State estimation and linear observers
Example of observer design
Example of observer design in MATLAB (cont’d)
MATLAB
x=[-1;1];
% initial state
xhat=[0;0]; % initial estimate
40
30
^
x1(t)
XX=x;
XXhat=xhat;
T=40;
UU=.1*ones(1,T); % input signal
20
for k=0:T-1,
u=UU(k+1);
y=C*x+D*u;
yhat=C*xhat+D*u;
10
0
−10
0
x1(t)
x=A*x+B*u;
xhat=A*xhat+B*u+L*(y-yhat);
10
20
time (s)
30
40
XX=[XX,x];
XXhat=[XXhat,xhat];
end
response
from
initial conditions
0
x(0) = −1
1 , x̂(0) = 0 for u(k) ≡ 0.1
Prof. Alberto Bemporad (University of Trento)
plot(0:T,[XX(1,:);XXhat(1,:)]);
Automatic Control 1
Academic year 2010-2011
11 / 13
Lecture: State estimation and linear observers
Example of observer design
Example of observer design in MATLAB (cont’d)
80
true state
estimator L1
estimator L2
estimator L3
60
40
MATLAB
L1=place(A’,C’,[.5 .7])’;
L2=place(A’,C’,[.75 .8])’;
20
L3=place(A’,C’,[.4 .5])’;
0
−20
0
10
20
time (s)
30
40
A fast observer often implies large
estimation errors in the transient
Comparison of different observer gains
Response
from
initialconditions
0
x(0) = −1
1 , x̂(0) = 0 for u(k) ≡ 0.1
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
12 / 13
Lecture: State estimation and linear observers
Example of observer design
English-Italian Vocabulary
estimation error
Luenberger observer
observer gain
errore di stima
osservatore alla Luenberger
guadagno dell’osservatore
Translation is obvious otherwise.
Prof. Alberto Bemporad (University of Trento)
Automatic Control 1
Academic year 2010-2011
13 / 13
Download