Documente Academic
Documente Profesional
Documente Cultură
cu ajutorul funciei pem sunt funcii de transfer de ordinul I, II sau III i polii pot fi reali sau compleci. Spre exemplu, urmtorul model descrie un proces continuu de ordinul I:
G(s) = Kp 1 + sT p1 e T s
d
unde:
K este amplificarea static; Tp1 este constanta de timp a sistemului; Td este timpul mort (ntrzierea intrare -ieire).
n continuare este descris modul de estimare a parametrilor acestor modele folosind funcia pem. Sintax:
m = pem(data, Type)
Descriere: Funcia pem este utilizat pentru estimarea parametrilor corespunztori unor modelele de procese uzuale simple, continue n timp. Aceste modele pot avea mai multe intrri dar numai o singur ieire. Parametrul data este un obiect de tip iddata ce conine datele intrare-ieire ale sistemului ce trebuie identificat. Datele prelucrate de aceast funcie pot fi att date din domeniul timp ct i date din domeniul frecven. Caracterul modelului este definit de argumentul Type. Acesta este un acronim format din urmtoarele simboluri: P este n mod obligatoriu prima liter a acronimului; 0, 1, 2 sau 3 prin acest numr se noteaz numrul constantelor de timp (polii) ai modelului. Posibilele integratoare (poli n origine) nu sunt incluse n acest numr. D este itera utilizat pentru a marca faptul c modelul conine o ntrziere (delay). Z este litera utilizat pentru a marca faptul c modelul are un zerou. U este litera utilizat pentru a marca faptul c modelul poate avea poli complex conjugai. Dac litera U nu este inclus n acronim, atunci toi polii modelului sunt reali. Exemplul 6.1
Pentru sisteme cu mai multe intrri, Type este un vector de celule, fiecare celul descriind caracterul modelului corespunztor intrrii respective. De exemplu: Type={P1D,P0I} corespunde unui model cu funcia de transfer
Y ( s) = K p (1) 1 + sT p1 (1) e T sU 1 ( s ) +
d
K p (2) s
U 2 (s)
Modelul obinut este returnat sub forma unui obiect Matlab de tip idproc (parametrul de ieire m). 6.2 Estimarea modelelor n spaiul strilor Modelele n spaiul strilor sunt modele ce utilizeaz variabilele de stare pentru a descrie un sistem folosind un set de ecuaii difereniale de ordinul I (n cazul sistemelor continue) sau ecuaii cu diferene (n cazul sistemelor continue). Variabilele de stare x(t) pot fi reconstituite din datele intrare-ieire msurate fr ca ele s fie de obicei msurate. Aceast structur de model este o bun alegere pentru o estimare rapid deoarece necesit doar doi parametrii: n ordinul modelului (sau dimensiunea matricii A) i nk una sau mai multe ntrzieri pe intrare. Forma general a modelului n spaiul strilor este urmtoarea:
unde
& (t ), pentru sisteme continue x ~ x (t ) = x(t + Ts ), pentru sisteme discrete
Estimarea unui model n spaiul strilor folosind funcia pem se realizeaz folosind una din urmtoarele sintaxe: a) m = pem(data, n) Parametrul data este un obiect de tip iddata ce conine datele intrareieire ale sistemului ce trebuie identificat, iar parametrul n este numr ntreg mai mare dect zero. Utiliznd aceast sintax se obine un model reprezentat prin ecuaii de stare de ordinul n, model returnat sub forma unui obiect de tipul idss (parametrul de ieire m). b) m = pem(data, 'nx' ,[n1,n2,...nN]) Folosind aceast sintax se poate alege dintre mai multe variante de modele. Parametrii n1, n2, ..., nN reprezint ordinele modelelor ce se doresc a fi comparate. c) m = pem(data, 'best') Folosind aceast sintax, programul selecteaz cea mai bun variant din modelele cu ordine de la 1 la 10. d) m = pem(data,order,'nk',[0 .. 0]) Aceast sintax este utilizat pentru estimarea matricei D. n mod implicit aceast matrice nu este estimat. Prin setarea la zero a componentei de pe poziia k din vectorul nk, coloana k din matricea D (corespunztoare intrrii k) va fi estimat. Pentru a fi estimat toat matricea D, toate componentele lui nk trebuie setate la zero. e) m = pem(data,order,'DisturbanceModel','none')
Pentru date de estimare din domeniul timp funcia pem estimeaz i matricea K. Pentru a seta matricea K la zero se utilizeaz sintaxa de mai sus. Pentru date de estimare din domeniul frecven matricea K este fixat n mod implicit la zero. 6.3 Estimarea modelelor polinomiale de form general Un model polinomial general cu mai multe intrri i o singur ieire este dat de relaia urmtoare:
A(q) y (t ) = B (q) B1 (q ) C (q) u1 (t nk1 ) + ... + nu u nu (t nk nu ) + e(t ) F1 (q ) Fnu (q ) D(q )
unde: - q reprezint operatorul de ntrziere cu un pas; - A, B, C, D i F sunt matrici n care se specific coeficienii polinoamelor modelului. n cazul sistemelor cu o singur intrare A, B, C, D i F sunt vectori linie. Primul element al vectorilor A, C, D i F este 1 n timp ce vectorul B conine pe primele poziii attea zerouri ct indic nk. Spre exemplu, polinomul A are forma:
A(q ) = 1 + a1q 1 + a2 q 2 + ... + a na q na
unde -
m este un obiect Matlab de tip idpoly; data este un obiect Matlab de tip iddata; orders este un vector linie ce conine ordinele polinoamelor A, B, C, D i F precum i ntrzierea pe intrare i este definit astfel: orders=[na nb nc nd nf nk]. n cazul unui model cu mai multe intrri nb, nf i nk sunt vectori linie ce conin ordinele i ntrzierile pentru fiecare intrare.
G(s) =
2 e s (0.2s + 1)(5s + 1)
Se cere: a) s se creeze un model Matlab pentru acest sistem; b) s se simuleze rspunsul sistemului pe un interval de 600 de secunde la o intrare u(t) de tip semnal sum de sinusoide i un zgomot aleator gaussian; c) folosind datele intrare-ieire de la punctul b) s se estimeze parametrii unui modelului. S se compare rspunsul la intrare treapt pentru modelul real i modelul estimat i s se valideze modelul folosind analiza reziduurilor.
Soluie:
ModelProces=idproc('P2D','Kp',2,'Tp1',0.2,'Tp2',5,'Td' ,1); u=idinput(300,'sine'); um=iddata([],u,1); ym=sim(ModelProces,um,'noise'); y=ym.OutputData; subplot(211) plot(y) subplot(212) plot(u) z=iddata(y,u,1); ModelEstimat=pem(z,'P2D') step(ModelProces,ModelEstimat) pause resid(z,ModelEstimat)
with
K = 1.9621
50
100
150 timp
200
250
300
Semnal de intr ar e
1 0.5 0 -0.5 -1
50
100
150 timp
200
250
300
Iesire reala
1.5
Iesir e estimata
0.5
0 -20
-10
10
20
30
40
50
60
70
Time
Se cere: a) s se creeze un model Matlab pentru acest sistem; b) s se simuleze rspunsul sistemului pe un interval de 600 de secunde la o intrare u(t) de tip semnal pseudo-aleator binar i un zgomot aleator gaussian; c) folosind datele intrare-ieire de la punctul b) s se estimeze parametrii unui modelului. S se compare rspunsul la intrare treapt pentru modelul real i modelul estimat i s se valideze modelul folosind analiza reziduurilor.
Soluie:
A = [-0.2, 0; 0, -0.3]; B = [1;3]; C=[1, 1]; D = 0; K=[0;0]; x0=[0;0]; ModelProces=idss(A,B,C,D,K,x0,0.1); u=idinput(1000,'prbs'); um=iddata([],u,0.1 ); ym=sim(ModelProces,um,'noise'); y=ym.OutputData; subplot(211) plot(y) subplot(212) plot(u) z=iddata(y,u,0.1); ModelEstimat=pem(z,2) step(ModelProces,ModelEstimat) pause resid(z,ModelEstimat) pause compare(z,ModelEstimat)
A = x1 x2 B = x1 x2 C = y1 D = y1 K = x1 x2 x(0) = x1 x2 y1 -0.0004054 0.0015345 0 0 u1 0 x1 134.65 x2 6.6424 u1 0.029452 0.0014044 x1 -0.29501 0.020948 x2 0.14637 -0.61375
2. Considerm un sistem continuu cu funcia de transfer: 20 G(s) = e 2 s ( s + 5)( s + 2) Se cere: a) s se creeze un model Matlab pentru acest sistem; b) s se simuleze rspunsul sistemului pe un interval de 600 de secunde la o intrare u(t) de tip semnal sum de sinusoide i un zgomot aleator gaussian; c) folosind datele intrare-ieire de la punctul b) s se estimeze parametrii unui modelului. S se compare rspunsul la intrare treapt pentru modelul real i modelul estimat i s se valideze modelul folosind analiza reziduurilor.