DET TEKNISK - NATURVITENSKAPELIGE FAKULTET Institutt for data- og elektroteknikk Løsningsforslag Eksamen i MIK30, Systemidentifikasjon Dato: fredag 4 desember 2007 Lengde på eksamen: 4 timer Tillatte hjelpemidler: ingen Løsningsforslag Innhold Diskret tilstandsrommodell 2 2 Stående pendel 4 3 Blokkdiagram 7
Diskret tilstandsrommodell (Antall poeng for denne oppgaven er 5+0+0+0+0 = 55).a (5 3 = 5 poeng) De fem matrisene med navn og dimensjon er gitt i tabellen nedenfor. Symbol Navn Dimensjon Transisjonsmatrise Φ eller systemmatrise n n Γ Pådragsmatrise n s Ω Forstyrrelsematrise n n D Målematrise l n E Direktekoblingsmatrise l s En forklaring om matrisene kan innholde litt som dette. Φ er alltid med, ved parameterestimering som i RLS er den identitetsmatrise. Γ er med så sant det er et (eller flere) pådrag til systemet, men er for eksempel utelatt ved utledning av Kalman-filter. Ω er ofte identitetsmatrise, og i hvert fall diagonal. D er med så sant det er måling i systemet, noe det (nesten) alltid er. Ved parameterestimering som i RLS er D en vektor (siden en har ei måling) som endres for hvert tidssteg. E er ofte ikke med..b (0 poeng) Fra notatet om utledningen av Kalman-filter har vi: Nå forenkles notasjonen noe ved at vi utelater (k) for matrisene, det gir en forenkling i notasjonen uten at det påvirker resultatet noe. Men matrisene tillates likevel å være tidsvarierende. I praksis er de ofte konstante eller langsomt varierende. Støyleddet for signalet forenkles også noe, en legger støyen direkte til prosessen i stedet for å la den gå gjennom matrisa Ω, dette har heller ikke større betydning. Vi ser også bort fra pådraget i denne utledningen, det gjør det hele en del enklere uten at resultatet endres. En kan argumentere for dette ved å splitte tilstandsvektoren i to deler, en deterministisk del og en stokastisk del, x(k) = x d (k) + x s (k). Se gjerne også punkt 3 side 39 hos Haugen for forklaring på hvorfor pådraget forsvinner i en mer fullstendig utledning. I oppgaven her var alt k-ene utelatt 2
Prosessen her blir da: x(k + ) = Φx(k) + v(k), (.) y(k) = Dx(k) + w(k). (.2).c (0 poeng) Fra notatet om utledningen av Kalman-filter har vi: Vi antar nå at støyen, v(k) og w(k), har forventningsverdi (middelverdi) null Ev(k) = 0, Ew(k) = 0, (.3) og at sekvensene v(k) og w(k) er ukorrelerte med hverandre (R vw (τ, k) er en n l matrise) Ev(k + τ)w T (k) = R vw (τ, k) = 0, (.4) og støyen er hvit, det vil si uavhengig av tidligere verdier, Ev(k + τ)v T (k) = R v (τ, k) = δ(τ)r v (0, k) = Q(k) = Q, (.5) Ew(k + τ)w T (k) = R w (τ, k) = δ(τ)r w (0, k) = R(k) = R. (.6) Q og R er da autokovariansmatriser for prosesstøy v(k) og målestøy w(k) henholdsvis..d (0 poeng) Se læreboka kapittel 0.4. Her spesielt boksen side 369. Tilstandene x blir nå parametrene som skal estimeres θ, og en har ikke noe pådrag i det hele (Γ = 0). Systemmattrisa Φ blir helt enkel det vil si identitetsmatrise, det samme lar vi forstyrrelsematrise Ω være men kan da gjerne la de ulike komponeter i støyen v ha ulik varians. Prosessligningen blir θ(k + ) = θ(k) + v(k) (.7) Regresjonsmodellen overføres til målelikningen og den blir y(k) = φ T (k)θ + e(k). (.8) Merk at målestøyen w(k) nå kalles e(k), det er her gjerne mer enn bare målestøy og inkluderer også modellfeil (som gjerne er største bidrag)..e (0 poeng) Matrisene Q og R ved Kalman-filter for parameterestimering brukes som tuningparametre. Ofte velges R fast og kun Q brukes da som tuningparameter. R kan da gjerne velges litt større enn antatt målestøy (inkluderer litt modellfeil). Q velges da til ei diagonalmatrise der hvert element er variansen (standardavviket kvadrert) for prosesstøyen, standardavviket bør da være i 3
størrelseorden for det som det er rimelig å anta at parameteren kan endre med fra et tidssteg til et annet. Hvis en av parameterne er ganske konstant er det rimelig å la tilhørende varians være litt større til å begynne med og så avta etter hvert som k øker. Større verdi til å begynne med for å ta hensyn til at en kan ha gjettet en del feil på parameterverdien for første tidssteg, og dermed gi parameteren en mulighet til å korrigere seg inn. Generelt har en at store verdier i Q gir parameterestimat som kan endres fort, mens små verdier i Q gir kun små endringer i parameterestimatene fra et tidssteg til neste. Tilsvarende for skalaren R, men med motsatt virkning. Stor R betyr stor målefeil og dermed liten vekt på målingen (siste ligning) og tilsvarende større vekt på forrige parameterestimat, og dette gir liten endring av parameterestimatene. Liten R betyr liten målefeil og dermed stor vekt på siste målingen og tilsvarende mindre vekt på forrige parameterestimat, og dette gir større endring av parameterestimatene. 2 Stående pendel (Antall poeng for denne oppgaven er 0+0+5+0 = 35) 2.a (0 poeng) Fra modellligningen får en ganske direkte systemligningene og måleligningen er gitt i oppgaven. Kontinuerlig tilstandsrommodell er da ẋ = x 2 (2.) ẋ 2 = g L sin x + ml 2 u y = x 2.b (0 poeng) Euler-forover-diskretisering, og når en også tar med støyledd, gir den diskrete tilstandsrommodellen x (k + ) = x (k) + T x 2 (k) + v (k) f ( ) (2.2) x 2 (k + ) = x 2 (k) + T g L sin(x (k)) + T ml u(k) + v 2(k) f 2 2 ( ) y(k) = x (k) + w(k) g( ) Legg merke til at modellen ikke kan skrives på matriseform, x(k + ) = Φx(k) + Γu(k) + Ωv(k) siden den ikke er lineær. 2.c (5 poeng) Med linearisering i arbeidspunktet får en Φ = f x A der x = x x 2 f ( ), f = f 2 ( ) (2.3) 4
Merk at en ikke trenger å linearisere for å finne Γ selv om en skulle ha ulineære forhold for pådragene, Kalman-filteret kan nemlig bruke de ulineære funksjonene f fra (2.2) direkte ved utregning av x(k). Her er systemet riktig nok lineært for pådraget og en har dermed alt gitt en Γ i modellen. Måleligningen er her lineær og en har D = 0 (og E = 0). Med et fast arbeidspunkt som gitt i oppgaven kan en nå sette opp hele modellen som en lineær modell med matrisene i systemligningen som T 0 0 Φ =, Γ = T, Ω =. (2.4) 0 ml 2 Systemligningen er Måleligningen er T g L x(k + ) = Φx(k) + Γu(k) + Ωv(k) (2.5) y(k) = x (k) = 0x(k) = Dx(k) der D = 0. (2.6) 2.d (0 poeng) Målestøykovariansmatrisa R er skalar og vi setter kun R = R siden vi ikke har noen annen verdi. Enhet er kvadrert måleenhet, for eksempel rad 2. Prosesstøykovariansmatrisa Q kan vi la være diagonal, q 0 Q(k) =. (2.7) 0 q 2 Her kan en gjerne ut fra en argumentasjon om at vindstøy gir ei kraft som påvirker med et bidrag til akselerasjonen for pendelen, dermed kun til θ og kun støy til x 2, x påvirkes da indirekte via x 2. Da kan vi ha q svært liten, gjerne 0. I tillegg til de matrisene en alt har oppgitt har en at aposteriori og apriori kovariansmatrise er ˆP (k) ˆP2 (k) P ˆP (k) = og P (k) = (k) P 2 (k). (2.8) ˆP 2 (k) ˆP22 (k) P 2 (k) P 22 (k) Ved start av steg k har en verdiene fra forrige steg eller initialverdier. Altså verdier for ˆx(k ) og ˆP (k ) for steg k. Med utgangspunt i ligningene for Kalman-filteret som er gitt i formelvedlegget i oppgaven, finner vi nå ligningene for steg k. Først tar vi de to elementene i x(k), de kan her regnes ut som i (2.2) med funksjonene f ( ) og den ulineære f 2 ( ), men uten støy. I dette punktet trenger en ikke gjøre linarisering! Vi får 5
x (k) = ˆx (k ) + T ˆx 2 (k ) (2.9) x 2 (k) = ˆx 2 (k ) + T g L sin(ˆx (k )) + T u(k ) ml2 Videre tar en elementene i P (k), som skrevet i oppgaven bør en ta dette til slutt siden det er lett å gå seg vill, men det er egentlig ganske greitt. Vi bruker Φ fra (2.4) og får P (k) = Φ ˆP (k )Φ T + Q (2.0) P (k) P 2 (k) T ˆP (k ) ˆP2 (k ) = T g P 2 (k) P 22 (k) L ˆP 2 (k ) ˆP22 (k ) ˆP (k ) + T = ˆP 2 (k ) ˆP2 (k ) + T ˆP 22 (k ) T g ˆP L (k ) + ˆP T g 2 (k ) ˆP L 2 (k ) + ˆP 22 (k ) T g L T T g L T q 0 + 0 q 2 + q 0 0 q 2 P (k) = ˆP (k ) + T ˆP 2 (k ) + T ˆP 2 (k ) + T 2 ˆP22 (k ) + q (2.) P 2 (k) = T g L ˆP (k ) + ˆP 2 (k ) + T 2 g L ˆP 2 (k ) + T ˆP 22 (k ) P 2 (k) = T g L ˆP (k ) + T 2 g L ˆP 2 (k ) + ˆP 2 (k ) + T ˆP 22 (k ) P 22 (k) = ( T g L )2 ˆP (k ) + T g L ˆP 2 (k ) + T g L ˆP 2 (k ) + ˆP 22 (k ) + q 2 Kalman-filterforsterkningsfaktorene blir noe enklere K (k) K 2 (k) Og dette gir da K(k) = P (k)d T (DP (k)d T + R) (2.2) P = (k) P 2 (k) ( P 0 (k) P 2 (k) P 2 (k) P 22 (k) 0 P 2 (k) P 22 (k) 0 K (k) P = (k) (P K 2 (k) P 2 (k) (k) + R ) ) +R K (k) = P (k) /( P (k) + R ) (2.3) K 2 (k) = P 2 (k) /( P (k) + R ) Aposteriori estimatet, ˆx(k), blir ˆx(k) = x(k) + K(k)y(k) Dx(k) (2.4) 6
ˆx (k) x (k) K (k) ( x (k) = + y(k) 0 ˆx 2 (k) x 2 (k) K 2 (k) x 2 (k) ˆx (k) x (k) K (k) (y(k) = + x (k) ) ˆx 2 (k) x 2 (k) K 2 (k) ) Altså ˆx (k) = x (k) + K (k) ( y(k) x (k) ) (2.5) ˆx 2 (k) = x 2 (k) + K 2 (k) ( y(k) x (k) ) Og til slutt nytt aposteriori-kovarians-estimat ˆP (k) = (I K(k)D) P (k) (2.6) ˆP (k) ˆP2 (k) ( 0 K (k) ) P = 0 (k) P 2 (k) ˆP 2 (k) ˆP22 (k) 0 K 2 (k) P 2 (k) P 22 (k) ˆP (k) ˆP2 (k) K (k) 0 P = (k) P 2 (k) ˆP 2 (k) ˆP22 (k) K 2 (k) P 2 (k) P 22 (k) ˆP (k) ˆP2 (k) ( K = (k))p (k) ( K (k))p 2 (k) ˆP 2 (k) ˆP22 (k) K 2 (k)p (k) + P 2 (k) K 2 (k)p 2 (k) + P 22 (k) Altså: ˆP (k) = ( K (k) ) P (k) (2.7) ˆP 2 (k) = ( K (k) ) P 2 (k) ˆP 2 (k) = P 2 (k) K 2 (k)p (k) ˆP 22 (k) = P 22 (k) K 2 (k)p 2 (k) 3 Blokkdiagram (Antall poeng for denne oppgaven er 0) 3.a (0 poeng) Ved å kalle signalet etter siste forsinkelseblokk for x(z) så har en at signalet mellom forsinkelseblokkene er zx(z) og signalet før første forsinkelseblokk er z 2 x(z). Dermed får vi for første summering u(z) + ax(z) = z 2 x(z) eller u(z) = (z 2 a)x(z). For andre summering har vi bx(z) + zx(z) = y(z) eller y(z) = (z + b)x(z). Dermed får vi h(z) = y(z) u(z) = z + b z 2 a = z + bz 2. (3.) az 2 7