View
25
Download
0
Category
Preview:
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET STROJARSTVA I BRODOGRADNJE
NEIZRAZITO I DIGITALNO
UPRAVLJANJE
seminarski zadatak
Mentor: Student:
Dr. sc. Danijel Pavković Marko Leš
0035177826
MEHATRONIKA I ROBOTIKA
Zagreb, 2014. godina
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje I
SADRŽAJ
SADRŽAJ ................................................................................................................................... I
POPIS SLIKA ............................................................................................................................ II
1. UVOD .................................................................................................................................. 1
2. ZADATAK .......................................................................................................................... 2
3. ESTIMACIJA AKUMULIRANOG NABOJA ................................................................... 3
3.1. Luenbergerov estimator akumuliranog naboja prvog reda .......................................... 3
3.2. Luenbergerov estimator akumuliranog naboja drugog reda ........................................ 8
4. SIMULACIJSKI MODEL U SIMULINKU I ANALIZA ESTIMATORA...................... 13
5. ZAKLJUČAK .................................................................................................................... 21
6. LITERATURA .................................................................................................................. 22
DODATAK – MATLAB KOD ................................................................................................ 23
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje II
POPIS SLIKA
Slika 1. Položaj polova estimatora prvog reda ..................................................................... 7
Slika 2. Položaj polova estimatora drugog reda ................................................................. 12
Slika 3. Simulacijski model u Simulinku ........................................................................... 13
Slika 4. Model estimatora u Simulinku .............................................................................. 14
Slika 5. Struja punjenja i stuja balansiranja za prvi slučaj ................................................. 14
Slika 6. Akumulirani naboj za prvi slučaj - lijevo prvog reda, desno drugog reda ............ 15
Slika 7. Napon na ultrakondenzatorskom modulu za prvi slučaj - lijevo prvog reda, desno
drugog reda ............................................................................................................ 15
Slika 8. Greška estimacije naboja za prvi slučaj - lijevo prvog reda, desno drugog reda .. 16
Slika 9. Greška estimacije naboja u logoritamskom mjerilu za prvi slučaj - lijevo prvog
reda, desno drugog reda ......................................................................................... 16
Slika 10. Struja punjenja i stuja balansiranja za drugi slučaj ............................................... 17
Slika 11. Akumulirani naboj za drugi slučaj - lijevo prvog reda, desno drugog reda .......... 17
Slika 12. Napon na ultrakondenzatorskom modulu za drugi slučaj - lijevo prvog reda, desno
drugog reda ............................................................................................................ 18
Slika 13. Greška estimacije naboja za drugi slučaj - lijevo prvog reda, desno drugog reda 18
Slika 14. Greška estimacije naboja u logoritamskom mjerilu za drugi slučaj - lijevo prvog
reda, desno drugog reda ......................................................................................... 18
Slika 15. Struja punjenja i stuja balansiranja za treći slučaj ................................................. 19
Slika 16. Akumulirani naboj za treći slučaj - lijevo prvog reda, desno drugog reda ........... 19
Slika 17. Napon na ultrakondenzatorskom modulu za treći slučaj - lijevo prvog reda, desno
drugog reda ............................................................................................................ 20
Slika 18. Greška estimacije naboja za treći slučaj - lijevo prvog reda, desno drugog reda .. 20
Slika 19. Greška estimacije naboja u logoritamskom mjerilu za drugi slučaj - lijevo prvog
reda, desno drugog reda ......................................................................................... 20
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 1
1. UVOD
Kako bi se kod električnih vozila, pogotovo natjecateljskih, postigla bolja dinamička
svojstva, te veća autonomija, koristi se regenerativno kočenje. Energija koja bi se kod kočenja
pred zavoj ili kočenja na nizbrdici pretvorila u toplinsku, pretvara se u električnu energiju
pomoću generatora na kotačima, skladišti, te ponovno pretvara u mehaničku kod ubrzavanja.
Taj trenutak skladištenja električne energije je vremenski jako malen, te je potrebno uskladištiti
što veću količinu energije. Zbog svojih svojstava kao dugačak životni vijek, visoka efikasnost,
te velika gustća snage idealan odabir za skladištenje električne energije su ultrakondenzatorski
moduli. Ti muduli imaju i nedostatke kao ograničen kapacitet, pa je potrebno mjeriti, odnosno
estimirati stanje napunjenosti i još neke parametre, kako bi se što efikasnije iskoristili.
Nemjerljive veličine određuju se digitalnim algoritmima koji se koriste za procjenu stanja
sustava na temelju mjerljivih veličina i modela sustava, a zovu se estimatori stanja ili observeri.
Estimatori stanja koriste se u sustavima upravljanja kod kojih se zakon upravljanja
temelji na poznavanju stanja sustava, a mogu se koristiti i u sustavima za estimaciju
determinističkih poremećaja ili šuma mjerenje koji djeluju na sustav. Prema tipu rada dijele se
na estimatore punog reda i estimatore reduciranog reda koji se još nazivaju i Luenbergerovi
estimatori. Još se mogu podijeliti na prediktivne ili sadašnje.
U ovom seminaru opisano je projektiranje estimatora akumuliranog naboja Qu
ultrakondenzatorskog modula zasnovan na Luenbergerovom estimatoru gdje se parazitska
struja (struja balansiranja) ib modelira kao poremećajna veličina prvog, odnosno drugog reda.
Na kraju su projektirani estimatori ispitani za tri karakteristična slučaja.
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 2
2. ZADATAK
Potrebno je projektirati estimator akumuliranog naboja Qu ultrakondenzatorskog modula*
iznosa kapaciteta Cu = 20 F, serijskog otpora Ru = 0.1 Ω i paralelnog otpora Rb = 50 Ω, zasnovan
na Luenbergovom estimatoru gdje se parazitska struja (struja balansiranja) ib modelira kao
poremećajna veličina prvog, odnosno drugog reda. Prag okidanja ekvivalentne diode je 6 V.
Sintezu estimatora provesti u vremenski-diskretnom području (z-području) uz izbor
karakterističnog polinoma prijenosne funkcije estimatora prema kriteriju dvostrukog odnosa.**
Dobivene estimatore potrebno je ispitati simulacijama na računalu s obzirom na:
1. Struju ultrakondenzatora iu jednaku nuli kada je početna vrijednost akumuliranog
naboja u estimatoru 200 As, dok je stvar na početna vrijednost naboja ultrakondenzatora
100 As.
2. Skokovitu pobudu (konstantnu struju punjenja ultrakondenzatora) iu od nule do 20 A za
točne vrijednosti početnih uvjeta (Qu = 100 As)
3. Šum mjerenja izlazne veličine uu (iznosa varijance σ2 = 0.0001 V2), kod konstantne stuje
punjenja iznosa 5 A.
Odabrati vrijeme uzorkovanja estimatora T = 0.01 s.
a b
Nadomjesni strujni krug ultrakondenzatorskog modula (a) i ekvivalentni blokovski dijagram (b).
* Simulacijski model preuzima se sa zadatkom.
** Odabirom nadomjesne vremenske konstante estimatora Teo podešava se željena dinamika estimatora.
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 3
3. ESTIMACIJA AKUMULIRANOG NABOJA
3.1. Luenbergerov estimator akumuliranog naboja prvog reda
Sinteza Luenbergerovog estimatora akumuliranog naboja ultrakondenzatorskog modula
zasniva se na linearnom modelu procesa proširenog linearnim modelom poremećajne veličine
(parazitske struje) prvog reda:
𝑑𝑄𝑢
𝑑𝑡= 𝑖𝑢 − 𝑖𝑏
𝑑𝑖𝑏𝑑𝑡
= 0
𝑈𝑢 =1
𝐶𝑢∙ 𝑄𝑢 + 𝑅𝑢 ∙ (𝑖𝑢 − 𝑖𝑏)
Vremenski-kontinuirani model zapisuje se u obliku prostora stanja:
�̇� = 𝑨𝒙 + 𝑩𝑢
𝑦 = 𝑪𝒙 + 𝑫𝑢
Jednadžba stanja:
[𝑄�̇�
𝑑𝑖𝑏𝑑𝑡
] = [0 −10 0
] [𝑄𝑢
𝑖𝑏] + [
10] ∙ 𝑖𝑢
Jednadžba izlaza:
𝑦 = [1
𝐶𝑢−𝑅𝑢] [
𝑄𝑢
𝑖𝑏] + 𝑅𝑢 ∙ 𝑖𝑢
Vremenski kontinuirani model potrebno je prebaciti u ekvivalentni vremenski diskretni model:
𝒙(𝑘 + 1) = 𝑭𝒙(𝑘) + 𝑮𝑢(𝑘)
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 4
𝑦(𝑘) = 𝑯𝒙(𝑘) + 𝑫𝑢(𝑘)
Na temelju sljedećih jednadžbi dobivaju se parametri vremenski diskretnog modela uz
pretpostavku ZOH na ulasku vremenski kontinuiranog procesa:
𝑭 = 𝑒𝑨𝑇 𝑮 = 𝑨−𝟏(𝑒𝑨𝑇 − 1)𝑩 𝑯 = 𝑪
Pošto rješenja matrica F i G nije uvijek moguće naći u simboličkom obliku, one se računaju
numerički ili razvojem u Taylorov red.
𝑭 = 𝑒𝑨𝑇 = ∑𝑨2𝑇2
𝑛!
∞
𝑛=0
= 𝑰 + 𝑨𝑇 +𝑨2𝑇2
2!+
𝑨3𝑇3
3!+ ⋯
𝑮 = 𝑨−𝟏(𝑒𝑨𝑇 − 1)𝑩 = (𝑰 +𝑨𝑇
2!+
𝑨2𝑇2
3!+ ⋯)𝑩𝑇
Na temelju Taylorovog reda izračunate su matrice F i G, dok je matrica H jednaka matrici C.
𝑭 = 𝑰 + 𝑨𝑇 = [1 −𝑇0 1
]
𝑮 = (𝑰 +𝑨𝑇
2!)𝑩𝑇 = [
𝑇0]
𝑯 = 𝑪 = [1
𝐶𝑢−𝑅𝑢]
Struktura estimatora opisana je sljedećom dinamičkom jednadžbom u prostoru stanja:
�̂�(𝑘 + 1) = 𝑭�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆[𝑦(𝑘) − �̂�(𝑘)]
�̂�(𝑘) = 𝑯�̂�(𝑘) + 𝑫𝑢(𝑘)
Pri čemu je: 𝑲𝒆 = [𝐾1 𝐾2]𝑇
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 5
Uvrštavanjem 𝑦(𝑘) i �̂�(𝑘) u jednadžbu stanja dobivamo sljedeće:
�̂�(𝑘 + 1) = 𝑭�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆[𝑯𝒙(𝑘) + 𝑫𝑢(𝑘) − 𝑯�̂�(𝑘) − 𝑫𝑢(𝑘)]
�̂�(𝑘 + 1) = 𝑭�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆𝑯𝒙(𝑘) − 𝑲𝒆𝑯�̂�(𝑘)
�̂�(𝑘 + 1) = (𝑭 − 𝑲𝒆𝑯)�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆𝑯𝒙(𝑘)
Model se prebacuje u z-područje:
𝑧𝑰�̂�(𝑧) = (𝑭 − 𝑲𝒆𝑯)�̂�(𝑧) + 𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)
�̂�(𝑧) = (𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)−1[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]
�̂�(𝑧) = 𝑯�̂�(𝑧) + 𝑫𝑢(𝑧)
Uvrštavanjem �̂�(𝑧) u gornju jednadžbu dobivamo:
�̂�(𝑧) = 𝑯[(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)−1[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]] + 𝑫𝑢(𝑧)
Prijenosna funkcija glasi:
𝐺(𝑧) =�̂�(𝑧)
𝑢(𝑧)=
𝑯[(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)−1[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]] + 𝑫𝑢(𝑧)
𝑢(𝑧)
𝐺(𝑧) =𝑯[adj(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]]
1𝑢(𝑧)
+ det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)𝑫
det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)
Karakteristični polinom glasi:
𝑁(𝑧) = det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯) = 𝑧2 + (−𝐾2𝑅𝑢 − 2 +𝐾1
𝐶𝑢) 𝑧 + (𝐾2𝑅𝑢 + 1 −
𝐾1
𝐶𝑢−
𝐾2𝑇
𝐶𝑢)
𝑁(𝑧) = det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯) = 𝑧2 + 𝑎1𝑧 + 𝑎0
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 6
𝑎1 = −𝐾2𝑅𝑢 − 2 +𝐾1
𝐶𝑢
𝑎0 = 𝐾2𝑅𝑢 + 1 −𝐾1
𝐶𝑢−
𝐾2𝑇
𝐶𝑢
A rješavanjem jednadžbi dobivamo izraze za pojačanja estimatora:
𝐾1 = (−𝑎1 − 𝑎0 − 1)𝐶𝑢
2𝑅𝑢
𝑇+ 𝑎1𝐶𝑢 + 2𝐶𝑢
𝐾2 = (−𝑎1 − 𝑎0 − 1)𝐶𝑢
𝑇
Estimator se podešava preko vremenski-diskretnog ekvivalentnog karakterističnog
polinoma optimuma dvostrukog odnosa. Prema redu prijenosne funkcije karakteristični
polinom optimuma dvostrukog odnosa u s-području ima oblik:
𝐴(𝑠) = 𝐷2𝑇𝑒2𝑠2 + 𝑇𝑒𝑠 + 1
Karakteristični odnos D2 postavljen je na 0.5 kako bi se dobio kvazi-aperiodski odziv,
dok vrijednost nadomjesne vremenske konstante Te ovisi o dinamici objekta upravljanja i ona
se mijenja i ispituje za tri slučaja.
Rješavanjem karakteristične jednadžbe optimuma dvostrukog odnosa dobiju se polovi
u s-području koji se zatim moraju prebaciti u z-područje pomoću sljedećih izraza:
𝑧 = 𝑒𝑠𝑇 𝑧 = σ + 𝑗ω 𝑧 = 𝑒σ𝑇(cosω𝑇 + jsinω𝑇)
Uvrštavanjem polova u z-podrčju u donji izraz dobivamo karakteristični polinom
ekvivalentnog vremenski diskretnog optimuma dvostrukog odnosa sa koeficijentima a0 i a1.
𝑃(𝑧) = ∏(𝑧 − 𝑧𝑖) = 𝑧2 + 𝑎1𝑧 +
2
𝑖=1
𝑎0
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 7
Odabirom nadomjesne vremenske konstante Te dobivena su sljedeća pojačanja
estimatora akumuliranog naboja prvog reda:
Tablica 1. Pojačanja estimatora akumuliranog naboja prvog reda
Te K1 K2
75 ms -119,16 -62,23
150 ms -30,59 -16,63
300 ms -7,26 -4,29
Prema položaju polova (Slika 1.) vidljivo je da su stabilni i dobro prigušeni. Nalaze se
na krivulju prigušenja ζ=0.707.
Slika 1. Položaj polova estimatora prvog reda
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 8
3.2. Luenbergerov estimator akumuliranog naboja drugog reda
Kod estimatora drugog reda potrebno je prethodni model proširiti za jedan red:
𝑑𝑄𝑢
𝑑𝑡= 𝑖𝑢 − 𝑖𝑏
𝑑𝑖𝑏𝑑𝑡
=𝑑𝑖𝑏𝑑𝑡
𝑑2𝑖𝑏𝑑𝑡2
= 0
𝑈𝑢 =1
𝐶𝑢∙ 𝑄𝑢 + 𝑅𝑢 ∙ (𝑖𝑢 − 𝑖𝑏)
Vremenski-kontinuirani model zapisuje se u obliku prostora stanja:
�̇� = 𝑨𝒙 + 𝑩𝑢
𝑦 = 𝑪𝒙 + 𝑫𝑢
Jednadžba stanja:
[
𝑄�̇�
𝑑𝑖𝑏𝑑𝑡
𝑑2𝑖𝑏𝑑𝑡2 ]
= [0 −1 00 0 10 0 0
] [
𝑄𝑢
𝑖𝑏𝑑𝑖𝑏𝑑𝑡
] + [100] ∙ 𝑖𝑢
Jednadžba izlaza:
𝑦 = [1
𝐶𝑢−𝑅𝑢 0] [
𝑄𝑢
𝑖𝑏𝑑𝑖𝑏𝑑𝑡
] + 𝑅𝑢 ∙ 𝑖𝑢
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 9
Vremenski kontinuirani model potrebno je prebaciti u ekvivalentni vremenski diskretni model:
𝒙(𝑘 + 1) = 𝑭𝒙(𝑘) + 𝑮𝑢(𝑘)
𝑦(𝑘) = 𝑯𝒙(𝑘) + 𝑫𝑢(𝑘)
Na temelju sljedećih jednadžbi dobivaju se parametri vremenski diskretnog modela uz
pretpostavku ZOH na ulasku vremenski kontinuiranog procesa:
𝑭 = 𝑒𝑨𝑇 𝑮 = 𝑨−𝟏(𝑒𝑨𝑇 − 1)𝑩 𝑯 = 𝑪
Pošto rješenja matrica F i G nije uvijek moguće naći u simboličkom obliku, one se računaju
numerički ili razvojem u Taylorov red.
𝑭 = 𝑒𝑨𝑇 = ∑𝑨2𝑇2
𝑛!
∞
𝑛=0
= 𝑰 + 𝑨𝑇 +𝑨2𝑇2
2!+
𝑨3𝑇3
3!+ ⋯
𝑮 = 𝑨−𝟏(𝑒𝑨𝑇 − 1)𝑩 = (𝑰 +𝑨𝑇
2!+
𝑨2𝑇2
3!+ ⋯)𝑩𝑇
Na temelju Taylorovog reda izračunate su matrice F i G, dok je matrica H jednaka matrici C.
𝑭 = 𝑰 + 𝑨𝑇 +𝑨2𝑇2
2!= [
1 −𝑇 −𝑇2
20 1 𝑇0 0 1
]
𝑮 = (𝑰 +𝑨𝑇
2!+
𝑨2𝑇2
3!)𝑩𝑇 = [
𝑇00]
𝑯 = 𝑪 = [1
𝐶𝑢−𝑅𝑢 0]
Struktura estimatora opisana je sljedećom dinamičkom jednadžbom u prostoru stanja:
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 10
�̂�(𝑘 + 1) = 𝑭�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆[𝑦(𝑘) − �̂�(𝑘)]
�̂�(𝑘) = 𝑯�̂�(𝑘) + 𝑫𝑢
Pri čemu je: 𝑲𝒆 = [𝐾1 𝐾2 𝐾3]𝑇
Uvrštavanjem 𝑦(𝑘) i �̂�(𝑘) u jednadžbu stanja dobivamo sljedeće:
�̂�(𝑘 + 1) = 𝑭�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆[𝑯𝒙(𝑘) + 𝑫𝑢(𝑘) − 𝑯�̂�(𝑘) − 𝑫𝑢]
�̂�(𝑘 + 1) = 𝑭�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆𝑯𝒙(𝑘) − 𝑲𝒆𝑯�̂�(𝑘)
�̂�(𝑘 + 1) = (𝑭 − 𝑲𝒆𝑯)�̂�(𝑘) + 𝑮𝑢(𝑘) + 𝑲𝒆𝑯𝒙(𝑘)
Model se prebacuje u z-područje:
𝑧𝑰�̂�(𝑧) = (𝑭 − 𝑲𝒆𝑯)�̂�(𝑧) + 𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)
�̂�(𝑧) = (𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)−1[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]
�̂�(𝑧) = 𝑯�̂�(𝑧) + 𝑫𝑢(𝑧)
Uvrštavanjem �̂�(𝑧) u gornju jednadžbu dobivamo:
�̂�(𝑧) = 𝑯[(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)−1[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]] + 𝑫𝑢(𝑧)
Prijenosna funkcija glasi:
𝐺(𝑧) =�̂�(𝑧)
𝑢(𝑧)=
𝑯[(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)−1[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]] + 𝑫𝑢(𝑧)
𝑢(𝑧)
𝐺(𝑧) =𝑯[adj(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)[𝑮𝑢(𝑧) + 𝑲𝒆𝑯𝒙(𝑧)]]
1𝑢(𝑧)
+ det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)𝑫
det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯)
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 11
Karakteristični polinom glasi:
𝑁(𝑧) = det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯) =
= 𝑧3 + (−3 +𝐾1
𝐶𝑢− 𝐾2𝑅𝑢) 𝑧2
+ (3 −2𝐾1
𝐶𝑢−
𝐾2𝑇
𝐶𝑢−
𝐾3𝑇2
2𝐶𝑢+ 2𝐾2𝑅𝑢 − 𝐾3𝑅𝑢𝑇) 𝑧
+ (−1 +𝐾1
𝐶𝑢−
𝐾3𝑇2
2𝐶𝑢+
𝐾2𝑇
𝐶𝑢− 𝐾2𝑅𝑢 + 𝐾3𝑅𝑢𝑇)
𝑁(𝑧) = det(𝑧𝑰 − 𝑭 + 𝑲𝒆𝑯) = 𝑧3 + 𝑎2𝑧2 + 𝑎1𝑧 + 𝑎0
𝑎2 = −3 +𝐾1
𝐶𝑢− 𝐾2𝑅𝑢
𝑎1 = 3 −2𝐾1
𝐶𝑢−
𝐾2𝑇
𝐶𝑢−
𝐾3𝑇2
2𝐶𝑢+ 2𝐾2𝑅𝑢 − 𝐾3𝑅𝑢𝑇
𝑎0 = −1 +𝐾1
𝐶𝑢−
𝐾3𝑇2
2𝐶𝑢+
𝐾2𝑇
𝐶𝑢− 𝐾2𝑅𝑢 + 𝐾3𝑅𝑢𝑇
Estimator se podešava preko vremenski-diskretnog ekvivalentnog karakterističnog
polinoma optimuma dvostrukog odnosa. Prema redu prijenosne funkcije karakteristični
polinom optimuma dvostrukog odnosa u s-području ima oblik:
𝐴(𝑠) = 𝐷3𝐷22𝑇𝑒
3𝑠3 + 𝐷2𝑇𝑒
2𝑠2 + 𝑇𝑒𝑠 + 1
Karakteristični odnos D2 postavljen je na 0.5, dok vrijednost nadomjesne vremenske
konstante Te ovisi o dinamici objekta upravljanja i ona se mijenja i ispituje za tri slučaja.
Rješavanjem karakteristične jednadžbe optimuma dvostrukog odnosa dobiju se polovi
u s-području koji se zatim moraju prebaciti u z-područje pomoću sljedećih izraza:
𝑧 = 𝑒𝑠𝑇 𝑧 = σ + 𝑗ω 𝑧 = 𝑒σ𝑇(cosω𝑇 + jsinω𝑇)
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 12
Uvrštavanjem polova u z-podrčju u donji izraz dobivamo karakteristični polinom
ekvivalentnog vremenski diskretnog optimuma dvostrukog odnosa sa koeficijentima a0, a1 i a2.
𝑃(𝑧) = ∏(𝑧 − 𝑧𝑖) = 𝑧3 + 𝑎2𝑧2 + 𝑎1𝑧 +
3
𝑖=1
𝑎0
Odabirom nadomjesne vremenske konstante Te dobivena su sljedeća pojačanja
estimatora akumuliranog naboja prvog reda:
Tablica 2. Pojačanja estimatora akumuliranog naboja drugog reda
Te K1 K2 K3
75 ms 11134 5562 -2905
150 ms 1532 763,3 -414,9
300 ms 190,03 93,68 -55,43
Položaj polova estimatora nalazi se unutar jedinične kružnice što znači da su oni stabilni.
Slika 2. Položaj polova estimatora drugog reda
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 13
4. SIMULACIJSKI MODEL U SIMULINKU I ANALIZA ESTIMATORA
Za analizu estimatora akumuliranog naboja napravljen je model estimatora (Slika 4.) u
Simulinku, te nadograđen na već postojeći model ultrakondenzatorskog modula (Slika 3.), s
kojeg se uzimaju podaci o naponu uu i struji punjenja iu.
Slika 3. Simulacijski model u Simulinku
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 14
Slika 4. Model estimatora u Simulinku
Prvi karakteristični slučaj za koji su ispitani estimatori je kada je struja punjenja
ultrakondenzatora iu jednaka nuli, dok je početna vrijednost akumuliranog naboja u estimatoru
200 As, a stvarna početna vrijednost naboja ultrakondenzatora 100 As.
Slika 5. Struja punjenja i stuja balansiranja za prvi slučaj
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 15
U ovom slučaju oba estimatora na početku imaju pogrešku napona uu (Slika 7.) pri čemu
se aktivira mehanizam njezinog uklanjanja. U tom trenutku poraste i estimirani akumulirani
naboj (Slika 6.), koji se stabilizira unutar 1.5 s.
Slika 6. Akumulirani naboj za prvi slučaj - lijevo prvog reda, desno drugog reda
Slika 7. Napon na ultrakondenzatorskom modulu za prvi slučaj - lijevo prvog reda, desno
drugog reda
Pogreška estimacije akumuliranog naboja (Slika 8.) najbolje se vidi na logoritamskom
mjerilu (Slika 9.).
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 16
Slika 8. Greška estimacije naboja za prvi slučaj - lijevo prvog reda, desno drugog reda
Slika 9. Greška estimacije naboja u logoritamskom mjerilu za prvi slučaj - lijevo prvog reda,
desno drugog reda
Sljedeća tablica pokazuje vremena nakon kojih pogreška estimiranog akumuliranog
naboja padne ispod vrijednosti ±1 As, odnosno ±1%:
Tablica 3. Vremena pada pogreške za prvi slučaj
Te Estimator 1. reda Estimator 2. reda
75 ms 0.63 s 0.89 s
150 ms 1.17 s 1.69 s
300 ms 1.78 s 2.89 s
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 17
Drugi karakteristični slučaj za koji su ispitani projektirani estimatori je odziv na
skokovitu pobudu (konstantnu struju punjenja ultrakondenzatora) iu od nule do 20 A za točne
vrijednosti početnih uvjeta ( Qu = 100 As).
Slika 10. Struja punjenja i stuja balansiranja za drugi slučaj
U ovom slučaju oba estimatora vrlo dobro prate napon uu (Slika 12.), dok kod nagle
promjene struje punjenja iu, zbog mehanizma za otklanjanje pogrešaka u modelu i parametrima
sustava, dolazi do naglog porasta estimiranog akumuliranog naboja (Slika 11.), te njegovog
stabiliziranja u vremenu od 0.5 s.
Slika 11. Akumulirani naboj za drugi slučaj - lijevo prvog reda, desno drugog reda
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 18
Slika 12. Napon na ultrakondenzatorskom modulu za drugi slučaj - lijevo prvog reda, desno
drugog reda
Slika 13. Greška estimacije naboja za drugi slučaj - lijevo prvog reda, desno drugog reda
Slika 14. Greška estimacije naboja u logoritamskom mjerilu za drugi slučaj - lijevo prvog
reda, desno drugog reda
Pogreška estimacije padne nakon određenog vremena na vrijednost reda ± 10-2 As kod
estimatora prvog reda, te na ± 10-7 As kod estimatora drugog reda.
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 19
Treći karakteristični slučaj za koji su ispitani projektirani estimatori je kod šuma
mjerenja izlazne veličine uu (iznosa varijance σ2 = 0.0001 V2) i konstantne struje punjenja
iznosa 5 A.
Slika 15. Struja punjenja i stuja balansiranja za treći slučaj
U ovom slučaju oba estimatora vrlo dobro prate mjereni napon uu, te prigušuju šum.
Zbog početnog skoka struje punjenja sa nule na 5 A, dolazi do naglog povećanje estimiranog
akumuliranog naboja, koji se stabilizira unutar 0.5 s, ali zbog šuma mjerenja i pogreške u
naponu uu dolazi do trajnog šuma i na estimiranom akumuliranom naboju čija vrijednost opada
sa povećanjem nadomjesne vremenske konstante Te.
Slika 16. Akumulirani naboj za treći slučaj - lijevo prvog reda, desno drugog reda
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 20
Slika 17. Napon na ultrakondenzatorskom modulu za treći slučaj - lijevo prvog reda, desno
drugog reda
Slika 18. Greška estimacije naboja za treći slučaj - lijevo prvog reda, desno drugog reda
Slika 19. Greška estimacije naboja u logoritamskom mjerilu za drugi slučaj - lijevo prvog
reda, desno drugog reda
Na logoritamskom mjerilu vidljivo je da je pogreška estimacije najmanja, ispod ± 0.1
As za estimator prvog reda sa najvećom nadomjesnom vremenskom konstantom Te = 300 ms.
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 21
5. ZAKLJUČAK
Analizom projektiranih estimatora zaključeno je da se mogu koristiti kao estimatori
akumuliranog naboja Qu, ovisno o željenim performansama. Estimator akumuliranog naboja
zasnovan na Luenbergerovom estimatoru prvog reda pokazao se bržim i više otpornijim na šum
mjerenja nego estimator akumuliranog naboja zasnovan na Luenbergerovom estimatoru drugog
reda. Kod oba estimatora vidljivo je smanjenje pogreške povećanjem nadomjesne vremenske
konstante Te, ali i znatno sporiji odziv. Pošto u realnim situacijama postoji šum mjerenja, te ako
promjena struje punjenja nije trenutna, nego postepena, mogu se očekivati najbolji rezultati od
estimatora akumuliranog naboja zasnovanog na Luenbergerovom estimatoru prvog reda, sa
dovoljno velikom nadomjesnom vremenskom konstantom.
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 22
6. LITERATURA
[1] J. Deur, D. Pavković: Interni materijali za predavanja i predlošci za auditorne vježe iz
„Neizrazitog i digitalnog upravljanja“, FSB, Zagreb
[2] D. Pavkovic, J. Deur, I. Kolmanovsky, D. Hrovat: „Application of Adaptive Kalman
Filter for Estimation of Power Train Variables“ , SAE 2008 World Congress and
Exposition, SAE paper No. 2008-01-0585, Detroit, MI, USA, 2008.
[3] R. Isermann: „Digital Control Systems“, Springer-Verlag Berlin Heidelberg GmbH,
1981.
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 23
DODATAK – MATLAB KOD
% Ultrakondenzator Luenbergerov estimator 1. reda
close all
clear
clc
warning off
% Parametri UC modula
Cu = 20.0; % [F]
Ru = 0.1; % [Ohm]
Rb = 50.0; % [Ohm]
% Vrijeme simulacije
Tsim = 5; % [s]
% Prag okidanja diode (gornji prag mrtve zone)
uD = 6.0; % [V]
% Pocetno stanje naboja UC modula
Qu0 = 100; % [As]
% Vrijeme uzorkovanja
T = 0.01; % [s]
% Matrice modela estimatora u prostoru stanja
F = [1 -T;0 1];
G = [T;0];
H = [1/Cu -Ru];
D = Ru;
H1 = [1 0];
% Estimator
Te = [ 75; 150; 300] * 10^-3;
D2 = 0.5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pocetna vrijednost struje
Iu0 = 0.0; % [A]
% Skokovita promjena struje
DIu = 0.0; % [A]
% Varijanca šuma mjerenja napona
nvar = 0.0; % [V^2]
% Početna estimirana vrijednost akumuliranog naboja
Quest_p = 200; % [As]
for j=1:3
numc = 1; denc = [D2*Te(j)*Te(j) Te(j) 1];
[numd,dend] = c2dm(numc,denc,T,'zoh');
a1 = dend(2); a0 = dend(3);
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 24
K1 = 2*Cu + a1*Cu - (Ru*Cu*Cu/T)*(1 + a1 + a0);
K2 = -1.0*(1 + a1 + a0)*Cu/T;
Te(j)
Ke = [K1;K2]
ple(j,:) = eig(F - Ke*H);
Quest0 = [Quest_p, 0];
sim('UC_model_estimator');
Qu_est_m(:,j) = Qu_est;
Uu_est_m(:,j) = Uu_est;
error_Qu_m(:,j) = (Qu_est-Qu);
end
% Pozicija polova
zeta_ = 0.707;
w = 0:0.1:10000;
z_marg1 = exp(-w*T*zeta_ + i*w*T*sqrt(1-zeta_^2));
z_marg2 = exp(-w*T*zeta_ - i*w*T*sqrt(1-zeta_^2));
figure(1), hold on
plot(cos(0:0.1:2*pi),sin(0:0.1:2*pi),'r',...
real(z_marg1),imag(z_marg1),'black--',...
real(z_marg2),imag(z_marg2),'black--'), ...
grid on, hold on,
polovi = plot(real(ple(1,:)),imag(ple(1,:)),'*r',...
real(ple(2,:)),imag(ple(2,:)),'*g',...
real(ple(3,:)),imag(ple(3,:)),'*b');
legend(polovi,'Te=75ms','Te=150ms','Te=300ms'),
grid on, hold on,
ylabel('Im(z)'),xlabel('Re(z)'),axis equal,
figure(2), hold on, title('Z1')
subplot(211),plot(t,iu,'black','linewidth',2),grid on,
ylabel('Struja i_u [A]')
subplot(212),plot(t,ib,'black','linewidth',2),grid on,
ylabel('Struja i_b [A]')
xlabel('t [s]')
figure(3), hold on, title('Z1')
plot(t,Qu,'black',...
t,Qu_est_m(:,1),'r',...
t,Qu_est_m(:,2),'g',...
t,Qu_est_m(:,3),'b'),
grid on, ylabel('Naboj Q_u [As]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(4), hold on, title('Z1')
plot(t,uu,'black',...
t,Uu_est_m(:,1),'r',...
t,Uu_est_m(:,2),'g',...
t,Uu_est_m(:,3),'b'),
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 25
grid on,ylabel('Napon u_u [V]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(5), hold on, title('Z1')
plot(t,error_Qu_m(:,1),'r',...
t,error_Qu_m(:,2),'g',...
t,error_Qu_m(:,3),'b'),
grid on, ylabel('greška estimacije'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
figure(6), hold on, title('Z1')
plot(t,log(error_Qu_m(:,1)),'r',...
t,log(error_Qu_m(:,2)),'g',...
t,log(error_Qu_m(:,3)),'b'),
grid on, ylabel('greška estimacije [log]'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pocetna vrijednost struje
Iu0 = 0.0; % [A]
% Skokovita promjena struje
DIu = 20.0; % [A]
% Varijanca šuma mjerenja napona
nvar = 0.0; % [V^2]
% Početna estimirana vrijednost akumuliranog naboja
Quest_p = 100; % [As]
for j=1:3
numc = 1; denc = [D2*Te(j)*Te(j) Te(j) 1];
[numd,dend] = c2dm(numc,denc,T,'zoh');
a1 = dend(2); a0 = dend(3);
K1 = 2*Cu + a1*Cu - (Ru*Cu*Cu/T)*(1 + a1 + a0);
K2 = -1.0*(1 + a1 + a0)*Cu/T;
Te(j);
Ke = [K1;K2];
ple(j,:) = eig(F - Ke*H);
Quest0 = [Quest_p, 0];
sim('UC_model_estimator');
Qu_est_m(:,j) = Qu_est;
Uu_est_m(:,j) = Uu_est;
error_Qu_m(:,j) = (Qu_est-Qu);
end
figure(7), hold on, title('Z2')
subplot(211),plot(t,iu,'black','linewidth',2),grid on,
ylabel('Struja i_u [A]')
subplot(212),plot(t,ib,'black','linewidth',2),grid on,
ylabel('Struja i_b [A]')
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 26
xlabel('t [s]')
figure(8), hold on, title('Z2')
plot(t,Qu,'black',...
t,Qu_est_m(:,1),'r',...
t,Qu_est_m(:,2),'g',...
t,Qu_est_m(:,3),'b'),
grid on, ylabel('Naboj Q_u [As]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(9), hold on, title('Z2')
plot(t,uu,'black',...
t,Uu_est_m(:,1),'r',...
t,Uu_est_m(:,2),'g',...
t,Uu_est_m(:,3),'b'),
grid on,ylabel('Napon u_u [V]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(10), hold on, title('Z2')
plot(t,error_Qu_m(:,1),'r',...
t,error_Qu_m(:,2),'g',...
t,error_Qu_m(:,3),'b'),
grid on, ylabel('greška estimacije'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
figure(11), hold on, title('Z2')
plot(t,log(error_Qu_m(:,1)),'r',...
t,log(error_Qu_m(:,2)),'g',...
t,log(error_Qu_m(:,3)),'b'),
grid on, ylabel('greška estimacije [log]'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pocetna vrijednost struje
Iu0 = 5.0; % [A]
% Skokovita promjena struje
DIu = 5.0; % [A]
% Varijanca šuma mjerenja napona
nvar = 0.0001; % [V^2]
% Početna estimirana vrijednost akumuliranog naboja
Quest_p = 100; % [As]
for j=1:3
numc = 1; denc = [D2*Te(j)*Te(j) Te(j) 1];
[numd,dend] = c2dm(numc,denc,T,'zoh');
a1 = dend(2); a0 = dend(3);
K1 = 2*Cu + a1*Cu - (Ru*Cu*Cu/T)*(1 + a1 + a0);
K2 = -1.0*(1 + a1 + a0)*Cu/T;
Te(j);
Ke = [K1;K2];
ple(j,:) = eig(F - Ke*H);
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 27
Quest0 = [Quest_p, 0];
sim('UC_model_estimator');
Qu_est_m(:,j) = Qu_est;
Uu_est_m(:,j) = Uu_est;
error_Qu_m(:,j) = (Qu_est-Qu);
end
figure(12), hold on, title('Z3')
subplot(211),plot(t,iu,'black','linewidth',2),grid on,
ylabel('Struja i_u [A]')
subplot(212),plot(t,ib,'black','linewidth',2),grid on,
ylabel('Struja i_b [A]')
xlabel('t [s]')
figure(13), hold on, title('Z3')
plot(t,Qu,'black',...
t,Qu_est_m(:,1),'r',...
t,Qu_est_m(:,2),'g',...
t,Qu_est_m(:,3),'b'),
grid on, ylabel('Naboj Q_u [As]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(14), hold on, title('Z3')
plot(t,uu,'black',...
t,Uu_est_m(:,1),'r',...
t,Uu_est_m(:,2),'g',...
t,Uu_est_m(:,3),'b'),
grid on,ylabel('Napon u_u [V]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(15), hold on, title('Z3')
plot(t,error_Qu_m(:,1),'r',...
t,error_Qu_m(:,2),'g',...
t,error_Qu_m(:,3),'b'),
grid on, ylabel('greška estimacije'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
figure(16), hold on, title('Z3')
plot(t,log(error_Qu_m(:,1)),'r',...
t,log(error_Qu_m(:,2)),'g',...
t,log(error_Qu_m(:,3)),'b'), hold on,
grid on, ylabel('greška estimacije [log]'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
warning on
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 28
% Ultrakondenzator Luenbergerov estimator 2. reda
close all
clear
clc
warning off
% Parametri UC modula
Cu = 20.0; % [F]
Ru = 0.1; % [Ohm]
Rb = 50.0; % [Ohm]
% Vrijeme simulacije
Tsim = 5; % [s]
% Prag okidanja diode (gornji prag mrtve zone)
uD = 6.0; % [V]
% Pocetno stanje naboja UC modula
Qu0 = 100; % [As]
% Vrijeme uzorkovanja
T = 0.01; % [s]
% Matrice modela estimatora u prostoru stanja
F = [1 -T -T*T/2;0 1 T;0 0 1];
G = [T;0;0];
H = [1/Cu -Ru 0];
D = Ru;
H1 = [1 0 0];
% Estimator
Te = [ 75; 150; 300] * 10^-3;
D2 = 0.5; D3 = 0.5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pocetna vrijednost struje
Iu0 = 0.0; % [A]
% Skokovita promjena struje
DIu = 0.0; % [A]
% Varijanca šuma mjerenja napona
nvar = 0.0; % [V^2]
% Početna estimirana vrijednost akumuliranog naboja
Quest_p = 200; % [As]
for j=1:3
numc = 1; denc = [D3*D2*D2*Te(j)*Te(j)*Te(j) D2*Te(j)*Te(j) Te(j) 1];
[numd,dend] = c2dm(numc,denc,T,'zoh');
a2 = dend(2); a1 = dend(3); a0 = dend(4);
A = [1/Cu -Ru 0; -2/Cu (2*Ru - T/Cu) -(T*Ru + T*T/2/Cu);
1/Cu (T/Cu - Ru) (T*Ru - T*T/2/Cu)];
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 29
b = [(a2+3);(a1-3);(a0+1)];
Te(j)
Ke = A\b
ple(j,:) = eig(F - Ke*H);
Quest0 = [Quest_p, 0, 0];
sim('UC_model_estimator');
Qu_est_m(:,j) = Qu_est;
Uu_est_m(:,j) = Uu_est;
error_Qu_m(:,j) = (Qu_est-Qu);
end
% Pozicija polova
zeta_ = 0.707;
w = 0:0.1:10000;
z_marg1 = exp(-w*T*zeta_ + i*w*T*sqrt(1-zeta_^2));
z_marg2 = exp(-w*T*zeta_ - i*w*T*sqrt(1-zeta_^2));
figure(1), hold on
plot(cos(0:0.1:2*pi),sin(0:0.1:2*pi),'r',...
real(z_marg1),imag(z_marg1),'black--',...
real(z_marg2),imag(z_marg2),'black--'), ...
grid on, hold on,
polovi = plot(real(ple(1,:)),imag(ple(1,:)),'*r',...
real(ple(2,:)),imag(ple(2,:)),'*g',...
real(ple(3,:)),imag(ple(3,:)),'*b');
legend(polovi,'Te=75ms','Te=150ms','Te=300ms'),
grid on, hold on,
ylabel('Im(z)'),xlabel('Re(z)'),axis equal,
figure(2), hold on, title('Z1')
subplot(211),plot(t,iu,'black'),grid on,ylabel('Struja i_u [A]')
subplot(212),plot(t,ib,'black'),grid on,ylabel('Struja i_b [A]')
xlabel('t [s]')
figure(3), hold on, title('Z1')
plot(t,Qu,'black',...
t,Qu_est_m(:,1),'r',...
t,Qu_est_m(:,2),'g',...
t,Qu_est_m(:,3),'b'),
grid on, ylabel('Naboj Q_u [As]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(4), hold on, title('Z1')
plot(t,uu,'black',...
t,Uu_est_m(:,1),'r',...
t,Uu_est_m(:,2),'g',...
t,Uu_est_m(:,3),'b'),
grid on,ylabel('Napon u_u [V]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 30
figure(5), hold on, title('Z1')
plot(t,error_Qu_m(:,1),'r',...
t,error_Qu_m(:,2),'g',...
t,error_Qu_m(:,3),'b'),
grid on, ylabel('greška estimacije'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
figure(6), hold on, title('Z1')
plot(t,log(error_Qu_m(:,1)),'r',...
t,log(error_Qu_m(:,2)),'g',...
t,log(error_Qu_m(:,3)),'b'),
grid on, ylabel('greška estimacije [log]'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pocetna vrijednost struje
Iu0 = 0.0; % [A]
% Skokovita promjena struje
DIu = 20.0; % [A]
% Varijanca šuma mjerenja napona
nvar = 0.0; % [V^2]
% Početna estimirana vrijednost akumuliranog naboja
Quest_p = 100; % [As]
for j=1:3
numc = 1; denc = [D3*D2*D2*Te(j)*Te(j)*Te(j) D2*Te(j)*Te(j) Te(j) 1];
[numd,dend] = c2dm(numc,denc,T,'zoh');
a2 = dend(2); a1 = dend(3); a0 = dend(4);
A = [1/Cu -Ru 0; -2/Cu (2*Ru - T/Cu) -(T*Ru + T*T/2/Cu);
1/Cu (T/Cu - Ru) (T*Ru - T*T/2/Cu)];
b = [(a2+3);(a1-3);(a0+1)];
Te(j);
Ke = A\b;
ple(j,:) = eig(F - Ke*H);
Quest0 = [Quest_p, 0, 0];
sim('UC_model_estimator');
Qu_est_m(:,j) = Qu_est;
Uu_est_m(:,j) = Uu_est;
error_Qu_m(:,j) = (Qu_est-Qu);
end
figure(7), hold on, title('Z2')
subplot(211),plot(t,iu,'black'),grid on,ylabel('Struja i_u [A]')
subplot(212),plot(t,ib,'black'),grid on,ylabel('Struja i_b [A]')
xlabel('t [s]')
figure(8), hold on, title('Z2')
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 31
plot(t,Qu,'black',...
t,Qu_est_m(:,1),'r',...
t,Qu_est_m(:,2),'g',...
t,Qu_est_m(:,3),'b'),
grid on, ylabel('Naboj Q_u [As]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(9), hold on, title('Z2')
plot(t,uu,'black',...
t,Uu_est_m(:,1),'r',...
t,Uu_est_m(:,2),'g',...
t,Uu_est_m(:,3),'b'),
grid on,ylabel('Napon u_u [V]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(10), hold on, title('Z2')
plot(t,error_Qu_m(:,1),'r',...
t,error_Qu_m(:,2),'g',...
t,error_Qu_m(:,3),'b'),
grid on, ylabel('greška estimacije'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
figure(11), hold on, title('Z2')
plot(t,log(error_Qu_m(:,1)),'r',...
t,log(error_Qu_m(:,2)),'g',...
t,log(error_Qu_m(:,3)),'b'),
grid on, ylabel('greška estimacije [log]'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pocetna vrijednost struje
Iu0 = 5.0; % [A]
% Skokovita promjena struje
DIu = 5.0; % [A]
% Varijanca šuma mjerenja napona
nvar = 0.0001; % [V^2]
% Početna estimirana vrijednost akumuliranog naboja
Quest_p = 100; % [As]
for j=1:3
numc = 1; denc = [D3*D2*D2*Te(j)*Te(j)*Te(j) D2*Te(j)*Te(j) Te(j) 1];
[numd,dend] = c2dm(numc,denc,T,'zoh');
a2 = dend(2); a1 = dend(3); a0 = dend(4);
A = [1/Cu -Ru 0; -2/Cu (2*Ru - T/Cu) -(T*Ru + T*T/2/Cu);
1/Cu (T/Cu - Ru) (T*Ru - T*T/2/Cu)];
b = [(a2+3);(a1-3);(a0+1)];
Te(j);
Ke = A\b;
ple(j,:) = eig(F - Ke*H);
Quest0 = [Quest_p, 0, 0];
Marko Leš Seminarski zadatak
Fakultet strojarstva i brodogradnje 32
sim('UC_model_estimator');
Qu_est_m(:,j) = Qu_est;
Uu_est_m(:,j) = Uu_est;
error_Qu_m(:,j) = (Qu_est-Qu);
end
figure(12), hold on, title('Z3')
subplot(211),plot(t,iu,'black'),grid on,ylabel('Struja i_u [A]')
subplot(212),plot(t,ib,'black'),grid on,ylabel('Struja i_b [A]')
xlabel('t [s]')
figure(13), hold on, title('Z3')
plot(t,Qu,'black',...
t,Qu_est_m(:,1),'r',...
t,Qu_est_m(:,2),'g',...
t,Qu_est_m(:,3),'b'),
grid on, ylabel('Naboj Q_u [As]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(14), hold on, title('Z3')
plot(t,uu,'black',...
t,Uu_est_m(:,1),'r',...
t,Uu_est_m(:,2),'g',...
t,Uu_est_m(:,3),'b'),
grid on,ylabel('Napon u_u [V]'), xlabel('t [s]'),
legend('Stvarni','Te=75ms','Te=150ms','Te=300ms'),
figure(15), hold on, title('Z3')
plot(t,error_Qu_m(:,1),'r',...
t,error_Qu_m(:,2),'g',...
t,error_Qu_m(:,3),'b'),
grid on, ylabel('greška estimacije'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
figure(16), hold on, title('Z3')
plot(t,log(error_Qu_m(:,1)),'r',...
t,log(error_Qu_m(:,2)),'g',...
t,log(error_Qu_m(:,3)),'b'),
grid on, ylabel('greška estimacije [log]'), xlabel('t [s]')
legend('Te=75ms','Te=150ms','Te=300ms')
warning on
Recommended