sadržaj - ruđer bošković...
TRANSCRIPT
SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
ZAVRŠNI RAD br. 2541 ESTIMACIJA BRZINE VJETRA NA
LABORATORIJSKOM VJETROAGREGATU POMOĆU KALMANOVA FILTRA
Dejan Friščić
Zagreb, lipanj 2012.
Zahvaljujem se mentoru prof. dr. sc. Nedjeljku Periću imag. ing. inf. et. Nikoli Hure na stručnoj pomoći,
savjetima, uloženom vremenu i trudu pri izradi ovog rada.
Sadržaj
1. Uvod.................................................................................................................1
2. Estimacija stanja..............................................................................................2
2.1 Uvod u estimaciju stanja...........................................................................2
2.1 Kalmanov filter...........................................................................................4
2.2 Primjer sinteze Kalmanova filtra u Matlabu-u............................................9
3. Po dijelovima afini sustavi..............................................................................13
3.1 Opis u prostoru stanja.............................................................................14
3.2 Sinteza po dijelovima afinog modela vjetroagregata...............................15
4. Projektiranje estimatora brzine vjetra za vjetroagregat...................................20
4.1 Sinteza Kalmanova filtra..........................................................................20
4.2 Simulacijski rezultati................................................................................21
5. Implementacija estimatora na laboratorijskom vjetroagregatu.......................25
5.1 Generiranje C koda estimacije................................................................25
5.2 Eksperimentalni rezultati.........................................................................27
Zaključak...............................................................................................................32
Literatura...............................................................................................................33
Sažetak..................................................................................................................34
Privitak...................................................................................................................35
1. Uvod
Tehnike estimacije imaju vrlo široki spektar primjena – svugdje gdje je neku
pojavu (proces) moguće opisati parametriranim matematičkim modelom i
kontinuiranim veličinama stanja. Za korištenje naprednih metoda upravljanja
vjetroagregatom potrebno je imati informaciju o brzini vjetra. Na stvarnim
vjetroagregatima mjerena brzina vjetra nije dostupna u stvarnom vremenu, tako da ju je
potrebno estimirati.
U svakom matematičkom modelu sustav je opisana veza stanja, varijabli i
parametara od interesa za sintezu sustava upravljanja, no postavlja se pitanje što je sa
stanjima sustava koja nisu i ne mogu biti deterministički određena, a utječu na
ponašanje sustava upravljanja. Upravo ta stanja koja nisu u potpunosti deterministički
određena unose nesigurnost i netočnost u matematički model kojim je sustav opisan.
U ovakvim sustavima koje promatramo kao stohastičke linearne sustave uz
pretpostavku smetnji kao Gaussovih bijelih šumova, Kalmanov filtar našao je široku
primjenu kao optimalni linearni estimator stanja sustava koja su zašumljena ili nisu
mjerljiva.
U drugom poglavlju ovog rada opisani su osnovni principi estimacija, načelo rada
linearnog estimatora, Kalmanov filter, Kalmanov rekurzivni algoritam te napravljena
estimacija sustava u obliku primjera u kojem se pokazala važnost kovarijance. U
trećem poglavlju su opisani po dijelovima afini sustavi (PWA) i prikaz PWA modela u
prostoru stanja. Napravljen je PWA model laboratorijskog vjetroagragata za potrebe
sinteze Kalmanova filtra. U četvrtome poglavlju opisano je projektiranje estimatora
brzine vjetra za laboratorijski vjetroagregat, napravljena sinteza Kalmanova filtra i
provedena simulacija u Matlab Simulinku. Za eksperimentalnu provjeru algoritma
estimacije Kalmanova filtera na laboratorijskom vjetroagregatu, u poglavlju pet,
opisano je generiranje C koda Kalmanova filtra. Generiranje C koda napravljeno je na
način da je automatizirano i moguće ga je jednostavno generirati uz promjenu PWA
modela aerodinamičkog momenta. Na kraju petog poglavlja opisana su
eksperimentalna mjerenja i grafički prikazani rezultati.
1
2. Estimacija stanja
Estimacija je proces procjene vrijednosti veličina od interesa na osnovi dostupnih
mjerenja, koja su uglavnom posredna, netočna i/ili nesigurna. Ako približno poznajemo
vrijednosti veličina, pomoću estimacije ih možemo korigirati na osnovi slijeda mjerenja te
tako dolazimo do točnijih vrijednosti. Potrebno je ne samo estimirati parametre modela već
pronaći i prikladnu strukturu modela koja može zadovoljavajuće dobro opisati vladanje
sustava. Postupak prikupljanja strukture modela zove se identifikacija sustava.
2.1 Uvod u estimaciju stanja
Promatramo li sustav opisan varijablama stanja vidljivo je da stanje sustava u
nekom trenutku ovisi o vrijednostima njegovih varijabli u tom trenutku koje su vremenski
promjenjive veličine.
Vremenski ovisne veličine sustava i njihov međusobni odnos dan je u
matematičkom modelu sustava koji je prema pretpostavci deterministički određen, ali u
stvarnom sustavu pojavljuju se smetnje kao stohastičke vrijednosti koje djeluju na
dinamiku sustava i njih nazivamo procesni šum.
Prilikom sinteze sustava upravljanja neizostavna je uloga povratne veze koja daje
informacije o trenutnom stanju sustava na temelju mjerenja koja su u većini stvarnih
sustava zašumljena, netočna ili nesigurna. Ta odstupanja mjerenih veličina posljedica su
neidealnih mjernih senzora te njihove osjetljivosti na vanjske utjecaje (temperatura
okoline, vjetar, vibracije), jednom riječi nazivamo ih mjernim šumom.
Također kod većine stvarnih sustava pojedine fizikalne veličine ne možemo izravno
mjeriti nego do njihovih vrijednosti dolazimo posrednim putem a tu se javljaju problemi
što stvarni sustav nije potpuno deterministički određen. Rješenje za navedene probleme
određivanja nemjerljivih stanja sustava je njihova estimacija.
2
Slika 2.1: Blokovska shema postupka estimacije stanja sustava
Estimatori stanja su rekurzivni algoritmi koji izračunavaju vrijednosti varijabla od
interesa koristeći spoznaje o:
1. vremenskom tijeku varijabli stanja (model dinamike sustava);
2. modelu mjerenja;
3. stohastičkom modelu različitih slučajnih pojava (poremećaja);
4. prethodnim informacijama o stanju sustava.
S obzirom na navedene spoznaje koje estimatori koriste, mogu se podijeliti u
nekoliko skupina.
1) Prema modelu dinamike sustava i model mjerenja:
linearni estimatori;
nelinearni estimatori.
2) S obzirom na modeliranje slučajnih pojava:
deterministički estimatori:
zanemaren mjerni i procesni šum;
stohastički estimatori:
mjerni i procesni šum opisani kao Gaussov bijeli šum;
mjerni i procesni šum opisani nekim drugim statističkim i
vjerojatnosnim karakteristikama.
3) S obzirom na prethodne informacije o varijablama stanja sustava:
nema prethodnih informacija o stanju sustava;
prethodno stanje sustava (približno) poznato.
3
Opće načelo rada linearnog estimatora može se podijeliti u dva rekurzivna koraka [2].
1) Korak predikcije stanja sustava na temelju jednadžbe stanja sustava:
predikcija stanja(k+1|k) = estimacija stanja(k) + promjena stanja(k);
2) Korak korekcije stanja sustava na temelju novih mjerenja:
estimacija stanja(k+1) = predikcija stanja(k+1|k) + težinski član(k+1) * rezidual(k+1).
2.1 Kalmanov filter
Ponekad je potrebno odrediti neku fizikalnu veličinu koja se teško može izravno
izmjeriti. Recimo da željena veličina predstavlja izravno nedostupnu varijablu stanja
sustava (ukoliko sustav opišemo modelom s varijablama stanja). Do tražene veličine
potrebno je doći posredno. Pritom problem predstavlja sam realan sustav čije ponašanje
nije do kraja determinističko. Također, mjerenje neke mjerljive veličine preko koje želimo
doći do potrebne varijable stanja su često zašumljena i nepouzdana (mjerena veličina je
zapravo slučajna varijabla).
Rudolf Emil Kalman (rođen 1930. u Budimpešti) objavio je 1960. godine
rekurzivni matematički algoritam za estimaciju stanja dinamičkih sustava sa zašumljenim
mjernim signalima i varijablama stanja. Služi ekstrakciji nedostupne varijable stanja
sustava iz dostupnih zašumljenih izvora (zašumljeno mjerenje izlaza sustava i zašumljeni
stohastički ulaz u sustav) i prethodnog stanja sustava.
Kalmanov filter pretpostavlja da postoji vremenski diskretan proces kojim
upravljamo, odnosno koji nadziremo. Načelo rada Kalmanovog filtra svodi se na računanje
estimiranih stanja xk , na osnovu zašumljenih mjerenja yk , za slučajni proces xk, opisan
linearnim diskretnim modelom u prostoru stanja. Kalmanov filter, kao optimalni estimator
i prediktor nepoznate veličine pronašao je veliku primjenu u upravljanju sustavima,
navigaciji, praćenju i predviđanju putanje objekta.
Za izvod jednadžbi Kalmanova filtra neophodno je prethodno odrediti kako se
očekivana vrijednost i varijanca od xk mijenjaju (propagiraju) kroz vrijeme. Proces je
opisan linearnim modelom s varijablama stanja ((2-1) i (2-2)) i nije potpuno
deterministički.
4
xk=A xk−1+B uk−1+wk−1 (2-1)
yk=H xk+vk (2-2)
Simbolom x se označava n-dimenzionalna varijabla stanja sustava. Radi se o
veličini inherentnoj sustavu koja nije izravno mjeriva, a želi se odrediti, što je zadatak
estimatora. Prva jednadžba govori o vezi između iznosa varijable stanja u trenutnom i
prethodnom koraku. Vidljivo je da trenutni xk ovisi o prethodnoj vrijednosti xk−1 varijable
pomnožene s matricom A dimenzije n × n. Nadalje, trenutno stanje ovisi o ulazu u sustav iz
prethodnog koraka predstavljenog jednodimenzionalnim vektorom uk−1, pomnoženog
matricom B dimenzija n ×l, gdje je l broj ulaznih varijabli u sustav.
Osim ovih determinističkih članova, trenutno stanje ovisi i o slučajnom članu w k−1.
Radi se o slučajnom vektoru kojim se modelira šum svojstven procesu. Riječ je o
Gaussovom bijelom šumu (frekvencijski je neovisan i vremenski nekoreliran) s
normalnom razdiobom: p (w ) N (0 , Q). Q je matrica kovarijancije šuma procesa. Može se
odrediti postupkom identifikacije sustava. Što je varijabla u matrici Q veća to je model
nepouzdaniji.
Izlaz sustava predstavljen je m-dimenzionalnim vektorom yk (2-2) koji predstavlja
mjerivu veličinu. Izlaz je deterministički povezan s varijablom stanja preko matrice H
dimenzija m× n. Kao i kod prethodne jednadžbe stanja (2-1) i ovdje se pojavljuje
stohastička veličina. Radi se o bijelom šumu koji je prisutan pri mjerenju. Modeliran je
vektorom vk, koji ne ovisi o šumu w k−1 i raspodijeljen je po normalnoj razdiobi s
kovarijancom R: p (v ) N (0 , R) . Vrijednost R se određuje eksperimentalno.
Kao što je vidljivo iz gornjeg modela, i sustav i mjerenje "zagađeni" su šumom, što
onemogućava donošenje pouzdanog zaključka o trenutnoj vrijednosti varijable stanja x
ovog sustava. Zadatak Kalmanovog filtra je upravo da procijeni tu vrijednost. Generalno
govoreći, filtar radi u dva koraka:
xk−¿¿ - a priori (predikcija) - na temelju posljednjeg poznatog stanja k-1
predviđa se sljedeće stanje k; ova procjena sadrži neku pogrešku zbog
šuma u sustavu koji pritom nije uzet u obzir, dakle estimacija bez
poznatog mjerenja;
5
xk+¿¿ - a posteriori (korekcija) - nakon što se stanje stvarno promijeni u
sljedeće., izmjeri se izlaz sustava y(k ) i na temelju tog zašumljenog
rezultata, te matrica koje opisuju ponašanje procesa i podataka o šumu
korigira se procjena stanja x .
Nakon toga, cijeli se ciklus ponavlja: predviđa se sljedeće stanje, mjeri se izlaz,
korigira procjena sljedećeg stanja i tako u krug. Mjerenje, dakle, dijeli algoritam realizacije
Kalmanovog filtra na dva dijela: dio prije mjerenja (procjena stanja a priori ) i nakon
mjerenja (procjena stanja uz poznato mjerenje, a posteriori). U nastavku teksta veličine
dobivene prije mjerenja označene su znakom "-".
Slika 2.1: Načelna shema realizacije Kalmanovog filtra
Prvi korak algoritma može se opisati sljedećim jednadžbama:
xk−¿=A xk−1
−¿+Buk ¿¿ (2-3)
Pk−¿=A P k−1 A T+Q¿ (2-4)
6
U prvom koraku na temelju determinističke jednadžbe stanja sustava procjenjuje se
vrijednost varijable stanja sustava. Ova procjena donosi se samo na temelju vrijednosti a
posteriori estimacije varijable stanja iz prethodnog koraka (najpreciznija estimacija) i ulaza
iz prethodnog koraka. Kvaliteta ove procjene ovisi o kvaliteti modela kojim je proces
opisan, kao i utjecaju šuma (modelirano vektorom w ) koji je u ovoj procjeni izostavljen u
stvarnom procesu.
Budući da se ovim korakom na temelju prethodnih veličina može predvidjeti stanje
sustava u trenutnom koraku, ovaj korak može se nazvati predikcijom (predviđa sljedeće
stanje sustava uz poznato prethodno stanje). Razlikom stvarnog i a priori procijenjenog
stanja definira se a priori pogreška estimacije:
ek−¿≡ xk− xk
−¿¿ ¿ (2-5)
Na temelju ove pogreške može se definirati kovarijanca pogreške apriori
estimacije:
Pk−¿=E¿ ¿ (2-6)
Jednadžba (2-4) pokazuje kako se na temelju a posteriori kovarijance pogreške iz
prethodnog koraka i kovarijance šuma sustava može izračunati kovarijanca pogreške a
priori estimacije za trenutni korak. Kalmanovo pojačanje možemo zapisati kroz dva
osnovna koraka rekurzivnog algoritma Kalmanovog filtra (slika 2.2).
Slika 2.2: Ciklus izvođenja rekurzivnog algoritma diskretnog Kalmanovog filtra
7
U prvom koraku rekurzivnog algoritma diskretnog Kalmanovog filtra procjenjuje
se a priori vrijednost varijable stanja sustava na temelju determinističke jednadžbe stanja
sustava – predikcija, te se proračunava pripadna a priori kovarijanca pogreške estimacije.
1) Korak predikcije:
xk−¿=A xk−1
+¿+B uk¿ ¿ (2-7)
Pk−¿= AP k−1
+¿ AT+Qk ¿¿ (2-8)
Drugi korak algoritma svodi se na korekciju estimacije na temelju izvedenog mjerenja. Mjerenje, dakle, igra ulogu povratne veze.
2) Korak korekcije:
K k=Pk−¿ H T¿ ¿¿ (2-9)
xk= xk−¿+Kk ¿¿ (2-10)
Pk=( I−K k H )Pk−¿ ¿ (2-11)
Ovako definiran ciklus rekurzivnog algoritma Kalmanovog filtra (Slika 2.2) naziva se još i
prediktor-korektor algoritam.
Jednadžba (2.10) u ovom koraku je najvažnija . Ona opisuje korekciju estimacije:
a priori vrijednosti estimacije stanja procesa dodaje se korekcijski član K k ¿ čime se
poboljšava estimacija varijable x u stanju k . Razlika ¿ naziva se inovacija mjerenja i njome
se modelira razlika (nepoklapanje) između stvarnog mjerenja yk i teorijski predviđenog
rezultata mjerenja koji slijedi iz jednadžbi procesa: H xk−¿¿ .K k je faktor koji se još naziva
Kalmanovim pojačanjem. Radi se zapravo o matrici dimenzija n × m čiji je zadatak da u a
posteriori fazi minimizira kovarijancu pogreške estimacije Pk+¿¿ , koja je definirana kao:
Pk+¿=E¿ ¿ (2-12)
Razlikom stvarnog i a posteriori procijenjenog stanja definira se a posteriori pogreška
estimacije:
ek+¿≡ x k−x k
+¿¿ ¿ (2-13)
8
Može se dokazati da K kovisi o a priori vrijednosti pogreške Pk−¿ ¿, matrici H i kovarijanci
mjerenog šuma R na način opisan jednadžbom (2-9).
Budući da će u sljedećem koraku predikcije (za sljedeće stanje) potrebno poznavati
kovarijancu pogreške iz prethodnog koraka Pk (iz ovog koraka će se u sljedećem ciklusu
upotrijebiti kao Pk−1), na kraju se računa Pk prema jednadžbi (2-11).
2.2 Primjer sinteze Kalmanova filtra u Matlabu-u
Na temelju prethodno opisanog općeg modela i algoritma Kalmanova filtra je u
ovome poglavlju prikazan jednostavan primjer sinteze Kalmanova filtra u Matlabu. Za
realizaciju se koristi Embedded MATLAB Function (Slika 2.3) iz Simulink Library
Browser-a u koju smo upisali kôd Kalmanov algoritam (Privitak 1. – Kalmanov filter).
Slika 2.3: Embedded MATLAB Function
Slika 2.4 - Shema sustava koji estimiramo
9
Pri projektiranju Kalmanovog filtra za sustav prikazan slikom 2.4 inicijalno su
pretpostavljeni sljedeći iznosi kovarijance procesnog i mjernog šuma:
Q=[1∙ 10− 4 00 1 ∙10−4] , R=0.1 , (2-14)
a matice sustava su zadane u obliku:
A=[0.4 0.60.1 0.3] , B=[13] , C=[2 1
1 00 1] , D=[000] (2-15)
Estimirana vrijednost za prvu varijablu stanja sustava prikazana je na slici 2.5.
Slika 2.5: Estimacija prve varijable stanja
Estimirana vrijednost za drugu varijablu stanja sustava prikazana je na slici 2.6.
10
Slika 2.6: Estimacija druge varijable stanja
Na slici 2.5 i 2.6 se uočava kako se odzivi stvarnih i estimiranih vrijednosti
varijabli stanja ne poklapaju, pa kako bi dobili što bolju estimaciju pomoću Kalmanova
filtra kroz nekoliko simulacija se mogu procijeniti matrice kovarijance
Q=[1 00 1] ,R=0.1 , (2-16)
a pripadajući odzivi za navedene vrijednosti kovarijanci su prikazane na slici 2.6 i 2.7.
Slika 2.6 – Estimacija prve varijable stanja
11
Slika 2.6 – Estimacija druge varijable stanja
Ovim primjerom se pokazuje koliko je bitno dobro odrediti matrice kovarijance.
Dijagonalni elementi matrice su Q=1 čime je naglašeno da je model nepouzdan i rezultat je
bolja estimacija.
12
3. Po dijelovima afini sustavi
Identifikacijom procesa traži se matematički model koji dobro opisuje ulazno-
izlazno vladanje procesa na osnovi eksperimentalno dobivenih podataka. Potrebno je da
takav model bude prikladan za projektiranje sustava upravljanja, kao i za predviđanje
budućeg vladanja procesa. Najčešće su korišteni linearni vremenski diskretni modeli
opisani jednadžbama diferencija, kao npr. ARX (engl. AutoRegressive eXogenous) i
ARMAX (engl. Auto-Regressive with Moving Average eXogenous), te modeli s prikazom
po varijablama stanja. Ponekad, međutim, linearni modeli ne mogu dati dovoljno dobar
opis dinamike sustava pa se koriste nelinearni modeli. Jedna od struktura nelinearnih
modela su po dijelovima afini modeli (engl. PieceWise Affine, PWA). PWA sustavi se
dobivaju dijeljenjem cjelokupnog skupa ulaza i stanja sustava na konačan broj poliedarskih
područja (politopa), nad kojima vrijedi afina funkcija preslikavanja vrijednosti ulaznih
veličina i stanja procesa na izlaz (podmodel) (Slika 3.1).
Slika 3.1: Po dijelovima afina funkcija s diskontinuitetima i tri podmodela
PWA modelom moguće je s proizvoljnom preciznošću opisati nelinearnu dinamiku
i zbog svojih svojstava može ga se koristiti za ekvivalentan opis hibridnih sustava koji uz
opis dinamičkog vladanja sadrže i elemente logike. Uz dobar opis kontinuiranih
13
nelinearnih funkcija, s PWA modelom moguća je estimacija kontinuiranih i
diskontinuiranih modela sustava pa možemo reći da po dijelovima afini sustavi imaju
univerzalna aproksimacijska svojstva.
Najčešće korišteni prikazi PWA modela su: modeli u prostoru stanja, modeli u
regresijskom obliku, HHARX i kanonički prikaz prema Chui.
3.1 Opis u prostoru stanja
Općeniti vremenski diskretni po dijelovima afin sustav se u modelu prostora stanja
opisuje s:
xk+1=A vkxk+B vk
uk+bvk
yk=C v kxk+ Dv k
uk+dv k (3-1)
gdje je k ∈ N 0 diskretan vremenski trenutak (korak diskretizacije), xk ∈ Rn vektor stanja
procesa, uk ∈ Rp je vektor ulaz u sustava, yk ∈ Rq je vektor izlaza iz sustava. Varijabla vk =
v (xk, uk) određuje aktivni podmodel u kojem se proces nalazi u danom trenutku k te
poprima vrijednosti iz konačnog diskretnog skupa 1, . . . , s, gdje s predstavlja broj afinih
podmodela te tada govorimo o preklapajućim sustavima (engl. switched systems) ili
općenito funkcija vektora xk i uk (politopi).
Matrice Ai, Bi, bi, Ci, Di, di predstavljaju dobro poznate matrice opisa linearnih
sustava u prostoru stanja. Vektori bv ki dvksu afine komponente opisa sustava u prostoru
stanja. Indeks i ∈ 1, . . . , s je indeks podmodela koji opisuje pojedini afino modeliran
dio sustava. Ovo je oblik vrlo prikladan za sintezu prediktivnog regulatora. Sve druge
PWA modele je prije postupka sinteze preporučljivo dovesti u ovaj oblik.
U skladu s prethodno danim opisom za sustav opisan u (3-1) možemo zaključiti
kako je u afinom sustavu s varijabilnim koeficijentima gdje odabir skupa parametara
(matrice linearnog dijela i odmak) ima efekt uklapanja/isklapanja s obzirom na funkciju
vk. Upravo takav efekt čini PWA modele vrstom hibridnog sustava. Općenito se aktivni
podmodel u prostoru stanja u koraku diskretizacije k određuje iz pozicije stanja i ulaznih
vrijednosti u prostoru Ω ⊆Rn × Rp koji je razapet varijablama stanja procesa i ulazima u
sustav (3-2).
14
vk=i ,ako je ( xk , uk ) ϵ Ωi ,i∈1 , . . ., s (3-2)
Prostor Ω je podijeljen u s politopa Ωi . Nad svakim politopom je definiran jedan afini
podmodel. Aktivni politop se određuje zadovoljenjem sljedeće relacije:
Ω=( x , u )∈ Rn× Rp : H i[xul ]≤ K i, (3-3)
gdje je matrica H i i vektor K i definiraju granice i-tog politopa. Kako bi se mogao
identificirati PWA model vjetroagregata, potrebno je nelinearne statičke funkcije u modelu
vjetroagregata aproksimirati funkcijama s PWA svojstvima.
3.2 Sinteza po dijelovima afinog modela vjetroagregata
Laboratorijski modela vjetroagregata koji se koristi za sintezu sustava upravljanja u
ovom radu je nelinearan. Nelinearnost proizlazi iz nelinearnih funkcija aerodinamičkog
momenta (Ma) i sile potiska (Ft). Obje nelinearnosti se mogu opisati u hiperprostoru
razapetom sljedećim veličinama: brzina vrtnje rotora ( ), kut zakreta lopatica (β) i
relativna brzina vjetra na glavčini vjetroagregata (vvjr ). U ovome radu se nije uzimala sila
potiska za dobivanje PWA modela vjetroagrerata s obzirom na fiksiranost tornja
laboratorijskog vjetroagregata. Kako bi se dobio PWA model vjetroagregata, potrebno je
nelinearne statičke funkcije Ma identificirati kao PWA mape uz minimiziranje pogreške
aproksimacije.
U radu [1] obavlja se identifikacija PWA modela vjetroagregata s naglaskom na
dobro poznavanje ponašanja u okolini njegove statičke karakteristike (slika 3.2) . Za PWA
identifikaciju je korištena metoda temeljena na uskupljavanju (eng. clustering based
identification). Metoda identifikacije PWA sustava temeljena na uskupljavanju
predstavljena je u [10].
15
Slika 3.2: Statička karakteristika laboratorijskog vjetroagregata
U ovom radu nije ponovno napravljena identifikacija aerodinamičkog momenta
laboratorijskog vjetroagregata već su podaci preuzeti iz [1].
PWA model vjetroagregata slijedi iz diferencijalne jednadžbe dinamike rotora (3-4)
uz korištenje identificiranih PWA modela aerodinamičkog momenta
J t ω=M a , PWA ( ω,β , vvj )−M g , (3-4)
gdje je:Ma,PWA - aerodinamički moment [Nm],
Mg: moment generatora [Nm],
Jt: moment inercije turbine [kgm2].
Za sintezu PWA modela vjetroagregata, koji će se koristiti za projektiranje
estimatora stanja, potrebno je nelinearnu statičku karakteristiku aerodinamičkog momenta
aproksimirati po dijelovima afinim modelom.
M a , PWA=Θi 1 β+Θi 2ω+Θi3 v vj+Θi 4 . (3-5)
16
Ako diferencijalnoj jednadžbi dinamike rotora 3.4 dodamo jednadžbu 3.5 slijedi:
J t ω=Θi 1 β+Θi 2 ω+Θi 3 vvj+Θi 4−M g , (3-6)
gdje su Θi , i=1,..,35 vektori parametara dodijeljeni svakom politopu (Slika 3.3) .
Θi 1=Θi1
βmax−βmin,
Θi 2=Θi 2
ωmax−ωmin,
Θi 2=Θi 3
V vj , max−V vj , min,
Θi 4=−Θi 1¿ βmin−Θi2∗ωmin−Θi 3∗V vj , min+Θi 4 .
Granične vrijednosti laboratorijskog vjetroagregata su
βmin=−0.1745 rad , βmax=0.3491 rad ,
ωmin=0 rads
, ωmax=29.7404 rads
,
V vj ,min=3.5 rads
, Vvj , max
= 12 rads
.
(3-7)
PWA modelom vjetroagregata će se upravljati zadavanjem reference kuta zakreta i
momenta generatora.
Budući da se brzina odziva momenta generatora mjeri u milisekundama, što
predstavlja vremensku konstantu koja je zanemariva u usporedbi sa svakom drugom
dinamikom na vjetroagregatu, u modelu će se pretpostaviti:
M g , ref ≈ M g (3-7)
17
Slika 3.3: Raspored politopa PWA modela aerodinamičkog momenta
Dinamika zakreta lopatica se može opisati PT2 članom pa slijedi:
ββref
= 10.6 s+1
, (3-8)
iz čega slijedi:
βref=0.6 β+β (3-9)
Može se primijetiti kako je brzina vjetra uključena u vektor stanja sustava iako ona
predstavlja vanjsku poremećajnu veličinu. S obzirom na nepoznatu dinamiku brzine vjetra,
pretpostavlja se njen konstantan iznos duž predikacijskog horizonta.
vvj=0 (3-10)
Iz jednadžbi 3.4, 3.9 i 3.10, uz kut zakreta, brzinu vrtnje i brzinu vjetra kao varijable stanja
slijedi kontinuirani PWA model vjetroagregata u prostoru stanja:
18
[ βωvvj
]=[−10.6
0 0
θi 1
J t
θi 2
J t
θi 3
J t
0 0 0] [ β
ωvvj
]+[ 10.6
0 0
0 −1J t
θi 4
J t][βref
M g
1 ] (3-11)
y=[1 0 00 1 0 ][ β
ωvvj
] , (3-12)
gdje se aktivni politop i=1,2,...,35 određuje pomoću vrijednosti: ω, β i vvj.
Sustav opisan jednadžbama (3-11) i (3-12) je diskretiziran uz period uzorkovanja
Ts=150 ms i koristi će se za potrebe sinteze Kalmanovog filtra.
Pronalaženje aktivnog podmodela vjetroagregata se svodi na traženje područja Ωi
koje zadovoljava sljedeću nejednakost:
H i[ βωv vj
]≤ K i , (3.14)
Matrica Hi i vektor Ki definiraju granice svakog politopa Ωi. Nejednakost iz izraza
(3.14) je u načelu zadovoljena samo za jedno područje jer ne postoje politopi koji se
preklapaju.
Iznimka od pravila je područje razgraničenja gdje oba susjedna modela
zadovoljavaju nejednakost. U tom slučaju se aktivira prvi pronađeni od susjednih
podmodela.
19
4. Projektiranje estimatora brzine vjetra za vjetroagregat
U ovom poglavlju je za estimaciju brzine vjetra realiziran Kalmanov filtar, koji kao
sastavni dio matematičkog modela vjetroagregata koristi po dijelovima afini model u
prostoru stanja. Simulacijska provjera je provedena u Matlab Simulinku, a potom je za
potrebe eksperimentalne provjere generiran C kod estimatora za izvršavanje algoritma u
stvarnom vremenu.
4.1 Sinteza Kalmanova filtra
U ovome poglavlju je PWA model vjetroagregata u prostoru stanja iskorišten za
opis determinističkog dijela propagacije stanja Kalmanova filtra.
Pošto smo definirali sve koeficijente laboratorijskog vjetroagregata u poglavlju 3.2,
možemo definirati matrice sustava Kalmanova filtra (4-3).
xk+1=A xk+B uk+wk
yk=C xk+vk
(4-3)
Moment inercije turbine Jt = 3.072 kgm2 a matrice sustava su:
A=[−10.6
0 0
Θi 1
J t
Θi2
J t
Θi 3
J t
0 0 0] ,
B=[−1/0.6 0 00 −1 /J t Θi 4 /J t
0 0 0 ] (4-4)
20
dok je matrica C jedinična. Još nam preostaje da generiramo matrice Hi i Ki .
H i=H i (∆ z )' ,
K i=K i+H i zmin,(4-5)
gdje su:
∆ z=[ βmax−βmin 0 00 ωmax−ωmin 00 0 V vj ,max−V vj ,min
] ,zmin=[ βmin
ωmin
V vj ,min]
(4-6)
Matlab kod diskretizacije je priložen u prilogu 2.
4.2 Simulacijski rezultati
Na slici 4.1 je prikazan matematički model laboratorijskog vjetroagregata i model
Kalmanova filtra pomoću kojeg se vrši estimacija kuta zakreta lopatica β, brzine vrtnje
rotora ω i brzine vjetra vvj. Kao ulaz u Kalmanov filtar uzima se kutna brzina vrtnje
vjetroagregata ω i kut zakreta lopatice β.
Kod simulacije, brzina vjetra je zadana preko dvije step funkcije kojima se zbraja
konstanta iznosa 3.2 (Slika 4.1 )
Ulaz u kalmanov filtar se sastoji od vektora estimiranih stanja iz prošlog koraka i
mjerenja snimljenih u trenutnom koraku.
Matrica kovarijance P se za sljedeću iteraciju pamti pomoću posebne deklaracije
varijabli (eng. persistent) kako bi se mogao provesti Kalmanov algoritam opisan u
poglavlju 2. Kod implementacije Kalmanova filtra u Matlabu dan je u prilogu 4.
21
Slika 4.1: Simulink model Kalmanova filtar i matematičkog modela vjetroagregata
Slika 4.3 prikazuje estimaciju kutne brzine vjetroagregata ω i estimirane vrijednosti
kutne brzine ω. Estimirana kutna brzina vjetroagregata ω vrlo dobro prati stvarnu
vrijednost ω i nema velikih istitravanja iz čega se može zaključiti da je realizirani model
Kalmanova filtra zadovoljavajući.
Slika 4.4 prikazuje generiranu vrijednost vjetra pomoću step funkcija i estimaciju
vjetra pomoću Kalmanova filtra. Može se primijetiti da estimirana vrijednost ima mala
nadvišenja, ali to je zbog toga što smo u vrijednosti pojedinih varijabli u matricama
kovarijance (3-7) podešene da Kalmanov filtar brzo reagira na promjenu.
22
Slika 4.3 Estimacija kutne brzine vjetroagregata
Slika 4.4 Estimacija kutne brzine vjetroagregata
23
U algoritmu Kalmanova filtra matrica kovarijance Q je nepouzdanost modela, a
matrica R nepouzdanost mjerenja. Što su dodijeljene vrijednosti matrici Q i R veće to je
model nepouzdaniji a mjerenje pouzdanije. U ovome radu matrice Q i R su:
Q=[0.1 0 00 0.1 00 0 0.1] ,
R=[10 00 20 ]
(4-7)
Matlab kod Kalmanove funkcije je priložen u prilogu 3.
24
5. Implementacija estimatora na laboratorijskom vjetroagregatu
Za provjeru eksperimentalne valjanosti algoritma estimacije potrebno je generirati
C kod estimatora za izvršavanje algoritma u stvarnom vremenu. Da bi se realizirao
algoritam koji se izvršava u stvarnom vremenu potrebno je najprije u Matlabu provesti
diskretizacije pomoću ZOH metode kao što je opisano u poglavlju 4.1. te napraviti
posebnu funkciju mpt_export.m koja kreira header datoteku sa svim potrebnim
parametrima Kalmanova filtra (prilog 2).
5.1 Generiranje C koda estimacije
Pošto se laboratorijski vjetroagregat upravlja preko LabVIEW-a funkciju
Kalmanova filtra (prilog 3) u Matlabu potrebno je prepisati u C kod funkciju kako bi se
algoritam mogao izvršavati u stvarnom vremenu. Navedena funkcija prima ulazne
parametre Y, U, X, P, Q, R tj. parametre iz jednadžbe 3-3 a matrice H, K, A, B, C, D se
učitavaju preko header datoteke. Generiranje C koda je napravljeno na način da je
automatizirano i moguće ga je jednostavno generirati uz promjenu PWA modela
aerodinamičkog momenta vjetroagregata.
Slika 5.1: Call Library Function Node
Iz C funkcije Kalmanovog filtra potrebno je generirati .dll datoteku (eng. Dynamic-
link library) pošto LabVIEW ima Call Library Function Node element koji omogućava
izvršavanje .dll datoteke u stvarnom vremenu.
Postupak generiranja .dll datoteke i implementacija u Call Library Function Node
opisan je u literaturi [9]. U Matlabu da bi se pamtilo prijašnje stanje pojedinih varijabla iz
25
Kalmanovog filtra morali smo koristiti deklaraciju persistent, a u LabVIEW se ista
funkcionalnost pamćenja za sljedeću iteraciju ostvaruje korištenjem posmačnih registara.
Slika 5.2 Generiranje C koda za izvršavanje u stvarnom vremenu
Početne vrijednosti pojedinih ulaznih parametara su :
X=[ 00
3.5] , P0=[10 0 00 10 00 0 10],
Q=[0.0122 0 00 0.02 00 0 0.01] ,R=[0.01 0
0 0.03] . (5-1)
Iznosi u matricama su određeni eksperimentalno.
26
Slika 5.3: realizacija Kalmanova filtra u Lab Vieweru
5.2 Eksperimentalni rezultati
Nakon što je generiran C kod algoritma estimatora opisanog u poglavlju 5.1 može
se pristupiti eksperimentalnoj provjeri rezultata estimacije. Eksperimentalna provjera je
provedena na laboratorijskom vjetroagregatu.
Prva varijabla koja se estimira je kut zakreta lopatica β. Pošto jako dobro
poznajemo kut zakreta β iz sustava, estimirana vrijednost β nije zašumljena i na
zadovoljavajući način prati stvarnu vrijednost kutne brzine.
Slika 5.3: Eksperimentalna provjera estimacije kuta zakreta lopatica
27
Druga varijabala koja se estimira je kutna brzina ω. Varijablu kutne brzine isto
dobro poznajemo iz modela pa se može vidjeti na slici 5.4.i 5.5 da estimacija kutne brzine
ω na zadovoljavajući način prati stvarnu vrijednost ω.
Slika 5.4: Eksperimentalna provjera estimacije brzine rotora
Pošto se iz slike 5.4 slabo vidi razlika između estimirane i stvarne vrijednosti kutne
brzine na slici 5.5 izdvojen je jedan dio intervala mjerenja.
28
Slika 5.4: Eksperimentalna provjera estimacije brzine rotora
Treća varijabla koja se estimira je brzina vjetra. Za nju ne pretpostavljamo
ponašanje u matematičkom modelu determinističkog sustava te njezina estimacija ovisi
isključivo o točnosti identificirane mape aerodinamičkog momenta. Što je identifikacija
sustava provedena preciznije to će i estimacija ove varijable biti točnija. Kako bi se
ostvarila što bolja estimacija brzine vjetra eksperimentalne provjere su napravljene na
nekoliko identificiranih modela. Na slici 5.5 se vidi odstupanje upravo zbog nedovoljno
dobrog poznavanja karakteristike aerodinamičkog momenta. Slika 5.6 prikazuje brzinu
vrtnje ventilatora.
29
Slika 5.5: Eksperimentalna provjera estimacije vjetra
Slika 5.6: Brzina vrtnje ventilatora
30
31
Zaključak
Pri projektiranju sustava automatskog upravljanja za stvarne procese, često se
javljaju ograničenja i poteškoće. Jedno od ograničenja je i osjetljivost sustava i mjernih
članova na šumove, te nedostupnost svih potrebnih mjerenja u povratnoj vezi sustava
upravljanja.
Kalmanov filtar kao optimalni estimator vrlo dobro rješava problem estimacije
varijabli stanja na temelju zašumljenih mjerenja, pri čemu je šum definiran kao bijeli
Gaussov šum nulte srednje vrijednosti. Pri projektiranju Kalmanovog filtra bitno je
poznavati matematički model sustava, te kovarijance procesnog i mjernog šuma koje se
utvrđuju identifikacijom sustava.
Što je identifikacija PWA modela laboratorijskog vjetroagregata točnija to će i
estimacija brzine vjetra biti preciznija.
32
Literatura
[1] NIKOLA HURE , Identifikacija po dijelovima afinog modela vjetroagregata u okolini njegove statičke karakteristike, Zagrebu, (2010)
[2] PROF.DR.SC. NEDJELJKO PERIĆ, PROF. DR. SC. IVAN PETKOVIĆ , Teorija estimacije, materijali za predavanje.
[3] AN INTRODUCTION TO THE KALMAN FILTER, http://www.goddardconsulting.ca/kalman-filter.html
[4] THEORY OF POLYTOPES AND MULTI-PARAMETRIC PROGRAMMING, http://control.ee.ethz.ch/~mpt/downloads/MPTmanual.pdf
[5] MATE JELAVIĆ , Upravljanje vjetroagregatom s ciljem smanjenja dinamičkih opterećenja konstrukcije. Doktorska disertacija, FER, Zagreb, 2009
[6] GREG WELCH, GARY BISHOP, An Introduction to the Kalman Filter, Department of Computer Science, University of North Carolina at Chapel Hill, Chapel Hill, July 24, 2006
[7] DOC.DR.SC. MARIO VAŠAK, Prediktivno upravljanje sustavima korištenjem algebra skupova, prosinac 2008.
[8] PROF.DR.SC. NEDJELJKO PERIĆ , DOC.DR.SC. MARIO VAŠAK, Identifikacija po djelovima afinog modela procesa temeljena na uskupljavanju, The 31st Annual Conference of the IEEE Industrial Electronics Society, Rayleigh, North Carolina, USA, November 6-10, 2005
[9] USING EXISTING C CODE OR A DLL IN LABVIEW, https://decibel.ni.com/content/docs/DOC-1690
[10] Giancarlo Ferrari-Trecate, Marco Muselli, Diego Liberati, Manfred
Morari. A clustering technique for the identification of piecewise affine
systems. Automatica, 39: 205-217, 2003.
33
Sažetak
U ovome radu napravljena je estimacija vjetra pomoću Kalmanova filtra. Realiziran
je algoritam Kalmanova filtra i provedena simulacijska provjera estimacije na
matematičkom modelu vjetroagregata i eksperimentalna provjera na laboratorijskom
vjetroagregatu. Napravljen je PWA model laboratorijskog vjetroagregata za potrebe sinteze
Kalmanova filtra. Za eksperimentalnu provjeru generiran je C koda estimatora na način da
je automatizirano moguće promijeniti PWA modela aerodinamičkog momenta
vjetroagregata.
Ključne riječi: Estimacija, Kalmanov filter, po dijelovima afini model vjetroagregata,
generiranje C kod estimatora.
34
Privitak
Privitak 1. – Kalmanov filtar
function [xOut, yOut] = KALMAN(u,y)persistent P x A B H Q R%incijalizacija varijabli na pocetkuif isempty(P) x = [0;0]; P = eye(2)*100; A = [0.35 0.65; 0.12 0.25]; B = [1.1; 2.8]; H = [2 1]; Q = 0.01^2*eye(2); R = 0.1^2*10;end% Algoritam Kalmanovoga filtrax = A*x + B*u;P = A*P*A' + Q; % Kalmanovo pojacanjeK = P*H'/(H*P*H' + R); % razlika - stvarno mjerenje y i predvidanjarazlika = y - H*x; % a priori vrijednost estimacijex = x + K*razlika;P = (eye(size(K,1))-K*H)*P; % rezultat doticnog stanjaxOut = x;yOut = H*xOut;
35
Privitak 2.- DiskretizacijaJt=3.072;
%incijalizacija varijabli beta_min=-2*pi/180; beta_max=40*pi/180; omega_max=284*pi/30; omega_min = 0; Vvj_max=12; Vvj_min=2; for i=1:idmodes.s theta =idmodes.pari*6.3;
theta1= (theta(1)/(beta_max-beta_min)); theta1 = (theta(2)/(omega_max - omega_min)); theta3= (theta(3)/(Vvj_max-Vvj_min)); theta4= -theta2*omega_min – theta1*beta_min - theta3*Vvj_min + theta(4); A=[(-1/0.6) 0 0;theta1/Jt theta1/Jt theta3/Jt;0 0 0];B=[(1/0.6) 0 0;0 (-1/Jt) theta4/Jt;0 0 0 ];C= [1 0 0; 0 1 0];D=[]; %diskretizacija
sys1=ss(A,B,C,D)diskretni_model=c2d(sys1,0.15,'zoh');PWAmodel.Ai=diskretni_model.a;PWAmodel.Bi=diskretni_model.b;PWAmodel.Ci=diskretni_model.c;PWAmodel.Di=diskretni_model.d; [Hi,Ki]=double(idmodes.regions(i)); delta_Z = [ (beta_max-beta_min) 0 0; 0 (omega_max-omega_min) 0 ; 0 0 (Vvj_max - Vvj_min)] ; Z_min= [beta_min ;omega_min ; Vvj_min]; H_i = Hi* inv(delta_Z);K_i=Ki + H_i*Z_min;PWAmodel.H i=H_i ;PWAmodel.K i=K_i ;
% generiranje PWAmodel.h datoteke za C kod estimacijempt_export(PWAmodel,'PWAmodel.h');
end
36
Privitak 3.- kalman.m
function Xnext= kalman(Bref, Mg,omega, beta, beta_e, omega_e, v_vj, PWAmodel)persistent P A B C Q R s=8 ;P=[];%incijalizacija varijabli beta_min=-10*pi/180; beta_max=20*pi/180; omega_max=284*pi/30; omega_min = 0; v_vj_max=12; v_vj_min=3.5; if isempty(P) P = eye(3)*10; X = [0;0;0]; Q=[0.1 0 0; 0 0.1 0; 0 0 0.1]; R=[10 0; 0 20];end
u=[Bref;Mg;1];X=[beta_e;omega_e;v_vj];X_min= [beta_min; omega_min; v_vj_min];X_max= [beta_max; omega_max; v_vj_max];Y=[beta;omega];% Određivanje podmodelafor i=1:s if ( (PWAmodel.Hi*X) <= PWAmodel.Ki) A=PWAmodel.Ai; B=PWAmodel.Bi; C= PWAmodel.Ci; % Algoritam Kalmanovoga filtra X = A*X + B*u; P = A*P*A' + Q; % Kalmanovo pojacanje K = P*C'/(C*P*C' + R); % razlika - stvarno mjerenje y i predvidanja razlika = Y - C*X; % a priori vrijednost estimacije X = X + K*razlika; %ako je izvan podmodela postavi na min ili max for j=1:3 if (X(j,1) < X_min(j,1)) X(j,1)= X_min(j,1); end if (X(j,1) > X_max(j,1)) X(j,1)= X_max-ones(3,1)*1e-5; end end P = (eye(size(K,1))-K*C)*P; % rezultat doticnog stanja Xnext = X; Y = C*Xnext; disp(num2str(i)); break endend
37
end
38