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

Matematičko klatno

Embed Size (px)

DESCRIPTION

Matlab & EJS

Citation preview

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

Page 2: Matematičko klatno

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

Page 3: Matematičko klatno

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

Page 4: Matematičko klatno

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

Page 5: Matematičko klatno

- 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

Page 6: Matematičko klatno

- 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

Page 7: Matematičko klatno

- 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

Page 8: Matematičko klatno

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

Page 9: Matematičko klatno

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

Page 10: Matematičko klatno

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

Page 11: Matematičko klatno

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

Page 12: Matematičko klatno

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

Page 13: Matematičko klatno

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

Page 14: Matematičko klatno

- 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

Page 15: Matematičko klatno

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

Page 16: Matematičko klatno

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

Page 17: Matematičko klatno

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

Page 18: Matematičko klatno

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

Page 19: Matematičko klatno

- 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