Tidsdiskrete systemer Finn Haugen TechTeach 22.juli2004 Innhold 1 Tidsdiskrete signaler 2 2 Z-transformasjonen 3 2.1 Definisjon av Z-transformasjonen... 3 2.2 Egenskaper ved Z-transformasjonen... 4 3 Differenslikninger 4 4 Z-transferfunksjoner 5 4.1 Innledning... 5 4.2 Hvordan beregne Z-transferfunksjoner... 5 4.3 Fra Z-transferfunksjon til differenslikning... 6 4.4 Z-transferfunksjoner for kombinertesystemer... 7 4.5 Poler og nullpunkter....................... 8 5 Frekvensrespons for tidsdiskrete systemer 8 6 Stabilitetsanalyse 10 7 Representasjon og bruk av Z-transferfunksjoner i Matlab og Simulink 13 7.1 Representasjon av Z-transferfunksjoner i Matlab....... 13 7.2 Analyse- og simuleringsfunksjoner i Control System Toolbox. 14 7.3 Representasjon av Z-transferfunksjoner i Simulink...... 14 1
Forord Dette dokumentet gir en kort innføring i systemteori for tidsdiskrete dynamiske systemer. Denne teorien er sentral i systemidentifikasjon (dvs. matematisk modellering basert på loggede tidsserier av målevariable i fysiske prosesser), samt i analyse og design av tidsdiskrete signalfiltere og reguleringssystemer. FinnHaugen Skien, februar 2004 1 Tidsdiskrete signaler Et tidsdiskret signal er en sekvens eller serie av signalverdier definert i diskrete tidspunkter, se figur 1. Disse tidspunktene kan vi angi med x(t k ) = x k = x(kh) 2,0 1,5 1,0 0,5 0,0 0 1 2 3 4 5 6 k 0,0 0,2 0,4 0,6 0,8 1,0 1,2 t k = t [s] h=0,2 Figur 1: Tidsdiskret signal 2
tidsverdiene t k der k er en heltallig tellevariabel eller tidsindeks for de diskrete tidspunktene. Avstanden (i tid) mellom hvert diskrete tidspunkt er tidsskrittet, som vi kan betegne h. Viharaltsåat Vi kan skrive tidsserien på forskjellige måter: h = t k t k 1 (1) {x(t k )} = {x(kh)} = {x(k)} = x(0), x(1), x(2),... (2) For enkelhets skyld kan vi skrive tidssignalet som x(t k ) eller x(k). Enslik tidsserie kan i praksis være f.eks. en serie av måleverdier, en serie av filterutgangsverdier, en serie av pådragsverdier på en prosess eller en serie av simulerte prosessverdier. 2 Z-transformasjonen 2.1 Definisjon av Z-transformasjonen Et tidsdiskret signal en tidsserie kan Z-transformeres til en funksjon av z-variabelen. (Dette er analogt med at et tidskontinuerlig signal kan transformeres til en s-funksjon vha. Laplacetransformasjonen.) Z-transformasjonen er definert slik: X Z{x(k)} = x(k)z k = X(z) (3) k=0 der X(z) er den Z-transformerte av {x(k)}. Det er ofte praktisk med en forenklet symbolbruk: Når det ikke kan misforstås, kan vi bruke x(z) som symbol for den Z-transformerte av x(k). Det er egentlig sjelden at vi trenger å regne ut den Z-transformerte av en gitt tidsserie. Z-transformasjonen er allikevel viktig siden den er fundamentet eller utgangspunktet for definisjonen av Z-transferfunksjoner, jf.kap.4. Eksempel 1 Den Z-transformerte av en konstant Anta at signalet x(k) er en konstant med verdi A. Signalet kan betraktes som et sprang med amplitude A fra tidsskritt 0. Den Z-transformerte av x(k) blir x(z) = [Slutt på eksempel 1] X x(k)z k = k=0 X Az k = k=0 A Az = 1 z 1 z 1 (4) 3
2.2 Egenskaper ved Z-transformasjonen Nedenfor gjengis 3 viktige egenskaper ved Z-transformasjonen. Disse egenskapene brukes bl.a. ved transformasjon av en differenslikning til en av overgang fra til en Z-transferfunksjon, som vi snart skal se nærmere på. Linearitet: Det kan vises at Z-transformasjonen er lineær: k 1 x 1 (z)+k 2 x 2 (z) k 1 x 1 (k)+k 2 x 2 (k) (5) Tidsforsinkelse: tidsskritt: Multiplikasjon med z n betyr tidsforsinkelse på n z n x(z) x(k n) (6) Tidsframskyvning: tidsskritt: Multiplikasjon med z n betyr tidsframskyvning på n z n x(z) x(k + n) (7) 3 Differenslikninger For tidsdiskrete systemer kan sammenhengen mellom det tidsdiskrete inngangssignalet og det tidsdiskrete utgangssignalet uttrykkes i form av en differenslikning. 1 Herereteksempelpåenlineær2.ordensdifferenslikning med u som inngangsvariabel og y som utgangsvariabel: a 2 y(k +2)+a 1 y(k +1)+a 0 y(k) =b 1 u(k +1)+b 0 u(k) (8) som også kan skrives som følgende ekvivalente differenslikning (tidsindeksene er redusert med 2): a 2 y(k)+a 1 y(k 1) + a 0 y(k 2) = b 1 u(k 1) + b 0 u(k 2) (9) a i og b j er koeffisienter. Det er nokså vanlig å skalere differenslikninger slik at koeffisienten foran den minst forsinkede y-verdien er 1, dvs.: y(k)+a 1 y(k 1) + a 0 y(k 2) = b 1 u(k 1) + b 0 u(k 2) (10) (10) kan skrives med y(k) alene på venstre side: y(k) =a 1 y(k 1) + a 0 y(k 2) + b 1 u(k 1) + b 0 u(k 2) (11) Dermed har vi en algoritme eller formel for å beregne utgangen y(k) som funksjon av tidligere utgangsverdier og inngangsverdier. (Algoritmen kan i praksis representere en filteralgoritme, en simuleringsalgoritme eller en reguleringsfunksjon.) 1 Ikke differensiallikning, altså. 4
4 Z-transferfunksjoner 4.1 Innledning Modeller i form av differenslikninger kan z-transformeres til z-transferfunksjoner, som kan brukes på mye av samme måten for tidsdiskrete dynamiske systemer som s-transferfunksjoner brukes for tidskontinuerlige dynamiske systemer. For eksempel kan vi kombinere deltransferfunksjoner i serie ved å multiplisere deltransferfunksjonene, beregne frekvensresponsen, representere et tidsdiskret system i en simulator eller analyse- og designprogram (som Simulink og Matlab, eller LabVIEW) 4.2 Hvordan beregne Z-transferfunksjoner Vi skal som eksempel finne z-transferfunksjonen fra inngangen u til utgangen y for differenslikningen (10). Først tar vi Z-transformen av begge sider i differensiallikningen: Z{y(k)} = Z{ a 1 y(k 1) a 0 y(k 2) + b 1 u(k 1) + b 0 u(k 2)} (12) Vha. lineæregenskapen (5) og tidsforsinkelsesegenskapen (6) kan (12) skrives Z{y(k)} = Z{a 1 y(k 1)} Z{a 0 y(k 2)}+Z{b 1 u(k 1)}+Z{b 0 u(k 2)} (13) eller y(z) = a 1 z 1 y(z) a 0 z 2 y(z)+b 1 z 1 u(z)+b 0 z 2 u(z) (14) som kan skrives y(z)+a 1 z 1 y(z)+a 0 z 2 y(z) =b 1 z 1 u(z)+b 0 z 2 u(z) (15) eller 1+a1 z 1 + a 0 z 2 y(z) = b 1 z 1 + b 0 z 2 u(z) (16) y(z) = b 1 z 1 + b 0 z 2 1+a 1 z 1 + a 0 z {z 2 u(z) (17) } H(z) b 1 z + b 0 z 2 + a 1 z 1 u(z) (18) + a {z 0 } H(z) 5
der H(z) er Z-transferfunksjonen fra u til y, altså: H(z) = y(z) u(z) = b 1z 1 + b 0 z 2 1+a 1 z 1 + a 0 z 2 = b 1 z + b 0 z 2 + a 1 z 1 + a 0 (19) Merk at Z-transferfunksjoner kan angis med positive z-potenser eller med negative z-potenser. 2 4.3 Fra Z-transferfunksjon til differenslikning Ovenfor fant vi Z-transferfunksjonen fra en differenslikning. Men vi kan godt gå andre veien, dvs. finne en differenslikning fra en gitt Z-transferfunksjon. Noen anvendelser av dette er Utledning av en filteralgoritme fra en gitt filtertransferfunksjon Utledning av en regulatoralgoritme fra en gitt regulatortransferfunksjon Utledning av en simuleringsalgoritme fra en gitt prosesstransferfunksjon (Et eksempel blir gitt nedenfor.) SomeksempelskalvifradengitteZ-transferfunksjonen H(z) = y(z) u(z) = b (20) z a finne en tilsvarende differenslikning som uttrykker sammenhengen mellom y og u i tidsplanet. Vi starter med å kryssmultiplisere (20): (z a) y(z) =bu(z) (21) som gir zy(z) ay(z) =bu(z) (22) som invers-z-transformert gir y(k +1) ay(k) =bu(k) (23) eller y(k +1)=ay(k)+bu(k) (24) eller, etter at det er trukket i fra 1 i alle tidsindeksene, y(k) =ay(k 1) + bu(k 1) (25) 2 Innen signalbehandling benyttes gjerne negative potenser, mens positive potenser benyttes innen reguleringsteknikken. 6
Eksempel 2 Simuleringsalgoritme funnet fra en gitt prosesstransferfunksjon Anta at en funksjon for systemidentifikasjon, f.eks. n4sid i System identification Toolbox i Matlab, har resultert i følgende transferfunksjonsmodell av en fysisk prosess: H(z) = b 1z + b 0 z 2 = y(z) (26) + a 1 z + a 0 u(z) Vi skal finne en tilsvarende differenslikningsmodell som uttrykker sammenhengen mellom inngangen u og utgangen y. Kryssmultiplisering gir z 2 + a 1 z + a 0 y(z) =(b1 z + b 0 ) u(z) (27) som gir z 2 y(z)+a 1 zy(z)+a 0 y(z) =b 1 zu(z)+b 0 u(z) (28) som invers-transformert gir z 2 y(z) + a {z } 1 zy(z) + a {z } 0 y(z) {z } y(k+2) a 1 y(k+1) a 0 y(k) som, med 2 fratrukket hver tidsindeks, gir = b 1 zu(z) {z } b 1 u(k+1) + b 0 u(z) {z } b 0 u(k) (29) y(k)+a 1 y(k 1) + a 0 y(k 2) = b 1 u(k 1) + b 0 u(k 2) (30) Det er vanligvis hensiktsmessig å skrive utgangsvariabelen for tidsskritt k alene på venstre side: y(k) = a 1 y(k 1) a 0 y(k 2) + b 1 u(k 1) + b 0 u(k 2) (31) Denne differenslikningen kan brukes som en simuleringsalgoritme for prosessen. Dersom modellen ble utviklet (identifisert) på basis av en tidsserie av u og y med samplingsintervall h (f.eks. 0,1 sek), må differenslikningen beregnes med tidsskritt h også (for at simuleringen skal foregå langs en virkelig tidsakse). [End of Example 2] 4.4 Z-transferfunksjoner for kombinerte systemer Z-transferfunksjoner kan kombineres etter samme regler som for s-transferfunksjoner: Den kombinerte transferfunksjonen for seriekoplede delsystemer fås ved å multiplisere deltransferfunksjonene: H serie (z) =H 1 (z)h 2 (z) (32) Og den kombinerte transferfunksjonen for parallellkoplede delsystemer fås ved å addere deltransferfunksjonene: H parallell (z) =H 1 (z)+h 2 (z) (33) 7
4.5 Poler og nullpunkter Polene og nullpunktene for Z-transferfunksjoner er definert på samme måte som for s-transferfunksjoner, dvs. at nullpunktene er z-røttene i tellerpolynomet, og polene er z-røttene i nevnerpolynomet. Stabilitetsegenskapen for et tidsdiskret system kan bestemmes ut fra polplasseringen in det komplekse plan. Dette beskrives nærmere i kap. 6. Eksempel 3 Poler og nullpunkter Gitt z-transferfunksjonen H(z) = (z b) (z a 1 )(z a 2 ) (34) Polene er a 1 og a 2, og nullpunktet er b. [End of Example 3] 5 Frekvensrespons for tidsdiskrete systemer Gitt et system med Z-transferfunksjon H(z). Anta at systemet er påvirket av sinussignalet u(t n )=U sin(ωt n )=U sin(ωnh) (35) der ω er signalfrekvensen i rad/s. Det kan vises at den stasjonære responsen på systemets utgang er y(t n ) = Y sin(ωt n + φ) (36) = UAsin(ωt n + φ) (37) A z } { = U H(e jωh ) sin ωt n +argh(e jωh ) (38) {z } {z } φ Y der H(e jωh ) er frekvensresponsen som beregnes ved substitusjonen H(e jωh )=H(z) z=e jωh (39) der h er tidsskrittet. Amplitudeforsterkningsfunksjonen er altså gitt ved mens faseforskyvningsfunksjonen er gitt som A(ω) = H(e jωh ) (40) φ(ω) =argh(e jωh ) (41) 8
A(ω) og φ(ω) kan plottes i et Bodediagram. Følgende eksempel viser hvordan frekvensresponsen kan beregnes for hånd fra en gitt transferfunksjon. I praksis er det imidlertid neppe aktuelt å utføre slike manuelle beregninger. I stedet bør du bruke et egnet programverktøy for dette, f.eks. bode-funksjonen i Matlabs Control System Toolbox. Eksempel 4 Frekvensresponsen beregnet fra en Z-transferfunksjon Gitt z-transferfunksjonen Frekvensresponsen blir H(z) = b z a (42) H(e jωh ) = = = = b e jωh (43) a b (44) cos ωh + j sin ωh a b (45) (cos ωh a) + jsin ωh {z } {z } Re Im b (46) q(cos ωh a) 2 +(sinωh) 2 e j arctan[(sin ωh)/(cos ωh a)] = b q e j[ arctan( sin ωh (cos ωh a) 2 +(sinωh) 2 cos ωh a)] (47) Amplitudeforsterkningsfunksjonen er A(ω) = H(e jωh ) = b q(cos ωh a) 2 +(sinωh) 2 (48) Faseforskyvningsfunksjonen er [End of Example 4] φ(ω) =argh(e jωh )= arctan µ sin ωh cos ωh a [rad] (49) 9
6 Stabilitetsanalyse Stabilitet for tidsdiskrete systemer kan defineres ut fra impulresponsen 3 på liknende måte som for tidskontinuerlige systemer: Asymptotisk stabilt system: Den stasjonære impulsresponsen er null. Marginalt stabilt system: Den stasjonære impulsresponsen er begrenset, men ikke null. Ustabilt system: Den stasjonære impulsresponsen er ubegrenset. Vi skal utlede sammenhengen mellom stabilitetsegenskap og polplassering: Vi tar da utgangspunkt i følgende enkle system: H(z) = y(z) u(z) = bz (50) z p der p er en vilkårlig konstant. b er en konstant. p er systemets (transferfunksjonens pol). Inngangssignalet u skal være en enhetsimpuls: u(k) =δ(k) (51) Det kan vises at den Z-transformerte av enhetsimpulsen er 1. Impulsresponsens Z-transformerte blir da y(z) =H(z)u(z) = bz z p 1= bz (52) z p Det kan vises at den invers-z-transformerte av denne y(z) er ½ ¾ bz y(k) =Z{y(z)} = Z = bp k (53) z p Generelt kan en pol være kompleks: p = re jθ (54) der r er amplituden eller absoluttverdien eller lengden og θ er vinkelen for den komplekse polen. Når denne polarformen brukes for p, blir (53) ³ y(k) =bp k = b re jθ k = br k e jθk (55) Fra (55) ser vi at det er polens absoluttverdi r somavgjøromden stasjonære impulsresponsen går mot null eller ikke. Impulsresponsen går 3 En tidsdiskret impuls har en endelig verdi forskjellig fra 0 ved tidspunkt eller tidsindeks n =0og verdi 0 i andre tidspunkter. 10
mot null, dvs. at systemet er asymptotisk stabilt, dersom r (som er et positivt tall) er mindre enn 1. Hvis r er 1, er systemet marginalt stabilt. Hvis r er større enn 1, er systemet ustabilt. Med utgangspunkt i analysen for det enkle 1. ordens systemet ovenfor, kan vi fastslå sammenhengen mellom polplassering og stabilitetsegenskap også for systemer av høyere orden enn 1 siden vi generelt kan uttrykke en høyere ordens transferfunksjon som en sum av ledd av 1. orden i en delbrøkoppspaltning. Sammenhengen mellom polplassering og stabilitetsegenskap er som følger: Asymptotisk stabilt system: Alle polene ligger strengt innenfor (og ingen på) enhetssirkelen i det komplekse plan. Marginalt stabilt system: Én eller flere poler, som ikke er multiple 4, ligger på enhetssirkelen. Ustabilt system: Minst én pol ligger utenfor enhetssirkelen. Figur 2 illustrerer sammenhengen mellom polplassering og stabilitetsegenskap. Enhetssirkelen Im j Polområde for ustabilitet (utenfor enhetssirkelen ) Polområde for asymptotisk stabilitet 1 Re Figur 2: Illustrasjon av sammenhengen mellom polplassering og stabilitetsegenskap Eksempel 5 Stabilitetsegenskap for tidsdiskrete systemer 4 Kravet om at polene ikke skal være multiple, har vi ikke utledet her. 11
Gitt z-transferfunksjonen H 1 (z) = y(z) u(z) = 1 z p (56) Anta at polen er p =0, 8, som ligger innenfor enhetssirkelen. Systemet er derfor asymptotisk stabilt. Figur 3 viser systemets impulsrespons. Figur 3: Impulsresponsen for asymptotisk stabilt system. Polen er p =0, 8, som ligger innenfor enhetssirkelen. Anta at polen er p = 1, som ligger på enhetssirkelen. Systemet er derfor marginalt stabilt. Figur 4 viser systemets impulsrespons. Figur 4: Impulsresponsen for marginalt stabilt system. Polen er p = 1, som ligger på enhetssirkelen. Anta at polen er p =1, 1, som ligger utenfor enhetssirkelen. Systemet er derfor ustabilt. Figur 5 viser systemets impulsrespons. [End of Example 5] 12
Figur 5: Impulsresponsen for ustabilt system. Polen er p =1, 1, som ligger utenfor enhetssirkelen. 7 Representasjon og bruk av Z-transferfunksjoner i Matlab og Simulink 7.1 Representasjon av Z-transferfunksjoner i Matlab Z-transferfunksjoner kan representeres i Matlab som LTI-objekter eller LTI-modeller 5. Du kan bruke tf-funksjonen 6 i Control System Toolbox til å generere et LTI-objekt av typen transferfunksjon. Eksempelet nedenfor viser hvordan vi kan lage et LTI-objekt med navn H for transferfunksjonen H(z) = b 1 z + b 0 a 2 z 2 + a 1 z + a 0 (57) der b 1 =1, 5, b 0 =2, a 2 =1, a 1 = 1, 3, a 0 =0, 4 og der tidsskrittet er h =0, 05: b1=1.5; b0=2; a2=1; a1=-1.3; a0=0.4; h=0.05; teller=[b1,b0]; nevner=[a2,a1,a0]; H=tf(teller,nevner,h); teller og nevner er altså Matlab-vektorer som inneholder koeffisientene for avtakende potenser av z. 5 LTI = Linear Time Invariant 6 tf = transfer function 13
7.2 Analyse- og simuleringsfunksjoner i Control System Toolbox Det fins mange funksjoner i Control System Toolbox som kan brukes på LTI-objekter. Noen eksempler er angitt nedenfor (i eksemplene er H LTI-objektets navn, men du kan selvsagt bruke et annet navn). Veiledning i bruk av funksjonene fås f.eks.med help funksjonsnavn fra Matlabs kommandolinje eller via Help-menyen i Matlab. Webdokumentet http://techteach.no/publications/control_system_toolbox/ gir en innføring i Control System Toolbox. bode(h) beregner og plotter frekvensresponsen i et Bodediagram step(h) simulerer sprangresponsen (enhetssprang på systemets inngang) impulse(h) simulerer impulsresponsen pzmap(h) beregner og plotter polene og nullpunktene i det komplekse plan 7.3 Representasjon av Z-transferfunksjoner i Simulink LTI-objekter kan representeres på to alternative måter i Simulink: Med LTI-blokken, som fins i Control System Toolbox-biblioteket i Simulink 7 Med Discrete Transfer Fcn-blokken, som fins i Discrete-biblioteket Figur 6 viser et Simulink-blokkdiagram med disse to blokkene. 7 Dette biblioteket blir installert når Control System Toolbox blir installert. 14
Figur 6: Representasjon av Z-transferfunksjon med LTI-blokk og Discrete Transfer Fcn-blokk i Simulink 15