Sunteți pe pagina 1din 18

LUCRAREA Nr.

GENERAREA DATELOR UTILIZATE PENTRU


IDENTIFICARE

Semnalul de intrare, alături de modelul ales şi de abordarea


problemei de estimare, condiţionează în mod esenţial rezultatele oricărui
experiment de identificare. Proiectarea şi analiza semnalelor de intrare
s-au dezvoltat în paralel cu studiul algoritmilor de identificare.
Primele proceduri de identificare se bazau pe o aparatură de calcul
modestă, tehnicile numerice de prelucrare a datelor experimentale fiind
aprioric respinse. În consecinţă s-a căutat ca prin aplicarea unor semnale
de intrare speciale (de probă) să se obţină informaţii, uneori direct
utilizabile, despre proces. De regulă, utilizarea unui semnal de probă
conduce exclusiv la determinarea unui model neparametric pentru proces,
ceea ce constituie un dezavantaj important, modelele neparametrice fiind
greu de utilizat în proiectarea unui sistem de reglare.
Dezvoltarea tehnicii de calcul a făcut posibilă aplicarea unor metode
de identificare a căror utilizare nu este condiţionată de un tip special de
semnal de probă, deşi aceasta implică algoritmi relativ complicaţi.
Semnalele de probă utilizate sunt fie deterministe fie aleatoare,
fiecare din acestea având avantaje şi dezavantaje. Semnalele deterministe
reprezintă mărimi a căror evoluţie în timp este predictibilă, întrucât la
baza generării lor stau legi deterministe. Precizia metodelor care folosesc
semnale de probă deterministe este condiţionată în mare măsură de
prezenţa perturbaţiilor care se suprapun peste răspunsul la semnalul de
probă aplicat. Această dificultate a condus la adoptarea tot mai frecventă
a semnalelor de probă aleatoare şi a metodelor de măsurare şi de
prelucrare ale acestora. Principial, metodele de identificare cu semnale
aleatoare se bazează pe măsurarea funcţiilor de corelaţie sau a funcţiilor
de densitate spectrală, care permit deducerea unui model al procesului.
Prin tehnicile de corelaţie se elimină efectele perturbaţiilor, semnalele de
probă nefiind corelate cu acestea. Semnalele aleatoare pot fi uşor
suprapuse peste mărimile curente din funcţionarea normală a procesului,
cu condiţia ca media lor să fie nulă şi dispersia suficient de mică pentru a
nu deranja funcţionarea normală. Totuşi, generarea semnalelor aleatoare

10
de tipul zgomotului alb este dificilă, preferându-se semnalele de tipul
celor pseudoaleatoare binare care permit utilizarea avantajoasă a
tehnicilor numerice.
Limbajul de programare Matlab este un software orientat pe obiecte.
Un obiect este o structură cu mai multe elemente, fiecare element
reprezentând o proprietate a obiectului. Aceste proprietăţi pot fi accesate
de anumite funcţii ce le pot modifica sau utiliza într-o serie de operaţii.
Pentru a putea fi prelucrate de procedurile de identificare din toolbox-ul
System Identification al Matlab-ului, datele intrare – ieşire în domeniul
timp sau în domeniul frecvenţă trebuie mai întâi grupate în obiecte
specifice. De asemenea, modelele obţinute în urma utilizării procedurilor
de identificare sau cele create de utilizator sunt memorate sub forma unor
obiecte cu anumite proprietăţi. În această lucrare sunt prezentate funcţiile
uzuale utilizate pentru generarea datelor intrare-ieşire şi a modelelor
utilizate în identificare precum şi modul de prelucrare a acestora pentru a
putea fi apoi utilizate de procedurile de identificare.

1.1 Generarea datelor intrare-ieşire

■ Funcţia idinput

Această funcţie generează semnale folosite în mod obişnuit ca intrări


ale sistemelor ce urmează a fi identificate.
Sintaxa:
u = idinput(N)
u = idinput(N,type,band,levels)
[u,frecvente] = idinput(N,'sine',band,levels,sinedata)

Descriere: Funcţia idinput generează diferite tipuri de semnale de


intrare, ce sunt folosite în mod uzual în identificarea sistemelor.
Semnificaţia variabilelor ce apar în aceste sintaxe este următoarea:
- u este o matrice sau un vector coloană returnat de funcţie ce conţine
datele de intrare utilizate pentru identificarea unui sistem;
- N este numărul de puncte generate. Dacă N este un scalar atunci u este
un vector cu această lungime. Dacă N=[nl nc] atunci u este o matrice cu
nl linii şi nc coloane. Fiecare coloană conţine datele de intrare pentru un
canal de intrare. Dacă N=[P nu M] atunci u este o intrare periodică cu
perioada P pentru nu canale, fiecare de lungime M*P. În mod implicit
nu=1 şi M=1.

11
- type defineşte tipul semnalului de intrare ce va fi generat. Acest
argument ia una din următoarele valori:
type =’rgs’ : semnal gaussian aleator.
type =’rbs’ : semnal aleator binar.
type =’prbs’ : semnal pseudo-aleator binar.
type =’sine’ : semnal de tip sumă de sinusoide.

Valoarea implicită este: type=’rbs’.


- band defineşte conţinutul de frecvenţe al semnalului de intrare. Dacă
argumentul type=’rgs’,’rbs’ sau ’sine’ argumentul band este
un vector linie de forma band=[wlow, whigh] ce determină marginile
inferioară, respectiv superioară ale benzii de trecere a semnalului.
Frecvenţele wlow şi whigh sunt exprimate în fracţii ale frecvenţei
Nyquist. Caracterul de zgomot alb al intrării se obţine pentru band=[0,
1],care este de altfel şi valoarea implicită a acestui argument.
Dacă type=’prbs’ atunci band=[0, B] unde B este o valoare
astfel încât semnalul este constant pe un interval de lungime 1/B. În acest
caz, în mod implicit band=[0, 1].
- levels=[minu, maxu] este un vector linie cu două valori ce definesc
amplitudinea minimă, respectiv maximă, a semnalului de intrare de tip
’rbs’, ’prbs’ şi ’sine’. Pentru cazul semnalului de tip ’rgs’, minu este
egal cu valoarea medie a semnalului minus deviaţia standard iar maxu
este egal cu valoarea medie a semnalului plus deviaţia standard. În mod
implicit levels=[-1 1], valoare ce defineşte un zgomot alb gaussian cu
medie nulă şi deviaţie standard egală cu 1.
Cea de-a treia variantă de sintaxă este utilizată doar pentru generarea
de semnale de tip sumă de sinusoide. În această variantă mai apar în plus
doi parametri:
- frecvente: este un parametru în care se returnează frecvenţele
semnalelor sinusoidale;
- sinedata: este un vector linie de forma [NS, NT, Grid] unde NS
este numărul de semnale sinusoidale, NT este numărul de încercări
pe care le face funcţia cu diferite defazaje ale semnalelor luate
aleator. Se vor alege acele faze pentru care amplitudinea este
minimă. Grid reprezintă un număr întreg cu ajutorul căruia se
calculează frecvenţele semnalelor sinusoidale după următoarea
formulă:
frecvente = 2*pi*[1:Grid:fix(P/2)]/P

12
Exemplul 1.1 Să se genereze un semnal aleator binar cu amplitudinea
cuprinsă între -2 şi 2, pe o durată de 150 de secunde.

Soluţie: Se utilizează instrucţiunea următoare:

u=idinput(150,'rbs',[],[-2 2])

Valorile semnalului sunt plotate în figura următoare folosind


instrucţiunea: >>plot(u).

Semnal aleator binar


2

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150
timp [sec]
Exemplul 1.2 Să se genereze pe o durată de 100 de secunde un semnal
de tip sumă de două sinusoide cu perioada egală cu 50 de secunde şi
valorile minimă şi maximă ale amplitudinii de 0, respectiv 5.

Soluţie:
Instrucţiunea care generează un astfel de semnal este următoarea:

[u,f]=idinput([50,1,2],'sine',[0 50],[0 5],[2 5 1]);

Semnificaţia parametrilor funcţiei idinput este următoarea:


a) vectorul [50,1,2] conţine următoarele informaţii: 50 reprezintă
perioada semnalului, 1 reprezintă numărul canalelor de intrare, 2
reprezintă numărul de perioade pe care este generat semnalul
(deci lungimea semnalului este 2*50=100);
b) acronimul ’sine’ specifică tipul semnalului generat;
c) vectorul [0 50] specifică banda de frecvenţe din care vor fi alese
sinusoidele;

13
d) vectorul [0 5] specifică amplitudinea minimă şi maximă a
semnalului;
e) vectorul [2 5 1] are următoarele semnificaţii: 2 reprezintă
numărul de sinusoide, 5 numărul de încercări pentru căutarea
fazei semnalelor iar 1 reprezintă pasul cu care se modifică
frecvenţele;

Pentru afişarea acestui semnal scriem în linia de comandă


instrucţiunea:
>> plot(u)

Se obţine următorul grafic:


Semnal suma de sinusoide
5

4.5

3.5

3
Amplitudine

2.5

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100
Timp

■ Funcţia lsim

Deoarece datele ce vor fi prelucrate în lucrările din acest îndrumar


sunt obţinute prin simularea comportării unor sisteme la diferite semnale
de intrare, prezentăm în continuare funcţia lsim ce simulează modele
liniare.
Sintaxă: [y,t] = lsim(sys,u,t)
[y,t,x] = lsim(sys,u,t)
[y,t,x] = lsim(sys,u,t,x0)

Descriere:
Funcţia lsim simulează răspunsul în timp la diverse intrări al
sistemelor liniare continue sau discrete. Dacă este apelată fără
argumentele din stânga egalului, funcţia plotează direct răspunsul pe
ecran. Astfel, sintaxa lsim(sys,u,t) va produce pe ecran răspunsul
unui model liniar sys la o intrare u. Vectorul t specifică momentele de

14
timp în care se face simularea şi constă în eşantioane de timp egal
distribuite t = 0:dt:Tfinal
Matricea u trebuie să aibă tot atâtea linii cât este lungimea vectorului
t şi tot atâtea coloane câte intrări are sistemul. Modelul al cărui răspuns îl
obţinem poate fi continuu sau discret, monovariabil sau multivariabil. În
cazul unui sistem discret perioada de eşantionare a lui u trebuie să fie
egală cu perioada de eşantionare a sistemului (în acest caz, vectorul t este
o mărime redundantă şi poate fi omis sau setat la o matrice vidă). În cazul
sistemelor continue, perioada de eşantionare dt=t(2)-t(1) este utilizată
pentru discretizarea modelului continuu. Dacă dt este prea mare, funcţia
lsim va afişa un mesaj de avertisment ce va sugera utilizarea unei
perioade de eşantionare mai potrivite, dar va utiliza perioada de
eşantionare specificată de utilizator.
Sintaxa lsim(sys,u,t,x0) utilizează un nou parametru, x0, ce
conţine starea iniţială a sistemului. Această sintaxă este valabilă doar
pentru modele reprezentate prin ecuaţii de stare.
Se mai poate utiliza şi sintaxa lsim(sys1,sys2,...,sysN,u,t)
prin care se simulează simultan răspunsul mai multor modele liniare la
aceeaşi intrare u.
Dacă funcţia lsim este apelată cu argumentele din stânga semnului
egal, adică:
[y,t] = lsim(sys,u,t)
[y,t,x] = lsim(sys,u,t,x0) %pentru modele în spaţiul
stărilor

atunci rezultatele funcţiei sunt returnate în vectorii y, t şi x (fără a mai fi


plotate pe ecran). În acest caz, y este o matrice ce conţine ieşirile
sistemului simulat şi x este o matrice ce conţine stările sistemului (doar
pentru cazul sistemelor modelate prin ecuaţii de stare). În cazul
monovariabil x şi y sunt vectori coloană.

Exemplul 1.3 Programul următor simulează răspunsul unui sistem liniar


3
exprimat prin funcţia de transfer H ( s ) = la o intrare de tip semnal
s+2
gaussian, pe un interval de timp de 5 de secunde, cu o perioadă de
eşantionare egală cu 0.1 secunde.

15
Soluţie:

N=5;Ts=0.1;
t=[0:Ts:N];
L=length(t);
u=idinput(L,'rgs')
H=tf(3,[1 2])
lsim(H,u,t);
y=lsim(H,u,t);
idplot(u,y)

Rezultatele simulării acestui sistem sunt prezentate în figura


următoare. Vectorii u şi y conţin datele de intrare, respectiv ieşire
obţinute în urma simulării pentru sistemul considerat.
Raspunsul sistemului la semnal gaussian
2.5

1.5

0.5
Amplitudine

-0.5

-1

-1.5

-2

-2.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Timp

■ Funcţia iddata

Această funcţie creează obiectul Matlab de bază utilizat de


procedurile toolbox-ului de identificare pe baza datelor intrare-ieşire ale
sistemului ce va fi identificat. Obiectele create cu această funcţie sunt
utilizate de majoritatea comenzilor şi funcţiilor de identificare ale Matlab-
ului, indiferent de domeniul (timp sau frecvenţă) semnalelor prelucrate.
Sintaxa: date_id = iddata(Y,U,Ts)
date_id = iddata(Y,U,'Frequency',Frecvente)

Descriere: Prima formă a sintaxei este utilizată pentru semnale în


domeniul timp. În acest caz Y şi U reprezintă ieşirea, respectiv intrarea
sistemului ce trebuie identificat iar Ts este perioada de eşantionare. În
mod implicit Ts=1. Dacă U=[], atunci date_id defineşte un semnal (sau o

16
serie de timp). Dacă Y=[], date_id descrie doar intrarea sistemului.
Semnificaţia parametrilor este următoarea:
- Y este o matrice de dimensiune N x Ny cu N numărul de date şi Ny
numărul canalelor de ieşire.
- U este o matrice de dimensiune N x Nu cu N numărul de date şi Nu
numărul canalelor de intrare.
Y şi U trebuie să aibă acelaşi număr de linii. Pentru sisteme
monovariabile Y şi U sunt vectori coloană.
Pentru prelucrarea datelor în domeniul frecvenţă sintaxa este
următoarea:

date_id= iddata(Y,U,Ts,’FREQ’,Frecvente)

unde Frecvente este un vector ce conţine frecvenţele în care sunt definite


valorile vectorilor Y şi U. El trebuie să aibă aceeaşi lungime cu Y şi U.
În acest caz Ts poate fi făcut egal cu zero dacă datele prelucrate sunt în
timp continuu.

Exemplul 1.4 Programul următor simulează răspunsul unui sistem liniar


10
exprimat prin funcţia de transfer H ( s) = la o intrare de tip semnal
2s + 5
pseudoaleator binar, pe un interval de timp de 5 de secunde, cu o perioadă
de eşantionare egală cu 0.1 secunde. Datele intrare-ieşire sunt grupate în
obiectul date_id care pot fi ulterior plotate (aşa cum este cazul în acest
exemplu) sau pot fi prelucrate de procedurile de identificare ale Matlab-
ului.

Ts=0.1;N=50;
u=idinput(N,'prbs');
H=tf(10, [2 5])
t=[0:Ts:(N-1)*Ts];
y=lsim(H,u,t);
date_id=iddata(y,u,Ts)
plot(date_id)

17
y1
1

-1

-2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time
u1
1

0.5

-0.5

-1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time

Proprietăţile unui obiect iddata (sau ale oricărui alt obiect Matlab) pot fi
vizualizate folosind funcţia get şi pot fi modificate folosind funcţia set.
Pentru exemplul nostru aceste proprietăţi sunt următoarele (se tastează în
linia de comandă instrucţiunea: >> get(date_id))
Domain: 'Time'
Name: []
OutputData: [50x1 double]
y: 'Same as OutputData'
OutputName: {'y1'}
OutputUnit: {''}
InputData: [50x1 double]
u: 'Same as InputData'
InputName: {'u1'}
InputUnit: {''}
Period: Inf
InterSample: 'zoh'
Ts: 0.1000
Tstart: []
SamplingInstants: [50x0 double]
TimeUnit: ''
ExperimentName: 'Exp1'
Notes: []
UserData: []

18
Dacă se doreşte modificarea uneia dintre aceste proprietăţi se foloseşte
funcţia set. Spre exemplu dacă dorim să facem perioada de eşantionare
egală cu 0.2, atunci se utilizează următoarea instrucţiune:
>> set(date_id,'Ts',0.2)
sau mai scurt: >> date_id.Ts=0.2

1.2 Generarea modelelor utilizate în identificare

Obiectul Matlab idmodel

Toate procedurile de estimare parametrică returnează ca rezultat un


obiect Matlab de tipul idmodel. Acest obiect conţine toate informaţiile
relevante referitoare la modelul estimat. Dacă spre exemplu M este un
model obţinut în urma unei estimări parametrice, prin tastarea numelui
acestui model în linia de comandă sunt afişate o serie de informaţii despre
acesta. Caracteristicile unui obiect de tip idmodel pot fi examinate direct
sau afişate grafic folosind comenzi Matlab precum impulse, step, bode,
nyquist sau pzmap.
De asemenea, obiecte de tip idmodel pot fi create folosind
următoarele funcţii Matlab: idpoly, idproc, şi idss. În continuare sunt
descrise fiecare din aceste funcţii.

■ Funcţia idpoly

Sintaxă: m = idpoly(A,B,C,D,F,NoiseVariance,Ts)
Descriere:
Funcţia idpoly creează un obiect ce conţine parametrii ce descriu un
model general cu mai multe intrări şi o singură ieşire dat de relaţia
următoare:

B1 (q) B (q) C (q)


A(q) y (t ) = u1 (t − nk1 ) + ... + nu u nu (t − nk nu ) + e(t )
F1 (q) Fnu (q) D (q )
unde:
- q reprezintă operatorul de întârziere cu un pas;
- A, B, C, D şi F sunt matrice în care se specifică coeficienţii
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

19
este 1 în timp ce vectorul B conţine pe primele poziţii atâtea zerouri
cât indică nk. Spre exemplu, polinomul A are forma:
A(q ) = 1 + a1q −1 + a2 q −2 + ... + a na q − na
- NoiseVariance reprezintă varianţa zgomotului e(t)
- Ts reprezintă perioada de eşantionare. Pentru cazul în care sistemul este
continuu, Ts=0.

Exemplul 1.5 Să se creeze modelul Matlab pentru sistemul continuu cu


două intrări şi o ieşire descris de următoarea ecuaţie:

1 s+3
y (t ) = u1 (t ) + 2 u 2 (t ) + e(t )
s ( s + 1) s + 2s + 4

Soluţie:
B=[0 1;1 3];
F=[1 1 0;1 2 4]
m = idpoly(1,B,1,1,F,1,0)

Observaţii: Prima linie a matricei B conţine coeficienţii de la


numărătorul primei funcţii de transfer (dintre u1(t) şi y(t)): [ 0 1], iar a
doua linie coeficienţii de la numărătorul celei de-a doua funcţii de
transfer: [ 1 3]. În mod asemănător, matricea F conţine coeficienţii de la
numitorul celor două funcţii de transfer. Polinoamele A(q), C(q) şi D(q)
sunt egale cu 1. Valoarea 0 pentru parametrul Ts semnifică faptul că
sistemul este continuu.

Exemplul 1.6 Să se creeze un model Matlab pentru un sistem discret cu


perioada de eşantionare Ts=0.1, descris de următoarea ecuaţie:

y (t ) − 1.5 y (t − 1) + 0.7 y (t − 2) = u(t − 1) + 0.5u (t − 2) + e(t ) − e(t − 1) + 0.2e(t − 2)

Soluţie:
Folosind operatorul de întârziere cu un pas q-1 ecuaţia de mai sus se
poate scrie:
(1 − 1.5q −1 + 0.7q −2 ) y (t ) = ( q −1 + 0.5q −2 )u(t ) + (1 − q −1 + 0.2q −2 )e(t )
Avem deci un model de forma:
B( q) C ( q)
A( q) y (t ) = u(t − nk ) + e(t )
F ( q) D( q)

20
unde: A( q) = 1 − 1.5q −1 + 0.7q −2
B ( q ) = q −1 + 0.5q −2
C ( q) = 1 − q −1 + 0.2q −2
F ( q) = 1 , D( q) = 1
Pentru implementarea acestui model în Matlab se scriu următoarele
instrucţiuni:
A = [1 -1.5 0.7];
B = [0 1 0.5];
C = [1 -1 0.2];
D=1;
F=1;
Ts=0.1;
m = idpoly(A,B,C,D,F,Ts)

■ Funcţia idproc

Sintaxă: m=idproc(Type)
Descriere:
Funcţia idproc este utilizată pentru crearea de obiecte Matlab
corespunzătoare modelelor de procese uzuale simple, continue în timp.
Aceste modele pot avea mai multe intrări dar numai o singură ieşire.
Caracterul modelului este definit de argumentul Type. Acesta este un
acronim format din următoarele simboluri:

• P – este în mod obligatoriu prima literă a acronimului;


• 0, 1, 2 sau 3 – prin acest număr se notează numărul constantelor
de timp (polii) ale modelului. Posibilele integratoare (poli în
origine) nu sunt incluse în acest număr.
• D – este litera utilizată pentru a marca faptul că modelul conţine
o întârziere (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 conjugaţi. Dacă litera U nu este inclusă în
acronim, atunci toţi polii modelului sunt reali.

21
Exemplul 1.7
Type=’P1D’, corespunde unui model cu funcţia de transfer
Kp
G(s) = e −T s
d

1 + sT p1
Type=’P0I’ corespunde unui model cu funcţia de transfer
Kp
G(s) =
s
Type=’P3UZ’ corespunde unui model cu funcţia de transfer
1 + Tz
G(s) = K p
(1 + 2ξTw s + (Tw s) 2 )(1 + T p 3 s)
Pentru sisteme cu mai multe intrări, Type este un vector de celule,
fiecare celulă descriind caracterul modelului corespunzător intrării
respective.
Exemplu: Un model cu funcţia de transfer
K p (1) K p (2)
Y ( s) = e −T sU 1 ( s ) +
d
U 2 ( s ) se obţine folosind instrucţiunea
1 + sT p1 (1) s
m=idproc({’P1D’,’P0I’})

Rezultatul acestei instrucţiuni este următorul:

Process model with 2 inputs: y = G_1(s)u_1 + G_2(s)u_2


where
K
G_1(s) = -------- * exp(-Td*s)
1+Tp1*s

with K = NaN
Tp1= NaN
Td = NaN

K
G_2(s) = ---
s
with K = NaN

După cum se observă în acest exemplu, idproc creează un model în


care parametrii nu sunt iniţializaţi. Pentru iniţializarea acestora se pot
utiliza instrucţiuni de forma: >> m.Kp=2 sau se poate utiliza funcţia set.

22
■ Funcţia idss

Sintaxă: m = idss(A,B,C,D)
m = idss(A,B,C,D,K,x0,Ts)
Descriere:
Funcţia idss este utilizată pentru a construi un model descris prin
ecuaţii de stare cu parametrii cunoscuţi şi/sau necunoscuţi. Forma
generală a modelului descris de această funcţie este următoarea:
⎧~x (t ) = A(θ) x(t ) + B (θ)u (t ) + Ke(t ), x(0) = x0

⎩ y (t ) = C (θ) x(t ) + D(θ)u (t ) + e(t )
unde
~ ⎧ x& (t ), pentru sisteme continue
x (t ) = ⎨
⎩ x(t + Ts ), pentru sisteme discrete
Există mai multe variante de parametrizare a matricelor de stare ale
sistemului folosind această funcţie. Această parametrizare determină ce
parametrii vor fi ajustaţi de procedurile de identificare ale Matlab-ului
care utilizează acest model. Există trei variante de parametrizare:
I. Parametrizarea liberă de tip cutie neagră este un prim mod de
parametrizare în care toţi parametrii matricilor A, B şi C pot fi modificaţi
de procedurile de identificare. Acest tip de parametrizare reprezintă
modul implicit. Această parametrizare se realizează prin setarea
proprietăţii 'SSParameterization' = 'Free'. Parametrizările lui D, K şi
x0 sunt determinate de următoarele proprietăţi:
- ’nk’: Este un vector linie de aceeaşi lungime cu numărul intrărilor.
Elementul de pe poziţia k din acest vector reprezintă întârzierea de pe
canalul cu numărul k. Dacă toate elementele lui nk sunt zero, înseamnă
că nu există nici o întârziere pe nici un canal de intrare şi prin urmare
toate elementele lui D trebuie estimate. Dacă toate elementele vectorului
nk au valoarea 1 înseamnă că pe fiecare canal de intrare apare o întârziere
egală cu 1 şi prin urmare, toate elementele matricei D vor fi fixate la 0.
- 'DisturbanceModel': Această proprietate afectează parametrizarea lui
K şi poate avea una din următoarele valori:
• ’Estimate’ – toate elementele lui K trebuie estimate;
• ’None’ – toate elementele lui K sunt zero;
• ’Fixed’ – toate elementele lui K sunt fixate la valoarea lor
nominală/iniţială;
- ’InitialState’: - afectează parametrizarea lui x0 şi poate avea una din
următoarele valori:

23
• ’Auto’ – se face o alegere automată a stării iniţiale, în funcţie de
datele prelucrate;
• ’Estimate’ – toate elementele lui x0 vor fi estimate;
• ’Zero’ – toate elementele lui x0 sunt zero;
• ’Fixed’ – toate elementele lui x0 sunt fixate la valoarea lor
nominală/iniţială;
• ’Backcast’ – vectorul x0 este ajustat la o valoare convenabilă pe
parcursul estimării însă nu este memorat ca un rezultat de
estimare.

II. Parametrizarea canonică de tip cutie neagră se realizează prin setarea


proprietăţii 'SSParameterization' = 'Canonical'. În acest caz matricele
A, B şi C sunt parametrizate sub forma canonică standard observabilă. În
acest caz ny linii ale lui A (ny reprezintă numărul de ieşiri) sunt complet
parametrizate în timp ce restul sunt completate cu 0 şi 1, matricea B este
complet parametrizată iar matricea C este compusă din valori de 0 şi 1.
Parametrizările lui D, K şi x0 sunt determinate de proprietăţile 'nk',
'DisturbanceModel', şi 'InitialState'.
III. Parametrizarea structurată arbitrar reprezintă cazul general în care o
parte din elementele matricelor de stare sunt fixate la anumite valori în
timp ce cealaltă parte pot fi ajustate liber. Această parametrizare se
realizează prin setarea proprietăţii 'SSParameterization' = 'Structured'.
Parametrizarea se realizează în acest caz prin setarea proprietăţilor As,
Bs, Cs, Ds, Ks, şi X0. În aceste matrice, elementele setate la valoarea
NaN pot fi modificate în mod liber, în timp ce elementele ce au o valoare
numerică sunt fixe (nu pot fi modificate).
Exemplul 1.8 Să se creeze un model continuu în timp cu structura
următoare:
⎛θ 0⎞ ⎛θ ⎞
x& = ⎜⎜ 1 ⎟⎟ x + ⎜⎜ 3 ⎟⎟u
⎝ 0 θ2 ⎠ ⎝θ 4 ⎠
y = x1 + x2
cu valorile iniţiale ale parametrilor necunoscuţi:
⎛ − 0.2 ⎞
⎜ ⎟
⎜ − 0.3 ⎟
θ0 = ⎜
2 ⎟
⎜ ⎟
⎜ 4 ⎟
⎝ ⎠

24
Soluţie:

A = [-0.2, 0; 0, -0.3]; B = [2;4]; C=[1, 1]; D = 0


m0 = idss(A,B,C,D);
m0.As = [NaN,0;0,NaN];
m0.Bs = [NaN;NaN];
m0.Cs = [1,1];
m0.Ts = 0;

■ Funcţia sim

Comportarea modelelor obţinute în urma utilizării procedurilor


Matlab de identificare nu poate fi realizată cu funcţia lsim. Pentru aceasta
se utilizează o altă funcţie, şi anume funcţia sim. Această funcţie este
folosită de asemenea pentru simularea comportării modelelor de tipul
idmodel (obţinute folosind funcţiile idpoly, idproc sau idss).

Sintaxă: y = sim(m,u)
y = sim(m,u,'noise')
[y, ysd] = sim(m,u,'InitialState',init)

Descriere: În aceste sintaxe semnificaţia parametrilor este următoarea:


- m – este un model de tip idmodel;
- u – este un obiect de tip iddata ce conţine intrarea sau intrările
sistemului ce va fi simulat. Numărul de canale de intrare ale lui u
trebuie să fie egal cu numărul de intrări al modelului m sau să fie egal
cu suma dintre numărul de intrări şi numărul surselor de zgomot.
Pentru a face o simulare a sistemului afectat de un zgomot gaussian se
adaugă argumentul ’noise’.
- init – dă acces la stările iniţiale ale sistemului şi poate fi setat la una
din următoarele valori:
• ’m’ - se utilizează starea iniţială implicită a modelului m,
• ’z’ - se utilizează o stare iniţială nulă,
• x0 – se utilizează un vector coloană x0 de lungime
corespunzătoare definit de utilizator.
Funcţia sim returnează vectorul y ce conţine ieşirea simulată a
sistemului. Dacă se utilizează ultima variantă de sintaxă a funcţiei, în ysd
se returnează deviaţia standard a ieşirii simulate. Aceasta nu este
disponibilă dacă se utilizează date în domeniul frecvenţă.

25
Exemplul 1.9 Să se simuleze răspunsul sistemului discret următor:
q −1
y (t ) = u (t ) + e(t )
1 + 0.2q −1 + 0.3q −2
la o intrare de tip semnal pseudo-aleator binar. Sistemul este afectat de un
zgomot aleator e(t) cu distribuţie normală. Perioada de eşantionare este
Ts=0.1 sec.
Soluţie:
Sistemul este descris de un model de forma
B(q) C (q)
A(q) y (t ) = u (t − nk ) + e(t )
F (q) D( q)
unde: A(q)=1, B(q)=q-1, C(q)=1, D(q)=1, F(q)=1+0.2q-1+0.3q-2
Programul MATLAB este următorul:

B=[0 1];
F=[1 0.2 0.3]
m = idpoly(1,B,1,1,F,1,0.01)
e = iddata([],idinput(100,'rgs'));
u = iddata([],idinput(100,'prbs'));
y=sim(m,[u e]);
z=iddata(y,u);
plot(z)
Rezultatele rulării programului sunt prezentate în figura următoare:
Semnal de iesire
6

-2

-4
0 10 20 30 40 50 60 70 80 90 100
Timp
Semnal de intrare pseudo-aleator binar
1.5
1
0.5
0
-0.5
-1
-1.5
0 10 20 30 40 50 60 70 80 90 100
Timp

26
TEME:

1. Să se ruleze exemplele prezentate în lucrare.

2. Se consideră un sistem discret cu perioada de eşantionare Ts=0.1 sec


descris de următoarea ecuaţie:
y (t ) − 1.5 y (t − 1) + 0.7 y (t − 2) = u1 (t − 1) + 0.5u1 (t − 2) +
+ 0.34u 2 (t − 1) − 0.07u 2 (t − 2) − 0.22u 2 (t − 3) + e(t ) − e(t − 1) + 0.2e(t − 2)
Se cere:
a) să se creeze un model Matlab pentru acest sistem;
b) să se simuleze răspunsul sistemului pe un interval de 300 de
secunde la o intrare u1(t) de tip sumă de 2 sinusoide, la o intrare
u2(t) de tip pseudo-aleator binar şi un zgomot aleator e(t) cu
distribuţie normală de valoare medie nulă şi deviaţie standard egală
cu 0.2 (să se afişeze graficele lui y(t), u1(t), u2(t) şi e(t)).

3. Se consideră un sistem continuu descris prin funcţia de transfer:


10
H ( s) = e −2 s
s ( s + 2)( s 2 + 2 s + 5)
Se cere:
a) să se creeze un model Matlab pentru acest sistem;
b) să se simuleze răspunsul sistemului pe un interval de 300 de
secunde la o intrare u(t) de tip treaptă unitate, şi un zgomot aleator
e(t) de tip zgomot alb cu media egală cu 1 şi deviaţia standard 0.5.

4. Se consideră un sistem discret cu perioada de eşantionare Ts=0.5 sec


descris de următoarele ecuaţii de stare:
⎛ 1 .2 0 .4 ⎞ ⎛ 3⎞ ⎛1⎞
xk +1 = ⎜⎜ ⎟⎟ xk + ⎜⎜ ⎟⎟u k , x0 = ⎜⎜ ⎟⎟
⎝ 0 .8 − 0 .2 ⎠ ⎝1⎠ ⎝ 4⎠
y = [2 0.3]xk + ek
Se cere:
a) să se creeze un model Matlab pentru acest sistem;
b) să se simuleze răspunsul sistemului pe un interval de 500 de
secunde la o intrare u de tip semnal aleator binar cu amplitudinea
cuprinsă între -5 şi 5, şi perturbaţie e de tip zgomot alb.

27

S-ar putea să vă placă și