Professional Documents
Culture Documents
Estimator
Estimator
Automatic Control 1
Automatic Control 1
1 / 13
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)
u(k)
A,B
A,B
x(k)
/+0-)./$/-
y(k)
x(k)
./$/-)-./&%$/-
Automatic Control 1
2 / 13
State estimation
Open-loop observer
!"#$%&'$()*+,'-..
u(k)
x(k)
A,B
/+0-)./$/-
A,B
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
Automatic Control 1
3 / 13
State estimation
Open-loop observer
!"#$%&'$()*+,'-..
u(k)
A,B
A,B
x(k)
/+0-)./$/-
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) !
Automatic Control 1
4 / 13
State observer
Luenberger observer
!"#$%&'$()*+,'-..
u(k)
x(k)
A,B
/+0-)./$/-
A,[B L]
x(k)
./$/-)
-./&%$/-
y(k)
y(k)
./$/-),1.-+2-+
L(y(k) Cx(k))
|
{z
}
Automatic Control 1
David G.
Luenberger
(1937-)
Academic year 2010-2011
5 / 13
State observer
Luenberger observer
!"#$%&'$()*+,'-..
u(k)
A,B
A,[B L]
x(k)
/+0-)./$/-
x(k)
./$/-)
-./&%$/-
y(k)
y(k)
./$/-),1.-+2-+
(A LC)x(k)
Automatic Control 1
dx(t)
dt
= (A LC)x(t)
Academic year 2010-2011
6 / 13
State observer
L=acker(A,C,P);
L=place(A,C,P);
Prof. Alberto Bemporad (University of Trento)
7 / 13
1 0
2
x(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
0
1
`1
`2
Automatic Control 1
1
2
1
1
21 `1
1 12 `2
8 / 13
Automatic Control 1
9 / 13
MATLAB
A
B
C
D
L=place(A,C,[.5 .7])
0.8187
A = 1.8097
, B = 0.5
0
1
0
C = [ 0.1810 0.1810 ] , D = 0
L=
eig(A-L*C)
ans = 0.7000 0.5000
82.6341
86.0031
Automatic Control 1
10 / 13
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
x(0) = 1
x(0) = 00 for u(k) 0.1
1 ,
plot(0:T,[XX(1,:);XXhat(1,:)]);
Automatic Control 1
11 / 13
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
Automatic Control 1
12 / 13
English-Italian Vocabulary
estimation error
Luenberger observer
observer gain
errore di stima
osservatore alla Luenberger
guadagno dellosservatore
Automatic Control 1
13 / 13