You are on page 1of 13

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-)./$/-

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

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-)./$/-

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)

y(k)

./$/-),1.-+2-+

Luenberger observer: Correct the estimation equation with


a feedback from the estimation error y(k) y(k)
x(k + 1) = Ax(k) + Bu(k) +

L(y(k) Cx(k))
|
{z
}

feedback on estimation error

where L Rnp 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)

y(k)

./$/-),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 x(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
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

Prof. Alberto Bemporad (University of Trento)

0
1

`1
`2

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 (contd)

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 (contd)


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

x(0) = 1
x(0) = 00 for u(k) 0.1
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 (contd)


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

x(0) = 1
x(0) = 00 for u(k) 0.1
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 dellosservatore

Translation is obvious otherwise.

Prof. Alberto Bemporad (University of Trento)

Automatic Control 1

Academic year 2010-2011

13 / 13

You might also like