SlideShare uma empresa Scribd logo
1 de 20
Realizacija e-learning softvera
za sisteme automatskog upravljanja
primenom web tehnologija
kandidat: Aleksandar Pavić
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 sa
MATLAB-om
Rešavanje zadataka
Izvršavanje
proizvoljnog 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-matlab
Poč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-MATLAB
Programski 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 prava
exec('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 datoteci
exec('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 X
X=Ab
Interaktivni primer kontrole punjenja
rezervoara sa PID regulatorom
Princip funkcionisanja interaktivne
simulacije
SIMULACIJAOBRADA REZULTATA
POZIV MATLABAOBRADA PODATAKA
INTERAKCIJA 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!

Mais conteúdo relacionado

Semelhante a Matlab web portal

Studija slučaja - phishing
Studija slučaja - phishingStudija slučaja - phishing
Studija slučaja - phishingBoban Lapcevic
 
Ljubav Flexa I PHP-a
Ljubav Flexa I PHP-aLjubav Flexa I PHP-a
Ljubav Flexa I PHP-aIvan Ilijasic
 
Automatizacija u Front-end razvojnom procesu
Automatizacija u Front-end razvojnom procesuAutomatizacija u Front-end razvojnom procesu
Automatizacija u Front-end razvojnom procesuDalibor Gogic
 
Dobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne bibliotekeDobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne bibliotekeMiloš Đekić
 
Dobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne bibliotekeDobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne bibliotekeGoran Rakic
 
Getting bigger with flask
Getting bigger with flaskGetting bigger with flask
Getting bigger with flaskJosipKatalinic
 
Profesionalizacija veb-sajtova polaznika i izmena šablona naslovne strane
Profesionalizacija veb-sajtova polaznika i izmena šablona naslovne straneProfesionalizacija veb-sajtova polaznika i izmena šablona naslovne strane
Profesionalizacija veb-sajtova polaznika i izmena šablona naslovne straneAleksandar Urošević
 
Napredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkNapredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkSaša Stamenković
 

Semelhante a Matlab web portal (9)

Studija slučaja - phishing
Studija slučaja - phishingStudija slučaja - phishing
Studija slučaja - phishing
 
Ljubav Flexa I PHP-a
Ljubav Flexa I PHP-aLjubav Flexa I PHP-a
Ljubav Flexa I PHP-a
 
Automatizacija u Front-end razvojnom procesu
Automatizacija u Front-end razvojnom procesuAutomatizacija u Front-end razvojnom procesu
Automatizacija u Front-end razvojnom procesu
 
Dobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne bibliotekeDobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne biblioteke
 
Dobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne bibliotekeDobra praksa u razvoju komponentne biblioteke
Dobra praksa u razvoju komponentne biblioteke
 
PHP - osnove
PHP - osnovePHP - osnove
PHP - osnove
 
Getting bigger with flask
Getting bigger with flaskGetting bigger with flask
Getting bigger with flask
 
Profesionalizacija veb-sajtova polaznika i izmena šablona naslovne strane
Profesionalizacija veb-sajtova polaznika i izmena šablona naslovne straneProfesionalizacija veb-sajtova polaznika i izmena šablona naslovne strane
Profesionalizacija veb-sajtova polaznika i izmena šablona naslovne strane
 
Napredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkNapredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend Framework
 

Matlab web portal

  • 1. Realizacija e-learning softvera za sisteme automatskog upravljanja primenom web tehnologija kandidat: Aleksandar Pavić
  • 2. 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
  • 3. Polazne pretpostavke Student Pregled primera Interakcija sa MATLAB-om Rešavanje zadataka Izvršavanje proizvoljnog MATLAB koda
  • 4. Arhitektura servera Apache web server PHP Bash shell Database Matlab Procesiranje upita Generisanje rešenja
  • 6. 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.
  • 7. Komunikacija korisnik-internet-matlab Poč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
  • 8. Interakcija PHP-MATLAB Programski 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 prava exec('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 datoteci exec('matbg '.$userFolder.$filename.'/publish_'.$filename.'.m'.' out.txt');
  • 9. Editor MATLAB koda Matlab editor EditArea
  • 10. Izgled portala u internet pregledniku:
  • 11. 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 X X=Ab
  • 12. Interaktivni primer kontrole punjenja rezervoara sa PID regulatorom
  • 13. Princip funkcionisanja interaktivne simulacije SIMULACIJAOBRADA REZULTATA POZIV MATLABAOBRADA PODATAKA INTERAKCIJA SA KORISNIKOM
  • 14. 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
  • 15. 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');
  • 17. Mogućnosti unapređenja primera  Keširanje već simuliranih parametara  Rad bez MATLAB-a (pripremljen skup podataka)  Mogućnost izmene tipa kontrolera
  • 18. 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
  • 19. 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
  • 20. Kraj!