La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DAI FILTRI ANALOGICI AI FILTRI NUMERICI. RICHIAMI SUI FILTRI CONTINUI(1) Descrizione in termini di variabili di stato Descrizione in termini di Funzione.

Presentazioni simili


Presentazione sul tema: "DAI FILTRI ANALOGICI AI FILTRI NUMERICI. RICHIAMI SUI FILTRI CONTINUI(1) Descrizione in termini di variabili di stato Descrizione in termini di Funzione."— Transcript della presentazione:

1 DAI FILTRI ANALOGICI AI FILTRI NUMERICI

2 RICHIAMI SUI FILTRI CONTINUI(1) Descrizione in termini di variabili di stato Descrizione in termini di Funzione di Trasferimento In Matlab esistono tre modi equivalenti per rappresentare un modello lineare tempo-invariante, sia continuo che discreto:  Variabili di stato  Funzione di Trasferimento  Zero-Polo-Guadagno

3 RICHIAMI SUI FILTRI CONTINUI(2) Variabili di stato >>A=[1,-2;2,-1] >>B=[2;3] >>C=[1,2] >>D=0 >>ss(A,B,C,D,-1) a = x1 x2 x1 1 -2 x2 2 -1 b = u1 x1 2 x2 3 c = x1 x2 y1 1 2 d = u1 y1 0 Sampling time: unspecified Discrete-time model. SYS = SS(A,B,C,D,Ts) Crea un modello in variabili di stato SYS dove:  A  Matrice della dinamica  B  Vettore degli ingressi  C  Vettore degli stati sull’uscita  D  Vettore degli ingressi sull’uscita  Ts  Tempo di campionamento Se non è specificato il tempo di campionamento il modello risultante sarà a tempo continuo NOTA: Impostare Ts=-1 se il tempo di campionamento è indeterminato.

4 >>NUM=[8,-2] >>DEN=[1,0,3] >>Ts=-1 >>sys=tf(NUM,DEN,Ts) Transfer function: 8 z - 2 ------- z^2 + 3 Sampling time: unspecified >>z = tf('z'‚Ts) >>sys=(8*z-2)/(z^2+3) Transfer function: 8 z - 2 ------- z^2 + 3 Sampling time: unspecified SYS = TF(Num,Den,Ts) Crea una funzione di trasferimento SYS dove:  Num  Numeratore della FdT  Den  Denominatore della FdT  Ts  Tempo di campionamento Se non è specificato il tempo di campionamento la FdT risultante sarà a tempo continuo. Un metodo alternativo è associare la variabile z all’oggetto tf e in seguito esprimere la FdT come espressione razionale. NOTA: Impostare Ts=-1 se il tempo di campionamento è indeterminato. RICHIAMI SUI FILTRI CONTINUI(3) Funzione di Trasferimento

5 >>Z=[1/4] >>P=[i*sqrt(3),-i*sqrt(3)] >>G=[8] >>Ts=-1 >>sys=zpk(Z,P,G,Ts) Zero/pole/gain: 8 (s-0.25) ---------- (s^2 + 3) Sampling time: unspecified >>z = zpk('z') >>(8*z-2)/(z^2+3) Zero/pole/gain: 8 (z-0.25) ---------- (z^2 + 3) Sampling time: unspecified SYS = ZPK(Z,P,G) Crea un modello zero-polo-guadagno SYS dove:  Z  Vettore degli zeri  Den  Vettore dei poli  G  Guadagno  Ts  Tempo di campionamento Se non è specificato il tempo di campionamento il modello risultante sarà a tempo continuo. Un metodo alternativo è associare la variabile z all’oggetto zpk e in seguito esprimere la FdT come espressione razionale. NOTA: Impostare Ts=-1 se il tempo di campionamento è indeterminato. RICHIAMI SUI FILTRI CONTINUI(4) Zero-Polo-Guadagno

6 RICHIAMI SUI FILTRI CONTINUI(5) TRASFORMAZIONE DI VARIABILI Vediamo un esempio molto significativo di come, applicando una trasformazione per similitudine a un generico sistema, la sua rappresentazione esterna resta identica. Prendiamo come esempio numerico il caso di una matrice diagonalizzabile (quindi con autovalori tutti con m.a. = m.g.)

7 Esempio >>A=[1,2;3,4] >>B=[1;1] >>C=[1,1] >>D=0 >>sys1=ss(A,B,C,D) >>[T,Adiag] = eig(A) >>sys2=ss(Adiag,(T^-1)*B,C*T,0) T = -0.82456 -0.41597 0.56577 -0.90938 Adiag = -0.37228 0 0 5.3723 >>tf(sys1) Transfer function: 2 s ------------- s^2 - 5 s – 2 >>tf(sys2) Transfer function: 2 s - 3.646e-016 ---------------- s^2 - 5 s – 2 Definiamo il nostro sistema (sys1) in forma di variabili di stato Calcoliamo la matrice di trasformazione T e la matrice diagonalizzata Adiag Creiamo una nuova realizzazione interna (sys2) del filtro considerato Calcoliamo la FdT dei due sistemi A meno del termine noto al numeratore, errore introdotto dall’algoritmo iterativo utilizzato dal Matlab per il calcolo degli zeri, i due filtri sys1 e sys2 hanno la stessa rappresentazione esterna. NOTA:La trasformazione per similitudine applicata da Matlab segue la legge di sostituzione: x = Tx, diversa da quella applicata nella dispensa

8 Dal filtro continuo al filtro discreto(1) Il passaggio da filtro continuo a filtro discreto viene fatto partendo dal principio che questo debba comportarsi come illustrato in figura: Ossia i campioni ricevuti in ingresso vengono convertiti in un segnale continuo da un convertitore D/A (ad es. Sample&Hold), passati in ingresso al filtro continuo e il segnale prodotto in uscita dal filtro viene riconvertito in digitale da un convertitore A/D.

9 Dal filtro continuo al filtro discreto(2) >> s=tf('s') Transfer function: s >> sys=1/(s+1) Transfer function: 1 ----- s + 1 >> Ts=0.2 Ts = 0.2 >> sysd=c2d(sys,Ts) Transfer function: 0.1813 ---------- z - 0.8187 Sampling time: 0.2 SYSd = C2D(SYSa,Ts,Method) Converte un modello tempo continuo in tempo discreto (SYSd):  SYSa  Modello tempo continuo  Ts  Tempo di campionamento  Method  Metodo di discretizzazione Il parametro Method può assumere i seguenti valori: ‘zoh’: Zero-order hold in ingresso(default) ‘foh’: First-order hold in ingresso 'tustin‘:Approssimazione bilineare di Tustin 'prewarp‘: Approssimazione Tustin con prewarping 'matched‘: Metodo Matched zero-pole

10 Trasformazione di Tustin(1) La trasformazione di Tustin viene costruita cercando una corrispondenza fra la variabile s e la variabile z. Sapendo che: TkT+T f(T+kT)- f(kT) Dato che si conoscono solo i campioni agli istanti kT e kT+T, interpoliamoli linearmente e valutiamo l’area sottesa alla nostra curva approssimata: e t

11 Trasformazione di Tustin(2) Calcolando la trasformata di Laplace della prima e la Z-trasformata della seconda e eguagliandole otteniamo: Questa è una trasformazione bilineare (a due passi) ed ha le seguenti proprietà: Trasforma luoghi circolari in luoghi circolari; Fa corrispondere al semipiano a parte reale negativa in s l’interno del cerchio unitario nel piano della variabile z; Quindi trasforma filtri continui stabili in filtri discreti stabili. Questa è una trasformazione bilineare (a due passi) ed ha le seguenti proprietà: Trasforma luoghi circolari in luoghi circolari; Fa corrispondere al semipiano a parte reale negativa in s l’interno del cerchio unitario nel piano della variabile z; Quindi trasforma filtri continui stabili in filtri discreti stabili.

12 Esempio >> s=tf('s') Transfer function: s >> FdT=1/((s+1)*(s^2+s+2)) Transfer function: s + 10 --------------------- s^3 + 2 s^2 + 3 s + 2 >> pzmap(FdT) >> FdTd=c2d(FdT,0.2,'tustin') Transfer function: 0.01623 z^3 + 0.03247 z^2 + 0.01623 z ------------------------------------- z^3 - 2.568 z^2 + 2.253 z - 0.6721 Sampling time: 0.2 >> pzmap(FdTd)

13 Confronto dei metodi Analizziamo come varia la localizzazione dei poli e degli zeri nel diagramma polare al variare del metodo utilizzando la FdT dell’esempio precedente: >> FdTdzoh=c2d(FdT,0.2,'zoh'); Transfer function: 0.001203 z^2 + 0.00434 z + 0.0009848 ------------------------------------ z^3 - 2.565 z^2 + 2.249 z - 0.6703 Sampling time: 0.2 >> FdTdfoh=c2d(FdT,0.2,'foh') Transfer function: 0.0003071 z^3 + 0.003109 z^2 + 0.00287 z + 0.0002416 ---------------------------------------------------- z^3 - 2.565 z^2 + 2.249 z - 0.6703 Sampling time: 0.2 >> FdTdmatch=c2d(FdT,0.2,'matched') Transfer function: 0.001632 z^2 + 0.003264 z + 0.001632 ------------------------------------ z^3 - 2.565 z^2 + 2.249 z - 0.6703 Sampling time: 0.2 >>pzmap(FdTdzoh,'r',FdTdfoh,'y',FdTdmatch,'g')

14 Confronto dei metodi(2) In questo lucido mostriamo gli output prodotti dalla funzione pzMap:

15 Condizione di Shannon-Nyquist Valida solo nel caso di segnali a banda limitata Tempo di campionamento Condizione per trasformazioni bilineari Valida anche per segnali a banda illimitata

16 Esempio Dato il sistema: Calcoliamo il tempo di campionamento necessario per un intervallo di frequenze di interesse [0;B], dove B è la banda passante di G(s) con:

17 Tecnica matched Z-transform Questa tecnica si basa su alcune corrispondenze fra generici termini al denominatore della trasformata di Laplace e le rispettive trasformazioni in Z, derivabili dalla corrispondenza esatta z=e sT : Per il numeratore non è possibile dedurre delle altrettante corrispondenze esatte; quindi si adottano le stesse corrispondenze ricavate per il denominatore, anche se producono risultati approssimati.

18 Esempio 1.1 Per il calcolo del numeratore possiamo imporre G d (1)=G(0) e G d (-1)=G(∞); otteniamo il sistema: Applichiamo il metodo alla FdT: Per il calcolo del denominatore applichiamo le regole esatte appena viste: Otteniamo…

19 Esempio 1.2 >> s=tf('s') Transfer function: s >> FdT=(7*s+1)/(5*s+1) Transfer function: 7 s + 1 ------- 5 s + 1 >> FdTd=c2d(FdT,1/5,‘matched') Transfer function: 1.392 z - 1.353 --------------- z - 0.9608 Sampling time: 0.2 Applicando l’algoritmo in Matlab:


Scaricare ppt "DAI FILTRI ANALOGICI AI FILTRI NUMERICI. RICHIAMI SUI FILTRI CONTINUI(1) Descrizione in termini di variabili di stato Descrizione in termini di Funzione."

Presentazioni simili


Annunci Google