Univerzitet u Nišu Elektronski fakultet Marko Milojković, Dragan Antić, Saša Nikolić Praktikum za modeliranje i simulaciju dinamičkih sistema Edicija: Pomoćni udžbenici 2018.
U n i v e r z i t e t u N i š u E l e k t r o n s k i f a k u l t e t
Marko Mi lo jković , Dragan Ant ić , Saša Nikol ić
Praktikum za modeliranje i simulaciju
dinamičkih sistema
Edicija: Pomoćni udžbenici
2018.
prof. dr Marko Milojković, prof. dr Dragan Antić, doc. dr Saša S. Nikolić
PRAKTIKUM ZA MODELIRANJE I SIMULACIJU DINAMIČKIH SISTEMA
Izdavač: Elektronski fakultet u Nišu
P. fah 73, 18000 Niš
http://www.elfak.ni.ac.rs
Recenzenti: Prof. dr Vlastimir Nikolić
Prof. dr Darko Mitić
Glavni i odgovorni urednik: Prof. dr Dragan Mančić
Odlukom Nastavno-naučnog veća Elektronskog fakulteta u Nišu, br. 07/05-001/16-006
od 20.06.2016. godine rukopis je odobren za štampu kao pomoćni udžbenik.
ISBN 978-86-6125-161-0
CIP - Каталогизација у публикацији - Народна библиотека Србије, Београд
CIP - Каталогизација у публикацији
Народна библиотека Србије, Београд
517.93:519.876.5(075.8)(076)
531.39:519.876.5(075.8)(076)
681.5.015/.017(075.8)(076)
004.42MATLAB(075.8)(076)
004.42SIMULINK(075.8)(076)
МИЛОЈКОВИЋ, Марко, 1980-
Praktikum za modeliranje i simulaciju dinamičkih sistema / Marko
Milojković, Dragan Antić, Saša Nikolić. - Niš : Elektronski fakultet, 2018 (Niš : Unigraf X-
Copy). - 188 str. : ilustr. ; 24 cm. - (Edicija Pomoćni udžbenici / [Elektronski fakultet, Niš])
Na vrhu nasl. str.: Univerzitet u Nišu. - Tiraž 200. - Bibliografija: str. 188.
ISBN 978-86-6125-161-0
1. Антић, Драган, 1963- [аутор] 2. Николић, Саша, 1982- [аутор]
a) Динамички системи - Симулација - Вежбе b) Апликативни програм
"MATLAB" - Вежбе c) Апликативни програм "SIMULINK" - Вежбе
COBISS.SR-ID 224775692
Preštampavanje ili umnožavanje ove knjige nije dozvoljeno bez pismene dozvole izdavača.
Tiraž: 200 primeraka
Štampa: Unigraf X-Copy, Niš
Predgovor
Praktikum za modeliranje i simulaciju dinamičkih sistema je
prvenstveno namenjen kao podrška laboratorijskim vežbama za studente
Elektronskog fakulteta u Nišu, koji na drugoj godini osnovnih akademskih
studija slušaju predmet Modeliranje i simulacija dinamičkih sistema, ali
može poslužiti svima koji žele da se upoznaju sa osnovnim principima
modeliranja i simulacije. Gradivo je koncipirano i prezentovano na takav
način da je za njegovo razumevanje potrebno samo elementarno znanje
matematike, fizike i korišćenja računara.
Cilj predmeta Modeliranje i simulacija dinamičkih sistema je
upoznavanje studenata sa osnovnim konceptima modeliranja dinamičkih
sistema, vrstama modela, projektovanjem simulacionih modela, kao i
simulacijom na računaru različitih dinamičkih sistema iz tehnike i
svakodnevnog života, korišćenjem softverskog paketa Matlab. S obzirom na
to da je ovaj predmet ujedno i prvi stručni predmet iz oblasti upravljanja
sistemima, u sklopu nastave se uvode mnogi termini i teme koje će studenti
tek naknadno detaljnije obraditi u okviru drugih predmeta.
Prvi deo praktikuma u kratkim crtama daje teorijske osnove
modeliranja i simulacije, neophodne za dalje razumevanje prezentovanog
gradiva. Drugi deo se bavi modeliranjem i simulacijom dinamičkih sistema
u Simulink-u, koji predstavlja proširenje programskog paketa Matlab. Ovo
poglavlje počinje kratkim uputstvom za rad, a nastavlja se detaljnijim
opisom metodologije modeliranja i simulacije kroz osam vežbi koje opisuju
realne tehničke sisteme. Pre svake vežbe postoji pregled fizičkih osnova
svakog od razmatranih tipova sistema.
Treći deo praktikuma čini kraći priručnik iz Matlab programskog
okruženja, koji objašnjava najvažnije naredbe i daje osnove pisanja
jednostavnih programa u Matlab-u. Savladavanje programiranja u Matlab-
u može pomoći studentima da, na jednostavan način, reše mnoge zadatke
koji će se javiti tokom njihovih studija. Poslednji deo priručnika čini niz od
jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih
sistema u Matlab-u. S obzirom na to da sadržaj nekih vežbi prevazilazi
gradivo koje se uči iz predmeta Modeliranje i simulacija dinamičkih
sistema, njih treba shvatiti samo kao demonstraciju kako se razvijeni modeli
dinamičkih sistema mogu iskoristiti za brzu i laku analizu sistema u Matlab-
u. Na kraju praktikuma, dat je i spisak literature sa interesantnim knjigama
koje mogu poslužiti za dalji rad u ovoj oblasti.
Sadržaj
1 Teorijske osnove modeliranja i simulacije dinamičkih sistema ...................... 1
1.1 Sistem ............................................................................................................. 1
1.1.1 Definicija i osobine sistema ..................................................................... 1
1.1.2 Klasifikacija sistema ................................................................................ 2
1.2 Modeliranje sistema ........................................................................................ 3
1.2.1 Definicija modeliranja ............................................................................. 3
1.2.2 Aproksimacija pri modeliranju ................................................................ 3
1.2.3 Klasifikacija modela ................................................................................ 4
1.2.4 Matematički modeli ................................................................................. 5
1.3 Simulacija sistema .......................................................................................... 6
1.3.1 Definicija, vrste i sredstva za simulaciju ................................................. 6
1.3.2 Značaj i prednosti simulacije ................................................................... 7
1.4 Metodologija modeliranja i simulacije sistema .............................................. 8
2 Modeliranje i simulacija dinamičkih sistema u Simulink-u .......................... 12
2.1 Upoznavanje sa Simulink-om ....................................................................... 12
2.1.1 Primer rada sa Simulink-om .................................................................. 12
2.2 Automobil - primer translatornog mehaničkog sistema................................ 20
2.2.1 Translatorni mehanički sistemi – fizička osnova modeliranja .............. 21
2.2.2 Modeliranje sistema............................................................................... 23
2.2.3 Simulacija sistema i analiza rezultata simulacije .................................. 31
2.3 Padobranac - primer translatornog mehaničkog sistema .............................. 34
2.3.1 Modeliranje sistema............................................................................... 35
2.3.2 Simulacija sistema i analiza rezultata simulacije .................................. 37
2.4 Dizalica - primer translatorno-rotacionog mehaničkog sistema ................... 40
2.4.1 Rotacioni mehanički sistemi – fizička osnova modeliranja .................. 42
2.4.2 Modeliranje sistema............................................................................... 43
2.4.3 Simulacija sistema i analiza rezultata simulacije .................................. 45
2.5 Električno kolo – primer električnog sistema ............................................... 51
2.5.1 Električni sistemi – fizička osnova modeliranja .................................... 52
2.5.2 Modeliranje sistema............................................................................... 53
2.5.3 Simulacija sistema i analiza rezultata simulacije .................................. 57
2.6 Zvučnik – primer elektromehaničkog sistema .............................................. 60
2.6.1 Princip rada sistema ............................................................................... 60
2.6.2 Elektromehanički sistemi – fizička osnova modeliranja ....................... 62
2.6.3 Modeliranje sistema............................................................................... 63
2.6.4 Simulacija sistema i analiza rezultata simulacije .................................. 66
2.7 Motor jednosmerne struje (DC motor)–primer elektromehaničkog sistema 69
2.7.1 Princip rada sistema ............................................................................... 69
2.7.2 Modeliranje sistema............................................................................... 72
2.7.3 Simulacija sistema i analiza rezultata simulacije .................................. 75
2.8 Hidraulični sistem – primer linearizacije sistema ......................................... 81
2.8.1 Hidraulični sistemi – fizička osnova modeliranja ................................. 81
2.8.2 Analogije fizičkih promenljivih i parametara ........................................ 84
2.8.3 Modeliranje i simulacija sistema ........................................................... 85
2.8.4 Linearizacija nelinearnog elementa ....................................................... 87
2.8.5 Linearizacija modela ............................................................................. 89
2.8.6 Linearizacija zadatog modela ................................................................ 89
2.8.7 Simulacija linearizovanog modela ........................................................ 90
2.9 Ekološki sistem – rešavanje običnih diferencijalnih jednačina .................... 92
2.9.1 Modeliranje ekološkog sistema ............................................................. 92
2.9.2 Slučaj grabljivica-plen ........................................................................... 93
2.9.3 Slučaj nadmetanja vrsta za istu hranu.................................................... 95
2.9.4 Obične diferencijalne jednačine ............................................................ 97
2.9.5 Numeričko rešavanje običnih diferencijalnih jednačina........................ 98
2.9.6 Numeričko rešavanje običnih diferencijalnih jednačina u MATLABu 100
3 Priručnik iz MATLAB-a ................................................................................. 105
3.1 Uvod ........................................................................................................... 105
3.2 MATLAB okruženje .................................................................................. 105
3.3 Rad u komandnom prozoru ........................................................................ 106
3.4 Ugrađene matematičke funkcije ................................................................. 108
3.5 Promenljive................................................................................................. 108
3.6 Vektori ........................................................................................................ 110
3.7 Matrice ........................................................................................................ 111
3.8 Pristupanje elementima nizova ................................................................... 113
3.9 Matematičke operacije s nizovima ............................................................. 113
3.10 Funkcije kvadratnih matrica ..................................................................... 116
3.11 Funkcije za rad s nizovima ....................................................................... 117
3.12 Znakovni nizovi ........................................................................................ 118
3.13 Programi u MATLAB-u ........................................................................... 119
3.14 Interakcija skripte i komandnog prozora .................................................. 120
3.15 Korisničke funkcije .................................................................................. 121
3.16 Relacioni operatori ................................................................................... 123
3.17 Logički operatori ...................................................................................... 124
3.18 if-else-end uslovni iskazi .......................................................................... 124
3.19 for petlja.................................................................................................... 126
3.20 while petlja ............................................................................................... 127
3.21 Grafikoni................................................................................................... 128
3.22 Grafik funkcije .......................................................................................... 130
3.23 Iscrtavanje više grafika odjednom ............................................................ 132
3.24 Formatiranje grafikona ............................................................................. 134
3.25 Specijalni grafikoni .................................................................................. 135
3.26 Trodimenzionalni grafikoni ...................................................................... 137
3.27 Simbolički izrazi ....................................................................................... 140
3.28 Rešavanje algebarskih jednačina .............................................................. 141
3.29 Diferenciranje i integraljenje .................................................................... 142
3.30 Rešavanje obične diferencijalne jednačine ............................................... 143
3.31 Rad sa polinomima ................................................................................... 144
3.32 Aproksimiranje podataka polinomom ...................................................... 144
3.33 Transformacije .......................................................................................... 146
3.34 Strukture podataka .................................................................................... 147
3.35 Klase i objekti ........................................................................................... 148
3.36 Grafički korisnički interfejs ...................................................................... 148
4 Analiza dinamičkih sistema u MATLAB-u ................................................... 153
4.1 Formiranje linearnih modela dinamičkih sistema....................................... 153
4.2 Povezivanje sistema i osnovni odzivi ......................................................... 157
4.3 Vremenski odziv sistema ............................................................................ 160
4.4 Analiza odziva oscilatornog elementa drugog reda .................................... 164
4.5 Analiza stabilnosti sistema ......................................................................... 167
4.6 Generisanje GMK ....................................................................................... 170
4.7 Generisanje frekvencijskog odziva ............................................................. 174
4.8 Analiza stabilnosti sistema u frekvencijskom domenu ............................... 177
4.9 Ispitivanje kontrolabilnosti i opservabilnosti sistema................................. 180
4.10 Analiza diskretnih sistema ........................................................................ 182
4.11 LTI Viewer - grafički korisnički interfejs za analizu dinamičkih sistema 184
Literatura ............................................................................................................ 188
1
Teorijske osnove modeliranja i
simulacije dinamičkih sistema
Inženjerski i naučni prilaz u izučavanju osobina sistema zasniva se na
korišćenju modela kojima se određuju kvantitativne i kvalitativne veze
elemenata i podsistema u dinamičkom sistemu. Pre nego što se pristupi
samom modeliranju i simulaciji, neophodno je razumeti šta je to uopšte
sistem i koje osobine može da ima.
1.1 Sistem
1.1.1 Definicija i osobine sistema
Sistem se definiše kao skup međusobno povezanih elemenata koji
sarađuju radi ostvarenja nekog logičnog cilja [1]. Stanje nekog sistema se
definiše kao skup promenljivih, potrebnih da se sistem opiše u određenom
vremenskom trenutku, uzimajući u obzir ciljeve proučavanja datog sistema.
Svaki sistem je određen sledećim osobinama: granice sistema, okolina
sistema, komponente sistema, kao i veze između njih. Uloga granice sistema
je da odredi šta sistemu pripada, a šta ne i, kao takva, ona zavisi kako od
samog sistema, tako i od onoga ko sistem proučava, kao i vremenskog
trenutka proučavanja. Granica sistema može biti materijalna (npr. koža za
ljudsko telo) ili nematerijalna (pripadnost određenoj sociološkoj grupi).
Svaki sistem razmenjuje ulaze i izlaze sa svojom okolinom. Ulazi su ono što
prelazi u sistem preko granice iz okoline, a izlazi ono što sistem napušta
kroz granicu u okolinu (slika 1.1). Pri tome, izlazi su obično direktni ili
indirektni rezultati primenjenih ulaza.
Na primer, ukoliko kao sistem posmatramo jedno preduzeće,
granicom sistema možemo smatrati ogradu poslovnog prostora koji to
preduzeće zauzima, komponente sistema su različita odeljenja preduzeća
(proizvodnja, računovodstvo, održavanje, menadžment, pravna služba), koja
međusobno sarađuju radi ostvarenja istog cilja; okolina preduzeća su kupci,
snabdevači, vlada, druga preduzeća; ulazi mogu biti sirovine, električna
Praktikum za modeliranje i simulaciju dinamičkih sistema
2
energija, nova oprema, a izlazi gotovi proizvodi, otpadni materijal, novac.
Sistemi još mogu biti: biološki, ekonomski, sociološki, industrijski,
transportni, komunikacioni, meteorološki...
Slika 1.1 Osobine sistema
Izlaz nekog sistema obično zavisi od primenjenog ulaza, ali i od
unutrašnjih, sopstvenih veličina sistema koje se nazivaju parametri sistema.
Na primer, ako imamo jednostavno električno kolo s redno vezanim
otpornikom otpornosti R, kalemom induktivnosti L i kondenzatorom
kapacitivnosti C, i ako je dovedeni napon na kolo u(t) ulazni signal, a napon
na kalemu izlazni signal, onda su R, L i C parametri tog sistema -
električnog kola. Izlazni signal, napon na kalemu, može se izraziti u funkciji
ne samo ulaznog signala i parametara, već i struje kroz kolo i napona na
kondenzatoru. Ta struja i napon nisu parametri, već unutrašnje promenljive
sistema koje se nazivaju koordinatama stanja sistema. Koordinate stanja
imaju značajnu ulogu u matematičkom modeliranju sistema i, u opštem
slučaju sistema bilo koje fizičke prirode, njihov broj jednak je broju
elemenata sistema koji imaju mogućnost akumuliranja (skladištenja)
energije. U razmatranom primeru električnog kola, to su kalem i
kondenzator.
1.1.2 Klasifikacija sistema
Postoji mnogo različitih načina klasifikovanja sistema [2]. Prema
vremenskom domenu razlikujemo kontinualne (promenljive stanja sistema
se menjaju kontinualno u vremenu) i diskretne (promenljive stanja sistema
se menjaju skokovito u određenim vremenskim intervalima). Prema
uključenim nesigurnostima razlikujemo determinističke (bez nesigurnosti
promenljivih stanja; za isti ulaz daju uvek isti izlaz) i stohastičke (neke
promenljive su slučajnog karaktera, pa sistem za isti ulaz može dati različite
izlaze). Sistemi mogu biti linearni (mogu se opisati linearnim algebarskim,
Teorijske osnove modeliranja i simulacije dinamičkih sistema
3
diferencijalnim ili diferencnim jednačinama) ili nelinearni. Postoji podela na
stacionarne (parametri sistema su konstantni) i nestacionarne sisteme
(parametri sistema su promenljivi u vremenu). Sistemi, takođe, mogu biti
statički (izlaz sistema ne zavisi od prethodnih ulaza, tj. nemaju memoriju) ili
dinamički (izlaz u svakom trenutku zavisi od prethodnih ulaza i stanja
sistema).
1.2 Modeliranje sistema
1.2.1 Definicija modeliranja
Modeliranje je nastalo iz čovekove potrebe za razumevanjem načina
funkcionisanja sistema (ispitivanje kvantitativnih i kvalitativnih veza
između elemenata i podsistema u sistemu) i određivanja njihovih
dinamičkih odziva. Modeliranje je proces apstrakcije realnog sistema, a sam
model je predstava sistema u nekoj formi drugačijoj od realnog entiteta, koji
se dobija na osnovu ukupnog čovekovog iskustva i načina razmišljanja o
sistemu koji razmatra [3]. Model se koristi da oponaša realni sistem u
određenim uslovima rada i, ukoliko on sadrži sve bitne karakteristike
sistema, onda se proučavanjem modela i eksperimentima na njemu mogu
doneti valjani zaključci o ponašanju realnog sistema. Modeliranje je danas
nezaobilazan alat u svim oblastima inženjerstva i nauke. Koristi se kako pri
projektovanju novih sistema, tako i pri analizi i poboljšanju postojećih.
Formiranje validnog modela zahteva potpuno razumevanje razmatranog
sistema ili procesa, kao i tehnika modeliranja [4].
1.2.2 Aproksimacija pri modeliranju
S obzirom na to da su realni sistemi obično veoma kompleksni (veliki
broj parametara, komplikovane veze između njih, brza promena veličina),
pa je njihova tačna analiza često nemoguća, moraju se vršiti aproksimacije i
redukcije komponenata sistema na idealizovane vrednosti, čije je ponašanje
slično realnim komponentama. Što je veći stepen aproksimacije i
zanemarivanja nekih osobina sistema, model je jednostavniji, lakši i brži za
eksperimentisanje, ali uz cenu smanjene tačnosti (lošije oslikava realni
sistem). Granica između kompleksnosti modela i njegove tačnosti se povlači
u zavisnosti od potreba i ciljeva modeliranja, ali treba imati na umu da
nijedan model nikada nije potpuno verna predstava realnog sistema. Uvek
Praktikum za modeliranje i simulaciju dinamičkih sistema
4
postoje osobine sistema koje ili ne znamo da postoje ili ne možemo ili ne
želimo da modeliramo. Upravo je suština „umetnosti“ modeliranja da se
između velikog broja raspoloživih karakteristika sistema izaberu samo one
koje su neophodne i dovoljne za opisivanje na način koji je svrsishodan i
razumljiv za potrebe onih kojima je model namenjen.
1.2.3 Klasifikacija modela
Postoje dve osnovne klase modela - fizički i apstraktni (slika 1.2).
Fizički modeli mogu biti sa istom prirodom, i onda su to obično umanjene
fizičke replike realnih sistema (mali modeli zgrada ili mostova kao
prezentacija ili za ispitivanje otpornosti na potrese; mali automobili ili
letelice u vazdušnim tunelima pri ispitivanju aerodinamike vozila koja se
projektuju...). U ovom slučaju se promenljive i parametri modela izražavaju
istim jedinicama kao promenljive i parametri modeliranog realnog sistema,
samo imaju drugu (obično manju) vrednost. Drugi tip fizičkih modela su oni
s različitom prirodom. Kod njih se parametri sistema jedne vrste opisuju
parametrima sistema druge vrste. Na primer, neki hidraulički sistem se može
opisati odgovarajućom električnom mrežom, pri čemu pritisku u nekoj tački
hidrauličkog sistema odgovara napon u odgovarajućoj tački električne
mreže, protoku tečnosti odgovara električna struja, a hidrauličkom otporu
odgovara električni otpor. Na sličan način, mogu se modelirati i drugi fizički
sistemi i procesi, što je i dovelo do razvoja analogne računarske tehnike.
Osnovni nedostaci fizičkog modeliranja su tehnički problemi pri izradi
modela, njihova cena, kao i ograničena tačnost.
Slika 1.2 Klasifikacija modela
Teorijske osnove modeliranja i simulacije dinamičkih sistema
5
Problemi, koji se javljaju pri fizičkom modeliranju, mogu se izbeći
korišćenjem apstraktnih modela. Oni mogu biti veoma raznovrsni: jezički
(verbalni) opis, dijagram toka, graf toka signala, blok dijagram...
1.2.4 Matematički modeli
Matematički model nekog sistema je skup diferencijalnih i algebarskih
jednačina kojima se sa većim ili manjim stepenom aproksimacije opisuje
ponašanje sistema, a na osnovu poznavanja fizičkih osobina i zakonitosti
samog sistema (na primer, Njutnovi zakoni za modeliranje mehaničkih
sistema; Kirhofovi zakoni za modeliranje električnih sistema) [5]. Ovi
modeli obično opisuju dati sistem preko relacija između njegovih
promenljivih veličina koje predstavljaju određene osobine sistema, pri čemu
se za opisivanje dinamike sistema, obično, koriste diferencijalne ili
diferencne jednačine, a kao pomoćne algebarske, logičke, kao i
nejednakosti.
Opisano modeliranje, kada se korišćenjem poznatih fizičkih zakona
formira skup matematičkih relacija koje opisuju dinamiku procesa, naziva se
i matematičko modeliranje u užem smislu. Drugi način matematičkog
modeliranja je kada se vrše eksperimenti na konkretnom realnom sistemu ili
procesu, a zatim se, na osnovu promena ulaznih i izlaznih veličina, određuju
matematičke relacije koje ih povezuju. U ovom slučaju se radi o
identifikaciji sistema. U praksi se često ova dva metoda kombinuju. Prvom
metodom se formira početni model koji se, zatim, pomoću eksperimenata
nadograđuje i usavršava. Razlika između modeliranja i identifikacije može
se videti iz ilustrativnog istorijskog primera određivanja modela kretanja
planeta oko Sunca. Kepler je, koristeći obimna merenja položaja planeta na
nebu, formulisao svoja tri zakona kretanja, dok je Njutn kretanje planeta
matematički opisao korišćenjem svojih zakona gravitacije. Drugim rečima,
Kepler je izvršio identifikaciju procesa kretanja planeta, dok je Njutn izvršio
matematičko modeliranje.
Postoje mnogobrojne podele matematičkih modela. Na primer, podela
na statičke (opisuju se algebarskim jednačinama i modeliraju sisteme u
ravnotežnom stanju) i dinamičke (opisuju se diferencijalnim jednačinama i
modeliraju sisteme koji se menjaju tokom vremena). Druga podela je na
kontinualne (opisuju se diferencijalnim jednačinama kod kojih se
promenljive stanja menjaju kontinualno u vremenu) i diskretne (opisuju se
diferencnim jednačinama kod kojih se promenljive stanja menjaju skokovito
u vremenu).
Praktikum za modeliranje i simulaciju dinamičkih sistema
6
Važna je podela i na linearne i nelinearne modele. Linearni modeli se
opisuju linearnim jednačinama (algebarske jednačine u kojima je svaki član
ili konstanta ili proizvod konstante i promenljive prvog reda). Poželjno je
koristiti linearne modele, kad god je to moguće, zato što je tada kasnija
analiza sistema mnogo lakša. Takvi modeli se, obično, primenjuju kod
sistema koji rade s malim promenama oko ravnotežnog stanja, što uzrokuje
odsustvo suštinskih nelinearnosti. Pošto su svi realni sistemi nelinearni, do
takvih modela se obično dolazi postupkom linearizacije. Matematički
modeli obrađeni u ovom praktikumu biće pretežno ograničeni na linearne
obične diferencijalne jednačine, čiji se koeficijenti ne menjaju u vremenu.
1.3 Simulacija sistema
1.3.1 Definicija, vrste i sredstva za simulaciju
Simulacija predstavlja izvršavanje operacija na modelu sistema u cilju
dobijanja željenih saznanja o ponašanju sistema. To je jednostavan i siguran
način eksperimentisanja na modelu i predstavlja moćnu tehniku za rešavanje
brojnih problema [6]. Ukoliko su relacije koje čine model dovoljno
jednostavne, moguće je željene informacije dobiti direktno korišćenjem
matematičkih metoda (algebra, izračunavanje, teorija verovatnoće). To se
zove analitičko rešenje. Međutim, realni sistemi su uglavnom suviše
kompleksni, pa se njihovi modeli moraju razmatrati numeričkim metodama.
Većina inženjerskih problema je predstavljena diferencijalnim jednačinama,
čija rešenja opisuju vremenski odziv sistema za zadate početne uslove i
ulaze.
Zavisno od tipa modela, postoje dve glavne vrste simulacija: fizičke,
koje se bave eksperimentima na fizičkim prototipovima realnih sistema, gde
se pravi, skalirani ulazi primenjuju na model, a zatim se izlazi upoređuju sa
realnim sistemom (npr. model letelice u vazdušnom tunelu). Druga vrsta
simulacije je numerička simulacija koja se izvodi na matematičkom modelu
sistema, obično na računaru (računarska simulacija). Njen razvoj je
podstaknut za potrebe vojske i u početku se odvijala na analognim
računarima projektovanim specijalno za simuliranje diferencijalnih
jednačina. Popularnost i opšta prihvaćenost u svim oblastima tehnike i
nauke podudara se s razvojem jeftinih i lako dostupnih digitalnih računara.
Razvoj simulacionog softvera počinje s programiranjem u
programskim jezicima nižeg i višeg nivoa, preko simulacionih softvera
Teorijske osnove modeliranja i simulacije dinamičkih sistema
7
opšte namene do današnjih mnogobrojnih specijalizovanih softverskih
paketa za simuliranje u određenim oblastima. Moderni simulacioni softveri
se karakterišu lako razumljivim grafičkim korisničkim interfejsom, koji
omogućava brzo i lako izvršavanje simulacija na simulacionim modelima,
jednostavnu izmenu parametara, kako pojedinačnih komponenti, tako i
simulacije u celini, dostupne i pregledne rezultate simulacije u formi
raznovrsnih grafikona i tabela, složenu analizu rezultata s prijavljivanjem
grešaka u simulacionom modelu i samoj simulaciji.
1.3.2 Značaj i prednosti simulacije
Simulacija pomaže razumevanju složenih sistema, projektovanju
novih i poboljšanju performansi postojećih sistema. Igra nezaobilaznu ulogu
tamo gde bi eksperimentisanje s realnim sistemima bilo nemoguće,
nepraktično, preskupo, vremenski dugotrajno ili previše opasno (npr. u
autoindustriji pri dizajniranju novih vozila, eksperimentisanje s pravim
automobilima umesto prethodnih simulacija, najpre na računarima, a potom
i na prototipu ili provera bezbednosti automobila na pravim ljudima umesto
na lutkama - njihovim fizičkim modelima). Glavne uloge simulacije su:
bolje razumevanje sistema (otkriva previde pri projektovanju), poboljšanje
efikasnosti (otkriva probleme u sistemima kao što su uska grla),
isprobavanje alternativa (izbegava se skupo, a ponekad i opasno
eksperimentisanje metodom pokušaja i promašaja na realnom sistemu),
ušteda vremena i novca (cena simulacije je mala u odnosu na dobit koju
daje), kreiranje virtuelnih okruženja (trening pilota ili vozača, operatera u
nuklearnim elektranama).
Međutim, uvek bi trebalo imati na umu da informacije dobijene
eksperimentima na loše urađenim modelima mogu često da budu, ne samo
beskorisne, nego ponekad i štetne. Na primer, i pored postojanja
mnogobrojnih ekonomskih modela i brojnih simulacija na njima, niko nije
predvideo pojavu globalne ekonomske krize 2008. godine. Razlog je taj što
ekonomisti danas mogu veoma dobro da modeliraju i matematičkim
relacijama opišu većinu ekonomskih faktora i relacija među njima (kao što
su npr. uticaj povećanja investicija u budžetu na rast bruto domaćeg
proizvoda ili povećanja referentne kamatne stope na inflaciju), ali su i dalje
prilično nemoćni pri pisanju jednačina koje bi uzele u obzir neke
subjektivne, sociološke faktore kao što je ljudska pohlepa ili pojava
masovne panike.
Praktikum za modeliranje i simulaciju dinamičkih sistema
8
1.4 Metodologija modeliranja i simulacije sistema
Pri postupku modeliranja i simulacije (koji se često razmatraju
zajedno, kao kompatabilne tehnike koje imaju isti cilj), mogu se uočiti
sledeće etape (slika 1.3):
• Postavka zadatka
Pre pristupanja samom činu modeliranja i simulacije neophodno je
najpre jasno postaviti zadatke i definisati ciljeve istraživanja, odnosno
namenu modela. Izbor tipa modela i stepen njegove idealizacije
(aproksimacije) direktno zavisi od postavljenih ciljeva modeliranja i
simulacije datog sistema.
• Izučavanje sistema i formiranje strukturne šeme
Izučavanje sistema obuhvata identifikovanje i određivanje granica
sistema, kao i njegovih komponenata i načina njihove interakcije. Definišu
se promenljive veličine, njihov raspored i međusobni odnosi, kao i ulazi i
izlazi sistema. Zatim se uočavaju tokovi materijala i energije u sistemu,
lokacije gde se vrši njihovo akumuliranje, njihov raspored i međusobne
veze. Definišu se tačke u kojima mogu delovati spoljni uticaji i šumovi.
Složeni sistemi se dekomponuju na podsisteme koji su lakši za modeliranje.
Određuju se opsezi mogućih promena pojedinih veličina sistema.
• Razvoj modela
Sledeći korak je razvoj modela. Pre samog modeliranja, donose se
odluke o zanemarivanjima i aproksimacijama koje će se izvršiti, a u skladu s
ciljevima konkretnog istraživanja. U slučaju matematičkog modeliranja
pristupa se određivanju jednačina delova sistema i sistema u celini na
osnovu uvida u sistem i poznavanja fizičkih zakona koji za njega važe, a
imajući uvek u vidu osnovne zakone održanja. Ukoliko se, najpre, svaki
element sistema i svaka njihova međusobna veza opiše matematičkom
relacijom, pri čemu se skup svih tih relacija smatra matematičkim modelom
sistema, radi se o induktivnoj (odozdo na gore) metodi modeliranja. Drugi
pristup je kada se odmah formira globalni model koji se sastoji od
određenog broja relacija. U tom slučaju, radi se o deduktivnoj (odozgo na
dole) metodi modeliranja. Zavisno od potreba, matematički model može biti
izražen u formi diferencijalnih jednačina, funkcije prenosa ili prostora
stanja. Obično se, zatim, pravi simulacioni model pogodan za primenu na
računarima.
Teorijske osnove modeliranja i simulacije dinamičkih sistema
9
Slika 1.3 Metodologija modeliranja i simulacije
Sledi verifikacija modela, tj. provera da li je model pravilno
implementiran, onako kako je to modelar zamislio. Tokom verifikacije se
model testira i ispravljaju se greške u implementaciji
• Simulacija i analiza
Simulacija je određivanje ponašanja modela na osnovu zadatih
vrednosti ulaza. Njom se ocenjuje tačnost modela, pri čemu se vrši
upoređivanje vrednosti pojedinih promenljivih u procesu i odgovarajućih
vrednosti promenljivih u modelu. Kao kriterijum za ocenu najčešće se
koristi neki vid srednjekvadratnog odstupanja. Rezultati simulacija se
analiziraju i vrši se evaluacija modela, koji se potom koriguje na željeni
način, pa se proces ponavlja, dok rezultati ne budu zadovoljavajući. Pri tome
Praktikum za modeliranje i simulaciju dinamičkih sistema
10
se koristi unutrašnja verifikacija, koja obezbeđuje da je simulacija usklađena
sa odgovarajućim modelom određenog stepena tačnosti, i spoljašnja
validizacija, koja daje potvrdu da model ima prihvatljivu tačnost u opsegu
uslova relevantnih za odgovarajuću primenu.
Dakle, modeliranje i simulacija sistema je u suštini iterativni proces:
razvija se model, vrši se simulacija, analiziraju se rezultati, a zatim se vrši
revizija modela, i sve tako dok se ne dođe do traženih odgovora s
dovoljnom tačnošću.
2
Modeliranje i simulacija dinamičkih
sistema u Simulink-u
2.1 Upoznavanje sa Simulink-om
Simulink je programski paket za modeliranje i simulaciju dinamičkih
sistema. Predstavlja proširenje MATLAB-a i, kao takav, zadržava sve
karakteristike MATLAB-a, jednоg od najboljih matematičkih paketa za PC
platformu a, osim toga, sadrži i mnoge specifične karakteristike potrebne za
brzu i laku simulaciju dinamičkih sistema. Simulink nudi tri mogućnosti za
opisivanje modela koje se mogu kombinovati: opis modela korišćenjem
viših programskih jezika, opis modela pomoću Matlab funkcija i grafičko
predstavljanje modela pomoću blokova. Najpopularniji način, za većinu
neiskusnih korisnika, je korišćenje blokova. Ovaj način je ujedno i
najpogodniji i najbrži za editovanje modela do postizanja željenih rezultata.
Radi lakšeg snalaženja, blokovi su razvrstani u gotove biblioteke koje se
mogu dopuniti blokovima formiranim od strane samog korisnika.
Implementacija hijerarhije modela je veoma važna osobina Simulink-a,
naročito kod velikih i složenih sistema. U takvim slučajevima se grupa
blokova objedinjuje i u šemi predstavlja kao jedan blok, što utiče povoljno
na preglednost modela. Proces simulacije može se pratiti vizuelno a, kada se
simulacija završi, rezultati su dostupni u radnom okruženju MATLAB-a.
2.1.1 Primer rada sa Simulink-om
Način rada u Simulink-u biće objašnjen na jednostavnom primeru u
kome je potrebno simulirati dva signala - sinusoidni i testerasti, i njihov zbir
prikazati na ekranu. Za to je neophodno izvršiti sledeće korake:
1. Otvaranje Simulink-a
Pozvati MATLAB (slika 2.1), a kada se pojavi komandni prozor
MATLAB-a, otkucati naredbu Simulink ili odabrati odgovarajuću ikonu iz
menija (slika 2.2).
Modeliranje i simulacija dinamičkih sistema u Simulink-u
13
Slika 2.1 Izgled MATLAB prečice na desktop
Slika 2.2 Izgled glavnog prozora MATLAB-a i otvaranje Simulink-a
2. Kreiranje novog modela u Simulink-u
Pozivom Simulink-a, otvara se prozor s glavnom bibliotekom
blokova. Novi model se formira izborom komande NEW iz FILE menija ili
klikom na odgovarajuću ikonu (slika 2.3). Pri tome se otvara prazan prozor
na desnoj strani u kome se formira model.
3. Prevlačenje potrebnih blokova u model
Sledeći korak je otvaranje odgovarajućih biblioteka i prevlačenje
potrebnih blokova u radni prozor (slika 2.4). U razmatranom primeru biće
potrebna dva generatora signala (blok Signal Generator iz biblioteke
Sources), koji formiraju sinusoidni i testerasti signal, sabirač, koji sabira ta
dva signala (blok Add iz biblioteke Math), i displej na kome možemo da
posmatramo rezultat sabiranja (blok Scope iz biblioteke Sinks). Ukoliko
imamo više istih blokova (signal generatori u ovom slučaju), možemo ih
prevlačiti jedan po jedan ili prevući jedan, pa ga kopirati potreban broj puta.
Praktikum za modeliranje i simulaciju dinamičkih sistema
14
Prilikom prevlačenja, trebalo bi voditi računa o tome da se blokovi postave
tako da omoguće kasnije formiranje preglednog modela. Ukoliko je to
potrebno, blokovi se mogu okretati i rotirati po želji (desni klik na blok, pa
izbor odgovarajuće opcije format, flip block ili rotate block).
Slika 2.3 Izgled prozora Simulink-a i otvaranje novog modela
Slika 2.4 Izbor potrebnih blokova i prevlačenje u model
Modeliranje i simulacija dinamičkih sistema u Simulink-u
15
4. Povezivanje blokova modela
Nakon što su blokovi razmešteni, vrši se njihovo povezivanje
pomeranjem miša od izlaznog porta jednog bloka do ulaznog porta drugog
bloka, pri čemu sve vreme treba držati pritisnut levi taster miša (slika 2.5).
Slika 2.5 Povezivanje blokova modela
5. Prilagođavanje parametara blokova
Ukoliko je to potrebno, vrši se promena parametara određenih blokova
u skladu s parametrima željenog modela. U prozor s parametrima bloka u
kome je moguće napraviti željene izmene, ulazi se dvostrukim klikom na taj
blok.
U primeru koji se razmatra, potrebno je da jedan generator signala
generiše sinusoidni, a drugi testerasti signal. S obzirom na to da je, po
ubacivanju bloka, podrazumevani izlaz sinusoidni (sine) signal, potrebno je
ući u prozor sa parametrima drugog generatora signala (slika 2.6) i
promeniti signal koji on generiše u testerasti (sawtooth). Svaki blok ima
svoj skup karakterističnih parametara. Tako se kod generatora signala može
promeniti ne samo vrsta signala (sinusoidni, testerasti, pravougaoni ili
slučajni), nego i amplituda i frekvencija (u Hz ili rad/s).
6. Definisanje parametara simulacije
Osim promene parametara pojedinačnih blokova, moguće je promeniti
i parametre simulacije u celini. Prozor s parametrima simulacije se otvara
Praktikum za modeliranje i simulaciju dinamičkih sistema
16
izborom opcije Configuration Parametars iz menija Simulation (slika 2.7).
Ovde, na primer, možemo promeniti trajanje simulacije na 5 sekundi
(podrazumevana vrednost je 10 sekundi), koristeći polje stop time, ili
podesiti maksimalni korak simulacije na 0.001, koristeći polje max step size.
Slika 2.6 Prozor s parametrima generatora signala
Slika 2.7 Prozor za promenu parametara simulacije
Modeliranje i simulacija dinamičkih sistema u Simulink-u
17
7. Pamćenje modela i pokretanje simulacije
Pre pokretanja simulacije, potrebno je zapamtiti model koji smo
kreirali. To se može uraditi izborom opcije Save As iz File menija. Pritom se
modelu daje i željeni naziv. Startovanje simulacije se vrši preko opcije Start
iz Simulation menija ili izborom odgovarajuće ikone (slika 2.8). Simulaciju
je moguće zaustaviti pre kraja izborom opcije Stop, takođe iz Simulation
menija.
Slika 2.8 Pamćenje modela i pokretanje simulacije
8. Analiza rezultata simulacije
Po završetku simulacije moguće je pogledati rezultate, u ovom slučaju
zbir dva signala (sinusoidnog i testerastog). To se može uraditi dvostrukim
klikom na displej (blok Scope). Rezultati prikazani na displeju se mogu
razvući preko celog displeja (desni klik na grafik, pa opcija Autoscale), a
može se i uvećati proizvoljan deo grafika razvlačenjem imaginarnog
pravougaonika preko željenog dela displeja (slika 2.9).
Praktikum za modeliranje i simulaciju dinamičkih sistema
18
Slika 2.9 Pregled rezultata simulacije
9. Modifikovanje modela
Simulink omogućava vrlo lako unošenje izmena u postojeći model.
Ukoliko, na primer, želimo umesto zbira da simuliramo razliku signala, pri
čemu je potrebno da sinusoidni signal sada ima dvostruko veću frekvenciju,
to možemo jednostavno da uradimo promenom parametara blokova Add
(umesto ++ upisati +- u polju List of signs) i gornjeg Signal generatora koji
generiše sinusoidu (promeniti vrednost parametra Frequency sa 1 na 2Hz)
(slika 2.10).
Osim modifikacije blokova, moguće je vrlo lako izvršiti i dodavanje
novih ili izbacivanje nepotrebnih blokova. Neka nam je, na primer, potreban
integral dobijenog signala i želimo da na displeju vidimo sva tri signala (dva
generisana i jedan koji je integral njihove razlike) u toku prve tri sekunde.
Potrebno je u model dodati dva nova bloka: integrator (blok Integrator iz
biblioteke Continuous) i multiplekser (blok Mux iz biblioteke Signal
routing), čija je uloga da više signala provede kroz jedan kanal, u ovom
slučaju tri signala do displeja koji ima jedan ulazni port. Po prevlačenju
novih blokova i definisanja njihovog položaja i veza, potrebno je promeniti
željene parametare (parametar Number of inputs u bloku Mux promeniti sa 2
na 3 i vreme simulacije promeniti sa 5 na 3 sekunde u polju Stop time
parametara cele simulacije) i ponovo pokrenuti simulaciju (slika 2.11).
Modeliranje i simulacija dinamičkih sistema u Simulink-u
19
Slika 2.10 Signal na displeju nakon unetih modifikacija i ponovnog
izvršenja simulacije
Slika 2.11 Izgled novog modela i rezultata simulacije (sinusoidni signal,
testerasti signal i rezultujući signal koji predstavlja integral razlike prva
dva signala) posle svih unetih modifikacija
Praktikum za modeliranje i simulaciju dinamičkih sistema
20
2.2 Automobil - primer translatornog mehaničkog sistema
Zadatak:
Modelirati kretanje automobila diferencijalnim jednačinama,
modelom u prostoru stanja i funkcijom prenosa. Smatrati da je ulaz sistema
sila kojom motor pokreće automobil, a izlaz sistema pomeraj automobila.
Napraviti simulacioni model u Simulink-u i simulirati prvih 100 sekundi
kretanja, ako je automobil u početnom trenutku t=0 bio u stanju mirovanja i
ako su poznati sledeći parametri: sila kojom motor pokreće automobil je
f=500N, masa automobila je M=1000kg, koeficijent trenja pri kretanju je
B=50Ns/m. Zanemariti sve ostale sile koje deluju na kretanje automobila.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
21
2.2.1 Translatorni mehanički sistemi – fizička osnova modeliranja
Kod translatornih mehaničkih sistema, promenljive od interesa su
x[m] – pomeraj; v[m/s] – brzina; a[m/s2] – ubrzanje i f[N] – sila. Poznate su
i veze između njih: brzina je diferencijal pomeraja (pređenog puta) u
vremenu dx
v xdt
= = , a ubrzanje je prvi diferencijal brzine, odnosno drugi
diferencijal pomeraja u vremenu 2
2
dv d xa v x
dt dt= = = = . U cilju uprošćavanja
jednačina modela i smanjenja broja promenljivih kojima se operiše, obično
se i brzina i ubrzanje izražavaju preko pomeraja. Radi lakšeg zapisa,
usvojeno je da se diferencijal neke promenljive u vremenu skraćeno
označava tačkom iznad promenljive 2
2, ...
dx d xx x
dt dt= = Podrazumeva se i da
su sve promenljive u vremenskom domenu, ako nije rečeno drugačije, pa se
iza njih u razmatranim primerima ne piše da zavise od vremena (t).
Modeliranje translatornih mehaničkih sistema se zasniva na drugom
Njutnovom zakonu, koji kaže da je zbir svih spoljašnjih sila koje deluju na
neko telo jednak proizvodu mase tog tela (M) i njegovog ubrzanja (a):
( )spoljne ii
f Ma= . Iako proizvod mase i ubrzanja s desne strane jednačine
nije nikakva realna sila (već samo daje kvantitativnu vrednost zbira svih
spoljašnjih sila koje deluju na telo), zbog veće intuitivnosti i izbegavanja
grešaka u modeliranju (kao što je izostavljanje tog izraza ili dodavanje
pogrešnog znaka) pogodno je taj izraz nazvati silom inercije tela i dodati ga
ostalim silama:
( ) 0 0spoljne iii i
f Ma f− = = . (2.1)
Dakle, sada možemo identifikovati tri karakteristične sile koje se
javljaju kod modeliranja translatornih mehaničkih sistema. Prva je inercija
koja uvek deluje suprotno od smera ubrzanja tela If Ma Mx= = , gde je
M[kg] masa tela. Sila trenja se javlja kada imamo kretanje tela po nekoj
površini ili kroz neku viskoznu sredinu s međusobnim koeficijentom trenja
B [Ns/m]. Smer te sile je suprotan smeru vektora brzine tela i njen intenzitet
je Bf Bv Bx= = . Sila trenja se u sistemima javlja i u vidu posebnih
elemenata zasnovanih na delovanju viskoznog trenja (kretanje klipa u
cilindru s fluidom pri čemu postoji mogućnost prelaska fluida s jedne na
drugu stranu klipa - amortizeri) i oni se modeliraju prigušnicom (slika 2.12).
Praktikum za modeliranje i simulaciju dinamičkih sistema
22
Treća sila je sila elastičnosti koja teži da deformisanim telima vrati prvobitni
oblik. Modelira se oprugom koeficijenta krutosti K [N/m]. Kada se opruga
istegne za neku dužinu x, po Hukovom zakonu, na njene krajeve deluje sila
elastičnosti Kf Kx= sa smerom ka unutra težeći da vrati krajeve opruge u
neistegnuto, relaksirano stanje. U slučaju sabijanja opruge za istu vrednost
x, sila ostaje ista, samo je sada njen smer ka spolja (slika 2.13).
Slika 2.12 Simboli mase, prigušnice i opruge
Slika 2.13 Sile kod translatornih mehaničkih sistema
Upravo na primeru opruge možemo razmotriti i pomenutu
linearizaciju dinamičkih sistema. Poznato je da, na primer, pri istezanju
federa iz hemijske olovke zaista imamo linearnu zavisnost dužine istezanja i
sile elastičnosti koja teži da vrati feder u prvobitni oblik (što je istezanje
veće, sila je jača). Međutim, u određenom trenutku, pri nekoj većoj dužini
istezanja, feder se deformiše, gubi elastična svojstva i više se ne vraća u
prvobitni položaj posle prestanka dejstva spoljašnje sile (plastična
deformacija). To znači da feder u realnosti nema linearnu već nelinearnu
karakteristiku. Međutim, u oblasti istezanja u kojoj je predviđen da radi (u
olovci) važe linearni zakoni, pa kad modeliramo sistem olovke, možemo
Modeliranje i simulacija dinamičkih sistema u Simulink-u
23
koristiti datu linearnu jednačinu, tj. izvršiti linearizaciju tog, inače
nelinearnog, elementa u okolini radne tačke.
2.2.2 Modeliranje sistema
• Model u obliku diferencijalnih jednačina
Pojednostavljeni blok dijagram sistema, kao i dijagram sila koje
deluju na automobil, prikazani su na slici 2.14. Sila koja dolazi od motora
(f) je pokretačka sila sistema, dok se njoj suprotstavljaju sila inercije ( Mx ) i
sila trenja ( Bx ).
Slika 2.14 Blok dijagram sistema i dijagram sila
Trebalo bi napomenuti da čak i ovakav, krajnje uprošćen model
automobila sa samo osnovnim silama (pogonska sila motora, inercija i
trenje), dovoljno dobro opisuje realni sistem za većinu simulacija kretanja
automobila, iako su zanemarene mnoge druge sile (rotaciona inercija
točkova, sile vešanja, otpor vazduha zavisan od aerodinamike,...). Sve ostale
sile, koje deluju na automobil, imaju mnogo manji uticaj na kretanje
automobila u odnosu na ove, glavne sile.
Direktno iz dijagrama sila može se odrediti model sistema u obliku
diferencijalne jednačine korišćenjem drugog Njutnovog zakona 0ii
f = ,
što znači izjednačavanjem sila koje deluju u suprotnim smerovima:
Mx Bx f+ = , (2.2)
ili
( )1
x f BxM
= − . (2.3)
Iz ovog modela u formi diferencijalne jednačine drugog reda (najveći
diferencijal koji se javlja je drugi) lako je izvesti ostale tražene modele.
Praktikum za modeliranje i simulaciju dinamičkih sistema
24
• Model u prostoru stanja
Stanje dinamičkog sistema opisuje se skupom promenljivih koje
karakterišu buduće ponašanje sistema ako su poznati početno stanje sistema
i spoljni signali, koji na njega deluju. Model sistema u prostoru stanja je
matematički model fizičkog sistema zadat preko skupa ulaznih, izlaznih i
promenljivih stanja povezanih diferencijalnim jednačinama prvog reda. Dok
je model u obliku diferencijalne jednačine pogodniji za analitičko
proučavanje modela, model u prostoru stanja je veoma pogodan za
simulaciju jer je prilagođen matričnoj algebri, jednačine prvog reda se lakše
rešavaju, a početni uslovi jednostavno zadaju. Nelinearni sistemi se ne
mogu predstaviti modelom u prostoru stanja.
Model u prostoru stanja se obično zapisuje u Košijevom obliku preko
dve matrične jednačine (boldirane - podebljane oznake označavaju vektore
ili matrice):
= + diferencijalna jednačina stanja
= + algebarska jednačina izlaza
q Aq Bu
y Cq Du (2.4)
gde je q vektor koordinata (promenljivih) stanja sistema, u vektor ulaza
(upravljačkih veličina) i y vektor izlaza sistema. Matrice su sledećih
dimenzija: , , ,n n n r m n m r A B C D , gde je n broj koordinata stanja, r broj
ulaza, a m broj izlaza sistema.
Kod jednačine stanja modela u prostoru stanja, sve diferencijalne
jednačine moraju biti prvog reda, gde su s leve strane prvi diferencijali
koordinata stanja, a s desne algebarska funkcija koordinata stanja i ulaza. To
znači da u posmatranom primeru ulazno-izlaznu jednačinu drugog reda (2.3)
treba rastaviti na dve jednačine prvog reda, uvođenjem smene, tj. nove
promenljive x v= . Sada (2.3) možemo zapisati kao:
( )
1,
x v
v f BvM
=
= − (2.5)
ili u vektorsko-matričnom obliku:
0 1 0
.10
x xfB
v vM M
= + −
(2.6)
Kao što vidimo, odgovarajući model u prostoru stanja obuhvata dve
jednačine prvog reda umesto jedne jednačine drugog reda. U opštem
slučaju, modelu u obliku ulazno-izlazne diferencijalne jednačine n-tog reda
odgovara sistem od n običnih diferencijalnih jednačina prvog reda, koji
Modeliranje i simulacija dinamičkih sistema u Simulink-u
25
predstavlja model u prostoru stanja. Promenljive, koje se javljaju u našem
modelu, su pomeraj automobila x i njegova brzina v koja predstavlja
diferencijal pomeraja (pređenog puta) u vremenu d
v x xdt
= = . Ove
promenljive se zovu promenljive (koordinate) stanja sistema, a vektor
x
v
=
q predstavlja vektor promenljivih (koordinata) stanja (skraćeno –
vektor stanja) i to je najmanji podskup promenljivih sistema kojima se
sistem može opisati u bilo kom trenutku, tj. njime su definisana sva buduća
stanja sistema ukoliko su poznata početna stanja i ako su poznati ulazi
sistema.
Ne postoji jedinstven model u prostoru stanja za dati model u obliku
diferencijalnih jednačina. Poznavanje fizike sistema često može da pruži
osnovu za pravilno odlučivanje o tome koje će se veličine definisati kao
promenljive stanja. U slučaju mehaničkog sistema, koji se razmatra u ovom
primeru, jasno je da izbor pomeraja i brzine ima prednost u odnosu na druge
moguće promenljive stanja. Pomeraj je promenljiva od posebnog interesa u
modelu, a, takođe, je i veličina pogodna za merenje u realnom sistemu.
Brzina je, takođe, merljiva veličina. Informacije koje se tiču položaja i
brzine u svakom vremenskom trenutku su dovoljne da se tačno definiše
ponašanje sistema. U opštem slučaju se promenljive stanja vezuju za
elemente sistema koji imaju sposobnost skladištenja (akumuliranja)
energije. Pošto su to kod translatornih mehaničkih sistema mase (kinetička
energija mase je 21
2k Mv = ) i opruge (potencijalna energija opruge je
( )21
2p k x = ), logično je za koordinate stanja izabrati brzine masa i
dužine istezanja opruga koje obično direktno zavise od pomeraja masa.
Drugi deo modela u prostoru stanja je matrična algebarska jednačina
izlaza. Kod nje su izlazi sistema izraženi kao algebarska funkcija koordinata
stanja i ulaza. Pošto je u ovom slučaju izlaz sistema pomeraj x, a ulaz sila f,
tj. ;f x= =u y , jednačina izlaza je:
1 0 0x
x fv
= +
. (2.7)
Praktikum za modeliranje i simulaciju dinamičkih sistema
26
• Model u obliku funkcije prenosa
Funkcija prenosa sistema je matematički model dinamičkog sistema
koji se često koristi u analizi i projektovanju sistema upravljanja, naročito
kod linearnih sistema sa jednim ulazom i jednim izlazom kada je prikaz
modela u kompleksnom domenu pogodniji od prikaza u vremenskom
domenu. Funkcija prenosa sistema je odnos (količnik) kompleksnih likova
(Laplasovih transformacija) izlaznog i ulaznog signala sistema pri nultim
početnim uslovima.
Pri korišćenju modela u obliku funkcije prenosa svi početni uslovi su
nulti. To dozvoljava da se određena diferencijalna jednačina prevede iz
vremenskog u kompleksni, Laplasov domen, jednostavnom zamenom d/dt
sa s, d2/dt2 sa s2 itd. Ovaj postupak prevodi diferencijalnu jednačinu u
algebarsku jednačinu po Laplasovoj promenljivoj s ( s j = + ). Na taj
način, dobija se model dat algebarskim relacijama što pojednostavljuje
matematičke operacije a, takođe, pruža mogućnost dodatnog uvida u fizičku
prirodu procesa.
Na primer, sistem definisan jednačinom (2.2) transformiše se u
2 ( ) ( ) ( )Ms X s BsX s F s+ = , (2.8)
gde je X(s) Laplasova transformacija od x(t), F(s) je Laplasova
transformacija od f(t), a svi početni uslovi za x(t) i njegove izvode su jednaki
nuli. Iz (2.8), dalje, imamo:
( ) ( ) ( )2Ms Bs X s F s+ = . (2.9)
Ako je izlaz sistema pomeraj x, a ulaz pokretačka sila sistema f, onda se
funkcija prenosa dobija kao količnik njihovih Laplasovih transformacija.
2
( ) 1( )
( )
X sW s
F s Ms Bs= =
+, (2.10)
gde je W(s) simbol za funkciju prenosa. Uopšteno, funkcija prenosa W(s)
može se zapisati u obliku količnika dva polinoma po kompleksnoj
promenljivoj s
1
1 1 0
1
1 1 0
...( )( )
( ) ...
m m
m m
n n
n n
b s b s b s bY sW s
U s a s a s a s a
−
−
−
−
+ + + += =
+ + + +, (2.11)
gde je Y(s) Laplasova transformacija izlazne promenljive, a U(s) Laplasova
transformacija ulazne promenljive. Polinom 1
1 1 0...n n
n na s a s a s a−
−+ + + + koji
predstavlja imenilac funkcije prenosa se drugačije naziva karakteristični
polinom sistema i ima važnu ulogu kod ispitivanja stabilnosti sistema.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
27
• Veza između modela sistema u prostoru stanja i funkcije prenosa
Primenom Laplasove transformacije na model sistema u prostoru
stanja (2.4), dobija se:
( ) ( ) ( )
( ) ( ) ( )
= +
= + .
s s s s
s s s
Q AQ BU
Y CQ DU (2.12)
Iz prve jednačine je ( ) ( )1
=s s s−
−Q I A BU , gde je I jedinična matrica
dimenzija nxn. Zamenom dobijenog izraza za Q(s) u drugu jednačinu iz
(2.12), dobija se:
( ) ( )1
=s s s− − +
Y C I A B D U . (2.13)
Možemo primetiti da izraz 1
s− − +
C I A B D u poslednjoj jednačini u
potpunosti odgovara definiciji funkcije prenosa iz (2.11), tj. predstavlja
odnos kompleksnih (Laplasovih) likova izlaza i ulaza sistema.
U opštem slučaju kada sistem ima više ulaza i izlaza, dobijeni izraz
predstavlja matricu čiji su elementi funkcije prenosa sistema. Tako je, na
primer, element u i-toj vrsti i j-toj koloni matrice, u stvari funkcija prenosa
od j-tog ulaza do i-tog izlaza, koja se definiše kao odnos kompleksnih likova
signala na i-tom izlazu i j-tom ulazu, pri svim početnim uslovima i svim
ostalim ulaznim signalima jednakim nuli. Primeri razmatrani u ovom
praktikumu imaju, po pravilu, samo po jedan ulaz i jedan izlaz, pa se
ubacivanjem konkretnih vrednosti matrica iz prostora stanja u
1
s− − +
C I A B D direktno dobija jedinstvena funkcija prenosa sistema.
• Simulacioni model u Simulink-u
Simulacioni model je predstava sistema prilagođena simulaciji na
računarima. Model sistema u Simulink-u za razmatrani primer se dobija
direktno iz jednačine (2.3) kod koje je izražen najveći diferencijal u
jednačini. Počinje se ubacivanjem potrebnog broja integratora u model.
Integrator (slika 2.15) je element koji na izlazu računa integral svog ulaznog
signala. To, takođe, znači da ako njegov izlazni signal označimo sa x, onda
je ulazni signal diferencijal u vremenu od x ili ili dx
x xdt
.
Pošto je najveći diferencijal s kojim se javlja signal x drugi, to znači
da nam je za tu promenljivu potrebno dva integratora (blok Integrator iz
biblioteke Continuous).
Praktikum za modeliranje i simulaciju dinamičkih sistema
28
Slika 2.15 Blok Integrator
Sledeći korak je formiranje modela, poštujući jednačinu (2.3), a
koristeći blokove sabirača (Add) i pojačavača (Gain). Oba ova elementa se
mogu naći u biblioteci Math (slika 2.16). Uloga sabirača je da na izlazu daje
zbir svojih ulaznih signala, a pojačavača da ulazni signal pomnoži nekom
zadatom vrednošću. Ukoliko je potrebno naći zbir ili razliku više od dva
signala, sve što je potrebno je dodati njihove znakove u prozor s
parametrima sabirača.
Slika 2.16 Blokovi Add i Gain
Korišćenjem ovih blokova, uz dodatak blokova za pobudni signal - silu koju
daje motor (blok Constant iz biblioteke Sources) i bloka za prikazivanje
rezultata simulacije – izlaznog signala koji može biti, na primer, pomeraj
(blok Scope iz biblioteke Sinks), dolazi se do konačnog simulacionog
modela (slika 2.17).
Slika 2.17 Simulacioni model automobila
Modeliranje i simulacija dinamičkih sistema u Simulink-u
29
• Predstavljanje različitih modela u Simulink-u
Simulink omogućava prikazivanje svih izvedenih modela sistema:
simulacionog modela, modela u prostoru stanja i modela u formi funkcije
prenosa. Da bi se demonstriralo kako su svi ti modeli u stvari samo različite
predstave jednog istog sistema, može se napraviti komparacija sva tri
modela u Simulink-u.
Model u prostoru stanja se u Simulink-u predstavlja pomoću bloka
State-Space (srp. prostor stanja) iz biblioteke Continuous. Na ulazni port
ovog bloka dovodi se ulaz sistema (sila f), a izlazni port (izlazni signal je
pomeraj x) se vodi na displej. Konkretne matrice prostora stanja s brojnim
vrednostima za razmatrani primer se unose kao parametri ovog bloka.
Dvostrukim klikom na blok, otvaraju se parametri s matricama kao na slici
2.18.
Slika 2.18 Parametri bloka State-Space
Na slici se vidi kako su već unete sve matrice razmatranog sistema, ranije
prikazane u (2.6) i (2.7):
Praktikum za modeliranje i simulaciju dinamičkih sistema
30
0 1 0
; ; 1 0 ; 0 ,10
A B C DB
M M
= = = = −
(2.14)
sa zamenjenim brojnim vrednostima (M=1000kg, B=50Ns/m). Matrice se u
Matlab-u i Simulink-u unose tako što se u srednjim zagradama redom ređaju
članovi matrice, pri čemu se elementi iste vrste odvajaju blanko znakom, a
uzastopne vrste znakom tačka-zarez (;).
Funkcija prenosa se u Simulink-u predstavlja blokom Transfer Fcn,
što je skraćeno od Transfer Function (srp. funkcija prenosa) iz biblioteke
Continuous. Na ulazni port i ovog bloka se dovodi ulaz sistema (sila f), a
izlazni port (izlazni signal je pomeraj x) se ponovo vodi na displej.
Konkretan razlomak, koji predstavlja funkciju prenosa sistema s brojnim
vrednostima za razmatrani primer, unosi se kroz parametre ovog bloka u
obliku zasebnih polja za brojilac (Numerator) i imenilac (Denumerator)
razlomka. Dvostrukim klikom na blok se otvaraju parametri, kao na slici
2.19.
Slika 2.19 Parametri bloka Transfer Fcn
Na slici se može videti već uneti brojilac i imenilac funkcije prenosa
razmatranog sistema date sa (2.10), sa zamenjenim brojnim vrednostima
Modeliranje i simulacija dinamičkih sistema u Simulink-u
31
(M=1000kg, B=50Ns/m). Brojilac i imenilac se u Matlab-u i Simulink-u
smatraju polinomima i unose se kao vektori, tako što se u srednjim
zagradama redom ređaju koeficijenti polinoma razdvojeni blanko znakom.
Na primer, polinom 4 3 22 5 1x x x+ − + se zapisuje kao [2 1 -5 0 1]. Valja
primetiti da ukoliko fali neki član polinoma na mestu njegovog koeficijenta
pišemo nulu. Tako se brojilac u našem primeru 21000 50s s+ zapisuje kao
[1000 50 0].
Na slici 2.20 vide se sva tri modela formirana u Simulink-u. Po
izvršenju simulacije (vreme simulacije je 100 sekundi), može se videti da
sva tri modela daju iste rezultate. To pokazuje da, iako su modeli po formi
drugačiji, svi oni opisuju isti sistem.
Slika 2.20 Predstavljanje različitih modela automobila u Simulink-u
2.2.3 Simulacija sistema i analiza rezultata simulacije
Po završetku izvršenja simulacije, za karakteristične veličine u
primeru (pomeraj, brzina i ubrzanje automobila) dobijaju se rezultati
prikazani na slici 2.21. Grafici se mogu dobiti povezivanjem bloka Scope na
Praktikum za modeliranje i simulaciju dinamičkih sistema
32
liniju sa odgovarajućim signalom: iza drugog integratora posmatramo signal
pomeraja, iza prvog integratora signal brzine, a ispred prvog integratora
signal ubrzanja. S grafika se može videti kako brzina automobila u početku
naglo, a zatim sporije raste sve dok ne dostigne konstantnu vrednost od
10m/s. Ubrzanje, kao diferencijal (mera brzine promene) brzine, očekivano
u početku ima najveću vrednost, a kasnije opada do nule (diferencijal
konstante je nula).
Slika 2.21 Pomeraj, brzina i ubrzanje automobila
Deo simulacije pre uravnotežavanja sila označava prelazni proces, a
posle toga stacionarno stanje. U stacionarnom stanju je došlo do
uravnotežavanja sila, tj. sila trenja, koja je jednaka proizvodu konstante
(koeficijenta trenja) i brzine, rasla je sa porastom brzine sve dok se nije
izjednačila s pokretačkom silom motora i dostigla vrednost 500N, što se
Modeliranje i simulacija dinamičkih sistema u Simulink-u
33
može i videti sa slike 2.22. Istovremeno je sila inercije opadala do nule s
padom ubrzanja automobila. Ova dva grafika se dobijaju povezivanjem
bloka Scope iza sabirača za silu inercije (signal Mx ) i iza pojačavača sa
vrednošću B za silu trenja (signal Bx ).
Slika 2.22 Sile inercije i trenja automobila
Po uravnotežavanju sila, automobil nastavlja da se kreće
ravnomernom brzinom, koja se može izračunati i analitički ako se u
jednačini (2.2) zamene poznate brojne vrednosti i usvoji da je ubrzanje u
stacionarnom stanju jednako nuli ( )0; staca x x v= = = :
500
1050
stac stac
f Nf Bv v m s
B Nm s= = = = . (2.15)
Praktikum za modeliranje i simulaciju dinamičkih sistema
34
2.3 Padobranac - primer translatornog mehaničkog sistema
Zadatak:
Modelirati skok padobranom diferencijalnim jednačinama, u prostoru
stanja i funkcijom prenosa. Napraviti simulacioni model skoka padobranom
u Simulink-u i simulirati prve tri sekunde skoka ako je masa skakača
MS=60kg, masa padobrana (platna) MP=10kg, koeficijent trenja skakača s
vazduhom BS=10Ns/m, koeficijent trenja padobrana sa vazduhom
BP=100Ns/m i koeficijent krutosti sajli koje vezuju skakača s padobranom
K=400N/m (računaju se sve sajle sakupljene zajedno). U simulacioni model
dodati početni uslov da je u trenutku otvaranja padobrana (početak
simulacije, t=0) padobranac padao slobodnim padom dostigavši brzinu od
v0=20m/s. Zanemariti uticaj vetra i smatrati da je trenje padobrana s
vazduhom konstantno tokom posmatranog perioda vremena.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
35
2.3.1 Modeliranje sistema
• Model u obliku diferencijalnih jednačina
Najpre je potrebno realni sistem svesti na poznate elemente. U ovom
slučaju, sistem se može prikazati kao skup dva tela (padobran i skakač) s
masama MP i MS koja su povezana oprugom koeficijenta krutosti K
(zamenjuje sajle koje vezuju skakača s padobranom). Otpor vazduha se
može predstaviti kao trenje dve mase s vertikalnom osnovom. Pri crtanju
dijagrama sila za dva tela, treba imati na umu da je ovde pokretačka sila
sistema sila gravitacije, kojoj se suprotstavljaju inercija i trenje. Što se tiče
opruge, ona se na početku simulacije isteže, pa težeći da vrati krajeve, na
padobran deluje na dole, a na skakača na gore.
Slika 2.23 Blok dijagram sistema i dijagram sila
Iz dijagrama sila se izvodi sledeći model sistema u obliku diferencijalnih
jednačina:
( )
( ) ,
P S P P P P P
S S P S S S S
M g K x x M x B x
M g K x x M x B x
+ − = +
= − + + (2.16)
Praktikum za modeliranje i simulaciju dinamičkih sistema
36
tj.
( )
( )
1
1.
P P S P P P
P
S S S P S S
S
x M g K x x B xM
x M g K x x B xM
= + − −
= − − −
(2.17)
• Model u prostoru stanja
Ukoliko posmatramo pomeraj skakača kao izlaz sistema, vektori
promenljivih stanja, ulaza i izlaza su:
, [ ], ,
P
P
S
S
S
x
vg x
x
v
= = =
q u y
a matrični model u prostoru stanja:
0 1 0 0
00
1
0 0 0 1 0
10
0 0 1 0 0 .
P PP
P P PP P
S S
S SS
S S S
P
P
S
S
S
x xBK K
M M Mv vg
x x
v vBK K
M M M
x
vx g
x
v
− −
= +
− −
= +
(2.18)
• Model u obliku funkcije prenosa
Model u obliku funkcije prenosa dobija se Laplasovom
transformacijom sistema diferencijalnih jednačina (2.16):
2
2 ,
P S P P P P P
S S P S S S S
M G KX KX M s X B sX
M G KX KX M s X B sX
+ − = +
= − + + (2.19)
tj.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
37
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
2
2 .
P P P S P
S S S P S
M s B s K X s KX s M G s
M s B s K X s KX s M G s
+ + − =
+ + − = (2.20)
Pošto nam je za funkciju prenosa potreban odnos kompleksnih likova izlaza
( )SX s i ulaza sistema ( )G s tj. ( )( )
( )SX s
W sG s
= , možemo iz prve jednačine
iz sistema (2.20) izraziti ( )PX s :
( )( ) ( )2
P S
P
P P
M G s KX sX s
M s B s K
+=
+ +, (2.21)
i to zameniti umesto ( )PX s u drugu jednačinu, koja onda posle sređivanja
postaje:
( ) ( )
( )
( ) ( ) ( )
2
4 3
2
[
] ,
S P S P S P
S P S P P S
S S P P S P S
M M s M B s M K M K G s
M M s M B M B s
M K B B M K s B K B K s X s
+ + + =
= + + +
+ + + + +
(2.22)
odakle je funkcija prenosa:
( )( )
( ) ( )
2
4 3
2
S P S P S P
S P S P P S
S S P P S P
M M s M B s M K M KW s
M M s M B M B s
M K B B M K s B K B K s
+ + += + + + + + + + +
(2.23)
Kao što je već rečeno, ova funkcija prenosa važi samo u slučaju da su
početni uslovi jednaki nuli.
• Simulacioni model u Simulink-u
Iz sistema diferencijalnih jednačina (2.17), lako je dobiti simulacioni
model u Simulink-u (slika 2.24).
2.3.2 Simulacija sistema i analiza rezultata simulacije
Pre izvršenja simulacije potrebno je uneti početne uslove. U ovom
slučaju, to je početna brzina skakača od 20m/s u trenutku otvaranja
padobrana. Ovo se može uraditi tako što se otvore parametri dva integratora,
koji na svojim izlazima generišu brzine padobrana i skakača (levi integratori
u obe linije), i promeni vrednost parametra Initial condition sa 0 na 20. Po
završetku simulacije, za karakteristične odzive modela dobijaju se rezultati
prikazani na slici 2.25.
Praktikum za modeliranje i simulaciju dinamičkih sistema
38
Slika 2.24 Simulink model sistema padobranca
S grafika možemo uočiti nekoliko karakterističnih trenutaka
simulacije (delovi grafikona vezani za odgovarajuće tvrdnje su obeleženi
slovima):
A: Naglo usporavanje padobrana kao rezultat početka delovanja
velikog otpora vazduha, dok skakačeva težina još uvek nije u potpunosti
istegla sajle i povukla jače padobran na dole.
B: Povećanje brzine skakača usled dejstva gravitacije, pre nego što
padobran i sajle počnu da deluju.
C: Povećanje dužine (istezanje) sajli kao rezultat suprotstavljanja
težine skakača i otpora padobrana.
D: Povećanje brzine padobrana usled težine skakača.
E: Ustaljivanje brzine skakača i padobrana posle nekog vremena
(posle završetka prelaznog dela procesa, po ujednačavanju sila). Tu brzinu,
u ustaljenom stanju, možemo očitati s grafikona i ona iznosi 6.24m/s. S
druge strane, ona može i da se izračuna direktno iz sistema jednačina (2.16),
ukoliko se usvoji da su u ustaljenom stanju brzine skakača i padobranca
jednake i konstantne, a ubrzanja jednaka nuli (diferencijali konstantnih
brzina), tj. S S P Pv x v x v= = = = i 0S S P Pa x a x= = = = .
Modeliranje i simulacija dinamičkih sistema u Simulink-u
39
Slika 2.25 Rezultati simulacije
Tada sistem jednačina (2.16) postaje:
( )
( ) .
P S P P
S S P S
M g K x x B v
M g K x x B v
+ − =
− − = (2.24)
Iz prve jednačine je ( )S P P PK x x B v M g− = − , pa kada to zamenimo u
drugu, dobija se: S P P SM g B v M g B v− + = , tj. ( ) ( )S P P SM M g B B v+ = + ,
odakle je:
( )S P
P S
M M gv
B B
+=
+. (2.25)
Zamenom brojnih vrednosti, dobija se v=6.24 m/s, što potvrđuje valjanost
simulacije.
Praktikum za modeliranje i simulaciju dinamičkih sistema
40
2.4 Dizalica - primer translatorno-rotacionog
mehaničkog sistema
Zadatak:
Na slici 2.26 je prikazan sistem koji predstavlja dizalicu. Sistem se
sastoji od dva diska (momenti inercije diskova su J1 i J2, a ugaoni pomeraji
su obeleženi sa θ1 i θ2), koji su povezani torzionom oprugom (koeficijent
torzione krutosti opruge je KT). Sistem se pokreće električnim motorom koji
na drugi disk deluje momentom sile τ. Smatrati da je sajla, kojom je telo
mase M i pomeraja x vezano za prvi disk, istegljiva (svaki materijal se
donekle isteže) i da ima koeficijent krutosti K (na slici je ta elastičnost sajle
izdvojena kao posebna opruga K). Poluprečnik drugog diska je r.
Modeliranje motora će biti predmet razmatranja posebne vežbe, a u ovoj
Modeliranje i simulacija dinamičkih sistema u Simulink-u
41
vežbi je važno samo da on daje moment sile τ, koji je pokretačka sila za ceo
sistem dizalice.
Modelirati sistem dizalice diferencijalnim jednačinama i na osnovu
njih napraviti simulacioni model u Simulink-u. Simulirati prvih 3.5 sekundi
podizanja tereta ako su poznati sledeći podaci: τ=25Nm, J1=1kgm2, J2=0.5
kgm2, M=20kg, K=7500N/m, KT=100Nm/rad, r=0.1m. Na displeju prikazati
promenljive stanja sistema, kao i dužinu istezanja sajle (opruge koeficijenta
krutosti K na slici), koja vezuje teret M s drugim diskom. Zatim, razmotriti
šta se dešava sa sistemom u slučaju kada je sajla, kojom je teret mase M
vezan za prvi disk, elastična po linearnom zakonu samo do istezanja od
5.35cm posle čega puca, a teret počinje slobodno da pada.
Slika 2.26 Sistem dizalice
Praktikum za modeliranje i simulaciju dinamičkih sistema
42
2.4.1 Rotacioni mehanički sistemi – fizička osnova modeliranja
Kod rotacionih mehaničkih sistema, promenljive od interesa su: θ[rad]
– ugaoni pomeraj; ω[rad/s] – ugaona brzina; α[rad/s2] – ugaono ubrzanje i
τ[Nm] – moment sile. Poznate su i veze između njih: ugaona brzina je
diferencijal ugaonog pomeraja u vremenu d
dt
= = , a ugaono ubrzanje je
prvi diferencijal ugaone brzine, odnosno drugi diferencijal ugaonog
pomeraja u vremenu 2
2
d d
dt dt
= = = = . Kod rotacionih sistema,
možemo primetiti potpunu analogiju promenljivih s veličinama translatornih
sistema ; ; ; x v a f → → → → . Dok je kod translatornih
sistema telo mase M[kg] bilo simbolički obeleženo kockom koja se
translatorno pomera, sada se rotaciono telo momenta inercije J[kgm2]
obeležava diskom koje rotira oko svog centra. Moment inercije kod rotacije
tela je analogan masi u dinamici translatornog kretanja.
Kod modeliranja rotacionih mehaničkih sistema, ponovo se javljaju tri
karakteristične sile (potpuna analogija s translatornim sistemima). Prva je
inercija koja deluje suprotno od smera ubrzanja tela I J J = = . Sila
trenja se javlja kada imamo otpor okoline rotaciji tela s međusobnim
koeficijentom rotacionog viskoznog trenja B[Nms/rad]. Smer te sile je
suprotan ugaonoj brzini tela i ona iznosi B B B = = . Treća sila je
ponovo sila elastičnosti, koja se modelira torzionom oprugom (štap od
elastičnog materijala koji može da se uvrće) koeficijenta torzione krutosti
K[Nm/rad]. Kada se opruga uvrne za neki ugao θ, na njene krajeve deluje
mment sile elastičnosti K K = koja teži da vrati krajeve opruge u
neuvrnuto, relaksirano stanje. Sve tri sile prikazane su na slici 2.27.
Slika 2.27 Osnovne sile kod rotacionih mehaničkih sistema
Modeliranje i simulacija dinamičkih sistema u Simulink-u
43
2.4.2 Modeliranje sistema
Na slici 2.26, kao delovi dizalice, mogu se izdvojiti dva rotaciona i
jedno translatorno telo. Potrebno je odrediti sile koje na njih deluju, pa za
svako od ovih tela crtamo poseban dijagram sila. Pokretački moment sile,
koji dolazi od motora, deluje na disk momenta inercije J1. Njegovoj rotaciji
oko centra suprotstavlja se sila inercije 1 1J i sila torzione opruge
koeficijenta torzione krutosti KT. Jedan kraj te opruge se uvrnuo za ugao 1 ,
a drugi za 2 , pa je ukupno uvrtanje ove opruge ( )1 2 − , a sila elastičnosti
kojom ona teži da vrati krajeve je ( )1 2TK − . Ta sila se suprotstavlja
okretanju prvog diska ali, s druge strane, deluje kao pokretačka sila drugog
diska s momentom inercije J2. Rotaciji drugog diska se suprotstavlja sila
inercije 2 2J i istegnuta opruga koeficijenta krutosti K, koja ga veže za telo
mase M. Da bismo odredili silu te opruge, potrebno je znati sledeće (slika
2.28):
a) dužina kružnog luka na kružnici poluprečnika r čiji krajevi sa
centrom kruga grade ugao θ (dat u radijanima) je rθ;
b) ukoliko na rotaciono telo poluprečnika r delujemo tangencijalnom
translatornom silom f u nekoj tački na njegovom obodu, to će na telu stvoriti
moment sile ( )sinr f rf = = . Za 090 rf = = .
Slika 2.28 Veze translatornih i rotacionih veličina
Gornji kraj opruge koeficijenta krutosti K vezan je za disk momenta
inercije J2 i poluprečnika r, koji se rotirao za ugao θ2, pa je ukupna dužina
za koju se taj kraj namotao oko diska po pravilu a) jednaka rθ2. Donji kraj
opruge je vezan za telo mase M, pa se pomerio na gore za istu vrednost
pomeraja x. Dakle, ukupno istezanje te opruge je (rθ2-x), pa je sila kojom
Praktikum za modeliranje i simulaciju dinamičkih sistema
44
ona teži da uvuče (približi) svoje krajeve jednaka K(rθ2-x), a ta sila je
pokretačka sila za telo mase M. S druge strane, pošto je ta sila translatorna i
deluje na disk momenta inercije J2, prema pravilu b), ona na njemu stvara
moment sile rK(rθ2-x), koji se suprotstavlja rotaciji diska. Sile koje se
suprotstavljaju kretanju tereta mase M na gore su gravitacija (Mg) i inercija
( Mx ). Kompletan dijagram sila prikazan je na slici 2.29.
Slika 2.29 Dijagram sila sistema
Sada se može napisati sistem od tri diferencijalne jednačine drugog
reda s tri koordinate stanja (θ1, θ2 i x), koje čine model razmatrane dizalice:
( )
( ) ( )
( )
1 1 1 2
1 2 2 2 2
2 .
T
T
J K
K J rK r x
K r x Mx Mg
= + −
− = + −
− = +
(2.26)
Da bismo sistem jednačina pripremili za simulacioni model u Simulink-u,
potrebno je izdvojiti najveće diferencijale promenljivih u jednačinama i
predstaviti ih u funkciji od ostalih delova jednačina:
( )
( )
( )
1 1 2
1
2
2 1 2
2
2
1
1
1.
T T
T T
K KJ
K K r K rKxJ
x rK Kx MgM
= − +
= − + +
= − −
(2.27)
Iz sistema (2.27) direktno se konstruiše model u Simulink-u, pri čemu treba
pored displeja za koordinate stanja (θ1, θ2 i x) dodati i displej za prikazivanje
Modeliranje i simulacija dinamičkih sistema u Simulink-u
45
dužine istezanja sajle (opruge K), koja vezuje teret sa drugim diskom. To
znači da u osnovni simulacioni model treba ugraditi i blokove za računanje
izraza (rθ2-x).
Slika 2.30 Simulink model dizalice
2.4.3 Simulacija sistema i analiza rezultata simulacije
Posle izvršenja simulacije u trajanju od 3.5 sekundi, dobijaju se
rezultati prikazani na slici 2.31.
Iz rezultata simulacije može se primetiti nekoliko karakterističnih
momenata. Na početku simulacije, opruga koeficijenta krutosti K svojim
istezanjem amortizuje početni udar težine tereta (setiti se primera s
padobrancem), pri čemu u prvim trenucima teret ima negativnu vrednost
pomeraja (počinje da pada). Kasnije, tokom simulacije, elastičnost sajle (K)
izaziva oscilovanje visine tereta prilikom podizanja. Možemo videti da je
teret na kraju simulacije podignut na visinu od 2m.
Praktikum za modeliranje i simulaciju dinamičkih sistema
46
Slika 2.31 Rezultati simulacije
Pritom su se diskovi rotirali za oko 20 radijana, tj. napravili su nešto
više od 3 puna okreta (jedan okret je 2π radijana). Razlika u njihovoj rotaciji
je mala, što znači da se torziona opruga KT uvrnula za malu vrednost.
U drugom slučaju, koji treba simulirati, imamo kidanje sajle kojom je
teret vezan u slučaju da njeno istezanje postane veće od određene vrednosti.
Tada se menja dinamika sistema. Masa M počinje slobodno da pada pod
uticajem sile gravitacije. Treća jednačina u sistemu (2.26) postaje:
0 Mx Mg x g= + =− , (2.28)
Modeliranje i simulacija dinamičkih sistema u Simulink-u
47
pošto nema više uticaja opruge koeficijenta krutosti K na masu ni njene sile
( )2K r x − . Ta se sila gubi i u drugoj jednačini sistema (2.26), napisanoj za
sile koje deluju na drugi disk, koja sada dobija oblik:
( ) ( )1 2 2 2 2 1 2
2
1T T TK J K K
J − = = − . (2.29)
Prva jednačina ostaje ista pošto sve sile koje su delovale na prvi disk deluju
i dalje.
Da bismo simulirali ovu promenu dinamike sistema u trenutku kada
se sajla kida, tj. kada dužina njenog istezanja premaši 5.35cm, biće nam
potreban Simulink-ov blok Switch (prekidač) koji se nalazi u biblioteci
Signal Routing. Blok Switch ima jedan izlaz i tri ulaza od kojih se srednji
zove upravljački ulaz. Glavni parametar ovog bloka, koji se može upisati
posle duplog klika na blok Switch, je Treshold (prag okidanja). Blok Switch
funkcioniše tako što, na osnovu razlike vrednosti svog upravljačkog ulaza i
parametra Treshold, bira koji će od svoja dva ulaza da prosledi na izlaz.
Ukoliko je ova razlika veća od nule (signal na upravljačkom ulazu je veći od
praga okidanja), tada se na izlaz prosleđuje prvi (gornji) ulaz bloka. U
suprotnom se prosleđuje drugi (donji) ulaz.
Slika 2.32 Blok Switch
U našem primeru, uloga ovih prekidača biće da promene dinamiku
(aktivne diferencijalne jednačine) sistema u trenutku pucanja sajle. To znači
da za prag okidanja prekidača, koji se dodaju postojećem simulacionom
modelu, treba upisati vrednost 5.35cm (0.0535m), a na upravljački ulaz
dovesti signal, koji predstavlja trenutnu dužinu istezanja opruge K, koja
iznosi (rθ2-x). Kada je ta vrednost upravljačkog ulaza (istezanja) manja od
istezanja kidanja, a to je slučaj prvobitnog, normalnog rada sistema,
prekidači će na izlaz prosleđivati drugi ulaz, pa na njega treba dovesti
modelirane stare diferencijalne jednačine (2.26). Čim vrednost upravljačkog
ulaza postane veća od istezanja kidanja, prekidači će na izlaz prosleđivati
Praktikum za modeliranje i simulaciju dinamičkih sistema
48
prvi ulaz, pa na njega treba dovesti modelirane nove diferencijalne
jednačine, koje opisuju dinamiku sistema posle kidanja sajle (2.28) i (2.29).
Na slici 2.33 možemo videti izdvojen deo modela sa upravljačkom
logikom. Celokupna nova šema s dodatno realizovanim novim
diferencijalnim jednačinama i upravljačkom logikom u vidu Switch blokova
prikazana je na slici 2.34.
Nakon izvršenja nove simulacije dobijaju se rezultati prikazani na slici
2.35.
Iz rezultata se zaključuje da do pucanja sajle dolazi posle 2.4 sekunde,
kada se primećuje promena dinamike sistema izazvana ubačenim
prekidačima. Od trenutka kidanja sajle, teret mase M počinje slobodno da
pada, a diskovi se brže rotiraju, budući da su sada neopterećeni teretom.
Slika 2.33 Upravljačka logika za promenu dinamike sistema
Modeliranje i simulacija dinamičkih sistema u Simulink-u
49
Slika 2.34 Modifikovani Simulink model sistema
Praktikum za modeliranje i simulaciju dinamičkih sistema
50
Slika 2.35 Rezultati simulacije za modifikovani slučaj
Modeliranje i simulacija dinamičkih sistema u Simulink-u
51
2.5 Električno kolo – primer električnog sistema
Zadatak:
Modelirati električno kolo sa slike 2.36 diferencijalnim jednačinama u
prostoru stanja i funkcijom prenosa. Napraviti simulacioni model u
Simulink-u i simulirati prve 0.2 sekunde rada kola ako su poznate sledeće
vrednosti: R1=50Ω, R2=628Ω, R3=6.28Ω, C1=100μF, C2=1000μF i
L=2.5mH. Ulazni signal (ei) je pravougaonog oblika amplitude 1V i
frekvencije 10Hz. Neka su signali od interesa (izlazi sistema) za model u
prostoru stanja i Simulink dijagram struje kroz otpornik R1 i kondenzator
C2, dok je izlaz za funkciju prenosa napon eo označen na slici.
Slika 2.36 Primer električnog kola
Praktikum za modeliranje i simulaciju dinamičkih sistema
52
2.5.1 Električni sistemi – fizička osnova modeliranja
Kod električnih sistema, osnovne promenljive su e[V] – napon i i[A] –
struja. Elementi električnog kola mogu biti pasivni: otpornik, kondenzator i
kalem ili aktivni, tj. izvori koji pobuđuju kolo (strujni i naponski). Simboli
elemenata električnog kola su prikazani na slici 2.37.
Slika 2.37 Elementi električnog kola
Poznate su sledeće veze između napona i struje na elementima
električnog kola:
( )
( ) ( )
( ) ( )
0
0
0
0
otpornik: Omov zakon
1kondenzator:
1kalem: ,
RR R R
tC
C C C C Ct
tL
L L L L Lt
ee Ri i
R
dei C Ce e e t i t dt
dt C
die L Li i i t e t dt
dt L
= =
= = = +
= = = +
(2.30)
gde je R[Ω] otpornost otpornika, C[F] kapacitivnost kondenzatora i L[H]
induktivnost kalema. U slučaju nultih početnih uslova i za t0=0, poslednji
izrazi se svode na ( ) ( )0 0
1 1; .
t t
C C L Le i t dt i e t dtC L
= =
U prirodi vlada analogija između sistema različite prirode, npr.
mehaničkih i električnih. Tako se kod elemenata električnog kola može
uočiti analogija otpornika s prigušnicom (otpornost i viskozno trenje),
kondenzatora sa oprugom (kapacitivnost i elastičnost) i kalema s telom ili
diskom određene mase ili momenta inercije (induktivnost i inercija). Pobuda
električnih sistema – napon je analogan sili ili momentu sile kod
mehaničkih. Usled svih tih analogija, česta je pojava da elektroinženjeri sve
sisteme svode i modeliraju kao električna kola, bez obzira na njihovu fizičku
prirodu (mehanički, hidraulički).
Modeliranje i simulacija dinamičkih sistema u Simulink-u
53
Kod električnih sistema, diferencijalne jednačine matematičkog
modela dobijaju se korišćenjem Kirhofovih pravila:
a) Kirhofov zakon za napone: zbir svih padova napona duž svake od
kontura kola jednak je nuli: 0 (za konture kola)jj
e = .
b) Kirhofov zakon za struje: zbir svih struja koje utiču u neki čvor kola
jednak je zbiru struja koje iz njega ističu: 0 (za čvorove kola)jj
i = .
2.5.2 Modeliranje sistema
Procedura modeliranja električnih kola, na način pogodan za
predstavljanje modelom u prostoru stanja, je sledeća:
• U električnom kolu, koje treba modelirati, detektuju se kalemovi i
kondenzatori kao elementi koji mogu da skladište energiju (energija
uskladištena u električnom polju kondenzatora je 21
2C CCe = , a energija
uskladištena u magnetnom polju kalema je 21
2L LLi = ).
• Za promenljive stanja biraju se struje kroz kalemove i naponi na
kondenzatorima.
• Polazeći od poznatih veza ; C LC L
i ee i
C L= = , koje se zapisuju za svaki
kalem i kondenzator u kolu, cilj je izraziti iC i eL kao linearnu algebarsku
kombinaciju promenljivih stanja i ulaza sistema koristeći Kirhofove
zakone (strujni za iC, naponski za eL) i Omov zakon.
Trebalo bi napomenuti i da se opisani postupak ne može primeniti u slučaju
degenerisanih mreža – električnih mreža u kojima se ne mogu nezavisno
zadavati početni uslovi na kalemovima i kondenzatorima.
• Model u prostoru stanja
U primeru koji se razmatra, potrebno je, najpre, usvojiti smerove i
obeležiti struje u granama kola, kao i napone u čvorovima (slika 2.38). Za
promenljive stanja biramo napone na kondenzatorima C1 i C2 (eC1 i eC2) i
struju kroz kalem L (iL).
Praktikum za modeliranje i simulaciju dinamičkih sistema
54
Slika 2.38 Električno kolo sa označenim signalima
Izvođenje modela počinje od navedenih izraza i vrši se sve dok na
desnoj strani jednačina ne ostanu samo promenljive stanja i ulazi. Pri tome,
struje se, najpre, izražavaju preko Kirhofovog zakona za struje u čvorovima,
a dobijene struje kroz otpornike preko napona korišćenjem Omovog zakona:
( ) ( ) ( )
( ) ( )
1 1 1 2 1 1 2
1 1 1 1 2
1 21 2
1 1 2 2 1
2 2 2 3 1 2 2
2 2 2 2 3
2 31 2
2 2 2 3
2
1 1 1 1 1
1 1 1
1 1 1 1 1
1 1
1,
C c R R i C C C
C C i
C c R L R C C L C
C C L
L C
e i i i e e e eC C C R R
R Re e e
C R R R R
e i i i i e e i eC C C R R
R Re e i
C R R R
i eL
= = − = − − − =
+= − + +
= = − − = − − − =
+= − −
=
(2.31)
ili u matričnom obliku:
1 2
1 2 1 2 11 11 1
2 32 2
2 2 2 3 2 2
10 1
1 10
01
0 0
C C
C C i
L L
R R
R R C R CR Ce e
R Re e e
R C R R C Ci i
L
+ −
+
= − − +
. (2.32)
Modeliranje i simulacija dinamičkih sistema u Simulink-u
55
U ovom konkretnom primeru za izlaze sistema treba uzeti iR1 i iC2, pa se radi
dobijanja algebarske matrične jednačine izlaza modela u prostoru stanja, kao
i izraza za simulacioni dijagram u Simulink-u i ove dve promenljive moraju
izraziti kao linearna kombinacija promenljivih stanja i ulaza:
( )
( )
1 1
1
22 2 3 1 2
2 3
2 31 2
2 2 3
1
1
1 ,
R i C
CC R L R C C L
C C L
i e eR
ei i i i e e i
R R
R Re e i
R R R
= −
= − − = − − − =
+= − −
(2.33)
ili u matričnom obliku algebarske jednačine izlaza:
1
11
12
2 2 3
2 2 3
10 0 1
11 0
C
R
C i
C
L
eRi
Re ei R R
iR R R
−
= + + − −
. (2.34)
• Model u obliku funkcije prenosa
U cilju dobijanja modela u obliku funkcije prenosa, potrebno je,
najpre, izvršiti Laplasovu transformaciju sistema diferencijalnih jednačina
(2.31):
( )
( )
1 1 2 1 2 1 2 1 2
2 2 3 2 3 2 3 1 2 3
2
C i C
C C L
L C
C R R s R R E R E R E
C R R s R R E R E R R I
LsI E
+ + = +
+ + = −
=
(2.35)
S obzirom na to da je ulaz sistema Ei, a izlaz EC2 (eo sa slike 2.36),
neophodno je iz sistema izbaciti IL i EC1. Ukoliko se iz treće jednačine izrazi
IL kao: 2CL
EI
Ls= , prve dve jednačine se svode na:
( )
( )1 1 2 1 2 1 2 1 2
2
2 2 3 2 3 2 3 2 3 1
C i C
C C
C R R s R R E R E R E
LC R R s LR s LR s R R E LR sE
+ + = +
+ + + = (2.36)
Ukoliko se sada iz druge jednačine izrazi EC1 preko EC2 i zameni u prvu
jednačinu, onda se iz nje može direktno naći tražena funkcija prenosa
( ) 2C
i
EW s
E= :
Praktikum za modeliranje i simulaciju dinamičkih sistema
56
( )( )
( ) ( )
2 3 2
1 2 1 2 3 1 1 2 1 1 3 2 1 3 2 2 3
1 1 2 3 1 2 3 3 1 2
1W s
LC C R R R s L C R R C R R C R R C R R s
C R R R LR LR LR s R R R
= + + + + + + + + + + +
(2.37)
• Simulacioni model u Simulink-u
Na osnovu diferencijalne jednačine stanja sistema (2.32) i algebarske
jednačine izlaza (2.34), formira se Simulink model prikazan na slici 2.39.
Slika 2.39 Simulink model električnog kola
Model je prilagođen tako da, osim koordinata sistema (eC1, eC2 i Li ),
možemo da posmatramo i izlaze sistema (iR1 i iC2).
Modeliranje i simulacija dinamičkih sistema u Simulink-u
57
2.5.3 Simulacija sistema i analiza rezultata simulacije
Rezultati izvršene simulacije prikazani su na slici 2.40.
Slika 2.40 Rezultati simulacije
Praktikum za modeliranje i simulaciju dinamičkih sistema
58
Možemo primetiti da se pobudni signal (ei) menja skokovito na svakih
0.05 sekundi (frekvencija pravougaonog ulaznog signala je 10Hz). Nakon
svake promene, promenljive stanja i izlazne promenljive prolaze kroz
prelazni proces pre nego što uđu u ustaljeno (ravnotežno stanje). Vrednosti
promenljivih u ravnotežnom stanju se mogu pročitati sa grafikona, ali i
izračunati analitički ukoliko se pretpostavi da su u ustaljenom stanju sve
promenljive konstantne, a samim tim njihovi diferencijali jednaki nuli. Tada
sistem jednačina (2.31) postaje:
1 21 2
1 2 2 1
2 31 2
2 2 3
2
1 10
10
10
C C i
C C L
C
R Re e e
R R R R
R Re e i
R R R
eL
+− + + =
+− − =
=
(2.38)
Rešavanjem sistema jednačina, nakon ubacivanja zadatih vrednosti za R1,
R2, R3, L i ei=const=1V, dobijaju se sledeće vrednosti za promenljive stanja
u ustaljenom stanju: ec1=0.926254V, ec2=0, iL=0.001475A. Zamenom
dobijenih vrednosti u jednačine (2.33), dobijaju se i vrednosti izlaznih
promenljivih: iR1=0.001475A i iC2=0. Sve izračunate vrednosti odgovaraju
pročitanim vrednostima sa grafikona dobijenih simulacijom sistema.
Do istih vrednosti u ustaljenom stanju za konstantan ulaz se može doći
na još jedan način. Poznato je da se u ustaljenom stanju, kada struje i naponi
postanu konstantni, kondenzatori ponašaju kao prekidi u kolu, a kalemovi
kao kratki spojevi. Tada se električno kolo sa slike 2.38 svodi na ono na
slici 2.41.
Slika 2.41 Ekvivaletntno električno kolo u ustaljenom stanju
Modeliranje i simulacija dinamičkih sistema u Simulink-u
59
Iz pojednostavljenog ekvivalentnog električnog kola se za vrednost ulaznog
napona ei=1V jednostavno izračunava: 1 2
1 2
0.001475iL R R
ei i i
R R= = = =
+A,
1 1 0.926254C i Le e i R= − = V. Sa slike 2.41 se direktno vidi da je eC2=0, kao
što je i iC2=0 jer kondenzator iC2 sada predstavlja prekid u kolu.
Praktikum za modeliranje i simulaciju dinamičkih sistema
60
2.6 Zvučnik – primer elektromehaničkog sistema
2.6.1 Princip rada sistema
Poprečni presek i struktura zvučnika prikazani su na slikama 2.42 i
2.43, respektivno. Zvučnik se napaja električnim naponskim izvorom ei
preko strujnog kola čiji je deo kružni žičani kalem koji se nalazi u
magnetnom polju permanentnog magneta jačine magnetnog polja Bm.
Induktivnost tog kalema, koji se sastoji od N kružnih namotaja poluprečnika
r, izdvojena je i prikazana kao kalem spoljašnjeg kola L. Kalem je, s druge
strane, krutom vezom povezan na membranu zvučnika. Elastičnost
membrane i otpor vazduha pri njenom pomeranju su izdvojeni i
predstavljeni oprugom koeficijenta krutosti K i prigušnicom koeficijenta
viskoznog trenja B. Pomeraj membrane je označen sa x.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
61
Kada se sistem pobudi ulaznim naponom ei, struja poteče kroz kolo i
kalem, koji se nalazi u magnetnom polju, počinje da se pomera napred-
nazad (zavisno od smera struje) pod uticajem elektromagnetne sile. Zajedno
s kalemom se pomera i membrana, stvarajući vazdušne talase koje
registrujemo kao zvuk. Ulaz sistema je napon ei, a izlaz pomeraj membrane
x.
Slika 2.42 Poprečni presek zvučnika
Slika 2.43 Konstrukcija zvučnika
Praktikum za modeliranje i simulaciju dinamičkih sistema
62
Zadatak:
Modelirati zvučnik diferencijalnim jednačinama, modelom u prostoru
stanja i funkcijom prenosa. Napraviti simulacioni model i simulirati sistem u
trajanju od 0.05 sekundi, ukoliko su poznati sledeći parametri: ei je
sinusoidalni napon konstantne amplitude 1V i frekvencije koja se menja za
različite simulacije: 10, 100, 1000 i 5000Hz, L=0.02mH, K=1.25·105N/m,
R=2Ω, B=30Ns/m, M=2x10-3kg. S obzirom na to da je za svaki zvučnik,
zavisno od konstrukcije, konstantan i poznat broj namotaja kalema (N),
njihov poluprečnik (r) i jačina magnetnog polja permanentnog magneta
(Bm), obično se kao parametar zvučnika daje zajednička konstanta
α=2πaNBm i neka je njegova vrednost u ovom slučaju α=2.5Vs/m.
2.6.2 Elektromehanički sistemi – fizička osnova modeliranja
Elektromehanički sistemi su, kao što im ime kaže, spoj električnih i
mehaničkih delova, pa se pri modeliranju obično mogu razdvojiti na te
komponente. Najčešće se njihovo funkcionisanje bazira na dejstvu
magnetnog polja. Veličine koje se javljaju kod ovih sistema su: l[m] –
dužina provodnika u magnetnom polju; v[m/s] – brzina kojom se provodnik
u magnetnom polju kreće; i[A] – struja kroz provodnik; Bm[T] – jačina
magnetnog polja (gustina magnetnog fluksa); fe[N] – sila koja deluje na
strujni provodnik u magnetnom polju; em[V] – elektromotorna sila tj.
indukovani napon na krajevima provodnika.
Kod modeliranja ovih sistema treba uzeti u obzir i zakone koji se
odnose na provodnik u magnetnom polju (slika 2.44), a koji su direktna
posledica Lorencovog zakona kojim se izračunava sila koja deluje na
naelektrisanu česticu koja se kreće kroz magnetno polje e mf qv B= , gde je
q naelektrisanje čestice, a v njena brzina. Prvi zakon kaže da je sila koja
deluje na strujni provodnik diferencijalne dužine dl kroz koji teče struja i u
magnetnom polju jačine mB jednaka e mdf idl B= , gde znak označava
vektorski proizvod. Da bi se dobila ukupna indukovana sila na provodnik,
neophodno je izvršiti integraljenje izraza duž celog provodnika. U
primerima razmatranim u ovom praktikumu, provodnici su ili pravolinijski i
normalni na pravolinijsko magnetno polje ili su kružni i nalaze se u
radijalnom magnetnom polju. U oba slučaja, provodnik je postavljen
normalno na linije magnetnog polja, pa se vektorski izraz za diferencijalno
Modeliranje i simulacija dinamičkih sistema u Simulink-u
63
mali deo provodnika može uopštiti na skalarni izraz za ceo provodnik
fe=Bmli, gde se pravac i smer električne sile određuju pravilom leve šake.
S druge strane, ako se provodnik diferencijalne dužine dl kreće u
magnetnom polju jačine mB brzinom v , tada se na krajevima provodnika
indukuje napon m mde v B dl= . I ovaj izraz se može uprostiti za slučaj kada
su tri vektora u izrazu međusobno normalna i tada se dobija skalarni izraz za
indukovani napon na celom provodniku em=Bmlv. Smer elektromotorne sile
od negativnog ka pozitivnom potencijalu se određuje pravilom leve šake.
Slika 2.44 Provodnik u magnetnom polju
2.6.3 Modeliranje sistema
• Model u obliku diferencijalnih jednačina
Prvi korak u modeliranju sistema je njegovo razdvajanje na električni i
mehanički deo (slika 2.45). Električni deo čine izvor napajanja (ei),
otpornost kružnih namotaja i spoljnog dela kola (R), kao i induktivnost
kružnog kalema (L). Ne treba zaboraviti da će se po početku pomeranja
kalema u magnetnom polju, u kolu javiti i kontra-elektromotorna sila, koja
se suprotstavlja pomeranju (em). Mehanički deo sistema čini membrana
mase M i sile koje na nju deluju. Pokretačka sila je elektromagnetna sila,
koja se javlja na kalemu i prenosi krutom vezom na membranu. Kretanju se
suprotstavlja inercija, elastičnost membrane (opruga koeficijenta krutosti K)
i otpor vazduha (prigušnica koeficijenta viskoznog trenja B).
Jačina elektromagnetne sile na kalemu (provodnik), kroz koji teče
struja i koji se nalazi u magnetnom polju, može se izraziti kao fe=Bmli, gde
je Bm jačina magnetnog polja, i je struja koja teče kroz kalem, a l je ukupna
dužina provodnika u polju koja u ovom slučaju kružnog kalema sa N
Praktikum za modeliranje i simulaciju dinamičkih sistema
64
namotaja poluprečnika r iznosi l=2rπN. Sada, za elektromagnetnu silu
imamo izraz fe=Bm2rπNi. Kao što je već istaknuto, u poslednjem izrazu su
sve vrednosti osim struje kroz kalem konstantne i karakteristične za
konstrukciju konkretnog zvučnika, pa možemo uvesti jednu, zajedničku
konstantu α=2πrNBm i konačno zapisati fe=αi.
Slika 2.45 Električni i mehanički deo zvučnika
S druge strane, kada se provodnik kreće kroz magnetno polje, javlja se
kontra EMS koja se tom kretanju suprotstavlja i ona iznosi em= Bmlv, gde je
v brzina provodnika u polju. Na sličan način, kao kod računanja
elektromagnetne sile imamo em= Bm2rπNv=αv.
Za pojedinačne delove sistema sada je lako napisati model u formi
diferencijalnih jednačina:
(električni deo)
(mehanički deo),
i m
e
e Li Ri e
f Mx Bx Kx
= + +
= + + (2.39)
a posle zamene izraza dobijenih za elektromagnetnu silu fe i kontra-
elektromotornu silu em:
,
ie Li Ri x
i Mx Bx Kx
= + +
= + + (2.40)
gde je brzina provodnika v izražena kao diferencijal njegovog pomeraja x.
• Model u prostoru stanja
Model u prostoru stanja se dobija direktno iz jednačina tako što se,
najpre, diferencijali promenljivih najvišeg reda izraze iz jednačina:
Modeliranje i simulacija dinamičkih sistema u Simulink-u
65
( )
( )
1
1,
ii e Ri xL
x i Bx KxM
= − −
= − −
(2.41)
a zatim se druga diferencijalna jednačina iz sistema (2.41), koja je drugog
reda, razloži na dve diferencijalne jednačine prvog reda uvođenjem smene
x v= :
( )
( )
1
1.
ii e Ri vL
x v
v i Bv KxM
= − −
=
= − −
(2.42)
Iz poslednjeg sistema se dobija jednačina stanja modela u prostoru stanja:
10
0 0 1 0 ,
0
i
R
i iL L L
x x e
v K B v
M M M
− −
= + − −
(2.43)
i algebarska jednačina izlaza:
0 1 0 0 ,i
i
x x e
v
= +
(2.44)
gde su vektori koordinata stanja, ulaza i izlaza dati, respektivno, sa:
, , .i
i
x e x
v
= = =
q u y (2.45)
• Model u obliku funkcije prenosa
Funkcija prenosa sistema se dobija kao količnik Laplasovih
trensformacija izlaza i ulaza, u ovom slučaju ( )( )( )i
X sW s
E s= . Do ovog
odnosa se dolazi tako što se najpre izvrši Laplasova transformacija početnog
sistema diferencijalnih jednačina (2.40), koje opisuju sistem, pri nultim
početnim uslovima:
Praktikum za modeliranje i simulaciju dinamičkih sistema
66
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )2 .
iE s LsI s RI s sX s
I s Ms X s BsX s KX s
= + +
= + + (2.46)
Posle Laplasove transformacije promenljive više nisu u vremenskom (t), već
u kompleksnom domenu (s) i pišu se velikim slovima. Iz sistema (2.46)
dalje imamo:
( ) ( ) ( ) ( )
( ) ( ) ( )2 .
iE s Ls R I s sX s
I s Ms Bs K X s
= + +
= + + (2.47)
Ukoliko iz druge jednačine izrazimo I(s): ( )( ) ( )2Ms Bs K X s
I s
+ += i to
zamenimo u prvu jednačinu, imamo:
( ) ( )( ) ( )
( )
( )
2
3 2 2 2
,
i
Ms Bs K X sE s Ls R sX s
LMs LBs LKs RMs RBs RK sX s
+ += + + =
+ + + + + +=
(2.48)
odakle dobijamo funkciju prenosa:
( )( )
( ) ( ) ( )3 2 2.
i
X sW s
E s LMs LB RM s LK RB s RK
= =
+ + + + + +(2.49)
• Simulacioni model u Simulink-u
Simulacioni model u Simulink-u dobija se direktno na osnovu
jednačina (2.41) i prikazan je na slici 2.46.
2.6.4 Simulacija sistema i analiza rezultata simulacije
Potrebno je uraditi četiri simulacije istog modela, pri čemu se menja
samo jedan parametar – frekvencija sinusoide u signal generatoru. Na slici
2.47, koja prikazuje rezultate simulacije, s leve strane su date različite
vrednosti ulaznog signala – napona (ei) za frekvencije 10, 100, 1000 i
5000Hz, respektivno, a s desne dobijeni izlazni signal – pomeraj membrane
(x). Može se primetiti da izlazni signal gotovo savršeno prati ulazni za 10 i
100Hz, ali pri većim frekvencijama amplituda izlaznog signala opada i ne
može više da prati ulazni signal.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
67
ii`
xx`x``
2.5
alfa
2.5
alfa
Signal
Generator
ei
Scope2 (ei)
Scope1 (x)
2
R
125000
K
1
s
Integrator2
1
s
Integrator1
1
s
Integrator
30
B
Add1
Add
500
1/M
50000
1/L
Slika 2.46 Simulink model sistema
Slika 2.47 Rezultati simulacije za različite vrednosti ulaznog signala
Praktikum za modeliranje i simulaciju dinamičkih sistema
68
Drugim rečima, membrana ne može da se pomera dovoljno brzo. To
znači da bi ovako projektovani zvučnik, s konkretnim vrednostima
parametara, mogao da bude dobar dubokotonac (vufer, bas), ali ne i
visokotonac.
Interesantan nastavak simuliranja rada zvučnika bilo bi ispitivanje
uticaja promene njegovih parametara na kvalitet praćenja ulaznog signala
različitih frekvencija u cilju pronalaženja odgovarajućih vrednosti za koje
zvučnik postaje dobar srednjetonac ili visokotonac. Pri tome bi trebalo
voditi računa da ljudsko uho čuje zvuk u frekvencijskom opsegu od 20 do
20000Hz.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
69
2.7 Motor jednosmerne struje (DC motor) – primer
elektromehaničkog sistema
2.7.1 Princip rada sistema
Motor jednosmerne struje (DC motor) je elektromehanički sistem koji
pretvara električnu energiju u mehaničku i sastoji se od dva glavna dela.
Jedan deo je stacionaran i zove se stator. Njegova uloga je da uspostavi
magnetno polje u uređaju. Stator može biti permanentni magnet (obično kod
malih motora, primer koji se razmatra u ovoj vežbi) ili gvozdeno jezgro koje
se namagnetiše kada se propusti struja kroz provodnike kalema koji ga
obavija. U delu između polova magneta nalazi se gvozdeno jezgro, koje
može slobodno da se okreće i naziva se rotor. Jegro rotora je obavijeno
rotirajućim kalemovima - namotajima rotora. Struja se u namotaje rotora
dovodi preko fiksiranih četkica (obično napravljenih od ugljenika male
otpornosti) koje dodiruju rotirajući komutator, što obezbeđuje da struja uvek
teče kroz odgovarajući provodnik kalema u odgovarajućem smeru u odnosu
na linije magnetnog polja, na taj način proizvodeći maksimalni moment sile.
Praktikum za modeliranje i simulaciju dinamičkih sistema
70
Osovina motora je vezana za rotor i okreće se zajedno s njim. Povećanjem
struje kroz namotaje rotora postiže se veći moment i brže okretanje motora.
S druge strane, postoje i motori kod kojih je stator elektromagnet, pa se kod
njih povećanje momenta, tj. brzine okretanja može postići i povećanjem
struje statora, koja izaziva povećanje jačine magnetnog polja (utiče se na
BM, umesto na i u izrazu e m uf B l i= ). Komponente motora i njegov poprečni
presek prikazani su na slikama 2.48 i 2.49, respektivno.
Slika 2.48 Komponente motora
Slika 2.49 Poprečni presek motora
Modeliranje i simulacija dinamičkih sistema u Simulink-u
71
Slika 2.50 objašnjava fenomen okretanja rotora na primeru jednog
namotaja rotora i može nam pomoći da nađemo moment elektromagnetne
sile, koja deluje na rotor, kao i kontra EMS, koja će delovati u električnom
kolu rotora, težeći da se suprotstavi okretanju.
Slika 2.50 Jedan namotaj rotora
Neka kalem rotora ima N pravougaonih namotaja dužine l (dužina duže
strane pravougaonika) i poluprečnika r (polovina kraće strane
pravougaonika). Sila (fe sa slike), koja deluje na jedan provodnik kroz koji
teče struja i i nalazi se upravno na linije magnetnog polja jačine Bm, iznosi
2e m u mf B l i B li= = , pošto svaki namotaj rotora ima aktivne duže strane. Ta
tangencijalna sila stvara moment sile na rotoru 1 2e e mrf rB li = = . Ukupan
moment, koji deluje na rotor, dobija se kao suma svih pojedinačnih
momenata koji dolaze od N provodnika rotora 1 2e e mN rB Nli = = . Deo
ovog izraza u potpunosti zavisi od konstrukcije motora. Može se smatrati
konstantom motora i obeležiti sa 2mrB Nl = , pa je sada e i = . Na sličan
način se dobija kontra EMS koja se javlja u kalemu:
2m m u me B l v B Nlr = = = , pošto je odnos ugaone i tangencijalne brzine
Praktikum za modeliranje i simulaciju dinamičkih sistema
72
v r= . Trebalo bi primetiti da je u poslednjem izrazu ostavljen simbol za
ugaonu brzinu ω, umesto dosadašnje prakse da se sve promenljive spuštaju
do nivoa ugaonog pomeraja = . Razlog je taj što će, u ovom primeru,
kao koordinata stanja i izlaz sistema biti korišćena ugaona brzina kao
logična promenljiva motora kod kojih je obično važno da se osovina rotora
okreće nekom određenom ugaonom brzinom. S druge strane, postoje
primene DC motora kod kojih je važno da osovina rotora napravi neki
ugaoni pomeraj i tu se zaustavi. Kod modeliranja ovakvih motora, za
promenljivu stanja bi se odabrao ugaoni pomeraj umesto ugaone brzine.
Zadatak:
Modelirati motor jednosmerne struje, ako su poznate sledeće
vrednosti: napon napajanja kola rotora ei=20V, otpornost namotaja kalema
R=5Ω, induktivnost kalema rotora L=15mH, moment inercije rotora
J=7.15x10-4kgm2, koeficijent trenja ležišta rotora B=0.001Ns/m,
karakteristična konstanta motora α=0.33Nm/A. Napraviti simulacioni model
sistema i simulirati prvu sekundu rada sistema. Zatim, simulirati slučaj kada
se posle 0.5 sekundi praznog hoda motora na osovinu motora doda
opterećenje, koje se okretanju rotora suprotstavlja momentom sile
τL=0.25Nm. Sistemu dodati regulator koji obezbeđuje konstantnu brzinu
okretanja motora od 20rad/s.
2.7.2 Modeliranje sistema
• Model u obliku diferencijalnih jednačina
Kao i kod primera zvučnika, potrebno je, najpre, sistem razdvojiti na
električni i mehanički deo kao na slici 2.51.
Slika 2.51 Električna i mehanička komponenta DC motora
Modeliranje i simulacija dinamičkih sistema u Simulink-u
73
Električni deo sistema je predstavljen električnim kolom, koje se sastoji od
pobudnog jednosmernog napona ei, izdvojene otpornosti i induktivnosti
namotaja rotora R i L i kontra EMS koja se indukuje u kolu. Mehanički deo
sistema je reprezentovan jezgrom rotora koje se okreće pod uticajem
momenta sile τe, a okretanju se suprotstavlja sila inercije jezgra rotora
momenta inercije J, kao i sila trenja koja se javlja sa okolinom koeficijenta
viskoznog trenja B. Sada se mogu napisati diferencijalne jednačine za oba
podsistema motora:
,
i m
e
e Li Ri e
J B
= + +
= + (2.50)
ili, nakon zamene prethodno izvedenih izraza za em i τe:
.
ie Li Ri
i J B
= + +
= + (2.51)
Nakon izražavanja najvećih diferencijala promenljivih u zavisnosti od
ostalih delova jednačina, dobija se:
( )
( )
1
1.
ii e RiL
i BJ
= − −
= −
(2.52)
Sistem (2.52) opisuje dinamiku DC motora i sastoji se od dve diferencijalne
jednačine prvog reda s dve promenljive stanja (i i ω). Pri tome, ulaz sistema
je pobudni napon ei, a izlaz sistema ugaona brzina rotora ω (izlaz sistema u
opštem slučaju može, ali i ne mora, biti koordinata stanja sistema).
• Model u prostoru stanja
Model u prostoru stanja se dobija direktno iz sistema (2.52),
matričnim zapisivanjem:
1
0
0 1 0 ,
i
i
R
ii L LeL
B
J J
ie
− − = + −
= +
(2.53)
gde su vektori koordinata stanja, ulaza i izlaza, respektivno:
, , .i
ie
= = =
q u y
Praktikum za modeliranje i simulaciju dinamičkih sistema
74
• Model u obliku funkcije prenosa
Funkcija prenosa sistema se dobija kao količnik Laplasovih
transformacija izlaza i ulaza pri nultim početnim uslovima, u ovom slučaju:
( )( )( )i
sW s
E s
= . Do ovog odnosa dolazi se tako što se, najpre, izvrši
Laplasova transformacija početnog sistema diferencijalnih jednačina (2.51)
koje opisuju sistem:
( ) ( ) ( ) ( )
( ) ( ) ( ).iE s LsI s RI s s
I s Js s B s
= + +
= + (2.54)
Iz (2.54), dalje, imamo:
( ) ( ) ( ) ( )
( ) ( ) ( ).iE s Ls R I s s
I s Js B s
= + +
= + (2.55)
Ukoliko iz druge jednačine izrazimo I(s): ( )( ) ( )Js B s
I s
+ = i to
zamenimo u prvu jednačinu, dobija se:
( ) ( )( ) ( )
( )
( )( )
2 2
,
i
Js B sE s Ls R s
LJs LB RJ s RBs
+ = + + =
+ + + +=
(2.56)
odakle imamo funkciju prenosa kao:
( )( )
( ) ( )2 2.
i
sW s
E s LJs LB RJ s RB
= =
+ + + + (2.57)
• Simulacioni model u Simulink-u
Simulacioni model se dobija direktno na osnovu sistema jednačina
(2.52) i prikazan je na slici 2.52.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
75
w
i20
ei
0.33
alfa
0.33
alfa
Scope1
Scope
5
R
1
s
Integrator1
1
s
Integrator
0.001
B
Add1
Add
66.67
1/L
1398.6
1/J
Slika 2.52 Simulink model sistema
2.7.3 Simulacija sistema i analiza rezultata simulacije
Posle izvršenja simulacije u trajanju od jedne sekunde, dobijaju se
rezultati za struju rotora i njegovu ugaonu brzinu kao na slici 2.53.
Za slučaj kada se posle 0.5 sekundi aktivira moment opterećenja na
osovini rotora τL=0.25Nm, potrebno je uneti određene izmene u postojeći
model. Druga jednačina u (2.51) sada postaje Li J B = + + , tj.
( )1
Li BJ
= − − ; pošto se moment opterećenja suprotstavlja okretanju
rotora pod uticajem elektromagnetnog, pobudnog momenta. To znači da je
sve što je potrebno promeniti u prvobitnom simulacionom modelu,
dodavanje novog ulaza u donji sabirač koji, posle množenja sa J, formira
signal ugaonog ubrzanja rotora . Na taj novi ulaz treba dovesti moment
opterećenja, koji se aktivira na polovini simulacije. To je najlakše uraditi
korišćenjem bloka Step iz biblioteke Sources. Taj blok ima mogućnost da u
određenom trenutku simulacije (parametar Step time) pređe s jedne upisane
vrednosti (Initial value) na drugu (Final value).
Praktikum za modeliranje i simulaciju dinamičkih sistema
76
Slika 2.53 Rezultati simulacije
U našem slučaju je potrebno da signal, koji ovaj blok generiše, u
trenutku 0.5 sekundi pređe sa 0 na 0.25 (to znači da u prvih 0.5 sekundi
simulacije praktično ne utiče na model). Modifikovani simulacioni model je
prikazan na slici 2.54.
Posle izvršavanja modifikovane simulacije, dobijaju se rezultati
prikazani na slici 2.55. Iz rezultata se može primetiti da se posle dodavanja
opterećenja, ugaona brzina motora (rotora motora) smanjuje. To je i logično
jer je sada istom pokretačkom momentu τe (koji direktno zavisi od
konstantnog ulaznog napona ei preko jačine struje i) teže da okreće sistem
kada je dodat teret. Da bi se brzina motora vratila na prvobitnu vrednost (ili
još bolje, na neku unapred zadatu, referentnu željenu vrednost), potrebno je
povećati ulazni signal sistema (napon ei). Tu na scenu stupaju regulatori,
čije projektovanje i realizacija, na žalost, izlaze iz okvira ovog kursa.
Međutim, pokazaćemo, bez ulaženja u detalje, kako sistem s regulatorom
radi, a sve u cilju demonstracije korišćenja koncepta podsistema u
simulacijama.
Neka je, na primer, cilj da se motor okreće uvek istom brzinom od
10rad/s bez obzira da li je u praznom hodu ili je opterećen i koliko je
opterećen.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
77
Slika 2.54 Modifikovani simulacioni model sa dodatim Step blokom i
njegovim parametrima
Slika 2.55 Rezultati modifikovane simulacije
Praktikum za modeliranje i simulaciju dinamičkih sistema
78
Uopštena blok šema sistema automatskog upravljanja s povratnom
spregom i regulatorom izgleda kao na slici 2.56.
Slika 2.56 Blok šema sistema automatskog upravljanja
Ulazni signal (referentna vrednost) predstavlja vrednost izlaza sistema koju
želimo da ostvarimo. Željena vrednost se upoređuje sa stvarnom vrednošću
izlaza sistema koja se dobija merenjem, obično preko senzora i dovodi u
sabirač povratnom spregom sistema. Razlika ove dve vrednosti se naziva
signal greške i predstavlja ulaz regulatora. Uloga regulatora je da na osnovu
ove greške i poznatih zakonitosti upravljanja izračuna pravilnu vrednost
upravljačkog signala koji će se primeniti na objekat upravljanja (eng. Plant)
da bi se ostvarila željena vrednost izlaznog signala
U našem primeru, sistem je DC motor, referentni ulaz je željena
brzina okretanja od 10rad/s, izlazni signal je stvarna brzina okretanja ω.
Ulaz regulatora koji projektujemo je razlika željene i stvarne brzine, a izlaz
je napon rotora koji se primenjuje na sistem.
Da bismo napravili simulacioni model, po uzoru na sliku sistema
automatskog upravljanja, možemo iskoristiti podsistem. Podsistem je
koncept Simulink-a koji omogućava da se zasebne celine u modelu odvoje i
grupišu, čime se proces modeliranja olakšava i čini preglednijim. Od našeg
modela DC motora možemo napraviti podsistem tako što selektujemo sve
komponente sistema osim ulaza – napona primenjenog na rotor (blok
Constant sa upisanom vrednošću 20) i izlaza – brzine obrtanja motora (blok
Scope koji prikazuje ω), a zatim desnim klikom miša otvorimo padajući
meni u kome biramo opciju Create Subsystem. Možemo primetiti da sada
imamo samo jedan blok za ceo model motora s jednim ulaznim i jednim
izlaznim portom. U model motora se možemo vratiti dvoklikom na
podsistem, čime se otvara poseban prozor s modelom motora.
Sledeći korak je brisanje bloka koji generiše ei zato što će taj napon
postati upravljački signal koji se dobija kao izlaz regulatora. Za regulaciju
brzine u ovom primeru koristimo jednostavan PID regulator zato što
Modeliranje i simulacija dinamičkih sistema u Simulink-u
79
Simulink ima gotov blok za njega u svojoj biblioteci Continuous (blok PID
Controller). PID regulatori se često sreću u industrijskim sistemima
automatskog upravljanja i oni na bazi prisustva proporcionalnog,
integralnog i diferencijalnog dejstva omogućuju dobijanje željenih
performansi sistema kao što su: stabilnost, brzina reagovanja, tačnost rada i
vreme trajanja prelaznog procesa. Posle ubacivanja regulatora u simulacionu
šemu, podesimo njegove parametre Proportional (P) na 0.3, Integral (I) na
15 i Derivative (D) na 0 (u ovom primeru nije potrebna diferencijalna
komponenta PID regulatora). Ove konkretne vrednosti parametara PID
regulatora se dobijaju metodama koje, kao što je već rečeno, prevazilaze
okvire ovog kursa. Posle podešavanja parametara regulatora potrebno je
dodati referentnu vrednost ugaone brzine motora i povezati ceo sistem kao
na slici 2.57.
Slika 2.57 Simulink model jednosmernog motora sa regulatorom
Po izvršenju simulacije, iz rezultata (slika 2.58) može se videti da
sada brzina motora verno prati željenu brzinu od 10rad/s, čak i u slučaju
dodavanja opterećenja. To se postiže upravo regulatorom koji preko
povratne sprege saznaje da je brzina počela da pada, pa povećava
upravljački signal – ulazni napon motora.
Praktikum za modeliranje i simulaciju dinamičkih sistema
80
Slika 2.58 Rezultati simulacije motora sa regulatorom
Modeliranje i simulacija dinamičkih sistema u Simulink-u
81
2.8 Hidraulični sistem – primer linearizacije sistema
Zadatak:
Hidraulični sistem čini rezervoar konstantnog poprečnog preseka
A=2m2 koji se puni tečnošću iz izvora konstantnog zapreminskog protoka
qin=1m3/s. Voda ističe iz rezervoara preko ventila čija je konstanta 55 10k −= . Modelirati sistem koristeći veličinu pritiska tečnosti na dno suda
kao koordinatu stanja i simulirati sistem u Simulink-u ukoliko je, na
početku, visina tečnosti u sudu bila h(0)=1.5m. Zatim izvršiti linearizaciju
modela, ponoviti simulaciju s novim modelom i uporediti dobijene rezultate.
Vreme simulacije je 5 minuta, a promenljive od interesa su pritisak tečnosti
na dno rezervoara i visina tečnosti u rezervoaru.
2.8.1 Hidraulični sistemi – fizička osnova modeliranja
S obzirom na to da hidraulični sistemi podrazumevaju protok i
akumulaciju nestišljivih fluida, osnovne promenljive od interesa za
modeliranje ovih sistema su: q[m3/s] – zapreminski protok, V[m3] –
zapremina tečnosti, h[m] – visina tečnosti u sudu i p[N/m2=Pa] – pritisak.
Pri modeliranju hidrauličnih sistema treba imati na umu sledeće tri
zakonitosti: hidrauličnu kapacitivnosti, otpornost i inerciju.
Praktikum za modeliranje i simulaciju dinamičkih sistema
82
• Hidraulična kapacitivnost opisuje energiju uskladištenu u tečnosti koja se
nalazi u rezervoaru, kao na slici 2.59.
Slika 2.59 Hidraulični sistem sa rezervoarom
Na slici su uvedene sledeće oznake: qin – zapreminski protok tečnosti koja
ulazi u sud, qout - zapreminski protok tečnosti koja izlazi iz suda,
pa=1.013x105N/m – atmosferski pritisak, p – pritisak tečnosti na dno suda, A
– površina poprečnog preseka suda. Promena zapremine tečnosti u sudu u
jedinici vremena jednaka je razlici zapremine tečnosti koja ulazi u sud i
zapremine tečnosti koja iz njega ističe u jedinici vremena:
in out
dVV q q
dt= = − . (2.58)
Za proizvoljnu geometriju suda važi: ( )0
h
V A d = , dok je u slučaju koji
ćemo mi razmatrati A=const V=Ah, pa se zamenom dobijenog izraza za V
u (2.58) dobija in outAh q q= − , tj.:
( )1
in outh q qA
= − . (2.59)
Pošto je ( )1
a ap gh p h p pg
= + = − . Zamenom izraza za h u
jednačinu (2.59), dobija se ( )in out
gp q q
A
= − , tj.:
Modeliranje i simulacija dinamičkih sistema u Simulink-u
83
( )1
in out
h
p q qC
= − , (2.60)
gde je sa Ch označena konstanta koja se naziva hidraulična kapacitivnost
rezervoara: h
AC
g= .
• Hidraulična otpornost opisuje pad pritiska usled otpora protoku tečnosti i
gubitka energije pri protoku kroz cevi, ventile ili otvore. Usled turbulentnog
kretanja tečnosti, zavisnost između protoka i razlike u pritiscima na
krajevima hidrauličnog elementa obično je nelinearna:
1 2q k p p= − , (2.61)
gde je k konstanta koja zavisi od karakteristika cevi, ventila ili otvora. Takva
karakteristika ventila ili cevi, prikazana je na slici 2.60.
Slika 2.60 Zavisnost protoka od razlike u pritiscima
i geometrijska interpretacija hidraulične otpornosti
Ukoliko se kriva zavisnosti protoka od razlike u pritiscima na krajevima
elementa 1 2q k p p= − linearizuje u okolini radne tačke ( 1 2 , p p q− ) tako
što se povuče tangenta u toj tački, recipročna vrednost nagiba prave:
( )1 2
1
h
q p pR
= − , (2.62)
naziva se hidraulična otpornost Rh.
Praktikum za modeliranje i simulaciju dinamičkih sistema
84
• Hidraulična inercija se javlja pri kretanju fluida. Razmotrimo sliku 2.61 i
ubrzanje fluida pod uticajem sile duž velike cevi dužine L i poprečnog
preseka A.
Slika 2.61 Kretanje fluida u cevi
Sa slike je: ( )1 2 1 2F F p p A− = − . Ova sila prouzrokuje da se masa fluida
kreće sa nekim ubrzanjem a, pa je:
( )1 2
dv dv dvp p A ma m V LA
dt dt dt − = = = = .
Pošto je zapreminski protok tečnosti q=Av, onda je:
( )1 2 1 2
dq L dqp p A L p p
dt A dt
− = − = , tj.:
1 2 h
dqp p I
dt− = , (2.63)
gde je sa Ih označena konstanta koja se naziva koeficijent hidraulične
inercije: h
LI
A
= .
Hidraulična inercija je u realnim sistemima obično zanemarljiva.
2.8.2 Analogije fizičkih promenljivih i parametara
Može se primetiti da se dinamičko ponašanje svih do sada izučavanih
sistema opisuje sličnim (analognim) diferencijalnim jednačinama, pri čemu
se jedino razlikuju fizička značenja promenljivih i parametara koji u njima
figurišu. Sve analogije se mogu videti u Tabeli 2.1.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
85
Tabela 2.1 Analogije fizičkih promenljivih i parametara
različitih tipova sistema
mehanički
translatorni mehanički
rotacioni električni
sistemi hidraulični
sistemi
pomeraj x ugaoni pomeraj količina
nelektrisanja q zapremina tečnosti V
brzina v(=x’) ugaona brzina
ω(=’) struja i(=q’) zapreminski protok
q(=V’)
sila f moment sile napon e nivo tečnosti u sudu h
koeficijent
trenja B koeficijent
rotacionog trenja B otpornost R hidraulična otpornost
proticanja Rh
koeficijent
elastičnosti K koeficijent torzione
elastičnosti K kapacitivnost C hidraulična
kapacitivnost suda Ch
masa M moment inercije J induktivnost L hidraulična inercija Ih
2.8.3 Modeliranje i simulacija sistema
Hidraulični sistem opisan u zadatku prikazan je na slici 2.62.
Slika 2.62 Hidraulični sistem iz zadatka
Diferencijalna jednačina koja modelira sistem sa slike dobija se
jednostavno, direktnim korišćenjem jednačina (2.60) i (2.61):
Praktikum za modeliranje i simulaciju dinamičkih sistema
86
( ) ( )1 1in out in a
h h
p q q q k p pC C
= − = − − , (2.64)
Dobijeni model je nelinearan usled prisustva kvadratnog korena u
diferencijalnoj jednačini. Zato je nemoguće prevesti ga u prostor stanja ili
dobiti funkciju prenosa. Moguće je jedino napraviti Simulink model i
izvršiti računarsku simulaciju koja koristi numeričke metode za simuliranje
nelinearne diferencijalne jednačine. Iz postavke zadatka, poznato je:
22A m= , 3
0.01in
mq
s= ,
455 10
mk
s N
−= . Takođe se znaju i vrednosti
konstanti: gustina vode 3
1000kg
m = , atmosferski pritisak
5
21.013 10a
NP
m= , gravitaciona konstanta
29.81
mg
s= . Moguće je
izračunati hidrauličnu kapacitivnost rezervoara 42.04 10h
AC
g
−= = .
Takođe se može izračunati i početni pritisak na dno suda
( ) ( ) 5
20 0 1.16015 10a
Np gh p
m= + = .
Simulink model se pravi direktno iz jednačine (2.64) kao na slici 2.63.
Na slici je prikazano i kako se formira kao izlaz sistema - visina tečnosti u
sudu na osnovu izraza ( )1
.ah p pg
= −
k
p
h
qout
p-pa
1
qin
101300
pa
1
s
p(0)=116000
0.005 u
Sqrt
Scope1
Scope
Add1
Add
4902
1/Ch
1/9810
1/(ro*g)
Slika 2.63 Simulink model hidrauličnog sistema
Modeliranje i simulacija dinamičkih sistema u Simulink-u
87
Nakon izvršenja simulacije, dobijaju se grafikoni vremenskih odziva za
pritiska tečnosti na dno suda i visine tečnosti u sudu, koji su prikazani na
slici 2.64.
0 50 100 150 200 250 3001.15
1.2
1.25
1.3
1.35
1.4
1.45x 10
5
pritisak p
(P
a)
0 50 100 150 200 250 3001.5
2
2.5
3
3.5
4
4.5
vreme (s)
vis
ina t
ecnosti h
(m
)
Slika 2.64 Rezultati simulacije
2.8.4 Linearizacija nelinearnog elementa
Nelinearni elementi sistema se mogu pri analizi sistema linearizovati,
tj. smatrati linearnim u određenom opsegu radnih uslova - u okolini radne
tačke. Ta okolina radne tačke je na slici 2.65 obeležena elipsom i u njoj
imamo dobro poklapanje karakteristike nelinearnog elementa i njene
linearizovane aproksimacije, odnosno prave koja predstavlja tangentu na
nelinearnu karakteristiku u radnoj tački.
Praktikum za modeliranje i simulaciju dinamičkih sistema
88
Slika 2.65 Karakteristika nelinearnog elementa
Koordinatni početak karakteristike se praktično pomera u radnu tačku
( ),x f , koja predstavlja vrednosti u ustaljenom stanju tzv. nominalne
vrednosti. Sada važi: x x x= + , gde x predstavlja nominalnu, a x
inkrementalnu vrednost promenljive. Takođe, važi f f f= + , pri čemu je
( )f f x= .
Linearizovana aproksimacija nelinearnog elementa opisanog
nelinearnom funkcijom f(x) u okolini radne tačke ( ),x f se može dobiti
razvojem ove funkcije u Tejlorov red:
( ) ( ) ( )
( ) ( )2 3
2 3
2 3
1
1!
1 1...
2! 3!
x
x x
dff x f x x x
dx
d f d fx x x x
dx dx
= + − +
+ − + − +
(2.65)
gde x u indeksu posle vertikalne linije označava da se diferencijal
izračunava za vrednost .x x= Linearnu aproksimaciju nelinearne funkcije
dobijamo s prva dva člana Tejlorovog razvoja:
( ) ( ) ( )x
dff x f x x x
dx + − (2.66)
Iz (2.66) imamo ( ) ( ) ( )x
dff x f x x x
dx− = − , tj. f k x = , gde je
x
dfk
dx= .
Modeliranje i simulacija dinamičkih sistema u Simulink-u
89
2.8.5 Linearizacija modela
Koraci u linearizaciji modela s nelinearnim elementom su sledeći:
1. Odrediti radnu tačku modela rešavanjem odgovarajućih nelinearnih
algebarskih jednačina (iskoristiti činjenicu da su u ustaljenom stanju
diferencijali promenljivih jednaki nuli).
2. Predstaviti sve linearne članove u modelu kao sume nominalnih i
inkrementalnih vrednosti, pri čemu se diferencijali konstantnih izraza
izjednačavaju s nulom.
3. Zameniti sve nelinearne članove u modelu s prva dva sabirka njihovog
Tejlorovog razvoja (konstantni plus linearni član).
4. Skratiti konstantne članove u diferencijalnim jednačinama koristeći
algebarske jednačine koje definišu radnu tačku.
5. Definisati početne vrednosti inkrementalnih promenljivih preko početnih
uslova za promenljive nelinearnog modela: ( ) ( )0 0x x x = − .
2.8.6 Linearizacija zadatog modela
Kao što je već izvedeno, diferencijalna jednačina koja predstavlja
model sistema je:
( )1.in a
h
p q k p pC
= − − (2.67)
Prolazimo kroz opisane korake linearizacije modela kao što sledi.
1. Računamo radnu tačku iz ustaljenog stanja: 0 a inp k p p q= − = ,
odakle je:
2
2
1a inp p q
k= + (2.68)
U našem slučaju je 1inq = , 35 10k −= , 51.013 10ap = , pa je iz (2.68)
51.413 10p = , tj. tražena radna tačka je ( ) ( )5, 0.01,1.413 10inq p = .
2. ; .in in inp p p q q q= + = +
3. Iz (2.66):
( )
1 1, tj.
2 2
1 1
2 2
x
a a a a
a a
x x x x xx x
p p p p p p p p pp p p p
+ = +
− − + − = − + − −
Praktikum za modeliranje i simulaciju dinamičkih sistema
90
4. Sada se vraćamo na diferencijalnu jednačinu sistema (2.67) i koristimo
rezultate iz 2. i 3. koraka:
1 1
2in in a
h a
p p q q k p p pC p p
+ = + − − +
−
Ukoliko uzmemo u obzir da je 0p = (diferenciranje konstante) i
iskoristimo jednačinu radne tačke (2.68):
2
2
2
2
1 1 1
12
1 1
2
in in a in a
h
a in a
inin in
inh
p q q k p q p pC k
p q pk
qq q k p
qC k
k
= + − + − + =
+ −
= + − +
odakle se, konačno, dobija linearizovani model sistema:
21
.2
in
h h in
kp q p
C C q = − (2.69)
5. Početni uslov je ( ) ( )0 0 116015 141300 25285p p p = − = − = − .
2.8.7 Simulacija linearizovanog modela
Jednačina (2.69) predstavlja linearizovani model našeg hidrauličnog
sistema. Na osnovu ove jednačine se može napraviti Simulink dijagram
kojim se simulira signal p , kao na slici 2.66 (signal p je na slici označen
kao dp, a p kao np). Iz tog signala se lako dobija i sam pritisak tečnosti na
dno suda kao p p p= + , kao i visina tečnosti u sudu ( )1
.ah p pg
= −
Vrednost inq je u simulaciji jednaka nuli, jer je qin zadato kao konstantna
vrednost (qin=1m3/s).
Nakon izvršene simulacije od 300 sekundi, dobijaju se rezultati veoma
slični onima sa slike 2.64 koji su dobijeni za originalni, nelinearni model.
Na slici 2.67 je prikazana razlika signala pritiska i visine tečnosti za dve
simulacije (sa nelinearnim i sa linearizovanim modelom). Može se primetiti
mala razlika u signalima na početku simulacije dok traje prelazni proces,
Modeliranje i simulacija dinamičkih sistema u Simulink-u
91
dok ta razlika pada na nulu kako odziv ulazi u ustaljeno stanje, što je i
očekivan rezultat.
dp
h
koeficijent uz dp
p
101300
pa
141300
np
0.0612745
0
dqin
1
s
dp(0)= -25285
Scope2
Scope1
Add2
Add1Add
4902
1/Ch
1/9810
1/(ro*g)
Slika 2.66 Linearizovani model u Simulink-u
0 50 100 150 200 250 3000
200
400
600
800
1000
1200
1400
razlik
a u
pritiscim
a (
Pa)
0 50 100 150 200 250 3000
0.02
0.04
0.06
0.08
0.1
0.12
0.14
vreme (s)
razlik
a u
vis
ini te
cnosti (
m)
Slika 2.67 Razlika signala dve simulacije
Praktikum za modeliranje i simulaciju dinamičkih sistema
92
2.9 Ekološki sistem – rešavanje običnih diferencijalnih
jednačina
Zadatak:
Modelirati idealan ekološki sistem, koji se sastoji od dve životinjske
vrste, pri čemu se kao promenljive stanja posmatraju brojevi jedinki tih
vrsta. Razmotriti dva različita slučaja: 1) kada je jedna vrsta grabljivica, a
druga plen (jedna vrsta je mesožder i isključivo se hrani drugom
životinjskom vrstom koja je biljojed) i 2) kada se životinje bore za istu
hranu (pojednostavljeno, obe životinjske vrste su biljojedi, koji se hrane
istom biljnom vrstom). Simulirati sisteme, najpre u Simulink-u, a zatim
MATLAB naredbama za rešavanje običnih diferencijalnih jednačina.
2.9.1 Modeliranje ekološkog sistema
Neka je sa n1 i n2 obeležen broj jedinki prve i druge vrste, respektivno.
Obeležimo sa λ1 i λ2 konstantne stope formiranja vrsta (prirodne priraštaje).
Tada broj novorođenih članova prve i druge vrste u jedinici vremena iznosi
λ1n1 i λ2n2, respektivno.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
93
Neka su, s druge strane, sa μ1 i μ2 obeležene stope smrtnosti
(mortaliteta) vrsta, koje nisu konstantne, već zavise od raspoložive količine
hrane do koje vrsta može doći kao i od verovatnoće da jedinke budu
pojedene (slučaj grabljivica-plen). U opštem slučaju, mortalitet jedne vrste
je funkcija broja jedinki i jedne i druge vrste: μ1(n1,n2) i μ2(n1,n2), a broj
umrlih jedinki prve i druge vrste u jedinici vremena iznosi μ1n1 i μ2n2,
respektivno.
Sada se može napisati model idealnog ekološkog sistema s dve
jednačine za svaku od dve vrste u kojima se promena broja jedinki u jedinici
vremena računa kao razlika broja rođenih i broja umrlih:
( )
( )
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
,
.
n n n n
n n n n
= − = −
= − = − (2.70)
2.9.2 Slučaj grabljivica-plen
Razmotrimo, najpre, slučaj kada je jedna vrsta grabljivica a druga
plen, npr. lisice i zečevi. Snabdevanje hranom prve vrste (grabljivice)
proporcionalno je broju jedinki druge vrste (plen) tako da se mortalitet prve
vrste direktno smanjuje sa povećanjem broja jedinki druge vrste
(poboljšanje ishrane), što možemo zapisati kao: ( )1 1 2 1 1 2,n n n = − . U
datom izrazu koeficijent α1 označava stopu smrtnosti tipičnu za datu vrstu,
dok druga komponenta mortaliteta β1n2 direktno zavisi od raspoloživosti
hrane.
S druge strane, stopa smrtnosti druge vrste (plen) se povećava sa
povećanjem broja jedinki prve vrste (grabljivice) i broja susreta sa njima, što
se može zapisati kao ( )2 1 2 2 2 1,n n n = + . Sada se, korišćenjem dobijenih
izraza za mortalitet prve i druge vrste, dobija model razmatranog ekološkog
sistema:
( )
( )
1 1 1 1 1 1 2
2 2 2 2 2 1 2
,
.
n n n n
n n n n
= − +
= − − (2.71)
pri čemu za grabljivice važi da je 1 1 0 − , a za plen 2 2 0 − , jer treba
uzeti u obzir da u odsustvu plena broj grabljivica eksponencijalno opada,
dok u odsustvu grabljivica broj jedinki plena eksponencijalno raste
(analitičko rešenje diferencijalne jednačine ( )i i i in n = − je
Praktikum za modeliranje i simulaciju dinamičkih sistema
94
( ) ( )0 i i t
i in n e −
= , što, u slučaju 0i i − , predstavlja eksponencijalno
opadajuću, a u slučaju 0i i − eksponencijalno rastuću funkciju).
Dobijene nelinearne (usled prisustva članova sa proizvodom
koordinata stanja n1n2) diferencijalne jednačine prvog reda (2.71) se
drugačije nazivaju jednačine Lotka-Voltera po matematičarima koji su ih
proučavali i predstavljaju osnovu biomatematike i izučavanja dinamike
populacije.
Simulink simulacioni model sistema prikazan je na slici 2.68, za
sledeće vrednosti parametara sistema:
1 1 1 2 2 21, 2, 2, 2, 1, 1 = = = = = = ,
dok su na početku simulacije brojevi jedinki prve i druge vrste uzeti da budu
( ) ( )1 20 2, 0 2n n= = , izraženo u hiljadama jedinki (početni uslovi se
postavljaju u integratorima).
n1
n2
n1*n2
1
lam2-alfa2
-1
lam1-alfa1
1
beta2
2
beta1
ScopeProduct2
1
s
2.
1
s
2
Slika 2.68 Simulink model sistema
Rezultati simulacije dati su na slici 2.69. Može se primetiti da broj
jedinki prve vrste (grabljivice), dat punom linijom, i broj jedinki druge vrste
(plen), dat isprekidanom linijom osciluje tokom vremena. To je i
razumljivo, jer kada broj grabljivica počne da opada zbog nedostatka hrane
(jedinki plena), broj jedinki plena počinje da raste. Kada se poveća broj
jedinki plena, grabljivice najzad imaju dovoljno hrane, pa njihov broj
počinje da raste, na račun brojnosti plena, i tako, u krug.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
95
0 2 4 6 8 10 12 14 16 18 200
0.5
1
1.5
2
2.5
3
3.5
4
4.5
vreme u godinama
bro
j je
din
ki u h
iljadam
a
Slika 2.69 Rezultati simulacije
2.9.3 Slučaj nadmetanja vrsta za istu hranu
Ukoliko obe životinjske vrste koriste istu vrstu hrane, ukupan broj
jedinki određivaće stepen snabdevenosti hranom (koja je ograničen resurs),
a samim tim i stopu mortaliteta. Pretpostavimo da stopa mortaliteta neke
vrste ima jednu komponentu koja je tipična za datu vrstu i drugu
komponentu koja direktno zavisi od raspoloživosti hrane i proporcionalna je
ukupnom broju individua: ( ) ( )1 2 1 2 i, ; , 0; 1,2i i i in n n n i = + + = .
Zamenom izraza za mortalitet u (2.70), dobija se model sistema:
( ) ( )
( ) ( )
1 1 1 1 1 1 2 1
2 2 2 2 2 1 2 2
,
.
n n n n n
n n n n n
= − − +
= − − + (2.72)
Ove jednačine se u ekologiji i drugim oblastima nazivaju kompetitivnim
Lotka-Voltera jednačinama jer opisuju borbu vrsta za isti resurs. U (2.72)
prvi deo označava dinamiku vrste kada bi ona bila sama u ekološkom
sistemu (pod uslovom da je 1 1 0 − i 2 2 0 − rešenja diferencijalnih
jednačina su eksponencijalno rastuće funkcije), dok drugi deo definiše
interakciju s drugom životinjskom vrstom.
Simulink simulacioni model sistema u ovoj konfuguraciji prikazan je
na slici 2.70, za sledeće vrednosti parametara sistema:
1 1 1 2 2 23, 1, 1, 2, 1, 1 = = = = = = , pod uslovom da su na početku
Praktikum za modeliranje i simulaciju dinamičkih sistema
96
simulacije brojevi jedinki prve i druge vrste ( ) ( )1 20 0.1, 0 2n n= = , izraženo
u hiljadama jedinki.
n1
n2
n1+n2
1
lam2-alfa2
2
lam1-alfa1
1
beta2
1
beta1
Scope
Product1
Product
1
s
2
1
s
0.1
Slika 2.70 Simulink model sistema
0 2 4 6 8 10 12 14 16 18 200
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
vreme u godinama
bro
j je
din
ki u h
iljadam
a
Slika 2.71 Rezultati simulacije
Rezultati simulacije dati su na slici 2.71. Može se primetiti da broj
jedinki prve vrste, dat punom linijom, počinje sa 100 jedinki i ustaljuje se
posle desetak godina na 2000, dok broj jedinki druge vrste, dat
Modeliranje i simulacija dinamičkih sistema u Simulink-u
97
isprekidanom linijom, istovremeno teži nuli. Interesantno je da je slučaj
grabljivica-plen garantovao dugoročni opstanak obe vrste, dok, sada, slučaj
nadmetanja dve miroljubive vrste za istu hranu može dovesti do istrebljenja
jedne od njih.
2.9.4 Obične diferencijalne jednačine
Osnovni problem pri simulaciji dinamičkih sistema predstavlja
rešavanje obične diferencijalne jednačina prvog reda sa poznatom vrednosti
zavisne promenljive y u početnom trenutku t0:
( ),dy
f t ydt
= . (2.73)
Mali broj diferencijalnih jednačina, koje su od praktičnog interesa, se mogu
rešiti analitički, tj. dobiti njihovo rešenje u vidu analitički definisane
funkcije y(t). Zato se primenjuju različite numeričke metode za rešavanje
diferencijalnih jednačina gde računari imaju važnu ulogu. Kod tih metoda se
vrši vremenska diskretizacija u cilju aproksimativnog rešavanja običnih
diferencijalnih jednačina. Numeričko rešavanje polazi od poznatih vrednosti
(t0, y0) i sukcesivno računa parove (ti, yi) za i=1,2,…, tj. generiše se
sekvenca vrednosti nezavisne promenljive t0, t1,... i njima odgovarajuća
sekvenca zavisne promenljive y0, y1,... na taj način da svako yi predstavlja
aproksimaciju rešenja u ti: ( ) , 0,1,...i iy y t i = . Razmak između dve
uzastopne tačke na vremenskoj osi se naziva korak integracije 1i ih t t+= − i
on se kod savremenih numeričkih metoda određuje automatski, tako da
greška aproksimacije ostane u okviru zadate tolerancije.
Ukoliko se model opisuje diferencijalnom jednačinom višeg reda (npr.
reda n):
1
1, , ,..., ,
n n
n n
d y dy d yf t y
dt dt dt
−
−
=
(2.74)
potrebno je, najpre, model predstaviti sistemom diferencijalnih jednačina
prvog reda jer većina numeričkih metoda za rešavanje diferencijalnih
jednačina radi samo sa sistemima običnih diferencijalnih jednačina prvog
reda. Takav postupak se može sprovesti uvođenjem pomoćnih promenljivih
koje predstavljaju izvode zavisne promenljive, tj.: ( )1
, 0,1,...,i
iy y i n−
= = .
Time se dobija sistem od n diferencijalnih jednačina prvog reda, koji je
ekvivalentan polaznom modelu:
Praktikum za modeliranje i simulaciju dinamičkih sistema
98
( )
1 2
2 3
1
1 2
...
, , ,...,
n n
n n
y y
y y
y y
y f t y y y
−
=
=
=
=
(2.75)
2.9.5 Numeričko rešavanje običnih diferencijalnih jednačina
Postoje mnogobrojne metode za numeričko rešavanje običnih
diferencijalnih jednačina:
Ojlerov (Euler) metod je najjednostavniji i zasniva se na aproksimaciji
izvoda funkcije količnikom priraštaja:
( ) ( ) 1 1
1
, i i i ii i i
i i
y y y yy t f t y
t t h
+ +
+
− −= =
−, (2.76)
odakle se dobija rekurentna formula za računanje aproksimativne vrednosti
funkcije u sledećoj tački na osnovu prethodne:
( )1
1
, ,
.
i i i i
i i
y y hf t y
t t h
+
+
= +
= + (2.77)
Na slici 2.72 prikazana je geometrijska interpretacija Ojlerove metode.
Može se videti kako se približna (aproksimirana) vrednost funkcije yi+1 u
tački ti+1 dobija kretanjem iz tačke (ti,yi), po tangenti krive y(t), povučene u
tački ti (nagib tangente je f(ti,yi)).
y
t
yi
ti ti+1
h
yi+1nagib=f(ti,yi)
(yi+1)t
ei+1
Slika 2.72 Ojlerov metod
Modeliranje i simulacija dinamičkih sistema u Simulink-u
99
Na slici je obeležena i lokalna greška numeričke metode u koraku i+1
kao razlika tačne i aproksimirane vrednosti funkcije y u trenutku ti+1:
( )1 1 1i i ite y y+ + += − .
Kod Ojlerove metode korak integracije (h) je fiksan, a funkcija f
izračunava se samo jednom u svakom koraku. Tačnost metode je mala, pa je
nekada potrebno odabrati veoma kratke integracione korake radi postizanja
željene tačnosti.
Modifikovani Ojlerov metod ili Ojlerov metod srednje tačke zahteva
izračunavanje funkcije f dva puta u svakom koraku:
( )1
2 1
1 2
, ,
, ,2 2
.
i i
i i
i i
s f t y
h hs f t y s
y y hs+
=
= + +
= +
(2.78)
Najpre se funkcija izračunava u tački (ti,yi) da bi se dobio nagib s1 kao kod
klasične Ojlerove metode. Taj nagib se koristi za kretanje tačke po tangenti
na krivu y(t) u tački (ti,yi), ali sada ne do kraja intervala već samo do sredine
intervala gde se radi nova evaluacija funkcije f i dobija nagib s2 tangente na
krivu y(t) u tački na sredini intervala. Dobijeni nagib se, na kraju, iskoristi
za izračunavanje sledeće tačke u nizu po formuli 1 2i iy y hs+ = + .
Postoji još jedna moguća modifikacija Ojlerove metode kod koje se
pomeranje tačke (ti,yi) vrši duž prave, čiji se nagib izračunava kao srednji
nagib tangenti na krivu y(t) u početnoj i krajnjoj tački posmatranog intervala
[ti, ti+1]. Ta modifikacija se naziva metoda srednjeg nagiba ili metoda
trapeza i za nju rekurentna formula glasi:
( )
( )
( )
1
2 1
1 2
1
, ,
, ,
.2
i i
i i
i i
s f t y
s f t h y hs
s sy y h+
=
= + +
+= +
(2.79)
Obe opisane modifikacije značajno povećavaju tačnost klasične Ojlerove
metode.
Klasična metoda Runge-Kuta je dobila je naziv po dvojici matematičara koji
su je razradili i zahteva izračunavanje funkcije f(t,y) četiri puta u svakom
koraku. Metoda je izuzetno popularna zbog svoje jednostavnosti i tačnosti.
Koristi sledeće jednačine za izračunavanje:
Praktikum za modeliranje i simulaciju dinamičkih sistema
100
( )
( )
( )
1
2 1
3 2
4 3
1 1 2 3 4
, ,
, ,2 2
, ,2 2
, ,
2 2 .6
i i
i i
i i
i i
i i
s f t y
h hs f t y s
h hs f t y s
s f t h y hs
hy y s s s s+
=
= + +
= + +
= + +
= + + + +
(2.80)
Postoji veliki broj sličnih numeričkih metoda za integraciju običnih
diferencijalnih jednačina koje se nazivaju jednokoračne Runge-Kutta
metode i izvedene su iz Tejlorovog razvoja funkcije. Zajedničko im je to da
sve vrše višestruku evaluaciju funkcije f(t,y) za vrednosti t između ti i ti+1 i
vrednosti y dobijene dodavanjem linearnih kombinacija vrednosti f(t,y) na yi.
Na kraju se ukupan korak izvršava korišćenjem nove linearne kombinacije
vrednosti funkcije.
2.9.6 Numeričko rešavanje običnih diferencijalnih jednačina u
MATLAB-u
Savremene metode za numeričko rešavanje običnih diferencijalnih
jednačina implementirane u MATLAB-u imaju mogućnost procenjivanja
greške aproksimacije i automatskog podešavanja koraka integracije u
zavisnosti od te greške. Zbog toga se kod tih metoda unapred ne zadaje
korak integracije (h) nego zahtevana tačnost aproksimacije. Te metode ne
samo da računaju rešenja u diskretnim tačkama, već i interpoliraju rešenja
između njih tako da rezultuju kontinualnim funkcijama rešenja. Ovde
opisane metode (ode23 i ode45) su jednokoračne Runge-Kutta metode jer su
izračunavanja u svakom koraku nezavisna i prenose se samo dve
informacije iz jednog koraka u drugi: korak integracije h i poslednja
vrednost funkcije na kraju uspešnog koraka (korak koji ostvaruje manju
grešku od zadate). Preostale metode implementirane u MATLAB-u su
ode113, ode15s, ode23s, ode23t i ode23tb.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
101
ode23 (Bogacki-Šampine metod) koristi sledeće jednačine za izračunavanje:
( )
( )
( )
( )
1
2 1
3 2
1
1 1 2 3
4 1 1
1 1 2 3 4
, , (prvi nagib isti kao poslednji)
, ,2 2
3 3, ,
4 4
,
2 3 4 ,9
, ,
5 6 8 9 .72
i i
i i
i i
i i
i i
i i
i
s f t y
h hs f t y s
s f t h y hs
t t h
hy y s s s
s f t y
he s s s s
+
+
+ +
+
=
= + +
= + +
= +
= + + +
=
= − + + −
(2.81)
Prvi nagib je isti kao poslednji nagib u prethodnom koraku. Sledeća
evaluacija funkcije se vrši na sredini intervala (h/2), pa se taj nagib koristi
da se dođe do 3/4 intervala (3h/4). Zatim se sve tri vrednosti nagiba (s1, s2 i
s3) koriste da se izračuna ukupan korak i nađe sledeća tačka (yi+1). Zatim se
funkcija evaluira na kraju intervala da bi se dobio 4. nagib (s4). Najzad se
sva četiri nagiba koriste za procenu greške (ei+1). Ukoliko je ona u zadatim
granicama, prelazi se na sledeći interval i s4 postaje s1 za novi korak. U
suprotnom, potrebno je ponovo odrediti – podesiti korak integracije (h) i
iznova izračunati yi+1. Bogacki-Shampine metod vrši evaluaciju funkcije tri
puta u svakom koraku.
ode45 (Dormand–Princ metod) je najčešće korišćeni metod za numeričko
rešavanje običnih diferencijalnih jednačina i predstavlja podrazumevani
metod koji se koristi u MATLAB-u i Simulink-u, ukoliko se eksplicitno ne
zatraži neki drugi. Dormand–Prince metod je član familije Runge-Kutta
metoda koji koristi šest izračunavanja funicije f u svakom koraku. Prvi
nagib (s1) je isti kao poslednji nagib u prethodnom koraku. Evaluacije
funkcije se zatim vrše na h/5, 3h/10, 4h/5, 8h/9 i h, a onda se sve izračunate
vrednosti nagiba (s2-s6) koriste da se izračuna ukupan korak i nađe sledeća
tačka (yi+1). Zatim se funkcija evaluira na kraju intervala da bi se dobio
sedmi nagib (s7) i svih sedam nagiba se iskoriste za procenu greške (ei+1) i
ponovno podešavanje veličine koraka integracije, u slučaju potrebe. Metod
ode45 vrši više izračunavanja po koraku u odnosu na ode23 ali može da
Praktikum za modeliranje i simulaciju dinamičkih sistema
102
koristi mnogo veće korake. Za diferencijalne jednačine sa glatkim
rešenjima, ode45 metod je tačniji od ode23 metoda.
MATLAB funkcija ode45 ima sledeću sintaksu:
[tout,yout]=ode45(ODEfun,tspan,y0). Ova funkcija vrši integraljenje
sistema običnih diferencijalnih jednačina ( ),y f t y= na koji se pozivamo
argumentom ODEfun u vremenskom opsegu definisanom argumentom
tspan sa inicijalnim uslovima zadatim sa y0. Funkcija može imati još jedan
pozivni parametar – dozvoljenu toleranciju greške. Ukoliko se on ne navede,
podrazumeva se tolerancija od 10-3. Kao rezultat izvršenja, funkcija vraća
korespondirajuće vrednosti nezavisne i zavisne promenljive tout i yout koje
predstavljaju numeričko rešenje početnog sistema diferencijalnih jednačina.
Ukoliko želimo da, na primer, simuliramo slučaj grabljivica-plen
(opisan sistemom jednačina 2.71), najpre zadajemo vrednosti parametara u
jednačinama, a zatim definišemo i same diferencijalne jednačine, a sistem
nazovemo npr. lotkavoltera. Oznakom @ definišu se promenljive u
jednačinama koje su, u stvari, vektori, pa se pojedinačne vrednosti broja
jedinki prve i druge vrste u definiciji sistema jednačina označavaju sa n(1) i
n(2). Sada pozivamo funkciju ode45 sa sledećim parametrima: sistem
diferencijalnih jednačina koji treba rešiti, vremenski opseg rešenja – od 0 do
20 sa korakom 0.05 i vektorom početnih uslova [2,2] za naš slučaj
( ) ( )1 20 2, 0 2n n= = . Ceo program ima sledeći izgled:
lam1=1; alf1=2; bet1=2; lam2=2; alf2=1; bet2=1; lotkavoltera=@(t,n) [(lam1-alf1)*n(1)+bet1*n(1)*n(2); (lam2-alf2)*n(2)-bet2*n(1)*n(2)]; ode45(lotkavoltera,0:0.05:20,[2;2])
Funkcija ode45 vraća rešenje sistema običnih nelinearnih
diferencijalnih jednačina (2.71) i ukoliko se u naredbi ne navedu vektori u
koje treba upisati izlaze (tout i yout), rešenje diferencijalne jednačine se
iscrtava direktno na ekranu. Dobijeni grafik rešenja prikazan na slici 2.73 je
istovetan onom sa slike 2.69 koji je dobijen na osnovu simulacionog modela
u Simulink-u.
Modeliranje i simulacija dinamičkih sistema u Simulink-u
103
Slika 2.73 Rezultati izvršenja programa
3
Priručnik iz MATLAB-a
3.1 Uvod
MATLAB je programski jezik visokog nivoa, razvijen od strane
kompanije MathWorks. Istovremeno, on predstavlja i složeno softversko
okruženje za izračunavanja vezana za naučne i inženjerske probleme. Ime je
dobio od sintagme MATrix LABoratory (matrična laboratorija), pošto mu je
osnovni element predstavljanja podataka matrica. Pogodan je za
matematička i tehnička izračunavanja, modeliranje i simulaciju dinamičkih
sistema, analizu i obradu podataka, grafičko prikazivanje rezultata i razvoj
algoritama [7]. MATLAB se dosta koristi na univerzitetskim kursevima iz
matematike, prirodnih nauka i inženjerstva jer, pored standardnih funkcija
za rešavanje uobičajenih zadataka, sadrži i biblioteke specijalizovanih
programa u vidu alata (toolbox) za rešavanje specifičnih tipova zadataka,
kao što su biblioteke za obradu signala, upravljanje sistemima, fazi logiku,
neuronske mreže...
Cilj ovog kratkog MATLAB priručnika je da upozna studente s
delićem mogućnosti i snage MATLAB-a. Za produbljivanje rada može se
iskoristiti kako bogat materijal na internetu, tako i odlična pomoćna
dokumentacija unutar samog MATLAB-a.
3.2 MATLAB okruženje
Po pokretanju MATLAB-a pokazuje se njegovo okruženje prikazano
na slici 3.1. Sastoji se od nekoliko prozora od kojih su najvažniji: 1)
Komandni prozor (Command Window) – služi za izvršavanje naredbi, 2)
Radni prostor (Workspace) – prikazuje sve prethodno kreirane promenljive,
3) Prethodne naredbe (Command History) – prikazuje sve naredbe unete u
komandnom prozoru, 4) Tekući direktorijum (Current Folder) – prikazuje
foldere i fajlove projekta. Osim ovih, postoje i drugi prozori od kojih su
najvažniji Grafički prozor (Figure) i Editor za pisanje programa (Editor) o
kojima će biti reči kasnije.
Praktikum za modeliranje i simulaciju dinamičkih sistema
106
Slika 3.1 MATLAB okruženje sa glavnim prozorima
3.3 Rad u komandnom prozoru
MATLAB je interaktivno okruženje, što znači da se naredbe unose u
komandnu liniju posle simbola >> i izvršavaju odmah po pritiskanju tastera
Enter, a rezultat se pokazuje u sledećem redu nakon fraze ans=. Ukoliko se
na kraju naredbe stavi znak tačka zarez (;), naredba će se izvršiti, ali se njen
rezultat neće prikazati na ekranu. Ako se na početku reda upiše znak za
procenat (%), to znači da se radi o komentaru i taj red se ne izvršava. Kroz
prethodno izvršene naredbe može se prolaziti pritiskanjem tastera strelica
nagore (↑) i strelica nadole (↓).
MATLAB okruženje se, u osnovi, ponaša kao kompleksni kalkulator.
Nad skalarima se mogu izvršavati aritmetičke operacije prikazane u Tabeli
3.1. Deljenje sleva je operacija inverzna deljenju zdesna i uglavnom se
koristi za operacije s nizovima. Pri izvršavanju prioriteti su: zagrade,
stepenovanje, množenje i deljenje, sabiranje i oduzimanje.
Na slici 3.2 prikazani su rezultati nekoliko izvršenih aritmetičkih
operacija u komandnom prozoru MATLAB-a.
Podrazumevani format ispisivanja numeričkih vrednosti u MATLAB-
u je tzv. format short – prikaz s 4 decimalna mesta. Ukoliko je potrebna
veća tačnost može se izabrati neki od formata u Tabeli 3.2.
Priručnik iz Matlab-a
107
Tabela 3.1 Osnovne aritmetičke operacije
Operator Opis
+ Sabiranje
- Oduzimanje
* Algebarsko množenje
^ Algebarsko stepenovanje
\ Deljenje sleva
/ Deljenje zdesna
Slika 3.2 Izvršavanje naredbi u komandnom prozoru
Tabela 3.2 Formati prikaza numeričkih vrednosti
Naredba Opis
format short 4 decimalna mesta (podrazumevani format)
format long 16 decimalnih mesta
format short e 4 decimalna mesta plus eksponent
format long e 16 decimalnih mesta plus eksponent
Praktikum za modeliranje i simulaciju dinamičkih sistema
108
3.4 Ugrađene matematičke funkcije
U MATLAB-u se svaka funkcija, bilo da je ona ugrađena ili korisnički
definisana, označava svojim imenom i argumentima. MATLAB ima veliki
broj ugrađenih matematičkih funkcija. Na primer, funkcija sin(x) za ugao x
(argument funkcije sa imenom sin) izražen u radijanima vraća vrednost
sinusa tog ugla. Trebalo bi uvek imati na umu da MATLAB razlikuje velika
i mala slova u funkcijama i promenljivama (case sensitive), što znači da
neće prepoznati funkciju pozvanu kao Sin(x) i javiće grešku. Neke, najčešće
korišćene, ugrađene funkcije su date u Tabeli 3.3, a način njihovog
korišćenja na slici 3.3.
Tabela 3.3 Primeri ugrađenih matematičkih funkcija
Osnovne matematičke funkcije Trigonometrijske funkcije
Funkcija Opis Funkcija Opis
sqrt (x) kvadratni koren sin (x) sinus ugla
exp (x) eksponent cos (x) kosinus ugla
abs (x) apsolutna vrednost tan (x) tangens ugla
log (x) prirodni logaritam cot (x) kotanges ugla
Funkcije za zaokruživanje Funkcije bez argumenata
Funkcija Opis Funkcija Opis
round (x) zaokr. na najbliži br. clock vraća vreme
fix (x) zaokruživanje naniže date vraća datum
ceil (x) zaokruživanje naviše tic vreme izvršenja koda
između te dve naredbe sign (x) signum funkcija toc
3.5 Promenljive
Promenljiva u MATLAB-u je niz od proizvoljnog broja slova i cifara
koji počinje slovom (ime promenljive), kojem je pridružena neka numerička
vrednost (vrednost promenljive). Vrednost se promenljivoj dodeljuje
operatorom dodele (=):
ime_promenljive=numerička vrednost ili izraz
Na slici 3.4 je prikazan rad s promenljivama u komandnom prozoru.
Istovremeno je prikazan i radni prostor u kome su upamćene sve korišćene
promenljive.
Priručnik iz Matlab-a
109
Slika 3.3 Korišćenje ugrađenih funkcija
Slika 3.4 Rad s promenljivama
Praktikum za modeliranje i simulaciju dinamičkih sistema
110
Pojedine promenljive su predefinisane (ugrađene) u MATLAB-u i
mogu se koristiti isto kao i promenljive koje su korisnički definisane
(Tabela 3.4).
Tabela 3.4 Ugrađene promenljive
Promenljiva Opis
ans vrednost poslednje izvršene naredbe
eps najmanja razlika između dva broja koju MATLAB
može da registruje
i,j imaginarna jedinica √-1
Inf beskonačno velika vrednost
NaN nedefinisani numerički rezultat (Not a Number).
pi broj π
MATLAB poseduje i grupu ugrađenih naredbi za upravljanje sesijom
i promenljivama, koje se koriste u toku jedne sesije (Tabela 3.5).
Tabela 3.5 Naredbe za upravljanje sesijom
Naredba Opis
clc Briše sadržaj komandnog prozora
clear Briše promenljive iz memorije
exist Proverava postojanje promenljive
global Proglašava promenljivu globalnom
help Prikazuje pomoć za neku naredbu ili temu
who Prikazuje imena promenljivih koje se nalaze u memoriji
Trebalo bi napomenuti da je razlika između funkcije i naredbe u tome
što funkcija, obično, ima neke ulazne argumente i vraća neku vrednost, dok
naredbe na neki način direktno deluju na promenu okruženja.
3.6 Vektori
Osnovni oblik u kome MATLAB čuva i obrađuje podatke su nizovi
[8]. Jednodimenzionalni nizovi se nazivaju vektori i mogu imati formu
vektora-vrste (dimenzije 1xm) ili vektora-kolone (dimenzije nx1). Vektor se
generiše upisivanjem elemenata u uglaste zagrade: ime_vektora=[vrednosti
Priručnik iz Matlab-a
111
elemenata vektora]. Kod vektora-vrste elementi se odvajaju znakom
razmaka, a kod vektora-kolone znakom ;. Ukoliko je razlika između
uzastopnih elemenata vektora konstantna, tada se vektor može generisati
naredbom: ime_vektora=n:k:m, gde je n - prvi element vektora, m –
poslednji element vektora, a k – korak između elemenata. Ukoliko se k
izostavi iz naredbe, tada se podrazumeva da je korak jednak 1. Opisani
načini generisanja vektora prikazani su na slici 3.5.
Slika 3.5 Generisanje vektora
3.7 Matrice
Matrice su dvodimenzionalni nizovi podataka svrstanih u vrste i
kolone. Ukoliko matrica ima n vrsta i m kolona, ona je dimenzija nxm.
Skalarna veličina se u MATLAB-u, takođe, smatra nizom dimenzija 1x1.
Praktikum za modeliranje i simulaciju dinamičkih sistema
112
Matrice se generišu na sličan način kao i vektori: ime_matrice=[elementi
prve vrste; elementi druge vrste; ...; elementi poslednje vrste]. Pri tome se
elementi pojedinih vrsta odvajaju znakom razmaka. Sve vrste moraju imati
jednak broj elemenata. Postoje i posebne funkcije kojima se olakšava
generisanje nekih posebnih matrica (Tabela 3.6). Generisanje nekoliko
matrica prikazano je na slici 3.6.
Tabela 3.6 Funkcije za generisanje posebnih matrica
Funkcija Opis
zeros (n,m) Generiše matricu sa n vrsta i m kolona u kojoj su
svi elementi jednaki nuli
ones (n,m) Generiše matricu sa n vrsta i m kolona u kojoj su
svi elementi jednaki jedinici
eye (n) Generiše kvadratnu matricu nxn čiji su elementi na
glavnoj dijagonali jednaki 1, a svi ostali jednaki 0
rand (n,m) Generiše matricu sa n vrsta i m kolona u kojoj su
elementi slučajni brojevi između 0 i 1
Slika 3.6 Generisanje matrica
Priručnik iz Matlab-a
113
3.8 Pristupanje elementima nizova
Pojedinačnim elementima vektora i matrica se pristupa na osnovu
njihovog položaja. Ukoliko je definisan neki vektor sa imenom vek, onda se
k-tom elementu tog vektora pristupa sa vek(k). Slično tome, elementu
matrice mat u i-toj vrsti i j-toj koloni se pristupa izrazom mat(i,j). Za
pristupanje opsegu elemenata vektora ili matrice koristi se dvotačka (:) na
način kao u Tabeli 3.7. Pristupanje elementima vektora i matrice ilustrovano
je na slici 3.7.
Tabela 3.7 Upotreba dvotačke za pristupanje elementima nizova
Naredba Opis
vek(:) Pristupanje svim elementima vektora vek
vek(n:m) Pristupanje elementima vektora vek između n-te i m-te
pozicije
mat(:,:) Pristupanje svim elementima matrice mat
mat(:,m) Pristupanje elementima u svim vrstama kolone m matrice
mat
mat(n,:) Pristupanje elementima u svim kolonama vrste n matrice
mat
mat(:,n:m) Pristupanje elementima u svim vrstama između kolona n i
m matrice mat
mat(n:m,:) Pristupanje elementima u svim kolonama između vrsta n i
m matrice mat
mat(n:m,i:j) Pristupanje elementima u vrstama od n do m i kolonama od
i do j matrice mat
3.9 Matematičke operacije s nizovima
Operacije sabiranja (+) i oduzimanja (-) mogu se izvršiti samo nad
nizovima jednakih dimenzija (isti broj vrsta i kolona). Zbir ili razlika nizova
dobija se sabiranjem ili oduzimanjem odgovarajućih elemenata (elemenata
na istim pozicijama). Množenje (*) dve matrice je moguće samo ukoliko je
broj kolona prve matrice jednak broju vrsta druge matrice. Iz toga proizilazi
i da se operacija stepenovanja (^) može izvršiti samo nad kvadratnim
matricama. Nizovi se u MATLAB-u mogu deliti sleva (operator \) ili zdesna
(operator /). Pomenute operacije su ilustrovane na slici 3.8.
Praktikum za modeliranje i simulaciju dinamičkih sistema
114
Slika 3.7 Pristupanje elementima vektora (levo) i matrice (desno)
Osim opisanih algebarskih operacija množenja (*), deljenja (/) i
stepenovanja (^) nizova, iste operacije moguće je definisati i nad
pojedinačnim elementima tako što se, u tom slučaju, operacija izvršava nad
elementima koji se nalaze na istom mestu unutar nizova. Kod operacija nad
pojedinačnim elementima, nizovi moraju biti istih dimenzija, a sam operator
dobija tačku ispred, kao što je prikazano na slici 3.9.
Priručnik iz Matlab-a
115
Slika 3.8 Matematičke operacije s matricama
Slika 3.9 Operacije nad pojedinačnim elementima nizova
Praktikum za modeliranje i simulaciju dinamičkih sistema
116
3.10 Funkcije kvadratnih matrica
Za kvadratnu matricu A, moguće je izračunati njenu inverznu matricu
funkcijom inv(A),determinantu funkcijom det(A) i sopstvene vrednosti
funkcijom eig(A) (slika 3.10).
Slika 3.10 Operacije nad kvadratnom matricom
Za dve matrice A i B važi: A\B=A-1B i A/B=AB-1. Ove operacije se
mogu iskoristiti za rešavanje matričnih jednačina oblika AX=B:
AX=B→A-1AX=A-1B→IX=A-1B→X=A-1B→X=A\B,
gde je I jedinična matrica.
Na primer, sistem jednačina:
Priručnik iz Matlab-a
117
3x-2y+6z=6
2x+z=3
5x+10y-z=10
može se rešiti matričnim operacijama kao na slici 3.11.
Slika 3.11 Matrično rešavanje sistema linearnih jednačina
3.11 Funkcije za rad s nizovima
MATLAB ima veliki broj ugrađenih funkcija za rad s nizovima. Neke
od njih su date u Tabeli 3.8 i ilustrovane na slici 3.12.
Tabela 3.8 Funkcije za rad sa nizovima
Funkcija Opis
mean (x) Računa srednju vrednost elemenata vektora
max (x) Nalazi najveći element u vektoru
min (x) Nalazi najmanji element u vektoru
sum (x) Nalazi zbir svih elemenata vektora
sort (x) Sortira elemente vektora po rastućem redosledu
length (x) Nalazi broj elemenata vektora
x' Transponuje odgovarajući niz
Praktikum za modeliranje i simulaciju dinamičkih sistema
118
Slika 3.12 Funkcije za rad sa nizovima
3.12 Znakovni nizovi
Znakovni nizovi se u MATLAB-u generišu upisivanjem znakova
unutar polunavodnika i tretiraju se kao i ostali nizovi. Mogu sadržati slova,
brojeve i ostale simbole. Rad sa znakovnim nizovima prikazan je na slici
3.13.
Priručnik iz Matlab-a
119
Slika 3.13 Rad sa znakovnim nizovima
3.13 Programi u MATLAB-u
Samo se mali broj jednostavnih problema može rešiti jednom
naredbom u komandnoj liniji. Za složenije probleme neophodno je sastaviti
niz izraza za rešavanje, odnosno napisati program. To se radi tako što se u
MATLAB-u sastavlja tzv. skript datoteka ili m-fajl (pri snimanju dobijaju
ekstenziju .m). Skript datoteka je niz naredbi, napisanih u posebnom
editoru, koji se može snimiti, izmeniti i izvršiti po želji. Editor se otvara
tako što se u glavnom prozoru MATLAB-a odabere opcija
File→New→Script. Na slici 3.14 je prikazana jednostavna skripta napisana
u editoru kojom se izračunava zapremina prave kružne kupe. Komande se
unose red po red i dobijaju svoje brojeve (oznaka 1 na slici). U novi red se
prelazi pritiskom na Enter. Komentari su označeni znakom % i oni se ne
izvršavaju. Pošto se napiše ceo program, potrebno ga je snimiti korišćenjem
opcije File→Save_as iz menija (oznaka 2 na slici). Pri tome se bira lokacija
na kojoj će program biti snimljen i pod kojim nazivom. Posle toga, naziv
programa (skripte) se pokazuje u zaglavlju (oznaka 3). Izvršenje programa
pokreće se klikom na ikonu Run (oznaka 4 na slici).
Praktikum za modeliranje i simulaciju dinamičkih sistema
120
Slika 3.14 Program napisan u MATLAB editor-u
3.14 Interakcija skripte i komandnog prozora
U slučaju da je potrebno da korisnik iz komandnog prozora unese
vrednost neke promenljive, koja je neophodna za dalje izvršenje programa,
može se iskoristiti naredba input koja ima oblik:
ime_promenljive=input('poruka koja se prikazuje u komandnom prozoru')
Kada se skripta pokrene i izvršenje programa dođe do naredbe input,
u komandnom prozoru se ispisuje sadržaj poruke između apostrofa. Dalje
izvršenje programa se stopira sve dok korisnik ne unese neku vrednost u
komandnu liniju i pritisne taster Enter. Tada se promenljivoj iz naredbe
dodeljuje upisana vrednost i program nastavlja sa izvršenjem.
S druge strane, ukoliko je potrebno da program korisniku prikaže
rezultat neke svoje operacije u komandnom prozoru, moguće je iskoristiti
naredbu disp:
disp(ime_promenljive) ili
disp('poruka koja se prikazuje u komandnom prozoru')
Sada se primer sa slike 3.14 može preraditi uključivanjem naredbi za
interakciju. Modifikovani program u editoru i izgled komandnog prozora po
pokretanju programa prikazani su na slici 3.15.
Priručnik iz Matlab-a
121
Slika 3.15 Modifikovani program u MATLAB editoru i izvršenje u
komandnom prozoru
3.15 Korisničke funkcije
Osim postojećih, ugrađenih funkcija za najčešće operacije, u
MATLAB-u je moguće definisati i nove funkcije. One se obično pišu u
slučajevima kada je potrebno isti niz naredbi izvršavati više puta, za različite
vrednosti ulaznih argumenata. Korisničke funkcije se zapisuju u istom
editoru kao i obične skripte. Razlika je u tome što kod funkcije prvi red
programa ima poseban oblik koji se naziva definicija funkcije:
function[izlazni argumenti] = ime_funkcije(ulazni argumenti)
Ulazni argumenti služe za prenošenje podataka u funkciju. Nad njima
se naredbama iz tela funkcije izvršavaju proračunavanja i rezultati se, kao
izlazni argumenti, vraćaju iz funkcije. Ukoliko se redovi neposredno nakon
prvog reda s definicijom funkcije iskoriste za pisanje komentara (na početku
znak %), ti redovi postaju pomoćni tekst, koji se kasnije prikazuje kao
objašnjenje funkcije u komandnom prozoru kada se iskoristi naredba help:
help ime_funkcije
Trebalo bi, takođe, napomenuti da se sve promenljive koje se javljaju
u funkcijama tretiraju kao lokalne, tj. definisane su i imaju svoju vrednost
samo unutar funkcijskog programa tokom trajanja izvršenja funkcije.
Praktikum za modeliranje i simulaciju dinamičkih sistema
122
Ukoliko je potrebno da neka promenljiva bude vidljiva u svim funkcijama,
ona se mora prethodno proglasiti globalnom naredbom global.
Pre korišćenja, funkcijska datoteka se mora snimiti. Da bi funkcija
mogla da se kasnije koristi u komandnom programu ili drugim programima,
neophodno je da njena lokacija (folder na kojoj je funkcija snimljena) bude
deo putanje pretraživanja. To znači da lokacija mora biti na spisku lokacija
koje MATLAB pretražuje, kada mu je potrebna definicija neke funkcije.
Nove lokacije se dodaju na spisak za pretraživanje lokacija korišćenjem
opcije iz menija File→Set Path... Pri snimanju treba voditi računa da se
funkcija snimi pod identičnim imenom koje je upisano u redu s definicijom
funkcije. Snimljena funkcija se može pozivati po želji, kako iz glavnog –
komandnog prozora, tako i iz drugih programa i funkcija, kao i bilo koja
druga ugrađena funkcija u MATLAB-u.
Primer definisanja korisničke funkcije, koja računa zapreminu
pravilne kupe, kao i način njenog pozivanja prikazani su na slikama 3.16 i
3.17.
Slika 3.16 Primer korisničke funkcije
Slika 3.17 Pozivanje korisničke funkcije iz komandnog prozora
Priručnik iz Matlab-a
123
3.16 Relacioni operatori
Relacioni operatori (operatori poređenja) porede dva broja i određuju
da li je iskaz poređenja tačan (istinit, true) ili netačan (neistinit, false).
Ukoliko je iskaz tačan, dodeljuje mu se vrednost 1, a u suprotnom 0. U
Tabeli 3.9 nabrojani su relacioni operatori.
Tabela 3.9 Relacioni operatori
Operator Opis
< Manje od
> Veće od
<= Jednako ili manje od
>= Jednako ili veće od
== Jednako
~= Različito od
Treba razlikovati operator jednakosti (==) koji ispituje da li su dve
vrednosti (s leve i desne strane operatora) jednake od operatora dodele (=),
koji promenljivoj s leve strane dodeljuje vrednost s desne. Mogu se porediti
ne samo skalarne vrednosti, već i nizovi koji, u tom slučaju, moraju biti istih
dimenzija da bi se mogli upoređivali odgovarajući elementi. Primeri
primene relacionih operatora prikazanisu na slici 3.18.
Slika 3.18 Primena relacionih operatora
Praktikum za modeliranje i simulaciju dinamičkih sistema
124
3.17 Logički operatori
Logički operatori (&, |, ~) ispituju izraze čije vrednosti mogu biti
'tačno' ili 'netačno' i daju rezultat, čija je vrednost takođe 'tačno' (1) ili
'netačno' (0). Operandi (izrazi) su brojevi, pri čemu se svaki broj različit od
nule smatra logičkom vrednošću 'tačno', dok se nula smatra logičkom
vrednošću 'netačno'. Opisani operatori važe za matrice, dok su odgovarajući
operatori za skalare && i ||. Istu funkciju, kao i logički operatori &, | i ~,
vrše i ugrađene logičke funkcije and(A, B), or(A, B) i not(A), respektivno.
U Tabeli 3.10 opisani su logički operatori.
Tabela 3.10 Logički operatori
Operator Naziv Opis
A&B
and(A, B)
AND
(logičko I)
Ukoliko oba operanda (A i B) imaju
vrednost 'tačno', rezultat operacije je 'tačno'
(1). U suprotnom, rezultat je 'netačno' (0).
A|B
or(A, B)
OR
(logičko ILI)
Ukoliko jedan ili oba operanda imaju
vrednost 'tačno', rezultat operacije je 'tačno'
(1). U suprotnom, rezultat je 'netačno' (0).
~A
not(A)
NOT
(logičko NE)
Vraća rezultat suprotan vrednosti operanda
A. Ukoliko je vrednost operanda 'tačno',
rezultat operacije je 'netačno' (0) i obrnuto.
3.18 if-else-end uslovni iskazi
Samo se najjednostavniji programi sastoje od naredbi koje se
izvršavaju isključivo sekvencijalno – jedna za drugom, redosledom kako su
zapisane. Većina realnih programa sadrži uslovne iskaze i petlje. Uslovni
iskaz je naredba kojom se određuje da li će se grupa komandi koja sledi
izvršiti (slučaj kada je rezultat uslovnog izraza tačan) ili preskočiti (slučaj
kada je rezultat uslovnog izraza netačan). U MATLAB-u se uslovni iskaz
realizuje preko tzv. if-else-end strukture:
...
naredbe programa
...
if uslovni izraz
...
grupa naredbi 1
Priručnik iz Matlab-a
125
...
else
...
grupa naredbi 2
...
end
...
naredbe programa
…
Kada se, pri izvršenju programa, dođe do uslovnog izraza, ispituje se
njegova vrednost. Ukoliko je ta vrednost 'tačno', izvršava se grupa naredbi
između službenih reči if i else, a zatim preskaču naredbe do ključne reči
end. Ukoliko je vrednost 'netačno', preskaču se naredbe do ključne reči else,
a zatim izvršavaju naredbe između else i end. Algoritam if-else-end
strukture prikazan je na slici 3.19. Ukoliko je potrebno uvesti više uslova,
oni se dodaju posle službenih reči elseif.
Slika 3.19 Struktura uslovnog iskaza if-else-end
Program sa slike 3.20 ispituje da li je broj unet sa tastature pozitivan,
negativan ili jednak nuli.
Praktikum za modeliranje i simulaciju dinamičkih sistema
126
Slika 3.20 Primer programa sa uslovnim iskazom
3.19 for petlja
Petlje u programima služe da se grupa naredbi ponovi više puta
zaredom. U for petljama se broj prolaza kroz petlju definiše na početku
petlje. Struktura for petlje je:
...
naredbe programa
...
for k=a:b:c
...
grupa naredbi
...
end
...
naredbe programa
…
U inicijalizaciji petlje (for k=a:b:c), k je ime promenljive koja se
koristi kao indeks petlje. Početna vrednost indeksa petlje je a. U svakom
prolasku proz petlju izvršavaju se naredbe između for i end. Zatim se
program vraća na naredbu for, da bi započeo novi prolaz. Pri tome, indeks
petlje dobija novu vrednost k=k+b. Postupak se ponavlja sve dok je indeks
petlje manji ili jednak vrednosti c. Ukoliko se ne navede vrednost za b
(korak petlje), smatra se da je 1.
Primer upotrebe for petlje prikazan je na slici 3.21, gde je dat program
koji izračunava sumu kvadrata svih brojeva deljivih sa 3 između brojeva 15
i 45. Za ispitivanje deljivosti iskorišćen je uslovni iskaz sa ugrađenom
funkcijom mod(x, y) koja vraća ostatak deljenja broja x brojem y. Napisani
program u petlji vrti sve brojeve iz traženog opsega (korak petlje je
Priručnik iz Matlab-a
127
podrazumevano 1) i dodaje na sumu kvadrate onih brojeva koji pri deljenju
sa 3 imaju ostatak 0. Još jednostavnije rešenje je da je inicijalizacija petlje:
for k=15:3:45. U tom slučaju se uslovni iskaz može izostaviti, jer se petlja
izvršava samo za vrednosti k deljive sa 3.
Slika 3.21 Primer programa sa for petljom
3.20 while petlja
U while petljama broj prolaza nije unapred poznat, već se petlja
izvršava sve dok je ispunjen neki zadati uslov. Struktura while petlje je:
...
naredbe programa
...
while uslovni izraz
...
grupa naredbi
...
end
...
naredbe programa
…
U prvom redu while petlje se pored službene reči while nalazi uslovni
izraz koji se ispituje pri svakom prolasku kroz petlju. Ukoliko je njegova
vrednost netačno, prelazi se na službenu reč end i nastavlja sa izvršenjem
programa. Ukoliko je ta vrednost tačno, izvršava se grupa naredbi između
dve službene reči, pa se vraća na while. Petlja se, dakle, izvršava sve dok
uslovni izraz ne dobije vrednost netačno.
Praktikum za modeliranje i simulaciju dinamičkih sistema
128
U primeru programa sa while petljom sa slike 3.22 potrebno je da se
za broj unet sa tastature izračuna funkcija ex, ali ne korišćenjem ugrađene
funkcije, već razvojem u Tejlorov red: 0 !
nx
n
xe
n
=
= . Uslov za ostanak u petlji
je složen. S jedne strane, uslov je da apsolutna vrednost dodatog člana nije
manja od 10-5. Drugi uslov je da broj dodatih članova niza ne bude veći od
30.
Slika 3.22 Primer programa sa while petljom
3.21 Grafikoni
Grafikoni su popularan način predstavljanja podataka u nauci i tehnici.
MATLAB raspolaže brojnim tipovima grafikona, čiji se izgled može
dodatno podešavati. Najjednostavniji način crtanja grafikona je naredbom
plot(x,y), gde su x i y vektori (jednodimenzionalni nizovi) s jednakim
brojem elemenata. Izvršavanjem naredbe plot otvara se grafički prozor
(Figure) u kome se iscrtava grafikon, tako što se spajaju tačke sa
koordinatama upisanim u x (horizontalna osa) i y (vertikalna osa) vektore.
Na primer, niz naredbi u komandnom prozoru:
x=[1 2 4 7 8 10 11 12];
y=[2 4 7 8 6 6 4 3];
plot(x,y)
Priručnik iz Matlab-a
129
iscrtava grafikon, otvoren u posebnom prozoru Figure, prikazan na slici
3.23.
Slika 3.23 Prozor Figure sa nacrtanim grafikonom
Izgled grafikona se može podešavati posebnim opcionim argumentima
u okviru plot naredbe. Potpuna plot naredba ima oblik: plot(x,y,'osobine
linije'). Osobine linije definišu stil i boju linije, kao i vrstu markera na
grafikonu. Neke moguće vrednosti za osobine grafikona prikazane su u
Tabeli 3.11. Redosled oznaka između navodnika je proizvoljan.
Tabela 3.11 Osobine grafikona Vrsta linije Boja linije Vrsta markera
Oznaka Opis Oznaka Opis Oznaka Opis
- Puna linija r Crvena boja + Znak plus
-- Isprekidana linija g Zelena boja * Zvezdica
: Tačkasta linija b Plava boja s Kvadrat
-. Linija crta-tačka k Crna boja p Zvezda petokraka
Praktikum za modeliranje i simulaciju dinamičkih sistema
130
Za isti primer s vektorima x i y, naredba plot(x,y,'--rs') nacrtaće
grafikon kao na slici 3.24. Sada je linija isprekidana i crvena, a tačke s
koordinatama x i y su označene kvadratima.
Slika 3.24 Podešeni izgled grafikona
Postoje i druge osobine grafikona koje se mogu podešavati: debljina
linije, veličina markera, boja markera... Osobine se mogu menjati, ne samo
kroz program, već i na samom grafikonu. U mod za vršenje promena
osobina grafikona ulazi se kroz Figure meni Edit→Figure Properties, ili
dvoklikom na sam grafik.
3.22 Grafik funkcije
Grafik neke funkcije y=f(x) se u MATLAB-u može, takođe, nacrtati
pomoću već opisane naredbe plot. Najpre se generiše vektor x za domen
funkcije, koja će biti iscrtana. Zatim se generiše vektor y od vrednosti f(x)
izvršavanjem operacija nad pojedinačnim elementima vektora x. Na primer,
Priručnik iz Matlab-a
131
ukoliko je potrebno nacrtati grafik funkcije: ( )2 3cos 3 2y x x= + − u
intervalu (domenu) -3<x<3, to se može učiniti sledećim nizom naredbi:
x=-3:0.01:3;
y=x.^2+3*cos(3*x)-2;
plot(x,y)
Drugi, jednostavniji način za crtanje grafika funkcije je korišćenjem
posebne naredbe fplot:
fplot('funkcija', [granice], 'osobine linije')
Funkcija se zapisuje unutar apostrofa kao znakovni niz. Granice se
upisuju u srednje zagrade i mogu imati 2 argumenta – granice iscrtavanja na
x osi ili 4 argumenta - granice iscrtavanja i na x i na y osi. Osobine linije su
opcioni argumenti, zapisuju se između apostrofa i definišu na isti način kao
za naredbu plot. Dakle, funkcija iz primera bi se mogla, na drugi način,
nacrtati naredbom fplot('x^2+3*cos(3*x)-2',[-3 3]), a rezultujući grafik
funkcije je prikazan na slici 3.25.
Slika 3.25 Grafik funkcije
Praktikum za modeliranje i simulaciju dinamičkih sistema
132
3.23 Iscrtavanje više grafika odjednom
Na istim koordinatnim osama moguće je nacrtati i više različitih
grafika. Najpre se nacrta jedan grafik korišćenjem standardnih naredbi plot
ili fplot. Zatim se zadaje naredba hold on koja ima ulogu da zadrži isti
prozor za dalje naredbe za crtanje novih grafika. Tako je moguće dodavati
proizvoljan broj grafika. Dodavanje se prekida naredbom hold off.
Sledećom grupom naredbi se crtaju dve polinomne funkcije na istim
osama (rezultat je prikazan na slici 3.26):
fplot('x^5-8*x^3+10*x+6',[-3 3],’r’)
hold on
fplot('x^4-8*x^2',[-3 3],’--k’)
Slika 3.26 Više grafika na istim osama
Drugi način za prikazivanje više grafika odjednom je kada se oni
iscrtavaju posebno, ali u okviru istog prozora Figure. To se radi naredbom
Priručnik iz Matlab-a
133
subplot(m,n,p). Ta naredba deli prozor na mxn podgrafikona. p je broj
konkretnog podgrafikona brojano od gornjeg levog ugla prema donjem
desnom. Komanda subplot samo aktivira odgovarajući podgrafikon, a
konkretan grafikon u njemu se iscrtava sledećom naredbom plot ili fplot.
Sledeći niz naredbi u istom prozoru crta 6 polinomnih funkcija koje deli u 2
vrste i 3 kolone (rezultat je prikazan na slici 3.27):
subplot(2,3,1),fplot('x^5-8*x^3+10*x+6',[-3 3])
subplot(2,3,2),fplot('x^4-8*x^2',[-3 3])
subplot(2,3,3),fplot('x^4-4*x^2+3*x',[-3 3])
subplot(2,3,4),fplot('x^3-x^2-5*x',[-3 3])
subplot(2,3,5),fplot('x^4+x^3-20*x^2',[-3 3])
subplot(2,3,6),fplot('3*x^4-2*x^3+1',[-3 3])
Slika 3.27 Više grafika u istom prozoru
Praktikum za modeliranje i simulaciju dinamičkih sistema
134
3.24 Formatiranje grafikona
Nakon iscrtavanja grafikona, neophodno je njihovo formatiranje -
dopunjavanje podacima, koji kompletiraju informacije koje grafikoni
prikazuju, kao što su: oznake osa, naslov grafikona, legenda, mreža,
natpisi... U Tabeli 3.12 prikazane su neke naredbe za formatiranje grafikona.
Tabela 3.12 Naredbe za formatiranje grafikona
Naredba Opis
xlabel('natpis') Dodaje natpis na x osu
ylabel('natpis') Dodaje natpis na y osu
title('natpis') Dodaje naslov grafikonu
legend('natpis1', 'natpis2',...) Dodaje legendu grafikonu
axis([xmin xmax ymin ymax]) Zadaje granice prikazivanja x i y ose
grid on Dodaje mrežu na grafikon
Na slici 3.28 prikazan je program kojim se iscrtava formatiran
grafikon na slici 3.29, koji prikazuje kretanje bdp-a u Srbiji od 2000. do
2014. godine.
Slika 3.28 Program za iscrtavanje formatiranog grafikona
Formatiranje se može izvršiti i direktno u editoru grafikona u koji se
ulazi dvoklikom na sam grafikon ili kroz meni Edit→Figure Properties.
Priručnik iz Matlab-a
135
Slika 3.29 Formatiran grafikon
3.25 Specijalni grafikoni
Osim linijskih grafikona koji se dobijaju naredbama plot i fplot, u
MATLAB-u postoje i mnoge druge vrste specijalnih grafikona. Tako se
trakasti grafikoni crtaju naredbama bar(x,y) – vertikalni i barh(x,y) –
horizontalni, stepenasti grafikon se crta naredbom stairs(x,y), a diskretni
grafikon naredbom stem(x,y). Za prethodni primer s kretanjem bdp-a,
moguće je nacrtati sve pomenute grafikone u istom prozoru naredbama
datim na slici 3.30. Rezultat je prikazan na slici 3.31.
Slika 3.30 Program za crtanje specijalnih grafikona
Praktikum za modeliranje i simulaciju dinamičkih sistema
136
Slika 3.31 Primeri specijalnih grafikona
Zanimljiva vrsta specijalnih grafikona su i tzv. pita grafikoni, koji
obično služe za ilustraciju brojčanih proporcija. Naredba za iscrtavanje je
pie(x). Ukoliko želimo, na primer, da pita grafikonom uporedimo površine
kontinenata, izražene u milionima km2, naredbe su:
povrsine=[43.8 13.7 7.6 30.4 10.2 17.8 24.5];
pie(povrsine)
Rezultat je prikazan na slici 3.32, pri čemu je legenda dodata direktno
na grafikonu izborom odgovarajuće ikone.
Priručnik iz Matlab-a
137
Slika 3.32 Primer pita grafikona
3.26 Trodimenzionalni grafikoni
Trodimenzionalni grafikoni prikazuju površi definisane kao funkcije
dve promenljive z=f(x,y). Da bi se u datom domenu mogle izračunati sve
vrednosti zavisne promenljive z, neophodno je, najpre, formirati rešetku u x-
y ravni koja pokriva oblast definisanosti funkcije. Ta rešetka tačaka u ravni
kreira se naredbom meshgrid, koja generiše matricu elemenata na
domenima definisanosti x i y koordinata: [x y]=meshgrid(domen x, domen
y). Zatim se izračunava vrednost z za svaku od tačaka rešetke. Rezultat se,
na kraju, prikazuje u vidu trodimenzionalnog grafikona nekom od naredbi
za iscrtavanje od kojih su najpoznatije one za crtanje mrežastog -
mesh(x,y,z) i površinskog grafikona - surf(x,y,z).
Na slici 3.33, prikazana je sekvenca naredbi kojom se iscrtava
mrežasti grafikon funkcije( )2 2
2 2
sin x y epsz
x y eps
+ +=
+ +za 10 10x− i
Praktikum za modeliranje i simulaciju dinamičkih sistema
138
10 10y− u koracima od 0.5. Izvršenjem sekvence dobija se
trodimenzionalni grafikon prikazan na slici 3.34. Ukoliko je potrebno
nacrtati površinski grafikon, umesto naredbe mesh koristi se surf i rezultat
je prikazan na slici 3.35.
Slika 3.33 Program za crtanje mrežastog grafikona
Slika 3.34 Primer mrežastog grafikona
Priručnik iz Matlab-a
139
Slika 3.35 Primer površinskog grafikona
Pored prikazanih, osnovnih varijanti trodimenzionalnih grafikona,
postoje i brojne varijacije od kojih su neke nabrojane u Tabeli 3.13.
Tabela 3.13 Varijacije trodimenzionalnih grafikona
Naredba Opis
meshz(x,y,z) Mrežasti grafikon sa zavesom
meshc(x,y,z) Mrežasti konturni grafikon
surfc(x,y,z) Površinski konturni grafikon
surfl(x,y,z) Površinski grafikon sa osvetljenjem
watterfall(x,y,z) Kaskadni grafikon
Praktikum za modeliranje i simulaciju dinamičkih sistema
140
3.27 Simbolički izrazi
Osim rada s numeričkim izrazima, MATLAB omogućuje i rad sa
simboličkim izrazima, kod kojih se matematičke operacije izvršavaju nad
simboličkim promenljivama – promenljivama koje nemaju dodeljenu
konkretnu brojčanu vrednost u trenutku izvršavanja matematičkih operacija.
Rezultat takvih operacija je matematički izraz, koji sadrži simboličke
promenljive. Na primer, rešenje jednačine 22 5 3t x x+ = , gde su x i t
simboličke promenljive, po promenljivoj x je 2
3
2 5x
t=
+.
Da bi MATLAB znao da vrednost izraza treba da izračuna na
simbolički način, najpre je potrebno da se promenljive u izrazu definišu kao
simboličke, naredbom syms:
syms promenljiva_1 promenljiva_2...
Na slici 3.36, prikazan je primer rada sa simboličkim iskazima. Može
se primetiti kako se numeričke vrednosti u simboličkim izrazima
izračunavaju bez aproksimiranja.
Slika 3.36 Simbolički izrazi
Priručnik iz Matlab-a
141
3.28 Rešavanje algebarskih jednačina
Algebarske jednačine se rešavaju naredbom solve. Ukoliko jednačina
sadrži samo jednu promenljivu, naredba je oblika solve(jedn), a rešenje je
numerička vrednost. Ukoliko ima više promenljivih, naredba je oblika
solve(jedn, promenljiva) i tada se traži rešenje u kome je jedna promenljiva
izražena preko ostalih. Argument funkcije solve – jedn je ili prethodno
definisan simbolički izraz ili se izraz direktno upisuje u funkciju. Ukoliko
argument jedn ne sadrži znak =, rešavaće se jedn=0.
Naredbom solve moguće je rešavati i sisteme algebarskih jednačina i
tada ova naredba dobija oblik: solve(jedn_1, jedn_2,...). Ukoliko je broj
promenljivih jednak broju jednačina, rezultat je numeričko rešenje. U
suprotnom, rešenje je simbolički izraz u kome su odabrane promenljive
izražene pomoću ostalih promenljivih.
Na slici 3.37 prikazano je rešavanje algebarskih jednačina u
komandnom prozoru.
Slika 3.37 Rešavanje algebarskih jednačina
Praktikum za modeliranje i simulaciju dinamičkih sistema
142
3.29 Diferenciranje i integraljenje
Simbolički izraz s_izr se može diferencirati naredbom diff(s_izr).
Ukoliko izraz ima više promenljivih, diferenciranje izraza po promenljivoj
pr vrši se naredbom diff(s_izr, pr). Viši diferencijali se dobijaju naredbom
diff(s_izr, pr, n), gde je n red diferenciranja.
Neodređeni integral simboličkog izraza s_izr dobija se naredbom
int(s_izr). Ukoliko izraz ima više promenljivih, integraljenje izraza po
promenljivoj pr vrši se naredbom int(s_izr, pr). Za određene integrale,
naredba dobija oblik int(s_izr, pr, a, b), gde su a i b granice integrala.
Na slici 3.38 su prikazani primeri diferenciranja i integraljenja
simboličkih izraza u komandnom prozoru MATLABA-a.
Slika 3.38 Primeri diferenciranja i integraljenja
Priručnik iz Matlab-a
143
3.30 Rešavanje obične diferencijalne jednačine
Obična diferencijalna jednačina se, u simboličkom obliku, rešava
naredbom dsolve. Obična diferencijalna jednačina prvog reda u sebi sadrži
izvod zavisne promenljive: ( ),dx
f t xdt
= ; drugog reda sadrži i drugi izvod
zavisne promenljive: 2
2, ,
d x dxf t x
dt dt
=
... Rešenje jednačine je funkcija
x=f(t), koja ispunjava uslove jednačine i koje može biti opšte ili parcijalno.
Kada se traži opšte rešenje, oblik naredbe je dsolve('jednacina', pr), gde je
pr ime nezavisne promenljive. Ukoliko je unutar jednačine potrebno uneti
diferencijal promenljive, on se označava slovom D. Na primer, prvi
diferencijal x po t označavase sa Dx, drugi sa D2x... Parcijalno rešenje
obične diferencijalne jednačine može se dobiti ukoliko su poznati granični
(početni) uslovi i tada je oblik naredbe: dsolve('jednacina', 'uslov1',
'uslov2',...,pr), pri čemu je broj uslova jednak redu diferencijalne jednačine.
Na slici 3.39 prikazan je način dobijanja opšteg rešenja diferencijalne
jednačine 3 2dy
t ydt
= − , kao i parcijalnog rešenja jednačine
( )2
022 0, 0 3, 0t
d x dx dxx x
dt dt dt=− + = = = .
Slika 3.39 Rešavanje diferencijalnih jednačina
Praktikum za modeliranje i simulaciju dinamičkih sistema
144
3.31 Rad sa polinomima
Polinomi su funkcije oblika ( ) 1
1 1 0...n n
n nf x a x a x a x a−
−= + + + + , pri
čemu su koeficijenti polinoma realni brojevi, a n je celobrojni red polinoma.
Polinomi se u MATLAB-u predstavljaju vektorima, čiji su elementi
koeficijenti polinoma: an, an-1, ... , a1, a0. Tako se, na primer, polinom 5 4 33 5 4 2x x x x+ − − + zapisuje kao p=[3 5 -1 0 -4 2]. Vrednost polinoma za
određenu vrednost x se može izračunati funkcijom polyval(p,x). Nule
polinoma su vrednosti koje predstavljaju rešenja jednačine koja se dobija
kada se polinom izjednači sa nulom. Naredba kojom se izračunavaju nule
(koreni) polinoma je roots(p). Slika 3.40 prikazuje rad sa polinomima u
komandnom prozoru.
Slika 3.40 Rad sa polinomima
3.32 Aproksimiranje podataka polinomom
Postupak uklapanja funkcije u skup tačaka (podataka) naziva se
aproksimacijom podataka krivom. Aproksimiranje podataka polinomom vrši
se naredbom polyfit, koja za aproksimiranje koristi metodu najmanjih
Priručnik iz Matlab-a
145
kvadrata. Naredba ima oblik: p=polyfit(x,y,n), gde su x i y vektori
koordinata tačaka (podataka) kroz koje je potrebno provući krivu polinoma,
a n je stepen polinoma. Rezultat funkcije je vektor p koeficijenata polinoma
koji aproksimira podatke. Što je aproksimirajući polinom višeg reda, bolje
aproksimira podatke. Ukoliko ima n tačaka, polinom reda n-1 će proći kroz
sve tačke.
Na slici 3.41 je prikazan program kojim se niz od 8 tačaka
aproksimira polinomima prvog, trećeg, petog i sedmog reda. Rezultat je
prikazan na slici 3.42.
Slika 3.41 Program za aproksimiranje niza tačaka polinomima različitog
reda
Slika 3.42 Aproksimiranje niza podataka polinomima (n=1, n=3, n=5, n=7)
Praktikum za modeliranje i simulaciju dinamičkih sistema
146
3.33 Transformacije
MATLAB poseduje niz ugrađenih funkcija za rad s transformacijama.
Transformacije predstavljaju koristan alat u nauci i inženjerstvu za
pojednostavljenje analize i promenu perspektive pogleda na probleme koji
se rešavaju. Tako, na primer, Laplasova transformacija pretvara
diferencijalne jednačine u algebarske, dok Furijeova transformacija
omogućava predstavljanje signala u funkciji od frekvencija umesto u
funkciji od vremena.
Laplasova transformacija funkciju iz vremenskog prevodi u
kompleksan domen i naredba je laplace (simbolička funkcija u vremenskom
domenu). Inverzna Laplasova transformacija vraća funkciju iz kompleksnog
u vremenski domen i naredba je ilaplace. Slično, Furijeova transformacija
signala u vremenskom domenu se dobija naredbom fourier, a inverzna
Furijeova transformacija naredbom ifourier. Na slici 3.43, prikazan je rad
transformacijama.
Slika 3.43 Rad s transformacijama
Priručnik iz Matlab-a
147
3.34 Strukture podataka
MATLAB ima mogućnost definisanja strukturnih promenljivih.
Promenljive tipa strukture mogu sadržati više osobina – polja u kojima su
zapisani podaci različitih tipova (numerički, znakovni, logički, niz...).
Pojedinačnom polju se pristupa tako što se u strukturu ulazi po dubini
pomoću simbola tačke: ime_promenljive.tražena_osobina. Slika 3.44
prikazuje rad sa strukturnom promenljivom student koja ima 5 osobina: ime,
prezime, broj_indeksa, modul i ocene. Osobina ocene u sebi sadrži dalju
podelu na ocene iz prve, druge i treće godine. Takođe je pokazano kako se
može pristupiti pojedinačnom elementu unutar strukture (izvršena je
promena jedne ocene).
Slika 3.44 Rad sa strukturom podataka
Praktikum za modeliranje i simulaciju dinamičkih sistema
148
3.35 Klase i objekti
Osim strukturnog programiranja, MATLAB, kao i svi ostali moderni
programski jezici, nudi i mogućnost objektno orijentisanog programiranja.
U tom smislu, MATLAB podržava sve tehnike neophodne za ovakav vid
programiranja, kao što su: klase, objekti, osobine, metode, enkapsulacija,
nasleđivanje, polimorfizam, predefinisanje operatora...
Na slici 3.45, prikazano je definisanje klase Krug, koja ima samo
jedan atribut – poluprečnik i dve metode, izračunavanje obima i površine.
Nakon definisanja, klasu je potrebno snimiti kao m fajl, a potom je moguće
koristiti je u komandnom prozoru. Na slici 3.46, prikazan je rad s kreiranom
instancom – objektom kr1 klase Krug. Najpre je objektu dodeljena vrednost
poluprečnika, a zatim su isprobane obe definisane metode klase.
Slika 3.45 Definisanje klase
3.36 Grafički korisnički interfejs
Moderni programi zahtevaju grafički korisnički interfejs (graphical
user interface - GUI) za interakciju s korisnikom. MATLAB poseduje
poseban editor u kome je moguće kreirati GUI i koji se poziva naredbom
guide u komandnom prozoru. Po otvaranju editora, mogu se primetiti
gotove komponente koje je moguće dodati intefejsu, kao što su: razne vrste
komandnih dugmadi, statički tekst, tabele, kvadrati za čekiranje, padajući
meni... Nazivi ponuđenih alata se prikazuju izborom opcije Show names in
component palette u meniju File→Preferences.
Priručnik iz Matlab-a
149
Slika 3.46 Rad sa objektima
Neka je cilj napraviti jednostavan grafički interfejs u kome se izborom
pritiska na jedno od tri komandna dugmeta bira jedna od tri različite
funkcije: generisanje teksta u komandnom prozoru, puštanje muzike i
prikazivanje slike. Nakon prevlačenja tri dugmeta (Push Button) u radni
prostor, potrebno je promeniti tekst koji se na njima prikazuje tako da
reprezentuje njihove željene funkcionalnosti. To se radi desnim klikom na
dugme i izborom opcije Property Inspector. Izbor te opcije otvara sve
osobine odabrane kontrole (u ovom slučaju kontrole Push Button). Prikazani
naziv dugmeta se menja unutar opcije String. Za potrebe primera, može se
unutar ove osobine za tri dugmeta upisati “zasto?”, “hendl” i “zemlja”, čime
se dobija rezultat kao na slici 3.47.
Praktikum za modeliranje i simulaciju dinamičkih sistema
150
Slika 3.47 Maska sa tri dugmeta
Svaki GUI se sastoji od dve komponente. Prva komponenta je već
opisana maska, koja prikazuje grafiku koju korisnik vidi sa svim željenim
kontrolama i njihovim rasporedom i koja se pamti kao fig fajl. Drugi deo je
aplikacioni m fajl i u njemu je moguće isprogramirati ponašanje celokupnog
interfejsa, kao i funkcionalnosti pojedinačnih izabranih kontrola. Funkcije
uneta tri dugmeta mogu se isprogramirati tako što se, nakon desnog klika na
jedno od dugmadi, izabere opcija View Callbacks→Callback. Time se
otvara m fajl vezan za GUI i pozicionira se tamo gde je sada moguće uneti
funciju, koja će se izvršiti pritiskom na određeno dugme. Za dugmad je
potrebno uneti sledeće funkcije (kao na slici 3.48):
zasto?: why
hendl: load handel; sound(y,Fs)
zemlja: load earth; image(X); colormap(map)
Priručnik iz Matlab-a
151
Slika 3.48 Aplikacioni m fajl sa isprogramiranim funkcionalostima
U primeru su isprogramirane tri zanimljive funkcije, čije objašnjenje
rada prevazilazi ciljeve ovog priručnika. Kreirani GUI se može aktivirati
pritiskom na ikonu Run, bilo iz fig ili iz m fajla.
4
Analiza dinamičkih sistema u
MATLAB-u
4.1 Formiranje linearnih modela dinamičkih sistema
U MATLAB-u postoji poseban alat specijalizovan za formiranje i
analizu modela dinamičkih sistema. Control System Toolbox je kolekcija
algoritama za modeliranje, analizu i projektovanje sistema automatskog
upravljanja realizovan kroz biblioteku m-datoteka. Upotrebljava linearne
vremenski nepromenljive modele, predstavljene LTI (Linear Time-
Invariant) objektima tj. promenljivim koje opisuju model sistema.
Postoje tri osnovna načina predstavljanja modela linearnih sistema u
Control System Toolbox-u: model u prostoru stanja, funkcija prenosa
izražena preko polinoma i funkcija prenosa izražena preko nula i polova.
• Model u prostoru stanja ima oblik:
= +
= + ,
q Aq Bu
y Cq Du (4.1)
gde je q vektor koordinata (promenljivih) stanja sistema, u vektor ulaza
(upravljačkih veličina) i y vektor izlaza sistema. Ukoliko znamo vrednosti
matrica A, B, C i D, možemo formirati model sistema u MATLAB-u kao
LTI objekat tj. promenljivu (sa imenom npr. model1) naredbom ss (state
space) koja ima format: model1=ss(A,B,C,D).
• Model u obliku funkcije prenosa izražene preko polinoma ima oblik:
1
1 1 0
1
1 1 0
...( )
...
m m
m m
n n
n n
b s b s b s bW s
a s a s a s a
−
−
−
−
+ + + +=
+ + + + (4.2)
Ukoliko znamo vrednosti polinoma u brojiocu: br=[bm bm-1 ... b1 b0] i
imeniocu im=[an an-1 ... a1 a0], možemo formirati model sistema u
MATLAB-u kao LTI objekat tj. promenljivu (sa imenom npr. model2)
naredbom tf (transfer function) koja ima format: model2=tf(br,im).
Praktikum za modeliranje i simulaciju dinamičkih sistema
154
• Model u obliku funkcije prenosa izražene preko nula i polova ima oblik:
( )( ) ( )
( )( ) ( )1 2
1 2
...( )
...
m
n
s z s z s zW s k
s p s p s p
− − −=
− − − (4.3)
i predstavlja faktorizovan oblik funkcije prenosa gde su zi nule, pi polovi
sistema, a k je pojačanje sistema. Ukoliko znamo vrednosti nula sistema:
nule=[z1; z2; ... zm], polova sistema: polovi=[p1; p2; ... pn] i vrednost
pojačanja sistema: pojačanje, možemo formirati model sistema u
MATLAB-u kao LTI objekat tj. promenljivu (sa imenom npr. model3)
naredbom zpk (zeros, poles, k) koja ima format:
model3=zpk(nule,polovi,pojačanje).
Konstruktori modela ss, tf i zpk su ujedno i konvertori modela tj. tim
naredbama se modeli mogu i transformisati iz jednog oblika u drugi. Npr.
ukoliko je model_ss naziv LTI modela zadatog u prostoru stanja, naredbom
model_zpk=zpk(model_ss) dobija se LTI objekat model_zpk koji predstavlja
model istog sistema, ali sada u obliku funkcije prenosa izražene preko nula i
polova.
U Control System Toolbox-u postoje i inverzne naredbe: ssdata,
tfdata i zpkdata kojima se iz LTI modela (pod imenom npr. model) mogu
izdvojiti gradivni podaci: iz promenljive koja predstavlja model u prostoru
stanja mogu se izdvojiti pojedinačne matrice modela:
[A,B,C,D]=ssdata(model,’v’), iz promenljive koja predstavlja model u
obliku funkcije prenosa izražene preko polinoma mogu se izdvojiti
pojedinačni polinomi brojioca i imenioca funkcije prenosa:
[br,im]=tfdata(model,’v’), a iz promenljive koja predstavlja model u obliku
funkcije prenosa izražene preko nula i polova mogu se izdvojiti pojedinačni
vektori sa nulama i polovima kao i pojačanje sistema:
[z,p,k]=zpkdata(model,’v’). Argument ’v’ u naredbama omogućava željeni
oblik zapisa podataka u obliku vektora kolona.
Zadatak:
Za linearni sistem dat funkcijom prenosa: 3 2
4 3 2
4 68 256 192( )
11 75 225
s s sW s
s s s s
+ + +=
+ + +
formirati LTI objekat – model u obliku funkcije prenosa izražene preko
polinoma. Model zatim konvertovati u model u prostoru stanja kao i u
Analiza dinamičkih sistema u MATLAB-u
155
model u obliku funkcije prenosa izražene preko preko nula i polova. Iz
modela u obliku funkcije prenosa izražene preko preko nula i polova
izdvojiti vektore nula i polova kao i pojačanje sistema.
Rešenje:
br=[4 68 256 192]; im=[1 11 75 225 0]; model=tf(br,im) ss(model) zpk(model) [nule,polovi,pojacanje]=zpkdata(model,'v')
Objašnjenje rešenja:
Najpre se formiraju polinomi brojioca (br) i imenioca (im) zadate
funkcije prenosa. Zatim se od njih formira LTI promenljiva model
naredbom tf čiji su argumenti već formirani brojilac i imenilac (izlaz
naredbe na ekranu je funkcija prenosa u obliku razlomka sa zadatim
polinomima). Naredbama ss i zpk se početni model u obliku funkcije
prenosa izražene preko polinoma konvertuje u model u prostoru stanja (izlaz
na ekranu su matrice modela) i model u obliku funkcije prenosa izražene
preko nula i polova (izlaz na ekranu je faktorisana funkcija prenosa). Na
kraju se iz poslednjeg modela izdvajaju nule, polovi i pojačanje. U
poslednjoj naredbi argument 'v' služi da se podaci konvertuju i odštampaju
na ekranu u pogodnom obliku vektora kolona. Na slici 4.1 prikazani su
rezultati izvršenja programa u komandnom prozoru.
Praktikum za modeliranje i simulaciju dinamičkih sistema
156
Slika 4.1 Rezultati u komandnom prozoru
Analiza dinamičkih sistema u MATLAB-u
157
4.2 Povezivanje sistema i osnovni odzivi
Sistemi automatskog upravljanja su složeni sistemi – sastoje se od
različitih elemenata (objekat upravljanja, regulator, senzori, aktuatori...),
koji deluju radi postizanja zajedničkog cilja [9]. Svaki od podsistema ima
sopstvenu funkciju prenosa, a iz njih se može dobiti zajednička tzv. funkcija
spregnutog prenosa celog sistema, ukoliko su poznate veze među njima.
Pojedinačni elementi međusobno mogu biti spregnuti na tri načina: rednom
vezom, paralelnom vezom i povratnom spregom (slika 4.2).
Slika 4.2 Načini sprezanja elemenata u sistemu
Redna veza elemenata, čije su funkcije prenosa W1(s) i W2(s), može se
zameniti jednim elementom sa funkcijom prenosa koja predstavlja proizvod
pojedinačnih funkcija prenosa: ( ) ( ) ( ) ( ) ( )1 2W s Y s U s W s W s= = . Ukoliko
su zadata dva elementa u vidu LTI objekata sa nazivima m1 i m2, tada se
jedinstveni element koji menja rednu vezu ta dva elementa u MATLAB-u
može dobiti upotrebom naredbe series: m=series(m1,m2) ili jednostavnim
množenjem LTI objekata: m=m1*m2.
Paralelna veza elemenata, čije su funkcije prenosa W1(s) i W2(s), može
se zameniti jedinstvenom funkcijom prenosa koja predstavlja zbir
pojedinačnih funkcija prenosa: ( ) ( ) ( ) ( ) ( )1 2W s Y s U s W s W s= = + .
Odgovarajuća naredba u MATLAB-u je parallel: m=parallel(m1,m2), ili,
alternativno, sabiranje LTI objekata: m=m1+m2
Povratna sprega u kojoj je blok m1 sa funkcijom prenosa W1(s) u
direktnoj grani, a blok m2 sa funkcijom prenosa W2(s) u povratnoj grani,
može se zameniti jedinstvenom funkcijom prenosa:
( ) ( ) ( )( )
( ) ( )1
1 21
W sW s Y s U s
W s W s= =
+. Odgovarajuća naredba u MATLAB-
u je feedback: m=feedback(m1,m2).
Praktikum za modeliranje i simulaciju dinamičkih sistema
158
Control System Toolbox poseduje veliki broj funkcija za analizu
modela dinamičkih sistema. Među njima su i funkcije za izračunavanje
odziva modela na elementarne ulazne signale kao što su odskočni ili
impulsni [10]. Tako se odskočni odziv zadatog LTI objekta pod nazivom
npr. model jednostavno dobija naredbom step(model,vreme) pri čemu
argument vreme definiše koliki vremenski deo odziva je potrebno nacrtati na
grafikonu. Slično se dobija i impulsni odziv modela naredbom
impulse(model,vreme). Za sve varijante ovih naredbi (kao i svih drugih
naredbi u MATLAB-u) može se pogledati objašnjenje iz dokumentacije
kada se u komandni prozor MATLAB-a ukuca naredba help zajedno sa
naredbom od interesa (npr. help impulse).
Zadatak:
Za sistem sa slike 4.3 odrediti model u obliku funkcije prenosa, a,
zatim, i odskočni i impulsni odziv modela u trajanju od 3 sekunde.
Slika 4.3 Strukturna blok šema sistema
Rešenje:
m1=tf([1],[1 14]); m2=tf([1],[1 0]); m3=tf([12],[1]); m4=tf([1],[1 0 10]); m5=tf([8],[1 9]); m6=tf([40],[1]); m7=series(m1,m2);
Analiza dinamičkih sistema u MATLAB-u
159
m8=parallel(m3,m4); m9=series(m8,m5); m10=feedback(m7,m9); model=feedback(m10,m6) subplot(2,1,1), step(model,3), grid,
xlabel('vreme'),ylabel('y'); subplot(2,1,2), impulse(model,3), grid,
xlabel('vreme'),ylabel('y')
Objašnjenje rešenja:
Najpre se definišu elementi sistema sa slike kao LTI objekti preko
svojih funkcija prenosa zadatih u polinomnom obliku. Celokupni model se
zatim izračunava postepeno; kombinuju se dva po dva elementa sve dok se
sistem ne svede na jedinstvenu funkciju spregnutog prenosa koja se štampa
na ekranu nakon naredbe model=feedback(m10,m6):
( )3 2
5 4 3 2
9 10 90
23 176 686 1660 4568
s s sW s
s s s s s
+ + +=
+ + + + +.
Na kraju se iscrtavaju odskočni i impulsni odzivi dobijenog modela, kao na
slici 4.4.
Slika 4.4 Odskočni i impulsni odziv sistema
Praktikum za modeliranje i simulaciju dinamičkih sistema
160
4.3 Vremenski odziv sistema
Vremenski odziv sistema opisanog modelom u prostoru stanja:
= + ,
= +
q Aq Bu
y Cq Du (4.4)
može se odrediti rešavanjem vektorske diferencijalne jednačine:
( ) ( ) ( ) ( )0
0AA
q q Bu
tttt e e d
−
= + (4.5)
gde je q(0) vektor početnih stanja sistema.
Matrična eksponencijalna funkcija iz jednačine (4.5) se naziva
fundamentalna matrica ( )Φ t :
( ) AΦ
tt e= (4.6)
Za izračunavanje fundamentalne matrice za dati vremenski trenutak u
MATLAB-u koristi se funkcija expm(mat), koja izračunava eksponent
matrice.
Vremenski odziv sistema sa proizvoljnim početnim stanjima, na
proizvoljan ulazni signal, može se u MATLAB-u dobiti na još jedan način,
korišćenjem funkcije lsim koja ima sintaksu:
[y,t,q]=lsim(model,u,vreme,q0). Funkcija lsim koristi argumente: model
sistema čiji se odziv traži (predstavljen kao LTI objekat), ulazni signal (u),
vreme izračunavanja odziva u vidu vektora vremenskih jedinica (t) i početna
stanja sistema (q0). Vrednosti koje funkcija lsim vraća su izlaz sistema (y),
vektor vremenskih trenutaka (t) i promenljive stanja sistema (q).
Zadatak:
Naći funkciju prenosa za sistem opisan modelom u prostoru stanja:
0 1 0 0
0 0 1 0
2 2 4 1
1 0 0 0
q q
y q+
u
u
= + − − −
=
. (4.7)
Neka je ulazni signal odskočni, s tim što do skoka vrednosti sa 0 na 1 dolazi
na polovini simulacije, tj. posle 15 sekundi. Neka se kretanje sistema takođe
odvija i na račun unutrašnje energije akumulirane u elementima sistema
(nenulti početni uslovi). Koristeći naredbu lsim izračunati vremenski odziv
Analiza dinamičkih sistema u MATLAB-u
161
sistema za početne uslove ( )
0
0 0
1
q
=
za 0 30t . Nacrtati vrednost
ulaznog signala, kretanje promenljivih stanja sistema (q1, q2, q3), kao i izlaza
sistema (y). Zatim, izračunati fundamentalnu matricu i odrediti tačne
vrednosti stanja sistema u trenutku t=10 koristeći izraz (4.5). Uporediti
dobijene rezultate sa rezultatima naredbe lsim.
Rešenje:
A=[0 1 0;0 0 1;-2 -2 -4]; B=[0;0;1]; C=[1 0 0]; D=[0]; model=ss(A,B,C,D) tf(model) q0=[0;0;1]; vreme=[0:0.1:30]; u=0*vreme; for i=151:301, u(i)=1; end; [y,t,q]=lsim(model,u,vreme,q0); subplot(3,1,1),plot(t,u),grid,xlabel('vreme(s)'),ylabel('u') subplot(3,1,2),plot(t,q),grid,xlabel('vreme(s)'),ylabel('q1,q
2,q3') subplot(3,1,3),plot(t,y),grid,xlabel('vreme(s)'),ylabel('y') q(101,:)' dt=10; Phi=expm(A*dt) q=Phi*q0
Objašnjenje rešenja:
Početni uslovi (početne vrednosti koordinata stanja) se definišu
vektorom q0. Vektor vremenskih trenutaka u kojima će se računati
vrednosti stanja i izlaza definisan je promenljivom vreme, a vektor vrednosti
ulaza za svaki trenutak vremena promenljivom u. U vektor u se najpre
upisuju sve nule (0*vreme), a zatim se u drugu polovinu vektora (pozicije
151 do 301) prepisuju jedinice. Nakon izračunavanja odziva sistema
naredbom lsim, moguće je nacrtati kretanje promenljivih stanja sistema (q1,
q2, q3), kao i izlaza sistema (y). Rezultati su prikazani na slici 4.5.
Praktikum za modeliranje i simulaciju dinamičkih sistema
162
Slika 4.5 Ulaz sistema, promenljive stanja i izlaz sistema
Vrednosti promenljivih stanja u trenutku t=10, dobijene naredbom
lsim, štampaju se u komandnom prozoru naredbom q(101,:)', pošto matrica
stanja q ima 301 vrstu (30 sekundi sa rezolucijom 0.1) i 3 kolone (po jedna
za svaku koordinatu stanja q1, q2, q3). S druge strane, s obzirom na to da se
kretanje sistema u prvih 15 sekundi odvija isključivo na račun početnih
uslova pri nultoj pobudi, izračunavanje vrednosti promenljivih stanja u
određenom trenutku može se izvesti i uprošćenim izrazom (4.5) u kome
figuriše samo prvi član: ( ) ( ) ( ) ( )0 0Aq q Φ q
tt e t= = . Na slici 4.6 prikazani
su rezultati programa u komandnom prozoru i tu se mogu primetiti identične
vrednosti koordinata stanja u trenutku t=10, dobijene naredbom lsim i
izrazom (4.5), kao i izračunata fundamentalna matrica.
Analiza dinamičkih sistema u MATLAB-u
163
Slika 4.6 Deo rezultata u komandnom prozoru
Praktikum za modeliranje i simulaciju dinamičkih sistema
164
4.4 Analiza odziva oscilatornog elementa drugog reda
U ovoj vežbi, analizira se sistem u automatici poznat kao oscilatorni
element drugog reda, čija je funkcija prenosa oblika [9]:
( )( )
( )
2
2 2 2 2
1 1, gde je
2 1 2
nn
n n
Y sW s
U s s T Ts s s T
= = = =
+ + + + (4.8)
Parametri, koji figurišu u funkciji prenosa, su: T[s] – vremenska
konstanta sistema, ζ – koeficijent relativnog prigušenja, ωn[s-1] – sopstvena
neprigušena prirodna frekvencija oscilovanja.
Procena relevantnih karakteristika sistema vrši se na bazi njegovih
svojstava, koja se manifestuju pri pobudi standardnim ulaznim signalima.
Poznavanje veze između lokacije dominantnih polova sistema drugog reda,
opisanog relacijom (4.8), i vremenskog odziva je od posebnog interesa za
projektovanje sistema automatskog upravljanja.
Odskočni odziv sistema (4.8) može se i direktno izračunati iz
definicije funkcije prenosa:
( ) ( ) ( ) ( )2 2
1
2 2 2 2
1 1
2 2
n n
n n n n
Y s W s U s y t Ls s s s s s
− = = =
+ + + +
Nakon primene inverzne Laplasove transformacije (L-1), za odskočni odziv
u vremenskom domenu dobija se izraz:
( ) ( ) ( )2
21 sin 1 ; arccos
1
nt
n
ey t t
−
= + − − = −−
. (4.9)
Na sličan način se za impulsni odziv dobija:
( ) ( )2
2sin 1
1
nt
nn
ey t t
−
= −−
. (4.10)
Zadatak:
Analizirati ponašanje oscilatornog elementa drugog reda za različite
vrednosti parova parametara:
ωn ζ ωn ζ
2 0 1 0
2 0.1 1 0.1
2 0.5 1 0.5
2 0.707 1 0.707
2 1 1 1
Analiza dinamičkih sistema u MATLAB-u
165
Formirati sliku sa četiri podgrafika, koji sadrže odskočni i impulsni odziv za
svaki od parova parametara. Vreme simulacije je 10 sekundi.
Rešenje:
m1=tf([4],[1 0 4]); m2=tf([4],[1 0.4 4]); m3=tf([4],[1 2 4]); m4=tf([4],[1 2.828 4]); m5=tf([4],[1 4 4]); m6=tf([1],[1 0 1]); m7=tf([1],[1 0.2 1]); m8=tf([1],[1 1 1]); m9=tf([1],[1 1.414 1]); m10=tf([1],[1 2 1]); subplot(2,2,1),impulse(m1,m2,m3,m4,m5,10), title('imp.odziv,wn=2,zeta=0,0.1,0.5,0.707,1'),grid; subplot(2,2,2),impulse(m6,m7,m8,m9,m10,10), title('imp.odziv,wn=1,zeta=0,0.2,0.5,0.707,1'),grid; subplot(2,2,3),step(m1,m2,m3,m4,m5,10), title('odsk.odziv,wn=2,zeta=0,0.1,0.5,0.707,1'),grid; subplot(2,2,4),step(m6,m7,m8,m9,m10,10), title('odsk.odziv,wn=1,zeta=0,0.2,0.5,0.707,1'),grid
Objašnjenje rešenja:
Najpre se formiraju sve kombinacije brojioca i imenioca funkcija
prenosa (m1-m10) a, zatim, izračunavaju se njihovi impulsni i odskočni
odzivi. Na kraju se svi rezultati iscrtavaju na zajedničkom grafikonu (slika
4.7), podeljeni po vrednostima parametara i vrsti odziva.
Sa slike se vidi da su za ζ=0 oscilacije neprigušene. Kako ζ raste,
povećava se i prigušenost oscilacija. Ukoliko je, na primer, neophodno naći
maksimum odskočnog odziva i vremenski trenutak u kome on nastaje,
potrebno je jednačinu (4.9) diferencirati po vremenu i izjednačiti je sa
nulom. To daje prvi maksimum: 121n
t
=
−, čijom zamenom u (4.9) se
dobija vrednost maksimuma: ( )2121 1my t e
−
−= + − , što znači da je
veličina preskoka u odnosu na jedinični signal 2121 e
−
− = − . Iz
poslednjeg izraza, kao i sa slike 4.7, primećuje se da veličina preskoka
opada do nule s porastom faktora relativnog prigušenja ζ.
Praktikum za modeliranje i simulaciju dinamičkih sistema
166
Slika 4.7 Impulsni i odskočni odzivi oscilatornog elementa drugog reda s
različitim vrednostima karakterističnih parametara
Analiza dinamičkih sistema u MATLAB-u
167
4.5 Analiza stabilnosti sistema
MATLAB se može iskoristi za analizu stabilnosti sistema,
jednostavnim određivanjem lokacija korena karakteristične jednačine.
Naime, poznato je da je potreban i dovoljan uslov stabilnosti linearnog
sistema automatskog upravljanja da svi koreni njegove karakteristične
jednačine leže u levoj poluravni s-ravni (realni delovi rešenja su negativni)
[9]. Karakteristična jednačina se dobija kada se karakteristični polinom po s
(imenilac funkcije spregnutog prenosa sistema) izjednači s nulom. Problem,
koji se u prošlosti javljao sa ovom definicijom stabilnosti, bio je uzrokovan
činjenicom da je karakteristična jednačina sistema u opštem slučaju
algebarska jednačina n-tog reda. Matematičari su odredili formule za
algebarsko rešavanje jednačina do četvrtog reda, a Abel-Rufinijevom
teoremom s početka 19. veka dokazano je da je nemoguće naći generalno
algebarsko rešenje polinomne jednačine s proizvoljnim koeficijentima petog
ili višeg reda. Zbog toga, razvijen je veći broj metoda (kriterijumi
stabilnosti), kako algebarskih (Hurvicov, Rausov), tako i grafo-analitičkih
(Nikvistov, Bodeov), za ocenu stabilnosti sistema bez direktnog,
algebarskog rešavanja njegove karakteristične jednačine. U današnje vreme,
kada moderni računari mogu jednačine višeg reda rešavati izuzetno brzo
numeričkim metodama, ti razvijeni kriterijumi stabilnosti gube svoj značaj u
smislu potrebe za izračunavanjem korena jednačine, ali neki od njih ostaju
značajni za razumevanje suštine analize i sinteze sistema automatskog
upravljanja. U MATLAB-u se za izračunavanje korena polinomne
karakteristične jednačine (polinom po s u imeniocu funkcije spregnutog
prenosa sistema izjednačen s nulom) može iskoristi već opisana funkcija
roots.
Kada je sistem dat svojim modelom u prostoru stanja (4.4), tada je
karakteristični polinom određen izrazom ( )det I As − . Nakon izračunavanja
navedenog polinoma, koreni karakteristične jednačine ( )det 0I As − =
mogu se naći funkcijom roots, čiji su argumenti koeficijenti
karakterističnog polinoma. Drugi način za ispitivanje stabilnosti je
korišćenjem specijalne funkcije poly. Funkcija poly formira polinom od
vektora korena, a u ovom slučaju može se iskoristiti za određivanje
karakteristične jednačine na osnovu matrice A. Ako je matrica A dimenzija
nxn, funkcija poly(A) daje karakterističnu jednačinu predstavljenu pomoću
n+1 elemenata vektora vrste, čiji elementi su koeficijenti karakteristične
jednačine.
Praktikum za modeliranje i simulaciju dinamičkih sistema
168
Zadatak:
Za sistem dat modelom u prostoru stanja:
0 1 0 0
0 0 1 0
10 15 10 10
1 1 0
q q
y q
u
= + − − −
=
(4.11)
odrediti korene karakteristične jednačine direktno iz matrice A, koristeći
funkcije poly i roots. Uporediti rezultate sa onima koji se dobijaju kada se
model prevede u funkciju prenosa i naredbom roots izračunaju koreni
karakteristične jednačine, koja se dobija kada se imenilac funkcije
spregnutog prenosa izjednači s nulom. Na osnovu izračunatih korena,
zaključiti da li je sistem stabilan. Ponoviti proceduru za novi sistem koji se
dobija promenom elementa matrice A(3,2) sa -15 na 15. Za oba sistema
nacrtati odskočne odzive u trajanju od 10 sekundi.
Rešenje:
A=[0 1 0;0 0 1;-10 -15 -10]; B=[0;0;10]; C=[1 1 0]; D=[0]; roots(poly(A)) model_ss=ss(A,B,C,D); model_tf=tf(model_ss) [br,im]=tfdata(model_tf,'v'); roots(im) subplot(2,1,1),step(model_tf,10),grid %sada isto ali za izmenjeni sistem A(3,2)=15; model_ss=ss(A,B,C,D); model_tf=tf(model_ss) [br,im]=tfdata(model_tf,'v'); roots(im) subplot(2,1,2),step(model_tf,10),grid
Objašnjenje rešenja:
Karakteristična jednačina dobijena direktno iz modela u prostoru
stanja i matrice A funkcijom poly identična je onoj koja se dobija kada se
model sistema prevede u funkciju prenosa, a zatim imenilac izjednači s
Analiza dinamičkih sistema u MATLAB-u
169
nulom. Stoga, funkcija roots primenjena na obe jednačine daje iste korene:
s1=-8.3464, s2=-0.8268+0.7173i, s3=-0.8268-0.7173i. S obzirom na to da su
sva tri korena s negativnim realnim delom (sva tri rešenja su leva), može se
zaključiti da je sistem stabilan.
Koreni karakteristične jednačine drugog sistema, koji se dobija nakon
promene jednog elementa u matrici A, postaju: s1=-11.3936,
s2=0.6968+0.6262i, s3=0.6968+0.6262i. S obzirom na to da su dva
konjugovano kompleksna rešenja sada u desnoj poluravni kompleksne ravni
s, drugi sistem je nestabilan. Zaključci o stabilnosti se potvrđuju dobijenim
odzivima sistema na odskočni ulazni signal prikazanim na slici 4.8.
Slika 4.8 Odskočni odzivi sistema
Praktikum za modeliranje i simulaciju dinamičkih sistema
170
4.6 Generisanje GMK
Geometrijsko mesto korena (GMK) je skup trajektorija po kojima se
kreću koreni karakteristične jednačine (polovi funkcije spregnutog prenosa)
pri promeni nekog parametra funkcije povratnog prenosa (najčešće
pojačanja povratnog prenosa) od 0 do ∞. Konstruisanje GMK, koje može
biti dug i naporan proces kroz 11 pravila, s mogućnošću grešaka, u
MATLAB-u se praktično izvršava jednom jedinom naredbom. Naredba za
crtanje GMK je rlocus(p,q), pri čemu je opšti oblik karakteristične
jednačine, koji se koristi pri primeni ove funkcije:
( )
( )1 0
p sk
q s+ = , (4.12)
gde je k promenljivi parametar koji se menja u opsegu 0 k .
Posle izvršenja naredbe rlocus, na nacrtanom grafikonu sa GMK
sistema, moguće je mišem birati tačke na trajektorijama (granama) GMK.
Po izboru tačke, na grafikonu se prikazuju sledeći podaci za tu tačku:
koordinate selektovanog pola, pojačanje k, vrednosti koeficijenta prigušenja,
sopstvene frekvencije oscilovanja, kao i preskoka za selektovani pol.
Izborom jedne tačke automatski se lociraju svi polovi funkcije spregnutog
prenosa, koji odgovaraju istom pojačanju k.
Zadatak:
Za sistem s jediničnom povratnom spregom, koji uključuje objekat
upravljanja opisan funkcijom prenosa 2
1
5 6s s+ + i integralni regulator u
direktnoj grani funkcije prenosa k
s, nacrtati GMK naredbom rlocus.
Odrediti vrednost pojačanja k za koje odziv sistema ima preskok 10%. Za tu
vrednost pojačanja nacrtati odskočni odziv sistema u trajanju od 10 sekundi.
Na kraju, odrediti vrednost pojačanja k za koje sistem postaje nestabilan i
nacrtati odskočni odziv za neku vrednost k pri kojoj je sistem nestabilan.
Slika 4.9 Strukturna blok šema sistema
Analiza dinamičkih sistema u MATLAB-u
171
Rešenje:
%crtanje GMK m1=tf([1],[1 5 6 0]); figure(1); rlocus(m1) %crtanje odskocnog odziva za nadjeno pojacanje k %sa kojim je preskok 10% k=4.4; m2=tf([k],[1 5 6 0]); m3=feedback(m2,1); figure(2); step(m3,10),grid; %crtanje odskocnog odziva za nadjeno pojacanje k %sa kojim je sistem nestabilan k=50; m4=tf([k],[1 5 6 0]); m5=feedback(m4,1); figure(3); step(m5,10),grid;
Objašnjenje rešenja:
Funkcija prenosa direktne grane sistema sa slike je
( ) 2 3 2
1
5 6 5 6d
k kW s
s s s s s s= =
+ + + +, a celog sistema s jediničnom
negativnom povratnom spregom:
( )( )
( )
( )
( )
3 2
3 2
1
5 611
15 6
d
d
kY s W s s s sW sU s W s
ks s s
+ += = =+
++ +
.
Karakteristična jednačina u obliku (4.12) pogodnom za izvršenje naredbe
rlocus dobija se izjednačavanjem imenioca dobijene funkcije spregnutog
prenosa sa nulom: 3 2
11 0
5 6k
s s s+ =
+ +. Sada je lako dobiti GMK sistema
naredbama m1=tf([1],[1 5 6 0]); rlocus(m1). Na dobijenom grafikonu (slika
4.10) moguće je mišem selektovati tačke na granama GMK i za njih dobiti
detaljne podatke (videti sliku). Tako je moguće, s jedne strane, pronaći
polove za koje preskok iznosi 10%, a s druge naći polove na prelazu iz leve
u desnu poluravan s ravni za koje je sistem na granici stabilnosti. U prvom
slučaju se dobijaju polovi 0.64 0.875i− za koje je vrednost pojačanja
k=4.4, a u drugom granična vrednost k=30 (sistem je stabilan za 0<k<30).
Praktikum za modeliranje i simulaciju dinamičkih sistema
172
Slika 4.10 GMK sistema s podacima za selektovane karakteristične tačke
Drugi deo naredbi služi za crtanje odskočnog odziva za sistem s
pronađenom vrednošću pojačanja k=4.4. Funkcija prenosa sistema s
jediničnom povratnom spregom izračunava se prolagođenom naredbom za
jediničnu povratnu spregu feedback(m2,1). Rezultujući odskočni odziv
prikazan je na slici 4.11.
Na kraju, nacrtan je odskočni odziv sistema za vrednost k pri kojoj je
sistem nestabilan (slika 4.12). Odabrana je vrednost k=50, ali mogla je biti
odabrana i bilo koja druga vrednost k>30. Rezultat odziva bio bi sličan.
Analiza dinamičkih sistema u MATLAB-u
173
Slika 4.11 Odskočni odziv sistema za k=4.4
Slika 4.12 Odskočni odziv sistema za k=50
Praktikum za modeliranje i simulaciju dinamičkih sistema
174
4.7 Generisanje frekvencijskog odziva
Bodeovi dijagrami (logaritamski dijagrami slabljenja i faze) su grafici
frekvencijskog odziva sistema. Logaritamski dijagram slabljenja je moduo
frekvencijske funkcije prenosa, izražen u decibelima (dB) i predstavljen u
funkciji kružne učestanosti u logaritamskoj razmeri. Slično, fazni dijagram
predstavlja grafički prikaz argumenta frekvencijske funkcije prenosa u
funkciji kružne učestanosti u logaritamskoj razmeri. Za crtanje Bodeovih
dijagrama u MATLAB-u koristi se funkcija bode. Sintaksa naredbe je:
[amp,faz,w]=bode(model), gde je model zadat u vidu LTI objekta. Izvršenje
naredbe rezultira upisom amplitudne i fazne karakteristike u vektore amp i
faz respektivno, dok se u vektor w upisuju vrednosti frekvencija u rad/s, za
koje se izračunavaju vrednosti za crtanje Bodeovih dijagrama. Ukoliko se
funkcija bode koristi bez argumenata na levoj strani, dolazi do automatskog
iscrtavanja Bodeovih dijagrama.
Zadatak:
1. Za sistem opisan funkcijom spregnutog prenosa oblika:
( ) 2
25
25W s
s s=
+ + nacrtati Bodeove dijagrame. S dijagrama slabljenja
pronaći maksimum, kao i rezonantnu frekvenciju na kojoj se taj maksimum
javlja.
2. Na istom grafiku nacrtati Bodeove dijagrame sistema koji imaju sledeće
funkcije prenosa: ( )( )( )
1
1
1 10W s
s s=
+ +, ( )
( ) ( )2
10
1 20
sW s
s s
+=
+ +,
( )3 2
1
2 50W s
s s=
+ + i ( )
( )( )4 2
5
1 12 50
sW s
s s s
+=
+ + +.
Rešenje:
%Bodeov dijagram prvog sistema m1=tf([25],[1 1 25]); figure(1); bode(m1),grid; %Bodeovi dijagrami preostala cetiri sistema m2=tf([1],conv([1 1],[1 10])); figure(2); subplot(2,2,1),bode(m2),grid;
Analiza dinamičkih sistema u MATLAB-u
175
m3=tf([1 10],conv([1 1],[1 20])); subplot(2,2,2),bode(m3),grid; m4=tf([1],[1 2 50]); subplot(2,2,3),bode(m4),grid; m5=tf([1 5],conv([1 1],[1 12 50])); subplot(2,2,4),bode(m5),grid;
Objašnjenje rešenja:
Bodeovi dijagrami prvog sistema datog u obliku funkcije prenosa
dobijaju se jednostavno već opisanom funkcijom bode i rezultat je prikazan
na slici 4.13. Ukoliko se direktno na slici uveća detalj s maksimumom
dijagrama slabljenja (slika 4.14), može se očitati maksimalna vrednost
(rezonantni vrh) od 14dB, koji se javlja pri rezonantnoj frekvenciji od
100.7≈5rad/s.
Slika 4.13 Bodeovi dijagrami sistema
Drugi deo zadatka podrazumeva crtanje Bodeovih dijagrama za
preostala četiri sistema na jednom grafiku i rezultat je prikazan na slici 4.15.
Za izračunavanje faktorisanih imenilaca, kao što je, na primer, (s+1)(s+10)
iskorišćena je funkcija conv koja služi za množenje polinoma (konvolucija)
i čiji su argumenti koeficijenti dva polinoma koji se množe.
Praktikum za modeliranje i simulaciju dinamičkih sistema
176
Slika 4.14 Uvećan detalj s maksimumom dijagrama pojačanja
Slika 4.15 Bodeovi dijagrami četiri zadata sistema
Analiza dinamičkih sistema u MATLAB-u
177
4.8 Analiza stabilnosti sistema u frekvencijskom domenu
Stabilnost sistema se može analizirati i u frekvencijskom domenu,
grafo-analitičkim kriterijumima Nikvista i Bodea, koji se zasnivaju na
korišćenju funkcije povratnog prenosa sistema Wp(s). Nikvistova kriva
predstavlja amplitudno-fazno-frekvencijsku karakteristiku sistema sa
otvorenom petljom povratne sprege pri promeni učestanosti od -∞ do +∞. U
MATLAB-u se Nikvistov dijagram generiše jednostavno, pomoću funkcije
nyquist koja ima sledeću sintaksu: [re,im,w]=nyquist(model). Funkcija u
ovakvom obliku vraća vrednosti realnih (re) i imaginarnih (im) delova
koordinata Nikvistove krive pri različitim učestanostima w. Kada se
funkcija nyquist koristi bez argumenata na levoj strani, Nikvistov dijagram
se automatski iscrtava u posebnom grafičkom prozoru. Za određivanje
stabilnosti, važno je da li i koliko puta Nikvistova kriva obuhvata kritičnu
tačku (-1,j0) u Wp(s) ravni. Za slučaj da je povratni prenos sistema stabilan,
njegov spregnuti prenos biće, takođe, stabilan ako Nikvistova kriva pri
promeni frekvencije od -∞ do ∞ nijednom ne obuhvati kritičnu tačku (-1,j0)
u Wp(jω) ravni.
Frekvencijske metode analize sistema su pogodne i zbog toga što one
omogućavaju ne samo da se odredi da li je neki sistem stabilan, već i koliki
je stepen njegove stabilnosti putem određivanja preteka (rezerve) pojačanja i
faze. Pretek faze je vrednost za koju je moguće promeniti fazu sistema, ne
menjajući pojačanje, tako da sistem dođe na oscilatornu granicu stabilnosti.
S druge strane, pretek pojačanja pokazuje koliko je moguće promeniti
pojačanje, pri konstantnoj fazi, tako da sistem dođe na granicu stabilnosti.
Iako se ove vrednosti mogu odrediti s Nikvistovog dijagrama,u MATLAB-u
ih je lakše izračunati preko Bodeovih dijagrama, funkcijom margin:
[Gm,Pm,Wcg,Wcp]=margin(model), gde je: Gm - pretek pojačanja, Pm -
pretek faze, Wcg – presečna frekvencija faze koja odgovara fazi od -180,
Wcp – presečna frekvencija pojačanja koja odgovara slabljenju od 0dB. Ako
se funkcija margin pozove bez argumenata na levoj strani, Bodeov
dijagram se automatski iscrtava, a pretek pojačanja i faze se ispisuju na
dijagramu.
Stabilnost sistema se može direktno odrediti na osnovu preteka faze i
pojačanja. Ukoliko je povratni prenos sistema stabilan (svi polovi u levoj
poluravni) i ima samo jednu presečnu učestanost faze (učestanost pri kojoj
fazna karakteristika preseca liniju -180°), spregnuti prenos sistema biće
stabilan ukoliko je Wcp<Wcg, tj. ukoliko presečna frekvencija pojačanja
nastupa pre presečne učestanosti faze.
Praktikum za modeliranje i simulaciju dinamičkih sistema
178
Zadatak:
Nacrtati Nikvistove dijagrame i naći pretek faze i pretek pojačanja,
koristeći funkciju margin, sistema opisanih sledećim funkcijama povratnog
prenosa: ( )1 3 2
0.5
2 0.5pW s
s s s=
+ + + i ( )2 3 2
10
3 3 3pW s
s s s=
+ + +. Ispitati
stabilnost datih sistema i potvrditi rezultat rešavanjem karakterističnih
jednačina sistema.
Rešenje:
%prvi sistem model1=tf([0.5],[1 2 1 0.5]); subplot(2,2,1),nyquist(model1) subplot(2,2,2),margin(model1) %drugi sistem model2=tf([10],[1 3 3 3]); subplot(2,2,3),nyquist(model2) subplot(2,2,4),margin(model2) %nalaženje korena karakteristi?nih jednacina p1=[1 2 1 1]; roots(p1) p2=[1 3 3 13]; roots(p2)
Objašnjenje rešenja:
Korišćenjem naredbi nyquist i margin, za zadate sisteme, dobijaju se
Nikvistove krive i Bodeovi dijagrami sa izračunatim pretekom pojačanja i
faze kao na slici 4.16. Posmatranjem rezultata može se zaključiti da će po
zatvaranju povratne sprege prvi sistem biti stabilan (Nikvistova kriva ne
obuhvata kritičnu tačku: Wcp<Wcg na Bodeovim dijagramima), dok će
drugi biti nestabilan. Zapažanja se mogu potvrditi i direktnim rešavanjem
karakterističnih jednačina sistema: ( )1 0pW s+ = , koje za zadate sisteme
dobijaju oblik: 3 22 1 0s s s+ + + = i 3 23 3 13 0s s s+ + + = . Za prvi sistem se
naredbom roots u komandnom prozoru dobijaju koreni: s1=-1.7549, s2=-
0.1226+0.7449i i s3=-0.1226-0.7449i, a za drugi: s1=-3.2894,
s2=0.1447+1.9827i i s3=0.1447-1.9827i. Može se primetiti da su za prvi
sistem svi koreni karakteristične jednačine u levoj poluravni s-ravni – imaju
negativan realni deo, što znači da je sistem stabilan, dok drugi sistem ima
dva nestabilna korena u desnoj poluravni što ga čini nestabilnim.
Analiza dinamičkih sistema u MATLAB-u
179
Slika 4.16 Nikvistovi i Bodeovi dijagrami sistema sa izračunatim
vrednostima preteka faze i pojačanja
Praktikum za modeliranje i simulaciju dinamičkih sistema
180
4.9 Ispitivanje kontrolabilnosti i opservabilnosti sistema
Kontrolabilnost (upravljivost) definiše mogućnost prevođenja sistema
iz bilo kog početnog u bilo koje zadato stanje pomoću upravljačkih signala.
Opservabilnost definiše mogućnost određivanja promenljivih stanja na
osnovu merenja izlaza sistema [11]. Sistem opisan modelom u prostoru
stanja (4.4) je potpuno kontrolabilan ukoliko važi:
rang[B,AB,A2B,...,An-1B]=n, (4.13)
gde je n red sistema - broj promenljivih stanja. S druge strane, sistem je
potpuno opservabilan ukoliko je:
rang[CT,ATCT, (AT)2CT,..., (AT)n-1CT]=n. (4.14)
Kontrolabilnost sistema se u MATLAB-u ispituje naredbom
Mc=ctrb(A,B). Argumenti naredbe su matrice stanja A i B, a rezultat
naredbe je matrica kontrolabilnosti Mc. Ista matrica se može dobiti i
direktno, naredbom ctrb(model), ali samo ukoliko model predstavlja LTI
objekat zadat u prostoru stanja.
Opservabilnost sistema se ispituje naredbom Mo=obsv(A,C).
Argumenti naredbe su matrice A i C, a rezultat naredbe je matrica
opservabilnosti Mo. Ista matrica se može dobiti i direktno, naredbom
obsv(model), ali, ponovo, samo ukoliko model predstavlja LTI objekat zadat
u prostoru stanja.
Rangovi matrica kontrolabilnosti i opservabilnosti mogu se izračunati
naredbama rank(Mc) i rank(Mo).
Zadatak:
Ispitati da li je kontrolabilan i opservabilan sistem opisan modelom u
prostoru stanja:
1 1 0 1
4 0 3 0
6 8 10 1
1 2 1
q q u
y q
−
= − + − −
=
(4.15)
Rešenje:
A=[-1 1 0;4 0 -3;-6 8 10]; B=[1;0;-1]; C=[1 2 1];
Analiza dinamičkih sistema u MATLAB-u
181
Mc=ctrb(A,B); Mo=obsv(A,C); if rank(Mc)==3 disp ('sistem je kontrolabilan') else disp ('sistem nije kontrolabilan') end if rank(Mo)==3 disp ('sistem je opservabilan') else disp ('sistem nije opservabilan') end
Praktikum za modeliranje i simulaciju dinamičkih sistema
182
4.10 Analiza diskretnih sistema
Prelaz sistema iz kontinualnog u diskretni model i obrnuto se u
MATLAB-u može jednostavno izvršiti funkcijama c2d i d2c. Primenom
funkcije c2d (continuous to discrete) iz kontinualnog modela sistema se
dobija odgovarajući diskretni model, a funkcijom d2c se na osnovu
diskretnog modela nalazi kontinualni model. Ako su kmodel i dmodel LTI
objekti koji predstavljaju modele sistema u kontinualnom i diskretnom
domenu, respektivno, tada se iz jednog domena u drugi može preći
naredbama: kmodel=d2c(dmodel,T,'zoh') i dmodel=c2d(kmodel,T,'zoh'), gde
je T - perioda odabiranja, a 'zoh' označava da se za diskretizaciju sistema
koristi kolo zadrške nultog reda (zero order hold). Osim metode 'zoh', za
diskretizaciju se može iskoristiti 'foh' – kolo zadrške prvog reda ili 'tustin' –
Tustinova aproksimacija. Ukoliko se ovaj argument izostavi, implicitno se
podrazumeva 'zoh' metoda diskretizacije.
Zadatak:
Kontinualni model sistema dat je svojom funkcijom prenosa
( ) 2
2 6
6
sW s
s s
+=
+ +. Konvertovati zadati model u diskretni metodom
diskretizacije koji koristi kolo zadrške nultog reda za tri različite vrednosti
periode odabiranja T1=1s, T2=0.3s, T3=0.1s. U sva tri slučaja uporediti
odskočne odzive originalnog kontinualnog i izvedenih diskretnih modela u
trajanju od 10 sekundi.
Rešenje:
kmodel=tf([2 6],[1 1 6]) dmodel=c2d(kmodel,1) step(dmodel) subplot(311),step(kmodel,'b',dmodel,'r',10) grid, legend('Kontinualni','ZOH Diskretizacija') dmodel=c2d(kmodel,0.3) subplot(312),step(kmodel,'b',dmodel,'r',10) grid, legend('Kontinualni','ZOH Diskretizacija') dmodel=c2d(kmodel,0.1) subplot(313),step(kmodel,'b',dmodel,'r',10) grid, legend('Kontinualni','ZOH Diskretizacija')
Analiza dinamičkih sistema u MATLAB-u
183
Objašnjenje rešenja:
Izvršenjem naredbe c2d za zadatu funkciju prenosa i tri različite
vrednosti periode odabiranja T1=1s, T2=0.3s, T3=0.1s metodom 'zoh'
dobijaju se sledeće diskretne funkcije prenosa, respektivno:
( )1 2
1.703 0.5574,
0.8928 0.3679d
zW z
z z
+=
+ + ( )2 2
0.7073 0.2614,
1.295 0.7408d
zW z
z z
−=
− +
( )3 2
0.2173 0.1605.
1.848 0.9048d
zW z
z z
−=
− +
Odskočni odzivi diskretnih modela upoređeni sa odzivom originalnog
kontinualnog modela, prikazani su na slici 4.17.
Slika 4.17 Odskočni odzivi kontinualnog i diskretnih modela
Praktikum za modeliranje i simulaciju dinamičkih sistema
184
4.11 LTI Viewer - grafički korisnički interfejs za analizu
dinamičkih sistema
U okviru MATLAB-a i njegovog Control System Toolbox-a
napravljen je poseban grafički interfejs namenjen analizi linearnih,
vremenski nepromenljivih sistema (LTI objekata). Taj interfejs se zove LTI
Viewer i u okviru njega je moguće generisati najvažnije vremenske i
frekventne odzive modela. Poziva se naredbom ltiview(model), gde model
predstavlja neki LTI objekat.
Neka je, na primer, definisan model sistema u prostoru stanja:
4 0.03 2
0.75 10 0
0 1
q q u
y q
− − = +
−
=
(4.16)
Sledećim nizom naredbi pravimo LTI model sistema i za njega pozivamo
LTI Viewer:
A=[-4 -0.03; 0.75 -10]; B=[2; 0]; C=[0 1]; D=[0]; model=ss(A,B,C,D); ltiview(model)
Nakon izvršenja naredbi, otvara se interaktivni prozor LTI Viewer-a kao na
slici 4.18. Treba primetiti da se, ukoliko se naredbom ltiview ne precizira
nešto drugo, automatski iscrtava odskočni (step) odziv modela.
Najbrži način da se u LTI Viewer-u dobije željeni odziv modela i da
se izvrši njegova osnovna analiza je korišćenjem menija koji se dobija
desnim klikom miša u okviru prozora (prikazano na slici 4.18). Taj meni
obuhvata sledeće opcije:
Plot Types – Bira se iscrtavanje jednog od ponuđenih grafikona: odskočni
odziv, impulsni odziv, odziv na proizvoljni ulaz, odziv autonomnog sistema
sa proizvoljnim početnim stanjima, Bodeov dijagram, Nikvistov dijagram,
Nikolsov dijagram, položaj polova i nula...
Systems – Vrši se selektovanje ili brisanje modela u slučaju da je više njih
učitano u LTI Viewer.
Characteristics – Daje dodatne informacije vezane za odgovarajući tip
grafikona koji je odabran. Na primer, ukoliko je izabran odskočni odziv,
ponuđene karakteristike su: maksimum odziva, vreme smirenja, vreme
uspona, ustaljeno stanje. Za Bodeov dijagram nemamo ponuđene sve ove
Analiza dinamičkih sistema u MATLAB-u
185
karakteristike, ali zato možemo, na primer, videti vrednosti za pretek
stabilnosti (pretek faze i pretek pojačanja).
Grid – Dodaje mrežu na grafikon.
Properties – Otvara se editor u kome je moguće dodatno prilagoditi
grafikon (naslovi, font ispisivanja, granice iscrtavanja...).
Slika 4.18 Prozor LTI Viewer
U prozoru LTI Viewer moguće je istovremeno posmatrati odzive više
različitih modela ukoliko se prozor pozove naredbom oblika
ltiview(model1,model2,model3,...). Takođe, moguće je istovremeno gledati
više različitih odziva istog sistema. Da bi se to ostvarilo, potrebno je izabrati
opciju Plot Configurations... iz menija Edit, a zatim odabrati broj i raspored
grafikona, kao i tip odziva koji će na njima biti iscrtani, kao na slici 4.19. Za
konkretne postavke na slici 4.19, dobija se se prozor sa odabranim odzivima
kao na slici 4.20.
Praktikum za modeliranje i simulaciju dinamičkih sistema
186
Slika 4.19 Konfigurisanje više grafikona u istom prozoru
Slika 4.20 Traženi odzivi sistema u istom prozoru
Analiza dinamičkih sistema u MATLAB-u
187
188
Literatura
1. Dragan Antić, Bratislav Danković, Modeliranje i simulacija
dinamičkih sistema, Univerzitet u Nišu, Elektronski fakultet, 2001.
2. Dragan Antić, Priručnik za modeliranje i simulaciju dinamičkih
sistema, Univerzitet u Nišu, Elektronski fakultet, 2006.
3. Charles M. Close, Dean K. Frederick, Jonathan C. Newell, Modeling
and analysis of dynamic systems, John Wiley and Sons, 2002.
4. Robert L. Woods, Modeling and simulation of dynamic systems,
Prentice Hall, 1997.
5. Devendra K. Chaturvedi, Modeling and simulation of systems using
MATLAB and Simulink, CRC Press, 2010.
6. Harold Klee, Simulation of dynamic systems with MATLAB and
Simulink, CRC Press, 2007.
7. Amos Gilat, Uvod u MATLAB sa primerima, John Wiley & Sons,
prevod Miljenko Šućur, Andon Kartalovski, Mikro knjiga, 2005.
8. Brian Hahn, Essential MATLAB for Scientists and Engineers,
Butterworth-Heinemann, 2002.
9. Čedomir Milosavljević, Osnovi automatike I deo, Elektronski
fakultet u Nišu, 2002.
10. Milić Stojić, Sistemi automatskog upravljanja, Elektronski fakultet u
Nišu, 2004.
11. Čedomir Milosavljević, Osnovi automatike, metodička zbirka
zadataka, Elektronski fakultet u Nišu, 1995.