Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
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.
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
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
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.
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.
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.
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
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
,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
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
* ,
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
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
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".
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.
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.
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.
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
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.
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,
• 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.
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
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.
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.
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.
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.
• 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.
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),
• 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
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
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
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
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
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
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,
• 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.
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.
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
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.
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
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
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
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]
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
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
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
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
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
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