Notat - Universitetet i Stavanger
Transcription
Notat - Universitetet i Stavanger
Stavanger, 1. juli 2015 Det teknisknaturvitenskapelige fakultet ELE620 Systemidentifikasjon, 2015. Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes It’s learning. Innhold 1 Tidsdiskrete signal 4 1.1 Frekvens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Nedfolding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Oppgave med tidsdiskret signal . . . . . . . . . . . . . . . . . . 7 2 Representasjon av system. 8 2.1 Differensligningen . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Differensialligningen . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 z-transferfunksjonen . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.1 Sammenheng med impulsresponsen . . . . . . . . . . . . 12 2.3.2 Stasjonær respons . . . . . . . . . . . . . . . . . . . . . . 12 2.3.3 Poler og nullpunkt . . . . . . . . . . . . . . . . . . . . . 13 2.4 s-transferfunksjonen . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Diskret tilstandsrommodell . . . . . . . . . . . . . . . . . . . . . 15 2.6 Kontinuerlig tilstandsrommodell . . . . . . . . . . . . . . . . . . 16 2.6.1 Systemets egenverdier . . . . . . . . . . . . . . . . . . . 16 Karl Skretting, Institutt for data- og elektroteknikk (IDE), Universitetet i Stavanger (UiS), 4036 Stavanger. Sentralbord 51 83 10 00. Direkte 51 83 20 16. E-post: karl.skretting@uis.no. 3 Overganger 17 3.1 Linearisering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Fra TRM til transferfunksjoner . . . . . . . . . . . . . . . . . . 18 3.3 Diskretisering av transferfunksjonen . . . . . . . . . . . . . . . . 19 3.4 3.3.1 Utledning av eksakt diskretisering . . . . . . . . . . . . . 20 3.3.2 Diskretisering med approksimasjoner . . . . . . . . . . . 21 3.3.3 Diskretisering med substitusjon . . . . . . . . . . . . . . 24 3.3.4 prewarp-metoden . . . . . . . . . . . . . . . . . . . . . . 26 3.3.5 Eksempel prewarp-metoden på sugefilter . . . . . . . . . 26 3.3.6 Poler ved diskretisering . . . . . . . . . . . . . . . . . . . 27 Diskretisering av TRM . . . . . . . . . . . . . . . . . . . . . . . 28 3.4.1 Eksakt diskretisering av lineær TRM . . . . . . . . . . . 28 3.4.2 Rekkeutvikling for diskretisering av lineær TRM . . . . . 30 3.4.3 Approksimasjon for diskretisering av TRM . . . . . . . . 31 3.4.4 Linearisering i kombinasjon med en diskretisering . . . . 32 4 Systemets egenskaper 4.1 4.2 Generell tidrespons . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.1 Delbrøkoppspalting for beregning av tidsrespons . . . . . 33 4.1.2 Matlab for beregning av tidsrespons . . . . . . . . . . . 34 4.1.3 Impuls- og steg(sprang)respons . . . . . . . . . . . . . . 34 Frekvensrespons . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.1 4.3 33 Utledningen av frekvensrespons . . . . . . . . . . . . . . 35 Stabilitet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5 Noen viktige system 38 5.1 Forsterker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2 Tidsforskjøvet signal . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3 Integrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2 5.3.1 Eksakt diskretisering av transferfunksjon . . . . . . . . . 40 5.3.2 Differensligning fra z-transferfunksjonen . . . . . . . . . 41 5.3.3 Differensligning ved differensialapproksimasjonen . . . . 41 5.3.4 z-transferfunksjonen fra differensligningen . . . . . . . . 41 5.4 Dobbelintegrator . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.5 Førsteordens system . . . . . . . . . . . . . . . . . . . . . . . . 43 5.6 5.5.1 Eksakt diskretisering . . . . . . . . . . . . . . . . . . . . 44 5.5.2 Eksempel med diskretisering i Matlab . . . . . . . . . . 45 5.5.3 Eksakt differensligning med tall . . . . . . . . . . . . . . 46 5.5.4 Diskretisering ved differensialapproksimasjon . . . . . . . 46 5.5.5 Eksempel med substitusjon . . . . . . . . . . . . . . . . 47 Andreordens system . . . . . . . . . . . . . . . . . . . . . . . . 48 5.6.1 Sprangrespons for andreordens system . . . . . . . . . . 50 6 Litt matematikk 53 6.1 Litt regning med komplekse tall . . . . . . . . . . . . . . . . . . 53 6.2 z-transformasjonen . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.3 6.2.1 Eksempel med y(k) = ak . . . . . . . . . . . . . . . . . . 54 6.2.2 Eksempel med y(k) = kak . . . . . . . . . . . . . . . . . 55 6.2.3 Noen tranformasjonspar . . . . . . . . . . . . . . . . . . 55 6.2.4 Sluttverditeoremet . . . . . . . . . . . . . . . . . . . . . 56 Laplace-transformasjonen . . . . . . . . . . . . . . . . . . . . . 57 6.3.1 Eksempel . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.3.2 Noen tranformasjonspar . . . . . . . . . . . . . . . . . . 57 6.4 Om matriser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.5 Derivasjon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.6 Om uttrykket eAt . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3 Notat om tidsdiskrete systemer. 1 Tidsdiskrete signal Her er litt repetisjon fra signalbehandlingen om frekvens, sampling og nedfolding. 1.1 Frekvens Frekvens (for et signal) er omdreininger, perioder eller gjentakelser per sekund. Enhet er Hertz, Hz. Frekvens kan også måles med vinkelhastighet, radianer per sekund, eller periodetid, antall sekund for en omdreining. Forholdet mellom disse enhetene er det viktig å ha klart for seg. Symbol Enhet Tekst Tp s f Hz ω rad/s Sammenheng periodetid T = 1 f = 2π ω frekvens f= 1 Tp = ω 2π vinkelhastighet ω = 2πf = 2π Tp Hvis det er klart ut fra sammenhengen at ω har enhet rad/s kan den ofte også kalles frekvens selv om ω egentlig er vinkelhastighet. Et signal med kun en frekvens, ω, er et sinussignal. For eksempel u(t) = sin(ωt + φ) = sin(2πf t + φ). (1.1) Her er φ en faseforskyvning og t er tid. 1.2 Sampling Sampling er måling av signalverdien ved regelmessige intervall, Ts (eller bare T ). Ts kalles tidssteg, sampleperiode eller sampletid. Som for signalet kan en også bruke samplefrekvens eller skjeldnere sample(vinkel)hastighet. Symbol Enhet Tekst Ts s fs Hz ωs rad/s Sammenheng tidssteg Ts = 1 fs = 2π ωs samplefrekvens fs = 1 Ts = ωs 2π samplehastighet ωs = 2πfs = 4 2π Ts En oppgir også i mange sammenhenger signalfrekvensen relativt til samplefrekvensen, for eksempel for frekvensrespons for digitale filter. Da bruker en ofte normalisert frekvens (=f /fs ) som er frekvens skalert slik at f = fs blir 1, eller som i Matlab (=2f /fs ) bruker en ofte at Nyquist-frekvensen (se del 1.3) fN blir 1. Et tredje alternativ er gjerne å skalere frekvensene (=2πf /fs ) slik at f = fs blir 2π og f = fN blir π. For eksempel med fs = 100 Hz, normalisert frekvens er da π/4 for f = 12.5 Hz. Når en bruker normalisert frekvens må en alltid oppgi hva fs (eller fN ) er normalisert til. 1.3 Nedfolding For å unngå nedfolding eller aliasing må signalet ikke inneholde frekvenskomponenter med frekvens over Nyquist-frekvensen, denne er halve samplefrekvensen: fN = fs /2 eller ωN = ωs /2. Nedfolding er at faktiske frekvenser høyere enn fN opptrer (speiles til) lavere frekvenser under samplingsprosessen. Ei Matlab-fil som illustrerer dette er fold.m. Det er viktig å vite hvordan nedfolding skjer. La f være signalets virkelige frekvens, signalet samples så med samplefrekvens fs . Da vil den tilsynelatende frekvensen etter sampling være f¯. Følgende oppskrift brukes for å finne f¯ gitt f og fs . 1. En finner først frekvensen f1 slik at f = f1 + mfs der m = 0, 1, 2, . . ., og 0 ≤ f1 < fs . Altså f1 = f − bf /fs cfs . 2. Hvis f1 ≤ fN = fs /2 så er f¯ = f1 , ellers, fN ≤ f1 ≤ fs , så er f¯ = fs − f1 . Her får en speiling. Et signal består ofte av flere frekvenskomponenter. Nedfolding vil gjelde alle frekvenskomponenter som har høyere frekvens enn Nyquist-frekvensen, fN = fs /2. Folding er illustrert i figur 1 og figur 2. Vi ønsker som regel ikke nedfolding (i forbindelse med regulering) og må derfor velge tilstrekkelig høy samplefrekvens, det vil si tilstrekkelig lite tidssteg. En løsning er å lavpassfiltrere signalene før sampling og på den måten forsikre oss om at signalene ikke inneholder frekvenskomponenter som kan foldes ned. Samplingsfrekvensen bør velges tilstrekkelig stor, en tommelfingerregel som er strengere enn Nyquist-kriteriet er ωs = 2π ≥ 10ω1 Ts der ω1 er høyeste frekvenskomponent i signalene, i.e. båndbredden. 5 (1.2) 6 1 4 ⇓ 1 2 3 4 5 4 1 3 2 7 4 6 -f /fs 2 normalisert frekvens, fs = 1 f¯ frekvens - fN fs Figur 1: Nedfolding, eksempel 1. Frekvenser mellom 0.6 og 0.9 med topp på 0.8 speiles ned til frekvenser mellom 0.1 og 0.4 med topp på 0.2. Frekvensen på 1.08 foldes ned til 0.08. 6 @ @ 1 4 ⇓ 1 2 3 4 5 4 1 6 fN 3 2 7 4 -f /fs 2 normalisert frekvens, fs = 1 f¯ frekvens - fs Figur 2: Nedfolding, eksempel 2. Frekvenser mellom 1.3 og 1.5 foldes til mellom 0.3 og 0.5. Frekvenser mellom 1.5 og 1.6 flyttes ned og speiles til å bli mellom 0.4 og 0.5. Frekvensen på 1.9 flyttes til 0.1. 6 1.4 Oppgave med tidsdiskret signal Gitt følgende signal y(t) = sin(4t + 1). a. Hva er frekvensen? b. Tidssteget, Ts , er 1 sekund. Hva er samplingsfrekvensen? c. Hvilken frekvens ses (etter sampling)? Svar: a. ω = 4 og f = ω 2π = 4 2π = 0.64 Hz. b. fs = 1/Ts = 1 Hz. c. fN = fs /2 = 0.5 Hz, og vi har her f > fN og får altså folding eller speiling. Obeservert frekvens blir f¯ = fs − f = 1 − 0.64 = 0.36 Hz. 7 u(k) - System h(z) y(k) - Figur 3: Enkel skisse av diskret LTI-system. Systemet er her gitt av ztransferfunksjonen h(z). Det er et inngangssignal (pådrag) u(k) og et utgangssignal y(k). 2 Representasjon av system. Et system er ofte en representasjon av en avgrenset fysisk prosess, eller en modell av en fysisk prosess. Generelt er system et noe videre begrep som ofte brukes om abstrakte, administrative eller logiske prosesser i videste forstand. Uansett blir systemet definert og avgrenset ut fra grensesnitt til omverda. Når systemet representerer en fysiske prosess er det signalene som danner grensesnittet i systemet (som tilsvarere krefter eller energioverføringer i fysisk prosess). Systemet er dermed relatert til signalene. Hvis signalene er tidsdiskrete så er også tilhørende system diskret, selv om det kan være en kontinuerlig fysisk prosess som ligger bak. Når (minst et av) signalene er kontinuerlige er også systemet kontinuerlig. Et system kan skisseres med en boks som i figur 3. Et blokkdiagram er en god måte å illustrere et system på. I et blokkdiagram brytes systemet opp i enklere elementer eller subsystem, disse tegnes ofte som blokker. Subsystemene forbindes med (interne) signaler, som tegnes som streker med retning (piler). Det aller enkleste eksempelet på et blokkdiagram er i figur 3, noen litt større system er i figur 10 side 44. Når systemet er bygd opp av enkle enheter, som en forstår godt, så kan en ofte bare ved å se på blokkdiagrammet forstå systemet og hva det gjør. Simulink, en tilleggspakke til Matlab, bruker blokkdiagram for å tegne systemet. Noen ulike måter å representere systemer på viser i figur 4. Representasjon av kontinuerlige system er til venstre og diskrete system til høyre. Systemet kan i tillegg representeres enten i tidsdomenet eller i transformert form, i henholdsvis s-domenet eller z-domenet. Når en modellerer prosessen ut fra de fysiske lover som gjelder så kommer en ofte fram til en eller flere differensialligninger, disse gir da en beskrivelse (modell) av systemet. Tilsvarende modellering av diskrete prosesser gir en beskrivelse (modell) med differensligninger. Differensialligningene kan ofte være ganske komplekse, og inkluderer både førstederiverte og høyere-ordens-deriverte og de er gjerne også ulineære. Ved å innføre nye interne signal, tilstander x, så kan alle differensialligninger uttrykkes med kun førstederiverte, og alle differensligninger med kun to etterfølgende 8 Kontinuerlig system - u(t) ẏ(t) = . . . Tidsdiskret system - - y(t) u(k) y(k + 1) = . . . 6 6 −1 L Z −1 Z L ? u(s) - - y(k) ? h(s) = y(s) u(s) y(s) - u(z) - h(z) = y(z) u(z) y(z) - Figur 4: Kontinuerlige og diskrete system. I de øverste boksene beskrives systemene med differensialligninger og differensligninger. I de nederste boksene beskrives systemene med transferfunksjoner. Laplace-transformasjonen og ztransformasjonen danner overgangen, per definisjon gjøres de på inngang- og utgangssignalene, men den enkleste formen fås oftest når transformasjonene gjøres direkte på ligningene og så ordnes. tidssteg, (k + 1) og (k). En tilstand er da en indre egenskap ved systemet, den kan være fysisk virkelighet slik som for eksempel en temperatur i systemet, men kan også være mer løsrevet fra en fysisk virkelighet. I første omgang er det gjerne enklest å tenke seg at x kan være nøyaktig det sammen som utgangen y, som når tilstand måles direkte. En beskrivelse med interne tilstander er en tilstandsrommodell. Fordelen med å innføre tilstander x er at en blir mer fleksibel i å definere systemet. Ikke minst fordi at ved å bruke hensiksmessige tilstandsvariabler så kan alle differensialligninger uttrykkes med kun førstederiverte. Det at en bruker flere tilstander kan også gi andre forenklinger i systembeskrivelsen. Ved å bruke tilstandsrommodell for differensialligninger (og differensligninger) så blir figur 4 slik som i figur 5. Her er tilstandsrommodellen i både generell og lineær form, og det er også med noe mer omkring systemene. Jeg synes denne figuren på en god måte viser de ulike måter å representere systemer på og den kan hjelpe å holde oversikten. Signalene, pådrag u, tilstand x og utgang eller måling y, kan gjerne være vektorer av flere signal. For eksempel for flere diskrete tilstander x1 (k) x2 (k) x(k) = x(k) = .. . . xn (k) Tilsvarende notasjon brukes også for u(k) og y(k), og for signalene i andre 9 domener, t, s og z. 2.1 Differensligningen Differensligningen viser hvordan utgangsverdi kan beregnes ut fra nåværende og tidligere innganger og tidligere utganger. Den generelle formen er y(k) = f (u(k), u(k − 1), . . . , y(k − 1), y(k − 2), . . .) (2.1) der f (·) er en funksjon (og har ingenting med frekvens å gjøre). Det er ofte mest hensiktsmessig å ha en lineær form på denne funksjonen. For et kausalt, lineært, tidsinvariant, diskret filter blir formen for f (·) en lineær differensligning. p r X X an y(k − n) (2.2) y(k) = bn u(k − n) − n=1 n=0 Her har en, slik det vanligvis gjøres, satt a0 = 1. 2.2 Differensialligningen Når en modellerer et system ut fra de fysiske lovene som gjelder så får en ofte en differensialligning, eller et sett med differensialligninger. Et enkelt eksempel er en integrator: ẏ(t) = Ki u(t). Konstanten Ki er en konstant. Det kan for eksempel være volum av væske i en tank, y(t) = V (t), som er integralet av strømmen inn, u(t) = qinn (t). Differensialligningen for et førsteordens system er 1 ẏ(t) = Ku(t) − y(t) T1 2.3 z-transferfunksjonen Boksen nede til høyre i figur 4 viser systemet representert med z-transferfunksjonen. Den er definert som forholdet mellom utgangssignalet og inngangssignalet sine z-transformasjoner h(z) = y(z) . u(z) (2.3) Hvis det er flere innganger og utganger så har systemet en z-transferfunksjon for hvert par av inngangs- og utgangssignal. h(z) vil da være en matrise av 10 Kontinuerlig Diskret Diskretisering −→ u(k) u(t)y(t) y(k) - h(z), x(k) h(s), x(t) u(s) y(s) u(z) y(z) Modell Fysisk system @ Matematisk modellering @ R @ D1 −→ ẋ = f (. . .) y = g(. . .) x(k + 1) = f (. . .) y(k) = g(. . .) Generell Tilstandsrommodell Lineær ↓ Linearisering ↓ D2 x(k + 1) = Φx(k) + Γu(k) ẋ = Ax + Bu −→ y = Dx + Eu ↓ L y(k) = Dx(k) + Eu(k) ↑ L−1 h(s) = y(s)/u(s) Z ↓ D3 −→ @ Observerte I @ @ Z −1 ↑ h(z) = y(z)/u(z) Transferfunksjon signal, u og y Eksperiment Figur 5: Oversikt over ulike systembeskrivelser og overganger. Det å forstå disse ulike måtene å beskrive systemer på, og ikke minst overganger mellom disse, er viktig i systemidentifikasjon. Her er signalet u pådraget, signalet y er (målt) utgang, systemets transferfunksjon er h, og systemets tilstand er x. En kan ofte forenkle med å måle tilstanden(e) direkte og da har en y = x. 11 transferfunksjoner, med dimensjon l × s der l er antall utganger og s er innganger. y1 (z) .. y1 (z) . · · · uy1s(z) u1 (z) (z) yl (z) y(z) y(z) .. .. . . = h(z) = = T = . . . u(z) u (z) u1 (z) · · · us (z) yl (z) yl (z) · · · us (z) u1 (z) antall z-transferfunksjonen representerer den direkte sammenheng mellom systemets inn- og utsignaler. z-transferfunksjonen kan finnes ut fra definisjonen over, eller ved å ta z-transformasjonen av differensligningen direkte. Dette siste gir ofte det enkleste uttrykket. En kan også finne z-transferfunksjonen ved diskretisering av s-transferfunksjonen. Merk: Når et kontinuerlig system diskretiseres blir signalene y(k) og u(k) avhengige av tidssteget T (eller Ts om en vil være helt presis i notasjonen). Dermed blir også y(z) og u(z) og z-transferfunksjonen h(z) avhengige av T . 2.3.1 Sammenheng med impulsresponsen Det er en tett sammenhengen mellom transferfunksjon og impulsrespons. Ligning 2.3 kan ordnes til y(z) = h(z)u(z). Hvis en lar pådraget være en enhetsimpuls, u(k) = δ(k) og u(z) = 1, gir det en alternativ definisjon: z-transferfunksjonen er z-transformasjonen av systemets impulsrespons, h(k) = yδ (k), h(z) = Z{h(k)} = yδ (z) 2.3.2 (2.4) Stasjonær respons Systemets stasjonære respons, også kalla stegrespons eller statisk respons ys , er den verdien utgangssignalet går mot når inngangssignalet er et sprang. Denne kan finnes ut fra sluttverditeoremet lim y(k) = ys = lim(z − 1)y(z) z→1 k→∞ (2.5) Sluttverditeoremet er enkelt å vise, se del 6.2.4. Den stasjonære responsen for et system h(z), det vil si et hvilket som helst system som er gitt av systemets transferfunksjon, er ut fra sluttverditeoremet ys = lim(z − 1)y(z) = lim(z − 1)h(z)u(z) z→1 z→1 Uz h(z) = lim U zh(z) = U hz (1). = lim(z − 1) z→1 z→1 z−1 12 (2.6) Jeg har her skrevet hz (1) for å få fram at det er h(z) som er innsatt 1, ikke impulsresponsen h(k). Når sprangets høyde ikke er definert kan en også sette U = 1. 2.3.3 Poler og nullpunkt Et (kausalt) lineært diskret system gitt med differensligningen p X an y(k − n) = n=0 r X bn u(k − n). n=0 z-transformene av signalene er y(z) = ∞ X y(k)z −k , u(z) = k=0 ∞ X u(k)z −k . k=0 En kan også ta z-transformasjon av koeffisientsekvensene a(z) = p X an z −n , b(z) = r X bn z −n . n=0 n=0 Transferfunksjonen for systemet er ∞ h(z) = y(z) b(z) X h(n)z −n . = = u(z) a(z) n=0 Transferfunksjonen for systemet kan alternativt skrives som y(z)a(z) = u(z)b(z), I begge tilfeller er a(z) og b(z) er polynom i z, eller z −1 om en vil. Vanligvis er gjerne polynomet i z −1 , det er da kausalt i forhold til differensligningen, da har en a(z) = a0 + a1 z −1 + a2 z −2 + · · · , og vanligvis har vi a0 = 1, og b(z) = b0 + b1 z −1 + b2 z −2 + · · · . z-transferfunksjonen for systemet er da h(z) = b(z)/a(z). Selv om polynomene oftes gis i z −1 , kan en også (ved å multiplisere både teller og nevner med en hensiktsmessig faktor z n ) uttrykke de som polynom i z. Dette kan være forvirrende, og det er viktig at en alltid har klart for seg hva polynomet er i, og rekkefølge for koeffisientene (hvilken koeffisient hører til hvilket ledd). Spesielt må en være oppmerksom på dette når en bruker Matlab, da dette ikke er gjort likt i alle funksjonene. For eksempel bruker filterfunksjonen A og B som polynomer i z −1 der første element er koeffisient for z 0 . Men dlsim-funksjonen1 har NUM og DEN som polynom i z med koeffisientene 1 dlsim funksjonen er i Control System Toolbox (CST) men er nå foreldet (obsolete), erstattet av lsim. 13 i avtagende rekkefølge, altså z 0 koeffeisienten for siste element. Kun når NUM og DEN har samme lengde virker denne funksjonen likt som filter. En representasjon av z-transferfunksjonen med poler og nullpunkt er ofte hensiktsmessig. Da faktoriseres hvert av polynomene a(z) og b(z) til faktorer der røttene inngår. Røttene i a-polynomet blir da polene og røttene i b-polynomet blir da nullpunktene for z-transferfunksjonen. Før faktorisering foretrekker jeg oftest å multiplisere med en hensiktsmessig faktor z n over og under brøkstreken, det vil si samme faktor for begge polynom, dermed er det polynom i z som faktoriseres. I Matlab kan en finne røttene for et polynom med roots-funksjonen. h(z) = (z − ζ1 )(z − ζ2 )(z − ζ3 ) · · · (z − ζr ) b(z) =K a(z) (z − z1 )(z − z2 )(z − z3 ) · · · (z − zn ) (2.7) • ζi er nullpunkt. • zi er poler. • K er en (forsteknings)faktor, K = b0 når a0 = 1. Generelt har vi at z-transferfunksjonen er utgang delt på inngang, (2.3). For en lineær differensligning kan z-transferfunksjonen ordnes slik at den skrives som en rasjonell funksjon, en brøk med to polynom, (2.7). y(z) og u(z) er ofte ikke polynom, men a(z) og b(z) er polynom. h(z) = b(z) y(z) = . u(z) a(z) (2.8) Systemets orden er den samme som grad for a(z) polynomet. 2.4 s-transferfunksjonen Boksen nede til venstre i figur 4 viser systemet representert med s-transferfunksjonen. Den er definert som forholdet mellom utgangssignalet og inngangssignalet sine Laplace-transformasjoner h(s) = y(s) . u(s) (2.9) En kan finne s-transferfunksjonen for et kontinuerlig system på tilsvarende måte som en finner z-transferfunksjonen for et tidsdiskret system, bare at en bruker Laplace-transformasjon i stedet for z-transformasjon. En kan altså ta Laplace-transformasjon av inngangs- og utgangssignaler, eller direkte av differensialligningene for systemet. 14 2.5 Diskret tilstandsrommodell Den diskrete tilstandsrommodellen er en generell ordnet form for differensligningene for systemet, tilsvarende er den kontinuerlige tilstandsrommodellen er en generell ordnet form for differensialligningene for systemet. Den viktigste utvidelsen er at en inkluderer systemets tilstander x. Dette kan ofte gi en mer fullstendig og korrekt systembeskrivelse. Med utgangspunkt i differensligninger får en da en diskret tilstandsrommodell, den er vist i boksen med x(k +1) i figur 5. Hver tilstand uttrykkes som en funksjon av tidligere tilstander og nåværende og tidligerer innganger. Videre kan hver utgang beskrives med en funksjon av nåværende og tidligere tilstander. En har ofte ikke med tidligere utganger eller nåværende og tidligere innganger ved beskrivelsen av utgangene, en kan ha det men en kan like gjerne bare ta med flere tilstander. En generell diskret tilstandsrommodell er på form x(k + 1) = f (x(k), u(k)) y(k) = g(x(k), u(k)) (2.10) Pådrag, måling, tilstand eller funksjonene kan gjerne være på vektorform. Med s pådrag, l målinger og n tilstander har en da u1 y1 x1 f1 g1 u2 y2 x2 f2 g2 u = .. , y = .. , x = .. , f = .. , g = .. . . . . . . us yl xn fn gl Den lineære tilstandsrommodellen kan skrives på noen ulike former, alt etter om en tar med alle ledd eller kun de viktigste. Her har vi et eksempel som inkluderer prosesstøy og målestøy x(k + 1) = Φx(k) + Γu(k) + Ωv(k), y(k) = Dx(k) + Eu(k) + w(k). (2.11) Signalene er som i den generelle diskrete tilstandsrommodellen. Matrisene er oppsummert i tabellen nedenfor Navn Symbol Dimensjon Transisjonsmatrise Φ n×n Pådragsmatrise Γ n×s Forstyrrelsematrise Ω n×n Målematrise D l×n Direktekoblingsmatrise E l×s 15 v(k) er stokastiske forstyrrelser på prosessen eller tilstandene, de går ofte gjennom matrisa Ω som ofte også er diagonal, men den trenger ikke være det. w(k) er stokastiske forstyrrelser direkte på hver enkelt måling, her har en ikke noen “blandingsmatrise” slik som Ω er for støyen v. 2.6 Kontinuerlig tilstandsrommodell For en kontinuerlig generell tilstandsrommodell, uten støyledd, så er den deriverte til hver tilstand en generell funksjon av alle tilstandene og alle pådragene. Tilsvarende er hver målingen en generell funksjon av alle tilstandene og alle pådragene. Dette kan skrives kompakt der alle symbol er vektorer ẋ = f (x, u) y = g(x, u) (2.12) Legg merke til at funksjonen f (·) her er forskjellig fra funksjonen f (·) i ligning 2.10. Her er f (·) en funksjon som gir den deriverte av tilstandene for en gitt tilstand og et gitt pådrag, mens i ligning 2.10 gir f (·) tilstanden i neste tidssteg. Det kommer som regel klart fram av sammenhengen hvilken funksjon en mener når en skriver f (·). En kontinuerlig lineær tilstandsrommodell, her uten støyledd, er ẋ = Ax + Bu y = Dx + Eu 2.6.1 (2.13) Systemets egenverdier Egenverdiene for det kontinuerlige systemet (2.13) er røttene i karakteristisk ligning det(sI − A) = 0. Røttene gir egenverdiene {si } = eig(A). Tilsvarende for diskret system (2.11) er egenverdiene røttene i karakteristisk ligning som her er det(zI − Φ) = 0. Røttene gir egenverdiene {zi } = eig(Φ). Ut fra sammenhengen Φ = eAT og egenverdidekomposisjon, A = XΛX −1 , så kan en vise at egenverdiene i det diskretiserte system henger sammen med egenverdiene i det tilsvarende kontinuerlige system {zi } = eig(Φ) = esi T (2.14) og omvendt {si } = eig(A) = 16 1 ln zi . T (2.15) 3 Overganger I systemidentifikasjon er det ofte viktig å kunne gå fra den en systemrepresentasjon til en annen. Det omhandler dette kapittelet. 3.1 Linearisering En (diskret) ikke-lineær prosess (system) kan ofte innenfor et begrenset operasjonsområde, i praksis omkring et arbeidspunkt, tilnærmes med god nøyaktighet med et lineært system. En har her gitt et system som er beskrevet ved en, eller et sett av flere, førsteordens differensligninger. Modellen er her som i (2.10) men vi innfører en forenklet notasjon for funksjonene x(k + 1) = f (x(k), u(k)) = f (k) y(k) = g(x(k), u(k)) = g(k) (3.1) Arbeidspunktet A er for tilstanden xA og pådraget uA . Utledningen her er med fast arbeidspunkt. Med varierende arbeidspunkt, A(k), blir utledningen ganske lik, den følger samme møster. Avvik fra arbeidspunktet skrives ∆x for tilstand og ∆u for pådrag. Tilstand og pådrag ved et tidspunkt er da x(k) = xA +∆x(k) og u(k) = uA + ∆u(k). Vi har x(k + 1) = xA + ∆x(k + 1) = f (k) = f [xA + ∆x(k), uA + ∆u(k)] Med Taylor rekkeutvikling av f (k) omkring arbeidspunktet får vi ∂f ∂f x(k + 1) = f (xA , uA ) + ∆x(k) + · · · + ∆u(k) + · · · ∂x A ∂u A Her har vi ikke skrevet ut leddene med høyere orden. Disse kan en anta blir små når en er nær arbeidspunktet, og dermed ser vi bort fra de. f (xA , uA ) blir jo tilstanden et steg etter arbeidspunktet, og en kan gjerne anta at en i løpet av et tidssteg fortsatt vil være ganske nær arbeidspunktet, altså f (xA , uA ) ≈ xA . Vi får da x(k + 1) = xA + ∆x(k + 1) ∂f ∂f xA + ∆x(k + 1) = xA + ∆x(k) + ∆u(k) ∂x A ∂u A ∂f ∂f ∆x(k + 1) = ∆x(k) + ∆u(k) ∂x A ∂u A ∆x(k + 1) = Φ∆x(k) + Γ∆u(k) ∂f ∂f Φ= Γ= ∂x A ∂u A 17 Merk at hvis arbeidspunkt er tidsvarierende så vil også matrisene Φ og Γ være tidsvarierende, altså Φ(k) og Γ(k). I ligningene over har en partiell derivert av en vektor med funksjoner med hensyn på en vektor med variabler. Dette trenger kanskje litt utdypning ∂f1 .. ∂f1 . ∂f1 · · · ∂x ∂x n 1 ∂fn ∂f ∂f . .. .. = Φ= = (3.2) = .. . . T ∂x ∂x ∂x1 · · · ∂xn ∂fn ∂fn · · · ∂xn ∂x1 Vektorene f og x er like lange, begge har lengde n systemet. Φ er da ei matrise med dimensjon n × n har en ∂f1 .. . ∂fn ∂f ∂f = Γ= = = ∂u ∂uT ∂u1 · · · ∂us som er antall tilstander i slik den skal være. For Γ ∂f1 ∂u1 .. . ∂fn ∂u1 ··· ... ∂f1 ∂us ··· ∂fn ∂us .. . (3.3) Γ blir da ei matrise med dimensjon n × s slik den skal være. Tilsvarende linearisering kan gjøres med måleligningen g(k) i (3.1) og en vil da få samme generelle uttrykk for D og E som for Φ og Γ bare en har g i stedet for f i (3.2) og (3.3). I praksis så er ofte D og E mye enklere enn Φ og Γ, ofte E = 0. 3.2 Fra TRM til transferfunksjoner Vi skal her gå fra diskret tilstandsrommodell, kapittel 2.5 (2.11), til transferfunksjon h(z). Tilstandsrommodellen er x(k + 1) = Φx(k) + Γu(k), y(k) = Dx(k) + Eu(k). Pådraget u, tilstanden x og målingen y er generelt vektorer. Direktekoblingsmatrisen E er ofte 0. Vi skal finne z-transferfunksjonen, generelt transfermatrisen h(z) med dimensjon l × s, fra u til y. Disse overgangene gjøres med transformasjoner. z-transformasjon av (2.11) gir zx(z) = Φx(z) + Γu(z) (zI − Φ)x(z) = Γu(z) x(z) = (zI − Φ)−1 Γu(z) 18 (3.4) og setter inn for x(z) i y(z) y(z) = Dx(z) + Eu(z) y(z) = D(zI − Φ)−1 Γu(z) + Eu(z) y(z) = D(zI − Φ)−1 Γ + E u(z) y(z) h(z) = = D(zI − Φ)−1 Γ + E u(z) Et eksempel der dette brukes er i del 5.4 side 42. 3.3 Diskretisering av transferfunksjonen Diskretisering vil si en overgang fra venstre del til høyre del i figurene 5 og 4. Vi starter med eksakt diskretisering, det gir et ikke helt enkelt uttrykk som kun er nyttig for enkle system. Eksakt diskretisering forutsetter et nullteordens sample- og holdeelement på inngangen. Approksimasjonene, i underkapitlene 2 og 3 med eksempel i 4, gir derimot noen enkle og nyttige substitusjonsregler. Til slutt her ser vi hva som skjer med polene ved diskretisering, de er viktige for systemets stabilitet. En kan også diskretisere tilstandsrommodellen, det skal vi se på i neste delkapittel. Et kontinerlig (fysisk) system kan diskretiseres med sampletida T , og da gi et tidsdiskret system, det vil si en diskret matematisk modell av systemet. Systemet er gjerne fysisk og konkret og har kontinuerlige egenskaper, for eksempel et lukka rom med en ovn der en måler temperaturen og pådraget (inngangen) er (elektrisk) effekt tilført ovnen. Når en diskretiserer systemet endrer en ikke på selve det fysiske systemet, men en endrer på signalene. For utgangssignalet så leses det nå kun av ved bestemte tidspunkt, nemlig ved tider t = kT . Men den fysiske egenskapen som måles, for eksempel temperatur, har selvsagt verdi også når den ikke måles. For inngangssignalet må en nå gjøre et valg for hvordan en vil at det skal virke. En må gjøre det diskrete signalet om til et kontinuerlig signal, dette gjøres med et holdeelement. Ofte kan en styre inngangssignalet, pådraget, og da er det rimelig å anta at en kun får endre verdier ved sampletidene, og en annen antakelse som også ofte gjøres er at den satte verdien da holdes konstant til neste gang verdien settes. Dette er et nullteordens sample- og holdeelement, det er gjerne en fysisk del av pådragsorganet. Selv når inngangssignalet er et kontinuerlig signal, som en ikke detaljert styrer, men kun måler ved sampletidene vil en ofte bruke et nullteordens sample- og holdeelement i modellen. En vil da bruke et tilnærmet signal inn til modellen, et trappesignal som er en tilnærmelse til det virkelige kontinuerlige signalet inn til systemet. Dette er ofte godt nok, og hvis det er for grov tilnærming kan en få det bedre med å ha kortere sampletid. Men det finnes alternativer 19 Kontinuerlig system h(s) - u(t) Tidsdiskret system =⇒ - h(z) - y(t) u(k) - y(k) ? Sa. h(z) u(k) ? δ(k) - Ho. - uh (t) h(s) y(t) - Sa. - y(k) Figur 6: Diskretisering av kontinuerlig system med sample- og holdeelement. som kan brukes hvis det ikke er råd å øke samplefrekvensen, det er Euler og Tustin (første og andre orden) og Runge-Kutta-metoden (høyere orden). I dette tilfellet er sample- og holdeelement en del av algoritmen i modellen. 3.3.1 Utledning av eksakt diskretisering Eksakt diskretisering er generelt vanskelig, men vi kan komme et stykke på vei, og det kan gjøres med (manuelle) beregninger i enkle tilfeller. Med velegnede verktøy, Matlab, kan eksakt diskretisering enkel gjøres for alle system. Vi har gitt systemets kontinuerlige transferfunksjon h(s), og skal finne h(z). Vi har jo at h(z) = y(z) når u(z) = 1, altså u(k) er en diskret enhetspuls. Starter med å finne kontinuerlig transferfunksjon for en diskret enhetspuls, 1 k=0 u(k) = δ(k) = (3.5) 0 ellers Når u(k) går gjennom et nullteordens sample- og holdeelement blir det kontinuerlige signalet, uh (t), som et rektangel. uh (t) = S(t) − S(t − T ). (3.6) der S(t) her er et enhetssprang. S(t) = 0 t<0 1 t≥0 Tar Laplace-transformasjonen av uh (t) (3.6) og får ved å bruke (6.30) uh (s) = 1 1 −sT 1 − e−sT − e = . s s s 20 (3.7) Merk at et hvilket som helst pådrag til systemet nå vil være et stykkevis konstant signal siden det er et nullteordens sample- og holdeelement på inngangen. Den kontinuerlige respons på en diskret enhetspuls for en vilkårlig system h(s) er 1 − e−sT y(s) = h(s)uh (s) = h(s) = (1 − e−sT )h(s)/s. (3.8) s Videre får vi tidsresponsen y(t) = L−1 {y(s)} = L−1 {(1 − e−sT )h(s)/s} (3.9) En må også ha verdi for yt (0) og vi lar denne være 0, yt (0) = 0. Sampling av y(t) gir y(k) og z-transformasjon av y(k) gir y(z) y(z) = Z{y(k)} = Z{yt (kT )} = ∞ X yt (kT )z −k k=0 = ∞ n X −1 −sT L {(1 − e )h(s)/s} |t=kT o z −k (3.10) k=0 Nå gjør vi et grep som kan virke litt merkelig, men som kan gjøres fordi alle operasjoner i formelen ovenfor er lineære. Faktoren e−sT i s-domenet er en forsinkelse med T i tidsdoment. Faktoren z −1 i z-domenet er en forsinkelse med ett tidssteg, som har lengde T . Faktoren (1 − e−sT ) kan da tas gjennom invers Laplace-transform til tidsdomenet, samples med tidssteg T til det diskrete domenet, og så tas z-transformasjon av til z-domenet der det nå blir til faktoren (1 − z −1 ). Merk også at h(z) = y(z) når u(z) = 1 som her. Altså får vi h(z) = y(z) = (1 − z −1 ) ∞ n o X L−1 {h(s)/s} |t=kT z −k , k=0 eller om en vil n o h(z) = y(z) = (1 − z −1 )Z L−1 {h(s)/s} |t=kT . (3.11) Lenger kommer vi ikke før vi har et uttrykk for h(s). Et eksempel der en bruker dette er for førsteordens system i kapittel 5.5.1. 3.3.2 Diskretisering med approksimasjoner Ved hjelp av differensial- og integralapproksimasjoner kan en forholdsvis enkelt diskretisere alle system gitt med (førsteordens) differensialligninger. En kan utlede enkle subtitusjonsregler som kan brukes på overgangen fra h(s) til h(z). En får ulike regler alt etter hvilken approksimasjon som brukes, men uansett er reglene enkle, de er i de etterfølgende delkapitlene, her tar vi kun selve approksimasjonene. 21 Figur 7: Differensialapproksimasjoner. Her illustreres at en kan tilnærme den deriverte for x(k) = xt (kT ) på flere måter. En kan gå forover ett tidssteg og bruke x(k) og x(k + 1) eller bakover og bruke x(k − 1) og x(k) eller en kan bruke sampleverdi både foran og bak. Stigningstallet for de rette linjer mellom samplingspunktene er tilnærminger til den deriverte. En fordel med metodene basert på approksimasjonene er at en gjerne kan ha et kontinuerlig inngangssignal u(t), ikke et stykkevis konstant signal slik som eksakt diskretisering krever. Vi bruker nå et tilstandssignal x(k) i stedet for utgangen y(k). Som vanlig bruker vi prikk-notasjon for den tidsderiverte ẋ = ẋ(t) = d d d x(t) og ẋ(k) = xt (kT ) = x(k) dt dt dt ẋ(t) kan gjerne være oppgitt som en funksjon av x(t) og u(t) og dermed blir ẋ(k) en funksjon av x(k) og u(k), denne funksjonen kan godt være ulineær også for lineære system. Men hvis en ikke har en eksplisitt formel for ẋ(k) så blir det vanskeligere siden ẋ(k) er en tidsderivert og kan ikke finnes ut fra kun de samplede punkta i x(k), en trenger x(t) for å finne eksakt verdi. Likevel kan ẋ(k) tilnærmes på flere måter ut fra nå-, forrige eller neste verdier. Dette er illustrert i figur 7. Tre nærliggende alternativer finnes, de gir Differensialapproksimasjonene som er 22 • Eulers forovermetode (EF) bruker x(k) og x(k + 1): ẋ(k) ≈ 1 x(k + 1) − x(k) . T (3.12) • Eulers bakovermetode (EB) bruker x(k − 1) og x(k): ẋ(k) ≈ 1 x(k) − x(k − 1) . T (3.13) • Tustins metode er gjennomsnitt av forover- og bakovermetoden. Tustins metode bruker x(k − 1) og x(k + 1). ẋ(k) ≈ 1 x(k + 1) − x(k − 1) . 2T (3.14) Integralapproksimasjoner brukes når en har ẋ(k), gjerne ut fra ẋ, gitt med et uttrykk eller en funksjon som en kan beregne. En kan da bruke dette til å finne eller approksimere x(k) når en har gitt x(k − 1). Utgangspunktet er ligningen Z kT x(k) = x(k − 1) + ẋ(t)dt (k−1)T Integralet her kan tilnærmes på tilsvarene måte som differensialene over. En har der satt ẋ(t) = f1 x(t), u(t) = f1 (t), en kunne like gjerne satt opp for eksempel Eulers forovermetode (EF) som x(k) ≈ x(k − 1) + T ẋ(k − 1). (3.15) Nå ser en tydelig at integralapproksimasjonen (3.15) egentlig bare er resultatet en får ved å snu litt på differensialapproksimasjonen (3.12). Tilsvarende kan en gjøre med EB (3.13) og får da x(k) ≈ x(k − 1) + T ẋ(k). (3.16) For Tustins metode kan en først legge merke til at en for differensialapproksimasjonen har at den er gjennomsnitt av Eulsers forover og Eulers bakover, altså (3.14) = 21 (3.12) + 12 (3.13). Vi vil beholde denne sammenhengen også for integralapproksimasjonen, altså (3.17) = 21 (3.15) + 12 (3.16), og dermed er x(k) ≈ x(k − 1) + T ẋ(k) + ẋ(k − 1) . 2 (3.17) Oftest brukes nok Eulers bakovermetode, fordelen er at den er enkel og at den kun bruker forrige og nåværende verdier for x(k) for å finne ẋ(k). 23 3.3.3 Diskretisering med substitusjon Ved hjelp av differensial- og integralapproksimasjoner kan en utlede enkle subtitusjonsregler som kan brukes på overgangen fra h(s) til h(z). En får ulike regler alt etter hvilken approksimasjon som brukes, men uansett er reglene gnaske enkle å bruke. La oss starte med Eulers forovermetode, der utgangspunktet er at den deriverte til et (kontinuerlig) signal ved et tidspunkt t = kT tilnærmes som i (3.12). Signalet kalles her x men det kunne like gjerne blitt kalla y. 1 x(k + 1) − x(k) . ẋ(t) = ẋ(kT ) ≈ T Substitusjonsreglene kan finnes vedå se på et eksempel med en enkel integrator. En integrator er gitt ved den kontinuerlige modellen (differensialligningen) ẋ = u Laplace-transformeres til sx(s) = u(s) og det gir transferfunksjonen h(s) = x(s)/u(s) = 1/s. Alternativ 1 Approksimasjon med Eulers forovermetode (3.15) gir x(k − 1) + T u(k − 1) T u(k − 1) T z −1 u(z) T z −1 u(z) T z −1 u(z) x(z) = 1 − z −1 x(z) T z −1 T h(z) = = = . −1 u(z) 1−z z−1 x(k) x(k) − x(k − 1) x(z) − z −1 x(z) x(z)(1 − z −1 ) = = = = (3.18) Alternativ 2 Approksimasjon med Eulers forovermetode (3.15) gir x(k + 1) x(k + 1) − x(k) zx(z) − x(z) x(z)(z − 1) = = = = x(k) + T u(k) T u(k) T u(z) T u(z) T x(z) = u(z) z−1 x(z) T h(z) = = . u(z) z−1 24 (3.19) For begge alternativer har en at h(s) = 1/s gir h(z) = T /(z − 1). Dette kan brukes til å gi følgende substitusjonsregel som kan brukes for en vilkårlig transferfunksjon h(s), men en må være klar over at dette er en tilnærmelse basert på Eulers forovermetode. h(z) = h(s)|s= z−1 (3.20) h(s) = h(z)|z=T s+1 (3.21) T Tilsvarende med Eulers bakovermetode (3.16) gir x(k) = x(k − 1) + T u(k) x(z) − z −1 x(z) = T u(z) T x(z) = u(z) 1 − z −1 T Tz x(z) = = . h(z) = −1 u(z) 1−z z−1 (3.22) Altså har en nå at h(s) = 1/s gir h(z) = T z/(z − 1) og får substitusjonsregler basert på Eulers bakovermetode h(z) = h(s)|s=(z−1)/T z h(s) = h(z)|z=1/(1−T s) (3.23) (3.24) Tustins metode (3.17) gir på samme måte T u(k) + u(k − 1) 2 T = u(z) + z −1 u(z) 2 T (1 + z −1 ) u(z) = 2(1 − z −1 ) T (1 + z −1 ) T (z + 1) = = . 2(1 − z −1 ) 2(z − 1) x(k) = x(k − 1) + x(z) − z −1 x(z) x(z) h(z) = x(z) u(z) (3.25) Dermed gir Tustins metode følgende substitusjonsregler h(z) = h(s)|s= 2(z−1) (3.26) h(s) = h(z)|z= 2+T s (3.27) T (z+1) 2−T s Substitusjonsreglene kan oppsummmeres i følgende tabell. EF h(s) → h(z) s= EB z−1 T s= h(z) → h(s) z = T s + 1 z = 25 z−1 Tz 1 1−T s Tustin s= z= 2(z−1) T (z+1) 2+T s 2−T s 3.3.4 prewarp-metoden Frekvenskorrigering er en modifisering av Tustins metode for diskretisering. Gitt et system ved s-transferfunksjonen h(s). Diskretiserer denne med Tustins approksimasjonsmetode med substitusjon, (3.26), og ser på frekvensresponsen etter diskretiseringen. Frekvensresponsen hz (ω) er z-transferfunksjonen innsatt z = ejωT . hz (ω) = hz (z)|z=ejωT = hs (s)|s= 2(z−1) |z=ejωT T (z+1) 2(ejωT − 1) = hs (s)|s= 2(ejωT −1) = hs T (ejωT + 1) T (ejωT +1) 2(ejωT − 1) · e−jωT /2 = hs T (ejωT + 1) · e−jωT /2 2 2j sin(ωT /2) 2j tan(ωT /2) = hs = hs T 2 cos(ωT /2) T 2 = hs (jv), der v = tan(ωT /2). T Vi husker at frekvensresponsen til et kontinuerlig system kan finnes ved å sette s = jv der v er frekvensen for innsignalet. Eksempelet i delkapittel 6.1 illustrerer nettopp uttrykket (z − 1)/(z + 1) i det komplekse plan. Det diskrete systemet hz (z) får altså samme frekvensrespons for frekvens ω som det kontinuerlige sysemet hs (s) får for frekvens v, der v = T2 tan(ωT /2). Merk at for små T så blir v ≈ ω. En kan dermed korrigere slik at det diskrete systemet, som jo er en tilnærming til det kontinuerlige systemet, gir eksakt samme respons som det kontinuerlige systemet ved en bestemt (kritisk) frekvens ω1 . Resultatet kan da oppsummeres med en (enkel) substitusjonsregel hz (z) = h(s)|s= 2ω1 (z−1) , T v1 (z+1) 3.3.5 v1 = 2 tan(ω1 T /2). T (3.28) Eksempel prewarp-metoden på sugefilter Her er et eksempel med et sugefilter, det er det samme som notch-filter. Vi tar her kun Matlab delen slik den blir med CST versjon 8.0. wf=1; T=1; zeta=sqrt(2)/2; teller = [1/(wf*wf), 0, 1]; nevner = [1/(wf*wf), 2*zeta/wf, 1]; sysc = tf(teller,nevner); % kontinuerlig system sysd = c2d(sysc,T,’tustin’); % diskret system 26 Figur 8: Bodediagram som viser frekvensresponsen for et sugefilter, det kontinuerlige tilfellet er med blå strek, diskretisering med Tustins metode er med grønn strek, og diskretisering med prewarp-metoden er med rød strek. sysdp = c2d(sysc,T,’prewarp’,wf); % diskret system med frekv.korr. bode(sysc,sysd,sysdp,linspace(0.1,10,500)); grid on; % Bode diagram for de tre systemene Resultatet viser i figur 8. 3.3.6 Poler ved diskretisering Poler for h(s) er s-verdier der nevneren er null, eller mer presist for en pol s1 har vi lim h(s) = ∞. s→s1 Diskretisering av h(s) gir forskjellige h(z) avhengig av metode, dermed får en også forskjellige poler avhengig av metode 27 Metode EF Substitusjon Pol z = 1 + Ts zi = 1 + T si EB z= 1 1−T s zi = 1 1−T si Tustin z= 2+T s 2−T s zi = 2+T si 2−T si zi = esi T Eksakt Substitusjonene i midtre kolonne er de en gjør i (3.20), (3.23) og (3.26). Eksakt diskretisering kan ikke gjøres med en substitusjon, men med nullte ordens holdeelement kom en fram til ligning 3.11 n o h(z) = (1 − z −1 )Z L−1 h(s)/s t=kT . og med regning som vi her ikke tar med, rekkeutvikling er gjerne enkleste måte, får en at en kontinuerlig pol si får tilsvarende diskrete pol zi . Sammenhengen mellom disse er gitt ved zi = esi T , si = 1 ln zi . T En merker seg at om det kontinuerlige systemet er ustabilt, poler i høyre halvplan, så blir også det (eksakte) diskretiserte systemet ustabilt med poler utenfor enhetssirkelen, altså Re(si ) > 0 ⇒ |zi | > 1. Substitusjonsreglene beholder ikke nødvendigvis stabiliteten! Et eksempel er med marginalt stabilt kontinerlig system som har pol på imaginær akse, for eksempel si = j. Eulers forovermetode gir da pol utenfor enhetssirkelen, ustabilt system. Eulers bakovermetode gir da pol innenfor enhetssirkelen, stabilt system. Mens Tustins metode gir her pol på enhetssirkelen slik som eksakt diskretisering også gir. 3.4 Diskretisering av TRM Som for diskretisering av transferfunksjonen kan også diskretisering av tilstandsrommodellen gjøres eksakt eller med en approksimasjon. Eksakt diskretisering gir også her et ikke helt enkelt uttrykk som kun er nyttig for enkle system. Diskretisering kan gjøres for differensialligningene, også når de er satt opp som tilstandsrommodell, enten den er generell eller lineær. 3.4.1 Eksakt diskretisering av lineær TRM Det vanligste er å diskretisere den lineære tilstandsrommodellen, det skal gjøres i dette kapittelet. Dette er en overgang fra systemet på form som i kapittel 2.6, (2.13). til form som i kapittel 2.5, (2.11). Lineær tilstandsrommodell, (2.13), 28 kan diskretiseres med nullteordens sample- og holdeelement, sampletid er T . Først skrives tilstandsligningen fra (2.13) som ẋ − Ax = Bu Med å multipliserer på begge sider med e−At får en e−At ẋ − e−At Ax ≡ d −At e x(t) = e−At Bu(t) dt Videre integrerer vi over et tidssteg fra t = t1 til t = t2 , (T = t2 − t1 ), noe som gir Z t2 −At t2 −At1 −At2 e−At Bu(t)dt x(t1 ) = x(t2 ) − e e x(t) t1 = e t1 Multipliserer så med e At2 og får A(t2 −t1 ) x(t2 ) − e t2 Z x(t1 ) = eA(t2 −t) Bu(t)dt t1 Her er integralet over u(t) i prinsippet varierende for t mellom t1 og t2 , med et nullteordens sample- og holdeelement så holdes u(t) = u(t1 ) i et tidssteg, altså helt fram til t2 . Dermed kan Bu(t1 ) trekkes utenfor integralet. Vi setter også x(t2 ) alene på venstre side og får Z t2 A(t2 −t1 ) x(t2 ) = e x(t1 ) + eA(t2 −t) dtBu(t1 ) t1 Med å sette t1 = kT , x(k) = xt (kT ) = x(t1 ) og t2 = (k + 1)T , x(k + 1) = x(t2 ) og skifte integrasjonsvariabel2 fra t til t2 − τ så blir dette (når en også bytter om integrasjonsgrensene) x(k + 1) = e AT Z T eAτ dτ Bu(k) x(k) + 0 Måleligningene blir uendret, det er ingen deriverte i den, og dermed har vi (2.11) x(k + 1) = Φx(k) + Γu(k), y(k) = Dx(k) + Eu(k). der Φ=e AT Z , og Γ = T eAτ dτ · B. (3.29) 0 2 Når en setter t → t2 − τ har en τ = t2 − t og dτ = −dt og integrasjonsgrensene blir t = t1 → τ = t2 − t = t2 − t1 = T og t = t2 → τ = t2 − t = 0 29 Alternativt kan Φ og Γ uttrykkes ved hjelp av invers Laplace-transform. Med å bruke ligning 6.42 får en n o Φ = eAT = L−1 L{eAt } t=T −1 −1 Φ = L (sI − A) (3.30) t=T For å finne tilsvarende R t uttrykk for 1Γ så bruker en en egenskap ved Laplacetransformasjonen, L{ 0 f (τ )dτ } = s L{f (t)}. Med å bruke dette så får en Z T nZ t o Aτ Γ = e dτ · B = eAτ dτ · B t=T 0 0 n nZ t o o eAτ dτ B = L−1 L t=T 0 n Z t o = L−1 L f (τ )dτ B med f (τ ) = eAτ t=T 0 o n n1 1 o = L−1 (sI − A)−1 B (3.31) Γ = L−1 L{eAτ } · B s s t=T t=T Matrisa B ble flyttet utenfor den innerste Laplace-transformasjonen. Det kan gjøres siden en antar at B er konstant, altså ikke en funksjon av tiden t, slik en også antar at A er konstant. 3.4.2 Rekkeutvikling for diskretisering av lineær TRM Formlene for Φ og Γ ovenfor er ikke helt enkle. Oftest, i praksis, tilnærmer en heller uttrykkene for Φ og Γ med rekkeutvikling, og en trenger sjelden mange ledd for å få ganske nøyaktig tilnærming. Har en mange ledd så kan en aksptere en stor T og likevel få god nøyaktighet. Men det kan likevel være nødvendig med liten T for mer kontroll med pådraget, eller bedre tilnærming til virkelig pådrag. 1. En regner først ut ei mellommatrise S = IT + 1 1 1 AT 2 + A2 T 3 + A3 T 4 + · · · 2! 3! 4! A er ei n × n matrise og I er ei n × n enhetsmatrise. T er her tidssteget, en skalar, den bør være tilstrekkelig liten, slik at de utelattet leddene ikke gir så stort bidrag. En tommelfingerregel er: T ≤ 2. Så regner en ut Φ med Φ = I + AS. 3. Og til slutt regner en ut Γ med Γ = SB. 30 0.1 |eig(A)|max (3.32) I Matlab, CST versjon 8.0, så er det c2d som brukes, denne funksjonen tar et LTI-system (ikke matriser for systemet) og metode som input. Et eksempel: A = [0,1; 0,0]; B = [0;1]; C = [1,0]; % C (og D) matrisene må også gis i ss Ts = 0.5; sysc = ss(A,B,C,0); % state space (tilstandsrommodell) sysd = c2d(sysc,Ts); % diskretiseres med tidssteg Ts 3.4.3 Approksimasjon for diskretisering av TRM Vi ser kun på tilfellet der tilstandsrommodellen approksimeres med Eulers forovermetode (EF). EF er enklest å utlede og ikke minst å bruke, sammenlignet med de vanligvis mer presise metodene Eulers bakovermetode og Tustins metode. Fra ligning 2.12 og ligning 2.13 har vi den kontinuerlige tilstandsrommodellen på henholdsvis generell og lineær form ẋ = f (x, u, . . .) ẋ = Ax + Bu + · · · (3.33) (3.34) Som vanlig brukes en notasjon der variabler uten indeks generelt er eller kan være vektorer eller matriser, og variabler eller funksjoner med indeks er skalarer. Dermed har en at (3.33) gjerne kan utvides til f1 (x(k), u(k), . . .) f1 (k) ẋ1 (k) .. .. ẋ(k) = ... = = . = f (k). . ẋn (k) fn (x(k), u(k), . . .) fn (k) Med Eulers forovermetode tilnærmes den deriverte som i (3.12) ẋ(k) ≈ 1 x(k + 1) − x(k) T Dette gir følgende diskretisering av modellen på lineær form (3.34), x(k + 1) = Φ x(k) + Γ u(k) x(k + 1) = x(k) + T ẋ(k) = x(k) + T Ax(k) + T Bu(k) = (I + AT )x(k) + BT u(k) (3.35) Merk at en i (3.35) bruker I, og ikke 1, siden x er vektor her. En ser også at dette tilsvarer rekkeutvikling når en kun har med til og med lineære ledd (S = IT , Φ = I + AS = I + AT og Γ = SB = BT ), det vil si utelater ledd med T 2 og høyere orden. 31 Modellen på generell form (3.33) kan gjerne diskretiseres direkte, x(k + 1) = x(k) + T ẋ(k) der en for ẋ(k) gjerne kan sette funksjonen f (x, u, . . .) fra ligning 3.33. 3.4.4 Linearisering i kombinasjon med en diskretisering En kan ta linearisering i kombinasjon med en diskretisering av TRM. En vanlig situasjon er at en ved å bruke matematisk modellering har fått systemet på form som en generell kontinuerlig tilstandsrommmodell, ligning 2.12. For å bruke Kalman-filter så ønsker en systemet på en form som en diskret lineære tilstandsrommmodell, ligning 2.11. Med Eulers forovermetode, ligning 3.12, får en at x(k + 1) = x(k) + T ẋ(k) ≡ f ∗ (k) Tidsteget er T . f ∗ (k) er her funksjonen som gir tilstand i neste tidssteg, som f (·) (uten *) i generell diskret modell, ligning 2.10 eller ligning 3.1. f ∗ (k) er brukt her for å skille tydelig fra funksjonen for ẋ i ligning 2.12 eller ligning 3.33. Vi kan nå finne matrisene Φ og Γ ut fra lineariseringen gitt i ligningene 3.2 og 3.3 med f ∗ (·) som funksjonen som gir tilstand i neste tidssteg. En får da, når en noen plasser ikke skriver (k), for lineariseringen etter Eulers forovermetode at ∂(x + T ẋ) ∂f ∗ Φ = Φ(k) = (3.36) = ∂x Ap ∂x Ap og ∂f ∗ ∂(x + T ẋ) Γ= (3.37) = ∂u Ap ∂u Ap Ap (merk ikke A som vi ofte ellers bruker for arbeidspunkt) er her arbedspunktet gitt av x og u. Ligningene over er tilsvarende som ligningene i kapittel 3.1. Merk at Eulers forovermetode kun brukes på de tidsderiverte og aldri på de partiellderiverte. 32 4 Systemets egenskaper 4.1 Generell tidrespons Hvis en har gitt systemet ved z-transferfunksjonen så kan en finne (simulere) tidsresponsen for et vilkårlig inngangssignal. Det er ikke nødvendigvis enkelt siden en først må finne z-transformasjonen av inngangssignalet og så den inverse z-transformasjonen av h(z)u(z). Dette kan en ofte løse med tabelloppslag for enkle funksjoner, med generelt er det vanskelig. 4.1.1 Delbrøkoppspalting for beregning av tidsrespons Delbrøkoppspalting må ofte gjøres for å finne tidsresponsen. Dette gjøres som regel i kombinasjon med tabelloppslag. Vi tar her et eksempel med delbrøksoppspalting der systemet er et førsteordens system h(z) = 0.3625z z − 0.8187 og inngangssignalet er et steg, med z-transform u(z) = 1 z−1 Utgangssignalet, i z-planet, er da y(z) = h(z)u(z) 0.3625z az bz = = + (z − 0.8187)(z − 1) z − 0.8187 z − 1 az(z − 1) + bz(z − 0.8187) az 2 − az + bz 2 − 0.8187bz = = (z − 0.8187)(z − 1) (z − 0.8187)(z − 1) 2 (a + b)z − (a + 0.8187b)z = (z − 0.8187)(z − 1) (4.1) som gir a + b = 0 og a + 0.8187b = −0.3625 med løsning a = −1.9994 og b = 1.9994, altså y(z) = z z 0.3625z = 1.9994( − ) (z − 0.8187)(z − 1) z − 1 z − 0.8187 Fra ligning 6.8 har vi at Z{ak } = z/(z − a), og dermed får vi her at y(k) = 1.9994(1k − 0.8187k ) ≈ 2(1 − 0.8187k ). 33 (4.2) 4.1.2 Matlab for beregning av tidsrespons Ofte er en enklere metode å finne ett og ett sample av utgangssignalet ut fra inngangssignalet, dette passer godt for datamaskiner. Dette kan gjøres med simulering i Matlab der slik simulering er gjort klar. En kan bruke funksjonene step og impulse og lsim når argumentet er et system. Mange klasser (objekttyper) kan brukes for å definere et system, i det vil si et lti-objekt3 . For eksempel: sys = tf(0.3625, [1, -0.8187], 0.2); step(sys); Tilsvarende som step har en impulse og den mer generelle lsim funksjonen. Merk at en også har definert funksjoner step og impulse for objekter av andre klasser (typer) enn LTI-objektene i CST, for eksempel iddata-klassen (og noen klasser til) i SIT. Generelt i Matlab må en vite hvordan argumentene til en funksjon brukes (tolkes) for å forstå resultatet riktig, det er spesielt viktig for disse funksjonene som kan ta polynom som argument. For eksempel når en bruker funksjonen sys = tf(teller,nevner,tidssteg) må en gi polynomkoeffisientene riktig, synkende grad i z. Det er alltid lurt å sjekke at det har blitt riktig, i Matlabkommandolinje skrives bare sys for å vise innhold i variabelen. 4.1.3 Impuls- og steg(sprang)respons Dette er systemets respons på noen enkle pådrag som ofte brukes for identifikasjon av systemer. Impulsresponsen er viktig på grunn av sammennhengen med systemets transferfunksjon. Stegresponsen er respons med pådrag som steg. For fysiske system er gjerne steg et relevant pådrag, mens impuls er mer problematisk. Statisk respons er det samme som stasjonær respons, stegresponsen etter lang tid. Eksempel med sprangrespons for andreordenssystem er i del 5.6.1. Hvis pådraget er statisk (konstant) så vil ofte også systemet få en statisk (konstant) tilstand. Med utgangspunkt i (2.11) uten støy v så kan den statiske respons finnes med å sette x(k + 1) = x(k) og u(k) = us , da må en ha xs = (I − Φ)−1 Γus . 4.2 (4.3) Frekvensrespons Utgangspunktet er et LTI system definert ved (impulsresponsen) h(z). Frekvensresponsen er det utgangssignalet en får når inngangssigalet er et sinussig3 Fra CST dokumentasjonen: An LTI object of the type TF, ZPK, SS, or FRD is created whenever you invoke the corresponding constructor function, tf, zpk, ss, or frd. 34 nal med en gitt frekvens (eller vinkelhastighet) ω. En kan vise at med inngangssignalet u(k) = sin(ωkT ) får en frekvensresponsen (utgangssignalet) y(z) = h(z)u(z). (4.4) Amplitude of fase(forskyvning) kan skrives som Amplitudefunksjonen er A(ω) = |hz (ejωT )| Fasefunksjonen er = ∠hz (ejωT ) Φ(ω) der • y(k) = A(ω) sin(ωkT + Φ(ω)) • |hz (ejωT )| er forsterkning eller dempning av amplituden, • ωkT er samme frekvens som inngangssignalet, og • ∠hz (ejωT ) gir faseforskyvning. 4.2.1 Utledningen av frekvensrespons Nå lar en ingangssignalet (pådraget) være et sinussignal med frekvens ω og amplitude U og fase φ = 0, sampletid er T . u(k) = U sin(ωkT ) = U Im(ejωkT ). (4.5) √ der j = −1. Vi skal nå finne utsignalet, det vil si frekvensresponsen. Det er litt regning og det krever at en er (godt) kjent med komplekse tall. y(k) = h(k) ∗ u(k) = ∞ X h(n)U sin[ω(k − n)T ] (konvolusjon) n=0 = U ∞ X jω(k−n)T h(n)Im[e ∞ X ] = U Im[ h(n)ejω(k−n)T ] n=0 n=0 ∞ X = U Im[ h(n)ejωkT e−jωnT ] y(k) = U Im[ n=0 ∞ X h(n)e−jωnT ejωkT ] (4.6) n=0 Merk at h(z) = P∞ n=0 h(n)z −n innsatt z = ejωT blir uttrykket i parentesen. hz (ejωT ) = ∞ X h(n)(ejωT )−n = n=0 ∞ X n=0 35 h(n)e−jωnT . Dermed får vi (4.6) kan skrives y(k) = U Im[hz (ejωT )ejωkT ] (4.7) Nå husker vi litt om multiplikasjon av komplekse tall. Sett at vi har to komplekse tall, z1 og z2 som multipliseres sammen z = z1 z2 . Vi har da at absoluttverdien av z blir |z| = |z1 ||z2 | og vinkelen eller fasen for z blir sum av vinklene for z1 og z2 , dette kan skrives ∠z = ∠z1 + ∠z2 . Skrives tallene med polare koordinater får en z1 = r1 ejθ1 , z2 = r2 ejθ1 , z = z1 z2 = (r1 r2 )ej(θ1 +θ2 ) = rejθ . (4.8) den imaginære delen av dette tallet, (z = z1 z2 ), er absoluttverdien multiplisert med sinus til vinkelen Im(z) = r sin θ = (r1 r2 ) sin(θ1 + θ2 ). (4.9) Det komplekse tallet i hakeparantesen i (4.7) er et produkt av to komplekse tall og resultatet ovenfor kan brukes. Husk at |ejωkT | = 1. Det gir jωT jωT y(k) = U hz (e ) · sin ωkT + ∠hz (e ) . (4.10) Merk at hz (ejωT ) er et komplekst tall uavhengig av k, gitt av transferfunksjonen, sampletida4 T , og frekvensen ω. Ut fra dette ser en at et sinussignal på inngangen gir et sinussignal på utgangen • |hz (ejωT )| er forsterkning eller dempning av amplituden • ωkT er samme frekvens som inngangssignalet • ∠hz (ejωT ) gir faseforskyvning Altså gir et lineært tidsinvariant (LTI) system en frekvensrespons som er en sinus med samme frekvens som inngangen, med med ei forsterkning eller dempning og med ei faseforskyvning som begge er gitt av transferfunksjonen h(z) innsatt z = ejωT , altså hz (ejωT ) der ω er inngangsfrekvensen. Amplitudefunksjonen er A(ω) = |hz (ejωT )| Fasefunksjonen er = ∠hz (ejωT ) Φ(ω) y(k) er rimeligvis avhengig av sampletida, og det er jo også u(k). Samplingsfrekvensen er fs = 1/T , en kan også velge å gi denne på samme måte som frekvensen for inngagssignalet, altså med en vinkelhastighet ω. Da har er ωs = 2π/T og tilhørende Nyquist-frekvens ωN = ωs /2 = π/T . Rimeligvis bør inngangssignalets frekvens være mindre enn Nyquist-frekvensen, altså ω < ωN = π/T eller T < π/ω. 4 Merk at hvis det diskrete systemet er funnet ved å diskretisere et kontinuerlig system så er også h(z) avhengig av sampletida T . 36 4.3 Stabilitet Stabilitetsegenskapen for et system kan defineres ut fra dets impulsrespons Asymptotisk stabilt system har at impulsresponsen dør ut, går mot null. For et diskret system har en limk→∞ yδ (k) = 0. En kan da vise at alle polene for h(z) er innenfor enhetssirkelen (ingen på). For en diskret tilstandsrommodell så må egenverdiene for matrisa Φ være innenfor enhetssirkelen. For et kontinuerlig system har en limy→∞ yδ (t) = 0. En kan da vise at alle polene for h(s) er i venstre halvplan. Marginalt stabilt system har at impulsresponsen fortsetter med samme størrelse, går mot en konstant (amplitude) ulik null men ikke uendelig. For et diskret system kan en da ha en eller flere (men ingen multiple) poler for h(z) på enhetssirkelen. For et kontinerlig system kan en da ha en eller flere (men ingen multiple) poler for h(s) på den imaginære aksen. Ustabilt system har at impulsresponsen går mot uendelig, i praksis krasjer mot ei fysisk grense. For et diskret system har en da minst en pol for h(z) utenfor enhetssirkelen eller multiple poler på enhetssirkelen. For et kontinuerlig system har en da minst en pol for h(s) i høyre halvplan eller multiple poler på den imaginære aksen. Matlab er velegnet for stabilitetsanalyse. 37 5 Noen viktige system Dette kapittelet analyserer noen enkle men viktige systemer. Vi kan her referere til figur 4 side 9 for å vise (de kontinuerlige og diskrete) signalene i forhold til (de kontinuerlige og diskrete) systemene. 5.1 Forsterker u(t) - K u(k) K I y(t)- - y(k) For en forsterker, blokkdiagram er skissert over, har en at den tegnes på samme måte i både diskret og kontinuerlig tilfelle. Forsterkning med en faktor K kan tegnes enten med en boks eller med en I. Transferfunksjonen er h(s) = K, h(z) = K (5.1) En helt enkel forstekning (eller dempning) av signalet. Ingen poler, ingen nullpunkt og ingen dynamikk. 5.2 Tidsforskjøvet signal u(t) - e−τ s y(t)- u(k) - z −n y(k)- Skissen ovenfor viser en forsinkelse med τ for det kontinuerlige systemet til venstre og en forsinkelse med n tidssteg for det diskrete systemet til høyre. Vi skal her kun se på det diskrete systemet. Merk at u(k) her er et vilkårlig inngangssignal med z-transformasjonen u(z). I det diskrete tidsdomenet gir et system med en tidsforsinkelse på n tidssteg y(k) = u(k − n). Negativ n her svarer til å forskyve signalet fram i tid. I praksis kan dette siste skje hvis tidsaksen erstattes med for eksempel en romlig akse eller hvis signalet er tatt opp på forhånd og avspilles ved bruk. 38 Vi skal nå finne z-transformasjonen av et tidsforskjøvet signal. y(z) = Z{y(k)} = Z{u(k − n)} ∞ X = u(k − n)z −k |m = k − n = k=0 ∞ X u(m)z −(m+n) m=−n = z −n ∞ X u(m)z −m (5.2) m=−n Merk at summen i (5.2) ikke er lik Z{u(k)} = u(z) siden summen ikke starter med leddet for m = 0. Hvis nå n ≥ 0, en forsinkelse, og vi antar (som vanlig) at u(m) = 0 for m < 0. Da får vi y(z) = Z{u(k − n)} = z −n ∞ X u(m)z −m = z −n u(z). (5.3) m=0 Hvis nå n < 0, altså en tidsforskyning framover, og vi har (som her) ensidig z-transformasjon må vi anta at de første (−n) sample av u(k) er null. Dette for å unngå at y(k), når samplene til u(k) skyves fram, ikke får verdier for negative indekser av k. Da får vi y(z) = Z{u(k − n)} = z −n ∞ X u(m)z −m = z −n u(z). (5.4) m=0 Altså, med de forutsetninger som er gjort, så får vi alltid (for alle n) Z{u(k − n)} = z −n Z{u(k)}. (5.5) z-transferfunksjonen for et system som forsinker inngangssiganel med n tidssteg, merk at hvis n < 0 så skyver systemet signalet framover, er da h(z) = y(z) = Z{u(k − n)}/Z{u(k)} = z −n . u(z) (5.6) z-transferfunksjonen for et diskret system med tidsforsinkelse på 1 eller n tidssteg er h(z) = z −1 , h(z) = z −n . (5.7) 39 Ki u(t) - Ki s y(t)- Q Q Q - - u(k) - T Ki z−1 T Ki + - z −1 I - y(k)- - 6 Figur 9: Blokkdiagram av en integrator med forsterkning Ki . Det kontinuerlige tilfellet øverst kan tegnes på to måter, symbolet brukt til høyre betyr det samme som boksen med 1/s inni. Forsterkning, med faktor Ki , tas ofte med sammen med integratoren. Det diskrete tilfellet nederst er en eksakt diskretisering, med nullteordens sample- og holdeelement, av det kontinuerlie systemet. 5.3 Integrator En integrator har den enkle differensialligningen ẏ = Ki u (5.8) Når en tar Laplace-transformasjonen av denne og ordner litt så får en stransferfunksjonen Ki y(s) = (5.9) h(s) = u(s) s 5.3.1 Eksakt diskretisering av transferfunksjon Eksakt diskretisering med nullteordens holdeelement gir med utgangspunkt i (3.11) n o h(s) h(z) = (1 − z −1 )Z L−1 { } |t=kT . s o n Ki h(z) = (1 − z −1 )Z L−1 { 2 } |t=kT . s ∞ X −1 −1 h(z) = Ki (1 − z )Z{kT } = T Ki (1 − z ) kz −k k=0 For å finne Z{k} brukes (6.9) med a = 1 som gir h(z) = T Ki (1 − z −1 ) z 1 = T Ki (1 − z −1 ) 2 (z − 1) (z − 1)(1 − z −1 ) 40 Dette gir T Ki T Ki z −1 = (5.10) z−1 1 − z −1 Merk at Eulers forovermetode her gir samme resultat mens EB og Tustin gir noen andre resultat. Felles for alle er likevel en pol i 1. h(z) = 5.3.2 Differensligning fra z-transferfunksjonen Ut fra z-transferfunksjonen h(z) = y(z) T Ki = z−1 u(z) får en (z − 1)y(z) = T Ki u(z) zy(z) = y(z) + T Ki u(z) ↓ Z −1 y(k + 1) = y(k) + T Ki u(k) (5.11) 5.3.3 Differensligning ved differensialapproksimasjonen Ovenfor har en brukt eksakt diskretisering og gått veien like til differensligningen. Ved å bruke differensialapproksimasjonen gitt av Eulers forovermetode (3.12) 1 ẏ(k) ≈ y(k + 1) − y(k) . T kan en gjøre dette mye enklere. En kan bruke dette direkte og får da ved å sette dette inn i differensialligningen (5.8) y(k + 1) = y(k) + T Ki u(k) (5.12) eller en kan bruke substitusjonsregel (3.20) i s-transferfunksjonen. Uansett, så er det basert på en approksimasjon, som for integratoren tilfeldigvis gir samme resultat som eksakt diskretisering. 5.3.4 z-transferfunksjonen fra differensligningen Har en gitt differensligningen (5.12) så kan en finne z-transferfunksjonen ved å ta z-transformasjonen av hvert enkelt ledd og så ordne resultatet på en 41 hensiktsmessig måte. y(k + 1) = y(k) + T Ki u(k) ↓ Z zy(z) = y(z) + T Ki u(z) (z − 1)y(z) = T Ki u(z) T Ki y(z) = u(z) = h(z)u(z) z−1 T Ki T Ki z −1 y(z) = = h(z) = . u(z) z−1 1 − z −1 5.4 (5.13) Dobbelintegrator En dobbelintegrator har den enkle differensialligningen ÿ = u (5.14) En kan sette denne opp som en lineær, kontinuerlig tilstandsrommodell ved å bruke to tilstander. En setter x1 = y og x2 = x˙1 = ẏ. Da har en x˙2 = ÿ = u. Tilstandsrommodellen er 0 ẋ1 0 1 ẋ = = x+ u ẋ2 0 0 1 y= 1 0 x Over er systemet på form som i kapittel 2.6, (2.13), der matrisene er 0 1 0 A= , B= , D= 1 0 , E = 0. 0 0 1 Vi skal nå diskretisere systemet slik som utledet i kapittel 3.4. Sampletida er T . Vi bruker formelen for den inverse av 2 × 2 matriser (6.31) der det trengst. Utgangspunktet for å finne Φ er (3.30) Φ = L−1 (sI − A)−1 t=T ( −1 ) s −1 = L−1 0 s t=T 1/s 1/s2 = L−1 0 1/s t=T 1 t 1 T = = (5.15) 0 1 t=T 0 1 42 Utgangspunktet for å finne Γ er (3.31) 1 o Γ = L (sI − A) B s t=T 1/s 1/s2 1 0 −1 = L 0 1/s s 1 t=T 2 3 1/s T /2 = = L−1 2 1/s T t=T −1 n −1 Dette gir altså den diskrete tilstandsrommodellen med matrisene 2 1 T T /2 Φ= , Γ= , D = [1, 0], E = 0. 0 1 T (5.16) (5.17) Transferfunksjonen h(z) kan nå finnes som utledet i kapittel 3.2. Vi finner da at z 0 1 T z − 1 −T zI − Φ = − = . 0 z 0 1 0 z−1 −1 1 z−1 T z − 1 −T −1 = (5.18) (zI − Φ) = 0 z−1 0 z−1 (z − 1)2 og h(z) = D(zI − Φ)−1 Γ + E 2 1 z−1 T T /2 +0 = [1, 0] 2 0 z−1 T (z − 1) 1 (z − 1)T 2 /2 + T 2 = [1, 0] (z − 1)T (z − 1)2 1 T 2 (z + 1) 2 2 2 = (zT /2 − T /2 + T ) = (z − 1)2 2(z − 1)2 T2 z −1 + z −2 = . 2 1 − 2z −1 + z −2 (5.19) Differensligningen er da lett å finne y(k) = 5.5 T 2 [u(k − 1) + u(k − 2)] + 2y(k − 1) − y(k − 2). 2 (5.20) Førsteordens system Differensialligningen for et førsteordens system skrives ofte som ẏ(t) = K 1 1 u(t) − y(t) = Ku(t) − y(t) . T1 T1 T1 43 (5.21) u u - - y- K T1 s+1 t(z) z−a y- u Q K +1/T1 ẏ Q Q + I I -6 u(n)- t(z) - + y(n + 1)- 6 z −1 y- y(n) - a J Figur 10: Blokkdiagram av et førsteordens system. Både blokkdiagram for kontinuerlig system (øverst) og blokkdiagram for diskret system (nederst) kan tegnes på flere måter. Når en tar Laplace-transformasjonen av dette og ordner litt får en s-transferfunksjonen K/T1 K = (5.22) h(s) = T1 s + 1 s + 1/T1 5.5.1 Eksakt diskretisering Vi har gitt transferfunksjonen for et førsteordens system h(s) = y(s) K K/T1 = = u(s) T1 s + 1 s + 1/T1 (5.23) Systemet skal diskretiseres. Det er nullteordens sample- og holdeelement på inngangen. Med å bruke (3.11) får en n h(z) = (1 − z −1 )Z L−1 o K/T1 . (s + 1/T1 )s t=kT (5.24) Vi setter c = 1/T1 og får videre, vi bruker (6.26), L−1 K/T1 c = KL−1 = K(1 − e−ct ) = K(1 − e−t/T1 ) (5.25) (s + 1/T1 )s (s + c)s 44 sampler med å sette inn t = kT n o o n K/T1 −t/T1 Z L−1 ) = Z K(1 − e t=kT (s + 1/T1 )s t=kT ∞ ∞ ∞ X X X = K (1 − e−kT /T1 )z −k = K z −k − e−kT /T1 z −k k=0 k=0 k=0 z z 1 1 = K − − = K 1 − z −1 1 − z −1 e−T /T1 z − 1 z − e−T /T1 Kz(1 − e−T /T1 ) z(z − e−T /T1 ) − z(z − 1) = . (5.26) = K (z − 1)(z − e−T /T1 ) (z − 1)(z − e−T /T1 ) Ut fra (5.24) og (5.26) får vi Kz(1 − e−T /T1 ) z − 1 Kz(1 − e−T /T1 ) = (z − 1)(z − e−T /T1 ) z (z − 1)(z − e−T /T1 ) 1 − e−T /T1 K(1 − e−T /T1 )z −1 = K (5.27) = z − e−T /T1 1 − e−T /T1 z −1 b bz −1 = . (5.28) h(z) = −1 1 − az z−a h(z) = (1 − z −1 ) Der en i (5.28) har satt b = K(1 − e−T /T1 ) = K(1 − a) og a = e−T /T1 . Eksakt diskretisering er nå gjort med å vise overgangen fra den kontinuerlige transferfunksjonen (5.22) til den diskrete transferfunksjonen (5.27). Orden til systemet er rimeligvis 1, det er det samme som antall poler (ulik 0) i systemet. For det diskrete systemet (5.28) er det en pol på den reelle aksen i 0 < a = e−T /T1 < 1 (siden T > 0 og T1 > 0), grensetilfellet med pol i 1 svarer til integrator, og grensetilfellet med pol i 0 svarer til en enkel forsinkelse. Telleren trenger ikke være en konstant for at systemet skal være et førsteordens system, en kan gjerne ha et tellerpolynom. I det diskrete tilfellet har en da generelt t(z) , 0 < a < 1. z−a Tellerpolynomet er ofte enkelt, og en skal være klar over at dette også i stor grad påvirker systemet. Tellerpolynomet svarer til et FIR-filter. Systemet kan implementeres i kaskade med utgangen av tellerpolynomet inn på et helt enkelt førsteordenssystem gjerne kun med en konstant over brøkstreken. h(z) = 5.5.2 Eksempel med diskretisering i Matlab Diskretisering med Matlab fungerer godt når en har tall for koeffisientene i teller og nevnerpolynomene for h(s). Vi har nå samme transferfunksjon og gitt verdiene K = 2, T1 = 3 [s] og T = 0.2 [s]. Det gir da a = e−T /T1 = e−1/15 ≈ 0.9355 og b = K(1 − e−T /T1 ) ≈ 0.1290. Dermed vil en eksakt diskretisering av h(s) = y(s) K 2 = = u(s) T1 s + 1 3s + 1 45 (5.29) med resultatet fra (5.28) være h(z) = b 0.1290 0.1290z −1 = = . z−a z − 0.9355 1 − 0.9355z −1 (5.30) I Matlab kan en finne dette med c2d-funksjonen i Control System Toolbox (CST). sysc = tf(2,[3,1]); sysd = c2d(sysc,0.2,’zoh’); og kan vise detaljene i objektet med get(sysd). Som alltid når en bruker polynomer i Matlab må en være helt klar over hvilke ledd de ulike koeffisienter hører til. 5.5.3 Eksakt differensligning med tall En kan finne den eksakte differensligningen ved invers z-transformasjon av z-transferfunksjonen (5.27). 0.1290z −1 y(z) = u(z) 1 − 0.9355z −1 y(z)(1 − 0.9355z −1 ) = u(z)0.1290z −1 ↓ Z −1 y(k) − 0.9355y(k − 1) = 0.1290u(k − 1) y(k) = 0.1290u(k − 1) + 0.9355y(k − 1) h(z) = 5.5.4 (5.31) (5.32) (5.33) (5.34) Diskretisering ved differensialapproksimasjon Ovenfor har en brukt eksakt diskretisering for å finne z-transferfunksjonen. Ved å bruke differensialapproksimasjonen gitt av Eulers forovermetode (3.12) kan en gjøre det samme. En kan starte med differensialligningen (5.21) direkte eller finne den med en invers Laplace-transform av s-transferfunksjonen (5.22) y(s) K = u(s) T1 s + 1 (T1 s + 1)y(s) = Ku(s) ↓ L−1 , T1 ẏ(t) + y(t) = Ku(t) h(s) = 46 (5.35) (5.36) yt (0) = 0 (5.37) Differensialligningen diskretiseres ved å sette t = kT , og å bruke differensialapproksimasjonen gitt av Eulers forovermetode (3.12) T1 y(k + 1) − y(k) + y(k) = Ku(k) T T1 T1 y(k + 1) + (1 − )y(k) = Ku(k) T T T T y(k + 1) + ( − 1)y(k) = Ku(k) T1 T1 T T y(k + 1) = Ku(k) + (1 − )y(k) T1 T1 (5.38) Dette gir ganske greitt differensligningen (5.38). Vi kan gjerne også ta z-transformasjon av dette og får T K T T T1 zy(z)+( −1)y(z) = Ku(z)y(z) = T1 T1 z − (1 − T ) T1 u(z) = 1− T Kz −1 T1 u(z) (1 − TT1 )z −1 og dermed z-transferfunksjonen h(z) = T Kz −1 y(z) T1 = . u(z) 1 − (1 − TT1 )z −1 (5.39) z-transferfunksjonen med EF (5.39) er nå ikke helt lik den eksakte z-transferfunksjonen (5.38). Bruker igjen verdiene som i Matlab eksempelet over, K = 2, T1 = 3 [s] og T = 0.2 [s]. Dermed blir differensligningen (5.39) y(k + 1) = 2 14 u(k) + y(k) = 0.1333u(k) + 0.9333y(k) 15 15 og z-transferfunksjonen (5.39) blir h(z) = 5.5.5 1 2 −1 z 15 − 14 z −1 15 = 0.1333z −1 . 1 − 0.9333z −1 Eksempel med substitusjon Vi tar et enkelt eksempel med substitusjon ut fra s-transferfunksjonen (5.22) og bruker Eulers forovermetode (3.20). Transferfunksjonen h(s) = y(s) K = u(s) T1 s + 1 47 (5.40) u - Kω02 2 0 +ω0 s2 +2ξω y- 2 Q u Kω0 ÿ - QQ + Q Q ẏ Q + I -6 + 6 y- 2ξω0 J ω02 J Figur 11: Blokkdiagram av et kontinuerlig andreordens system. skal nå diskretiseres med EF-substitusjon K z−1 T T1 s + 1 s= T T T K Kz −1 K T1 T1 = = T1 (z−1) z − 1 + TT1 1 − (1 − TT1 )z −1 +1 T h(z) = h(s)s= z−1 = = (5.41) Dette er jo ikke uventet det samme som (5.39) og når vi setter inn verdiene K = 2, T1 = 3 [s] og T = 0.2 [s] får vi selvsagt det samme resultat som i forrige del. 5.6 Andreordens system Andreordens system vil generelt gi svingninger, systemet har ofte en egenfrekvens som vil føre til forsterkning av et påtrykt sinussignal med samme frekvens. Det er derfor viktig med styring av inngangsignalet til et andreordenssystem. Tellerpolynomet vil selvsagt også være helt avgjørende for responsen, men en kan da dele systemet i to delsystemer i kaskade og dermed analysere de hver for seg. Sprangresponsen vil som regel gi innsvingninger mot en ny stasjonærverdi, eller hvis det er god demping, innsvingning uten oversving, indikasjonen på at det er andre og ikke førsteordenssystem er at andreordenssystem starter sprangresponsen mer forsiktig (flatere). s-transferfunksjonen skrives ofte på følgende form h(s) = Kω02 , s2 + 2ξω0 s + ω02 ω0 > 0, |ξ| < 1, (0 < ξ < 1). (5.42) ξ og ω0 og K er reelle tall. For at en skal få komplekskonjungerte poler i venstre halvplan (stabilt system) så må 0 < ξω0 og en velger da 0 < ξ og 0 < ω0 . Hvis |ξ| ≥ 1 så kan systemet skrives som en kaskade av to førsteordenssystem, og 48 s1 6 Im s J J ω J 0 J J J J α J J s2 s β φ, ξ = − cos φ Re - Figur 12: Skisse som viser sammenheng for ulike parametre som kan brukes for å beskrive et andreordens system. Parametrene inngår i ulike måte å angi de to komplekskonjungerte polene s1 og s2 på. analyseres enklest på den måten. Slik er det også hvis en i stedet for ω02 i nevneren skulle ha et negativt tall. En kan faktorisere nevnerpolynomet i transferfunksjonen h(s) = Kω02 p p (s + ω0 ξ − ω0 ξ 2 − 1)(s + ω0 ξ + ω0 ξ 2 − 1) (5.43) Kω02 (5.44) (s − s1 )(s − s2 ) der p s1 og s2 er ppolene i s-planet. Vi ser at disse er komplekskonjungerte. Siden ξ 2 − 1 = j 1 − ξ 2 kan polene nå skrives p p s1 = ω0 (−ξ + j 1 − ξ 2 ), s2 = ω0 (−ξ − j 1 − ξ 2 ). p med cos φ = −ξ, og da er sin φ = ± 1 − ξ 2 , kan vi skrive h(s) = s1 = ω0 ejφ , s2 = ω0 e−jφ . (5.45) Mer vanlig er det likevel å sette α = −ω0 ξ = ω0 cos φ, β = ω0 p 1 − ξ 2 = ω0 sin φ (5.46) Her ser en at α2 + β 2 = ω02 . Videre får en s1,2 = ω0 (cos φ ± j sin φ), 49 s1,2 = α ± jβ. (5.47) For å ha stabilt system med polene i venstre halvplan så må altså cos φ < 0 og dermed ξ > 0. En skisse som viser de to komplekskonjungerte polene i (venstre halvdel) av det komplekse s-planet er god for å vise sammenhengene mellom de ulike parametrene. ω0 er polenes avstand fra origo, α < 0 er reell del, β >p0 er imaginær del, og π/2 < φ < π er vinkel for pol, cos φ = −ξ og sin φ = 1 − ξ 2 . En fullstendig analyse av andreordenssystem tas ikke her. En kan bare vite at symbolene har følgende betydning (når polene er kompleks konjungerte par i venstre halvplan) • ω0 betegnes som udempet resonansfrekvens, det vil si den svingefrekvens en ville fått hvis dempingen α, eller ξ, var lik null. Merk at ω0 her ikke er det samme som knekkfrekvensen. • α er den absolutte dempningen. • ξ betegnes relativ dempingsfaktor. Den absolutte dempningen, α, angis da relativt til ω0 . ξ nær 0 er lite demping, sprangrespons vil da bli en svakt dempet sinuskurve, mens ξ nær 1 gir mye dempning (nesten som en førsteordens system). • φ er vinkel for pol og er mellom π/2 og π. Fra ligning 5.54 ser en at dette gir en faseforskyvning av sinusen i sprangresponsen. Med eksakt diskretisering og nullteordens holdeelement får vi i henhold til (3.3.6) de diskrete polene. z1,2 = es1,2 T = e(α±jβ)T = eαT e±jβT z1,2 = eαT cos(βT ) ± j sin(βT ) 5.6.1 (5.48) Sprangrespons for andreordens system Vi setter K = 1 i systemet i (5.44) og bruker α og β som i ligning 5.46, en har da ω02 = α2 + β 2 . Poler er som ligning 5.47. Sprang med størrelse 1 har Laplace-transformasjonen 1/s og vi får da at Laplace-transformasjonen for sprangresponsen blir y(s) = h(s)u(s) = α2 + β 2 h(s) = . s s (s − α − jβ) (s − α + jβ) (5.49) Her kan en ta delbrøkoppdeling og invers Laplace-transformasjon for å finne y(t). Det er noe arbeid, men ganske så rett fram, gjerne en god øvelse. Alternativt kan en se om en kan få hjelp av Symbolic Toolbox i Matlab, en må da gjerne prøve seg litt fram for å finne en lesbar og forståelig form. En skal 50 likevel være rimelig stø i manupulasjon av de matematiske funksjonene for å komme fram til et hensiktsmessig uttrykk. Jeg fant at følgende virket sånn noenlunde clear all j = sqrt(-1); syms s alpha beta s1 = alpha+j*beta; s2 = alpha-j*beta; ys = (alpha^2+beta^2)/(s*(s-s1)*(s-s2)); yt = ilaplace(ys); t1 = latex(ys) t2 = latex(simplify(yt)) Med R2014a fikk jeg da (med litt redigering) for t2: et (α−β j) (α2 + β 2 ) j et (α+β j) (α2 + β 2 ) j α2 + β 2 + − (α − β j) (α + β j) 2 β (α − β j) 2 β (α + β j) Med R2011a fikk jeg da (med litt redigering) for t2: − 1 − 2 β − j α et (α−β j) + j α et (α+β j) + β et (α−β j) + β et (α+β j) 2β og litt mer redigering gir 1 j α t (α+β j) 1− e − et (α−β j) − et (α−β j) + et (α+β j) 2β 2 og enda litt mer redigering gir jβt −jβt αt 1 jβt −jβt αt α 1 1 + e e −e − e e +e β 2j 2 = 1 + eαt α α sin(βt) − eαt cos(βt) = 1 − eαt cos(βt) − sin(βt) β β Resultatet for y(t) blir altså y(t) = 1 − eαt cos (βt) − α sin (βt) , β 0 ≤ t. (5.50) Første ledd er egentlig et enhetssprang, u(t), men her kan det settes til 1 siden u(t) = 1 for 0 ≤ t. Siden α < 0, har en at eαt går mot 0 når t vokser, og dermed er siste ledd en dempa sinus. Det at uttrykket inni parentesen er en (faseforskjøvet) sinus trenger kanskje litt forklaring. 51 En kan vise, kanskje enklest ved å uttrykke sinus og kosinusfunksjonene ved hjelp av eksponetialfunksjonen, at a sin x + b cos x = r sin(x + θ), r= √ a2 + b2 , tan θ = −b . a (5.51) Med a = −α/β og b = 1 og x = tβ blir (5.51) det samme som uttrykket i parentesen i (5.50). En får da r2 = 1 + r = p ξ2 1 ω02 ξ 2 = 1 + = 2 2 2 ω0 (1 − ξ ) 1−ξ 1 − ξ2 1 1 − ξ2 −b −1 β ω0 sin φ tan θ = = = = = tan φ a −α/β α ω0 cos φ θ = π−φ (5.52) (5.53) En må merke seg at når φ > π/2 (som her) så får en θ = π − φ og ikke bare θ = φ. Dermed y(t) = 1 − p eαt 1 − ξ2 sin βt + π − φ , 0 ≤ t. (5.54) Nå kan merke seg at yt (0) = 0 både for ligning 5.50 og ligning 5.54. En kan videre vise, kanskje enklest med utganspunkt i ligning 5.50 at y 0 (t) = ω02 αt e sin(βt), β 0 ≤ t. (5.55) Altså er y 0 (t) = 0 for t = kπ/β, k = 0, 1, 2, . . . og skifter også fortegn for disse t-verdiene. Men, spesielt hvis −α er (mye) større enn β så går eksponetialfaktoren så raskt mot null at den deriverte i praksis blir tilnærmet lik null før svingninger i y(t) kan observeres. Ut fra ligningene over kan en nå se hvordan sprangresponsen blir for ulike parametervalg. 52 Figur 13: Illustrasjon for regning med komplekse tall. 6 6.1 Litt matematikk Litt regning med komplekse tall Grunnleggende regning med komplekse tall forutsettes kjent. Det vil si representasjon med reell og imaginær del og med polar representasjon i det komplekse plan. Også de fire regnearter, polynomer og eksponesialfunksjonen med en del av egenskapene antas å være delvis kjent. Vi vil her bare forklare og illustrere noen egenskaper som brukes i dette dokumentet. Se på figur 13. Her her en markert et komplekst tall z på enhetssirkelen det vil si |z| = 1, z = ejωT = cos(ωT ) + j sin(ωT ). (6.1) Vi er nå interessert i absoluttverdien av z1 = z + 1. Vi legger merke til at de fire punkta: 0, z, z1 og 1 danner et parallellogram der alle sidene er like lange, |z1 | er lengden av den lengste (når ωT ≤ π/2) diagonalen i dette parallellogrammet, og at punktet der denne diagonalen skjærer enhetssirkelen dermed er z3 = ejωT /2 , merk at z3 ikke er midt på diagonalen. Multipliseres z1 med den konjungerte til z3 , z3∗ = e−jωT /2 , så får vi et reelt tall med samme absoluttverdi som z1 . |z + 1| = |z1 | = z1 z3∗ = (ejωT + 1)e−jωT /2 = ejωT /2 + e−jωT /2 = 2 cos(ωT /2). (6.2) 53 Ser vi på tallet z2 = z − 1 og multipliserer også dette med z3∗ = e−jωT /2 så får vi nå z2 z3∗ = (ejωT − 1)e−jωT /2 = ejωT /2 − e−jωT /2 = 2j sin(ωT /2). (6.3) Altså et rent imaginært tall. Dette viser at z2 og z3 står vinkelrett på hverandre, og at vinkel mellom z2 og imaginær akse er den samme som vinkel mellom z2 og reell akse, altså γ = ωT /2. Det komplekse tallet z4 er forholdet mellom z2 og z1 , vi har z4 = z2 z2 z3∗ 2j sin(ωT /2) = = = j tan(ωT /2) = j tan γ. ∗ z1 z1 z3 2 cos(ωT /2) (6.4) Altså med z = ejωT har en z−1 = j tan(ωT /2) = j tan γ. z+1 6.2 (6.5) z-transformasjonen Se gjerne Wikipedia sin artikkel, Z-transform, som også har en ganske så fullstendig tabell med transformasjonspar. For et diskret signal y(k) der k = 0, 1, 2, . . . kan en finne z-transformasjonen av signalet som ∞ X Z{y(k)} = y(z) = y(k)z −k . (6.6) k=0 Merk at vi har den ensidige z-transformasjonen her, det er oftest den en bruker i reguleringsteknikken da denne svarer til at en regner signalene lik null for negative indekser. 6.2.1 Eksempel med y(k) = ak Vi tar et nyttig eksempel her. Når a = 1 blir dette enhetssprang, u(k), og litt spesielt siden en har per definisjon at 00 = 1 så er dette impuls når a = 0. y(k) = ak , y(z) = Z{y(k)} = k = 0, 1, 2, . . . ∞ X k=0 ak z −k = (6.7) ∞ X a ( )k . z k=0 | az | Her må vi ha < 1 for å få konvergens, altsåP ROC for |z| > |a|. Da kan vi 1 k bruke formel for konvergent geometrisk rekke, ( ∞ |a| < 1). k=0 a = 1−a , y(z) = 1 1− a z = 1 z = . −1 1 − az z−a 54 (6.8) 6.2.2 Eksempel med y(k) = kak y(k) = kak , k = 0, 1, 2, . . . Fra forrige eksempel har vi Z{ak } = ∞ X ak z −k = k=0 z z−a Vi deriverer med hensyn på z, de to høgre uttrykkene må fortsatt være like hverandre ∞ X −a ak (−k)z −k−1 = (z − a)2 k=0 Ganger med −z på begge sider og får ∞ X k −k ka z k=0 az −1 az = = (z − a)2 (1 − az −1 )2 Vi ser at dette ut fra definisjonen av z-transformen gir følgende formel ∞ X Z kak = kak z −k = k=0 az −1 az = . (z − a)2 (1 − az −1 )2 (6.9) Her må vi ha ROC som i forrige eksempel siden det er det som er utgangspunktet og ingen nye restriksjoner er lagt til, altså ROC for |z| > |a|. 6.2.3 Noen tranformasjonspar Her er noen nyttige z-transformasjonspar, for en mer fullstendig tabell se Z-transform. En må være oppmerksom på konvergensområdet, Region Of Convergence eller ROC, når en finner z-transformasjonen. For Z{u(k)} bør en ha med at ROC : |z| > 1. Z{δ(k)} = 1, 1 z = Z{u(k)} = z−1 1 − z −1 δ(k) = 0 k 6= 0 1 k=0 der u(k) = 0 k<0 1 k≥0 (6.10) (6.11) Fra kapittel 5.2 fant vi z-transformasjon for en forsinkelse, h(z) = z −n . Bruker en der en enhetspuls som inngangssignal, altså δ(k) med Z{δ(k)} = 1, får en da at utgangssignalet blir δ(k − n) med z-transformen h(z)Z{δ(k)} Z{δ(k − n)} = z −n 55 (6.12) For ak og kak som ble utledet like foran her, så multipliserer vi med enhetsspranget for å presisere at sekvensene er 0 for k < 0, altså Z{ak u(k)} = 1 1− Z{kak u(k)} = 6.2.4 a z = 1 z . = −1 1 − az z−a az az −1 = . (z − a)2 (1 − az −1 )2 (6.13) (6.14) Sluttverditeoremet Gitt sekvensen x(k) der x(k) = xs , ∀ k ≥ M , der M < ∞ er et endelig heltall. Subscript s i xs står for stasjonær. Vi antar også at x(k) = 0, ∀ k < 0, slik vi gjør for ensidig z-transformasjon (kausale signal). z-transformasjonen av signalet er da ut fra definisjonen Z{x(k)} = x(z) = ∞ X x(k)z −k . (6.15) k=0 Merk at vi har ROC: |z| > 1 for kausal uendelig lang sekvens, her x(k). Vi definerer nå en ny sekvens: g(k) = x(k)−x(k −1), her får en da g(0) = x(0), g(1) = x(1) − x(0), g(2) = x(2) − x(1) og g(k) = 0, ∀ k > M . Siste element ulik null er da g(M ) = x(M ) − x(M − 1). g(k) har da endelig lengde og g(z) kan defineres for alle z, har ROC ∀z. En får da gz (1) = x(M ) = xs , altså stasjonærverdien for signalet x(k). Summen av de (k + 1) første leddene i sekvensen g(·) er da k X g(n) = x(0) + (x(1) − x(0)) + · · · + (x(k) − x(k − 1)) = x(k). (6.16) n=0 Og dermed får vi lim x(k) = lim k→∞ k→∞ k X n=0 g(n) = M X g(n) (6.17) n=0 siden g(k) = 0, ∀ k > M . For n = 0, 1, . . . , M er det ingen problemer med 1n = 11−n = 1 og heller ikke med limz→1 z n = limz→1 z 1−n = 1 og vi kan da sette, lim x(k) = k→∞ M X n=0 g(n) = M X M X 1−n g(n) · 1 = g(n) lim z n=0 z→1 n=0 (6.18) Bytter rekkefølge for grenseverdi og sum, og tar en faktor z utenfor summen og får M X lim x(k) = lim z g(n)z −n = lim z g(z) (6.19) k→∞ z→1 n=0 56 z→1 Siden g(k) = x(k) − x(k − 1) har vi z g(z) = z x(z) − z −1 x(z) = (z − 1) x(z) (6.20) merk at dette ikke gjelder for z = 1 men det gjelder for alle |z| > 1. Vi får da sluttverditeoremet med å kombinere de to siste ligningene lim x(k) = lim (z − 1) x(z). 6.3 (6.21) z→1 k→∞ Laplace-transformasjonen For mer enn definisjon og et eksempel av Laplace-transformasjonen se ei lærebok i matematikk eller Wikipedia sin artikkel Laplace transform. Der er det også mer fullstendige tabeller over transformasjonspar. Laplace-transformasjonen er definert som: Z ∞ L{f (t)} = F (s) = f (t)e−st dt (6.22) 0 6.3.1 Eksempel Vi tar nå et relevant eksempel på hvordan en kan finne Laplace-transformasjonen for en funksjon ut fra definisjonen Z ∞ −ct (1 − e−ct )e−st dt (6.23) L{1 − e } = 0 Z ∞ Z ∞ −st = 1e dt − e−ct e−st dt (6.24) 0 Z0 ∞ Z ∞ = e−st dt − e−(c+s)t dt 0 0 ↓ s > 0, s > −c h 1 i∞ h i∞ 1 −st −(c+s)t = − e − − e s c+s 0 0 1 c + s − s c 1 L{1 − e−ct } = − = = s c+s s(c + s) s(s + c) (6.25) (6.26) Ovenfor har vi egentlig funnet (utledet) to transformasjonspar, L{1} = 1s og 1 L{e−ct } = s+c . Laplace-transformasjonspar vil være oppgitt ved en eksamen, men de lineære egenskapene ved transformasjonen må ofte brukes hvis en skal transformere en bestemt funksjon. 6.3.2 Noen tranformasjonspar 1 L{1} = , s L{t} = 1 s2 og generelt L{tn−1 } = 57 (n − 1)! sn (6.27) L eat = 1 s−a L δ(t − a) = e−as e−as L u(t − a) = s 6.4 L teat = 1 (s − a)2 der δ(t) er en enhetsimpuls. 0 t<a der u(t − a) = 1 t≥a (6.28) (6.29) (6.30) Om matriser Ei 2 × 2 matrise og den inverse er 1 d −b a b −1 . A= , A = c d ad − bc −c a (6.31) Determinanten er: det A = ad − bc. Egenverdier for ei matrise er verdier λ slik at det(λI − A) = 0. Laplace-transformasjonen tas element for element i matriser. En har da for eksempel for ei 2 × 2 matrise med funksjoner, fi = fi (t) n f f o L{f } L{f } 1 2 1 2 L = (6.32) f3 f4 L{f3 } L{f4 } og for ei 2 × 2 matrise med funksjoner, hi = hi (s). n h h o L−1 {h } L−1 {h } 1 2 1 2 −1 L = h3 h4 L−1 {h3 } L−1 {h4 } (6.33) Tilsvarende, element for element regel, gjelder også for z-transformasjonen, for integraloperasjoner og differensialoperasjoner. 6.5 Derivasjon Partiell derivasjon av en vektor f med hensyn på en vektor av variabler x # " ∂f1 ∂f1 ∂f x1 f1 (·) ∂x2 1 = ∂x . (6.34) x= , f= gir ∂f2 ∂f2 x2 f2 (·) ∂x ∂x1 ∂x2 Trigonometriske funksjoner: d sin x = cos x dx d cos x = − sin x dx 58 (6.35) 6.6 Om uttrykket eAt Første gang en ser eksponentialfunksjonen med ei matrise som argument er gjerne litt rart. Egentlig er det ganske konsekvent, men det er gjerne nyttig å gå gjennom dette. Det bør være kjent at eksponentialfunksjonen ex og den komplekse varianten ez kan defineres med rekkeutvikling ∞ ex = 1 + x + X 1 1 2 1 3 x + x + ··· = xn . 2! 3! n! n=0 (6.36) En har x0 = 1 og følgende er definert for fakultet-funksjonen 0! = 1! = 1, n! = n(n − 1)! = 1 · 2 · 3 · · · (n − 1) · n (6.37) En kan definere eA , der A er ei kvadratisk matrise, tilsvarende som ex ∞ eA = I + A + X 1 1 2 1 3 A + A + ··· = An . 2! 3! n! n=0 (6.38) Her har en A0 = I der I er identitetsmatrisen med samme dimensjon som A. Ut fra ligning 6.38 ser en at eA også er ei matrise og den har sammen dimensjon som A. En vet jo at rekkeutviklingen av ex konvergerer for alle x, hva så med rekkeutviklingen av eA . Hvis A er ikke-defekt 5 , på engelsk “nondefective”, så har den en egenverdidekomposisjon A = XΛX −1 , det omvendte gjelder også slik at dette er en alternativ definisjon på ikke-defekt matrise. Λ er ei diagonal matrise med egenverdiene langs diagonalen, egenverdiene kan være komplekse også for reelle matriser. De fleste kvadratiske matriser har en egenverdidekomposisjon, selv om det også er uendelig mange matriser som ikke har det. Det er lett å vise at når A = XΛX −1 så konvergerer rekkeutviklingen A e eA ∞ ∞ ∞ X X 1 1 n X 1 −1 n A = (XΛX ) = XΛn X −1 (6.39) = n! n! n! n=0 n=0 n=0 n λ ∞ ∞ 1 X X 1 1 n −1 n −1 λ = X Λ X =X 2 X n! n! .. n=0 n=0 . e λ1 −1 eλ2 = XeΛ X −1 = X · (6.40) ·X ... Også når A er defekt så konvergerer rekkeutviklingen slik at eA er definert for alle kvadratiske matriser. 5 Ei matrise som har at alle egenverdier har geometrisk multiplisitet lik algebraisk multiplisitet er ikke-defekt, for mer fullstendig forklaring se ei lærebok i Lineær Algebra 59 Matlab-uttrykket e=exp(1); e^A beregner resultatet med formelen i ligning 6.40, den vil dermed ikke gi riktig resultat med defekte matriser. Matlab-funksjonen expm bruker en annen algoritme og finner eA også for defekte matriser, merk at Matlab-funksjonen exp med matrise-argument behandler hvert element i A for seg. Prøv for eksempel A=[2,1,0; 0,2,1; 0,0,2]; n=3; B=rand(n); e=exp(1); A1=e^A; A2=exp(A); A3=expm(A); B1=e^B; B2=exp(B); B3=expm(B); og se så på de resulterende matrisene. At er ei matrise der hvert element er en funksjon av t, med eksempel for 2 × 2 matrise, a11 a12 a11 t a12 t At = ·t= . (6.41) a21 a22 a21 t a22 t Laplace-transformasjonen for eAt er dermed kurant. Strengt tatt vises det her kun for ikke-defekte matriser, altså A = XΛX −1 . Vi bruker ligning 6.40, merk at da er At = (XΛX −1 )t = X(Λt)X −1 , og får L{eAt } = L{XeΛt X −1 } e λ1 t n eλ2 t = L X = X .. . −1 X L{eλ2 t } .. 1 s−λ1 . 1 s−λ2 60 o L{eλ1 t } = X .. −1 X . −1 X Videre kan vi nå ta den inverse av matrisene på begge sider og får 1 s−λ1 −1 1 −1 −1 At L{e } = X X s−λ2 .. . 1 −1 s−λ1 = X = X 1 s−λ2 ... X −1 s − λ1 s − λ2 .. . −1 X = X(sI − Λ)X −1 = XsIX −1 − XΛX −1 = sI − A Altså 1 (6.42) sI − A Det er samme form som det skalare uttrykket, som er når matrisa A har størrelse 1 × 1, 1 L{eat } = (s − a)−1 = (6.43) s−a L{eAt } = (sI − A)−1 = 61