Norges landbrukshøgskole
Institutt for tekniske fag



Datadrevet modellering og multivariabel regulering
(frie fagvekter)

Datamaskinøving 6

Øvingsmomenter:
Estimering av en inn-ut-modell ut fra loggedata av pådrag og måling for en termisk lab-prosess (Process Trainer fra Feedback Systems). Tre ulike metoder skal prøves: Minste-kvadraters metode (funksjonen "arx"), en subspace-metode ("n4sid"), og prediksjonsfeilmetoden ("armax").

Praktiske opplysninger:
Besvarelsen sendes inn som et html-dokument eller word-dokument med lenker til skriptene og/eller modellene inne i selve besvarelsen, eller som ordinær e-post med Matlab-skript og eventuelle Simulink-modeller som vedlegg (attachment). Ikke send grafikk via e-post (plottene skal genereres ved at kurslærer kjører de innsendte Matlab-skriptene).

Oppgavetekst:

Skriptet "iddemo" m/valg nr. 2 demonstrerer hvordan systemidentifisering kan utføres med Matlabs System Identification Toolbox (SIT). ("iddemo" inngår i SIT.)

  1. Demo med bl.a. minste-kvadraters metode. Til informasjon: I "iddemo" benyttes funksjonen "arx" til å estimere parametrene i en arx-modell som er en differenslikning som har den generelle formen (modellen kan alternativt uttrykkes som en z-transferfunksjon fra u til y)

    y(k)+a1*y(k-1)+...+an*y(k-na)=b1*u(k-nk)+b2*u(k-nk-1)+...+bn*u(k-nk-(nb-1))

    I "arx" estimeres koeffisientene a1 ... an, b1 ... bn vha. minste-kvadraters metode. Den estimerte modellen er på såkalt theta-format, som er en intern modellform som benyttes i SIT. En modell på theta-format kan uttrykkes i mange andre modellformater (som demonstrert i "iddemo").

    Oppgave: Kjør ovennevnte demo, og prøv å forstå hva de enkelte uttrykkene i skriptet gjør (bortsett fra dem som har med korrelasjonsanalyse å gjøre). Bruk "help" for å få informasjon om de enkelte funksjonene.

  2. Subspace-metoden N4SID. Veiledning: N4SID er tilgjengelig i SIT som "n4sid". Subspace-metoder kan finne beste modellorden automatisk, og er derfor meget brukervennlige. Metodene gir riktige estimater også ved farget støy (i slike tilfeller vil minste-kvadraters metode gi feilaktige estimater). Metodene håndterer også multivariable modeller. En mulig syntaks for "n4sid" er "th_modell=n4sid(z,'best')" der argumentet 'best' betyr at "n4sid" automatisk skal returnere med en modell med den beste (optimale) ordenen. z=[y u] er loggedataene. "th_modell" er modellen på theta-format. (Hvis du i stedet for "th_modell=n4sid(z,'best')" utfører "th_modell=n4sid(z)", vises et plott der beste modellorden er markert, men du må da trykke enter-knapen for å komme videre.)

    Oppgaver:
    1. Bruk estimeringsfunksjonen "n4sid" til å estimere en inn-ut-modell fra loggedata fra "iddemo" der middelverdiene i utgangen (kall den gjerne y) og inngangen (u) er fratrukket (dvs. trendene eller biasene i dataene er fjernet ("dtrend")). Modellen blir på theta-format.
    2. Sammenlikne logget respons med simulert respons ("compare([y u],th_modell").
    3. Uttrykk z-transferfunksjonen fra u til y som et LTI-objekt (først "th2tf" og så "tf" - husk å angi samplingsintervallet T=0.08 som argument i "tf").
    4. Beregn systemets poler ("pole"). Er systemet stabilt?
    5. Simuler systemets sprangrespons ("step").
    6. Plott systemets frekvensrespons ("bode").
    7. Hvordan ville du ha gått fram for å stille inn regulatorparametrene i en PID-regulator for prosessen (det termiske systemet)?


  3. Subspace-metoden DSR. Veiledning: DSR (Deterministic and Stochastic System Identification and Realization) er en subspace-metode utviklet av 1. am. David di Ruscio ved HiT. DSR er tilgjengelig bl.a. som Matlab-funksjonen "dsr". 26.3 fikk dere utlevert en kort omtale av "dsr". Hjelpetekst om "dsr" i Matlab fås med "help dsr". David har dokumentert at hans "dsr" virker bedre enn "n4sid" i flere tilfeller. Ifm. vårt kurs får dere bruke "dsr" kostnadsfritt (tilsendt dere på diskett 29.3.99), men det er en forutsetning at "dsr" ikke benyttes til noe annet formål enn kurset. En kommersiell versjon forhandles av David og av Fantoft Prosess (Oslo).

    Oppgaver:
    1. Kopier "dsrkatalog" (m/innhold) til en passende katalog på deres egen maskin. (m-filen "dsr" befinner seg på katalogen "dsrkatalog" på disketten.) Inkluder "dsrkatalog" i Matlabs søkesti (Matlab-path) vha. "path"-funksjonen ("dsr" blir da tilgjengelig fra din Matlab-arbeidskatalog).
    2. Estimer en tilstandsrommodell vha. "dsr" ut fra samme datasett som ble benyttet i deloppgaven om N4SID ovenfor. Sett i utgangspunktet L=10, og velg en rimelig modellorden ut fra singulærverdiplottet som vises i løpet av estimeringen (velg modellordenen lik antall "signifikante" singulærverdier, som er slike singulærverdier som er "betydelig" større enn resten). Under estimeringen blir du bedt om å oppgi modellordenen.
    3. Synes den estimerte modellen å være god? (Kjøre en simulering, og bruk da den samme inngangstidsserien som ble benyttet ifm. estimeringen. Sammenlikne simulert utgang med logget utgang.)


  4. Prediksjonsfeilmetoden. Veiledning: En armax-modell er generelt på formen

    y(k)+a1*y(k-1)+...+an*y(k-na)=b1*u(k-nk)+b2*u(k-nk-1)+...+bn*u(k-nk-(nb-1)) + e(k)+c1*e(k-1)+...+cn*e(k-nc)

    Modellparametrene kan estimeres med en prediksjonsfeilmetode. Funksjonen "armax" i SIT anvender prediksjonsfeilmetoden på armax-modeller.

    Kvadratsummen av prediksjonsfeilen e, her betegnet V(e) , kan benyttes ifm. modellvalg. e, kan, etter at estimeringen er utført, beregnes vha. funksjonen "pe". e bør beregnes ut fra et fremmed datasett eller valideringssett. Valideringssettet og estimeringssettet kan være ulike deler av det opprinnelige datasettet.

    Ifm. estimeringen beregnes FPE automatisk. FPE er ett av elementene i den matrisen som representerer modellen på SITs theta-format ("help theta"). Også FPE kan benyttes ifm. modellvalg (men FPE blir ikke beregnet ut fra et valideringsdatasett, kun ut fra estimeringsdatasettet).

    Oppgave:

    1. Bruk "armax" til å estimere en armax-modell ut fra loggedataene fra "iddemo", men bruk bare den første halvdelen av loggedataene (tidsseriene) i estimeringen (den resterende delen skal benyttes for validering). Husk å trekke ifra middelverdier i loggedataene før dataene benyttes i identifiseringen. Sett na=2, nb=2, nc=2 og nk=3. Hva blir verdien av de estimerte modellparametrene ("present(theta_modell)")?
    2. Hva blir FPE?
    3. Beregn verdien av V med bruk av valideringsdatasett.
    4. Undersøk om V blir mindre med økt modellorden (du kan f.eks. øke na, nb og nc med 1).

[Til framdriftsplanen]


29.3.99, Finn Haugen (Finn.Haugen@hit.no).