La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

HARDWARE. REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO Consideriamo il modello di un sistema dinamico a tempo discreto in termini di ingresso stato.

Presentazioni simili


Presentazione sul tema: "HARDWARE. REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO Consideriamo il modello di un sistema dinamico a tempo discreto in termini di ingresso stato."— Transcript della presentazione:

1 HARDWARE

2 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO Consideriamo il modello di un sistema dinamico a tempo discreto in termini di ingresso stato uscita: A cui è associata la Fdt seguente: Se si esegue un cambio di variabili mediante una matrice T, ovviamente invertibile, si ha una nuova rappresentazione del sistema:

3 ESEMPIO INVARIANZA FDT(1.1) Come visto quindi la funzione di trasferimento è invariante rispetto ai cambi di variabili di stato (nell’ipotesi che le elaborazioni siano effettuate con precisione infinita), come dimostra il seguente esempio: >> T=[1 4;2 3]; >> rank(T) r = 2 >> A=[0.7,0.4;0.3,0.2]; >> B=[1;1]; >> C=[1,1]; >> D=0; >> sys=ss(A,B,C,D,0.05); Costruiamo ora il nostro sistema di prova Costruiamo la nostra matrice di trasformazione (T) e controlliamo se è di rango massimo ossia invertibile.

4 ESEMPIO INVARIANZA FDT (1.2) >> sys1 = ss2ss(sys,T) a = x1 x2 x1 -0.66 1.28 x2 -0.82 1.56 b = u1 x1 5 x2 5 c = x1 x2 y1 -0.2 0.6 d = u1 y1 0 Sampling time: 0.05 Discrete-time model.s Effettuiamo ora il cambio di variabili di stato mediante il comando ss2ss e otterremo una nuova descrizione del sistema. Se ora calcoliamo la funzione di trasferimento delle due rappresentazioni si vede che sono identiche, come volevasi dimostrare. >> Ftd1=tf(sys) Transfer function: 2 z - 0.2 ------------------ z^2 - 0.9 z + 0.02 >> Ftd2=tf(sys1) Transfer function: 2 z - 0.2 ------------------ z^2 - 0.9 z + 0.02

5 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO Dato un modello in termini di ingresso stato uscita, diremo che esso costituisce una realizzazione della G(z); tale realizzazione è minimale se il polinomio caratteristico della matrice A coincide con il denominatore di G(z) e in quest’ultima non si hanno cancellazioni fra termini del numeratore e del denominatore. Una realizzazione minimale corrisponde ad un modello in termini di variabili di stato che sia completamente controllabile e osservabile. Se possediamo una realizzazione minimale associata a G(z), è possibile ottenere infinite altre rappresentazioni minimali utilizzando una qualche trasformazione di variabili di stato, mentre per una data realizzazione minimale viene associato in modo univoco un modello in termini di funzione di trasferimento.

6 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO 1.1 >> A=[0.7,0.4;0.3,0.2]; >> B=[1;1]; >> C=[1,1]; >> D=0; >> sys=ss(A,B,C,D,0.05); >> FDT=tf(sys) Transfer function: 2 z - 0.2 ------------------ z^2 - 0.9 z + 0.02 Sampling time: 0.05 >> pol_carat=poly(A) pol_carat = 1.0000 -0.9000 0.0200 Costruiamo il nostro sistema discreto di prova Troviamo la funzione di trasferimento del sistema considerato Calcoliamo i coefficienti del polinomio caratteristico della matrice A del sistema e verifichiamo che il polinomio coincide con il denominatore della funzione di trasferimento. Il sistema rappresenta quindi una realizzazione minimale della G(z)

7 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO 1.2 >> A1=[0.7,0;0.3,0.2]; >> B1=[1;0]; >> C1=[1,1]; >> D1=0; >> sys1=ss(A1,B1,C1,D1,0.05); >> FDT1=tf(sys1); Transfer function: 1 ------- z - 0.7 Sampling time: 0.05 >> pol_carat1=poly(A1) pol_carat = 1.0000 -0.9000 0.1400 Definiamo ora un nuovo sistema discreto di prova Troviamo la funzione di trasferimento del sistema Calcoliamo i coefficienti del polinomio caratteristico della matrice A del sistema e verifichiamo che è avvenuta una cancellazione polo-zero, quindi il sistema non rappresenta una realizzazione minimale della G(z).

8 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO 2.1 >> sys=ss(A,B,C,D,0.05); >> Co = ctrb(sys) Co = 1.0000 1.1000 1.0000 0.5000 >> Rango=rank(Co) Rango = 2 >> Ob = obsv(sys) Ob = 1.0000 1.0000 1.0000 0.6000 >> Rango=rank(Ob) Rango = 2 Un metodo differente per verificare se il sistema analizzato è in forma minima è quello di calcolare la matrice di controllabilità e di osservabilità attraverso i comandi ctrb() e obsv() rispettivamente e verificare che le matrici siano di rango massimo, come in questo caso.

9 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO(2.2) >> sys1=ss(A1,B1,C1,D1,0.05); >> Co = ctrb(sys1) Co = 1.0000 0.7000 0 0 >> Rango=rank(Co) Rango = 1 >> Ob = obsv(sys1) Ob = 1.0000 1.0000 0.7000 0.6000 >> Rango=rank(Ob) Rango = 2 In questo caso la matrice di controllabilità non è di rango massimo, quindi il nostro sistema non è in forma minima in quanto non completamente controllabile. NOTA  Un sistema è in forma minima se il rango del Gramiano di raggiungibilità e di osservabilità è massimo. Per il calcolo del gramiano di Osservabilità e Controllabilità si utilizzano rispettivamente le seguenti funzioni: Wc = gram(sys,‘o') Wo = gram(sys,‘c')

10 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO 3.1 >> MSYS = minreal(sys) a = x1 x2 x1 0.7 0.4 x2 0.3 0.2 b = u1 x1 1 x2 1 c = x1 x2 y1 1 1 d = u1 y1 0 Sampling time: 0.05 Discrete-time model. Esiste un altro metodo per verificare se un sistema è una realizzazione minimale. Consideriamo ora il sistema del primo esempio e utilizziamo la funzione minreal(). Tale funzione produce una realizzazione minimale del sistema passatogli come parametro, cancellandone i modi che risultano non controllabili o non osservabili. Come appare evidente dal risultato i modi del sistema sono tutti controllabili e osservabili.

11 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO 3.2 >> MSYS1 = minreal(sys1) 1 state removed. a = x1 x1 0.7 b = u1 x1 1 c = x1 y1 1 d = u1 y1 0 Sampling time: 0.05 Discrete-time model. Se ora consideriamo il sistema del secondo esempio e applichiamo la funzione minreal(), possiamo notare che il sistema non è una rappresentazione minimale ossia presenta un solo modo osservabile e controllabile. Lo stesso output di Matlab ci fornisce l’informazione che uno stato del sistema è stato rimosso  “1 state removed. “

12 REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO ESEMPIO 3.3 >> [MSYS1,T] = minreal(sys1) 1 state removed. a = x1 x1 0.7 b = u1 x1 1 c = x1 y1 1 d = u1 y1 0 Sampling time: 0.05 Discrete-time model. T = 1 0 0 1 Un qualsiasi sistema tempo discreto o tempo continuo è in forma minima se è completamente osservabile e controllabile, qualora non lo fosse è possibile effettuare una decomposizione di Kalman. Attraverso la funzione minreal() è possibile ottenere la matrice T tale che (TAT -1,TB,CT -1 ) rappresenta la decomposizione di Kalman del sistema.

13 REALIZZAZIONI E FUNZIONI DI TRASFERIMENTO Considereremo nel seguito alcune realizzazioni particolarmente significative e per fare questo analizzeremo problemi di realizzazione caratterizzati da funzioni di trasferimento strettamente proprie, in quanto il termine che corrisponde al legame diretto ingresso uscita è immediatamente rilevabile.

14 LA FORMA CANONICA DI OSSERVAZIONE Questa realizzazione è detta forma canonica di osservazione. Tale denominazione deriva dalla proprietà di poter risalire alle variabili di stato, interne al sistema “x i (k)”, a partire dalla conoscenza della variabili esterne, cioè a partire da opportune registrazioni delle sequenze di ingresso u e di uscita y. Nella forma canonica di osservazione la matrice dinamica appare in forma compagna verticale destra ed è direttamente legata ai coefficienti del polinomio caratteristico ovvero al denominatore della funzione di trasferimento. Il vettore di ingresso b è d’altra parte legato direttamente ai coefficienti del numeratore della funzione di trasferimento.

15 LA FORMA CANONICA DI CONTROLLO Questa realizzazione è detta forma canonica di controllo. Nella forma canonica di controllo la matrice dinamica appare in forma compagna orizzontale inferiore ed è la trasposta della corrispondente matrice compagna verticale destra della realizzazione in forma compagna di osservazione (A OI =A VD T ), quindi è anch’essa direttamente legata ai coefficienti del polinomio caratteristico ovvero al denominatore della funzione di trasferimento del sistema. Il vettore di uscita c = b T ed è quindi legato direttamente ai coefficienti del numeratore della funzione di trasferimento. La denominazione forma canonica di controllo deriva dalla proprietà di poter controllare le variabili di stato (ovvero far assumere alle variabili di stato, interne al sistema una qualsiasi configurazione), a partire dalla conoscenza della uscita y e con una opportuna sequenza di ingresso u.

16 FORME CANONICHE Se la descrizione del sistema è data direttamente in forma canonica di osservazione o di controllo (sono duali), la funzione G(z) corrispondente si ricava immediatamente a partire dalla matrice della dinamica A (in forma compagna verticale destra o orizzontale) e dal vettore degli ingressi b o dal vettore delle uscite c rispettivamente. Dualmente se viene fornita la funzione di trasferimento G(z) è possibile ricavare la descrizione del sistema in forma canonica di osservazione o di controllo. NOTA: Attenzione, non è detto che tali descrizioni del sistema siano anche realizzazioni minime, infatti perché lo siano devono essere completamente osservabili e controllabili, ossia non devono avvenire cancellazioni polo-zero nella funzione di trasferimento e il polinomio caratteristico della matrice della dinamica deve coincidere con il numeratore della funzione di trasferimento. Se consideriamo gli esempi precedenti possiamo quindi affermare che per il primo sistema ‘sys’ le forme canoniche rappresentano anche realizzazioni minime al contrario del caso del sistema ‘sys1’.

17 ASSEGNAMENTO POLI Se in ingresso al sistema che stiamo analizzando venissero riportate le variabili di stato x(k), mediante opportuni coefficienti di reazione l n-i, detto r(k) il segnale di comando esterno, le equazioni del nuovo sistema sarebbero: u(k)=r(k)-Lx(k) x(k+1)=[A-BL]x(k)+Br(k) Abbiamo quindi una nuova matrice della dinamica  A 1 =[A-BL] e mediante un’opportuna scelta dei coefficienti l i sarà possibile assegnare i poli in ciclo chiuso. Se la coppia [A,B] è controllabile, allora gli autovalori della matrice A-BL sono assegnabili arbitrariamente mediante una opportuna scelta della matrice L. Quindi è possibile assegnare i poli solo del sottosistema controllabile, che può coincidere con l’intero sistema o con una parte di esso.

18 ESEMPIO ASSEGNAMENTO POLI 1 >> sys=ss(A,B,C,D,0.05); >> poli=eig(A) poli = 0.8772 0.0228 >> newpoli=[-0.2,0.75]; >> L = place(A,B,newpoli) L = -0.0500 0.4000 Consideriamo il solito sistema, caratterizzato dalle matrici A=[0.7,0.4;0.3,0.2], B=[1;1], C=[1,1], D=0, e calcoliamo i poli del sistema. Se desideriamo posizionare i poli del sistema è sufficiente specificare i poli desiderati e mediante il comando place() otteniamo la matrice L desiderata. NOTA  come anticipato prima, affinché sia possibile posizionare i poli, la coppia [A,B] deve essere controllabile.

19 ESEMPIO ASSEGNAMENTO POLI 2.1 >> sys1=ss(A1,B1,C,D,0.05); >> poli=eig(A1) poli = 0.7000 0.2000 >> Co = ctrb(sys1) Co = 1.0000 0.7000 0 0 >> rango=rank(Co) rango = 1 Consideriamo il solito sistema, caratterizzato dalle matrici A=[0.7,0.4;0,0.2], B=[1;0], C=[1,1], D=0, e calcoliamo i poli del sistema. Il sistema preso in considerazione è completamente osservabile, ma presenta un modo non controllabile. Se volessimo assegnare i poli in ciclo chiuso, dovremmo isolare il sottosistema controllabile.

20 ESEMPIO ASSEGNAMENTO POLI 2.2 >> [Abar,Bbar,Cbar,T,k]=ctrbf(A1,B1,C) Abar = 0.2000 0 0.4000 0.7000 Bbar = 0 1 Cbar = 1 1 T = 0 1 1 0 k = 1 0 Mediante il comando ctrbf() è possibile trasformare il sistema nella forma standard di controllabilità, dove viene messa in evidenza la parte controllabile e non-controllabile del sistema. Quindi il modo del sistema controllabile e sul quale possiamo agire è (0.7). T è la matrice di trasformazione che permette di passare a questa rappresentazione, mentre la somma degli elementi di k fornisce il numero di modi controllabili del sistema.

21 ESEMPIO ASSEGNAMENTO POLI (2.3) >> newpol=[-0.2]; >> L=place(Abar(4),Bbar(2),newpol) L = 0.9000 Se ora desideriamo posizionare il polo del sotto-sistema controllabile è sufficiente specificare il polo desiderato, le matrici A e B del sottosistema e mediante il comando place() otteniamo la matrice L desiderata. Nel caso in cui si utilizzasse uno stimatore dello stato per misurare gli stati controllabili del sistema e quindi per implementare la legge di reazione dello stato che permette di assegnare i poli in ciclo chiuso, bisogna prendere in considerazione il sotto-sistema controllabile e osservabile, individuabile mediante il comando minreal().

22 STIMATORE (OSSERVATORE) DELLO STATO Non è possibile implementare la legge di reazione dello stato u(k)=r(k)-Lx(k), per effettuare l’assegnamento dei poli, se gli stati del sistema non vengono misurati. E’ comunque possibile costruire uno stima dello stato (chiamiamola ξ(k)), tale che la legge di reazione dello stato mantenga le sue proprietà nell’assegnamento dei poli in ciclo chiuso. E’ possibile effettuare tale stima mediante un osservatore dello stato della forma: I poli dell’osservatore sono gli autovalori della matrice della dinamica (A-HC), che possono essere arbitrariamente assegnati attraverso una appropriata scelta della matrice H. Naturalmente tale operazione è possibile solo se la coppia [A,C] è osservabile, altrimenti va esclusivamente considerato il sottosistema osservabile. Attenzione  generalmente la dinamica dell’osservatore è molto più veloce di quella del sistema per ovvie ragioni, quindi è consigliabile far si che i poli di (A-HC) siano molto più veloci di quelli di (A-BL)

23 ESEMPIO STIMATORE (OSSERVATORE) DELLO STATO >> sys=ss(A,B,C,D,0.05); >> newpoli=[-0.2,0.75]; >> L = place(A,B,newpoli) L = -0.0500 0.4000 >> poliobsv=[-0.8,-0.9]; >> H = place(A',C',poliobsv); H = 3.7000 -1.1000 Consideriamo nuovamente il sistema caratterizzato dalle matrici A=[0.7,0.4;0.3,0.2], B=[1;1], C=[1,1], D=0 e posizioniamo i poli del sistema. Ora posizioniamo i poli del nostro osservatore. Il comando da utilizzare è sempre il medesimo: place() che ci permette di ottenere in questo caso la matrice H desiderata. NOTA  la coppia [A,B] e la coppia [A,C] del sistema considerato sono rispettivamente controllabile e osservabile. Le operazioni di assegnamento dei poli in ciclo chiuso e stima dello stato possono essere applicate insieme esclusivamente su sistemi o sottosistemi completamente controllabili e osservabili.

24 Nella progettazione di regolatori lineari basati sul modello, la complessità della legge di controllo dipende dall’ordine del sistema (numero di poli / numero di stati). Può essere utile cercare di approssimare il modello originale con un modello di ordine minore, che preservi il più possibile il legame ingresso/uscita (cioè la funzione di trasferimento del sistema), ed effettuare la sintesi su tale modello. Sappiamo che modi non controllabili/non osservabili non influiscono sulla funzione di trasferimento, quindi possono essere eliminati dal modello tramite decomposizione. Cercheremo di eliminare anche altri modi “poco” controllabili e/o “poco” osservabili, e di avere una realizzazione in forma di spazio di stato numericamente ben condizionata. Riduzione modello(1) Consideriamo un sistema tempo-discreto del tipo:

25 Riduzione modello(2) Mediante la rappresentazione bilanciata del sistema possiamo individuare e successivamente cancellare quegli stati che presentano una dinamica trascurabile, riducendo così l’ordine del modello sotto esame. Una realizzazione in forma di spazio di stato di un sistema lineare si dice bilanciata se i gramiani W c e W o sono uguali e diagonali: dato un sistema (A,B,C,D) completamente raggiungibile e osservabile in forma non bilanciata, la trasformazione T che permette il bilanciamento è data dagli autovettori v 1,...,v n di:

26 Esempio riduzione modello >> z = tf('z',0.05); >> sys=((z-0.8)*(z-0.5))/((z+0.9)*(z+0.85)*(z-0.7)*(z-0.75)) Transfer function: z^2 - 1.3 z + 0.4 --------------------------------------------- z^4 + 0.3 z^3 - 1.248 z^2 - 0.1905 z + 0.4016 Sampling time: 0.05 >> sys1=ss(sys); Definiamo in Matlab il sistema del nostro esempio:

27 Esempio riduzione modello 1.1 >> OS=obsv(sys1); >> rank(OS) OS = 4 >> ctrb(sys1) >> CO=rank(ans) CO = 4 >> [sysb,G,Ti,T] = balreal(sys1)... G = 37.5635 7.4139 0.0939 0.0068 Verifichiamo che il sistema definito è controllabile e osservabile (se manca la completa ragg./osserv., si può effettuare una decomposizione di Gilbert- Kalman e tenere soltanto la parte ragg. e osservabile) Troviamo la forma bilanciata del sistema, tra gli output di Matlab quello che ci interessa maggiormente è il vettore G=[     n  ’ T rappresenta invece la matrice di trasformazione e Ti=T -1

28 Esempio riduzione modello 1.2 >> rsys = modred(sysb,[4],'del') a = x1 x2 x3 x1 -0.9638 -0.08549 0.007314 x2 0.08549 -0.7841 -0.05597 x3 -0.007314 -0.05597 0.6018 b = u1 x1 1.617 x2 1.607 x3 -0.1859 c = x1 x2 x3 y1 -1.617 1.607 -0.1859 d = u1 y1 0 Sampling time: 0.05 Discrete-time model. Una volta che il sistema è in forma bilanciata, è possibile ottenere una riduzione dell’ordine del modello semplicemente eliminando gli stati relativi ai valori σ i più trascurabili. Eliminiamo quindi lo stato numero 4, ottenendo il nuovo sistema ridotto del terzo ordine.

29 Esempio riduzione modello 1.3 Confrontiamo le risposte in frequenza del sistema originale e del sistema ridotto che come si può notare sono pressoché indistinguibili: >> bode(sysb,'r',rsys,'b') In generale: più grande è la differenza fra il primo valore σ 1 e l’ultimo valore σ n, maggiore è la possibilità che, togliendo lo stato n-esimo, il sistema ridotto abbia un comportamento simile all’originale.

30 Esempio riduzione modello 1.4 Eliminare la dinamica degli stati trascurabili però è una semplificazione a volte eccessiva, in quanto il comportamento del sistema potrebbe non essere rispettato neanche alle basse frequenze. Tali stati sono si poco importanti nella descrizione della dinamica del sistema ma non è detto che possano essere eliminati completamente. Possiamo invece eliminare alcuni stati semplicemente approssimandoli come infinitamente veloci, cioè imporre che x2(k+1)=x2(k), considerando che la dinamica degli stati x2 sia molto veloce rispetto a quella degli stati x1. >> rsys1 = modred(sysb,[4],‘MatchDC') >> G=freqresp(sys1,0) G = 0.3793 >> G1=freqresp(rsys1,0) G1 = 0.3793 Eliminiamo lo stato 4 con il metodo matched DC gain Proprietà: il guadagno in continua del modello viene preservato


Scaricare ppt "HARDWARE. REALIZZAZIONI MINIMALI E FUNZIONI DI TRASFERIMENTO Consideriamo il modello di un sistema dinamico a tempo discreto in termini di ingresso stato."

Presentazioni simili


Annunci Google