35
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

NEIZRAZITO I DIGITALNO UPRAVLJANJE seminarski zadataktitan.fsb.hr/~bskugor/NEIZRAZITO I DIGITALNO UPRAVLJANJE/NDU AUDITORNE... · Marko Leš Seminarski zadatak Fakultet strojarstva

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

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