La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

INTRODUZIONE AI SISTEMI DINAMICI LINEARI E STAZIONARI NEL CASO DISCRETO.

Presentazioni simili


Presentazione sul tema: "INTRODUZIONE AI SISTEMI DINAMICI LINEARI E STAZIONARI NEL CASO DISCRETO."— Transcript della presentazione:

1 INTRODUZIONE AI SISTEMI DINAMICI LINEARI E STAZIONARI NEL CASO DISCRETO

2 IL CASO COMPLESSO la relazione ricorsiva x(k+1)=ax(k) (che rappresenta la legge di evoluzione dello stato di un sistema lineare stazionario tempo discreto) nel campo complesso è possibile rappresentarla come segue  x 1 (k+1)+j x 2 (k+1)=(p+jq)[x 1 (k)+jx 2 (k)] che in forma matriciale diviene  x 1 (k+1) p -q x 1 (k) x 2 (k+1) q p x 2 (k) =

3 Gli elementi complessi in Matlab(1) >> p=2; >> q=3; >> c=complex(p,q) c = 2.0000 + 3.0000i >> A=[1;2;3;4]; >> B=[5;6;7;8]; >> C=complex(A,B) C = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i creiamo un elemento complesso del tipo c=p+jq creiamo un vettore di elementi complessi del tipo C=A+jB

4 Gli elementi complessi in Matlab(2) >> p=real(c) p = 2 >> q=imag(c) q = 3 >> A=real(C) >> B=imag(C) A = 1 2 3 4 Troviamo parte reale dell’elemento complesso c Troviamo parte immaginaria dell’elemento complesso c Troviamo parte reale (A) e immaginaria (B) del vettore di elmenti complessi C B = 5 6 7 8

5 Gli elementi complessi in Matlab(3) >> R = abs(C) R = 5.0990 6.3246 7.6158 8.9443 >> theta = angle(C) theta = 1.3734 1.2490 1.1659 1.1071 >> C=R.*exp(i*theta) C = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i Calcoliamo il modulo degli elementi complessi del vettore C=A+jB Calcoliamo la fase (in radianti) degli elementi complessi del vettore C=A+jB ecco come riottenere il vettore di elementi complessi originario C=A+jB

6 Gli elementi complessi in Matlab(4) Possiamo quindi calcolare l’elemento k-esimo della relazione ricorsiva x(k+1)=ax(k) : >>p=2; >>q=3; >> Matrix=[p,(q);p,q] Matrix = 2 -3 2 3 >> M=Matrix^4 M = -146 -15 10 -141 Quindi l’elemento per k=4 è : x 1 (4) x 1 (0) x 2 (4) x 2 (0) = M Parte reale (p) e immaginaria (q) dell’elemento complesso c=p+jq

7 IL CASO VETTORIALE Se consideriamo il caso vettoriale con x(k)εR n, la relazione ricorsiva si può generalizzare come segue, con A matrice reale n x n : x(k+1) = A x(k) L’elemento k-esimo vale: x(k) = A k x(0)

8 Esempio 1: Matrice diagonale a blocchi >> A=[2,0,0;0,1,1;0,-1,1] A = 2 0 0 0 1 1 0 -1 1 >> A3=A^3 A3 = 8 0 0 0 -2 2 0 -2 -2 >> x3=A3*x0 x3 = 8 0 -4 Matrice diagonale a blocchi Calcoliamo A k per k=3 Quindi l’elemento k-esimo per k=3 è : x(3)=A 3 x(0) Con x0 vettore condizioni iniziali che in questo esempio vale: >>x0=[1;1;1] N.B. la potenza k-esima di una matrice diagonale a blocchi è pari alla matrice, ancora diagonale a blocchi, in cui ad ogni blocco lungo la diagonale principale corrisponde proprio la potenza k-esima del blocco corrispondente

9 Esempio 2.1: Matrice diagonalizzabile reale >> A=[1,2,3;4,2,8;2,8,2] A = 1 2 3 4 2 8 2 8 2 >> [V,D] = eig(A) V = -0.3193 -0.9021 -0.1193 -0.6882 0.0882 -0.6791 -0.6515 0.4224 0.7243 D = 11.4303 0 0 0 -0.6003 0 0 0 -5.8300 Calcoliamo con il comando eig la matrice modale (V) costituita dagli autovettori destri di A e la matrice diagonalizzata (D) sulla cui diagonale principale sono presenti proprio gli autovalori della matrice A Nota: in questo caso gli autovalori sono tutti reali e distinti (m.a.=m.g.),

10 Esempio 2.2: Matrice diagonalizzabile reale >> U=inv(V) U = -0.3759 -0.6463 -0.6679 -1.0085 0.3312 0.1445 0.2499 -0.7745 0.6956 >> D2=D^2 D1 = 130.6508 0 0 0 0.3603 0 0 0 33.9889 >> A2=V*D2*U D2 = 15 30 25 28 76 44 38 36 74 Calcoliamo la matrice (U) costituita dagli autovettori sinistri di A La potenza k-esima di A vale: A k =VD K U Dal momento che D è una matrice diagonale a blocchi risulta più semplice e immediato il calcolo di D K Per calcolare A 2 è sufficiente pre e post-moltiplicare per la matrice degli autovettori destri e degli autovettori sinistri rispettivamente la matrice D 2.

11 Esempio 3.1: Matrice con autovalori complessi >> A=[1,4,2;5,2,7;8,2,4] A = 1 4 2 5 2 7 8 2 4 >> [V,D]=eig(A) V = 0.3884 0.4220 - 0.3355i 0.4220 + 0.3355i 0.6818 0.2002 + 0.5356i 0.2002 - 0.5356i 0.6199 -0.6184 -0.6184 D = 11.2128 0 0 0 -2.1064 + 2.6077i 0 0 0 -2.1064 - 2.6077i Caso di matrice che presenta autovalori complessi coniugati Come si vede in (D) ci sono due autovalori complessi coniugati, se si vuole è possibile trasformare la matrice D mediante il comando cdf2rdf : i blocchi complessi della matrice vengono trasformati in blocchi reali, rendendo così più semplice il calcolo numerico manuale della matrice A K

12 Esempio 3.2: Matrice con autovalori complessi >> [V,D]=cdf2rdf(V,D) V = 0.3884 0.4220 -0.3355 0.6818 0.2002 0.5356 0.6199 -0.6184 0 D = 11.2128 0 0 0 -2.1064 2.6077 0 -2.6077 -2.1064 I blocchi complessi della matrice D vengono trasformati in blocchi reali. Come si può notare anche gli autovettori che prima erano complessi coniugati ora sono reali. Ci si riconduce al caso delle matrici diagonali a blocchi esposto in precedenza. Nota: nel caso gli autovalori della matrice A abbiano molteplicità algebrica m.a. >1 e molteplicità geometrica m.g. < m.a. bisogna porre attenzione nell’utilizzo del comando eig, in quanto quest’ultimo fornisce una risposta dando per scontato che gli autovalori siano tutti distinti anche se in realtà non lo sono. Bisogna in questo caso usare il comando jordan che fornisce la forma canonica di Jordan della matrice A.

13 Esempio 4.1: Forma canonica di Jordan >> A=[1,-3,-2;-1,1,-1;2,4,5] A = 1 -3 -2 -1 1 -1 2 4 5 >> [V,J] = jordan(A) V = -1 -1 1 0 -1 0 1 2 0 J = 3 0 0 0 2 1 0 0 2 Calcoliamo la forma canonica di A (V = matrice degli autovettori generalizzati, J = forma canonica di A) la forma canonica di Jordan è una forma particolare di matrice triangolare a blocchi

14 Esempio 4.2: Forma canonica di Jordan >> U=inv(V) U = 0 2 1 0 -1 0 1 1 1 >> J2=J^2 J2 = 9 0 0 0 4 4 0 0 4 >> A2=V*J2*U A2 = 0 -14 -9 -4 0 -4 8 18 17 Calcoliamo la matrice (U) costituita dagli autovettori sinistri generalizzati Dal momento che A k =VJ k U, per calcolare A 2 è sufficiente calcolare J 2 e successivamente pre e post-moltiplicarla per la matrice degli autovettori destri e degli autovettori sinistri rispettivamente.

15 L’EVOLUZIONE LIBERA E FORZATA Consideriamo un sistema dinamico descritto dalle seguenti relazioni di ricorrenza lineari: Vediamo ora un esempio, con l’ausilio di Simulink e Matlab, che permetterà di mettere in evidenza la validità del principio di sovrapposizione degli effetti. Ricordiamo che per le proprietà di linearità e sovrapposizione degli effetti la soluzione generale x(k) sarà la somma dell’evoluzione libera dello stato x l (k) (l’evoluzione ottenuta a partire da condizioni iniziali x 0 con u(k) = 0) e della evoluzione forzata dello stato x f (k) (l’evoluzione ottenuta a partire da x 0 = 0 con ingresso forzante u(k)). L’uscita del sistema y(k) sarà data ugualmente dalla somma dell’uscita libera y l (k) e dell’uscita forzata y f (k)

16 Esempio 1.1 Consideriamo il seguente sistema: Possiamo costruire con Matlab il sistema tempo discreto mediante il comando ‘ss’, con un sample time=0.05 (il valore del sample time è puramente dimostrativo) >> 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) 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.

17 Esempio 1.2 Costruiamo con Simulink il seguente schema e avviamo la simulazione. Nello schema i blocchi ‘Discrete State-Space’ implementano il sistema discreto di nostro interesse mentre i tre blocchi ‘To Workspace’ permettono di inviare direttamente al workspace le uscite dei tre sistemi cosi da poter essere analizzate ed elaborate.

18 Esempio 1.3 Terminata la simulazione possiamo tornare in Matlab e tracciare il grafico delle uscite dei sistemi utilizzando il comando ‘plot’. Dal grafico seguente possiamo, anche se in modo qualitativo, vedere che il principio di sovrapposizione degli effetti è verificato, infatti le curve Y_completa e Y=Y_forzata+Y_libera si sovrappongono perfettamente.

19 Esempio 1.4 Potevamo anche usare il comando logico ‘==’ per verificare l’uguaglianza dei termini Y_completa e Y_libera+Y_forzata: >> EQUAL=Y_completa==Y_libera+Y_forzata; >> [N,D] = rat(Y_completa); >> [Nc,Dc] = rat(Y_libera+Y_forzata); >> EQUAL=N==Nc; >> EQUAL1=D==Dc; >> digits(6) >> yc=sym(Y_completa,'d'); >> yc1=sym(Y_forzata+Y_libera,'d'); >> EQUAL=yc==yc1; >> Y_ERROR=Y_completa-(Y_forzata+Y_libera); Il risultato del comando Matlab a lato è il seguente: EQUAL = [1 1 0 0 0 0 1 1 1 0 1 1 1...], come si può notare a causa di errori di approssimazione i due termini non coincidono perfettamente. Allora possiamo provare ad approssimare i risultati della simulazione in numeri razionali fratti per vedere se le due approssimazioni coincidono. Il risultato dell’operazione logica è il seguente: EQUAL = [1 1 1 1 1 1 1 1 1 1 1 1 1...], quindi coincidono. Oppure considerare meno cifre significative in quanto come si vede dopo la differenza massima tra i due termini è molto piccola. Anche in questo caso il risultato dell’operazione logica è il seguente: EQUAL = [1 1 1 1 1 1 1 1 1 1 1 1 1...], La differenza massima, in modulo, tra i due termini considerati è dell’ordine di 10 -15

20 Ritardo di tempo Nei sistemi a tempo discreto il ritardo di tempo è espresso nel dominio del tempo come: A cui corrisponde la seguente FdT:

21 Esempio Come è possibile evincere dallo Scope del sistema il blocco Ritardo di tempo introduce sull’uscita un ritardo di 4k rispetto al segnale d’ingresso Simulink  Discrete  Integer Delay

22 Derivatore(1) Consideriamo: Una possibile rappresentazione di stato è: A regime è facile comprendere come questa differenza sia nulla, quindi il sistema esercita sull’ingresso un’azione derivativa come illustrato nell’esempio seguente.

23 Esempio A regime l’uscita a fronte di uno scalino d’ingresso è nulla Durante il transitorio l’unico valore per l’uscita diverso da zero si ha per k=1, essendo: Simulink  Discrete  Difference

24 Derivatore (2) In generale tutti i sistemi con FdT del tipo: hanno azione di tipo derivativo; in particolare il parametro v indica l’ordine della derivata.

25 Integratore Consideriamo: Una possibile rappresentazione di stato è: L’uscita al tempo k sarà quindi pari a: Per questo motivo tale sistema viene detto Integratore a tempo discreto

26 Esempio Per verificare la correttezza dell’uscita prodotta basta ricordare come la somma dei primi n numeri naturali sia data da n(n-1)/2 NOTA:Il metodo di integrazione utilizzato in questo esempio è Accumulation: Forward Euler selezionabile facendo doppio click sul blocco dell’integratore e modificando il campo Integrator Method Simulink  Discrete  Discrete-Time Integrator

27 RISPOSTA ARMONICA  Si definisce risposta armonica di un sistema lineare tempo-invariante tempo-discreto la funzione di trasferimento del sistema G(z) valutata sul cerchio unitario z=exp(jθ) : G(e jθ )=M(θ)e jΦ(θ) e serve alla determinazione della risposta del sistema ad eccitazioni a differenti frequenze.  Il modulo della risposta armonica M(θ) è una funzione pari e periodica di θ è quindi sufficiente studiarne l’andamento nell’intervallo [0,π].  Se il sistema discreto si pensa derivato da un sistema continuo con periodo di campionamento T si ha la seguente corrispondenza: con tale convenzione i diagrammi del modulo e della fase di G(e jθ ) possono essere riportati in funzione della frequenza con f che va da 0 a 1/(2T).

28 Esempio >> 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); >> bode(sys) Consideriamo il sistema discreto, visto in precedenza, e generiamo il diagramma di Bode, con il relativo comando, con il quale è possibile analizzare la risposta armonica del sistema Come si vede il diagramma del modulo e della fase sono riportati nell’intervallo di frequenze [0,10] Hz (vedere le corrispondenze precedenti tra θ e f) Nota: Il diagramma di Bode non è l’unico grafico che permette di analizzare la risposta armonica del sistema, esiste per esempio il diagramma di Nichols.

29 Qui di seguito introdurremo alcuni parametri caratteristici della risposta armonica: G  guadagno statico del sistema, ovvero il valore a regime della risposta al gradino, che coincide con M(0), il valore del modulo della risposta armonica per θ=0.    tale parametro ha le caratteristiche di un indicatore temporale e rappresenta il baricentro della risposta impulsiva. σ  anche tale parametro ha le caratteristiche di un indicatore temporale detto varianza e rappresenta la dispersione della risposta impulsiva rispetto al baricentro. Un elevato valore di σ corrisponde ad una risposta impulsiva che si estende nel tempo per una durata elevata rispetto al baricentro, al contrario un valore piccolo di σ indica una risposta impulsiva molto concentrata nell’intorno del baricentro. Tali parametri caratteristici sono direttamente legati all’espansione di Taylor della risposta armonica nell’intorno di θ=0 nonché alla risposta impulsiva del sistema. I legami tra tali parametri e la risposta armonica sono i seguenti: Parametri caratteristici della risposta armonica

30 Caso filtri binomiali con ritardo Illustriamo quanto detto per i parametri caratteristici della risposta armonica mediante degli esempi con i filtri binomiali con ritardo. La cui risposta armonica è: Sviluppando in serie la risposta armonica nell’intorno di θ=0 si ottengono le seguenti relazioni per i parametri caratteristici della risposta armonica:  = M+N/2 σ = (N 1/2) /2 Forma generica di un filtro binomiale con ritardo Nota: Per la varianza nasce la difficoltà che spesso è rappresentata da un numero non intero, occorrerà quindi far riferimento nella risposta impulsiva a istanti caratterizzati da indici interi più prossimi ai valori indicati dall’intervallo (  ± σ).

31 Esempio 1 >> z=tf('z'); >> sys=16*((1+z^-1)/2)^4 Transfer function: z^4 + 4 z^3 + 6 z^2 + 4 z + 1 ----------------------------- z^4 Sampling time: unspecified >> G=freqresp(sys,0) G = 16 >> impulse(sys) Costruito il filtro binomiale qui a lato (M=0,N=4,G=16), calcoliamo i parametri caratteristici della risposta armonica. Il primo parametro G può essere calcolato mediante il comando freqresp, mentre gli altri due sono immediati. Il baricentro vale 2 mentre la varianza vale 1, quindi l’intervallo entro il quale la risposta impulsiva rimane significativa è [1,3] che comprende i campioni (4,6,4) ossia i 14/16 della risposta sono concentrati nell’ intervallo. Possiamo anche vedere il grafico della risposta impulsiva del sistema mediante il comando impulse per meglio rendercene conto.

32 Esempio 2 >> z=tf('z'); >> sys=32*((1+z^-1)/2)^5 Transfer function: z^5 + 5 z^4 + 10 z^3 + 10 z^2 + 5 z + 1 --------------------------------------- z^5 Sampling time: unspecified >> G=freqresp(sys,0) G = 32 >> impulse(sys) Proviamo ora con un altro filtro binomiale (M=0,N=5,G=32) e calcoliamo nuovamente i parametri caratteristici. Come prima il parametro parametro G può essere calcolato mediante il comando freqresp. Il baricentro vale 2.5 (ossia a metà tra il 3° e il 4° campione) mentre la varianza vale 1.11, quindi l’intervallo entro il quale la risposta impulsiva rimane significativa è circa [1,4], che comprende i campioni (5,10,10,5) ossia i 15/16 della risposta sono concentrati nell’ intervallo. Possiamo anche vedere il grafico della risposta impulsiva del sistema per meglio rendercene conto.

33 Caso filtri in cascata Nel caso di filtri collegati in serie si ha che la funzione di trasferimento del sistema risultante è pari al prodotto delle funzioni di trasferimento dei singoli filtri. Per quanto riguarda invece i parametri caratteristici della risposta armonica si ha che il guadagno (G) complessivo del sistema equivalente è pari al prodotto dei singoli guadagni, mentre il ritardo complessivo è pari alla somma dei singoli ritardi e la dispersione (σ 2 ) è data dalla somma delle singole dispersioni. Di seguito sono elencate le varie relazioni: Esempio: Parametri Filtro-1  M=0,N=4,G=16,σ=1,τ=2 Parametri Filtro-2  M=0,N=5,G=32,σ=(5/2) ½,τ=2.5 Parametri del filtro equivalente serie  M=0,N=9,G=512,σ=3/2,τ=4.5

34 >> z=tf('z'); >> sys=32*((1+z^-1)/2)^5; >> sys1=16*((1+z^-1)/2)^4; >> sys2=sys*sys1 Transfer function: z^9 + 9 z^8 + 36 z^7 + 84 z^6 + 126 z^5 + 126 z^4 + 84 z^3 + 36 z^2 + 9 z + 1 ----------------------------------------------------------------------------- z^9 Sampling time: unspecified >> G=freqresp(sys2,0) G = 512 >> impulse(sys2) Esempio Come indicato nella slide precedente, il baricentro della risposta impulsiva vale 4.5 mentre la varianza vale 1.5, quindi l’intervallo entro il quale la risposta impulsiva rimane significativa è [3,6] che comprende i campioni (84,126,126,84) ossia i 105/128 della risposta sono concentrati nell’ intervallo.


Scaricare ppt "INTRODUZIONE AI SISTEMI DINAMICI LINEARI E STAZIONARI NEL CASO DISCRETO."

Presentazioni simili


Annunci Google