praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/nastavni_materijal...jedanaest...

194
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.

Upload: others

Post on 02-Sep-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 2: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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š

Page 3: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 4: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 5: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 6: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 7: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 8: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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,

Page 9: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 10: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 11: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 12: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 13: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 14: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 15: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 16: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 17: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u
Page 18: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-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).

Page 19: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 20: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 21: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 22: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 23: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 24: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 25: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 26: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 27: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 28: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 29: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 30: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 31: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 32: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 33: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 34: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 35: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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):

Page 36: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 37: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 38: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 39: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 40: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 41: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 42: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 43: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 44: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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= = = = .

Page 45: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 46: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 47: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 48: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 49: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 50: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 51: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 52: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 53: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 54: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 55: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Modeliranje i simulacija dinamičkih sistema u Simulink-u

49

Slika 2.34 Modifikovani Simulink model sistema

Page 56: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Praktikum za modeliranje i simulaciju dinamičkih sistema

50

Slika 2.35 Rezultati simulacije za modifikovani slučaj

Page 57: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 58: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 59: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 60: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 61: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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= :

Page 62: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 63: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 64: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 65: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 66: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 67: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 68: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 69: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 70: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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:

Page 71: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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:

Page 72: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 73: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 74: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 75: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 76: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 77: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 78: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 79: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 80: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 81: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 82: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 83: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 84: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 85: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 86: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Praktikum za modeliranje i simulaciju dinamičkih sistema

80

Slika 2.58 Rezultati simulacije motora sa regulatorom

Page 87: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 88: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.:

Page 89: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 90: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 91: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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):

Page 92: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 93: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 94: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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= .

Page 95: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

+ = +

− − + − = − + − −

Page 96: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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,

Page 97: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 98: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 99: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 100: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 101: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 102: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 103: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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:

Page 104: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 105: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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:

Page 106: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 107: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 108: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 109: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Modeliranje i simulacija dinamičkih sistema u Simulink-u

103

Slika 2.73 Rezultati izvršenja programa

Page 110: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u
Page 111: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 112: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 113: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 114: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 115: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Priručnik iz Matlab-a

109

Slika 3.3 Korišćenje ugrađenih funkcija

Slika 3.4 Rad s promenljivama

Page 116: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 117: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 118: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 119: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 120: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 121: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Priručnik iz Matlab-a

115

Slika 3.8 Matematičke operacije s matricama

Slika 3.9 Operacije nad pojedinačnim elementima nizova

Page 122: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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:

Page 123: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 124: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 125: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 126: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 127: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 128: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 129: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 130: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 131: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 132: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 133: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 134: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 135: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 136: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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,

Page 137: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 138: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 139: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 140: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 141: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 142: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 143: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 144: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 145: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 146: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 147: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 148: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 149: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 150: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 151: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 152: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 153: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 154: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 155: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 156: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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)

Page 157: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 158: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u
Page 159: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 160: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 161: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-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.

Page 162: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Praktikum za modeliranje i simulaciju dinamičkih sistema

156

Slika 4.1 Rezultati u komandnom prozoru

Page 163: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 164: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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);

Page 165: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 166: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 167: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 168: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 169: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Analiza dinamičkih sistema u MATLAB-u

163

Slika 4.6 Deo rezultata u komandnom prozoru

Page 170: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 171: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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 ζ.

Page 172: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 173: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 174: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 175: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 176: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 177: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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).

Page 178: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 179: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 180: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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;

Page 181: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 182: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 183: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 184: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 185: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 186: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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];

Page 187: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 188: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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')

Page 189: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 190: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 191: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.

Page 192: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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

Page 193: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

Analiza dinamičkih sistema u MATLAB-u

187

Page 194: Praktikum za modeliranje i simulacijuautomatika.elfak.ni.ac.rs/files/Nastavni_materijal...jedanaest vežbi vezanih za analizu, modeliranje i simulaciju dinamičkih sistema u Matlab-u

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.