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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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