Professional Documents
Culture Documents
][
y 1( s)
g11 (s ) g12 (s )
u (s)
y 2( s) = g21 ( s) g22 (s ) 1
u2 (s)
y 3( s)
g31 ( s) g32 (s )
Forma di SMITH McMILLAN: per ricavare poli e zeri della matrice di trasferimento.
G ( s ) M ( s ) L1 ( s ) Le ( s ) G ( s ) R1 ( s ) R r ( s )=M ( s)
Pre e post moltiplicazione per MATRICI UNIMODULARI ( = determinante una costante)
[ ]
M ( s) =
1(s)
1 (s)
2( s)
2 (s)
0
0
0
p (s)
d (s)
G ( s )=
P ( s ) S ( s )=
] {
'1 ( s)
0
'i ( s ) monico
dove
0
'2( s)
i i+1
Di ( s)
Di1 (s)
i ( s )=
M ( S) =
1
S (s)
d ( s)
Si trovano infine i poli e gli zeri dal polinomio degli zeri e dei poli.
I poli di G(s) sono facilmente individuabili in quanto sono gli stessi poli delle
singole funzioni di trasferimento gij(s) ma non si in grado di determinare la
molteplicit del polo
Gli zeri di trasmissione non sono individuabili a partire dalla G(s)
Gli zeri di trasmissione hanno una propriet bloccante: per determinati ingressi il
sistema risponde con uscita nulla per certe fissate condizioni iniziali.
(
**) Sia z0 uno zero di trasmissione allora il rango di G(s) cade per s = z0.
Nel caso MIMO, sono accettati poli e zeri coincidenti, a differenza del caso SISO
>> Gsim = tf2sym(G)
% passo in simbolico per calcolare il determinante
>> pretty(Gsim)
% migliore visualizzazione
>> detG = det(Gsim)
% risultato fornito in simbolico
>> det(G) = sym2tf(detG) % ritorno nella forma iniziale
x = Ax+ Bu
u ( t ) =k x ( t ) +r ( t )
x 0=x (0)
x ( t )=( AB K ) x ( t ) + B r (t )
K
K : i { AB K } C
K : i { AB K } C
[]
1
K : i { AB K }=
n
Stato accessibile
sistema raggiungibile
Stato accessibile
sistema stabilizzabile
OSSERVATORE
ASINTOTICO
DELLO STATO
1 simulazione
>> initial(sys, x0, t);
2 simulazione
>> x0 = [0; 0; 0];
>> r1 = ones (lenght(t),
1);
>> r2 = ones (lenght(t),
1);
>> r = [r1, r2];
>> lsim (sys, r, t, x0);
x = Ax+ Bu
y=Cx
OSSERVATORE
ASINTOTICO
dello STATO
Fornisce una stima dello stato t.c. lerrore di stima dello stato
e ( t )=x ( t ) ~x(t)
limitato
^x ( t )= A ^x ( t ) + Bu ( t )L( ^y ( t ) y (t ) )
e ( t )=x ( t ) ^x ( t )=( AL C)( x ( t )^x ( t ))
[]
1
i { AL C } ( A , B , C ) osservabile
n
1 simulazione
>> initial(sys, x0, t);
2 simulazione
>> x0 = [0; 0; 0];
>> r1 = ones (lenght(t),
1);
>> r2 = ones (lenght(t),
1);
>> r = [r1, r2];
>> lsim (sys, r, t, x0);
x f =
[][
][ ] [ ]
x
= A
^x
LC
B K
x + B r
AB K L C x^
B
y=[ C 0 ]
[]
[][
x = AB K
e
0
][ ] [ ]
B K x + B
AL C e
0
x
x^
y=x se ( A . B ) raggiungibile
y=C x se ( A , B ) raggiungibile
se ( A , C ) osservabile
Esempio esercizio:
Stabilit
asintotica a ciclo
chiuso
Errore nullo a
regime
permanente in
risposta alla
classe di
riferimenti
canonici
Reiezione ai
disturbi
Allocazione
autovalori a ciclo
chiuso
Teoria del
controllo basata
sul modello
interno
Controllore
~e ( t )=0
~
y ( t )= y (t)
Processo
~
( t )=S ~
w
w(t)
o
o
o
o
~
w ( t )=
~
( t )=0 ~
w
w ( t )=~
w (0 )
S=0
w ( 0 )=
~
w ( t )= e t
~
( t )= ~
w
w(t)
S=
t
~
w ( t )=~
w (0)e
w ( 0 )=
~
( t )=~
w
w ( 0 ) e t = e t = ~
w (t)
[ ] [ ]
~
1 (t)
~
w
w (t)
=S ~1
~
2 (t)
w 2(t)
w
w ( 0 )+ t w 2 ( 0 )
~
w ( t )= 1
w2 ( 0 )
~
w ( t )=at + b
[ ]
S= 0 1
0 0
~
w ( t )=asin ( t )
~
w ( t )=acos ( t )
0
S=
0
[ ][
~
1 (t)
~
w
w (t)
= 0 ~1
~
2 (t)
0 w2 (t)
w
[ ]
][ ]
~
w1 (t)
Acos(t+ )
=
~
Asin(t + )
w2 (t)
] [ ][
~
w ( 0)
~
w ( 0 )= ~1
w 2( 0)
A= ~
w12 ( 0 )+ ~
w22 (0)
=arctg( ~
w2 ( 0 ) , ~
w1 ( t ) )
w
e
Processo soggetto a
disturbo generalizzato.
Trattazione unificata
Processo
Controllore
yd
[ ]
~
w= w
yd
w
11
e ( t )= y d ( t ) y ( t)
e
Controllore
~e (t) 0
~~
P w=P w
dove
~
P=[ P 0 ]
~
w genera anche segnali ausiliari, quindi in
x =Ax +Bu+ [ P 0 ]
~
P avremo ulteriori blocchi nulli
[ ]
w
yd
~
C=C
~ ~~
e= y d y=CxQw=C xQ w ~
w
Q~
w= y d Qw=[Q I d ]
yd
S
C
P1
[ ]
~
INFORMAZIONE COMPLETA ( x ( t ) e w ( t ) misurabili)
~
x = Ax+ Bu+~
P~
w= Ax+ B ( Kx+ L ~
w )+ P ~
w=( A+ BK ) x+ ( P+ BL ) ~
w
~ ~
e=C xQ ~
w
(S )IC ( A+ B K ) C
Stabilizzazione asintotica
( x ( 0 ) , w ( 0 ) )
le soluzioni
( R )IC
(S )IC
={}
( S ) C
altrimenti
(S )IC (R) IC
(non servirebbe
EQUAZIONE DI SYLVESTER
AX XS=R
risolvibile
R ( A ) ( S )={} . La
soluzione X unica
LEMMA (IC)
u=Kx + L ~
w un controllore che soddisfa
una matrice
(R)IC
(nr )
(S )IC .
t.c soddisfi:
~
S=( A+ B K ) + ( P+ B L ) eq . di Sylvester
~
~
0= C + Q eq . errore di uscita nullo
Si lavora a ciclo chiuso poich il controllore dato (le matrice L, K sono date)
Si cerca un controllore tale che abbia stabilit asintotica e che garantisca
~e ( t ) 0
Siparte dalla classe di tutti i controllori che soddisfano la prima propriet,, e si cercano
quei controllori che soddisfino anche la seconda, ovvero si lavora nellintersezione tra
gli insiemi
(S )IC ( R) IC
Dimostrazione.
u=Kx + L ~
w , con K t . c . ( A+ B K ) C , cio soddisfa
Sia
~
S=( A +B K ) + ( P+B L )
Dimostriamo che
(S )IC .
unequazione di Sylvester
A=( A + B K )
X=
{ ( A+ B K ) S= A X + X S=R
S=S
R=( ~
P+ B L )
Tale equazione risolvibile se e solo se
( A ) ( S )={} cio
( A + B K ) ( S )
infatti:
A + B K
Quindi
Affinch
ununica soluzione X = .
~e ( t )= y y 0, lim y= y cio lim x=x
d
~ ( ) ~~ ( )
~1 ~ ( )
C xd t + Q w t =0 x d ( t ) =C Q ~
w t = ~
w (t )
~
x
I x
=
~
w
0
I ~
w
[][
x d= ~
w (t )
][ ]
~
x=xx d =x ~
w ( t ) , per fare cambiamento di base
={ }
~
x= x x d =( A+ BK ) x + (~
P+ BL) ~
w S ~
w=
( A + BK )( ~
x+ ~
w ) S ~
w=
( A + BK ) ~
x + ( ( A+ BK ) + ( ~
P+ BL ) S ) ~
w=( A+ BK ) ~
x
(R)IC
Evoluzione nel tempo delle soluzioni
Rimane da dimostrare che
( A +BK ) t
~
x ( t )=e
x ( 0)
St
~
w ( t ) =e w(0)
~e ( t ) 0
e ( t )= ~
C x ( t ) +~
Q~
w ( t )= ~
C (~x ( t )+ ~
w ( t ) ) +~
Q~
w ( t )=
~
~
~ ( )
C ~
x+(C + Q) ~
w t
~
C e ( A +BK ) t x ( 0 ) +(~
C +~
Q)e St w(0)
Quindi in conclusione
~
~e ( t )=0 ~
C + Q=0
( A + BK ) t
e
0
e w ( 0 ) 0( S antistabile)
St
TEOREMA (IC)
Sotto le ipotesi H1 e H2 il problema di regolazione a zero dellerrore
con
(S )IC
stabilit asintotica
ha soluzione
( R)IC
(nr ) e mr
~
S=A +B + P
~
~
0=C + Q
~
(
)
u=Kx + K w con K t . c . ( A+ B K ) C
Sufficienza
K t . c .(S )IC
Dallipotesi H2
ponendo
=K + L
e sostituendo nellequazione di
(R)IC
Sia
Necessit
u=Kx + L ~
w con controllore che soddisfa
Dal lemma si ha
( R)IC
~
S=( A+ B K ) + ( P+ B L )
~
~
0=C + Q
=K + L
Ponendo
(S )IC
avremo
~
S= A +B ( K + L ) + P
~
S= A +B + P
eq.
del regolatore
La legge di controllo pu essere letta in due modi:
Kx = feedback stabilizzante a zero
u=Kx + ( K ) ~
w=Kx+ L ~
w
u= ~
w+ K ( x ~
w)
L~
w = feedforward opportuno per avere
uscita desiderata che dipende dalla parte
stabilizzante
~
w
K (x ~
w)
= feedback stabilizzante a
x d= ~
w (t )
A B ~
P
+ ~ =
~
C 0
Q
[ ][ ] [ ]
dove
X ( n+m )r=
[ ]
(nr )
(mr )
~
C=C
[ ]
y
e= y d y=CxQw=~
C x + [ I p Q ] d
w
pm
(R)IC
~
Pw= P ~
w=[0 P] ~
w
>> eig(S)
>> rank (ctrb(A,B));
[][ ] [ ][
~
P
A B
~+ ~
Q C 0
(S )IC
][ ]
= I p 0nm S
0 pn 0 pm
~
R+WX =JXS
Unica equazione matriciale costituita da un unico blocco con n 1= n+p righe e m1 = r
colonne
>> quiz = sdmpb(ouputu regulation)
Inizializzazione Oggetto vuoto da
riempire
>> [quiz, Xindex]=sdmvar(quiz, n, m, X);
Dichiarazione variabili
>> [quiz, lmeindex]= sdmlme(quiz, [n1 n2], [m1
Vincolo uguaglianza
m2], name)
>> Rtilde = [Ptilde; Qtilde];
>> W = [A B; Ctilde zeros(p, m)];
Definizione termini eq. regolatore
>> J = [eye(n), zeros(n, m), zeros(p, n),
zeros(p, m);
>> quiz = sdmeq(quiz, lmeindex, Xindex, W,
Inserimento
eye(n));
Termine noto: Xindex = 0;
- = a destra del vincolo;
>> quiz = sdmeq(quiz, lmeindex, 0, Rtilde,
eye(r));
>> quiz = sdmeq(quiz, -lmeindex, J, S);
>> quiz = sdmsol(quiz)
Soluzione
>> X = quiz(Xindex)
Estrapolazione soluzione
>> Pigreco = X(1:n, :); Gamma =
Estrapolazione matrici e da X
X(n+1:m+n, :);
>> L = Gamma K*Pigreco
Calcolo matrice L
>> sys_e=ss(A+BK, BL+Ptilde, Ctilde,
Rappresentazione in spazio di stato
Qtilde);
sistema errore
>> e = lsim(sys_e, wtilde, t, x0); plot(t,
Salvataggio nella variabile e. Grafico
e);
>> sys_y = ss(A+BK, BL+Ptilde, C,
[zeros(p), Q]);
>> y = lsim(sys_y, wtilde, t, x0)
>> plot (t, y, b, t, wtilde(:, 1), r)
Controllore dinamico C:
( t )=F ( t ) + (t)
u ( t )=H (t )
specifiche:
A BH
( ~
) C
GC F
( R)
lim e ( t ) =0
t
( x ( 0 ) ,~
w ( 0 ))
le soluzioni
~
~ ( )
lim C x ( t )+ Q ~
w t =0
t
~
x
A BH x
P
+ ~~
w
= G ~
C F GQ
e=[ C 0 ] x +~
Q~
w
[][
][ ] [ ]
[]
lim 0 ( t )=x (t )
t
lim 1 ( t )=~
w (t)
t
x = A ~
P x + B u
~
w
0 S ~
w 0
Osservatore Asintotico
[ ] [ ][ ] [ ]
[
][ ]
~ ~ x
e= C Q ~
w
[ ] [ ][ ] [ ] [ ]
~ x
0
G
= A P ~
+ B u+ 0 (e[~
C ~
Q] 0 )
0 S w
0
G1
1
1
Il termine
[]
G0
G1
[]
~ G
e^ (t)=( A P 0 [~
C ~
Q ] ) e^ (t)
0 S
G1
[ ][ ]
dove
e^ ( t )=
x (t )0 (t )
y ( t ) 1 (t)
che tende a 0
Ricordando che
[]
G0
G1
~ G
A P
~ ~
0 [C Q] C
0 S
G1
([ ] [ ]
Deve avere evoluzione livera che tenda a 0, perci inserisco ulteriore ipotesi di lavoro:
( Ae ,C e )
rilevabile.
A
G
( e 0 C e ) e^ (t)
G1
~
.
A e = A P ^ ( )
0 S e t =
C e= [ ~
C ~
Q]
[ ]
Dove
[ ]
u=K 0 +( K ) 1
~ ~
~
( t )=F ( t )+ (t ) 0 = A+ BK + G0 C P+ B ( K )G 0 Q 0
~
1
1
G 1 C
S
C:
u ( t )=H (t )= [ K K ] 0
1
[][
][ ]
[]
LEMMA (RE)
( F , G , H ) che soddisfano
S= A +BH + ~
P
(R) ( , ) t . c .
S=F
~
~
0=C + Q
~
S= A BH + P XS= AX + R
Equazione di Sylvester
G~
C F G~
Q
[] [
][ ] [ ]
(S ) .
~
x =xx d=x ~
w
~
~
=d = w
Errore di stato
[][
~
x
lim ~
x ( t ) =0 ;
A BH ~
x
t
=
~
~
~
~
GC F
lim ( t )=0 ;
][ ]
~~
e ( t )= C
x +
0 per t
~
~
(
C + Q)~
w
~
~
0 C + Q=0 poich S antistabile
A
BK
B( K )
A BH
~
~
~
(S )= ~
= G0 C A + BK G0 C PG0 ~
Q+ B( K )
GC F
~
~
~
G1 C
G1 C
SG1 Q
A
0
Essendo
BH
AG0 ~
C ~
PG 0 ~
Q A
~
~
G1 C SG1 Q = 0
0
~
G ~ ~
A P
([ ] [ ][ ])
0
G1
C Q C
BK
B( K )
~
~
AG 0 C
PG0 ~
Q
~
~
G1 C
SG1 Q
I
T = I
0
0 0
A f =T A f T 1=
I 0 ^
0 I
[ ]
( ^
A f ) = ( A+ BK )+ ( A e
G0
C )
G1 e
Sia
1.
S= A +B [ K
[ ]
[ ]
K ] + ~
P S= A + BK+ ~
P
I
B( K )
~ ~
~
S= A+ BK G0 C PG0 Q+B ( K )
I
G1~
C
SG1 ~
Q
[]
2.
~
~
~
S=( A+ BK G 0 C ) + PG0 Q+ B ( K )
~
S= A + B + P G0 ( C + Q ) C + Q=0
3.
~
~
~
~ ~
~
S=G1 C + SG1 Q 0=G1 ( C + Q) C + Q=0
TEOREMA (RE)
semplificando termini
( S ) e ( R ) ammette soluzione
~
( , ) t . c . S= A~ +B~ + P
0=C + Q
u=Kx + L ~
w=K 0 + ( K ) 1 con K : ( A+ BK ) C
(S )
(S )IC
( R)
e
(R)IC
Definizione matrice Ae
Definizione matrice Ce
Controllo osservabilit per rilevabilit
(H3)
>> Gt = place (Ae, Ce, aut)
Numero di autovalori n+r
>> G = Gt
Nellambito di osservabilit lavoro con
trasposti
>> G0 = G(1:n, :);
Estrapolare matrice G0
>> G1 = G(n+1:n+r, :)
Estrapolare matrice G1
>> F = [A+G0*Ctilde-B*K, Ptilde-G0*Qtilde+B*(Gamma-K*Pigreco); -G1*Ctilde, SG1*Qtilde];
>> G = [G0; G1];
>> H = [K, Gamma K*Pigreco];
>> sys_e = ss ([A B*H; G*Ctilde F], [Ptilde; G*Qtilde]; [Ctilde, zeros(p, n+r)], Qtilde];
>> e = lsim (sys_e, wtilde, t,
Composta da 1001 righe e 2 colonne
[1;1;1;0;0;0;0;0;0;0;0])
>> figure;
Costruisco la figura per i due grafici
dellerrore
>> subplot (211), plot(t, e(:, 1)), grid;
Grafico della prima componente
dellerrore
>> subplot (212), plot(t, e(:, 2)), grid;
Grafico della seconda componente
dellerrore
>> Cy = [C, zeros(p, n+r)];
Costruisco matrice C per luscita
>> Qy = [Q, zeros(p, r-d)];
Costruisco matrice D per luscita
>> sysy=ss([A,B*H;G*Ctilde,F],
Rappresentazione in spazio di stato
[Ptilde;G*Qtilde],Cy,Qy)
delluscita
>> y=lsim(sys_y,wtilde,t,zeros(2*n+r,1));
Salvo componenti di y in una matrice
>> figure;
Costruisco la figura per confronto
>>
Confronto prima uscita con rispettiva
subplot(211),plot(t,y(:,1),'r',t,wtilde(:,3),'b'); wtilde
>>
Confronto seconda uscita con rispettiva
subplot(212),plot(t,y(:,2),'r',t,wtilde(:,4),'b'); wtilde