t 1t ruu () utut dt ()( ) t - euedia.tuiasi.ro 10.pdf · 3/30/2016 2 timpul de întârziere maxim...
TRANSCRIPT
3/30/2016
1
T
Tu dttu
Tm
0
)(1
(3.77)
unde T este durata observării sistemului.
În mod asemănător se pot introduce estimatorii pentru funcţiile de
corelaţie :
TTuy
TTyy
TTuu
dttytuT
R
dttytyT
R
dttutuT
R
0
0
0
)()(1
)(
)()(1
)(
)()(1
)(
(3.78)
Aceşti estimatori sunt variabile aleatoare depinzând de eşantion, iar
calităţile lor depind de durata T a eşantionului.
Valorile medii ale funcţiilor de corelaţie se calculează cu relaţiile :
)()(1
)]()([1
)]([
)()(1
)]()([1
)]([
00
00
uy
T
uy
TTuy
uu
T
uu
TTuu
RdtRT
dttytuET
RE
RdtRT
dttutuET
RE
(3.79)
Rezultă că estimatorii funcţiilor de corelaţie au valorile
medii egale cu valorile adevărate ale acestor funcţii, deci sunt
estimatori nedeviaţi.
Totuşi, în calculul funcţiilor de corelaţie se produce o
eroare datorită trunchierii datelor la un interval de lungime
finită. În realitate datele de intrare şi de ieşire sunt discretizate,
adică pentru o perioadă de eşantionare Te=1:
T
T
y(N)]... y(2))1([
u(N)] ... u(2) )1([
yy
uu
k
k
Erorile introduse de discretizare sunt suficient de mici dacă
intervalul de eşantionare este ales corespunzător, conform
teoremei lui Shannon
cec
c
e ffT
T 2 ; 2
(3.80)
unde c este pulsaţia cea mai mare conţinută în spectrul
mărimii eşantionate.
3/30/2016
2
Timpul de întârziere maxim max se alege după criteriile:
- max > ts (timpul de stabilizare) pentru ca funcţia de corelaţie
să prindă toate valorile funcţiei pondere.
min
min
max
2T
max10T
unde min este cea mai mică pulsaţie din spectrul mărimii
eşantionate.
Calculul efectiv al estimatorilor funcţiilor de corelatie se
realizează prin discretizarea integralelor care şi definesc.
Considerând T = NTe , t=iTe , = kTe, rezultă (pentru Te =1) :
(3.81)
(3.82)
N
i
Tuy
N
i
Tuu
kiyiuN
kR
kiuiuN
kR
0
0
2,...... 1, 0,=k );()(1
1)(
2,...... 1, 0,=k );()(1
1)(
(3.83)
Deoarece nu dispunem decât de N date, sumele trebuie
restrânse astfel încât, pentru Te=1, rezultă:
kN
i
Tuy
kN
i
Tuu
kiyiukN
kR
kiuiukN
kR
0
0
2,...... 1, 0,=k );()(1
1)(
2,...... 1, 0,=k );()(1
1)(
(3.84)
Pentru semnalele pseudoaleatoare binare, funcţia de
autocorelaţie se prezintă ca o mărime periodică, sub forma
unor impulsuri care apar la intervalul NTe , iar între
acestea valoarea sa nu este nulă. Pentru o perioadă NTe
această funcţie se exprimă prin relaţia
N
NkT
N
NakTR ee
Nuu
4
1)(
2
1)( 2
(3.85)
Această expresie conţine doi termeni: primul corespunde
funcţiei impuls (aproximează funcţia impuls), al doilea
termen este constant pe întreaga perioadă.
3/30/2016
3
Pe o perioadă NTe funcţia de intercorelaţie între intrare şi
ieşire va fi
N
ieee
ee
Tuy
N
i
N
ieeeee
N
ieuueee
Tuy
iThN
NTakTh
N
NTakTR
iThN
NTaTikiTh
N
NTa
TikRiThTkTR
0
22
0 0
22
0
)(4
1)(
2
)1()(
)(4
1)()(
2
1
)()()(
Pentru valori mari ale întârzierii , )h(kTkT ee tinde la zeroşi din (3.86) rezultă
(3.86)
N
ie
Nuyee kTRiTh
N
NTah
0
2 )()(4
1 (3.87)
Ţinând seama de (3.87) din (3.86) se poate determina
funcţia pondere cu relaţia
])([1
21)(
2 hkTRN
N
TakTh e
Tuy
e
e
(3.88)
Se pune in evidenta ca h este eroarea datorita valorii constante
a functiei de autocorelatie egală cu N
Na
4
12 pe intreaga perioada. .
În MATLAB, [87], pentru analiza de corelaţie şi estimarea
răspunsului la impuls se utilizează funcţia cra. Se notează cu z
datele intrare-ieşire , incluse într-un fişier iddata sau într-o
matrice cu 2 coloane z=[y u]. Funcţia cra se poate apela sub
formele:
),,,(],,[
)(
plotnfazcraCLRir
zcrair
(3.89)
Cu prima variantă se obţine răspunsul la impuls estimat. A doua
variantă permite accesul la : – numărul de perioade ale întârzierii
pentru care sunt calculate funcţiile de corelaţie ( valoarea implicită este
=20); nfa – ordinul filtrului de albire (valoarea implicită este nfa=10);
pentru nfa =0 (nu se produce preaalbirea) se obţine funcţia de
covarianţă a datelor originale;
plot poate lua valorile: plot=0 nu reprezintă grafic răspunsul; plot=1
(valoare implicită) reprezintă grafic răspunsul la impuls ir ; plot=2
3/30/2016
4
reprezintă grafic toate componentele lui R. Pe acest grafic este reprezentat
răspunsul pentru un impuls de intrare normalizat u(t)=1/Te, pentru 0<t<Te ,
unde Te este perioada de eşantionare a datelor. R conţine informaţii despre
funcţiile de corelaţie: R(:,1) conţine indicii întârzierii; R(:,2) conţine funcţia de
covarianţă a lui y, R(:,3) conţine funcţia de covarianţă a lui u, R(:,4) conţine
funcţia de intercorelaţie între u şi y. CL este 99% , nivel semnificativ pentru
răspunsul la impuls.
Exemplul 3.2 Se consideră sistemul definit prin vectorii coeficienţilor A,B,C
>>A=[1 -1.2 0.6]
>>B=[0 1 0.5]
>>C=[1 -0.8 0.4]
Se determină modelul THETA asociat acestui sistem
>>th0=poly2th(A,B,C).
Se consideră semnalul de intrare u de forma unui semnal pseudoaleator
binar şi un semnal perturbator e de forma e=0.2*u:
>>u= sign(randn(400,1));
>>e=0.2*randn(400,1);
Se determină răspunsul sistemului y prin simulare numerică şi se formează
matricea z de date intrare-iesire:
>>y=idsim([u e],th0);
>>z=[y(1:200) u(1:200)].
Cu idplot se obţine reprezentarea grafică a datelor intrare-ieşire
>>idplot(z,1:100).
În figura 3.16 sunt reprezentate primele o sută de eşantioane intrare –ieşire.
Se alege întârzierea > 20 si ordinul filtrului de albire nfa > 10
>>=30;
>>nfa=15;
Se estimează răspunsul la impuls utilizând funcţia cra
>> [ir,R,CL]=cra(z,,nfa,2);
Cu una din următoarele instrucţiuni:
>>ir=cra(z);grid
>>plot(ir);grid
se obţine reprezentarea grafică a răspunsului la impuls estimat, în figura 3.17.
Pentru plot=2 în funcţia cra se reprezintă grafic funcţiile de covarianţă :
a ieşirii - Ryy, a intrării - Ruu şi funcţia de intercorelaţie intrare-ieşire –Ruy,
precum şi răspunsul la impuls estimat, ca în figura 3.18.
3/30/2016
5
0 10 20 30 40 50 60 70 80 90 100-10
-5
0
5
10Analiza de corelatie - Marimea de iesire y
0 20 40 60 80 100
-1
-0.5
0
0.5
1
Marimea de intrare u
0 5 10 15 20 25 30-0.5
0
0.5
1
1.5
2Analiza de corelatie- Raspunsul la impuls estimat h(k)
k
h(k
)
Fig. 3.16
Fig. 3.17
-50 0 50-5
0
5
10Covarianta Ryy pentru y filtrat
-50 0 50-0.5
0
0.5
1Covarianta Ruu pentru u prealbit
-50 0 50-0.5
0
0.5
1Intercorelatia Ruy
-50 0 50-1
0
1
2Raspunsul la impuls estimat
Fig. 3.18
3.2.3. Identificarea sistemelor pe baza densitatilor spectrale
Prin definitie funcţiile densităţi spectrale sunt transformatele Fourier
ale funcţiilor de corelaţie:
0
0
)()()(
)()()(
uyj
uyuy
uuj
uuuu
RFdeRS
RFdeRS
(3.90)
3/30/2016
6
Pentru definirea unor estimatori ai densitatilor spectrale, prin trunchiere se
amplifica erorile, atât prin delimitarea intervalului de integrare cât si prin
inlocuirea integranzilor prin estimatorii lor. Estimatorii posibili ai
densitatilor spectrale se definesc prin:
deRSdeRS jT
Tuy
Tuy
jT
Tuu
Tuu
00
)()( ; )()( (3.91)
Tj
TTj
TTuu dtdetutu
Tdedttutu
TS
0 00 0
)()(1
)()(1
)( adică
Cu schimbarile de variabila t+t ; rezulta
)()(1
)()(1
)()(1
)(000 0
)(
jUjUT
deudeuT
ddeuuT
S
TT
Tj
Tj
T TjT
uu
T
jT deujU0
)()( in care Ca urmare se obţine
2)(
1)( jU
TS TT
uu (3.92)
Similar se arată că
)()(1
)( jYjUT
S TTuy
T
(3.93)
UT(jω) şi YT(jω) fiind transformatele Fourier trunchiate ale
semnalelor de intrare u(t) si respectiv de iesire y(t).
Pentru a micşora influenƫa trunchierii se folosesc aşa numitele
ferestre de ponderare [28], [77] pentru a obƫine estimatori
performanƫi. Dacă este un semnal oarecare şi ],0[ );( ttu
],0[ ),( TttuT este acelaşi semnal trunchiat, observat doar
pe intervalul [0, T] atunci
rest in0
]0[1 );()()(
,T tf(t)=tftutuT (3.94)
f(t) este o funcƫie fereastră temporală , după cum se
observă în figura 3.19
În baza teoremei de convoluƫie în complex rezultă că
3/30/2016
7
)}({)({)}({ tfFtuFtuF T (3.95)
Rezultă că spectrul uT(t) diferă de cel al semnalului real u(t)
datorită convoluƫiei cu spectrul ferestrei temporale f(t). Dacă
însă f(t) ar fi impulsul Dirac atunci
)}({)}({ tuFtuF T (3.96)
uT(t)
t
t
tT
u(t)
0
f(t)
0
0
T
T
Fig. 3.19
Înlocuind deci f(t) cu o altă funcƫie, a cărui spectru
aproximează suficient de bine funcƫia Dirac, obƫinem
un spectru netezit UT(jω), mai apropiat de spectrul real.
Câteva astfel de funcƫii sunt:
1. Fereastra triunghiulară, (t) este prezentată în
fig. 3.20. şi este definită de relaţia
T]0,[ t/1
-T,0][ t /1)(
Tt
Ttt (3.97)
-T T
1
0
)(t
Fig. 3.20
2. Fereastra Burlett, B(t). este prezentată în fig. 3.21 şi
este definită de relaţia
rest in ; 0
]0[ ; /1)(
,T tTttB (3.98)
3/30/2016
8
B(t)
T0 t
1
Fig. 3.21
3. Fereastra Hamming generalizată , Hm(t) este definită de relaţia
rest in ; 0
]22
[ ; 2
cos)1()(
T,
T-t
T
t
tHm
(3.99)
4. Fereastra Blackman , Bk(t) este definită de relaţia
rest in ; 0
]22
[ ; 4
cos08,02
cos5,042,0)(
T,
T- t
T
t
T
t
tBk
(3.100)
Precizia estimatorilor depinde şi de precizia de estimare a
transformatei Fourier din datele de intrare-ieşire care sunt de
obicei discretizate. Se consideră
Tee TNuTuutu )1( ........ )( )0()(
Prin definiţie
0
2)()2()( n
tfjnn udtetufjUjU n (3.101)
Prin discretizare, t=kTe , k=0, 1, 2, ….rezultă
0
2)()(
k
Tkfj
eennenekTuTfuu
(3.102)
unde e
enT
ff2
10 aceasta înseamnă că frecvenţa maximă
posibilă, în care se poate calcula transformata Fourier, corespunde perioadei 2Te , conform teoremei lui Shannon.
Se poate considera
2
N0,n cu
e
nNT
nf şi în acest caz
22
1
N n
TNT
nf
een
0
2
)()(k
kN
nj
eenn ekTuTfuu
(3.103)
3/30/2016
9
Efectul trunchierii constă în limitarea sumei, deci
1
0
2
)(N
k
kN
nj
eeTn ekTuTu
(3.104)
Efectul trunchierii poate fi micşorat utilizând o funcţie de
ponderare g(kTe) oarecare, astfel că
1
0
2
)()(N
k
kN
nj
eeeTn ekTukTgTu
(3.105)
În forma dată transformata Fourier discretă necesitã un volum
foarte mare de calcule pentru evaluarea ei în N puncte pe baza
a N date, fiind necesare N2/2 operaţii de multiplicare în
complex pentru fiecare punct. Transformata Fourier poate ficalculată numai prin operaţii de multiplicare cualgoritmul rapid (TFR).
)(lg2 NN
Transformarea Fourier rapidă (TFR) se bazează pe
descompunerea sumei care defineşte transformata
Fourier discretă în două componente, una pentru indici de
sumare pari şi alta pentru indici de sumare impari. Se
recomandă N=2r
in
N
nj
pn
N
i
iN
nj
ee
N
i
iN
nj
ee
N
k
kN
nj
een
ueueTiuT
eiTuTekTuTfu
212/
0
)12(2
12/
0
221
0
2
))12((
)2()()(
(3.106)
pnu
inu
pnu
inu
ipn
pin
ppn uuu , ,
în care corespunde sumei în care u(kTe) este luat după
celei în care indicii sunt impari. Relaţia poate
şi pot fi
şi
indicii pari şi
fi folositã recursiv, deoarece la rândul lor
descompuse în componente de lungime N/4,
încât se poate scrie
iinu
iin
N
nj
ipn
N
nj
pin
N
nj
ppnn
ueueueufu
42
32
22
)(
(3.107)
3/30/2016
10
Pentru estimarea răspunsului la frecvenţă al unui sistem pe baza
analizei spectrale, în MATLAB, [87] se utilizează funcţia spa.
Instrucţiunea spa estimează funcţia de transfer H şi spectrul
zgomotului Spz pentru un model liniar general de forma
)()()()( kvkuqHky (3.108)
unde Spz este spectrul zgomotului v(k). Se va nota cu Hs
estimaţia funcţiei de transfer H obţinută pe baza analizei
spectrale cu instrucţiunea spa.
Funcţia spa poate fi apelată sub formele
)(,,
);,,( );(
dataspaSptSpzH
wdataspaHdataspaH
s
ss
(3.109)
unde: data conţine datele intrare-ieşire ca un obiect iddata. Hs
este obţinut ca un obiect idfrd, fiind estimaţia lui Hs(ejω) la
frecvenţele specificate în vectorul linie w. Când nu este
specificat vectorul implicit w este
eTpiw /*128/]128:1[
datelor. este lungimea “ferestrei temporale” utilizată în
calculul densităţilor spectrale. Valoarea implicită a lui este
unde Te este perioada de eşantionare a
)10/)(,30min( datalength . Pentru valori mai mari ale lui se obţin
estimaţii mai bune ale densităţilor spectrale.
Când spa este apelat cu 2 sau 3 argumente de ieşire, ca în a treia
variantă din relaţia (3.109) se obţin respectiv 2 sau 3 modele de tip
idfrd : Hs conţine chiar răspunsul la frecvenţă estimat de la intrare la
ieşire; Spz conţine chiar datele spectrului zgomotului v(k); Spt
conţine matricea spectrelor pentru toate canalele intrare-ieşire din
data.
Funcţia spa utilizează următorul algoritm
1.Se calculează estimaţiile funcţiilor de covarianţă cu
instrucţiunea covf; aceasta poate fi apelată sub forma
R=covf(data, 1), unde 1 este întârzierea maximă minus 1,
pentru care sunt estimate funcţiile de covarianţă;
3/30/2016
11
2. Se calculează produsele dintre funcţiile de covarianţă şi o
“fereastră temporală” Hamming, de lungime ;
3. Se calculează transformatele Fourier ale acestor produse;
se obţin estimaţiile densităţilor spectrale de putere;
4. Se calculează estimaţiile funcţiei de transfer, spectrul
zgomotului
Pe baza algoritmului transformatei Fourier rapide (TFR) se
poate obţine estimaţia empirică a funcţiei de transfer H a unui
sistem de forma (3.108) cu instrucţiunea etfe.
Funcţia etfe se apelează în formele
),,(
);(
NdataetfeH
dataetfeH
e
e
(3.110)
unde data are aceeaşi semnificaţie ca în cazul funcţiei spa. N
este numărul punctelor de frecvenţă în care este calculată He ;
valoarea implicită a lui N este 128. Valoarea implicită a lui
este o mulţime vidă. Când este specificat se
produce o netezire a valorilor estimate. He este obţinut ca un
obiect idfrd fiind estimaţia lui He(ejω) la frecvenţele
specificate în vectorul linie w, definit ca în cazul funcţiei spa,
pentru N=128. Estimaţia empirică a funcţiei de transfer He
este calculată ca raportul dintre transformata Fourier a
mărimii de ieşire şi transformata Fourier a mărimii de
intrare, utilizând transformata Fourier rapidă. Pentru a obţine
netezirea valorilor estimate se utilizează o fereastră
temporală Hamming a cărui lungime este egală cu numărul
de eşantioane din data divizat prin plus 1.
Pentru reprezentarea grafică a funcţiilor de frecvenţă
estimate se utilizează funcţiile bode şi ffplot. Cele două funcţii au
exact aceeaşi sintaxă. Diferenţa constă în faptul că ffplot
reprezintă graficele cu o scală liniară a frecvenţei şi unitatea
de măsură a frecvenţei este [Hz] iar bode reprezintă graficele pe
o scară logaritmică a frecvenţei şi unitatea de măsură a
frecvenţei este [rad/s] .
3/30/2016
12
Se exemplifică modurile de apelare ale funcţiei bode:
bode(m);
[mod,faz,w]=bode(m);
[mod,faz,w,sdmod,sdfaz]=bode(m);
bode(m1,m2,m3,...,w);
bode(m1,m2,m3,...,’sd’,sd,’mode’,mode,’ap’,ap)
(3.111)
Funcţia bode calculează modulul, mod, şi faza, faz, ale răspunsului
la frecvenţă al modelelor m de tip idmodel sau idfrd. Când este
apelat fără argumentele din partea stângă bode reprezintă grafic pe
ecran o diagramă Bode. bode(m) reprezintă grafic răspunsul Bode
al oricărui model (idmodel, idfrd) continuu sau discret în timp,
monovariabil sau multivariabil. Când argumentul sd este specificat
printr-un număr mai mare ca zero, pe grafic se reprezintă şi
intervalele de încredere pentru funcţiile de frecvenţă, prin linii
întrerupte (de aceeaşi culoare ca şi a curbei estimate).
Acestea indică regiunile de încredere ce corespund la deviaţiile
standard sd . Pentru a reprezenta toate graficele pe
aceeaşi diagramă se utilizează argumentul mode=’same’.
bode(m1,m2, …, mn,w) reprezintă grafic răspunsurile pentru
modelele m1,…,mn pe o singură figură.
Răspunsul la frecvenţă a unui model dat m (de tip idmodel sau idfrd)
se poate calcula cu funcţia freqresp care se apelează sub formele
),(]cov,,[
);(
wmfreqrespHwH
mfreqrespH
(3.112)
Răspunsul la frecvenţă H este calculat pentru valorile
frecvenţelor exprimate în [rad/s] din vectorul linie w. covH
reprezintă covarianţa răspunsului H. Vectorul w poate fi
specificat sau se alege implicit astfel:
a) pentru un model discret în timp w va avea 128 de valori
ale frecvenţei, egal distanţate, între 0 (exclus) şi ;
b) pentru un model continuu în timp vectorul w se
defineşte cu relaţia
)128)),(/*10(10log),100/)(/(10(loglog TabspiTabspispacew ee
3/30/2016
13
unde Te este perioada de eşantionare a datelor din care se
estimează modelul.
Exemplul 3.3 Se consideră sistemul monovariabil discret definit prin
polinoamele A=[1 -1.2 0.6], B=[0 1 0.5]. Se asociază acestui sistem modelul m
>> m=idpoly([1 -1.2 0.6],[0 1 0.5])
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t); % t=k
A(q) = 1 - 1.2 q^-1 + 0.6 q^-2
B(q) = q^-1 + 0.5 q^-2
Se generează un semnalul de intrare u de formă sinusoidală, cu perioada
50, de lungime egală cu 20 de perioade utilizând funcţiile idinput şi iddata
>> u=iddata([],idinput([50,1,20],'sine'))
>> u.Period=50
Data set with 1000 samples. Sampling interval: 1
Se determină prin simulare numerică răspunsul sistemului y şi se formează
matricea z de date intrare-iesire:>>y=sim(u,m)
Data set with 1000 samples. Sampling interval: 1
>>z=[y(1:500) u(1:500)];
Primele 100 de eşantioane din datele intrare-ieşire se reprezintă grafic în
fig. 3.22.
>>idplot(z,1:100);
Se estimează functia de transfer Hs a modelului utilizând funcţia spa
>>Hs=spa(z)
IDFRD model Hs.
Contains Frequency Response Data for 1 output and 1 input and
SpectrumData for 1 output at 128 frequency points, ranging from 0.024544
rad/s to 3.1416 rad/s. Output Channels: y1; Input Channels: u1
Estimated from data set z using spa.
Se determină estimaţia empirică a funcţiei de transfer He a modelului
cu funcţia etfe
>>He=etfe(z,30,128)
IDFRD model He.
Contains Frequency Response Data for 1 output and 1 input at 10
frequency points, ranging from 0.37699 rad/s to 2.6389 rad/s.
Output Channels: y1; Input Channels: u1
Estimated from data set z using ETFE.
Se reprezintă grafic diagramele Bode pentru răspunsurile la
frecvenţă estimate Hs şi He în fig. 3.23
3/30/2016
14
>>bode(Hs,He,’-’,)
Se determină cu funcţia spa spectrul zgomotului Spz şi matricea spectrelor Spt
>> [Hs,Spz,Spt]=spa(z,100)
10-2
10-1
100
101
10-1
100
101
102
Am
plit
ud
e
Diagramele Bode pentru functiile estimate Hs si He
10-2
10-1
100
101
-300
-200
-100
0
Ph
ase
(d
eg
ree
s)
Hs
He
HeHs
0 20 40 60 80 100-4
-2
0
2
4Analiza spectrala - marimea de iesire y
0 20 40 60 80 100
-1
-0.5
0
0.5
1
Marimea de intrare u
Fig. 3.22
Fig. 3.23
IDFRD model Spz. Contains SpectrumData for 1 output at 128 frequency points,
ranging from 0.024544 rad/s to 3.1416 rad/s. Output Channels: y1
Estimated from data set z using spa.
IDFRD model Spt. Contains SpectrumData for 2 output at 128 frequency points,
ranging from 0.024544 rad/s to 3.1416 rad/s.
Output Channels: y1, u1 Estimated from data set z using spa.
Spt= idfrd object: 4-D
Se reprezintă spectrul zgomotului Spz în fig.3.24.
>> bode(Spz)
10-2
10-1
100
101
10-5
10-4
10-3
10-2
10-1
100
Spectrul zgomotului pentru iesirea y
Fig. 3.24