48
Softver za simulaciju dinamičkih sistema Potreba za simulacijom Analitički metodi su od male (skoro nikakve) koristi pri rešavanju praktičnih nelinernih problema modeliranja i simulacije. Na primer, analiti čki metodi su od male koristi ako induktivni element u električnom kolu ima jezgro od magnetnog materijala ili poseduje histerezis. Takođe, ako se u mehaničkom sistemu viskozni element zameni elementom sa suvim trenjem problem postaje nelinearan i eliminiše mogućnost primene standardnih matematičkih tehnika. U slučajevima kada su analitičke metode neprimenljive, jedini moguć pristup je primena nekih numeričkih tehnika ili korišćenje principa analogije. Princip analogije je veoma dugo, vrlo široko primenjivan za ispitivanje složenih nelinearnih fenomena. Tako na primer, lako mogu da se sastave električne mreže čija dinamika odgovara nekom fizičkom sistemu ili su njegov model. Rezultati istraživanja i odgovarajući zaključci, postignuti na osnovu simulacionih eksperimenata na električnoj mreži, mogu se zatim primeniti na istraživani sistem. Uspostavljanje analognog modela je relativno lako, za razliku od realizacije eksperimenata, koji bi, često, bili nemogući ili bar teško izvodljivi i dugotrajni u realnom sistemu. Primena digitalnih računara omogućila je široko korišćenje različitih numeričkih recepata opšte namene pri simulaciji dinamičkih sistema. Iako u principu bilo koji naučni programski jezik može da se koristi za rešavanje diferencijalnih jednačina, korišćenje simulacionog softvera specijalne namene može da eliminiše mnoge poteškoće vezane za pisanje simulacionog programa i može da bude od velike pomoći u mnogim praktičnim situacijama. Primena softvera specijalne namene je posebno pogodna kad se koristi na interaktivan način. On dozvoljava korisniku da usredsredi pažnju na model umesto da rešava probleme numeričkih izračunavanja kao i tehničke probleme pri dobijanju značajnih numeričkih rezultata. Simulacija je u osnovi proces eksperimentisanja sa matemati čkim modelima, a u svakoj eksperimentalnoj situaciji od velike je važnosti dobra interakcija između eksperimentatora i samog eksperimenta. Simulacioni softver za modele sa raspodeljenim parametrima, koji uključuje rešavanje parcijalnih diferencijalnih jednačina, je manje razvijen od onog namenjenog modelima sa skoncentrisanim parametrima koji uključuju obične diferencijalne jednačine. Metodi simulacije Simulacija može da se izvede korišćenjem uređaja specijalne namene ili korišćenjem digitalnog računara opšte namene. Oba ova pristupa su veoma važna, a usvojena simulaciona metodologija veoma zavisi od oblasti primene.

Softver za simulaciju dinamičkih sistema

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Softver za simulaciju dinamičkih sistema

Softver za simulaciju dinamičkih sistema

Potreba za simulacijom

Analitički metodi su od male (skoro nikakve) koristi pri rešavanju praktičnih

nelinernih problema modeliranja i simulacije. Na primer, analitički metodi su od male koristi

ako induktivni element u električnom kolu ima jezgro od magnetnog materijala ili poseduje

histerezis. Takođe, ako se u mehaničkom sistemu viskozni element zameni elementom sa

suvim trenjem problem postaje nelinearan i eliminiše mogućnost primene standardnih

matematičkih tehnika. U slučajevima kada su analitičke metode neprimenljive, jedini moguć

pristup je primena nekih numeričkih tehnika ili korišćenje principa analogije.

Princip analogije je veoma dugo, vrlo široko primenjivan za ispitivanje složenih

nelinearnih fenomena. Tako na primer, lako mogu da se sastave električne mreže čija

dinamika odgovara nekom fizičkom sistemu ili su njegov model. Rezultati istraživanja i

odgovarajući zaključci, postignuti na osnovu simulacionih eksperimenata na električnoj

mreži, mogu se zatim primeniti na istraživani sistem. Uspostavljanje analognog modela je

relativno lako, za razliku od realizacije eksperimenata, koji bi, često, bili nemogući ili bar

teško izvodljivi i dugotrajni u realnom sistemu.

Primena digitalnih računara omogućila je široko korišćenje različitih numeričkih

recepata opšte namene pri simulaciji dinamičkih sistema. Iako u principu bilo koji naučni

programski jezik može da se koristi za rešavanje diferencijalnih jednačina, korišćenje

simulacionog softvera specijalne namene može da eliminiše mnoge poteškoće vezane za

pisanje simulacionog programa i može da bude od velike pomoći u mnogim praktičnim

situacijama. Primena softvera specijalne namene je posebno pogodna kad se koristi na

interaktivan način. On dozvoljava korisniku da usredsredi pažnju na model umesto da rešava

probleme numeričkih izračunavanja kao i tehničke probleme pri dobijanju značajnih

numeričkih rezultata. Simulacija je u osnovi proces eksperimentisanja sa matematičkim

modelima, a u svakoj eksperimentalnoj situaciji od velike je važnosti dobra interakcija

između eksperimentatora i samog eksperimenta.

Simulacioni softver za modele sa raspodeljenim parametrima, koji uključuje rešavanje

parcijalnih diferencijalnih jednačina, je manje razvijen od onog namenjenog modelima sa

skoncentrisanim parametrima koji uključuju obične diferencijalne jednačine.

Metodi simulacije

Simulacija može da se izvede korišćenjem uređaja specijalne namene ili korišćenjem

digitalnog računara opšte namene. Oba ova pristupa su veoma važna, a usvojena simulaciona

metodologija veoma zavisi od oblasti primene.

Page 2: Softver za simulaciju dinamičkih sistema

Simulacione tehnike za računarske simulacije specijalne namene

Rani razvoj similacije dinamičkih sistema bio je baziran uglavnom na simulacionoj

opremi specijalne namene kao što je mehanički diferencijalni analizator. Ovaj tip mehaničkog

računarskog sistema obuhvatao je operacije koje su zasnovane u potpunosti na mehaničkim

principima. Na primer, operacija integracije bazirana je na činjenici da je ugaona pozicija

integral ugaone brzine. Iako je mehanički tip diferencijalnog analizatora bio glomazan i težak

za upotrebu, bio je primenjen za uspešno rešavanje nekih vrlo važnih problema, kako pre,

tako i posle drugog svetskog rata. Ranije objavljeni izveštaji o praktičnoj upotrebi ovog tipa

simulacionog računara opisuju njegovu primenu u predviđanju položaja cilja u mehanizmima

za nišanjenje i proračune performansi voza sa različitim teretima i pri različitim nagibima.

Razvoj analognog računara u periodu od 1945. do 1955. god. uslovio je razvoj i

ukazao na važnost istraživanja u oblasti simulacije. Uveden je hardver koji je bio dovoljno

pouzdan i precizan za rešavanje široke klase tehničkih problema. Primeri korišćenja

elektronskih analognih simulacionih metoda mogu se naći u mnogim izveštajima o

svemirskim projektima, o nuklearnoj industriji tog vremena, iz oblasti upravljanja hemijskim

procesima itd. Osnovna ideja pri primeni elektronskog analognog računara je da se električni

naponi i struje iskoriste za predstavljanje drugih fizičkih promenljivih u proučavanom

sistemu. Elektronski operacioni pojačavač može da formira blok koji ili izračunava

algebarsku sumu električnih veličina ili se ponaša kao integrator koji operiše sa električnim

veličinama koje su, opet, analogne realnim fizičkim promenljivama iz originalnog sistema.

Drugi elektronski elementi mogu da se ponašaju kao jedinice koje množe promenljive

konstantama ili formiraju proizvod dve promenljive. Slično, postoje aktivni elektronski

elementi koji izvršavaju zadatke kao što su deljenje jedne promenljive drugom, određivanje

kvadratnog korena, predstavljanje neke proizvoljne funkcije date promenljive ili

predstavljanje jednostavnih logičkih operacija kao što je upoređivanje jedne veličine sa

drugom. Unutrašnje veze između operacionih elemenata uspostavlja korisnik. Te veze

određuju sistem jednačina koji je predstavljen analognim modelom.

Pri projektovanju komercijalno dostupnih analognih računara pokazana je izvesna

genijalnost u obezbeđivanju pogodnog i odgovarajućeg korisničkog interfejsa. Naglasak je,

takođe, stavljen i na predstavljanje rezultata u grafičkom obliku. Jedna, vrlo važna, stvar u

vezi sa analognim računarom je da je taj sistem inherentno paralelan u pogledu svoje

unutrašnje organizacije. Pošto se sve operacije kao što su integracija, množenje ili sabiranje,

izvršavaju korišćenjem nezavisnih hardverskih elemenata, zasebni procesi, na osnovu kojih

se formira rešenje, izvode se istovremeno. Ukupna brzina simulacije ne zavisi od obima

problema, pa to daje analognom računaru značajne prednosti u pogledu brzine. Glavno

praktično ograničenje u pogledu brzine operacija kod analognog računara nameće ograničena

širina frekvencijskog opsega aktivnih elektronskih komponenti, kao što su operacioni

pojačivači. U principu, kada je analogni računar projektovan sa komponentama koje imaju

širok frekvencijski opseg, onda on pruža performanse u pogledu brzine kakve je teško dostići

čak i sa, najmoćnijim, danas dostupnim, digitalnim računarima.

Problem analogne simulacije leži u visokoj ceni hardvera i u činjenici da takvi

Page 3: Softver za simulaciju dinamičkih sistema

računari nemaju druge namene sem simulacije. Drugu teškoću koja je važna u nekim

oblastima primene predstavlja činjenica da je programiranje problema i priprema za analognu

simulaciju dugotrajno, relativno komplikovano i zahteva određenu veštinu. Pored toga,

relativno niska tačnost bila je važan faktor protiv upotrebe ove tehnologije za neke tipove

aplikacija.

S ciljem, da prevaziđu ograničenja analognih računara, proizvođači simulacionih

računara su rešili da pokušaju da kombinuju najbolje osobine konvencionalnih serijskih

digitalnih računara sa najboljim osobinama analognih sistema. To je dovelo do razvoja

hibridnog računara. Digitalni deo hibridnog sistema bio je korišćen za kontrolu operacija

simulacije u analognom delu sistema, za postavljanje i proveru analognih elemenata i za

obezbeđivanje mogućnosti za generisanje funkcija čistog kašnjenja i drugih operacija koje bi

bilo teško implementirati korišćenjem samo analognog hardvera. Principi hibridnih

proračuna doveli su do razvoja nekih veoma moćnih sistema od kojih su mnogi korišćeni u

vojnim industrijama.

Iako su analogni i digitalni računari prestali da budu važni kao sredstva simulacije

opšte namene, mali analogni sistemi još uvek mogu biti korisni u rešavanju problema

simulacije u realnom vremenu. To posebno važi za simulacione studije u okviru kojih realni

hardver i simulacioni model rade zajedno (integrisani su). Ovakve situacije često se javljaju

pri testiranju tehničkih sistema. Veoma dobar primer je provera digitalnih sistema upravljanja

koji sadrže digatalne procesore. Pre instaliranja, hardver i softver mogu biti inicijalno

testirani u laboratoriji korišćenjem simulacije. U ovakvim simulacijama interfejs između

upravljačkog sistema i simulacije na analognom računaru dozvoljava realistične provere i

eliminisanje grešaka u sistemu pre puštanja u rad. Slično, pri radu u laboratoriji mali analogni

računari (ili ekvivalentni elektronski hardver specijalne namene baziran na operacionim

pojačavačima) mogu da pruže jeftinu i fleksibilnu kontrolu ili izvođenje operacija

procesiranja signala kao što su multiplikacija signala ili filtriranje.

Vremenom, digitalni računari postajali su sve moćniji i jeftiniji. Došlo se do

specijalizovanih digitalnih sistema koji su imali arhitekturu specijalno projektovanu za

simulaciju. Ovo je omogućilo da se digitalne mašine koriste umesto analognih i hibridnih

računara za probleme simulacija u realnom vremenu, npr. za simulaciju leta letelice ili

projektila. Ovi specijalizovani digitalni sistemi mogu da budu značajno jeftiniji od velikih

konvencionalnih digitalnih računara, a takođe su i lakši za upotrebu i jeftiniji za održavanje

od većih hibridnih sistema.

Digitalni sistemi specijalne namene i dalje se koriste za neke simulacione primene.

Poslednjih godina učinjeni su znatni napori da se napravi odgovarajući softver koji

dozvoljava korisniku da potpuno eksploatiše potencijale ovakvih specijalizovanih sistema. Na

primer, Applied Dynamics International je proizveo seriju digitalnih sistema specijalne

namene za aplikacije u realnom vremenu i druge numerički intenzivne simulacione probleme.

Da bi se potpuno iskoristile raspoložive mogućnosti u pogledu brzine, hardverski sistem

specijalne namene zahteva softver visokog nivoa i specijalne namene. Mnoge visoko

specijalizovane aplikacije simulacija u realnom vremenu bazirane su na računarskim

Page 4: Softver za simulaciju dinamičkih sistema

sistemima kao što su ovi. Drugim problemima u realnom vremenu, kao što je simulacija

upravljanja letom, takođe je pristupljeno korišćenjem multiprocesorskih arhitektura baziranih

na konvencionalnom računarskom hardveru.

Simulacione tehnike za računarske simulacije opšte namene

Neka od najranijih dostignuća u tehnologiji digitalnih računara, bila su povezana sa

problemima koji bi se danas smatrali simulacionim primenama. ENIAC, računar američke

vojske, korišćen je u kasnim četrdesetim za rešavanje problema balistike, a Project

Whirlwind računar na MIT-u je razvijen za simulaciju letelica. Proračuni u ovim mašinama

bili su ekstremno spori. Važno je zapaziti da je prva generacija analognih računara mogla da

simulira avione i projektile u realnom vremenu, a digitalni računari nisu mogli da dostignu taj

nivo ni posle 10 godina. Dalji razvoj tehnologije digitalnih računara doveo je do značajnog

poboljšanja u pogledu brzine, a pojava viših programskih jezika kao što je FORTRAN,

učinila je digitalne računare mnogo pristupačnijim za potrebe simulacije.

Problemu programiranja može se prići na više načina, uključujući i osnovno kodiranje

na višim programskim jezicima opšte namene kao što su FORTRAN, PASCAL ili C. Drugi

način je da se piše program na jeziku opšte namene, ali s tim da se što je više moguće koriste

odgovarajuće biblioteke sa potprogramima za standardne numeričke metode. Važna olakšica

pri korišćenju dobro ustanovljene potprogramske biblioteke je to što su rutine za numeričke

metode dobro dokumentovane. Stečeno je veliko iskustvo u korišćenju ovih biblioteka za

mnoge tipove aplikacija. Ako se raspoložive rutine koriste pažljivo i u okviru svojih

ograničenja, one pružaju dosta efikasna i efektivna sredstva za generisanje simulacionih

programa korišćenjem viših programskih jezika opšte namene. Ovaj pristup je korišćen u

nekim simulacionim paketima specijalne namene. Oni se sastoje od biblioteke rutina koje se

obično zahtevaju za simulacione aplikacije. Korisnik mora da glavnom programu, koji

definiše model i eksperiment, obezbedi odgovarajući poziv numeričkih potprograma kada je

to potrebno.

Simulacioni jezici razlikuju se od prethodno opisanih simulacionih paketa po tome što

oni obuhvataju kodiranje na višem nivou. Simulacioni jezik treba da omogući korisniku

pisanje simulacionog programa korišćenjem prirodne forme namenski orijentisanog jezika.

Pored toga, treba da obezbedi za korisnika mnogo pogodniju formu okruženja nego što je to

moguće kada nestručni programer koristi programski jezik opšte namene i pridružene

biblioteke.

Razvoj specijalizovanog softvera za digitalne računare opšte namene počeo je kao

svestan pokušaj da se na digitalnim mašinama predstave osnovne operacije koje su moguće

na analognim računarima. Prvi pokušaj da se napravi softver sposoban da izvrši digitalne

simulacije bio je DAS a zatim je sledio MIDAS. Brennan i Linebarger pružili su veoma

zanimljiv pregled ovih ranih dostignuća u simulacionom softveru. Ovi softveri bili su

uglavnom blokovski orijentisani. Korisnik je sastavljao program da bi na digitalnoj mašini

predstavio funkcionisanje dijagrama ekvivalentnog analognog računara koji je pokazivao

veze između operacionih jedinica.

Page 5: Softver za simulaciju dinamičkih sistema

MIMIC je bio prvi jezik koji je raskinuo sa blok-orijentisanom tradicijom i usvojio

jednačinski orijentisan format. To su, s nekim varijacijama, pratili mnogi drugi jezici. Ovaj

pristup uključio je definisanje simulacionog modela direktno na osnovu diferencijalnih

jednačina polaznog matematičkog modela. 1967. godine Society for Computer Simulation, u

to vreme poznato kao Simulation Councils Inc. objavio je predlog standarda za simulacione

jezike, što je stvorilo osnovu za mnoga kasnija dostignuća.

Mnogi od prvih softvera su bili serijiski orijentisani (batch oriented) i relativno

nepogodni za korišćenje u simulacionom okruženju. Bilo je malo mogućnosti za interakciju

sa simulacionim problemom u toku izvršvanja na računaru. Predstavljanje rezultata bilo je u

najboljem slučaju u vidu jednostavnog grafa koji je obično morao da se definiše pre početka

izvršavanja simulacije.

Razvoj personalnih računara i radnih stanica značajno je promenio situaciju u pogledu

veze korisnik-računar i omogućio je interaktivnu digitalnu simulaciju. Dostupnost Windows

okruženja i mišem vođenih softvera, doveo je do revitalizacije blok-orijentisanih metoda kao

alternative jednačinski orijentisanom pristupu. Korišćenje modernih postprocesing tehnika

takođe nudi više fleksibilnosti pri prezentaciji grafičkih rezultata na personalnom računaru,

nego što su to pružali rani simulacioni jezici na velikim mainframe računarima. Prelaz sa

mainframe sistema i više korisničkih (multiuser) miniračunara na personalne sisteme je,

prema tome, doneo velike olakšice u pogledu efikasne interakcije između korisnika i

simulacionog problema.

Danas je opšte prihvaćeno da dobro simulaciono okruženje treba da omogući da se

modeli brzo i lako formiraju i modifikuju, kao i da dozvoli efikasno interaktivno

eksperimentisanje. Treba da bude sposobno da oslobodi sastavljače i korisnike simulacionih

modela od detaljnog programiranja i da im dozvoli da usmere pažnju na model i njegovo

ponašanje. Dobar softverski sistem treba da bude pogodno oruđe za korisnike na različitim

nivoima iskustva i stručnosti.

Dobar simulacioni softver treba da obezbedi brz odziv tastature, brzo prevođenje

programa i brzo rešavanje jednačina modela. Svako prekomerno kašnjenje u fazi prevođenja

ili u vremenu izvršenja može značajno da smanji produktivnost računarskog sistema i

njegovog korisnika i da ima loš uticaj na kreativnost korisnika. Iz tog razloga, moderne

samostalne radne stanice i personalni računari (posebno kad su opremljeni numeričkim

koprocesorom), često pružaju mnogo efektnije okruženje za interaktivnu simulaciju od

višekorisničkih time-sharing računarskih sistema.

U vezi sa simulacionim jezicima i paketima opšte namene razvijen je značajan broj

softverskih oruđa specijalne namene za posebne oblasti primena. Tu spadaju softveri za

simulaciju električnih i elektronskih kola, softver za simulaciju hemijskih procesa, softver za

simulaciju sistema za distribuciju električne energije, sofver za hidraulične sisteme itd.

Page 6: Softver za simulaciju dinamičkih sistema

Pregled primena simulacije

Već je istaknuto da se simulacija može posmatrati kao proces eksperimentisanja sa

matematičkim modelima. To važi kako za naučne tako i za inženjerske primene. U obe ove

oblasti simulacione tehnike su naročito korisne kada su modeli nelinearni ili treba da se

koriste u realnom vremenu. U takvim slučajevima korišćenje numeričkog ili analognog

rešavanja gotovo da nema alternativu.

Primene simulacije su veoma raznovrsne. Usvojeni pristup zavisi od ciljeva i namene

ispitivanja. Na primer, modeli korišćeni u naučnim ispitivanjima su često razvijeni kao

pomoć u testiranju hipoteza ili kao sredstvo za izražavanje svog raspoloživog znanja o

svojstvima složenog dinamičkog sistema na sažet i dosledan način. Proces formiranja

simulacionog modela može takođe da osvetli praznine u postojećem znanju i da dovede do

potrage za dodatnim informacijama. Korisno je da se napravi razlika između izvršenja

simulacije (simulation run), što je termin za opisivanje jednog rešenja jednačina modela i

simulacione studije u kojoj je izvršeno nekoliko simulacija na osnovu čijih rezulatata je

izvedena dalja analiza. Moderni komercijalni simulacioni softverski sistemi se sve više

projektuju tako da omogućavaju simulacione studije. Ti sistemi imaju moćan post-procesing i

opcije za grafičku prezentaciju koje su ili raspoložive ili mogu da se povežu na odgovarajući

pomoćni paket za analizu i projektovanje. Simulacione studije mogu da se bave npr.

optimizacijom modela, ispitivanjem osetljivosti, utvrđivanjem efekata promene parametara,

ili ispitivanjem uslova pod kojima model postaje nestabilan. Iako su ovakve studije često

numerički intenzivne i zahtevaju veliku brzinu reagovanja za ma koje interaktivno ispitivanje,

rezultati dobijeni manipulisanjem sa simulacionim modelom pružaju informacije kakve se ne

mogu dobiti iz konvencionalnog eksperimenta.

Od simulacije se može zahtevati i da uporedi moguće eksperimentalne strategije ili

da pomogne u postavljanju eksperimenta u realnom sistemu s ciljem da se maksimizira

sadržaj informacija u izvučenim podacima. Iz ovako optimiziranih eksperimenata moguće je

izvući nove informacije koje se mogu inkorporirati u poboljšani model i prema tome

obezbediti simulacione rezultate koji su u većoj saglasnosti sa realnošću.

Pri primeni u tehničkom projektovanju, simulacija ima ulogu koja je često

prediktivna. Simulacija može da se koristi zato što na primer nema mogućnosti za

eksperimentisanje na realnom sistemu. To može da se desi zato što je sistem još uvek u fazi

projektovanja ili zato što eksperiment nije dozvoljen zbog operativnih zahteva i bezbednosnih

ograničenja.

U oblasti sistema automatskog upravljanja ima mnogo dobrih primera inženjerskih

primena u kojima simulacija ima centralnu ulogu u okviru procesa projektovanja. Sistemi

upravljanja su obično projektovani na osnovu linearizovanih modela koji su validni samo za

određene radne uslove. Procena ponašanja, s druge strane, zahteva ispitivanje ponašanja

kompletnog sistema upravljanja van opsega radnih uslova. To je neophodno da bi se

procenila globalna robustnost upravljačkog sistema i da bi se izvršila predviđanja u vezi s

ograničenjima.

Page 7: Softver za simulaciju dinamičkih sistema

Projektovanje sistema za upravljanje leta helikoptera je zanimljiv primer u kome se

dinamika letilice menja sa uslovima leta. Upravljački sistem, projektovan na bazi

linearizovanog modela letilice s ciljem da ispuni posebne zahteve u pogledu lateralnog i

longitudinalnog dinamičkog odziva u vazduhu, mogao bi da ima sasvim drugačije ponašanje

za ubrzani let napred. Da bi u ovakvim slučajevima moglo da se preduzme ispitivanje

ponašanja sistema, obično nije dovoljno da se upravljački sistem testira serijom njegovih

linearizovanih modela. Jasno, novi linearizovani model mogao bi da se koristi za svaki uslov

leta. Projektant bi mogao da dobije informacije o robustnosti kompletnog sistema na osnovu

linearne analize primenjene u svakoj tački. Ipak, rezultati bi obezbedili informacije samo o

dinamici kompletnog sistema za male perturbacije svakog nominalnog uslova leta. Često se

dešava da nekoga zanima odziv kada deluju relativno velike smetnje ili relativno visoki

upravljački signali. Projekat bi mogao da se prouči jedino korišćenjem nelinearnog

simulacionog modela. U slučaju helikopterske aplikacije, nelinearna simulaciona studija bi

uključila procene izvršene korišćenjem metoda rada u realnom vremenu.

Simulacioni modeli imaju još jednu primenu koja je važna u tehnici i mnogim drugim

oblastima. Ova primena odnosi se na obrazovanje i osposobljavanje. Mnogi sistemi su i

dinamički i složeni pa ih je teško razumeti na osnovu pisanih opisa ili eksperimentalnih

rezultata. Ako se simulacija dobro isplanira i izvede paralelno sa eksperimentalnim

istraživanjima, može da obezbedi detaljno razumevanje tamo gde druge metode, korišćene

samostalno, imaju ograničen domen. Na primer, fiziološki sistemi su i složeni i dinamički.

Simulacioni model fiziološkog sistema, koji je adekvatno testiran i prihvaćen kao

verodostojna reprezentaciija, može prema tome da se koristi kao obrazovno sredstvo.

Studenti mogu da menjaju model, često na način koji bi bio nemoguć korišćenjem

konvencionalnih eksperimentalnih metoda i da odmah posmatraju šta se dešava. Danas se

mogu naći mnogi primeri simulacije u medicini.

Formiranje simulacionih modela

Pravilno korišćenje dostupnih informacija o sistemu i svih pridruženih matematičkih

modela je od velike važnosti i prvi je korak u razvoju simulacionog eksperimenta. Ove

informacije treba da omoguće formiranje opisa koji uzima u obzir cilj i način organizovanja

simulacionog eksperimenta. Podaci koji će biti korišćeni pri definisanju parametara

simulacionog modela moraju biti u potpunosti određeni jer će rezultati simulacije u velikoj

meri zavisiti od dozvoljenih grešaka integracionog algoritma kao i drugih neodređenosti

povezanih sa numeričkim vrednostima ovih veličina. Ako su parametri modela samo 20%-

30% poznati, onda nema svrhe zahtevati rezultate simulacije sa visokim stepenom tačnosti.

Ovakva pažljiva procena izvora podataka takođe obezbeđuje da se rano uoče propusti i

nedoslednosti. Ovim se omogućava preduzimanje koraka za dobijanje novih informacija ako

je to neophodno i to bez odlaganja razvoja računarske implementacije.

Postoji niz formi za predstavljanje modela na papiru. Sistemi običnih diferencijalnih

jednačina i algebarskih jednačina su od centralne važnosti za dinamičke modele sa

skoncentrisanim parametrima. Ipak, postoje brojne druge forme opisivanja koje se obično

koriste. One se moraju razumeti da bi se omogućilo najefikasnije korišćenje raspoloživih

Page 8: Softver za simulaciju dinamičkih sistema

matematičkih i simulacionih sredstava. Tu spadaju blok-dijagrami, grafovi toka signala i

bond grafovi. Svi oni, na neki način, definišu izvršenje matematičkih operacija i redosled

kojim se informacije moraju obrađivati. U slučaju linearnih modela i podmodela, funkcije

prenosa pružaju prirodniju formu deskripcije nego li ekvivalentan sistem običnih

diferencijalnih jednačina. Izabrani oblik opisivanja značajno zavisi od oblasti primene

simulacije i od opšte prihvaćenih konvencija u toj oblasti. Nekoliko uobičajenih tipova

deskripcija biće predstavljeno u ovom poglavlju.

Kada se uspostave opšti i specifični ciljevi istraživanja i kada se donesu odluke u

pogledu željene tačnosti simulacionih rezultata, proces razvoja simulacionog programa može

da počne. Obično se polazi od sistema diferencijalnih jednačina ili od pripreme ekvivalentnog

simulacionog modela dijagramskog tipa. Jednačine i dijagrami moraju biti prethodno zapisani

tako da sadrže što je moguće više detalja. Zavisno od tipa primene poželjno je i pogodno

učiniti značajne pojednostavljenja u završnoj fazi razvoja simulacionog modela. Ipak treba

uvek imati na umu da podaci koji su namerno izostavljeni iz matematičkog modela u bilo

kojoj fazi procesa razvoja simulacionog modela, možda, kasnije, moraju biti ponovo ubačeni,

ako se jave problemi pri proveri i validaciji modela. Pažljiva procena i dokumentacija

pojednostavljenja učinjenih u početnim fazama razvoja modela može kasnije biti od velikog

značaja.

Važno je shvatiti da uvek postoji mnogo načina za rešavanje datog simulacionog

problema. Takođe je važno izabrati dobar pristup. Na primer, kada se radi sa određenim

matematičkim modelom, nekada može biti korisno da se preuredi oblik jednačina modela da

bi se učinile pogodnijim za računarsko rešavanje. Poznato je da su neke forme modela

pogodne za upoznavanje problema zato što su rešenja preosetljiva na male promene izvesnih

parametara modela. Transformacija modela u drugu, matematički ekvivalentnu, formu, može

u dobroj meri da redukuje takve probleme osetljivosti. Sposobnost da se unapred uoče ovakvi

problemi spada u domen umeća simulacije. Ovakve veštine se najbolje uče kroz praktično

iskustvo ali neke i od teškoća koje se mogu ubrojiti u praktične simulacione probleme.

Algoritmi za numeričku integraciju implementirani u softver za simulaciju dinamičkih

sistema (tipovi ODE solvera)

Naučno-tehnološki razvoj uslovio je potrebu za simulacijom raznorodnih problema,

što je za posledicu imalo razvoj impozantnog broja različitih integracionih algoritama.

Međutim, kod komercijalnih programskih paketa za simulaciju dinamičkih sistema

implemetiraju se samo neki, opšte poznati i najčešće korišćeni.

Jednostavan za razumevanje, primenjivan za neke brze provere i polazne simulacije,

je Eulerov algoritam. Ovaj sveprisutan i računski nezahtevan algoritam je najmanje

komplikovan od svih. Posmatrajmo jednačinu

Page 9: Softver za simulaciju dinamičkih sistema

,yy

xf x y

d

d

koja ima rešenje y0 pri x0 . Vrednost zavisne promenljive y1 pri x1 se može predstavti

beskonačnim Tajlorovim redom

y y hy h y h y h y1 0 0

1 202 3

03 4

041

2

1

3

1

4

! ! !

gde je h x x 1 0 i y y xn n n0 d d/ izračunato pri x x 0. Postavlja se pitanje kada treba

izvršiti odsecanje, tj., gde odakle treba započeti zanemarivanje članova beskonačnog niza.

Eulerov originalni metod ignoriše sve članove Tajlorovog niza koji sadrže drugi ili viši

stepen od h , tako da je

y y hy1 0 0

1

i zato predviđena vrednost zavisne promenljive y1 zavisi od greške

1

2

1

3202 3

03

! !h y h y

koja se javlja u svakom koraku numeričkog rešenja. Za vreme izračunavanja (trajanja

simulacije), javlja se akumulacija dodatno uvećane netačnosti i greške odsecanja dok se

izračunavaju uzastopni članovi (h2 , h3 , itd.). U Eulerovom metodu, koji je upotrebljen ovde,

u jednom koraku integracije izračunavanje se vrši samo jednom pa je odatle proistekao izraz

jednokoračni algoritam. Eulerova formulacija predstavlja algoritam prvoga reda. U više

formalizovanom prilazu, ako xn* označava aproksimaciju rešenja x u tački t tn , onda je

Eulerov algoritam rekurzivna procedura za 0,1,2,...x tako da je

x x0 0*

x x hf x tn n n n 1* * * ,

gde h označava datu dužinu koraka integracije koja je definisana rekurzivnom operacijom

t t hn n 1 .

Funkcija f se računa samo jednom u svakom koraku te odatle naziv algoritam prvog reda.

Eulerov algoritam uvek konvergira, mada sporo. Spora konvergencija podrazumeva

da se h mora izabrati veoma malo da bi se dobila razumna tačnost. Što je manje h , to je veći

broj tn tačaka (koraka) unutar fiksnog intervala, što ukazuje na redukciju brzine

izračunavanja. Eulerov algoritam je od velikog konceptualnog i nastavnog značaja jer može

da posluži kao polazna osnova za shvatanje drugih integracionih metoda. Ovaj metod nije

uključen (čak ni spomenut) u nekim simulacionim jezicima. Neki jezici ga uključuju ali ga ne

preporučuju, kao u slučaju MATRIXx. TUTSIM, međutim, predlaže svoj EUL integrator

blok kao superiorniji nad INT (drugi-red Adams-Boshforth) blokom za diskontinualne ili

Page 10: Softver za simulaciju dinamičkih sistema

naglo promenljive ulaze, jer je koncipiran da daje bolje rezultate u regionu diskontinuiteta. Za

simulaciju sistema sa naglom promenom svoje dinamike, diskontinuitetima ili "stiff" sistema

neophodna je primena specijalizovanih integracionih algoritama.

Backward Eulerov integracioni algoritam je neposredno proširenje osnovne foreward

Eulerove metode. Ovaj algoritam ne postaje nestabilan za veće odnose intervala integracije

(koraka integracije) i vremenske konstante. Nikada nije numerički nestabilan za razliku od

osnovnog Eulerovog metoda ili čak metoda Runge-Kutta drugog reda, koji se kasnije

razmatra. To je najprostiji mogući implicitni algoritam integracije. U osnovi, implicitan

sistem je onaj koji sam definiše sebe: u slučaju implicitne (beckward) Eulerove metode, izvod

stanja se računa u nekoj novoj tački umesto u tački pre nje. Implicitne jednačine moraju biti

postavljene kao sistem algebarskih jednačina koje se ne mogu individualno rešavati. Kod

linearnih sistema se Gaussov eliminacioni metod može primeniti. Kada je sistem jednačina

nelinearan primenjuje se Newtonov metod (ili neki drugi metod za implicitno rešavanje.

Modifikovan Eulerov (ili Eulerov prediktor-korektor) metod kombinuje eksplicitne i

implicitne forme u prediktor-korektor režimu, što rezultuje većom tačnošću. Trapezoidni

metod je takođe jednostavan implicitni algoritam koji je tačniji od oba Eulerova metoda.

Pored Eulerove metode i familija Runge-Kutta algoritama su od velikog značaja.

Prvo, Runge-Kutta metod drugog reda (ili modifokovani Eulerov metod) se može tretirati kao

poboljšanje Eulerovog metoda, zato što ovaj metod uklapa trapeze ispod krive koja

predstavlja rešenje, umesto pravougaonika. Funkcija se izračunava dvaput u svakom koraku

po jednačinama

k hf x tn n1 * ,

k hf x k t hn n2 1 * ,

tako da je

x x k k O hn n 1 1 231

2

1

2* *

gde je O h3 lokalna greška odsecanja. Runge-Kutta algoritmi su se javili u periodu 1895-

1901, a formirali su ih C. Runge, W. Kutta i K. Heun. Originalna formulacija i njene razne

varijante se mogu shvatiti kao poboljšanja Eulerovog algoritma. Runge-Kutta metod drugog

reda je implementiran u mnogim simulacionim jezicima i programskim paketima za

simulaciju. Klasični Runge-Kutta algoritam četvrtog reda zahteva četiri izračunavanja u

jednom koraku integracije prema jednačinama

k hf x tn n1 * ,

k hf x k t hn n2 1

1

2

1

2

* ,

k hf x k t hn n3 2

1

2

1

2

* ,

Page 11: Softver za simulaciju dinamičkih sistema

k hf x k t hn n4 3 * ,

tako da je

x xk k k k

O hn n 11 2 3 4 5

2 3 3 6* *

Takođe postoje verzije Runge-Kutta algoritma sa fiksnim i adaptivnim (promenljivim)

korakom integracije. Algoritmi sa fiksnim korakom su primenjivani kod programskih paketa

kao što su: ACSL, ESL, MATRIXx, VisSim, itd. SIMULINK nudi Runge-Kutta metod trećeg

reda sa promenljivim korakom. Interesantno je da se svaki metod sa promenljivim korakom

može konvertovati u metod sa fiksnim korakom jednostavnim izjednačavanjem minimalne i

maximalne veličine koraka. Mogućnost promenljivog koraka se takođe nalazila u Runge-

Kutta-Merson algoritmu koji je ugrađen u MIDASS III iz 1966. godine (jednokoračni metod).

Runge-Kutta-Merson metod sa fiksnim korakom dodaje i peto izračunavanje u jednom

koraku, i smatra se poboljšanjem metoda četvrtog reda sa malim gubitkom brzine

izračunavanja. Adaptivni Runge-Kutta metod petog reda je takođe često implementiran u

simulacioni softver i vrlo koristan pri simulaciji problema sa diskontinuitetima. Adaptivni

algoritmi zahtevaju specifikaciju minimalne i maksimalne veličine koraka integracije (pored

ostalih parametara). U ACSL-u je implementiran promenljivi Runge-Kutta-Fehlberg

algoritam petog reda, koji se takođe pokazao efikasnim pri simulaciji diskontinualnih

problema.

Kod jednokoračnih metoda, rešenje obične diferencijalne jednačine se dobija u

sledećem vremenskom trenutku t t0 d počinjajući od t0 i oslanjajući se samo na rešenje

stanja iz trenutka t0 . Višekoračni metodi se oslanjaju na memorisana stanja rešenja iz

prethodnih vremenskih trenutaka. Višekoračni algoritmi mogu biti sa fiksnim ili promenljivim

korakom integracije. Metodi sa promenljivim korakom variraju dužinu koraka u zavisnosti od

izračunate lokalne greške.

Neki metodi sa promenljivim korakom koriste prediktor/korektor tehnike. Takav je

Adams-Moultonov algoritam, implementiran u nizu programskih paketa za simulaciju i

Adamsov algoritam iskorišćen na primer u ESL. Ovi algoritmi su projektovani za maksimalne

performanse kod tzv. nestiff, glatkih problema sa kontinualnim višim izvodima. Adamsov

metod ima istu kontrolu veličine koraka i karakteristike kao Gearov algoritam korišćen kod

stiff sistema. Međutim, za razliku od Gearovog algoritma, ovaj algoritam nije ograničen

restartovanjem pri diskontinuitetima. Adams-Moultonov kod ACSL i Adamsov kod ESL

algoritmi su, pored ostalih, algoritmi sa promenljivim redom.

Dok metodi sa fiksnim redom (fixed-order methods) uvek rade sa istim brojem

prethodnih tačaka (a samim tim sa istim brojem izvoda odgovarajućeg reda) po

izračunavanju, metode sa promenljivim redom (variable-order methods), koristeći

informacije o promenama oblika funkcije, podešavaju broj prethodnih tačaka i izvoda

odgovarajućeg reda. DASSL (Differential-Algebraic Stiff System Solver), koji je primenjen

kod MATRIXxa, je još jedan metod sa promenljivim korakom i redom. Gearovi algoritmi

Page 12: Softver za simulaciju dinamičkih sistema

korišćeni u ACSL, ESLov GEAR1, GEAR2 i STIFF2 algoritmi, tri metoda Gear Predictor-

Corrector i implicitni Eulerov metod kod VisSima se koriste za stiff sisteme.

Konačno, značajna pažnja se treba posvetiti diskontinuitetima, kao i njihovom uticaju

na integracione algoritme. Diskontinuiteti prouzrokuju skokovite promene jedne ili više

promenljivih stanja simulacionog modela, njihovih prvih ili viših izvoda. Neke nelinearnosti

(limiteri, zone neosetljivosti, relejne funkcije, itd.) spadaju u ovu kategoriju. Diskontinuiteti

mogu prouzrokovati beskonačne izvode. Diskontinuiteti tipa step-funkcije koji utiču na druge

ili više izvode nisu toliko kritični kao oni koji utiču na kordinate stanja i njihove prve izvode.

Ipak, pojavom diskontinuiteta unutar integracionog koraka onemogućuje se reprezentacija

step funkcije Tajlorovim nizom, a samim tim i integracioni algoritam koji se koristi.

Specijalne tehnike i algoritmi se mogu upotrebiti; ESL se karakteriše njegovim sofisticiranim

mehanizmom kontrole diskontinuiteta koji ih tačno detektuje i locira.

Kod ESL, diskontinuitetima nije dozvoljeno da nastanu unutar integracionog koraka,

već samo između koraka. Primenjen je veoma razvijen upravljački algoritam koji štiti

integracionu rutinu od unutarkoračnih diskontinuiteta. MATRIXx preporučuje Kutta-Merson

metod promenljivog koraka čuvanje nelinearnih i diskontinualnih izvoda (odlične

performanse ovog algoritma su dobijene difoltnim integracionim algoritmom u SystemBuild).

Runge-Kutta-Fehlbergovi algoritami u ACSL, koji su već pomenuti, ne koriste prethodnu

informaciju pri određivanju veličine tekućeg koraka. Umesto toga, metoda počinje iznova

svakog koraka, tako da tretira diskontinuitete sa malim teškoćama. Konačno, VisSim

predlaže adaptivni Runge-Kutta algoritam petog reda.

Principi numeričkog modeliranja

Upoznavanje sa metodima numeričke integracije

Rešenje diferencijalne jednačine dobija se primenom matematičkih operacija koje

podrazumevaju integraciju. Da bi se rešenje dobilo korišćenjem digitalnog računara,

analitički proces integracije mora biti zamenjen numeričkom metodom koji daje

aproksimaciju pravog rešenja. Kontinualna promenljiva x koja je funkcija nezavisne

promenljive t (vreme) u digitalnoj simulaciji se predstavlja nizom brojeva ili odbiraka

x x x xn0 1 2, , ,..., . Ovi odbirci definišu promenljivu x i u pogledu veličine i u pogledu znaka u

trenucima t t t tn0 1 2, , ,..., . Za većinu primena može se pretpostaviti da su ovi odbirci

ravnomerno vremenski raspoređeni. Jasno je da, ako je korak integracije veći, gubitak

informacija je veći. Dakle, veličina koraka integracije, h, utiče na veličinu greške pri

numeričkoj integraciji. Izbor koraka h mora da zavisi od dinamičkih karakteristika

istraživanog sistema.

Posmatrajmo diferencijalnu jednačinu prvog reda

Page 13: Softver za simulaciju dinamičkih sistema

dx

dtt ax t bu t( ) ( ) ( ) (1)

U ovom slučaju, promenljiva sa leve strane jednačine koja integracijom daje x(t), funkcija je

od x(t). Ako je poznata vrednost x u trenutku t0 , tada je vrednost u trenutku t0 + h data kao

x t h x tdx

dtdt

t

t h

( ) ( )0 0

0

0

(2)

Na osnovu ove jednačine vidi se da je određivanje integralnog člana moguće ako su poznati i

x( t0 ) i x( t0 + h). Tehnike numeričke integracije bazirane su na aproksimacijama koje

dozvoljavaju prevazilaženje ovih problema i omogućuju da se sledeća vrednost promenljive

x x t h0 odredi korišćenjem samo tekuće vrednosti promenljive x t .

Postoji niz različitih metoda numeričke integracije koji su pogodni za rešavanje

običnih diferencijalnih jednačina pa prema tome i za simulaciju dinamičkih sistema. Neki od

njih su veoma jednostavni u pogledu numeričkih recepata koje koriste i daju relativno grube

aproksimacije. Drugi metodi su potencijalno mnogo tačniji ali ova dodatna numerička tačnost

postiže se uz dodatne zahteve.

Jedna od posledica korišćenja složenijih metoda integracije je povećana tendencija ka

ispoljavanju numeričke nestabilnosti. To znači da numerički algoritam teži da postane

nestabilan za odabrani korak integracije iako je priloženi matematički model potpuno

stabilan. Čak i ako je tehnika stabilna, za odabrani korak integracije može ipak biti problema

u pogledu vremenskog ponašanja numeričkog algoritma, čime se poništavaju prednosti

visoke tačnosti. Drugi i mnogo očigledniji nedostatak korišćenja komplikovanijih

integracionih algoritama tiče se vremena računanja. Kod računara sa konvencionalnom

arhitekturom tj. onih sa serijskim procesiranjem komplikovaniji algoritmi zahtevaju više

procesorskog vremena za svaki korak. Zato se, često, može javiti potreba za jednostavnim

algoritmom, iako je manje tačan, ako je vreme kritično i ako se zahteva brza dinamika.

Pri izboru metoda za rešavanje datog problema u obzir se moraju uzeti brojni faktori.

Jedno od očiglednih pitanja koje treba razmatrati je, da li dužina koraka integracije treba da

bude fiksna ili promenljiva. Neki integracioni algoritmi sami biraju veličinu koraka

integracije zato što vrednost h koja je zadovoljavajuća u jednom vremenskom intervalu može

biti loša u drugom. Za druge tipove aplikacija, kao što je simulacija u realnom vremenu,

mogu se javiti dobri razlozi za izbegavanje ovakvih metoda.

Opšta klasifikacija integracionih metoda, koji se koriste u simulaciji, tiče se trajanja

broja operacija sabiranja koji je sadržan u procesu integracije. S jedne strane, algoritam koji

zahteva samo x t( )0 i u t( )0

za izračunavanje desne strane jednačine (2) i tako obezbeđuje

procenu x t h( )0 je poznat kao "eksplicitan metod". S druge strane, tehnika po kojoj se

x t h( )0 javlja na desnoj strani izraza, zadaje više poteškoća i nazvana je "implicitan

metod".

Page 14: Softver za simulaciju dinamičkih sistema

Integracioni algoritmi sa fiksnim korakom: višekoračni metodi

Poboljšan Eulerov metod, koji je ukratko opisan, obuhvata dvokoračni proces u

okviru koga se vrši procena sledeće tačke pa se ova procena naknadno koriguje. Postoje i

drugi tipovi višekoračnih integracionih tehnika a njihovo zajedničko ime je prediktor-

korektor metodi. Kod svih njih mi prvo "predvidimo" vrednost x u sledećem trenutku a zatim

koristimo različite izraze za "korigovanje" ove procene. Da bi se poboljšala korigovana

vrednost proces korekcije može da se primeni više puta.

Postoji više različitih višekoračnih formula. k-koračna metoda koristi vrednosti

zavisno promenljive i njenih izvoda u k različitih vremenskih trenutaka pa, prema tome,

zahteva informacije iz prethodnih tačaka. To znači da ne postoji mogućnost otpočinjanja

integracionog procesa pa se za startovanje izračunavanja mora koristiti neka druga tehnika.

Za startovanje prediktor-korektor algoritma često se koristi Runge-Kutta metod.

Ima nekoliko višekoračnih metoda koji su potvrdili svoju pogodnost za simulaciju

kontinualnih sistema u realnom vremenu. Tu spadaju Adams-Bashforth i Adams-Moulton

metod. Prvi je eksplicitni višekoračni metod za koji se može pokazati da je za svaki korak

potrebna samo jedna procena funkcije bez obzira na vrednost k . Drugi je implicitan

višekoračni metod ali ima veću tačnost od ekvivalentnog Adams-Bashfortovog algoritma a i

stabilniji je.

Izbor koraka integracije i numerička nestabilnost

Proces izbora odgovarajuće dužine koraka integracije treba da počne pažljivim

razmatranjem dinamike simuliranog matematičkog modela. Mora se odabrati probna vrednost

koja je mala u odnosu na vremenske konstante u modelu ili u odnosu na periode oscilatornih

komponenti koje se očekuju u odzivu modela. Korišćenjem ove početne vrednosti

integracionog intervala na osnovu simulacionog programa može se dobiti probno rešenje.

Zatim se veličina koraka integracije smanji dva puta i određuje se drugi skup probnih

rezultata. Upoređuju se dva skupa rezultata simulacije i, ako se oni slažu do određenog nivoa

tačnosti, obično se drugi od dva korišćena intervala usvaja kao osnova pri daljoj simulaciji.

Ako se ova dva skupa ne poklapaju sa zahtevanom tačnošću, integracioni interval treba

ponovo smanjiti i ponavljati proces dok se ne javi konvergencija.

Moglo bi se očekivati da, sa približavanjem integracionog intervala nuli, numeričko

rešenje teži pravom rešenju priloženih diferencijalnih jednačina. Međutim, ovo nije potpuno

tačno zato što, sa smanjenjem integracionog koraka, rastu numeričke greške vezane za

zaokruživanje i povećava se broj iteracija potrebnih za izvršenje simulacije.

Uopšte, greške odsecanja su dominantne kada se koriste velike vrednosti koraka

integracije, dok su greške zaokruživanja značajnije za male integracione korake, kao što je

prikazano na slici 1.

Page 15: Softver za simulaciju dinamičkih sistema

Slika 1: Zavisnost grešaka zaokruživanja i odsecanja od veličine koraka integracije

Prethodno, opisan postupak, za izbor zadovoljavajuće veličine koraka integracije,

obično, zahteva početni izbor, koji je veći od idealnog. Sukcesivne iteracije kojima

smanjujemo integracioni korak približavaju nas optimumu. Korišćenje dvostruke tačnosti

često može biti od pomoći pri smanjivanju efekata grešaka zaokruživanja u okviru

simulacionih programa.

Pored problema vezanih za numeričke greške utvrđeno je da postoje ograničenja u

pogledu integracionih intervala za koje je dati integracioni algoritam stabilan. Numerička

nestabilnost može se javiti nezavisno od netačnosti izazvane odsecanjem ili zaokruživanjem i

zavisi od oblika odabranog algoritma i usvojene veličine koraka. Za jednostavne metode sa

fiksnim korakom postoji veliki broj jednostavnih pravila koja se široko koriste pri

određivanju gornje granice integracionog intervala. Na primer, ako se nestabilnost javi za

određenu vrednost koraka integracije hc , kritična frekvencija odabiranja za simulaciju fc

data je relacijom

fh

c

c

1

(3)

Od posebne važnosti je odnos ove kritične frekvencije odabiranja i najviše frekvencije u

modelu, fmax. Odnos mora uvek biti veći od 2 a manji od 10. U slučaju složenih integracionih

algoritama pogodno je da odabrana vrednost bude u gornjoj polovini ovog opsega. Očigledno

pitanje je kako se nalazi vrednost fmax. Jasno je da to može biti teško kod praktičnih

problema. Jedan pristup koji je koristan pri radu sa modelima koji su linearni ili mogu biti

linearizovani pri određenim uslovima, sastoji se u korišćenju funkcije prenosa i procenjivanja

prirodnih frekvencija modela i frekvencija vezanih za svaki prost pol. Najviša od ovih

frekvencija uzima se za fmax.

Page 16: Softver za simulaciju dinamičkih sistema

Integracioni algoritmi sa promenljivim korakom

Kod konvencionalnih metoda sa fiksnim korakom uvek postoji potreba za

procenjivanjem preciznosti integracionih izračunavanja. Obično se definiše tolerancija a

veličina koraka integracije mora biti izabrana tako da greška ne prevazilazi određeni nivo.

U nekim slučajevima određivanje odgovarajuće veličine koraka integracije može da

predstavlja značajnu teškoću. Kod nelinearnih problema pri nekim operativnim uslovima

može biti pogodno korišćenje malog koraka integracije dok je pri drugim potreban mnogo

veći korak. Zbog toga su razvijene metode za automatsko podešavanje veličine koraka

integracije.

Široko korišćen algoritam za integraciju sa promenljivim korakom je Fehlbergov

algoritam. Fehlbergov metod četvrtog reda obuhvata algoritam Runge-Kutta tipa. Potrebno je

odrediti razliku između vrednosti od x t hk( ) izračunatih po metodima četvrtog i petog reda.

Ova razlika se uzima kao procena greške odsecanja. Ako nadmašuje datu toleranciju, korak

integracije se prepolovljuje. Ako je razlika mnogo manja od tolerancije, veličina koraka se

duplira.

U literaturi se mogu naći mnogi algoritmi sa promenljivom dužinom koraka a veliki

broj je uključen u široko korišćene simulacione pakete.

Algebarska petlja

Ako simulacioni model ima blok dijagram sa zatvorenim putem koji ne sadrži ni

jedan integrator ili element kašnjenja, javljaju se dodatni problemi pri dobijanju numeričkog

rešenja. Ove pojave, poznate kao "implicitne" ili algebarske petlje, takođe predstavljaju

teškoće pri simulaciji. Jednostavan pristup prevazilaženju problema implicitne petlje je

konvertovanje razmatranog zatvorenog puta u ekvivalentnu eksplicitnu petlju. Ovo se može

učiniti dodavanjem veoma malog vremenskog kašnjenja ili funkcije prenosa prvog reda sa

malom vremenskom konstantom. Numeričke vrednosti moraju biti tako izabrane da su

dodatno kašnjenje ili vremenska konstanta veoma mali u odnosu na veličinu ma kog

vremenskog kašnjenja ili vremenske konstante ostalog dela simulacionog modela.

Alternativni pristup je pokušaj eliminacije algebarske petlje pažljivim modeliranjem.

Pristalice tehnike grafova tvrde da razumevanje kauzalnosti koja je povezana sa ovom

tehnikom omogućava da onaj koji modelira uoči algebarsku petlju u ranoj fazi procesa

modeliranja.

Page 17: Softver za simulaciju dinamičkih sistema

Modeliranje

Sistem Jedan objekt se može smatrati sistemom ako ispunjava sledeće uslove:

- ako se može definisati spolja prepoznatljiva svrha sistema,

- ako se može predstaviti određena zavisnos elemenata sistema i njihovo uzajamno dejstvo,

koje njegova funkcija određuje,

Granice sistema Svaki sistem ima okruženje u kome deluje.

Povlačenje granica pri posmatranju jednog sistema moguće je tamo:

- gde postoji samo slaba veza sa okruženjem,

- gde postojeće veze nisu funkcionalno relevantne,

- gde delovanje okruženja nije određeno samo na sam sistem.

Model Model je predstava (apstrakcija) 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 se ispituje

iliti pojednostavljena slika realnog ili zamišljenog sistema sa funkcijskim procesima u

jednom suprotstavljenom sistemu. Model se razlikuje od realnog sistema u pogledu

predstavljanja relevantnih osobina, zavisno od kvaliteta matematičkog modeliranja. Model se

koristi da bi se njime rešio zadatak u slučajevima kada njegovo rešavanje direktnim

operacijama nije moguće ili bi bilo veoma obimno.

Klasifikacija Osnove za izradu modela i svrha njegovog korišćenja date su u sledećoj tabeli:

Karakteristika klasifikacije Namena - svrha

Oblast primene Podrška razvoju / podrška pogonu /

istraživanje / obuka i trening /...

Ciljna grupa / Krajnji korisnik Planer / Management / Marketing / eksperti

za simulacije /...

Vreme korišćenja (trajanje važnosti,

odnosno

učestalost korišćenja)

Objekat posmatranja Proizvodni sistem / transportni sistem /

upravljanje / oprema za komisioniranje /

skladište / trgovački procesi...

Svrha korišćenja Opisivanje / odlučivanje / optimizacija

Cilj obrade Analiza / sinteza / prognoza

Vrsta i obim opisivanja modela može se takođe dati tabelarnim pregledom

Page 18: Softver za simulaciju dinamičkih sistema

Karakteristika klasifikacije Svrha

Vrsta realizacije Materijalno ili fizički / zamišljeno ili

formalno

Predstavljanje sistemnih veličina Digitalno / analogno

Medijum opisivanja Štampani materijal / rukopis /elektronski

medium (software)...

Notiranje Grafički / tekstom / matematički /

kombinovano..

Metoda istraživanja Analitički model / simulacioni model

Koncepti modeliranja:

matematički Na bazi: / automata / Petrijeve mreže /

teorije redova čekanja / hibrida

generisanje Entity Relation Models, paradigma

orijentisna na objekt ili agente

orijentacija na aplikaciju Paradigma procesnog lanca, koncepti

orijentisani na komponente

Ponašanje u vremenu Statičko / dinamičko

Slučajno ponašanje Determinističko / stohastičko

Odvijanje u vremenu Diskretno / kontinualno / hibridno

Upravljanje procesom odvijanja Na bazi događaja / orijentacija na proces /

orijentacija na aktivnosti / orijentacija

transakcije / vremensko upravljanje

Simulacija, principi i područja primene

Simulacija je izvršavanje operacija na modelu sistema u cilju dobijanja željenih saznanja o

ponašanju sistema iliti postupak predstavljanja jednog sistema sa njegovim dinamičkim

procesom pomoću eksperimentalnog modela da bi se došlo do saznanja koja se mogu preneti

na realni sistem. Računarski simulacioni model (npr. Simulink model) za izvršenje

numeričkih (postoje i fizičke) simulacija obično nastaje na osnovu matematičkog modela

(skup jednačina kojima se opisuje ponašanje sistema, a na osnovu poznavanja fizičkih

osobina i zakonitosti samog sistema) i predstavlja program za generisanje ponašanja sistema

kod koga se na osnovu zadatih ulaza i parametara modela izračunavaju izlazi. U širem smislu

pod simulacijom se podrazumeva priprema, sprovođenje i računska obrada eksperimenata sa

jednim simulacionim modelom.

Simulacija na računaru – principi

Simulacija diskretnih događaja koristi model fizičkog sistema koji u diskretnim

vremenskim tačkama menja svoje stanje. Vrsta i vremenska tačka promene stanja mogu se

uvek egzaktno odrediti.

Kontinualna simulacija koristi jednačine koje sistem opisuju u formi intenziteta

promena.

Monte-Carlo simulacija odslikava stohastičke procese, kod kojih vreme ne igra

ulogu. Ona se označava i kao metoda ponovljenih pokušaja.

Page 19: Softver za simulaciju dinamičkih sistema

Kombinovana simulacija primenjuje simulaciju diskretnih događaja na jedan

kontinualni model.

Hibridna simulacija koristi kontinualne sub-modele u okviru modela diskretnih

događaja.

Kompjuterske igre su po pravilu kombinacija svih ovde naznačenih simulacija.

Stanje sistema, promena stanja i prelazna stanja

Stanje sistema je skup i konkretno formiranje svih promenljivih, koje su potrebne da bi

se model odnosno sistem opisao u određenom vremenskom trenutku.

Promenu stanja sistema predstavlja promena najmanje jedne promenljive u

procesu rada sistema. Postoje kontinualna ili diskretna prelazna stanja.

Kontinualna prelazna stanja opisuju se diferencijalnim jednačinama, a diskretna prelazna

stanja određena su događajima.

Primena simulacija

Primena na procesima. Kod ispitivanih postupaka radi se o:

• slučajnim procesima kod kojih se može razlikovati:

- nanošenje opterećenja

- redosled i dodela,

- raspoloživost, otkaz komponenata.

• usko spojenim, kompleksnim sistemima sa zastojima i blokadama

Primena na sistemima. Ispitivanja na realnim sistemima mogu biti:

• nemoguća:

- kad sistem još ne egzistira,

- kad je verovatno oštećenje ili razaranje sistema.

• neekonomična:

- kada je vreme ispitivanja dugo ili

- kada ometa regularni rad sistema.

Polja primene simulacije

Novo planiranje. Ovde se primenjuje simulacija da bi se ostvarili sledeći ciljevi:

• provera funkcionalnosti,

• određivanje učinka,

• minimiziranje troškova s obzirom na: dimenzionisanje postrojenja, strategiju

upravljanja, utvrđivanje uskih grla, određivanje vremena protoka, formiranje zaliha.

Modifikacija postojećih postrojenja. Ciljevi:

• određivanje graničnih kapaciteta,

• analiza slabih mesta i uskih grla,

Page 20: Softver za simulaciju dinamičkih sistema

• ocena nastalih promena s obzirom na: kapacitet, proizvodnju, proizvodne planove, strukturu

sistema, organizaciju i strategiju rada (npr. proizvodnje).

U fazi realizacije može se uraditi sledeće:

• test učinka postrojenja pri postepenom puštanju postrojenja u rad,

• preispitivanje odziva (ponašanja) na bazi zahtevanih promena,

• proba i testiranje upravljačkog softvera,

• školovanje saradnika.

U toku normalnog rada može da se analizira

• operativno poređenje varijanti dispozicionih alternativa za: raspored mašina, utvrđivanje

redosleda, određivanje veličine prostora, primenu personala.

Prednosti, nedostaci i granice primene simulacije

Prednosti

1. Sigurni dobitak

• smanjenje rizika,

• funkcionalnost sistema,

• funkcionalnost upravljanja,

• kvalitet obaveza.

2. Ušteda troškova

• jednostavan sistem i upravljanje,

• optimizacija međuskladišta, zaliha i odvijanja rada.

3. Poboljšano razumevanje sistema

• osetljivost parametara,

• zasnovanost izabranih rešenja,

• obuka personala,

• dinamička analiza i predstavljanje.

4. Povoljno vođenje procesa

• podrška odluka pri pojavi problema u radu (proizvodnji),

• optimizacija procesa prema proizvoljnim funkcijama cilja,

• optimizacija upravljanja,

• smanjenje troškova smetnji,

• skraćenje faze uhodavanja.

Nedostaci

1. Modeliranje i simulacija zahtevaju specijalno obrazovanje

• obrazovanje u modeliranju i simulaciji postaje dodatni sastavni deo inženjerskog

obrazovanja,

• softveri za simulaciju nude uvek bolju podršku pri definisanju - uspostavljanju

simulacionog modela i njegovoj validnosti.

2. Simulacioni modeli zahtevaju interpretaciju

• softveri za simulaciju nude uvek bolju podršku pri analizi rezultata simulacije.

3. Simulaciona ispitivanja su vremenski obimna i skupa

• sposobnost računanja postaje sve povoljnija,

• produktivnost simulacije se povećava poboljšanjem softvera i obrazovanja.

Page 21: Softver za simulaciju dinamičkih sistema

Granice i lista uputstava

• simulacije sprovoditi uvek pre investicija,

• simulacija uvek predpostavlja jasnu definiciju cilja i procenu obima,

• pre simulacije treba iskoristiti analitičke metode,

• simulacija nije zamena za planiranje,

• kvalitet rezultata simulacije ne može biti bolji nego što dozvoljavaju podaci sa kojima je

simulacija izvedena,

• simulacija je onoliko dobra koliko i saradnja osoblja koji radi studiju.

Dalji izgledi

• dalji razvoj softvera za simulaciju:

- poboljšanje korisničkih mesta,

- proširenje softverskih preseka: ODBC, TCP/IP, ActiveX, Apls,

- poboljšanje alata za analizu: genetsko optimiranje,

- automatska proizvodnja modela.

• zatvaranje novih oblasti primene:

- povezivanje simulacija: test upravljačkih softvera; operativno nalaženje odluka;

podeljena simulacija,

- formiranje računskog modela,

- integracija u menadžment podataka preduzeća.

Koncepti i komponente (Sastavni delovi simulacionih modela)

Koncepti

Entitet (entity) Objekt, komponente

Atribut (attribute) Karakteristike (osobine) entiteta

Događaj (event) Izvor (Ausloeser) promene stanja

Aktivnost (activity) Vremenski raspon definisanog trajanja

Pauza (delay) Vremenski raspon nedefinisanog trajanja

Softver za razvoj simulacionih modela može se podeliti na tri kategorije:

I. grupa koja koristi opšte objektno orijentisane jezike, kao što su C, C++ i JAVA.

II. grupa koja koristi programske jezike za simulaciju: GPSS/H, Modelica, Scilab,

SIMAN V i SLAM II.

III. grupa koja koristi simulaciona okruženja. Ova kategorija uključuje softver sa

elementima grafičkog korisničkog interfejsa i razvijeno programsko okruženje za

simulaciju (Simulink, Dymola, Scicos, LabVIEW). Okruženja mogu biti opšte

namene i specijalizovana (npr. za autoindustriju, građevinarstvo...).

U prvoj kategoriji, govorimo o simulaciji u Java-i. JAVA je programski jezik za opštu

primenu i nije specijalno napravljen za simulacije. Java je izabrana jer ima široku primenu.

Danas, veoma mali broj ljudi za opisivanje određenih događaja simulacionim modelima,

koristi programske jezike. Ipak, kod određenih oblasti primene korisni su paketi bazirane na

JAVA-i.

U drugoj kategoriji, govorimo o GPSS/H, visoko struktuiran procesno-interaktivni

simulacioni jezik. GPSS je napravljen za relativno lake simulacije rednih sistema, kao što su

prodavnice na veliko, ali se koristio za simuliranje sistema velike složenosti. Prvi ga je

Page 22: Softver za simulaciju dinamičkih sistema

predstavio IBM. Danas postoje razne primene GPSS-a. GPSS/H je jedan od najšire

korišćenih programskih jezika.

U trećoj kategoriji, izabrani su simulacioni softverski paketi koji se trenutno koriste, koji su

preživeli i zadržali se godinama, sa različitim pristupima za pravljenje modela.

Važna komponenta simulacionog okruženja je analitičar izlaza, koji se koristi za obavljanje

eksperimenta i pomoć pri analizi. Za formiranje modela i opis karakteristika, koriste se četiri

alata u softveru ili simulacionom okruženju: To su statistički alati za krajnju statistiku,

intervali pouzdanosti i druga statistička merenja. Paketi danas nude optimizaciju zasnovanu

na genetskim algoritmima, evolucionoj strategiji, rasutim pretraživanjima i drugim skoro

razvijenim heurističkim metodama. Kao dodatak potreban za statističku analizu i

optimizaciju, simulaciona okruženja nude upravljanje podacima, definisanje scenarija i

vođenje upravljanja.

Istorijat simulacionog softvera

Prema Nensu (Richard Nance), istorija simulacionog softvera podeljena je od 1955. do 1986.

na pet perioda. Nakon zimske konferencije za simulaciju 1992. Banks, Carson, Nelson i

Nicol su dodali šesti period:

1. Period istraživanja (1955-60) Prvih godina, simulacija se obavljala u FORTRAN-u ili drugom programskom jeziku za

glavnu namenu, bez posebnih simulacionih programskih rutina. U prvom periodu (1955-60),

mnogo truda je potrošeno na istraživanja u oblasti unificiranja pojmova i razvoj rutina koje

podržavaju simulaciju. Opšti simulacioni program od K.D.Tohera i D.G.Ovena (Toher,1960),

smatra se za prvi ''jezički pokušaj''. Toher je identifikovao i razvio rutine koje su se mogle

ponovo koristiti.

2. Period pojave programskih jezika za simulaciju (1961-65) GPSS (General Purpose Simulation System) je napravio Džefri Gordon u IBM-u 1961. GPSS

je namenjen za brze simulacije komunikacija i kompjuterskih sistema. GPSS se zasniva na

blok dijagram predstavljanju (sličan dijagramu procesnog toka) i odgovarajući je za redne

modele svih vrsta. Bio je previše skup za to vreme da bi imao široku primenu.

Hari Marković (primio Nobelovu nagradu za svoj rad u Portfolio teoriji) obezbedio je glavni

koncept vođenja za SIMSCRIPT, 1963. što je finansiralo američko vazduhoplovstvo.

SIMSCRIPT je u početku dosta zavisio od FORTRAN-a, ali u kasnijim verzijama, evoluirao

je u samostalni programski jezik za simulaciju (SPL). Inicijalna verzija se bazirala na

rasporedu događaja.

Filip J.Kiviat (laboratorija za primenjena istraživanja United State Steel Corporation) razvio

je GASP (General Activity Simulation Program) 1961. U početku bio je baziran na ALGOL-

u, kasnije na FORTRAN-u. GASP je kao i GPSS, koristio blok-dijagram simbole svojstvene

inženjerima.

Tokom ovog vremenskog perioda kreiran je programski jezik SIMULA i CSL (Control and

Simulation Language) jezik za kontrolu i simulaciju.

3. Period oblikovanja jezika (1966-70) Revizija GPSS jezika GPSS/360 za IBM 360 kompjuter.

SIMSCRIPT II je predstavljao veliki napredak u SPL-u. Njime je primenom slobodnijeg

engleskog jezika oblikovan korisnički interfejs.

Page 23: Softver za simulaciju dinamičkih sistema

Program SIMULA je Evropi doneo pojmove klasa i nasleđa, kao preteča modernih objektno

orijentisanih programskih jezika.

4. Period ekspanzije (1971-78) Julian Rajtman iz NORDEN sistema predvodio je razvoj GPSS/NORDEN-a, jezika za

vidljivu interaktivnu online radnu sredinu. Džejms O.Henriksen (Vulverin softver) usavršio je

GPSS/H, izdat 1977. za IBM, kasnije mini kompjutere i PC. Bio je poznat po tome što je 5 do

30 puta bio brži od standardnog GPSS-a. Dopunjen novim osobinama, uključujući i

interaktivni debager, postao je glavna verzija GPSS-a u današnjoj upotrebi.

Alan Pritsker sa Purdue-a, napravio je GASP IV 1974. On je spojio stanje događaja kao

dodatak vremenskim događajima, tako što je dodao podršku za aktivno skeniranje

rasporedu događaja. Tokom ovog perioda razvijani su interfejsi prirodnih jezika, zajedno sa

automatskim planiranjem izbora jezika. Ovi napori naišli su na ozbiljna ograničenja usled

složenosti realnih sistema. Zato su napori dalje tekli u pojednostavljenju simulacionog

modeliranja, pa je najviše uspeha u simulacionim sistemima napravljeno za aplikacije u

uskim oblastima.

5. Period konsolidacije i preporoda (1979-86) U petom periodu su SPL pisani za desktop računare (mikroračunare). Dva glavna naslednika

GASP-a su se pojavila: SLAM II i SIMAN. (Simulation Language for Alternative Modeling)

SLAM simulacioni jezik za alternativno modeliranje, kreiran je za višestruko i kombinovano

modeliranje. Imao je perspektivu rasporeda događaja baziranu na GASP-u, mrežni izgled,

poglede na objekte I softversku kompatibilnost.

SIMAN (SIMulation ANalysis) je bio prvi značajni simulacioni izvršni jezik na IBM PC-u I

napravljen da radi pod MS-DOS-om. Slično GASP-u, SIMAN je omogućio pristup rasporedu

događaja programiranjem u FORTRAN-u i mogućnost nastavljanja simulacije.

6. Period integracije (1987- ) Period do danas je poznat po razvoju SPL-a na personalnim računarima i pojavi simulacionih

okruženja sa grafičkim korisničkim interfejsom, animaciji i drugim vizuelizacionim alatima

GUI. Mnoga od ovih okruženja takođe sadrže analitičare ulaznih i izlaznih podataka. Neki

paketi razvijali su grafičke rutine za postavljanje algoritama kojima je izbegavana upotreba

složene programske sintakse. Skorašnji napredak je postignut u WEB baziranim

emulacijama, u sklopu namene simulacije u upravljanju lancem snabdevanja.

Svake dve godine, OR/MS Today izdaje pregled simulacionog softvera. Izdanje iz 2003. Je

sadržalo 48 proizvoda, uključujući pakete za podršku simulacije kao što je analitičar ulaznih

podataka. Postoje mnoga svojstva važna za izbor simulacionog softvera. Evo nekoliko saveta:

1. Ne fokusirajte se na jednu osobinu, kao što je lakoća korišćenja. Razmotriti preciznost i

nivo postignutih detalja, lakoću učenja, podršku prodavca, i primenljivost u vašim

aplikacijama.

2. Izvršna brzina je bitna. Ne misli se na uslove pri eksperimentalnom korišćenju tokom noći

i preko vikenda. Brzina utiče na vreme usavršavanja. Tokom debagovanja, analitičar može da

provede mnogo vremena u čekanju na rad dibagera pre nego što identifikuje grešku.

3. Paziti se reklamnih tržišnih tvrdnji i demonstracija. Mnogi reklameri koriste samo

pozitivne osobine softvera. Pri demonstracijama nekog problema softver ga rešava vrlo lako,

ali možda ne i vaš problem. Pitajte prodavca da reši malu verziju vašeg problema.

4. Paziti se opcionih kategorija. Izvršavanje i mogućnosti su ono što je važno. Većina paketa

nudi vremensku licencu a ona varira u ceni i osobinama.

Page 24: Softver za simulaciju dinamičkih sistema

5. Korisnike simulacija treba da zanima da li simulacioni model može da se poveže i da

koristi kodove i rutine napisane u opštim jezicima kao što su C, C++, ili JAVA. Ovo je dobra

osobina, posebno kad spoljne rutine već postoje i pogodne su za ručnu primenu.

6. Grafičko modeliranje bazirano na simulacionom jeziku uklanja barijere uslovljene

jezičkom sintaksom. Grafičko modeliranje ne uklanja potrebu za proceduralnom logikom i

praćenje debagovanja.

Tabela 1. Osobine pri izradi modela

Osobina Opis

Pregled modeliranja Proces interakcije, perspektive događaja, i kontinuirano modeliranje,

zavisno od potreba

Sposobnost analize ulaznih Procena empirijskih ili statističkih distribucija iz sirovih podataka

podataka

Grafičko pravljenje modela Procesni tok, blok-dijagram, ili mrežni pristup

Uslovljeno usmeravanje Usmerene bitnosti bazirane na određenim stanjima ili osobinama

Simulaciono programiranje Sposobnost da se doda proceduralna logika kroz visok nivo moćnog

simulacionog jezika

Sintaksa Lako razumevanje, sadržajnost, nedvosmislenost

Fleksibilnost unosa Prihvata podatke iz spoljašnjih arhiva, baza podataka

Sažetost modeliranja Snažan rad, blokade

Slučajnost Slučajno promenljivi generatori za sve obične distribucije

eksponencijalni, trougaoni, jednolični i normalni proces.

Specijalne komponente Upravljanje materijalom: vozila, konvejeri, moćne dizalice

Objekti za kupce upravljanje tečnostima i teškim materijalima, komunikacioni sistemi,

kompjuterski sistemi, call centri itd

Kontinuirani tok Ponovno upotrebljivi, podmodeli

Interfejs sa glavnim Rezervoari i cevi ili veliki konvejeri

programskim jezikom Kod u C,C++, JAVA, ili drugi glavni programski jezik

Tabela 2. Radno vreme okruženja

Osobina Opis

Brzina izvršenja Veličina modela; broj

promenljivih: Interaktivni debager Stanje modela i

statistika Licenca radnog vremena

Mnogi radovi potrebni za scenarija i replikaciju.

Uticaj razvoja je dobar kao i eksperimentisanja.

Trebalo bi biti bez granica, Pratiti simulaciju do

detalja u toku njenog rada. Sposobnost da pauzira,

radi do daljnjeg; da prikaže status, osobine i

promenljive itd. Prikazuje se u bilo koje vreme

tokom simulacije Sposobnost menjanja parametara i

korišćenja modela (bez promene logike) ili modela.

Page 25: Softver za simulaciju dinamičkih sistema

Tabela 3. Animacija i layout osobine

Osobina Opis

Tip animacije Dijagram procesnog toka,

Unos crteža i podataka o objektu Iz CAD crteža ili ikona

Dimenzija 2D, 2D sa perspektivom, 3D

Pomeranje Pokret stvarnosti ili indikatori stanja

Kvalitet pokreta Gladak ili u trzajima

Biblioteke običnih objekata Ekstenzivna prednacrtna grafika

Navigacija Zumiranje, rotacija

Pogledi Korisnik definisan, imenovan

Displej korak Kontrola animacione brzine

Birljivi objekti Dinamičko stanje i statistika na osnovu

selekcije

Zahtevi hardvera Standardna specijalna video kartica, RAM

Pregled simulacionog softvera:

Zadaci:

• Formiranje modela

• Sprovođenje simulacionog eksperimenta

• Analiza rezultata

• Prezentacija rezultata

Oblasti primene simulacionih studija

• Ocena izabrane koncepcije,

Oceniti izvodljivost slučaja,

Odrediti karakteristične veličine učinka (sposobnosti).

• Nabavka i prodaja

Vizualizirati sistemska rešenja,

Podržati komunikaciju.

• Planiranje

Razviti i optimirati layout i upravljanje.

• Pripremiti puštanje u rad

Ovladati efektima uhodavanja.

Page 26: Softver za simulaciju dinamičkih sistema

• Rad

Utvrditi rezerve učinka,

Funkcije optimirati.

Odvijanje simulacione studije

a. Analiza problema, procena obima i troškova,

b. Definicija zadataka i ciljeva,

c. Pronalaženje (uzimanje) podataka,

d. Uspostavljanje i verifikacija modela,

e. Eksperimenti na modelu i analiza rezultata,

f. Dokumentacija i prezentacija rezultata.

Personal Dobar zajednički rad svih učesnika, od značaja je za svaki korak simulacione studije

• Krug učesnika:

- Korisnici logističkih sistema, ⎫

- Planeri transportnog sistema (toka materijala), ⎬ Konzumenti (kupci)

- Proizvođači transportno-skladišne tehnike, ⎭

- Stručnjaci za upravljanje,

- Ostali specijalisti po strukama.

Analiza problema, procena obima i trškova studije Kupac

• Formuliše ekonomske i tehničke ciljeve za oblikovanje i izmene svog logističkog sistema.

Peduzeće koje pruža usluge simulacije

• Ispituje, da li postavljeni problem ima smisla i da li ga ekonomski treba obraditi,

• Razvija i razrađuje ponudu za simulacionu studiju.

Formulisanje zadataka i ciljeva Kupac

• Postavlja zadatak i okvir oblikovanja mogućih varijantnih rešenja,

• Imenuje partnera za razgovore i razjašnjava okolnosti,

• Utvrđuje okvirne termine.

Peduzeće koje pruža usluge simulacije

• Opisuje polaznu situaciju i bazu podataka za simulacionu studiju,

• Formuliše merljive kriterijume za ocenu varijantnih rešenja.

Postavljanje cilja

• Poboljšanje sistemskih znanja i raspoznavanje međusobnih delovanja,

• Analiza:

• analiza slabih mesta,

• analiza ”šta bi bilo kad”,

• analiza osetljivosti

• Dimenzionisanje i optimizacija,

• Uspostavljanje uputstva za razgovore (pregovore) i rad, obrazovanje-osposobljavanje

osoblja

za opsluživanje, svrha školovanja.

Page 27: Softver za simulaciju dinamičkih sistema

Pronalaženje (uzimanje) podataka Kupac

• Stavlja na raspolaganje opisivanje procesa, tehničke podloge i relevantne podatke

logističkog sistema,

• Proverava dokumentaciju baze podataka čini je dostupnom,

• Daje postavljeni cilj i okvire oblikovanja za optimizaciju.

Preduzeće koje pruža usluge simulacije

• Istražuje relevantne podatke, priprema ih, preispituje ih na postojanost i konzistentnost,

• Dokumentuje bazu podataka simulacione studije.

Opisivanje sistema i procesa

• Iterativni proces,

• Intenzivna komunikacija.

Određivanje relevantnih podataka

• Ulazne veličine,

• Objekti sistema, njihove osobine i odnosi,

• Promena stanja sistema,

• Uticaji okruženja deluju na sistem,

• Varijabilne i konstantne veličine sistema,

• Veličine sistema koje utiču (mogu se regulisati) i veličine sistema bez uticaja,

• Izlazne veličine.

Utvrđivanje granica sistema

Planirani sistem Postojeći sistem Dobijanje podataka

Hipotetično na bazi iskustva Na origimalu

odnosno saznanja o sličnim sistemima Potrebna eksperimentalna znanja

Fundirana znanja i bogato Detaljna sistemska i procesna znanja

iskustvo u struci Metode

Refa, MTM, predhodno data vremena Direktno kroz merenja ili indirektno

Uzimanjem podataka iz rada dnosno

projekata

(obuhvatanje vremena, BDE)

Tehnički podaci:

• o strukturi (npr. fabrički layout, saobraćajnice, lokacije stalnih mesta),

• o proizvodnji (npr. mašine, učinak, rata opsluživanja, vreme korišćenja),

• o toku materijala (npr. transportna sredstva, putevi, brzine, kapacitet, vreme takta),

• o toku informacija (npr. vremena prenošenja, vremena reakcije, raspoloživost informacija o

procesu).

Podaci o opterećenju sistema:

• radni nalozi (proizvodni i transportni nalozi, narudžbine, količine, termini, redosled),

Page 28: Softver za simulaciju dinamičkih sistema

• proizvodnja (npr. plan rada, sastavnice, karakteristike),

• WIP – work i proces (rad u procesu),

Podaci o organizaciji:

• radno vreme (npr. radni dani, smene, regulacija pauza)

• raspored resursa (npr. personal, mašine, transportna sredstva, pomoćna transportna sredstva)

• odvijanje organizacije (npr. strategije, pravila, ristrikcije, odgovornost)

Uspostavljanje i verifikacija modela Kupac-korisnik: proverava ponašanaja modela.

Preduzeće koje pruža usluge simulacije:

• razvija model simulacije,

• verifikuje i validira model simulacije pomoću referentnih podataka i iskustva.

Određivanje relevantnih aspekata modela:

• odlučivanje o o mogućim uprošćenjima na modelu,

• upravljanje na osnovu postavljenog zadatka ili cilja,

• subjektivni pogled i iskustvo pri uspostavljanju modela,

• važnost usaglašavanja svih učesnika kroz komunikaciju,

• dokumentacija uprošćavanja i postojeća ograničenja u iskazivanju snage modela.

Eksperimenti sa simulacionim modelima Kupac-korisnik: Učestvuje u razvoju i oceni alternativnih rešenja.

Preduzeće koje pruža usluge simulacije:

• kroz analizu simulacionog modela objašnjava pitanja koja su definisana postavkom zadatka,

• optimizira ponašanje sistema kroz varijaciju parametara i promenu algoritma upravljanja,

• vrši nadzor u fazi ulaska sistema u oscilatorni rad,

• stohastički model simulacije sa slučajnim raspodelama kao ulaznim veličinama,

• prikupljanje statističkih podataka pri radu simulacionog modela,

• jedan simulacioni tok donosi slučajni događaj jednog eksperimenta kao izlaz pa za

izračunavanje podataka treba ostvariti više simulacionih tokova sa promenljivim slučajnim

brojem prolaza,

• pomoćno sredstvo kod AutoMod simulacije: Debugger, Business Graphics, Run Control,

• Rezultati nakon 30 sati simulacija,

Dokumentacija i prezentacija Kupac-korisnik: ispituje postizanje cilja i uzima izveštaj o simulaciji.

Preduzeće koje pruža usluge simulacije:

• dokumentuje rešenje postavljenog zadatka i rezultate studije izveštajem o simulaciji,

• prezentuje rezultate simulacije,

• za slučaj potrebe predaje simulacioni model.

Koraci simulacione studije: 1. Definicija zadataka i ciljeva

2. Pronalaženje podataka

3. Uspostavljanje i verifikacija modela

4. Eksperimenti na modelu i analiza rezultata

5. Dokumentacija i prezentacija rezultata

Page 29: Softver za simulaciju dinamičkih sistema

Danas postoji ogroman broj simulacionih softvera. Mogu se podeliti na open-source

(besplatne) kao što su FreeMat, GNU Octave, SageMath, Scilab i komercijalne (koji se

plaćaju). U nastavku sledi lista najkorišćenijih komercijalnih softvera za simulaciju.

Lista komercijalnih softvera za simulaciju:

ACSL and acslX - Advanced Continuous Simulation Language

AMESim - platform to analyze multi-domain, intelligent systems and predict and optimize

multi-disciplinary performance. Developed by LMS International

AnyLogic - Multimethod simulation modeling tool for business and science. Developed by

XJ Technologies

Arena - simulation and automation software developed by Rockwell Automation

AutoCAST - Metal casting design and simulation software developed by Advanced

Reasoning Technologies

Chemical WorkBench - Chemical kinetics simulation software tool developed by Kintech Lab

CircuitLogix - Electronics simulation software developed by Logic Design Inc.

COMSOL Multiphysics - (formerly FEMLAB) is a finite element analysis, solver and

Simulation software / FEA Software package for various physics and engineering

applications, especially coupled phenomena, or multi-physics.

DX Studio - Suite of tools for simulation and visualization.

Dymola - Modeling and simulation software based on the Modelica language.

GoldSim - Combines system dynamics with aspects of discrete event simulation, embedded in

a Monte Carlo framework.

Ecolego - A simulation software tool for creating dynamic models and performing

deterministic and probabilistic simulations.

Enterprise Dynamics - A simulation software platform developed by INCONTROL

Simulation Solutions. Features include drag-and-drop modeling and instant 2D and 3D

Animation.

ExtendSim - Simulation software for discrete event, continuous, discrete rate and agent-based

simulation

Flexsim is a discrete event simulation software which includes the basic FlexSim simulation

software and three product lines: FlexSim distributed simulation system (FlexSim DS),

FlexSim container terminal library (FlexSim CT) and FlexSim Healthcare Simulation

(FlexSim HC)

Khimera - Chemical kinetics simulation software tool developed by Kintech Lab

Maple is a general-purpose computer algebra system developed and sold commercially by

Waterloo Maple Inc.

MapleSim - is a multi-domain modeling and simulation tool developed by Waterloo Maple

Inc.

MATLAB is a programming, modeling and simulation tool developed by MathWorks

Mathematica

Wolfram SystemModeler – Modeling and simulation software based on the Modelica

language

Modelica is an open standard for modeling software

NEi Nastran - Software for engineering simulation of stress, dynamics, and heat transfer in

structures.

NetSim - A popular network simulation software for education research

NI Multisim

Page 30: Softver za simulaciju dinamičkih sistema

Plant Simulation - Plant, line and process simulation and optimization software, developed by

Siemens PLM Software.

PRO/II - Steady state chemical process simulation and extensively used by oil and gas

refineries.

Project Team Builder - A Project Management simulator used for training and education.

RoboLogix - Robotics simulation software developed by Logic Design Inc.

Ship Simulator - A vehicle simulation computer game by VSTEP which simulates

maneuvering various ships in different environments.

Simcad Pro - Dynamic Discrete and continuous simulation software. Visual interface with no

coding environment. Support 2D and 3D animation and value stream mapping.

SIMUL8 - Software for discrete event or process based simulation.

Simulations Plus - Modeling and simulation software for pharmaceutical research

SimulationX - Modeling and simulation software based on the Modelica language.

Simulink from MathWorks (block diagrams, electrical mechanical systems, machines)

VisSim - System simulation and optional C-code generation of electrical, process, control,

bio-medical, mechanical and UML State Chart systems

LabVIEW

LabVIEW (Laboratory Virtual Instrument Engineering Workbench) je platforma za

projektovanje sistema i razvojno okruženje za grafički programski jezik „G“. Napravila ga je

kompanija National Instruments 1986. godine za Apple Macintosh za potrebe akvizicije

podataka, upravljanje mernim instrumentima i industrijsku automatiku. Kod programskih

jezika koji se baziraju na tekstualnim linijama koda redosled izvođenja programa je određen

navođenjem linija koda, znači najpre se izvršava prva linija koda, druga, treća i tako redom.

Jezik „G“ se bazira na takozvanom dataflow načinu programiranja, što znači da je redosled

izvršenja koda određen protokom podataka kroz VI (eng. Virtual Instruments) i funkcije.

Virtuelni instrumenti su LabVIEW programi koji oponašaju fizičke instrumente kao što su

osciloskopi ili multimetri.

U LabVIEW-u korisnički interfejs se kreira uz pomoć seta alatki i objekata. Korisnički

interfejs je poznat kao front panel (prednji panel). Na njemu se obično postavljaju kontrole i

indikatori, što znači da su njegovi glavni kontrolni elementi potenciometri, razni tipovi

prekidača, tasteri i drugi ulazni uređaji. Indikatori su obično grafovi, LED diode i dr. Nakon

toga se dodaje programski kod korišćenjem grafičkih reprezentacija funkcija kako bi se

kontrolisali objekti na front panelu. Grafički kod je takođe poznat kao G kod ili blok dijagram

kod. Blok dijagram sadrži ovaj kod. Na neki način, blok dijagram je nešto slično flowchart-u

ili dijagramu toka podataka. Ovo su dva panela koji sinhronizovano funkcionišu u okviru

LabVIEW-a.

Pogodnosti LabVIEW-a su mogućnost paralelnog izvršavanja programa i posedovanje

bogatih biblioteka funkcija.

LabVIEW je takođe otvoren što se tiče proširivanja dodatnim modulima tzv. toolkit-ima, a mi

ćemo kasnije na sledećim predavanjima obraditi jedan od njih koji je koristan za automatske

Page 31: Softver za simulaciju dinamičkih sistema

potrebe a to je, Simulation Module, koji se naknadno instalira i u njemu postoje svi

standardni elementi kao u Matlab/Simulink.

LabVIEW se mnogo koristi za komuniciranje sa hardverom koji se koriste za akviziciju

podataka kao i GPIB, PXI, VXI, RS-232, i RS-485 instrumenata.

Zvaničan sajt kompanije National Instruments koja je i osmislila ovaj program je

www.ni.com.

Razvoj LabVIEW-a od samog kreiranja do danas:

Name-version Build number Date

LabVIEW project begins

April 1983

LabVIEW 1.0 (for Macintosh) ?? October 1986

LabVIEW 2.0 ?? January 1990

LabVIEW 2.5 (first release for Sun & Windows) ?? August 1992

LabVIEW 3.0 (Multiplatform) ?? July 1993

LabVIEW 3.0.1 (first release for Windows NT) ?? 1994

LabVIEW 3.1 ?? 1994

LabVIEW 3.1.1 (first release with "application builder" ability) ?? 1995

LabVIEW 4.0 ?? April 1996

LabVIEW 4.1 ?? 1997

Page 32: Softver za simulaciju dinamičkih sistema

LabVIEW 5.0 ?? February 1998

LabVIEW RT (Real Time) ?? May 1999

LabVIEW 6.0 (6i) 6.0.0.4005 26 July 2000

LabVIEW 6.1 6.1.0.4004 12 April 2001

LabVIEW 7.0 (Express) 7.0.0.4000 April 2003

LabVIEW PDA module first released ?? May 2003

LabVIEW FPGA module first released ?? June 2003

LabVIEW 7.1 7.1.0.4000 2004

LabVIEW Embedded module first released ?? May 2005

LabVIEW 8.0 8.0.0.4005 September 2005

LabVIEW 8.20 (native Object Oriented Programming) ?? August 2006

LabVIEW 8.2.1 8.2.1.4002 21 February 2007

LabVIEW 8.5 8.5.0.4002 2007

LabVIEW 8.6 8.6.0.4001 24 July 2008

LabVIEW 8.6.1 8.6.0.4001 10 December 2008

LabVIEW 2009 (32 and 64-bit) 9.0.0.4022 4 August 2009

Page 33: Softver za simulaciju dinamičkih sistema

LabVIEW 2009 SP1 9.0.1.4011 8 January 2010

LabVIEW 2010 10.0.0.4032 4 August 2010

LabVIEW 2010 f2 10.0.0.4033 16 September 2010

LabVIEW 2010 SP1 10.0.1.4004 17 May 2011

LabVIEW for LEGO MINDSTORMS (2010 SP1 with some modules)

August 2011

LabVIEW 2011 11.0.0.4029 22 June 2011

LabVIEW 2011 SP1 11.0.1.4015 1 March 2012

LabVIEW 2012 12.0.0.4029 August 2012

LabVIEW 2012 SP1 12.0.1.4013 December 2012

LabVIEW 2013 13.0.0.4047 August 2013

LabVIEW 2013 SP1 13.0.1.4017 March 2014[14]

LabVIEW 2014

August 2014

LabVIEW 2014 SP1 14.0.1.4008 March 2015

LabVIEW 2015 15.0f2 August 2015

LabVIEW 2015 SP1 15.0.1f1 March 2016

LabVIEW 2016 16.0.0 August 2016

Page 34: Softver za simulaciju dinamičkih sistema

LabVIEW 2017 17.0f1 May 2017

LabVIEW 2017 SP1 17.0.1f1 Jan 2018 [14]

LabVIEW 2018 18.0 May 2018

LabVIEW 2018 SP1 18.0.1 Dec 2018

LabVIEW 2019 19.0 May 2019

Dymola

Dymola (Dynamic Modeling Laboratory) je komercijalno okruženje za modeliranje i

simulaciju koje se bazira na open source programskom jeziku za modeliranje pod imenom

Modelica.

Istorijat razvoja Dymola-e:

Prva verzija Dimole je napravljena 1978. godine kao doktorska disertacija Hildinga

Elmkvista (Hilding Elmqvist) na Tehničkom univerzitetu Lund. Prva verzija je bila

zasnovana na Dimola jeziku implementiranom u Simuli 68, a kasnije u okviru C++. Hilding

Elmkvist je 1992. godine osnovao švedsku kompaniju Dynasim AB koju je kasnije kupila

firma Dassault Systems i integrisala Dymolu i programsko okruženje CATIA. Trenutno je

aktuelna verzija Dymola 2020x od 29. novembra 2019. godine.

Hilding Elmkvist je 1996. dosao do ideje da razvije Modelicu, objektno-orijentisani jezik

za modeliranje tehničkih sistema preko modeliranja njegovih komponenata matematičkim

jednačinama. Modelica se zasniva na jeziku Dimola, ali iskustva sa jezikom Dimola kao i sa

ostalim jezicima za modeliranje su uzeta u obzir. Septembra 1997, verzija 1.0 Modelice je

probno implementirana u okviru Dimole. U jednom prelaznom period, program Dimola je

podržavao oba jezika. Od 2002. godine samo Modelica jezik je na snazi. Modelica je osnova

velikog broja programskih okruženja za modeliranje i simulaciju (pored Dymole), a naročito

je popularna kod automobilskih proizvođača (Ford, General Motors, Toyota, BMW,

Daimler).

Dimola je pogodna za modeliranje različitih tipova fizičkih sistema. Ona podržava:

• hijerarhijsku kompoziciju (sastav) modela,

Page 35: Softver za simulaciju dinamičkih sistema

• biblioteke sačinjene od najčešće korišćenih komponenata, konektora i veza između

njih. Biblioteke modela su dostupne za različite inženjerske domene (mehaničke,

električne, termičke, hidraulične, termodinamičke, upravljačke, pneumatske

komponente...).

Dimola koristi novu metodu modeliranja orijentisanu na objekte i jednačine. Korišćenjem

automatske manipulacije formulama, otklonjena je česta potreba za konverzijom jednačina u

blok dijagrame.

Prednosti Dimole:

• Rukovanje velikim, složenim modelima

• Brže modeliranje uz pomoć grafičke kompozicije modela.

• Brža simulacija – simbolično preprocesiranje.

• Nudi mogućnost definisanja korisnikovih komponenti.

• Otvorena komunikacija sa drugim programima.

• 3D animacija.

• Simulacija u realnom vremenu.

Arhitektura Dimole:

Arhitektura Dimole je prikazana na slici 1.1. Dimola ima moćan grafički editor za

komponovanje modela. Dimola je bazirana na korišćenju Modelica modela koji su smešteni u

fajlovima. Dimola takođe može da importuje podatke i grafike drugačijih tipova.

Dimola ima translator za jednačine pisane u Modelici, generišući tako C-kod potreban za

simulaciju. Takav C-kod može biti eksportovan u Simulinku i slično orijentisane softverske

pakete.

Dimola ima moćne funkcije vezane za eksperimentisanje, prikazivanje i animaciju.

Skripte se mogu upotrebiti za upravljanje eksperimentima i za obavljanje izračunavanja.

Obezbeđenja je i automatska izrada dokumentacije.

Page 36: Softver za simulaciju dinamičkih sistema

Slika 1.1. Arhitektura Dimole

Zvaničan sajt kompanije Dassault Systems je www.3ds.com, Modelice

www.modelica.org, a koristan sajt sa tim u vezi je i www.openmodelica.org.

Modelica - istorijski razvoj

Release Release

Date Highlights

1.0 1997,

September First version to model continuous dynamic systems.

1.1 1998,

December

Language elements to model discrete systems (pre,

when)

1.2 1999, June Interface to C and Fortran, inner/outer for global

variables, refined semantics of event handling

1.3 1999,

December

Improved semantics for inner/outer connections,

protected elements, array expressions.

Page 37: Softver za simulaciju dinamičkih sistema

1.4 2000,

December

Removed declare-before-use rule, refined package

concept, refined when-clause

2.0 2002, July

Initialization of models, standardization of graphical

appearance, functions with mixed positional and

named arguments, record constructor,

enumerations

2.1 2004,

March

Overdetermined connector to model 3-dim.

mechanical systems, enhanced redeclaration of

submodels, array and array indices of enumerations

2.2 2005,

February

Expandable connector to model signal buses,

conditional component declarations, arrays with

dynamic size changes in functions

3.0 2007,

September

Clean-up version: specification newly written, type

system and graphical appearance refined, language

flaws fixed, balanced model concept to detect model

errors in a much better way

3.1 2009, May

Stream connector to handle bi-directional flow of

fluid, operator overloading, mapping model parts to

execution environments (for use in embedded

systems)

3.2 2010,

March

Improved initialization with homotopy method,

functions as formal inputs to

functions, Unicode support, access control to

protect IP, improved support of object libraries

3.3 2012, May

Added language elements to describe periodic and

non-periodic synchronous controllers based on

clocked equations, as well as synchronous state

machines.

3.4 2017, April Automatic conversion of models. Many minor

improvements

Page 38: Softver za simulaciju dinamičkih sistema

Scilab

Scilab je open source softverski paket za numerička izračunavanja i programski jezik

visokog nivoa. Koristi se za obradu signala, statističku analizu, obradu slike, optimizaciju,

kao i modeliranje i simulaciju dinamičkih sistema. Predstavlja najbolju besplatnu alternativu

Matlabu (pored GNU-Octave), i slično njemu, osnovni način prestavljanja podataka je preko

vektora i matrica. Scilab je nastao 1990. godine od strane istraživača sa francuskog instituta

za istraživanja u oblasti računarstva i automatike (INRIA). Godine 2003. je formiran Scilab

konzorcijum koji je dalje razvijao paket. Trenutna verzija Scilaba je 6.1.0 izdata 25.02.2020.

Scilab uključuje i komponentu Xcos (Scicos) za modeliranje i simulaciju dinamičkih sistem

(pandam Simulinku kod Matlaba).

Scilab je jedan interpretativni programski jezik sa objektima dinamičkog tipa. Može se

koristiti kao pisani jezik za proveru algoritma ili za izvođenje numeričkih operacija, ali je on

takođe i programski jezik. Scilab biblioteka sadrži oko 2000 funkcija za kodiranje.

Načini programiranja u Scilab-u kreću se od običnih skriptova (nešto slično BAT

fajlovima u DOS-u) do kompleksnih matematičkih izračunavanja. Rezultati se mogu

atraktivno prezentovati, počev od “običnih“ matrica, preko 2D i 3D grafikona, do

modeliranja i simuliranja kompleksnih procesa.

Scilab, koji je po mogućnostima i funkcijama sličan MATLAB-u, prvenstveno je

namenjen rešavanju problema predstavljenih u obliku vektora i matrica. Uz Scilab dolaze i

tzv. toolbox-ovi, velike biblioteke funkcija i kolekcija alata za usko specijalizovane

proračune. Tako postoje toolbox-ovi za rad sa parcijalnim diferencijalnim jednačinama,

bazama podataka, slikama, zvukom, finansijskim proračunima, neuronskim mrežama itd.

Scilab još omogućuje vizualizaciju velikog broja funkcija uključujući 2D i 3D, crtanje i

parametrisanje šema, kao i animaciju. Grafici se mogu eksportovati u različitim formatima

kao što su Gif, Postscipt, Postscript-Latex i Xfig. Takođe, Scilab uključuje i mogućnost

vizuelnog kreiranja korisničkog interfejsa (GUI - Graphical user interfaces). Scilab je veliki

softverski paket koji sadrži oko 13 hiljada fajlova, više od 400 hiljada linija izvornog koda (u

C-u ili Fortran-u), 70 hiljada linija Scilab koda (specijalizovane biblioteke), 80 hiljada linija

on-line help-a i 18 hiljada linija sastavnih fajlova.

Zvaničan sajt programskog paketa Scilab je www.scilab.org, a Scicosa www.scicos.org.

Page 39: Softver za simulaciju dinamičkih sistema

Matlab

MATLAB je okruženje za numeričke proračune i programski jezik koji proizvodi firma

MathWorks. MATLAB omogućava lako manipulisanje matricama, iscrtavanje funkcija i

podataka, fitovanje, implementaciju algoritama, kreiranje grafičkog korisničkog interfejsa

kao i povezivanje sa programima pisanim u drugim jezicima (C, C++, JAVA, Fortran,

Python).

MATLAB je nastao kao skraćenica za „MATrix LABoratory“ („laboratorija za matrice“).

Izumeo ga je kasnih 1970-ih Kliv Moler (Cleve Moler), šef katedre za informatiku na

Univerzitetu „Novi Meksiko“. Godine 1984-te on osniva kompaniju MathWorks zajedno sa

Džekom Litlom (Jack Little) i iste godine izbacuju Matlab 1.0. Prvih deset kopija prodaju

MIT-u (Massachusetts Institute of Technology) za 500 dolara.

Već 2004. godine je procenjeno da preko milion ljudi zaposlenih u industriji i na

univerzitetima koristi MATLAB.

MATLAB je moguće nabaviti zajedno sa Simulinkom kao i brojnim dodacima (tzv. toolbox-

ovi) za različite oblasti inženjerstva i nauke.

Dodaci su razvrstani po sledećim kategorijama:

Matematika i optimizacija

Statistika i analiza podataka

Kontrola i analiza sistema

Procesiranje signala i komunikacija

Obrada slike

Test i merenja

Finansijsko modelovanje i analiza

Povezivanje sa drugim aplikacijama

Povezivanje baza podataka i izveštavanje

Distribuirano računanje...

Zvaničan sajt kompanije MathWorks koja je osmislila Matlab je www.mathworks.com.

Razvoj Matlaba od kreiranja do danas:

Version[46] Release

name

Num

ber

Bundl

ed JV

M

Year Releas

e date Notes

MATLAB

1.0

1984

MATLAB 2

1986

Page 40: Softver za simulaciju dinamičkih sistema

MATLAB 3

1987

MATLAB

3.5

1990

Ran on DOS but needed at least

a 386 processor; version 3.5m

needed math coprocessor

MATLAB 4

1992

Ran on Macintosh

MATLAB

4.2c

1994

Ran on Windows 3.1x, needed a math

coprocessor

MATLAB

5.0

Volume

8

1996

Decem

ber,

1996

Unified releases across all platforms

MATLAB

5.1

Volume

9

1997

May,

1997

MATLAB

5.1.1 R9.1

MATLAB

5.2 R10

1998

March,

1998 Last version working on classic Mac's

MATLAB

5.2.1 R10.1

MATLAB

5.3 R11

1999

Januar

y, 1999

MATLAB

5.3.1 R11.1

Novem

ber,

1999

MATLAB R12 12 1.1.8 2000 Novem

ber, First release with bundled Java virtual

Page 41: Softver za simulaciju dinamičkih sistema

6.0 2000 machine (JVM)

MATLAB

6.1 R12.1 1.3.0 2001

June,

2001

MATLAB

6.5 R13

13

1.3.1 2002 July,

2002

MATLAB

6.5.1 R13SP1

2003

MATLAB

6.5.2 R13SP2

Last release for IBM/AIX, Alpha/TRU64,

and SGI/IRIX[47]

MATLAB 7 R14

14

1.4.2

2004

June,

2004

Introduced anonymous and nested

functions[48]

Re-introduced for Mac (under Mac OS X)

MATLAB

7.0.1 R14SP1

Octobe

r, 2004

MATLAB

7.0.4 R14SP2 1.5.0

2005

March

7, 2005 Support for memory-mapped files[49]

MATLAB

7.1 R14SP3 1.5.0

Septe

mber 1,

2005

MATLAB

7.2 R2006a 15 1.5.0

2006

March

1, 2006

MATLAB

7.3 R2006b 16 1.5.0

Septe

mber 1,

2006

HDF5-based MAT-file support

MATLAB

7.4 R2007a 17

1.5.0_0

7 2007

March

1, 2007

New bsxfun function to apply element-

by-element binary operation with

singleton expansion enabled[50]

MATLAB R2007b 18 1.6.0 Septe

mber 1,

Last release for Windows 2000

and PowerPC Mac; License Server

Page 42: Softver za simulaciju dinamičkih sistema

7.5 2007 support for Windows Vista;[51] new internal

format for P-code

MATLAB

7.6 R2008a 19 1.6.0

2008

March

1, 2008

Major enhancements to object-oriented

programming abilities with a new class

definition syntax,[52] and ability to manage

namespaces with packages[53]

MATLAB

7.7 R2008b 20

1.6.0_0

4

Octobe

r 9,

2008

New Map data structure:[54] upgrades to

random number generators[55]

MATLAB

7.8 R2009a 21

1.6.0_0

4

2009

March

6, 2009

First release for Microsoft 32-bit & 64-bit

Windows 7, new external interface to

.NET Framework[56]

MATLAB

7.9 R2009b

22

1.6.0_1

2

Septe

mber 4,

2009

First release for Intel 64-bit Mac, and last

for Solaris SPARC; new use for the tilde

operator (~ ) to ignore arguments in

function calls[57][58]

MATLAB

7.9.1

R2009b

SP1

1.6.0_1

2

2010

April 1,

2010 bug fixes.

MATLAB

7.10 R2010a 23

1.6.0_1

2

March

5, 2010 Last release for Intel 32-bit Mac

MATLAB

7.11 R2010b

24

1.6.0_1

7

Septe

mber 3,

2010

Add support for enumerations[59]

MATLAB

7.11.1

R2010b

SP1

1.6.0_1

7

2011

March

17,

2011

bug fixes and updates

MATLAB

7.11.2

R2010b

SP2

1.6.0_1

7

April 5,

2012[60] bug fixes

MATLAB

7.12 R2011a 25

1.6.0_1

7

April 8,

2011

New rng function to control random

number generation[61][62][63]

MATLAB

7.13 R2011b 26

1.6.0_1

7

Septe

mber 1,

2011

Access-change parts of variables directly

in MAT-files, without loading into

memory;[64] increased maximum local

workers with Parallel Computing Toolbox

from 8 to 12[65]

Page 43: Softver za simulaciju dinamičkih sistema

MATLAB

7.14 R2012a 27

1.6.0_1

7

2012

March

1, 2012

MATLAB 8 R2012b 28 1.6.0_1

7

Septe

mber

11,

2012

First release

with Toolstrip interface;[66] MATLAB

Apps.[67] redesigned documentation

system

MATLAB

8.1 R2013a 29

1.6.0_1

7

2013

March

7, 2013 New unit testing framework[68]

MATLAB

8.2 R2013b 30

1.7.0_1

1

Septe

mber 6,

2013[69]

New table data type[70]

MATLAB

8.3 R2014a 31

1.7.0_1

1

2014

March

7,

2014[71]

Simplified compiler setup for building

MEX-files; USB Webcams support in

core MATLAB; number of local workers

no longer limited to 12 with Parallel

Computing Toolbox

MATLAB

8.4 R2014b 32

1.7.0_1

1

Octobe

r 3,

2014

New class-based graphics engine (a.k.a.

HG2);[72] tabbing function in

GUI;[73] improved user toolbox packaging

and help files;[74] new objects for time-

date manipulations;[75] Git-

Subversion integration in IDE;[76] big

data abilities with MapReduce (scalable

to Hadoop);[77] new py package for

using Python from inside MATLAB, new

engine interface to call MATLAB from

Python;[78][79] several new and improved

functions: webread (RESTful web

services with JSON/XML

support), tcpclient (socket-based

connections), histcounts , histogram

, animatedline , and others

MATLAB

8.5 R2015a

33

1.7.0_6

0

2015

March

5, 2015

Last release supporting Windows XP and

Windows Vista

MATLAB

8.5

R2015a

SP1

1.7.0_6

0

Octobe

r 14,

2015

MATLAB R2015b 34 1.7.0_6Septe

mber 3,

New MATLAB execution engine (a.k.a.

LXE);[80] graph and digraph classes to

Page 44: Softver za simulaciju dinamičkih sistema

8.6 0 2015 work with graphs and

networks;[81] MinGW-w64 as supported

compiler on Windows;[82] Last version with

32-bit support

MATLAB

9.0 R2016a 35

1.7.0_6

0

2016

March

3, 2016

Live Scripts: interactive documents that

combine text, code, and output (in the

style of Literate programming);[83] App

Designer: a new development

environment for building apps (with new

kind of UI figures, axes, and

components);[84] pause execution of

running programs using a Pause Button

MATLAB

9.1 R2016b 36

1.7.0_6

0

Septe

mber

15,

2016

define local functions in

scripts;[85] automatic expansion of

dimensions (previously provided via

explicit call to bsxfun ); tall arrays

for Big data;[86] new string type;[87] new

functions to encode/decode JSON;

official MATLAB Engine API for Java[36]

MATLAB

9.2 R2017a 37

1.7.0_6

0

March

9, 2017

MATLAB Online: cloud-based MATLAB

desktop accessed in a web

browser;[94] double-quoted strings;

new memoize function for Memoization;

expanded object properties

validation;[95] mocking framework for

unit testing;[96] MEX targets 64-bit by

default; new heatmap function for

creating heatmap charts[97]

MATLAB

9.3 R2017b 38

1.8.0_1

21

Septe

mber

21,

2017

MATLAB

9.4 R2018a 39

1.8.0_1

44

March

15,

2018[9

8]

MATLAB

9.5 R2018b 40

1.8.0_1

52

Septe

mber

12,

2018

Page 45: Softver za simulaciju dinamičkih sistema

MATLAB

9.6 R2019a 41

1.8.0_1

81

March

20,

2019

MATLAB Projects.

MATLAB

9.7 R2019b 42

1.8.0_2

02

Septe

mber

11,

2019

Introduction of 'arguments' block for input

validation, and enabling of dot indexing

into function outputs

Simulink kao dodatni programski paket omogućava modeliranje, simulaciju i analizu

dinamičkih sistema u posebnom grafičkom okruženju. Prva verzija Simulink-a je nastala

2002. godine.

Razvoj Simulinka od kreiranja do danas:

MATLAB

Version[13][14]

Release

name

Simulink

version Year Notes

1.0

1984

2

1986

3

1987

3.5

1990

Ran on MS-DOS but required at least a 386

processor. Version 3.5m required math

coprocessor

4

1992 Renamed from Simulab to SIMULINK[15]

4.2c R7

1994 Ran on Windows 3.1. Required a math

coprocessor

5.0 R8

1996

5.1 R9

1997

Page 46: Softver za simulaciju dinamičkih sistema

5.1.1 R9.1

5.2 R10

1998

5.2.1 R10.1

5.3 R11

1999

5.3.1 R11.1

6.0 R12

2000

6.1 R12.1

2001

6.5 R13 Simulink

5.0.2 2002

6.5.1 R13SP1 Simulink 5.1

2003

6.5.2 R13SP2 Simulink 5.2

7 R14 Simulink 6.0

2004

7.0.1 R14SP1 Simulink 6.1

7.0.4 R14SP2 Simulink 6.2

2005

7.1 R14SP3 Simulink 6.3

7.2 R2006a Simulink 6.4 2006

Page 47: Softver za simulaciju dinamičkih sistema

7.3 R2006b Simulink 6.5

7.4 R2007a Simulink 6.6

2007

7.5 R2007b Simulink 7.0 Last release for Windows 2000 and

PowerPC Mac.

7.6 R2008a Simulink 7.1

2008

7.7 R2008b Simulink 7.2

7.8 R2009a Simulink 7.3

2009

First release for 32-bit & 64-bit Windows 7.

7.9 R2009b Simulink 7.4 First release for Intel 64-bit Mac, and last for

Solaris SPARC.

7.10 R2010a Simulink 7.5

2010

Last release for Intel 32-bit Mac.

7.11 R2010b Simulink 7.6

7.12 R2011a Simulink 7.7

2011

7.13 R2011b Simulink 7.8

7.14 R2012a Simulink 7.9

2012

8 R2012b Simulink 8.0

8.1 R2013a Simulink 8.1

2013

8.2 R2013b Simulink 8.2

Page 48: Softver za simulaciju dinamičkih sistema

8.3 R2014a Simulink 8.3

2014

8.4 R2014b Simulink 8.4

8.5 R2015a Simulink 8.5

2015

8.6 R2015b Simulink 8.6 Last release supporting 32-bit Windows

9.0 R2016a Simulink 8.7

2016

9.1 R2016b Simulink 8.8

9.2 R2017a Simulink 8.9

2017

9.3 R2017b Simulink 9.0

9.4 R2018a Simulink 9.1

2018

9.5 R2018b Simulink 9.2

9.6 R2019a Simulink 9.3

2019

Simulink Onramp; Schedule Editor;

9.7 R2019b Simulink

10.0

Toolstrip; Messages; Blockset Designer;

Subsystem Reference