You are on page 1of 22

Tema

Tema 11

n Trusa de instrumente IDENT din MATLAB


Ce este o trusă de instrumente din MATLAB?

O
O bibliotec ă de
bibliotecă 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
domeniul IS
IS şi
şi conţine
conţine rutine
rutine
implementate
implementate în în tehnologia
tehnologia Program ării Orientate
Programării Orientate pe
pe Obiecte
Obiecte..
Există şşii oo interfa
Există ţă grafic
interfaţă ă prietenoas
grafică 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 L.1
Tema
Tema 11
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'
L.2
Tema
Tema 11
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,, ssă
ă se
se cunoască modul
cunoască 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ă (fiecare coloană este asociată cîte unui canal)
măsură

** 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. L.3
Tema
Tema 11
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.. L.4
Tema
Tema 11
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ăă ssă
ă includ ă
includă
momente
momente de şantionare.
de eeşantionare. L.5
Tema
Tema 11
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:

L.6
Tema
Tema 11
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ăă ccă
ă prima
prima include
include
momente
momente de şantionare.
de eeşantionare.

L.7
Tema
Tema 11
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.
L.8
Tema
Tema 11
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'
RSS Bs: 'Structure matrix for B'
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,

L.9
respectiv M.K. În S.X0 se află vectorul stărilor iniţiale ale sistemului.
Tema
Tema 11
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
stare ((MRS)
MRS) şi
ş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 de
numărul de
Modelele
Modelele pe
pe stare
stare înîn timp
timp discret
discret pot
pot fifi vvăzute
ăzute ststări
ări (care,
(care, de
de regulă, este
regulă, 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 ;; L.10
Tema
Tema 11
n Trusa de instrumente IDENT din MATLAB
Cum se poate crea un obiect de tip model de identificare?

Exist
Existăă două posibilit
două ăţ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. L.11
Tema
Tema 11
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ă care
Variantă 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) L.12
Tema
Tema 11
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

Matrici
Matrici de
de polinoame
polinoame

⎩ E {e[ n ]e T
[ m ]} = Λ δ 0 [ n − m ] ∀n∈N

(q ) ∈ R ny
A∈R ny×ny −1 Semnale Î y u ∈ R nu
e ∈ R ny aceeaşi
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ă.

Ecuaţia
Ecuaţia generic
genericăă ARMAX -MIMO
ARMAX-MIMO
C∈R ny×ny
(q )
−1
ny nu ny

** Avînd coeficien
Avînd coeficienţi ţi ∑ Al , j (q
j =1
−1
) y j [n] = ∑ Bl ,i ( q
i =1
−1
) i ∑ l , j ( ) e j [ n]
u [ n ] + C
j =1
q −1

necunoscu ţi .
necunoscuţi. ∀n∈N
Necunoscută.
** Necunoscută.

Matrice polinoame polinoame polinoame


Matrice de
de grad ∀ l ∈1, ny
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. L.13
Tema
Tema 11
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
Exist
Existăă 33 trepte
trepte Problema
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 L.14
Tema
Tema 11
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ă nu
dacă 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, fie
inversării, 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 vvăzut
ă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ă influenţa
codifică influenţa pe
pe care
care oo au
au toate
toate intr ările asupra
intrările asupra unei
unei anumite
anumite
ieşiri
ieşiri,, corupte
corupte doar
doar de
de zgomotul
zgomotul canalului
canalului ssău
ău ((nu
nu şi
ş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 +
+ L.15
unu
col nu B 1 − A ny
Tema
Tema 11
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ă multi
sistemică -MISO
multi-MISO
e1 ... ej ... eny
y1
+
u1
col1B
1− A j ...
yj
+
u2
col 2 B
1− A j
...

Practic
Practic,, matricile
... ...

unu
col nu B +
1 − A ny
yny

matricile
C1 ... Cj ... C ny A
A şi
ş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 L.16
Tema
Tema 11
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
Funcţia arx utilizeaz ă Metoda
utilizează Metoda Celor
Celor Mai
Mai Mici
Mici PPătrate
ă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. L.17
Tema
Tema 11
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ă dec
lentă î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 L.18
−1 −1 −1
Tema
Tema 11
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) == []; []; L.19
Tema
Tema 11
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 Matrice
Matrice de
de covarianţă
covarianţă aa
zgomotelor
zgomotelor ((diagonală)
diagonală) Λ ∈ R ny×ny
• 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 valori nx
anumite valori nx).
). L.20
Tema
Tema 11
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. L.21
Tema
Tema 11
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.

L.22

You might also like