matlab web portal
TRANSCRIPT
Realizacija e-learning softvera za sisteme automatskog upravljanja
primenom web tehnologija
kandidat: Aleksandar Pavić
Diplomski – bachelor
U prezentaciji se govori o: Implementaciji MATLAB web portala na LAMP
platformi Virtuelizaciji MATLAB web portala Mogućnostima upotrebe i unapređenja Tehničkim detaljima oko funkcionalnosti Primerima upotrebe Interaktivnom primeru “kontrola nivoa
tečnosti u rezervoaru uz pomoć PID kontrolera”
Izradi interaktivnog primera
Polazne pretpostavke
Student
Pregled primera
Interakcija saMATLAB-om
Rešavanje zadataka
Izvršavanjeproizvoljnog MATLAB koda
Arhitektura servera
Apache web server PHP
Bash shell
Database
Matlab
Procesiranje upita
Generisanje rešenja
Multitasking/load-balancing/virtuelizacija...
bash shell
Instanca Matlaba
Instanca Matlaba
Instanca Matlaba
PHP
APACHE
Student
Student
Predavač
PHP/Load balancing
Saradnik
Matlab cloud
Prednost upotrebe virtuelne mašine za obrazovne struke Linux i sav softver na virtuelnoj mašini kao i
vmware su freeware Studentu se može dati kompletna virtuelna
mašina, da ponese kući Student može da u obrazovne svrhe upropasti
kompletan kod na virtuelnoj mašini, ništa nije izgubljeno.
Komunikacija korisnik-internet-matlabPočetak
Unos podataka
Kreiranje direktorijuma i m-
fajla
Kreiranje koda za poziv publish()
metode
Korisnik kuca MATLAB kod,odabire naziv datoteke i tip izlaznog rezultata
Sistem kreira direktorijum za zadatak i kreira .m datoteku sa kodom koji je korisnik uneo u prethodnom koraku
Kreira se kod sa publish metodom koji poziva datoteku i opciju izlaznog formata
Poziv exec funkcije sa
par. matbg i ulaznim .m
Poziva se php funkcija exec, sa parametrom matbg, koji je bash shell skripta za startovanje matlab-a iz komandne linije pod linuxom, sa ulaznim parametrom (publish datoteka iz prethodnog koraka), koji, kao pozadinski proces generiše rezultat izvršavanja matlab koda u naznačenom izlaznom formatu
Isporuka rezultata
KRAJ
Javascript/jQuery, ajax zahtev, koji proverava da li je datoteka sa rezultatom generisana
Izvršavanje završeno?
NE
DA
U speficiciranom izlaznom formatu, korisniku se prezentuje rezultat izvršavanja unešenog matlab koda
Interakcija PHP-MATLABProgramski kod:
matlab -nodisplay -nodesktop -nosplash <$1 > $2 &
//upis MATLAB koda u datoteku$fp = fopen($userFolder.$filename.'/'.$filename.'.m', 'w');fwrite($fp, $mcode);fclose($fp);
//kreiranje publish datoteke$pub_code="publish('".$userFolder.$filename."/".$filename.".m','".$tipIzlaza."')";$fp = fopen($userFolder.$filename.'/publish_'.$filename.'.m', 'w');fwrite($fp, $pub_code);fclose($fp);
//podešavanje korisničkih pravaexec('chmod 0777 '.$userFolder.$filename.'/publish_'.$filename.'.m');exec('chown nobody '.$userFolder.$filename.'/publish_'.$filename.'.m');chdir($id);
//poziv MATLAB middleware bash skripte sa parametrom ka publish datoteciexec('matbg '.$userFolder.$filename.'/publish_'.$filename.'.m'.' out.txt');
Editor MATLAB koda
Matlab editor EditArea
Izgled portala u internet pregledniku:
Prikaz greške u kodu i web formatiranja:
Programski kod:
%% Matrica A [3x3]A=[3 2 5;4 3 0;7 1 12];%% Matrica B [3x1]b=[9 -2 29]';%% Racunanje vektora XX=A\b
Interaktivni primer kontrole punjenja rezervoara sa PID regulatorom
Princip funkcionisanja interaktivne simulacije
SIMULACIJAOBRADA REZULTATA
POZIV MATLABAOBRADA PODATAKAINTERAKCIJA SA
KORISNIKOM
Model rezervoara
h
bV
a h
A
Promenljiva Tip Opis h varijabla Visina tečnosti u rezervoaru – regulisana varijabla A parametar Površina dna rezervoara b konstanta Ulaz vode u rezervoar a konstanta Izlaz vode iz rezervoara V varijabla Voltaža pumpe ili ventila na ulazu – manipulativna varijabla
Blok-šema simulink modela
sys='rezervoar';load_system(sys);set_param('rezervoar/PID Kontroler', 'P', '0.283');set_param('rezervoar/PID Kontroler', 'I', '0.20');set_param('rezervoar/PID Kontroler', 'D', '-1.4996');sim(sys);save('scope.txt','ScopeData','-ascii');
Prikaz gotovog primera...
Mogućnosti unapređenja primera
Keširanje već simuliranih parametara Rad bez MATLAB-a (pripremljen skup
podataka) Mogućnost izmene tipa kontrolera
Način na koji je projekat realizovan Oko 40 commit revizija koda i rada Na 3 računara + virtuelna mašina bez
problema oko verzioniranja XP-dev.com Tortoise SVN i svn konzolni klijent
U prezentaciji je bilo reči o: Implementacija MATLAB web portala na LAMP
platformi Mogućnosti hostinga/virtuelizacije rešenja Mogućnostima upotrebe i unapređenja Tehničkim detaljima oko funkcionalnosti Primerima MATLAB koda izvršenim putem
portala Interaktivnom primeru “kontrola nivoa
tečnosti u rezervoaru uz pomoć PID kontrolera”
Izradi interaktivnog primera
Kraj!