You are on page 1of 35

Telemark University College

Department of Electrical Engineering, Information Technology and Cybernetics

Systemidentifikasjon
HANS-PETTER HALVORSEN, 2012.03.16

Faculty of Technology, Postboks 203, Kjlnes ring 56, N-3901 Porsgrunn, Norway. Tel: +47 35 57 50 00 Fax: +47 35 57 54 01

Forord
Dette dokumentet brukes som forelesningsnotater i modellbasert regulering over temaet
systemidentifikasjon. Noen forenklinger er gjort underveis da det legges vekt p praktisk forstelse
og implementering. Notatet tar for seg praktisk bruk av systemidentifikasjon og hvordan dette kan
implementeres i LabVIEW (og MathScript).
Hva er systemidentifikasjon?
Systemidentifikasjon gjr det mulig lage matematiske modeller av et dynamisk system basert p
mlinger av inngang- og utgangssignal. Dynamisk betyr at innganger, tilstander og utganger for
signalet endrer seg over tid.
Hva kan systemidentifikasjon brukes til?
Disse modellene kan s brukes til regulering av systemet som vi har funnet en modell av eller til
prediksjon og tilstandsestimering.
Hvordan kan man identifisere et system?
Enkelt sagt gjr vi dette ved velge en eller annen form for modell av systemet, og s tilpasser man
parametrene i modellen slik at denne passer best mulig til det fysiske systemet. Modellen kan vre
en matematisk modell basert p en fysisk beskrivelse av prosessen eller en skalt black-box modell.

ii

iii

Innholdsfortegnelse
Forord .......................................................................................................................................................ii
Innholdsfortegnelse ................................................................................................................................iii
1

Innledning ....................................................................................................................................... 5
1.1

Hva er Systemidentifikasjon? .................................................................................................. 5

1.2

Prv og feil metoden ............................................................................................................... 6

1.3

Sprangrespons ......................................................................................................................... 7

1.4

Minste kvadraters metode ...................................................................................................... 7

1.5

Blackbox, Subspace-metoder .................................................................................................. 9

Systemidentifikasjon Trinn for Trinn ......................................................................................... 10


2.1

Eksperimenter/Logging ......................................................................................................... 11

2.2

Oppsplitting ........................................................................................................................... 11

2.3

Modellestimering .................................................................................................................. 12

2.4

Validering............................................................................................................................... 13

Minste kvadraters metode ........................................................................................................... 14


3.1

Innledning .............................................................................................................................. 14

3.2

Minste kvadraters metode .................................................................................................... 15

3.3

Eksempler .............................................................................................................................. 21

3.4

Utledning ............................................................................................................................... 23

Blackbox identifikasjon og Subspace-metoder............................................................................. 27

Appendiks A: Matriser ........................................................................................................................... 28


Transponert....................................................................................................................................... 28
Matrisemultiplikasjon ....................................................................................................................... 29
Matriseaddisjon ................................................................................................................................ 30
Determinant ...................................................................................................................................... 30

Systemidentifikasjon

iv
2x2 Systemer ................................................................................................................................ 30
3x3 Systemer ................................................................................................................................ 31
Invertering av matriser ..................................................................................................................... 32
Matrise og vektor derivasjon ............................................................................................................ 33
Referanser ............................................................................................................................................. 34

Systemidentifikasjon

1 Innledning
1.1 Hva er Systemidentifikasjon?
Metoder innen Systemidentifikasjon brukes til finne matematiske modeller av dynamiske systemer
basert p observasjoner av mlte inngangssignaler ( ) og utgangssignaler fra systemet ( ).
Vi vil g gjennom 2 hovedtyper av metoder ifm systemidentifikasjon:

Parameterestimering basert p at man har utviklet en matematisk modell vha fysikkens lover
og man nsker finne de ukjente modellparametrene. Her vil vi bruke Minste kvadraters
metode som et eksempel.
Blackbox/ Subspace-metoder: Systemidentifikasjon basert p at man ikke har en matematisk
modell tilgjengelig.

Vi vil bruke LabVIEW og MathScript som eksempler p praktisk implementering av


systemidentifikasjon.
LabVIEW Control Design and Simulation Module har funksjonalitet for implementere blant
annet Kalmanfilter og Observers, mens LabVIEW System Identification Toolkit har funksjonalitet
knyttet opp mot Systemidentifikasjon.

I dette notatet vil vi se p flgende metoder:

Prv og feil metoden


Sprangrespons
Minste kvadraters metode
Blackbox/Subspace-metoder

Alle metodene gr i prinsippet ut p logge input og output data fra det virkelige systemet.

Innledning

1.2 Prv og feil metoden


Vi m lage en matematisk modell av prosessen og ptrykker samme pdrag p modellen og den
virkelige prosessen. Vi plotter utgangen for modellen ( ) og prosessen ( ) i samme plot og
sammenligner disse.
Kort fortalt gr Prv og feil metoden ut p flgende:
1. Vi sammenligner modellrespons med virkelig respons
2. Vi justerer verdiene p modellparametrene til vi oppnr nsket resultat.

S dette vi vre en iterativ prosedyre:


1. Gjett p noen fornuftige verdier p prosessparametrene
2. Sammenlign modellrespons med virkelig respons etter f.eks. et sprang i pdraget
3. Gjenta Pkt. 1 og 2 helt til du fr tilfredsstillende resultater.

Systemidentifikasjon

Innledning

1.3 Sprangrespons
Dette er en litt mer systematisk metode en den helt enkle Prv og feil metoden.
Sprangresponsmetoden er best egnet p en 1.ordens prosess (med eller uten ddtid).
Man kan finne modellparametrene ved utfre en enkel sprangrespons p systemet.
Sprangresponsen for et 1.ordens system er gitt ved flgende transferfunksjon:
( )
der:
er prosessens forsterkning
er prosessens tidskonstant
er prosessens ddtid
Vi kan dermed lese av prosessparametrene direkte fra sprangresponsen som illustrert nedenfor:

1.4 Minste kvadraters metode


Minste kvadraters metode krever at modellen m settes opp p flgende form basert p
input-output data:

Fra matematikken har vi tilsvarende


der vi nsker lse et linert likningssystem. I
prinsippet er det samme, men som du ser s vi bruker litt annen notasjon innenfor
systemidentifikasjon.
Vi kan illustrere det med en enkel skisse:

Systemidentifikasjon

Innledning

Vi nsker minimalisere summen av avvikene


Dvs. vi kan definere dette som flgende kriteriefunksjon:
( )
Vi finner minimum ved sette den deriverte lik

( )

Ut fra dette kan vi utlede flgende formel:


(

Systemidentifikasjon

Innledning

(utledningen blir vist senere)

1.5 Blackbox, Subspace-metoder


I en Blackbox modell kjenner vi ikke til modellen, men vi bruker algoritmer til finne en matematisk
modell basert p input og output data.
Kort fortalt gr Subspace-metoder ut p flgende:

Finne en matematisk modell som ikke er basert p fysiske lover (Newtons lover, m.fl.)
Finner modell basert p input (pdrag) output (mlinger) data

Teorien og matematikken bak slike Subspace-metoder er kompleks, s vi vil ikke g inn p det her. I
dette notatet vil vi fokusere p praktisk bruk av en slik metode. I et senere kapitel viser vi hvordan vi
kan bruke en av de innebygde funksjonene i LabVIEW (LabVIEW System Identification Toolkit).
En subspace-metode kan typisk finne en diskret tilstandsrommodell av typen:

Systemidentifikasjon

2 Systemidentifikasjon Trinn for


Trinn
I systemidentifikasjon inngr ulike steg, i hovedsak har vi flgende:
1. Eksperimenter/Logging Vi setter opp et eksperiment og samler inn et sett med data fra
inngangssignaler og utgangssignaler fra systemet som vi nsker identifisere. Det er viktig at
systemet blir tilstrekkelig eksitert. Vi logger dataene til fil eller liknende.
2. Oppsplitting - Dele opp dataene i ulike datasett; ett datasett brukes til finne modellen,
mens det andre datasettet brukes til validere modellen.
3. Modellestimering Vi finner modellen eller modellparametrene vha. en eller flere
systemidentifikasjonsmetoder (Minste kvadraters metode, Black-box, osv.).
4. Validering Sjekk om modellen er bra nok vha f.eks simuleringer. Her er det viktig at vi
bruker valideringsdataene og ikke de samme dataene som vi brukte nr vi fant modellen i
trinn 3.
Nedenfor ser vi en figur som illustrerer disse stegene:

10

11

Systemidentifikasjon Trinn for Trinn

2.1 Eksperimenter/Logging
Vi setter opp et eksperiment og samler inn et sett med data fra inngangssignaler og utgangssignaler
fra systemet som vi nsker identifisere. Det er viktig at systemet blir tilstrekkelig eksitert.
Dette kan illustreres slik:

LabVIEW:
I LabVIEW kan vi bruke Write to Measurement File for logge input og output dataene til en fil.

2.2 Oppsplitting
Vi deler opp dataene i ulike datasett; ett datasett brukes til finne modellen, mens det andre
datasettet brukes til validere modellen.
Dette kan illustreres slik:

Systemidentifikasjon

12

Systemidentifikasjon Trinn for Trinn

LabVIEW:
I LabVIEW kan vi bruke funksjonen SI Split Signal.vi til dele opp datasettet.

F.eks. kan man bruke de frste 50% til finne modellen, mens de resterende 50% kan brukes til
validere modellen.

2.3 Modellestimering
Vi finner modellen eller modellparametrene vha. en eller flere systemidentifikasjonsmetoder (Minste
kvadraters metode, Black-box, osv.).
Det frste vi m bestemme er om vi nsker lage en matematisk modell av systemet basert p
fysiske lover eller om dette ikke er nskelig.
I begge tilfellene vi vi bruke loggedataene fra forrige trinn.
Dette kan illustreres slik:

LabVIEW:
I LabVIEW har vi innebygde funksjoner fr bruke Minste kvadraters metode, samt
Subspace-metoder, m.m.
Ifm Minste kvadraters metode kan vi f.eks bruke Solve Linear Equations.vi:

Vi kan ogs bruke de innebygde matrise-funksjonene for lse

Systemidentifikasjon

13

Systemidentifikasjon Trinn for Trinn

2.4 Validering
Vi sjekker om modellen er bra nok vha f.eks simuleringer. Her er det viktig at vi bruker
valideringsdataene og ikke de samme dataene som vi brukte nr vi fant modellen.
Dette kan illustreres slik:

LabVIEW:
I LabVIEW finnes det flere funksjoner vi kan bruke til validere modellen, f.eks. SI Model
Simulation.vi:

Systemidentifikasjon

3 Minste kvadraters metode


3.1 Innledning
I forbindelse med systemidentifikasjon og parameter estimering blir Minste kvadraters metode brukt
til finne ukjente modellparametre i en matematisk modell.
I matematikken blir Minste kvadraters metode brukt til lse et sett med linere likninger som kan
settes opp pflgende form:

sette likningene opp p denne formen gjr det enklere lse likningene, dvs finne
ved bruk av
ulike metoder, f.eks Gauss elimineringsmetode , Minste kvadraters metode, eller liknende
Eksempel:
Gitt flgende likninger:

Disse kan skrives p formen (

):
[

][ ]

[ ]

Den enkleste mten lse likningssettet p er:

Dette forutsetter for eksempel at


matrisa er inverterbar. Hvis ikke, m vi bruke for eksempel
Minste kvadraters metode som vi skal lre mer om i dette kapittelet.
Nr vi skal lse et sett likninger i matematikken har vi som regel like mange likninger som ukjente, dv.
, der
er antall ukjente og
er antall likninger. I systemidentifikasjon derimot har vi
somregel at
, dvs. vi logger mange flere punkter enn det er antall ukjente.
Gitt at det er

ukjente parametre og

: Hvis
og at de
parametrene entydig ved

observasjoner i datasettet.

likningene er linert uavhengige, kan vi bestemme de ukjente

14

15

Minste kvadraters metode

: Hvis vi har at det er


ukjente parametre og
observasjoner og
vil vi f et
overbestemt likningssystem (dvs. frre variable enn det er likninger). Da m vi bruke andre metoder,
siden
ikke lenger vil vre kvadratisk (og kan dermed ikke inverteres). Da kan vi f.eks bruke Minste
kvadrters metode.

Vi kan f.eks. bruke MathScript for finne svaret:


A=[1 2; 3 4];
b=[5; 6];
x=inv(A)*b

Vi fr da flgende svar:
x =
-4
4.5
Dvs.:
[ ]

[Slutt p eksempel]

3.2 Minste kvadraters metode


I forbindelse med systemidentifikasjon og parameter-estimering er det mer vanlig bruke flgende
notasjon:

(som er det samme som

der
er en vektor med de ukjente parametrene som vi nsker finne verdiene p
er en vektor med kjente mlinger
er den skalte regresjonsmatrisen. Denne matrisen bestr av kjente verdier
Minste kvadraters lsning for likningen

er da gitt ved flgende formel:


(

Systemidentifikasjon

16

Minste kvadraters metode

(utledning i neste avsnitt)


Denne likningen kan enkelt implementeres i ulike programmeringssprk, for eksempel MathScript
eller LabVIEW.

Ved minste kvadraters metode velger man den lsningen som gir at summen av kvadratene av
avvikene fra de gitte betingelsene er et minimum. Om man for eksempel vil bestemme en rett linje ut
fra en rekke punkter som er observert, velger man den linjen hvor summen av kvadratene av
avstandene fra de observerte punkter til linjen er s liten som mulig.
Dette kan illustreres slik:

Dvs Minste kvadraters metode gr ut p minimalisere summen av kvadratavvikene:

Dvs. vi kan definere dette som flgende kriteriefunksjon:


( )
Vi finner minimum ved sette den deriverte lik

( )

Dette kan illustreres slik:

Systemidentifikasjon

17

Minste kvadraters metode

Minste kvadraters lsning for likningen

er da gitt ved flgende formel:


(

Antall Observasjoner vs. Antall Parametre:


Gitt at det er

ukjente parametre og

: Hvis
og at de
parametrene entydig ved

observasjoner i datasettet.

likningene er linert uavhengige, kan vi bestemme de ukjente

Men i Systemidentifikasjon er det vanlig at


, dvs. det er nskelig ha mange flere
observasjoner enn det er ukjente parametre, dette pga av observasjonene (mledataene) kan
inneholde sty, m.m.
: Hvis vi har at det er
ukjente parametre og
observasjoner og
vil vi f et
overbestemt likningssystem (dvs. frre variable enn det er likninger). Da m vi bruke andre metoder,
siden
ikke lenger vil vre kvadratisk (og kan dermed ikke inverteres). Det er her Minste
kvadraters metode kommer inn.

Eksempel:
Gitt flgende system av en varmluftsprosess:

Systemidentifikasjon

18

Minste kvadraters metode

Systemet har flgende matematiske modell:

]}

hvor:

[ ] er kontrollsignalet til varmeelementet


[ ] er tidskonstanten til systemet
[
] er varmeelementets forsterkning
[ ] er tidsforsinkelsen i systemet
er romtemperaturen

Vi nsker logge temperaturen vha en DAQ enhet som gir oss et spenningssignal mellom
.
Dette signalet nsker vi konvertere til en temperaturverdi mellom
, dvs. vi trenger
skalere
til
.
Siden dette vil vre en liner skalering kan vi bruke flgende:
( )
dvs vi nsker finne parametrene

og

for denne funksjonen.

Dette kan vi illustrere p flgende mte:

Systemidentifikasjon

19

Minste kvadraters metode

Dvs vi har 2 punkter p linja:


(

eller:
( )
( )

Vi nsker sette det opp p regresjonsformen

og fr flgende:

som gir:
[ ]

] []

Dette kan vi n lse (dvs. finne a og b) p flgende enkle mte (siden


inverteres,
):

Dvs. vi har 2 likninger og 2 ukjente.


Systemidentifikasjon

er kvadratisk og kan

20

Minste kvadraters metode

Innsatt verdier fr vi:

][

Dvs.:
[ ]

Dette gir:
( )
Merk! For

matrise

:
[

beregnes den inverse matrisen

p flgende mte:
( )

og
( )

| |

MathScript:
Dette kan lses i MathScript p flgende mte:
phi = [1, 1; 5 ,1];
Y = [20; 50];
theta = inv(phi)*Y

Vi kan ogs bruke minste kvadraters metode for lse dette:


(

Dette kan gjres p flgende mte i MathScript:


phi = [1, 1; 5 ,1];
Y = [20; 50];
theta_ls = inv(phi*phi)*phi*Y

evt kan vi bruke den innebygde operatoren \:

Systemidentifikasjon

21

Minste kvadraters metode

theta_ls = phi\Y

Svaret blir det samme, dvs:


theta_ls =
7.5
12.5

[Slutt p eksempel]

3.3 Eksempler
Her vil vi se p noen flere eksempler hvor vi bruker Minste kvadraters metode for finne
modellparametrene. Vi vil bruke LabVIEW og MathScript som eksempler p verkty ifm med dette.
LabVIEW har innebygde funksjoner som kan brukes ifm Minste kvadraters metode. I Linear Algebra
(lokalisert i Mathematics paletten) paletten finnes det mange funksjoner som kan brukes for
finne Minste kvadraters lsning:

Eksempel:
Gitt flgende modell:
( )
Flgende verdier er funnet fra eksperimenter:
( )
( )
( )
Vi nsker finne de ukjente modellparametrene
MathScript/LabVIEW.

and

Systemidentifikasjon

ved bruke Minste kvadraters metode i

22

Minste kvadraters metode

Vi har flgende:

der
er en vector med de ukjente parametrene som vi nsker finne verdiene p
er en vektor med kjente mlinger
er den skalte regresjonsmatrisen. Denne matrisen bestr av kjente verdier

Minste kvadraters lsning for likningen

er da gitt ved flgende formel:


(

Dermed fr vi:

Som blir:
[ ]

Her vil

( )

] []

( )

MathScript:
Vi definerer

og

i MathScript og finner

phi = [1 1; 2 1; 3 1];
Y = [0.8 3.0 4.0];
theta = inv(phi*phi)* phi*Y
%or simply by
theta=phi\Y

Svaret blir:
theta =

1.6
-0.6

Systemidentifikasjon

23

Minste kvadraters metode

Dvs.:

Som gir flgende modell:


( )
LabVIEW:
Blokkdiagrammet blir som flger:

Frontpanelet blir som flger:

Vi kan ogs bruke funksjonen Solve Linear Equations.vi direkte:

[Slutt p eksempel]

3.4 Utledning
Miste kvadraters metode forutsetter at systemet settes opp p denne formen:

Systemidentifikasjon

24

Minste kvadraters metode

Metoden gr ut p at vi nsker tilpasse dataene vre til en gitt matematisk modell, dette er
illustrert i figuren under:

Det vi nsker er finne parametrene i modellen slik at denne blir mest mulig tilpasset de dataene vi
har.
nsker minimalisere summen av avvikene
kriteriefunksjon:

, dvs vi bruker flgende

( )

Vi finner minimum ved sette den deriverte lik 0:


( )

Dette kan illustreres slik:

Systemidentifikasjon

25

Minste kvadraters metode

Ut fra dette kan vi utlede flgende formel:


(

Hvordan vi kommer frem til denne formelen vil bli utledet under.
Utledning:
Utledningen krever kunnskap om matriser og vektorer og regler for derivasjon av matriser og
vektorer.
Vi nsker minimalisere flgende kriteriefunksjon
( )
Vi har regresjonsmodellen:

Avviket er gitt ved:

der

vil vre en vektor:

Vi fr da:

Systemidentifikasjon

26

Minste kvadraters metode


(

( )

) (

Som gir:
( )
(Merk: vi har brukt flgende: (

)(
)

Vi ganger ut:

Vi deriverer for finne minimum:


( )

Vi tar ledd for ledd:


(

(
(

, dvs den deriverte av en konstant er lik 0


)

(
)

, dvs har brukt regel:


, dvs har brukt regel:

og (

, dvs har brukt regel:

Dette gir:
( )

Dvs.

(denne kalles forverig normallikningen)


Vi lser mtp.

, resultatet blir:
(

dvs. vi har funnet formelen for minste kvadraters lsning av

Systemidentifikasjon

4 Blackbox identifikasjon og
Subspace-metoder
Subspace-metoder baserer seg p finne modell som ikke er basert p fysiske lover. Modeller funnet
p denne mten kalles Blackbox modeller. Subspace-metoder baserer seg p at vi finner modeller
basert p input (pdrag) output (mlinger) data fra prosessen.

En subspace-metode kan typisk finne en diskret tilstandsrommodell av typen:

LabVIEW har innebygd funksjonalitet for a finne Blackbox modeller basert p Subspace metoder, for
eksempel i paletten Parametric Model Estimation finner vi blant annet VIen Estimate
State-Space.
Nedenfor ser vi et eksempel p hvordan dette kan implementeres i LabVIEW.

27

Appendiks A: Matriser
Transponert
Gitt en matrise

:
[

Den transponerte av

er gitt ved:
[

Merk!
(

Eksempel:
[
Den transponerte av

blir:
[

MathScript
A=[0 1; -2 -3];
A'

Dette gir flgende svar:


ans =
0
-2
1

-3

[Slutt p eksempel]

28

29

Appendiks A: Matriser

Matrisemultiplikasjon
Gitt matrisene

og

, da fr vi:

hvor

Eksempel:
MathScript:
A=[0 1;-2 -3];
B=[1 0;3 -2];
A*B

Dette gir:
ans =
3

-2

-11

[Slutt p eksempel]
Merk!

Merk!
Flgende gjelder:

(
(

)
(

)
(

Systemidentifikasjon

30

Appendiks A: Matriser

Matriseaddisjon
Gitt matrisene

og

, da fr vi:

Eksempel:
MathScript:
A=[0 1;-2 -3];
B=[1 0;3 -2];
A+B

Dette gir:
ans =
1

-5

[Slutt p eksempel]

Determinant
Determinanten er bare definert for kvadratiske matriser. Determinanten til en kvadratisk matrise A
er definert ved den skalare tallverdien.
( )

| |

2x2 Systemer
Slik finner vi determinanten for et 2x2 system:
[
( )

| |

Eksempel:
[
( )

| |

]
(

I MathScript kan vi gjre flgende:

Systemidentifikasjon

31

Appendiks A: Matriser

A=[3 -2;5 1];


det(A)
rank(A)

Som gir flgende svar:


ans = 13 (determinant)
ans = 2 (rang)
[Slutt p eksempel]

3x3 Systemer
Det blir litt mer komplisert for systemer med strre orden, men vi vil maks hndregne p 3x3
systemer. For strre systemer bruker vi et dataprogram til beregne dette, f.eks MathScript.
Slik finner vi determinanten for et 3x3 system:
[

Vi utvikler determinanten langs en rekke eller en kolonne.


Her utvikler vi determinanten langs frste kolonne:
( )

Vi ser at determinanten til et hyere ordens system kan uttrykkes som en sum av lavere ordens
determinanter.
Eksempel:
[

( )

)|

Dette gir:
|

|
|

Systemidentifikasjon

32

Appendiks A: Matriser
|

Som gir:
( )
I MathScript kan vi gjre flgende:
A=[-1 3 0; 2 1 -5; 1 4 -2];
det(A)
rank(A)

Som gir flgende svar:


ans = -21 (determinant)
ans = 3 (rang)
[Slutt p eksempel]
Merk!
(

( )

( )

Merk!
(

( )

Invertering av matriser
Gitt en

matrise:
[

Den inverse av

er gitt ved:

( )

Eksempel:
Gitt flgende matrise:
[
Den inverse av

er gitt ved:

Systemidentifikasjon

33

Appendiks A: Matriser
[

MathScript:
A=[0 1; -2 -3]
inv(A)

Matrise og vektor derivasjon


Her er noen derivasjonsregler ifm matriser og vektorer som blir brukt ifm utledningen av Minste
kvadraters metode.
( )
(

(
(

)
)

Systemidentifikasjon

Referanser
Di Ruscio, D. (2003). Matrisemetoder og liner algebra, Forelesningsnotater.
Haugen, F. (1996). Regulering av dynamiske systemer 2, Tapir.
Haugen, F. (2010). Advanced Dynamics and Control, TechTeach.
Ljung, L. (1995). System Identification.
Skretting, K. (2010). MIK 130 Systemidentifikasjon, Forelesningsnotater.
www.wikipedia.org (2011). Black Box.
www.wikipedia.org (2011). System Identification.

34

Telemark University College


Faculty of Technology
Kjlnes Ring 56
N-3914 Porsgrunn, Norway
www.hit.no

Hans-Petter Halvorsen, M.Sc.


Telemark University College
Faculty of Technology
Department of Electrical Engineering, Information Technology and Cybernetics

E-mail: hans.p.halvorsen@hit.no
Blog: http://home.hit.no/~hansha/

You might also like