Lecture 3: State-Feedback, Observers, Reference Values, and Integrators Problem Formulation
Lecture 3: State-Feedback, Observers, Reference Values, and Integrators Problem Formulation
Lecture 3: State-Feedback, Observers, Reference Values, and Integrators Problem Formulation
Problem formulation
Model: Continuous-time, sample with h
x( kh + h) = x( kh) + u( kh)
h /2
1 h
u( kh)
x( kh) +
x( kh + h) =
0
1 l1 h2 /2 h l2 h2 /2
=
x( kh)
l1 h
1 l2 h
Characteristic equation
2
2
l1 h
l1 h
2
+ l2 h 2 z +
l2 h + 1 = 0
z +
2
2
Example contd
General case
Characteristic equation
2
2
l1 h
l1 h
2
z +
+ l2 h 2 z +
l2 h + 1 = 0
2
2
Desired characteristic equation
z2 + p1 z + p2 = 0
l1 h2
l2 h + 1 = p2
2
Solution
l1 =
1
(1 + p1 + p2 )
h2
l2 =
Solvable
\ ( , ) reachable
\ Wc = [ , , . . . , n1 ] has full rank
Matlab L = place(Phi,Gamma,neweigs)
Basic problem:
Find L such that L has prescribed eigenvalues
1
(3 + p1 p2 )
2h
How to find T ?
= p1 a1
L = LT
= T T 1 , = T
= LT
x = Lx
u = Lz
z = T x,
det( zI ) = A( z)
pn an T
c = [T , T T 1 T , . . . , T n1 ] = T Wc
W
..
= l1 l2 . . . ln z
u = Lz
= p1 a1 p2 a2 pn an z
How to get T ?
det( zI ( L)) = P( z)
a1 a2 an1 an
1
0
0
0
..
..
..
..
.
.
.
.
p2 a2
T 1
1 a1 an1
0 1 an2
Wc = .
.
.
.
.
.
. .
0 0
1
1 = a1 + . . . an1 + + n1
= Wc W
c
L = p1 a1 p2 a2 pn an
1
a1 + . . . an1 + + n1
Ackermanns formula
n + a1
n1 + + an I = 0
n + p1
n1 + + pn I = ( p1 a1 )
n1 + + ( pn an ) I
0 ... 1
k = 0 ... 1 ... 0
(b)
Input
Output
2
1
0
pn an = L
5
0
10
15
(c)
10
15
10
15
(d)
0
Input
thus
s2 + 2 s + 2
(a)
n k
so that
0 . . . 1 P()
= p1 a1 p2 a2
Input
=
A()
=
P()
Double integrator
T P()T 1
5
0
10
15
}|
{
z
= 0 . . . 1 P(T T 1 ) T = 0 . . . 1 T P()
L = LT
c W 1 P() = 0 . . . 1 W 1 P()
= 0 ... 1 W
c
c
Time
Time
Change of h ( N )
b) N = 5, c) N = 10, d) N = 20
(a)
2
0
0
10
Input
5
Time
10
10
5
Time
10
10
5
Time
10
2
0
0
(d)
2
2
(c)
Input
(d)
0
10
(c)
Input
Input
(b)
Output
Input
Output
(b)
Input
(a)
5
Time
10
Deadbeat control
Observers
x( k + 1) = x( k) + u( k)
Choose P( z) = zn
Remaining design parameter h
y( k) = Cx( k)
(b)
Input
Output
10
(d)
Input
Input
Kalman form
Luenberger form
0
5
(c)
Direct calculation
0
5
10
5
Time
10
5
0
Main question:
How to choose the observer poles?
5
0
5
Time
10
b) h = 2, c) h = 1, d) h = 0.5
Luenberger observer
Reduced order observer
y( k) = Cx( k)
x ( k p k) = x ( k 1 p k 1) + u( k 1)
+ K y( k) C ( x ( k 1 p k 1) + u( k 1))
= ( I K C ) ( x ( k 1 p k 1) + u( k 1)) + K y( k)
x ( k + 1 p k) = x ( k p k 1) + u( k) + K [ y( k) C x ( k p k 1)]
Look at
y( k) = y( k) C x ( k p k) = C x ( k p k) = C ( I K C ) x ( k 1 p k 1)
= ( C C K C ) x ( k 1 p k 1) = ( I C K ) C x ( k 1 p k 1)
| {z }
=0?
Output feedback
x
New coordinates
C
y
x = Tx
=
z=
C
y( k p k)
=
z( k p k) =
z( k p k)
0
z( k p k)
Process
Observer
x ( k + 1 p k) = x ( k p k 1) + u( k) + K ( y( k) C x ( k p k 1))
u( k) = L x ( k p k 1)
x ( k + 1 p k) = ( K C L) x ( k p k 1) + K y( k)
u( k) = L x ( k p k 1)
Only z( k p k) = . . . needed
x( k + 1) = x( k) + u( k)
Process poles:
Observer poles:
Ar ( z) = det( zI + L)
Ao ( z) = det( zI + K C )
Velocity
(a)
Estimated states
a) Kalman
b) Luenberger
5
Time
10
0
0
(b)
5
Time
10
10
5
Time
10
2
Velocity
Separation
L
x( k)
KC
x ( k p k 1)
10
2
Velocity
x ( k + 1 p k)
Measured states
Position
Eliminate u( k)
x( k + 1)
L
Position
u( k) = L( x( k) x ( k p k 1))
Position
x ( k + 1 p k) = ( K C ) x ( k p k 1)
0
0
5
Time
10
General disturbances
u( k) = Lx( k) Lww( k)
dx
= Ax + Bu + v
dt
dw
= Aw w
v = Cww
dt
x A Cw x B
d
u
+
=
dt w
0
0 Aw
w
Closed-loop system
x( k + 1) = ( L) x( k) + ( xw Lw ) w( k)
{z
}
|
(0?
Sampling gives
xw x( k)
x( k + 1)
+ u( k)
=
w( k + 1)
w( k)
w( k + 1) = ww( k)
Servo case
Try first
u( k) = L x ( k) + L c uc ( k)
The closed loop system
=1
z}|{
u( k) = L x ( k) Lw w ( k) = L x ( k) w ( k)
x ( k + 1) = x ( k) + (w ( k) + u( k)) + K ( y( k) C x ( k))
x( k + 1) = ( L) x( k) + L x ( k) + Lc uc ( k)
w ( k + 1) = w ( k) + K w( y( k) C x ( k))
x ( k + 1) = ( K C ) x ( k)
y( k) = Cx( k)
uc
x
Disturbance
Observer
State
Observer
u
v
Process
Lc
Observer
Process
Ao = det( zI + K C)
uc
Model and
Feedforward
xm
Generator
u ff
B ( z)
H cl ( z) = C( zI + L) L c = L c
Ac ( z)
B ( z)
A( z)
Controller
Output
J2
H m ( q)
uc ( k)
H ( q)
[ N = 6
x3 = 2 / 0
u( kh) = L x ( kh p kh h) + L c uc ( kh)
Desired closed loop poles (in continuous time)
(s2 + 2 m m s + 2m ) (s + 1 m ) = 0 1 = 2
0.1
u f f ( k) =
x2 = 1 / 0
Observer
Design
2
Motor
x1 = 1 2
Impulse response
u( k) = L( xm ( k) x ( k)) + u f f ( k)
Feedforward signal
J1
Process
ym ( k) = Cm xm ( k)
A design example
I
xm ( k + 1) = m xm ( k) + m uc ( k)
H ( z) = C( zI )1 =
u fb
Observer design
0
25
50
Time
75
s2 + 2 m 0 m s + ( 0 m )2 (s + 0 1 m ) = 0 0 = 2
Design
Summary
Output
20
40
60
80
Input
Full model
Reduced order
Delays in the estimator
General disturbances
The servo case
1
0
1
Reachability
Ackermanns formula
Observers
State feedback
20
40
Time
60
80