Matematičko klatno
-
Upload
ammar-kevilj -
Category
Documents
-
view
469 -
download
18
description
Transcript of Matematičko klatno
UNIVERZITET U BIHAĆU
TEHNIĈKI FAKULTET
BIHAĆ
ODSJEK: ELEKTROTEHNIKA
SMJER: INFORMATIKA
SEMINARSKI RAD
Predmet: Napredno programiranje 1
Tema: Simulacija Matematičkog klatna primjenom Matlab-a i EJS-a
Viši asistent: Student:
Mr. Edin Mujĉić Ammar Kevilj 520
Bihać , maj 2012 god.
- 1 -
SADRŽAJ 1. UVOD ............................................................................................................................................... - 2 -
2. OPIS I MATEMATIČKI MODEL KLATNA ............................................................................................ - 3 -
2.1 STVARANJE SIMULINK MODELA .................................................................................................... - 4 -
3. OPĆENITO O MATLAB-u i EJS-u ....................................................................................................... - 6 -
3.1 MATLAB ......................................................................................................................................... - 6 -
3.2 EJS (Easy Java Simulation) ............................................................................................................. - 7 -
4. GRAFIČKI INTERFEJS MATEMATIČKOG KLATNA .............................................................................. - 8 -
4.1 MATLAB GUI .................................................................................................................................. - 8 -
4.2 EJS GUI ......................................................................................................................................... - 12 -
5. ZAKLJUČAK ..................................................................................................................................... - 17 -
6. LITERATURA ................................................................................................................................... - 18 -
- 2 -
1. UVOD
U ovom seminarskom radu odraĊena je simulacija matematiĉkog klatna primjenom
programskog paketa Matlab-a i EJS-a (Easy java simulations). Simulacija je odraĊena u oba
programska paketa, radi poreĊenja i efikasnoti samih alata za ureĊivanje simulacija.
Jednostavnost realizacije projekta izgradnje simulacije matematiĉkog klatna biće prikazana
detaljno u narednom dijelu rada, kao poreĊenje ova dva programska alata prikazat će mo
prednosti i nedeostatke i jednog i drugog alata.
- 3 -
2. OPIS I MATEMATIČKI MODEL KLATNA
Klatno je mehaniĉki sistem koji se kreće na periodiĉan naĉin u polju Zemljine teže. U pogledu
realizacije razlikujemo sledeće vrsta klatna: matematiĉko, fiziĉko, torziono,itd. Matematiĉko
klatno se sastoji od tijela mase m (koje smatramo materijalnom taĉkom) okaĉenog o tanku i
neistegljivu nit, dužine l, u polju Zemljine teže (slika 1.1). Kretanje ovog tijela, koje se odvija
u vertikalnoj ravni, nakon izvoĊenja iz ravnotežnog položaja, se na dalje odvija pod dejstvom
sile gravitacije. U sluĉaju da su uglovi otklona mali, ovakav sistem se kreće kao prost
oscilator. Sile koje djeluju na tijelo u ovom sluĉaju su sila zatezanja, Fz, i gravitaciona sila
mg. Tangencijalna komponenta sile zemljine teže mg sin µ, je uvijek usmjerena ka
ravnotežnom položaju, µ = 0, odnosno uvijek je suprotno usmjerena od vektora pomjeraja. Iz
tog razloga je tangencijalna komponenta gravitacione sile, ustvari restituciona sila, tako da
drugi Njutnov zakon, za kretanje po tangenti glasi :
Slika 1.1 Prikaz matematiĉkog klatna otklonjenog iz ravnotežnog položaja.
Na prvi pogled ova jednaĉina ne opisuje linearno harmonijsko oscilovanje jer na desnoj strani
ne stoji veliĉina od koje se traži izvod na lijevoj strani jednaĉine. MeĊutim, kako smo
pretpostavili da je ugao otklona mali, sin µ se može aproksimirati sa µ, tako da jednaĉina
kretanja matematiĉkog klatna postaje :
- 4 -
Kako ova jednaĉina ima formu jednaĉine koja opisuje kretanje linearnog harmonijskog
oscilatora, zakljuĉujemo da se, za male uglove otklona (amplitude), kretanje matematiĉkog
klatna, svodi na linearno harmonijsko oscilovanje. U skladu sa tim, riješenje posljednje
diferencijalne jednaĉine je :
gdje je µmax, maksimalna ugaona elongacija, a ugaona frekvencija je :
Na osnovu ovoga je period oscilovanja klatna :
Drugim rijeĉima, period i frekvencija matematiĉkog klatna zavise jedino od dužine klatna i od
ubrzanja zemljine teže. Kako je period nezavisan od mase klatna, može da se zakljuĉi da sva
klatna jednake dužine, koja osciluju na istom mjestu (isto g), osciluju sa istim periodom.
2.1 STVARANJE SIMULINK MODELA
Ponašanje dinamickih sistema opisano je skupom diferencijalnih jednadžbi koje su općenito
nelinearne. U tim su diferencijalnim jednadžbama sadržane su zakonitosti koje vrijede za
sistem. Osnovni je problem koji se pojavljuje kod analize takvih sistema nepostojanje opće
metodologije za rješavanje nelinearnih diferencijalnih jednadžbi. Kao logiĉno rješenje
problema analize ponašanja ovakvih sistema nameće se provoĊenje simulacije sistema na
digitalnom raĉunaru.
SIMULINK predstavlja grafiĉki alat koji koristi matematiĉku ljusku Matlaba kako bi se
provela simulacija sistema. Izgradnja simulacijskog modela unutar Simulinka obavlja se na
jednostavan naĉin korištenjem biblioteke gotovih grafickih blokova. Osim postojećih blokova
korisnik može napisati i vlastite blokove koristeći bilo Matlabove m-funkcije ili funkcije
napisane u programskom jeziku C/C++ (S-funkcije). Simulacijska shema u Simulinku sastoji
se od blokova i linija tj. signala kojima se povezuju pojedini blokovi i time realiziraju
jednadžbe koje opisuju sistem. Osnovne postavke simulacije postavljaju se odabirom opcije
"Simulation/configuration". Trajanje simulacije zadaje se izborom poĉetnog (start time) i
završnog (stop time) vremena simulacije. U dijelu "Solver options" odreĊuju se parametri
numeriĉkog postupka. Pritom se može odabrati konstantni odnosno promjenjivi vremenski
korak kao i sami numeriĉki postupak koji će biti korišten za simulaciju sistema. U dijelu
izbornika Output option korisnik može odabrati jednu od opcija:
² Refine output,
² Produce additional output,
² Produce specified output only
- 5 -
Sistem za upravljanje matematiĉkim klatnom dat je na sljedećoj slici :
Slika 2.1 Simulink model matematiĉkog klatna.
Objašnjenje blokova iz simulinka koji su iskorišteni za simulacija sistema:
Step blok - generira korak izmeĊu dva definisana nivoa za neko odreĊeno vrijeme.
Gain blok – vrši množenje neke ulazne vrijednosti sa nekom konstantnom vrijednošću
Integrator blok – vrši integriranje ulazne vrijednosti i korisiti se sa kontinuiranim sistemima
Sum block – provodi sabiranje ili oduzimanje sa ulaznim vrijednostima
To File blok – ispisuje izlazne vrijednosti u obliku matrice u MAT datoteku
To Workspace blok – ispisuje izlazne vrijednosti u workspace Matlaba u obliku niza ili
strukture
- 6 -
3. OPĆENITO O MATLAB-u i EJS-u
3.1 MATLAB
Grafiĉko korisniĉko suĉelje (GUI) je grafiĉki prikaz u jednom ili više prozora koji
sadrže kontrole, pod nazivom komponente, koje omogućuju korisniku obavljanje interaktivnih
zadataka.Korisnik GUI-a ne mora stvoriti skriptu ili tip naredbe u komandnoj liniji kako bi
ostvario zadatke.GUI komponente mogu ukljuĉiti izbornike, alatne trake, tipke, popis okvire,
klizaĉe.GUI kreirani korištenjem alata MATLAB, mogu obavljati bilo koju vrstu raĉunanja,
ĉitati i pisati datoteke sa podacima, komunicirati sa drugim GUI-ima, te prikazati podatke u
tablicama.
Grafiĉko korisniĉko suĉelje MATLAB razvojne okoline, pruža skup alata za stvaranja
korsiniĉkog grafiĉkog suĉelja(GUIs).Ovi alati pojednostavljuju proces postavljanja i
programiranja GUI-a.Korištenjem uputstva za ureĊivanje izgleda, GUI možete popuniti
povlaĉenjem ili klikanjem GUI komponenti kao što su – ose, paneli, tipke (gumbovi),
tekstualna polja, klizaĉi, itd. u površinu za izgled.TakoĊer možete stvoriti izbornike i kontekst
izbornike za GUI.Iz editora za izgled, možete mijenjati veliĉinu GUI-a, možete mijenjati
izgled i dojam komponenti, zatim možete uskladiti komponente, napraviti hijerarhijski popis
komponenata objekata, te postaviti GUI opcije.
Prije poĉetka izgradnje GUI-a morate ga dizajnirati.Zatim morate postaviti par zahtijeva:
Tko će biti korisnici GUI-a
Šta želite da GUI radi
Kako će korisnici komunicirati sa GUI-em
Koje komponente GUI-a treba proslijediti funkciji
Pri projektovanju bilo kojeg softwera, morate razumjeti svrhe koje novi GUI treba
zadovoljiti.Vi ili potencijalni korisnici GUI-a trebaju dokumentirati zahtijeve korisnika, što
prije, nego što se GUI poĉne izraĊivati.
Postoji mnogo naĉina za pokretanje GUI-a.Možete pokrenuti GUI iz:
iz komandne linije tako da upišete GUIDE
iz Start izbornika odabriom MATLAB>GUIDE (GUI Builder)
iz MATLAB File (izbornika) odabirom New > GUI
iz MATLAB alatne trake klikom na gump GUIDE
- 7 -
3.2 EJS (Easy Java Simulation)
EJS (Easy Java Simulation) je alat za modeliranje koji omogućuje znanstvenicima (i to ne
nužno raĉunalnim struĉnjacima) laku kreaciju simulacija. S tehniĉkog gledišta, EJS olakšava
modeliranje te omogućuje jednostavnu, ali i moćnu konceptualnu strukturu za izradu
simulacija. Alat pruža red radnih zaslona koji se koriste za implementaciju modela i stvaranje
grafiĉkog suĉelja. EJS automatizira zadatke kao što su numeriĉko raĉunanje uobiĉajenih
diferencijalnih jednadžbi i animacije. Komunikacija izmeĊu programa i krajnjeg korisnika je
omogućena bez potrebe za low-level programiranjem. Oĉito, dio zadatka ovisi o krajnjem
korisniku. Krajnji je korisnik odgovoran za nalaženje odreĊenog modela nekog fenomena te
dizajniranje i odabir kranjeg izgleda modela. EJS pokazuje svoje dobro lice upravo kod
zadataka visokog stupnja koji su više vezani uz samu znanost nego uz programiranje.
Korisnik se potiĉe da svoje vrijeme i energiju posveti uĉenju znanosti, tj. na nešto što samo
raĉunalo ne može.
EJS je Java program koji se može koristiti na svim operativnim sustavima koji podržavaju
Java Virtual Machine (VM). Pošto je Java dizajnirana da bude neovisna o platformama, EJS
suĉelje na Mac OS X, Unix-u i Linux-u identiĉno je onom na Windows operativnom sustavu.
Ovdje je dan opis za Windows
Unutar novonapravljenog direktorija nalazi se file koji se zove EjsConsole.jar. Duplim
klikom miša pokreće se EJS konzola (Slika 3.2.) i file chooser dijalog (Slika 3.2.) koji će biti
opisan kasnije.
Slika 3.2 EJS konzola.
- 8 -
4. GRAFIČKI INTERFEJS MATEMATIČKOG KLATNA
4.1 MATLAB GUI
U sljedeće dijelu rada će mo se upoznati sa završnom aplikacijom koja je realizirana u Matlab
okruženju. TakoĊer će mo posjasniti neke važnije dijelove same aplikacije kao logiku sistema
i njen izvršni kod. Nakon pokretanja glavnog m-file-a otvorit će se prozor kao na sljedećoj
slici :
Slika 4.1 Poĉetni prozor aplikacije matematiĉko klatno.
Kao što vidimo na slici se nalaze tri panela, od kojih su dva panela za predstavljanje podataka,
a jedan panel je u svhru odreĊivanja ulaznih varijabli sistema. Na prvom panelu koji se nalazi
u gornjem lijevom uglu se nalazi slika za simulaciju rada samog klatna. U pocetnim uslovima
ona miruje, ali ukoliko ugao otklona klatna bude veci simlacija će poceti sa radom. Na panelu
ispod se nalazi skup „slider-a“ koji služe za postavljanje ulaznih varijabli. Osnovne
promjenjive kod klatna su masa, gravitacija, duzina užeta i ugao otklona. Pošto je rijeĉ o
lineranom matematiĉkom klatnu nismo uzeli u obzir trenje užeta pa tako ovakva simulacija je
harmonijska. Kada postavimo parametre i obilježimo prikaz dijagrama potrebno je da
kliknemo da gumb START. Nakon ovoga simlulacija klatna će poĉeti da se izvršava, a na
desnom panelu će se pokazati dijagrami kretanja klatna i energije. Zbog problema procesnog
programiranja kao što je i sam Matlab nije bilo u mogućnosti izvršiti dvije simulacije
istovremeno pa je iz toga razloga simulacija kretanja dijagrama izostavljena.Ovo je bilo
moguće uĉiniti samo zato što je klatno linerano pa je dijagram kretanja klatna i energije
periodiĉan.
- 9 -
Na sljedećoj slici će mo prikazati kako izgleda naša aplikacija kada joj se zadaju parametri :
Slika 4.2 Prikaz aplikacije sa zadanim parametrima.
TakoĊer je važno napomenuti da sama aplikacija je uzroĉno posljediĉna tj. Kada pmjerimo
samo jedan parametar na prozoru se pokazuju automatske promjene simulacije. Ovo je bitno
iz toga razloga da za svake podešene parametre nemoramo stisnuti gumb Start. Pritiskom na
Gumb Stop simulacija se zaustavlja a dijagrami kretanja i energije se poništavaju. A sada da
pogledamo šta se krije u pozadini ove simulacije.Sama aplikacija je saĉinjena od glavnog m
file-a i tri pomoĉna funkcijska fajla. Prvi funkcijski i najbitniji file-j je onaj za simulaciju
kretanja klatna. Sada pogledajmo sami kod tog file-a :
function [ ] = simKlatno(g,endTime,mass,radius,theta,rodLength,slika) deltaTime = 1/50; %Vrijeme promjene slike na dijagramu %Postavke promjenjivih rodPivotPoint = [2 2]; %koordinate klatna velocity = [0 0]; %% Simulacija assert(radius < rodLength); position = rodPivotPoint - (rodLength*[-sind(theta) cosd(theta)]);
%pozicija klatna
%Postavljanje grafa
axes(slika); xlim(slika, [(rodPivotPoint(1) - rodLength - radius) (rodPivotPoint(1) +
rodLength + radius)] ); ylim(slika, [(rodPivotPoint(2) - rodLength - radius) (rodPivotPoint(2) +
rodLength + radius)] );
- 10 -
rectHandle = rectangle('Position',[(position - radius/2) radius radius],... 'Curvature',[1,1],'FaceColor','g'); %kugla klatna hold on plot(rodPivotPoint(1),rodPivotPoint(2),'^'); %pivot lineHandle = line([rodPivotPoint(1) position(1)],... [rodPivotPoint(2) position(2)]); % hold off grid on
%Kreiranje same simulacije for time = (deltaTime:deltaTime:endTime) drawnow; %Ukupna gravitaciona sila
gravitationalForceCylindrical = [mass*g*cosd(theta)
mass*g*sind(theta)]; %u slučaju da postoji trenje uežeta totalForce = gravitationalForceCylindrical; rodForce = [-totalForce(1) 0]; %cylindrical coordinates totalForce = totalForce + rodForce; acceleration = totalForce / mass; %F = ma velocity = velocity + acceleration * deltaTime; rodLength = rodLength + velocity(1) * deltaTime; theta = theta + velocity(2) * deltaTime; position = rodPivotPoint - (rodLength*[-sind(theta) cosd(theta)]); %Update grafa sa novom pozicijom set(rectHandle,'Position',[(position - radius/2) radius radius]); set(lineHandle,'XData',[rodPivotPoint(1) position(1)],'YData',... [rodPivotPoint(2) position(2)]); End %Kraj for petlje za simulaciju end %kraj funkcijskog fajla.
Pored ovog funkcijkog fajla takoĊer se nalaze još dva, ato su funkcija za dijagram kretanja i
dijagram energije. Oni su po dosta sliĉni zato će mo prikazati samo dijagram simulacije
energije i objasniti logiku samog koda :
function [ ] = energija(teta,m,G,d,obj_graf) axes(obj_graf); ugao=0:0.025:teta; y=m*G*d*sin(ugao); plot(ugao,y,'r.'); xlabel('X-osa'); ylabel('Y-osa'); hold on grid on y1=m*G*d*sin(ugao+(pi/2)); plot(ugao,y1,'g.'); legend('Potencijalna','Kineticka'); hold on grid on end
Sama funkcija ima svoje ulazne varijable koje su joj potrebne za rad.Prvo i najvažnije je
postavljanje objekta upravljanja grafa na sami plot. Zatim smo odredili kretanje ugla i
prikazali izlaznu formulu za uparvljanje energije. Vidimo da je ovaj dijagram sastavljen od
dvije slike koje su postavljene na zajedniĉki plot. TakoĊer smo malo ukrasili sami dijagram
postavljajući oznake promjenjivih i mreže.
- 11 -
Jedna od najvažnijih metoda kod objektnog upravljanja u Matlabu je metoda Callback
preko koje se stvara akcija na samoj aplikaciji. Ova metoda je sliĉna kod gotvo sve jednog
parametra a sastoji se od toga da se uzmu vrijednosti parametara, ispitaju uslovi a zatim se
proslijede samim funkcijama za cratanje grfova i klatna. Najjednostavnije za prikazati je
callback metoda za gumb start.Ona će biti prikaza u narednom dijelu koda :
function start_Callback(hObject, eventdata, handles) % hObject handle to start (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) teta=get(handles.ugao,'Value'); uslov=get(handles.c1,'Value'); uslov1=get(handles.c2,'Value'); if (teta > 0) cla(handles.kretanje_klatna,'reset'); cla(handles.axes8,'reset'); cla(handles.axes5,'reset'); G=get(handles.gravitacija,'Value'); m=get(handles.masa,'Value'); d=get(handles.duzina,'Value'); T =1000; r = m * 0.1;
if (uslov) brzina(teta,d,G,handles.axes5); else cla(handles.axes5,'reset'); end
if (uslov1) energija(teta,m,G,d,handles.axes8); else cla(handles.axes8,'reset'); end
simKlatno(-G,T,m,r,teta,d,(handles.kretanje_klatna)); guidata(hObject, handles); else msgbox('Postavite ugao veci od nule','Obavjestenje','warn'); end
Ovdje je važno napomenuti da nije moguće zapoĉeti simulaciju ukoliko ugao otklona nije veći
od nule. TakoĊer potrebno je resetovati prethodne dijagrame da bi na njih postavili nove.
Potrebno je uzeti vrijednosti parametara pomoću metode :
get (handles.objekat_upravljanja,'Value').TakoĊer je važno napomenuti da u ovoj funkciji za
start simulacije se nalaze dva uslova u kojima se ispituje da li su chekirani boxovi za
simulaciju dijagrama kretanje i energije. U koliko je odovor taĉan oni će biti prikaza pomoću
svojih funkcija koje smo pojasnili u prethodnom koraku.Svaki od parametara imaju svoje
poĉetne uvijete bez kojih simulacija ne bih bila moguća a ni samo pokretanje aplikacije nebih
bilo izvodljivo.
- 12 -
4.2 EJS GUI
Prije nego pokažemo kako ovu aplikaciju realizovati pmoću EJS-a potrebno je da malo bolje
se upoznamo sa ovim okruženjem. Na samom startu ĉeka nas konzola koju smo prethodno
pokazali, azatim poslije nam se otvara glavni prozor ovog okruženja.
Slika 4.3 Radni prozor EJS okruženja.
- 13 -
EJS je sastavljen od tri dijela, i svaki je poseban na svoj naĉin. Taskbar omogućuje niz ikona
koje služe za brisanje, otvaranje, pretraživanje, spremanje podataka, konfiguriranje EJS-a,
informacije i pomoć oko EJS-a, što je vrlo korisno. Desnim klikom na neku od ikonica otvara
se prozor s mogućim alternativnim, ali povezanim akcijama. Donji dio suĉelja sadrži prostor
za izlazne poruke koje program tijekom modeliranja izbacuje. Centralni dio suĉelja sadrži
radne panele gdje se vrši modeliranje.
EJS omogućuje tri radna panela za modeliranje. Prvi panel naziva Description, omogućava
korisniku stvaranje i editiranje opisa modela baziranog na HTML skripti (npr. neki zadatak za
uĉenike, opis problema, jednadžbe gibanja, itd.). Drugi panel naziva Model, posvećen je
procesu modeliranja. Ovaj model se koristi za stvaranje varijabli koje opisuju model, poĉetnih
uvjeta tih varijabli i upis algoritama koji opisuju kako se model mijenja u vremenu. Treći
panel, naziva View, posvećen je zadatku graĊenja grafiĉkog suĉelja te omogućuje korisniku da
kontrolira simulaciju i grafiĉki je prikazuje. Izabirom elemenata s palete i dodavanjem na
Tree of elements, koji se nalazi unutar panela View, gradi se grafiĉko suĉelje. Paleta sadrži
gumbe, klizaĉe, itd...
Na sljedećoj slici prikazati će mo koje su to sve ulazne varijable koje je potrebno definisati
kod ove simulacije :
Slika 4.4 Prikaz varijabli za simulaciju
- 14 -
Važno je taĉno postaviti poĉetne uvjete kada implementiramo model pošto model mora poĉeti
u fiziĉki mogućem stanju. Ovaj model je relativno jednostavan pa incijalizaciju modela
radimo uvrštavajući vrijednosti (ili u nekim ostalim primjerima jednostavne Java izraze poput
izraza za kinetiĉku energiju 0.5*m*vx*vx) u Initial value kolonu. U modelu klatna potrebno
je definirati pocetni ugao kugle. EJS suĉelje uglove raĉuna u radijanima pa ukoliko želimo
mijenjati uglove u stupnjevima potrebno je napisati algoritam za pretvorbu radijana u
stupnjeve .TakoĊer je potrebno definirati brzine vx i vy u ovisnosti o uglu. EJS koristi ove
vrijednosti kada pokreće simulaciju. Neki napredniji modeli mogu zahtijevati kompliciranije
algoritme za incijalizaciju.
Panel naziva Evolution omogućuje zapis Java koda koji defnira kako kuglica u gravitacijskom
polju evoluira u vremenu i ova opcija se ĉesto koristi na modelima koji nisu bazirani na
obiĉnim diferencijalnim jednadžbama (ODE-ordinary differential equation). Tu je i druga
opcija koja nam omogućuje upis ODE bez programiranja. EJS pruža mogućnost da preko
editora definiramo diferencijalne jednadžbe u obliku koji odgovara matematiĉkoj notaciji. EJS
tada automatski generira taĉni Java kod.
Sada ćemo vidjeti kako taj editor funkcionira na ovom modelu. Zbog toga što ODE algoritmi
riješavaju sisteme diferencijalnih jednadžba prvog reda, jednadžbe viših redova moraju biti
napisane u obliku jednadžbi prvog reda. To se može uĉiniti tako da brzinu definiramo kao
neovisnu varijablu koja odgovara svojoj jednadžbi.
Slika 4.5 Definisanje diferencijalnih jednadžbi prvog reda.
- 15 -
Iako bismo Evolution panel mogli nazvati srcem programa, ne raĉunaju se sve varijable
modela ovdje. Varijable se mogu raĉunati i poslije evolucije. Koristeći varijable koje su
izraĉunate evolution algoritmom, moguće je odrediti tzv. vanjske varijable.
Treći radni panel u EJS-u je panel naziva View (izgled). Ovaj panel omogućava stvaranje
grafiĉkog suĉelja koje sadrži vizualizaciju same simulacije, interakciju korisnika i kontrolu
programa s minimalnim programiranjem. Slika 4.6. prikazuje izgled modela klatna.
Desni okvir panela prikazan na slici 4.6. sadrži kolekciju elemenata koji nam služe za
stvaranje grafiĉkog suĉelja. Svaki od tih elemenata je specijalizirani objekt s on-screen
prezentacijom. Da bi dobili informacije o pojedinom elementu, potrebno je kliknuti na ikonu i
stisnuti F1 ili desnim klikom odabrati Help meni. Pri izradi korisniĉkog suĉelja, radi se okvir i
dodaju se elementi (npr. gumbi i grafovi) na „drag and drop“ naĉin.
Lijevi okvir Tree of elements (stablo elemenata), takoĊer prikazan na slici 4.6., prikazuje
strukturu suĉelja ovog modela. U ovom primjeru stablo elemenata sadrži prozor, glavni okvir,
koji sadrži sve elemente od kojih je napravljeno suĉelje. Stablo prikazuje njihova imena koja
opisuju njihovu namjenu. Desnim klikom na pojedini element otvara se Meni u kojem postoji
mogućnost mijenjanja strukture pojedinog elementa. Svaki element ima set vlastitih
parametara naziva properties koji nam omogućuju ureĊivanje prikazivanja i ponašanja
elementa. Dvostrukim klikom na element u stablu, otvara se tzv. properties inspector. Tu su
karakteristike, kao npr. boja, obiĉno namještene na konstantnu vrijednost (npr. RED
(crvena)). Varijable iz modela se takoĊer mogu koristiti za postavljanje osobina elemenata.
Mogućnost spajanja varijable i osobina, bez potrebe za programiranjem, kljuĉ je za
pretvaranje
Slika 4.6 View panel.
- 16 -
Potrebno je sada povezati varijable i incijalizacije sa varijablama koje se nalaze na panelu, a
to će mo uĉiniti tako što će za svaki element pronaći odgovarajuću varijablu iz incijalizacije i
uvrstiti ti je u njegov property.
Iz ovog primjera vidi se kako je Easy Java Simulation doista moćan alat koji nam dopušta da
iskoristimo znanje o nekom modelu. Postoji već mnogo napravljenih modela koji su
kompleksniji - kako fizikalno tako i vizualno.
Da bismo mogli pokrenuti simulaciju moramo kliknuti zelenu ikonu Run. Kada kliknemo
ikonu, varijable se iniciraju i u mogućnosti smo pokrenuti simulaciju. Kada kliknemo na
ikonu, ikona mijenja boju u crvenu i to oznaĉava da je simulacija spremna za pokretanje. Sve
dok ikona svijetli nismo u mogućnosti mijenjati varijable i ostale opcije u EJS-u. Za
zaustavljanje simulaciju kliknite desnim gumbom miša na ikonu i stisnite Kill current
simulation.
Slika 4.7 Pokretanje simulacije.
- 17 -
5. ZAKLJUČAK
Kroz ovaj seminarski rad smo vidjeli da je Matlab jako moćan programski paket, koji sadrži
mnogo funkcija i dodataka koji omogućuju simulaciju bilo kojeg sistema koji se može
matematiĉki opisati, kao i kreiranje korisniĉkog interfejsa, tj. GUI-a za korisnike koji ne
moraju ni da poznaju ovaj programski paket. TakoĊer smo se upoznali sa novim okruženjem
za kreiranje simulacije koje nam dosta povoljnije i brže služi za izradu naših aplikacija, a
bazirano je na Javi. Rad u EJS-u ne zahtjeva programerske vještine te omogućava studentima
da većinu vremena posvete znanosti i problemima vezanim uz modele. Problem kod ovog
programa je to što je za neke kompliciranije simulacije nužno poznavati skriptu, tj. napisati
dobre naredbe, jer u protivnom nije moguće napraviti dobre modele.
- 18 -
6. LITERATURA
[1] Introduction to Simulink with Engineering Applications, Steven T. Karris
[2] Graphics and GUIs with MATLAB - Patrick Marchand and O. Thomas Holland
[3] www.mathworks.com
[4] http://www.modelbenders.com/encyclopedia/encyclopedia.html
[5] http://www.um.es/fem/EjsWiki/
[6] http://en.wikipedia.org/wiki/Simulation
[7] Rudolf Krsnik, Fizika 1