Sunteți pe pagina 1din 22

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 proba, 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 proba
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
normala 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
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 în 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

1■ 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:
1- u este o matrice sau un vector coloană returnat de funcţie ce
conţine datele de intrare utilizate pentru identificarea unui sistem;
2- 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.
- 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 parametrii:
1- frecvente: este un parametru în care se returnează frecvenţele semnalelor
sinusoidale;
2- 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

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

-20 50 100 150

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:


1) 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);
2) acronimul ’sine’ specifică tipul semnalului generat;
3) vectorul [0 50] specifică banda de frecvenţe din care vor fi alese
sinusoidele;
4) vectorul [0 5] specifică amplitudinea minimă şi maximă a
semnalului;
5) 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
Amplitudine
4.5

3.5

2.5

1.5

0.5

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

■ Funcţia lsim m(sys,u


m simulează
răspunsul în timp la
,t)
Deoarece datele ce[y,t,x]
diverse intrări al
vor fi prelucrate în sistemelor liniare
lucrările din acest=continue sau
îndrumar sunt obţinutelsim(sydiscrete. Dacă este
prin simularea comport
apelată
s,u,t,x fără
ării unor sisteme la
diferite semnale de0) argumentele din
intrare, prezentăm în stânga egalului,
D
continuare funcţia lsim ce funcţ ia plotează
e
simulează modele liniare. direct răspunsul pe
Sintaxă: [y,t] =
s
ecran. Astfel,
lsim(sys,u,t) c
[ rsintaxa
i lsim(sys,u,t) va
y
eproduce pe ecran
, rrăspunsul
t e
:
,
F
x u
] n
c
ţ
=
i
a
l
s
l
s
i
i
unui model liniar sys la o intrare u . Vectorul t specifică momentele de
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


exprimat prin funcţia de transfer H (s) 3 la o intrare de tip semnal
s2
gaussian, pe un interval de timp de 5 de secunde, cu o perioadă de
eşantionare egală cu 0.1 secunde.
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.50 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
serie de timp). Dacă Y=[], date_id descrie doar intrarea sistemului.
Semnificaţia parametrilor este următoarea:
1- Y este o matrice de dimensiune N x Ny cu N numărul de date şi
Ny numărul canalelor de ieşire.
2- 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


exprimat prin funcţia de transfer H (s) 10 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)
y1
1

-1

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


Time
u1

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: []
Dacă se doreşte modificarea uneia dintre aceste proprietăţile 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:

A(q) y(t) B1 (q) u (t nk ) ... Bnu (q) u (t nk ) C(q) e(t)


1
F (q) 1 F (q) nu nu D(q)
1 nu

unde:
1- q reprezintă operatorul de întârziere cu un pas;
2- A, B, C, D şi F sunt matrici î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
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 ... ana q na
1- NoiseVariance reprezintă varianţa zgomotului e(t)
2- 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:

y(t) 1 u (t) s 3 u (t) e(t)


1 2
s(s 1) s 2s 4 2

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 u 1(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.5y(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 2 1 2 1 2
(1 1.5q 0.7q ) y(t) (q 0.5q )u(t) (1 q 0.2q )e(t)
Avem deci un model de forma:
B( q ) C (q )
A(q) y(t) F ( q ) u(t nk) D ( q ) e(t)
unde: A(q) 1 1.5q 1 0.7q 2 B(q) q
1 2
0.5q
1 2
C(q) 1 q 0.2q 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) ai 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.
Exemplul 1.7
Type=’P1D’, corespunde unui model cu funcţia de transfer
Kp
T s
G(s) 1sTp1 e
d
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 T s (T s)2 )(1 T s)
w w p3
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
Y (s) K p (1) e Td sU1 (s) K p (2) U 2 (s) se obţine folosind instrucţiunea
1sTp1 (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.

■ 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 este î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:
1- ’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 matricii D vor fi fixate la 0.
2- '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ă;
3- ’InitialState’: - afectează parametrizarea lui x0 şi poate avea una
din următoarele valori:
’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ări însă nu este memorat ca un rezultat de estimare.

35. 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:
x
1 0 x
3 u

0 2 4
y x1 x2
cu valorile iniţiale ale parametrilor necunoscuţi:
0.2
0.3
0
2
4

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:


1-m – este un model de tip idmodel;
2-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’.
3-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ţă.
Exemplul 1.9 Să se simuleze răspunsul sistemului discret următor:
q1
u(t) e(t)
y(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) F ( q ) u(t nk) D ( q ) e(t)
-1 -1 -
unde: A(q)=1, B(q)=q , C(q)=1, D(q)=1, F(q)=1+0.2q +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

-40 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.50 10 20 30 40 50 60 70 80 90 100
Timp
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.5y(t 1) 0.7 y(t 2) u1 (t 1) 0.5u1 (t 2)
0.34u2 (t 1) 0.07u2 (t 2) 0.22u2 (t 3) e(t) e(t 1) 0.2e(t 2)
Se cere:
1) să se creeze un model Matlab pentru acest sistem;
2) 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) s(s 2)(s22s 5) e 2s
Se cere:
1) să se creeze un model Matlab pentru acest sistem;
2) 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
x
k1 x x0
u ,

0.8 0.2 1
k k
4

y 2 0.3 xk ek
Se cere:
1) să se creeze un model Matlab pentru acest sistem;
2) să se simuleze răspunsul sistemului pe un interval de 500 de secunde la o
intrare u de tip un semnal aleator binar cu amplitudinea cuprinsă între -5
şi 5, şi perturbaţie e de tip zgomot alb.

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