GridMOSI:Mod/GridWIdent:Exemplu
< GridMOSI:ModExemplu utilizare GridWIdent
Aplicaţia Grid de determinare a unor modele matematice pentru sisteme neliniare de tip Wiener include algoritmi operând pe datele de intrare-ieşire existente sau generate, prin experimente dedicate, ale variabilelor sistemelor sau proceselor dinamice. Se pot folosi, aşadar, înregistrările disponibile în mod curent pentru urmărirea evoluţiei proceselor. Această abordare, de determinare a modelelor matematice din datele de intrare-ieşire, se numeşte identificarea sistemelor. Pentru fiecare proces modelat, aplicaţia generează un model de sistem multivariabil discret, liniar invariant în timp (LIT), descris în spaţiul stărilor şi un model de tip reţea neurală cu un strat ascuns, corespunzător părţii neliniare a procesului. Ordinul subsistemului liniar, n, şi numărul de neuroni utilizaţi pot fi impuse de utilizator, dar n poate fi determinat automat de aplicaţie.
Din punct de vedere tehnic, pentru determinarea părţii liniare se folosesc abordări specifice de determinare a unui subspaţiu de stare, în speţă, MOESP (Multivariable Output Error state SPace), N4SID (Numerical algorithm for Subspace State Space System IDentification) şi combinaţia acestora. Abordările bazate pe subspaţii pentru identificarea sistemelor sunt atractive din mai multe motive: se estimează direct modele de stare; nu sunt necesare parametrizări; se utilizează doar instrumente robuste de algebră liniară, cum ar fi descompunerea QR şi descompunerea după valorile singulare (DVS); trebuie ales doar un parametru, s, o margine superioară a ordinului modelului liniar. Pentru determinarea părţii neliniare se folosesc algoritmi Levenberg-Marquardt specializaţi, care exploatează structura particulară a problemei. Prin ordonarea corespunzătoare a variabilelor problemei de optimizare, matricea Jacobian asociată are o structură semi-unghiulară: este bloc-diagonală plus o ultimă bloc-coloană densă. De remarcat că fiecare iteraţie a algoritmilor de optimizare implică simularea sistemului neliniar modelat pe întreg orizontul de timp considerat.
Din punct de vedere practic, procedurile de identificare a sistemelor prin tehnici de subspaţii implică triunghiularizarea ortogonală a unei matrice rectangulare structurate, de mari dimensiuni, determinarea valorilor singulare ale unei matrice, rezolvarea unor sisteme de ecuaţii algebrice liniare, calculul unor factorizări de matrice etc. Pentru determinarea părţii neliniare, este necesară rezolvarea unor probleme de tipul celor mai mici pătrate neliniare.
Datele de intrare definesc opţiunile de rezolvare (parametrii asociaţi metodei utilizate, ordinul dorit, configuraţia de procesoare, dimensiunea blocurilor, numărul maxim de iteraţii, toleranţe etc.), opţiunile de listare/memorare a rezultatelor, dimensiunile problemei şi numele fişierului conţinând matricele de date (traiectoriile variabilelor de intrare U şi de ieşire Y ale sistemului). Matricele sunt stocate în ordinea coloanelor, iar fiecare linie din fişier conţine un singur element al unei matrice.
Datele de ieşire sunt: parametrii reţelei neurale care modelează partea neliniară; parametrii care modelează partea liniară în forma normală de ieşire; estimaţia stării iniţiale a sistemului liniar; parametrii de performanţă: numărul de iteraţii, numărul de evaluări de funcţii, numărul de evaluări ale matricelor Jacobian etc. Matricele calculate pot fi listate şi/sau memorate într-un fişier specificat.
- Mai multe referinte gasiti la :
http://www.gridmosi.ro/solutii-mosi/gridwident
Testarea aplicaţiei
- Platforma pe care am testat
- Modul în care am testat şi rezultatele obţinute
- Platforma pe care am testat
Am folosit ca sistem de operare Centos 4. Staţia pe care s-a lucrat este testbed003.grid.ici.ro . Aplicaţia a fost instalată în /home/ana110287/pdwident. Fişierele din acest director sunt:
[ana110287@testbed003 ~]$ cd pdwident/ [ana110287@testbed003 pdwident]$ ls getOutput.sh job1.id pdfindx0.sh pdwident.dat pdwident.jdl pdwident.tar.gz getStatus.sh jobout pdwident pdwident.in pdwident.sh submitJob.sh [ana110287@testbed003 pdwident]$
- Modul în care am testat şi rezultatele obţinute
Datele de intrare : fişierul pdwident.in
[ana110287@testbed003 pdwident]$ cat pdwident.in 'Input Data File for Wiener System Determination' 'pdwident.out' 13 'B' 'Y' 10 1000 3 3 2 12 'pdwident.dat' 80 1 1 500 1000 1 1.0E-4 1.0E-4 1.0 3.0 5.0 7.0 2 [ana110287@testbed003 pdwident]$
Se consideră proxy -ul gata creat. a) trimiterea jobului :
[ana110287@testbed003 pdwident]$ glite-wms-job-submit -a -o job1.id -r testbed001.grid.ici.ro:2119/jobmanager-pbs-gridmosi pdwident.jdl Connecting to the service https://testbed003.grid.ici.ro:7443 /glite_wms_wmproxy_server ====================== glite-wms-job-submit Success ====================== The job has been successfully submitted to the WMProxy Your job identifier is: https://testbed003.grid.ici.ro:9000/fF--srYtZjEA5rYcjPdqyQ The job identifier has been saved in the following file: /home/ana110287/pdwident/job1.id ========================================================================== [ana110287@testbed003 pdwident]$
b) verficarea statusului jobului :
[ana110287@testbed003 pdwident]$ glite-wms-job-status -i job1.id ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : https://testbed003.grid.ici.ro:9000 /fF--srYtZjEA5rYcjPdqyQ Current Status: Running Status Reason: Job successfully submitted to Globus Destination: testbed001.grid.ici.ro:2119/jobmanager-pbs-gridmosi Submitted: Fri Jul 25 20:29:02 2008 EEST ************************************************************* [ana110287@testbed003 pdwident]$
c) outputul jobului trimis :
[ana110287@testbed003 pdwident]$ glite-wms-job-output -i job1.id Connecting to the service https://testbed003.grid.ici.ro:7443 /glite_wms_wmproxy_server ================================================================================ JOB GET OUTPUT OUTCOME Output sandbox files for the job: https://testbed003.grid.ici.ro:9000/fF--srYtZjEA5rYcjPdqyQ have been successfully retrieved and stored in the directory: /tmp/jobOutput/ana110287_fF--srYtZjEA5rYcjPdqyQ ================================================================================ [ana110287@testbed003 pdwident]$
[ana110287@testbed003 pdwident]$ cd /tmp/jobOutput/ana110287_fF-- srYtZjEA5rYcjPdqyQ/ [ana110287@testbed003 ana110287_fF--srYtZjEA5rYcjPdqyQ]$ ls pdwident.out std_pdwident.err std_pdwident.out [ana110287@testbed003 ana110287_fF--srYtZjEA5rYcjPdqyQ]$ [ana110287@testbed003 ana110287_fF--srYtZjEA5rYcjPdqyQ]$ cat std_pdwident.err [ana110287@testbed003 ana110287_fF--srYtZjEA5rYcjPdqyQ]$ cat std_pdwident.out Norm of current error = 0.167357E+02 Norm of current error = 0.234143E+01 Norm of current error = 0.195753E+01 Norm of current error = 0.191402E+01 Norm of current error = 0.190888E+01 Norm of current error = 0.190136E+01 Norm of current error = 0.188694E+01 Norm of current error = 0.185346E+01 Norm of current error = 0.185002E+01 Norm of current error = 0.184681E+01 Norm of current error = 0.184546E+01 Norm of current error = 0.184133E+01 Norm of current error = 0.183921E+01 Norm of current error = 0.183572E+01 Norm of current error = 0.183433E+01 Norm of current error = 0.183401E+01 Norm of current error = 0.183395E+01 Norm of current error = 0.183393E+01 Norm of current error = 0.183385E+01 Norm of current error = 0.183382E+01 Norm of current error = 0.934987E+01 Norm of current error = 0.235258E+01 Norm of current error = 0.203211E+01 Norm of current error = 0.196711E+01 Norm of current error = 0.193880E+01 Norm of current error = 0.192995E+01 Norm of current error = 0.192439E+01 Norm of current error = 0.191930E+01 Norm of current error = 0.190683E+01 Norm of current error = 0.190481E+01 Norm of current error = 0.189180E+01 Norm of current error = 0.188483E+01 Norm of current error = 0.188311E+01 Norm of current error = 0.187992E+01 Norm of current error = 0.187863E+01 Norm of current error = 0.187755E+01 Norm of current error = 0.187571E+01 Norm of current error = 0.187449E+01 Norm of current error = 0.187379E+01 Norm of current error = 0.187311E+01 Norm of current error = 0.187186E+01 Norm of current error = 0.187136E+01 Norm of current error = 0.187094E+01 Norm of current error = 0.187033E+01 Norm of current error = 0.187015E+01 Norm of current error = 0.187001E+01 Norm of current error = 0.186976E+01 Norm of current error = 0.186951E+01 Norm of current error = 0.186928E+01 Norm of current error = 0.186907E+01 Norm of current error = 0.186890E+01 Norm of current error = 0.186879E+01 Norm of current error = 0.186870E+01 Norm of current error = 0.186854E+01 Norm of current error = 0.186842E+01 Norm of current error = 0.186833E+01 Norm of current error = 0.186811E+01 Norm of current error = 0.186806E+01 Norm of current error = 0.186670E+01 Norm of current error = 0.186590E+01 Norm of current error = 0.186525E+01 Norm of current error = 0.186457E+01 Norm of current error = 0.186423E+01 Norm of current error = 0.186392E+01 Norm of current error = 0.186374E+01 Norm of current error = 0.186343E+01 Norm of current error = 0.186274E+01 Norm of current error = 0.186202E+01 Norm of current error = 0.186183E+01 Norm of current error = 0.186170E+01 Norm of current error = 0.186160E+01 Norm of current error = 0.186149E+01 Norm of current error = 0.186136E+01 Norm of current error = 0.186122E+01 Norm of current error = 0.186106E+01 Norm of current error = 0.186089E+01 Norm of current error = 0.186072E+01 Norm of current error = 0.186054E+01 Norm of current error = 0.186036E+01 Norm of current error = 0.186018E+01 Norm of current error = 0.186000E+01 Norm of current error = 0.185981E+01 Norm of current error = 0.185962E+01 Norm of current error = 0.185942E+01 Norm of current error = 0.185922E+01 Norm of current error = 0.185906E+01 Norm of current error = 0.185892E+01 Norm of current error = 0.185876E+01 Norm of current error = 0.185863E+01 Norm of current error = 0.185838E+01 Norm of current error = 0.185812E+01 Norm of current error = 0.185789E+01 Norm of current error = 0.185770E+01 Norm of current error = 0.185733E+01 Norm of current error = 0.185703E+01 Norm of current error = 0.185617E+01 Norm of current error = 0.185588E+01 Norm of current error = 0.185555E+01 Norm of current error = 0.185539E+01 Norm of current error = 0.185524E+01 Norm of current error = 0.185519E+01 Norm of current error = 0.185491E+01 Norm of current error = 0.185486E+01 Norm of current error = 0.260833E+01 Norm of current error = 0.258387E+01 Norm of current error = 0.257347E+01 Norm of current error = 0.257283E+01 Norm of current error = 0.257217E+01 Norm of current error = 0.257148E+01 Norm of current error = 0.257117E+01 Norm of current error = 0.257117E+01 Norm of current error = 0.257104E+01 Norm of current error = 0.257101E+01 Parameter vector x Performance parameters Total number of function evaluations: 374 Total number of Jacobian evaluations: 110 Performance parameters for initialization step [ana110287@testbed003 ana110287_fF--srYtZjEA5rYcjPdqyQ]$
