Sunteți pe pagina 1din 22

n Trusa de instrumente IDENT din MATLAB

Ce este o trusă de instrumente din MATLAB?

O
O bibliotecă
bibliotecă de
de rutine
rutine specializate
specializate pe
pe un
un anumit
anumit domeniu
domeniu
de
de cercetare
cercetare..
2 p
În
În particular,
particular, IDENT
IDENT sese referă
referă la
la domeniul IS şi
domeniul IS şi conţine
conţine rutine
rutine
implementate
implementate în în tehnologia
tehnologia Programării
Programării Orientate
Orientate pepe Obiecte
Obiecte..
Există
Există şşii oo interfa ţă grafică
interfaţă grafică prietenoasă
prietenoasă cu
cu utilizatorul
utilizatorul ((GUI),
GUI),
Mai
Mai mult
mult pentru
pentru efectuarea
efectuarea de de experimente
experimente de
de identificare
identificare comparative.
comparative.
Obiecte
Obiecte IDENT
IDENT
principale
principale
IDDATA IDMODEL IDSS
Cîteva
Cîteva funcţii
funcţii IDENT
IDENT
frecvent
frecvent utilizate
utilizate
armax/arx ident n4sid
bj/oe idarx pem
compare idpoly predict
• Lansată în execuţie prin comanda:
iddata iv4 sim >>
>> ident
ident L6
n Trusa de instrumente IDENT din MATLAB
IDDATA
IDDATA
D Structură de date intrare-ieşire generate folosind metoda constructor iddata asociată
obiectului IDDATA (date de identificare). Cele 2 matrici de date u (de intrare) şi y (de
ieşire) pot avea dimensiuni identice: N linii şi nr coloane. Fiecare din cele nr perechi de
coloane de dateI I/O este văzută ca un experiment econometric (sau o realizare). Dacă
y are numai o coloană, atunci nr=nu şi datele provin de la un model MISO. Datele se
regăsesc în cîmpurile D.u şi D.y. Structura se compune din următoarele cîmpuri:
Domain: ''Time'/'Frequency''* Există blocuri de date în domeniul
* Există blocuri de date în domeniul
Name: 'String'
OutputData: [1x37 char]
timpului
timpului sau
sau îîn
n domeniul
domeniul frecven ţei.
frecvenţei.
y: 'Same as OutputData' Í date de ieşire
OutputName: 'Ny-by-1 cell array of strings'
OutputUnit: 'Ny-by-1 cell array of strings'
InputData: [1x36 char]
u: 'Same as InputData' Í date de intrare
InputName: 'Nu-by-1 cell array of strings'
InputUnit: 'Nu-by-1 cell array of strings'
Period: [1x51 char] Í perioadã de eşantionare
InterSample: [1x36 char]
Ts: [1x54 char]
Tstart: 'Scalar (Starting time)'
SamplingInstants: [1x51 char]
Î Pentru mai multe detalii:
TimeUnit: 'String'
ExperimentName: [1x43 char] >>
>> idprops
idprops iddataiddata
Notes: 'Cell array of strings'
UserData: 'Arbitrary' L7
n Trusa de instrumente IDENT din MATLAB
Cum se poate crea un bloc de date?

Este
Este necesar
necesar ca,
ca, mai
mai întîi
întîi,, să
să se
se cunoască
cunoască modul
modul de
de reprezentare
reprezentare aa datelor
datelor
primare
primare în
în mediul
mediul de
de programare
programare MATLAB.
MATLAB.
Date
Date pe
pe canale
canale de
de măsură
măsură (fiecare coloană este asociată cîte unui canal)

** Momente
Momente dede
• Datele primare sunt reprezentate în diferite formate, dintre care MATLAB
poate recunoaşte următoarele, uzuale:
şantionare.
eeşantionare. Î ASCII (.M) (similare programelor principale)
(eventual)
Î ASCII (.TXT) (cu datele precizate pe coloane)
yy Î Tabel (.XLS) (accesibile cu MS Office - Excell)
Î Criptat (.MAT) (create şi salvate pe disc prin
comanda MATLAB save)
• Pentru încărcarea lor în spaţiul de lucru al mediului de programare MATLAB, se pot utiliza
comenzile următoare:
>>
>> nume_fisier_date
nume_fisier_date Î ASCII (.M)

>>
>> load
load nume_fisier_date.extensie
nume_fisier_date.extensie Î ASCII (.TXT), Criptat (.MAT)

>>
>> xlsread
xlsread nume_fisier_date.xls
nume_fisier_date.xls Î Tabel (.XLS)

• Datele sunt memorate în variabile identificate prin numele fişierelor de provenienţă


sau, dacă este vorba despre un fişier .MAT, prin numele atribuite lor înainte de
salvarea în acel fişier. L8
n Trusa de instrumente IDENT din MATLAB
Exemple
Exemplede
defifişiere
şiere primare
primarede
dedate
date
Î ASCII (.M)

** Observa
Observaţiţi maniera
maniera de
de atribuire
atribuire aa
variabilei
variabilei care
care conţine datele
conţine datele..

** Pot prezente şşii alte


Pot fifi prezente alte informa ţii
informaţii
((auxiliare)
auxiliare) privind
privind datele
datele.. L9
n Trusa de instrumente IDENT din MATLAB
Exemple
Exemplede
defifişiere
şiere primare
primarede
dedate
date(final)
(final) Date
Date pe
pe canale
canale de
de măsură
măsură
Î ASCII (.TXT) Î Tabel (.XLS)

** Momente
Momente dede
şantionare.
eeşantionare.

** Nu
Nu este
este obligatoriu
obligatoriu caca
prima
prima coloană
coloană săsă includă
includă
momente
momente de şantionare.
de eeşantionare. L10
n Trusa de instrumente IDENT din MATLAB
Şi totuşi… Cum se poate crea un bloc de date?

Odată
Odată încărcate
încărcate în
în spaţiul
spaţiul de
de lucru
lucru MATLAB,
MATLAB, datele
datele primare
primare pot
pot forma
forma
blocuri
blocuri de
de date
date cu
cu ajutorul
ajutorul comenzii
comenzii: :
>>
>> iddata
iddata
Exemplu
Exemplu
• A fost proiectată funcţia make_DATA, care crează şi salvează pe disc un bloc de date
corespunzător unor serii de timp măsurate simultan pe mai mult canale:

L11
n Trusa de instrumente IDENT din MATLAB
Exemplu
Exemplu make_DATA
make_DATA

Í aici se crează obiectul DATA vid, care va fi completat ulterior cu informaţie

** Dacă
Dacă sunt
sunt mai
mai mult
mult de
de 22 coloane
coloane,,
se
se consideră
consideră căcă prima
prima include
include
momente
momente de şantionare.
de eeşantionare.

L12
n Trusa de instrumente IDENT din MATLAB
IDMODEL
IDMODEL
M Obiectul IDMODEL (model de identificare I/O) conţine cîmpurile:
a : 'A -poly nomi al ( row v ecto r)'
b: ' B-po lyno mial (row vec tor)'
polinoamele modelului Î c: ' C-po lyno mial (row vec tor)'
d: ' D-po lyno mial (row vec tor)'
RIO (A,B,…,F) f: ' F-po lyno mial (row vec tor)'

( ) ( )
−1 −1 da: ' stan dard devi atio n of a (s cala r)'
B q C q
( )
db: ' stan dard devi atio n of b (s cala r)'
A q −1 y[n] = u[ n ] + e[ n ]
( ) ( )
dc: ' stan dard devi atio n of c (s cala r)'
−1 −1

F q D q dd: ' stan dard devi atio n of d (s cala r)'
∀n ∈N df: ' stan dard devi atio n of f (s cala r)'
na: ' orde r of A-po lyno mial (sca lar) '
indicii structurali Î nb: ' orde r of B-po lyno mial (sca lar) '
nc: ' orde r of C-po lyno mial (sca lar) '
(na,nb,…,nf) nd: ' orde r of D-po lyno mial (sca lar) '
nf: ' orde r of F-po lyno mial (sca lar) '
timpul mort Î nk: 'delay of B-polynomial (scalar)'
In itia lSta te: [ 1x45 cha r]
Na me: ' stri ng'
perioada de eşantionare Î Ts: ' samp le t ime i n se cond s (sc alar )'
Inp utNa me: ' Nu-b y-1 cell arra y of stri ngs'
Inp utUn it: ' Nu-b y-1 cell arra y of stri ngs'
Outp utNa me: ' Ny-b y-1 cell arra y of stri ngs'
Outp utUn it: ' Ny-b y-1 cell arra y of stri ngs'
Ti meUn it: ' stri ng'
Param eter Vect or: ' Np-b y-1 vecto r'
PName: 'Np-by-1 cell array of strings'
C ovari ance Matr ix: ' Np-b y-Np matr ix'
Noi seVa rian ce: ' Ny-b y-Ny matr ix' Î Pentru mai multe detalii:
InputDelay: 'Nu-by-1 vector'
Alg orit hm: [ 1x38 cha r] >>
>> idprops
idprops idmodel
idmodel
Esti mati onIn fo: [ 1x39 cha r]
Notes: 'Array or cell array of strings'
User Data : 'A rbitr ary'
Evident, polinoamele A şi B se regăsesc în cîmpurile: M.a, respectiv M.b. În M.b
sunt salvaţi atît coeficienţii nenuli cît şi cei nuli (datoraţi întîrzierii intrinseci) ai
polinomului B. Ordinele polinoamelor sunt memorate în M.na, respectiv M.nb, iar
întîrzierea intrinsecă – în M.nk.
L13
n Trusa de instrumente IDENT din MATLAB
IDSS
IDSS Î Pentru mai multe detalii: >>
>> idprops
idprops idss
idss
S Obiectul IDSS (model de identificare pe stare) conţine cîmpurile:
A: 'A-matrix (Nx-by-Nx matrix)'
matricile modelului Î B: 'B-matrix (Nx-by-Nu matrix)'
C: 'C-matrix (Ny-by-Nx matrix)'
(A,B,…,K) D: 'D-matrix (Nu-by-Ny matrix)'
K: 'K-matrix (Nx-by-Ny matrix)'
starea iniţială Î X0: 'Initial states (Nx-by-1 matrix)'
dA: 'Std deviation of A-matrix'
⎧x[n + 1] ≡ A(θ)x[n] + B(θ)u[n] + K (θ)e[n] dB: 'Std deviation of B-matrix'
⎨ dC: 'Std deviation of C-matrix'
⎩y[n] ≡ C(θ)x[ n] + D(θ)u[n] + e[n] dD: 'Std deviation of D-matrix'
dK: 'Std deviation of K-matrix'
∀ n ∈ N∗ dX0: 'Std deviation of X0-matrix'
SSParameterization: '['Free'|'Canonical'|'Structured']'
As: 'Structure matrix for A'
Bs: 'Structure matrix for B'
RSS Cs: 'Structure matrix for C'
Ds: 'Structure matrix for D'
Ks: 'Structure matrix for K'
X0s: 'Structure matrix for X0'
StateName: 'Nx-by-1 cell array of strings'
InitialState: '['Auto'|'Backcast'|'Estimate'|
'Zero'|'Fixed']'
nk: 'Model delays in response from u to y
(nu-by-1 vector)'
DisturbanceModel: '['Estimate'|'None'|'Fixed']'
CanonicalIndices: 'Row vector or 'Auto''
Name: 'string'
perioada de eşantionare Î Ts: 'Scalar (sample time in seconds)'
InputName: 'Nu-by-1 cell array of strings'
InputUnit: 'Nu-by-1 cell array of strings'
OutputName: 'Ny-by-1 cell array of strings'
OutputUnit: 'Ny-by-1 cell array of strings'
TimeUnit: 'string'
ParameterVector: 'Np-by-1 vector'
PName: 'Np-by-1 cell array of strings'
CovarianceMatrix: 'Np-by-Np matrix'
NoiseVariance: 'Ny-by-Ny matrix'
InputDelay: 'Nu-by-1 vector'
Algorithm: 'Structure: algorithm details'
EstimationInfo: 'Structure: estimation results'
Notes: 'Array or cell array of strings'
UserData: 'Arbitrary'
Ev ident, matricile A, B, C, D, K se regăsesc în cîmpurile: S.A, S.B, S.C, S.D,

L14
respectiv M.K. În S.X0 se află vectorul stărilor iniţiale ale sistemului.
n Trusa de instrumente IDENT din MATLAB
Ce legătură există între obiectele IDMODEL şi IDSS?

Orice
Orice model
model RSISO
RSISO poate
poate fifi convertit
convertit într -un model
într-un model cu
cu reprezentare
reprezentare
pe
pe stare MRS) şi
stare ((MRS) şi reciproc
reciproc,, prin
prin intermediul
intermediul unor
unor algoritmi
algoritmi specifici
specifici..
MIO
B ( q −1 ) C ( q −1 )
A (q ) y[n] = F
−1
obiect IDSS obiect IDMODEL
u[n] + e[n]
(q )
−1
D (q −1
) ∀ n ∈ N∗ >>
>> MRS
MRS == idss(MIO) ;;
idss(MIO)

>>
>> MIO
MIO == idpoly(MRS) ;;
idpoly(MRS) MRS

⎧x[n + 1] ≡ A (θ)x[n] + B(θ)u[n] + K (θ)e[n]



⎩y[n] ≡ C(θ)x[n] + D(θ)u[n] + e[n] ∀n∈N ∗

** Nu
Nu poate
poate fifi controlat
controlat numărul
numărul de de
Modelele
Modelele pe
pe stare
stare înîn timp
timp discret
discret pot
pot fifi văzute
văzute stări
stări (care,
(care, de
de regulă
regulă,, este
este ridicat ).
ridicat).
şi
şi ca
ca modele
modele înîn timp
timp continuu
continuu,, prin
prin precizarea
precizarea
perioadei
perioadei de
de eşantionare
eşantionare (implicit
(implicit unitară
unitară). ).
>>
>> MRS.Ts
MRS.Ts == Ts
Ts ;; L15
n Trusa de instrumente IDENT din MATLAB
Cum se poate crea un obiect de tip model de identificare?

Există
Există două
două posibilită ţi uzuale
posibilităţi :
uzuale:
c Direct, prin utilizarea uneia dintre comenzile:
>>
>> idpoly
idpoly
Î pentru modele I/O liniare polinomiale
>>
>> idarx
idarx ** A
A doua
doua —— numai
numai pentru
pentru modele
modele ARX
ARX..
>>
>> idss
idss
Î pentru modele liniare pe stare
>>
>> idgrey
idgrey
d Indirect, prin utilizarea uneia dintre rutinele de identificare menţionate.
** Se
Se va
va reveni
reveni asupra
asupra acestui
acestui subiect
subiect..
• Apeluri întrebuinţate frecvent:
>> M = idpoly ; Î Crează modelul grosier (A=1, B=0, C=1, D=1, F=1) …
>> M.a = A ; Î … apoi atribuie polinoamele. ⎡ A ( q −1 ) = 1 + a1 q −1 + " + ana q − na

>> M.b = B ; A = [1 a1 a2 … ana] ⎢ B ( q −1 ) = q − nk ( b1 q −1 + " + bnb q − nb )
>> M.c = C ; ⎢
B = [0 … 0 b1 b2 … bnb] ⎢C ( q −1 ) = 1 + c1 q −1 + " + cnc q − nc
>> M.d = D ; ... ⎢
>> M.f = F ; nk ≥ 1 (întîrzierea intrinsecă) ⎢ D ( q −1 ) = 1 + d1 q −1 + " + d nd q − nd
F = [1 f1 f2 … fnf] ⎢
⎢ F ( q −1 ) = 1 + f1 q −1 + " + f nf q − nf

>> M = idpoly(A,B,C,D,F) ; Î Crează direct modelul dorit.
** Ultimele
Ultimele polinoame
polinoame pot
pot lipsi
lipsi.. ** Unele
Unele polinoame
polinoame pot
pot fifi vide.
vide. L16
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (1/9)
(1/9)

armax/arx pem bj/oe iv4 levinson n4sid


armax
armax
indici structurali
• Identifică modele din clasa ARMAX, folosind date I/O măsurate.
• Apeluri tipice:
>>
>> MM == armax (DATA,[na nb
armax(DATA,[na nb nc
nc nk]);
nk]); întîrzierea intrinsecă (implicit 1)

>>
>> MM == armax (DATA,'na',na,'nb',nb,'nc',nc,'nk',nk);
armax(DATA,'na',na,'nb',nb,'nc',nc,'nk',nk);
** Variantă
Variantă care
care permite
permite omiterea
omiterea
obiect IDMODEL obiect IDDATA unora
unora dintre
dintre indicii
indicii structurali
structurali..
Exemple
Exemple
>> M = armax(DATA,'na',3,'nb',7) ; Î Identifică modelul ARX[3,7].
>> M = armax(DATA,'na',1,'nc',6) ; Î Identifică modelul ARMA[1,6].
• Apeluri alternative rapide:
>>
>> MM == armax(iddata(y,u),indici_structurali);
armax(iddata(y,u),indici_structurali);
** Cu
Cu yy şşii uu de
de tip
tip date
date preliminare
preliminare ((vectori/matrici
vectori/matrici de
de date şezate pe
date aaşezate pe coloane ).
coloane).
>>
>> MM == armax(iddata(y,[]),indici_structurali );
armax(iddata(y,[]),indici_structurali);
** ÎÎn
n cazul
cazul seriilor
seriilor de
de timp
timp.. Metoda
Metoda de
de identificare
identificare
Minimizarea
Minimizarea Erorii
Erorii de
de Predicţie ((MMEP)
Predicţie MMEP) L17
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (2/9)
(2/9)
armax
armax
• Modelele identificate pot fi multi-dimensionale. Dar
Dar nu
nu de
de tip
tip MIMO
MIMO

⎧ A ( q −1 ) y[ n] = B ( q −1 ) u[ n] + C ( q −1 ) e[ n]

Modelul
Modelul ARMAX -MIMO ⎨
{ }
ARMAX-MIMO
T
= Λ δ − ∀n∈N
Matrici

⎩ E e[ n ]e [ m ] 0 [ n m ]
Matrici de
de polinoame
polinoame

(q ) ∈ R ∈ R ∈ R
ny nu ny
ny×ny −1
A∈R Î y u aceeaşi
Semnale e dimensiune

B∈R ny×nu
(q )
−1 ** Există
Există tot
tot at îtea perturba
atîtea ţii ccîte
perturbaţii îte canale
canale de
de măsură
măsură..

(q )
Ecuaţia
Ecuaţia generică
generică ARMAX -MIMO
ARMAX-MIMO
ny×ny −1
C∈R
∑ Al , j (q ) y j [n] = ∑ Bl ,i ( q ) i ∑ l , j ( ) e j [ n]
ny nu ny
−1 −1 −1
** Avînd coeficien ţi
u [ n ] + C q
Avînd coeficienţi
j =1 i =1 j =1
necunoscu ţi .
necunoscuţi. ∀n∈N
Necunoscută.
** Necunoscută.

polinoame polinoame polinoame


de grad ∀ l ∈1, ny
Matrice
Matrice de
de
covarianţă de grad de grad
covarianţă aa
zgomotelor
zgomotelor na nb nc
Λ ∈ R ny×ny ** Toate
Toate polinoamele
polinoamele unei
unei matrici
matrici au
au acelaşi grad.
acelaşi grad. L18
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (3/9)
(3/9)
armax
armax Reprezentare
Reprezentare sistemică
sistemică MIMO
MIMO
e1 e2 ... eny Problema
Problema
Există
Există 33 trepte
trepte
dede procesare
procesare principală
principală::
col1C col 2 C ... col ny C evaluarea
evaluarea inversei
inversei
aa semnalelor
semnalelor
matricii
matricii A
A..

y1
+
u1
col1B
x1

y2
+
u2
col 2 B x2

−1
... ...
A ...
variabile
interne
xny yny
+
unu
col nu B
Procesare
Procesare IN
IN Procesare
Procesare ZZ Procesare
Procesare OUT
OUT L19
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (4/9)
(4/9)
armax
armax Cum ar putea fi inversată matricea de polinoame A?
În
În general,
general, este
este dificil
dificil,, dacă
dacă nu
nu imposibil
imposibil..
Este
Este necesară
necesară oo simplificare
simplificare aa modelului
modelului,, care
care va
va permite
permite ** Modelul
Modelul vava pierde
pierde
fie
fie evitarea
evitarea inversării
inversării,, fie
fie inversarea
inversarea cu
cu uşurinţă
uşurinţă.. îînsă
nsă din
din precizie
precizie..

Adoptarea unui Adoptarea principiului


model AR-MO Ce principiu? din MATLAB
** Dacă
Dacă nu
nu există
există Modelul
Modelul MIMO
MIMO este
este văzut
văzut ca
ca oo
date
date de
de intrare
intrare.. colecţie
colecţie de
de ny
ny modele
modele MISO
MISO..
Fiecare
Fiecare model
model MISO
MISO codifică
codifică influenţa
influenţa pe
pe care
care oo au
au toate
toate intrările
intrările asupra
asupra unei
unei anumite
anumite
ieşiri
ieşiri,, corupte
corupte doar
doar de
de zgomotul
zgomotul canalului
canalului său nu şi
său ((nu şi de
de zgomotele
zgomotele celorlalte
celorlalte canale).
canale).
e1 e2 ... eny e1 ... ej ... eny

col1C col 2 C ... col ny C C1 ... Cj ... C ny

y1
+
u1 y1
+
u1
col1B col1B
x1
1− A j ...
y2
+
u2 yj
+
u2
col 2 B x2 col 2 B

... ...
A −1 ... ... ...
1− A j
...

unu yny
xny yny col nu B +
+ L20
unu
col nu B 1 − A ny
n Trusa de instrumente IDENT din MATLAB
armax
armax Principalele
Principalele rutine
rutine de
de identificare
identificare (5/9)
(5/9)
e1

C1
... ej

... Cj
...

...
eny

Cny
Reprezentarea
Reprezentarea sistemică
sistemică multi -MISO
multi-MISO
e1 ... ej ... eny
y1
+
u1
col1B
1− A j ...
yj
+
u2
col 2 B
1− A j
...
... ...

unu
col nu B +
1 − A ny
yny

Practic
Practic,, matricile
matricile
C1 ... Cj ... C ny A şi
A şi CC sunt
sunt
Acum
Acum,, există
există
diagonale
diagonale..
doar
doar 22 trepte
trepte..
y1
+
u1
col1B
1 − A1 ...
yj
+
u2
col 2 B
1− A j
...
... ... ** Nu
Nu se
se efectuează
efectuează nici
nici oo inversare
inversare..
** ÎÎn
n compensare
compensare,, gradele
gradele polinoamelor
polinoamelor A A şşii C
C
yny
+
unu pot
pot fifi diferite
diferite de
de la
la un
un canal
canal la
la altul
altul..
col nu B
1 − A ny
Procesare
Procesare IN
IN Procesare
Procesare Z+OUT
Z+OUT L21
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (6/9)
(6/9)
armax
armax
În
În concluzie
concluzie Modelul
Modelul ARMAX -MIMO, este
ARMAX-MIMO, este înlocuit
înlocuit de
de oo colecţie
colecţie de
de modele
modele
ARMAX -MISO, identificate
ARMAX-MISO, identificate din
din blocuri
blocuri de
de date
date de
de forma:
forma:

** Se
Se apelează
de
apelează armax
armax ...
de ny
ny ori
ori..

yy11 uu yy22 uu yyny


ny
uu

• O funcţie înrudită tentantă pentru Automatică este şi: arx


arx (pentru identificarea modelelor ARX)
Totuşi
Totuşi Funcţia arx utilizează
Funcţia arx utilizează Metoda
Metoda Celor
Celor Mai
Mai Mici
Mici Pătrate
Pătrate ((MCMMP),
MCMMP),
fiind
fiind mai
mai puţin
puţin precisă
precisă decît armax..
decît armax
pem
pem Prediction
Prediction Error
Error Minimization
Minimization
• Funcţie aflată la baza celorlalte rutine de identificare a modelelor I/O liniare.
• De regulă, ea nu este utilizată direct, ci indirect, prin intermediul celorlalte rutine
(care o apelează în interiorul lor).
• Totuşi, dacă se doreşte, ea poate fi apelată ca în cazul funcţiei armax:
>>
>> MM == pem (DATA,ms);
pem(DATA,ms); structura modelului: obiect de tip IDMODEL, IDSS
sau direct indicii structurali L22
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (7/9)
(7/9)
bj
bj RIO cu A=1 indici structurali
• Identifică modele din clasa Box - Jenkins , folosind date I/O măsurate .
• Apeluri tipice:
>>
>> MM == bj (DATA,[nb nc
bj(DATA,[nb nc nd nd nfnf nk ]);
nk]); întîrzierea intrinsecă (implicit 1)

>>
>> MM == bj(DATA,'nb',nb,'nc',nc ,'
bj(DATA,'nb',nb,'nc',nc nd',nd,'nf',nf,'nk',nk);
,'nd',nd,'nf',nf,'nk',nk);
** Variantă
Variantă care
care permite
permite omiterea
omiterea
obiect IDMODEL obiect IDDATA unora
unora dintre
dintre indicii
indicii structurali
structurali..
• Modelul ARMAX fiind un caz particular de model Box-Jenkins, el se poate identifica accidental
şi cu ajutorul funcţiei bj.
** Func ţia bj
Funcţia bj este
este îînsă
nsă mai
mai lentă
lentă dec ît func
decît ţia armax
funcţia armax..

• O altă funcţie care identifică un model particular este şi: oe


oe (pentru identificarea modelelor de tip
Eroare de Ieşire — Output Error)
• Modelele multi-MISO se pot identifica de asemenea,
folosind funcţia bj. B ( q −1 )
y[n] = u[n] + e[n]
Exemplu
Exemplu F ( q −1 )
∀ n ∈ N∗
>> M = bj(DATA,'nb',[3 4],'nc',7, ...
'nd',2,'nf',[5 6]) ; B ( q −1 )
e[n] = y[n] − u[n]
Î Identifică modelul F ( q −1 )
B1 ( q −1 ) B 2 ( q −1 ) C ( q −1 ) ∀ n ∈ N∗
BJ[(3,4),7,2,(5,6)]: y[n] = u1[n] + u2 [ n] + e[ n]
F1 ( q ) F2 ( q ) D(q ) ∀n∈N L23
−1 −1 −1
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (8/9)
(8/9)
iv4
iv4
• Identifică modele din clasa ARX, prin: Metoda
Metoda Variabilelor
Variabilelor Instrumentale
Instrumentale ((MVI)
MVI)
• Apeluri tipice:
>>
>> MM == iv4(DATA,[na nb
iv4(DATA,[na nb nk]);
nk]); ** Cu
Cu acelea şi nota
aceleaşi ţii ca
notaţii ca îîn
n
cazul
cazul func ţiei armax
funcţiei armax..
>>
>> MM == iv4(DATA,'na',na,'nb',nb,'nk',nk);
iv4(DATA,'na',na,'nb',nb,'nk',nk);
levinson
levinson A ( q −1 ) y[n] = e[n]
∀ n ∈ N∗
• Identifică modele din clasa AR, folosind date I/O măsurate, pe baza:
Algoritmului
Algoritmului Levinson -Durbin ((ALD)
Levinson-Durbin ALD)
indice structural (implicit: length(ry)-1)
• Apel tipic:
>>
>> AA == levinson(ry,na);
levinson(ry,na); ** Care este şşii valoarea
Care este valoarea
maximă
maximă posibilă
posibilă..
vectorul
K ≥ na
N
vectorul de auto-covarianţă 1
parametrilor
a datelor
ry [k ] = ∑
N − k n = k +1
y[n] y[n − k ]
A = [1 a1 a2 … ana] ∀ k ∈ 0, K
• ALD este una dintre cele mai eficiente … care se evaluează astfel:
proceduri de identificare, dar se referă la
>>
>> [[ry,k]
ry,k] == xcorr(y,K
xcorr(y,K); );
un model de complexitate redusă.
** Nu
Nu poate
poate identifica
identifica modele
modele AR -MO.
AR-MO.
>>
>> ry(k
ry(k<0) <0) == []; []; L24
n Trusa de instrumente IDENT din MATLAB
Principalele
Principalele rutine
rutine de
de identificare
identificare (9/9)
(9/9)
n4sid
n4sid
• Identifică modele cu reprezentare pe stare, folosind date I/O măsurate, pe baza:
Metodei
Metodei Subspa ţiilor de
Subspaţiilor de Stare
Stare ((MSS)
MSS)
Matrici
Matrici de
de parametri
parametri
⎧ x[n + 1] ≡ A(θ) x[n] + B(θ)u[ n] + F(θ)e[ n]
⎪ A ∈ R nx×nx B ∈ R nx×nu F ∈ R nx×ny
⎨y[n] ≡ C(θ)x[n] + D(θ)u[n] + e[n]
⎪ C ∈ R ny×nx D ∈ R ny×nu
⎩ E{e[n]e [m]} = Λ (θ)δ0 [n − m]
T
∀ n, m ∈ N
Λ ∈ R ny×ny
Matrice
Matrice de
de covarianţă
covarianţă aa
zgomotelor
zgomotelor ((diagonală)
diagonală)
• Apel tipic:
>>
>> SS == n4sid (DATA,nx);
n4sid(DATA,nx); ** Toate
Toate,, cu
cu coeficienţi necunoscu
coeficienţi ţi .
necunoscuţi.
Se va detecta cel mai
obiect IDSS obiect IDDATA numărul dorit de stări bun din gama 1:10.
>>
>> FF == S.K
S.K ;; • Dacă nu se cunoaşte, se poate preciza, în loc, 'best'.
• Pentru fiecare pas de întîrziere dintre cele nk,
Exemplu
Exemplu se adaugă cîte o stare virtuală.
>> S = n4sid(DATA,'best','InitialState','Estimate') ;
Î Identifică modelul pe stare cu număr optimal de stări în gama 1:10
şi transmite modelului inclusiv starea iniţială estimată. S.X0 S.X0
** Rutina
Rutina are
are uneori
uneori un
un comportament
comportament nea şteptat de
neaşteptat de slab
slab ((pentru
pentru anumite
anumite valori
valori nx).
nx). L25
n Trusa de instrumente IDENT din MATLAB
Interfaţa
Interfaţa grafică
grafică IDENT
IDENT Permite compararea diferitelor
Permite compararea diferitelor
• Lansată în execuţie prin comanda: >>
>> ident
ident modele
modele de
de identificare
identificare..

• Interfaţa este convivială şi poate fi descoperită pas cu pas de către utilizator. L26
n Trusa de instrumente IDENT din MATLAB
) Probleme de simulare
Problema
Problema 1.1 1.1
Utilizaţi comenzile help şi helpwin pentru a obţine informaţii despre funcţiile
MATLAB prezentate. Apoi, elaboraţi mici programe, prin care să testaţi funcţionarea
acestor funcţii. Datele se pot genera pseudo-aleator cu ajutorul funcţiilor rand
şi/sau randn. O funcţie inetersantă pentru generarea de semnale de stimul este
şi idinput. (Obiectivul este acela de a vă obişnui cu maniera de apelare a
acestor funcţii şi nu neapărat de a verifica precizia rezultatelor oferite de ele.)
Problema
Problema 1.2
1.2
1. După modelul funcţiei make_DATA proiectaţi o rutină care să construiască un
obiect de tip IDDATA pentru modele MIMO complete. (Cu alte cuvinte,
adăugaţi şi intrările achiziţionate în blocul de date). Testaţi corectitudinea
rutinei.
2. Proiectaţi o rutină care să construiască un obiect de tip IDSS.
Problema
Problema 1.3
1.3
Lansaţi în execuţie interfaţa grafică de identificare IDENT şi testaţi toate facilităţile
acesteia, plecînd de la Import data > Example.

L27

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