identificarea sistemelor dinamice anfis modeling) in care intrarile sunt selectate secvential •...
TRANSCRIPT
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Identificarea sistemelor dinamice
Estimarea (dezvoltarea) unor modele pentru un sistem
dinamic (variabil in timp; cu evoluție în timp) pe baza
datelor masurate la intrare si iesire.
Modelul unui sistem poate fi utilizat pentru a obține
informații despre comportarea sistemului fără a realiza
experimente reale (doar simulări)
De exemplu un model poate fi utilizat
pentru a simula ieșirea unui sistem pentru o intrare data si
a analiza răspunsului sistemului
pentru a prezice valorile viitoare la iesirea (iesirile)
sistemului
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
In sistemele dinamice intrarea curenta determina variatia in
timp a iesirii; dar iesirea mai (poate) depinde si de starile
anterioare ale intrarii si iesirii (ex. un circuit RC sau DC, sistem
de climatizare, etc.)
In contrast cu sistemele dinamice, sistemele statice reprezinta o
relatie instantanee intre variabilele de intrare si de iesire (de ex.
un circuit DR).
Cele mai bune rezultate in estimarea modelelor se obtin când
se operează cu cel putin doua seturi de date:
un set pentru estimarea modelului – setul de date de estimare
(antrenare)
un set pentru validarea modelului – setul de date de validare
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Modelele descriu relatia dintre unul sau mai multe semnale
aplicate la intrare u(t) si unul sau mai multe semnale masurate
la iesire y(t).
In sistemele reale pot exista intrari aditionale dificil de masurat
sau controlat, care afecteaza iesirea sistemului: perturbatii sau
zgomot e(t).
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Descrierea generală a unui sistem dinamic este data de relatia
)(),,()( tztugty u - semnalul de intrare
t - timpul
Ө - parametrii sistemului
z - iesirea datorata zgomotului e
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Pentru modele liniare descrierea simbolica a modelului este
HeGuy
G – operator ce conecteaza intrarea cu iesirea si capteaza dinamica
sistemului; functia de transfer intre u si y
H – operator ce descrie proprietatile zgomotului aditiv la iesire si este
denumit modelul de zgomot
• Pentru modele neliniare descrierea este mai complexa,
continând funcții neliniare, ce trebuie determinate
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Etape in identificarea sistemelor dinamice
Procesul de identificare al sistemelor dinamice include
următoarele etape:
proiectarea experimentului (DoE) si achiziția datelor (intrare-
iesire)
analiza si preprocesarea datelor (afișarea datelor, înlăturarea
ofseturilor si a tendințelor liniare, interpolarea valorilor ce
lipsesc, eliminarea zgomotului din date, re-esantionare,
selectarea regiunilor de interes, etc.)
estimarea si validarea modelelor
analiza modelelor si eventuale transformări
simularea (predicția viitoarelor valori la ieșire utilizând
modelele dezvoltate ) – utlizarea modelului
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Studiu de caz Modelarea fuzzy a unui sistem dinamic SISO
dispozitiv similar unui uscator de păr (Feedback's Process Trainer
PT 326, Chapter 17 of Prof. Lennart Ljung's book "System
Identification, Theory for the User", Prentice-Hall, 1987.
aerul este încălzit si evacuat printr-un tub la ieșire
temperatura aerului la ieșire este măsurata de un termocuplu
intrarea u(t) este tensiunea aplicata pe o arie de rezistenţe
termice care încălzesc aerul
ieşirea (t) este temperatura aerului la ieșire
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Setul de date
tensiunea de intrare are doar două valori
3.41V sau 6.41V, generate aleator
temperatura aerului de ieşire ia valori in domeniul normalizat
[3.2008, 6.2508]
exista colectate un numar de 1000 perechi de date intrare-iesire
(serie temporală)
setul de date este discret, cu o rata de eşantionare de 0.08s
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Analiza (si interpretarea) datelor
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
• se observa inertia sistemului
• cand tensiunea creste (scade), temperatura incepe sa creasca (scada) abia dupa 3
perioade de esantionare
• la tensiune constanta, panta de variatie a temperaturii nu este constanta (sistem
neliniar) (a se vedea de exemplu esantioane 67 - 77)
• temperatura curenta la iesire depinde si de stari anterioare ale iesirii si intrarii
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Selectarea intrarilor pentru model
Este evident ca nu putem considera ca intrare pentru model
doar valoarea curenta a tensiunii de intrare
Este necesar sa se considere ca intrari si stari anterioare:
ale iesiri (temperatura)
ale intrarii (tensiune)
Câte (şi care) stări anterioare ale iesiri sistemului trebuie
considerate ca intrari ale modelului?
Câte (şi care) stări anterioare ale intrarii sistemului trebuie
considerate ca intrari ale modelului?
Este necesara o selectie a intrarilor modelului, astfel incat
sa obtinem o solutie optima intre complexitatea modelului si
precizia de modelare
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Nonlinear Autoregressive with
External (Exogenous) Input:
NARX
))(...,),2(),1(
),(...,),2(),1(
...,
),(...,),2(),1(
),(...,),2(),1(()(
2222
1111
y
nnnn
dtytyty
dtututu
dtututu
dtututufty
Predict series y(t) given dy past
values of y(t) and another input
series u1(t), …, un(t)
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Ca si intrari ale modelului (solutie initiala) am putea considera pentru
iesirea curentă y(k)
)6(),5(),4(),3(),2(),1(),4(),3(),2(),1( kukukukukukukykykyky
In acest caz am avea un model cu 10 intrari.
Trebuie construite seturile de date necesare pentru antrenare si verificare
pornind de la datele initiale, sub forma perechilor intrare-iesire de tipul:
)1(),1(
)2(),2(
)3(),3(
)4(),4(
)5(),5(
)6(),6(
kyku
kyku
kyku
kyku
kyku
kyku
iesiri anterioare intrari anterioare
intrare iesire
Datele
originale:
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Structura necesara a setului de date trebuie sa fie de tipul:
)()6()5()4()3()2()1()4()3()2()1( kykukukukukukukykykyky
Datele initiale sunt disponibile in doi vectori coloana:
u – vectorul datelor de intrare; y – vectorul datelor de iesire
n=length(y);
input = [[0; y(1:n-1)] ... % prima coloana
[0; 0; y(1:n-2)] ... % a doua coloana
[0; 0; 0; y(1:n-3)] ... % a treia coloana
[0; 0; 0; 0; y(1:n-4)] ...
[0; u(1:n-1)] ...
[0; 0; u(1:n-2)] ...
[0; 0; 0; u(1:n-3)] ...
[0; 0; 0; 0; u(1:n-4)] ...
[0; 0; 0; 0; 0; u(1:n-5)] ...
[0; 0; 0; 0; 0; 0; u(1:n-6)]]; % a zecea coloana
data = [input y];
data(1:6, :)=[]; % elimina primele 6 randuri
cod matlab pentru
generarea setului de
date, conform
intrărilor modelului
intrări iesire
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
)6()5()4()3()2()1()4()3()2()1(
)1()2()3()4()5()6()3()4()5()6(
0)1()2()3()4()5()2()3()4()5(
00)1()2()3()4()1()2()3()3(
000)1()2()3(0)1()2()3(
0000)1()2(00)1()2(
00000)1(000)1(
0000000000
nununununununynynyny
uuuuuuyyyy
uuuuuyyyy
uuuuyyyy
uuuyyy
uuyy
uy
)(
)7(
)6(
)5(
)4(
)3(
)2(
)1(
ny
y
y
y
y
y
y
y
intrari pentru modeliesire
Pentru a avea date consistente se elimina primele 6 randuri ce contin zerouri si
se utilizeaza doar datele incepand de la randul 7.
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Dorim sa selectam mai putine intrari (din cele 10 anterioare) pentru modelul
fuzzy, doar cele mai reprezentative (influenteaza cel mai mult iesirea), pentru
a scadea complexitatea modelului.
Cum selectam un numar redus de intrari (de exemplu 3 din cele 10) ?
Exista 2 metode dezvoltate in matlab
• Cautare secventiala inainte (sequential forward search for input selection
in ANFIS modeling) in care intrarile sunt selectate secvential
• Cautarea exhaustiva (exhaustive search for input selection in ANFIS
modeling) pentru a verifica toate combinatiile posibile de intrari candidate
• sistemul fuzzy initial este TS; genfis1 (grid partition, fara gruparea datelor).
• instruire anfis pentru un numar redus de epoci de instruire (implicit 1 epoca),
• sistemele fuzzy rezultate pentru diferite intrari sunt comparate din punct de
vedere al RMSE (eroare medie patratica).
• cele mai potrivite intrari se considera cele ce furnizeaza cele mai mici valori
ale RMSE.
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Cautare secventiala inainte
input_name = str2mat('y(k-1)','y(k-2)','y(k-3)','y(k-4)',...
'u(k-1)','u(k-2)','u(k-3)','u(k-4)','u(k-5)','u(k-6)'); % generare text pentru afisare
input_no=3; %se doreste selectarea a trei intrari
trn_data_no=500; %marimea setului de date de antrenare
trn_data=data(1:trn_data_no,:); % date de antrenare
chk_data=data(trn_data_no+1:end,:); % date de verificare
mf_no=3;
epoch_no=2;
[input_idx, elapsed_time]=seqsrch(input_no,trn_data,chk_data,...
input_name, mf_no,epoch_no)
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Selecting input 1 ...
ANFIS model 1: y(k-1) --> trn=0.2000, chk=0.1985
ANFIS model 2: y(k-2) --> trn=0.3728, chk=0.3690
ANFIS model 3: y(k-3) --> trn=0.5106, chk=0.5040
ANFIS model 4: y(k-4) --> trn=0.6127, chk=0.6046
ANFIS model 5: u(k-1) --> trn=0.8175, chk=0.8118
ANFIS model 6: u(k-2) --> trn=0.7894, chk=0.7894
ANFIS model 7: u(k-3) --> trn=0.7212, chk=0.7280
ANFIS model 8: u(k-4) --> trn=0.6201, chk=0.6347
ANFIS model 9: u(k-5) --> trn=0.5459, chk=0.5667
ANFIS model 10: u(k-6) --> trn=0.5391, chk=0.5633
Currently selected inputs: y(k-1)
• Se construiesc modele anfis cu câte o intrare pentru fiecare din cele 10 intrari posibile
• Se selecteaza ca prima intrare a modelului variabila y(k-1), deoarece
aceasta furnizeaza cele mai mici erori
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
• Se construiesc modele anfis cu doua intrari:
1) intrarea selectata anterior y(k-1)
2) câte una dintre celelalte 9 posibile intrari
Selecting input 2 ...
ANFIS model 11: y(k-1) y(k-2) --> trn=0.1051, chk=0.1088
ANFIS model 12: y(k-1) y(k-3) --> trn=0.1310, chk=0.1404
ANFIS model 13: y(k-1) y(k-4) --> trn=0.1487, chk=0.1622
ANFIS model 14: y(k-1) u(k-1) --> trn=0.1854, chk=0.1932
ANFIS model 15: y(k-1) u(k-2) --> trn=0.1651, chk=0.1767
ANFIS model 16: y(k-1) u(k-3) --> trn=0.1096, chk=0.1191
ANFIS model 17: y(k-1) u(k-4) --> trn=0.0939, chk=0.1060
ANFIS model 18: y(k-1) u(k-5) --> trn=0.1529, chk=0.1627
ANFIS model 19: y(k-1) u(k-6) --> trn=0.1932, chk=0.1952
Currently selected inputs: y(k-1) u(k-4)
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Selecting input 3 ...
ANFIS model 20: y(k-1) u(k-4) y(k-2) --> trn=0.0795, chk=0.0903
ANFIS model 21: y(k-1) u(k-4) y(k-3) --> trn=0.0794, chk=0.0921
ANFIS model 22: y(k-1) u(k-4) y(k-4) --> trn=0.0803, chk=0.0967
ANFIS model 23: y(k-1) u(k-4) u(k-1) --> trn=0.0893, chk=0.1048
ANFIS model 24: y(k-1) u(k-4) u(k-2) --> trn=0.0835, chk=0.0960
ANFIS model 25: y(k-1) u(k-4) u(k-3) --> trn=0.0609, chk=0.0677
ANFIS model 26: y(k-1) u(k-4) u(k-5) --> trn=0.0857, chk=0.0963
ANFIS model 27: y(k-1) u(k-4) u(k-6) --> trn=0.0889, chk=0.1016
Currently selected inputs: y(k-1) u(k-3) u(k-4)
input_idx =
1 7 8
elapsed_time =
2.9370
• Se construiesc modele anfis cu trei intrari
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Rezultatele obtinute dupa antrenarea 100 epoci a SLF pentru
cele 3 intrari selectate utilizand cautarea secventiala inainte
y(k-1) u(k-3) u(k-4)
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Evaluarea preciziei modelului
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Modelare Simulink
Model Simulik pentru prezicerea starilor viitoare ale
iesirii pentru alte succesiuni de valori ale tensiuni
aplicate la intrare
Aspecte de rezolvat
generararea valorilor pentru cele trei intrari ale modelului
(sistemul fuzzy)
asigurarea căii de reactie necesare pentru a aplica la
intrarea curenta iesirea anterioara a sistemului y(k-1)
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Modelul Simulink
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
To do (for students)
utilizarea cautarii secventiale inainte pentru selectarea a
4 intrari si generarea modelului cu 4 intrari
compararea celor 2 sisteme (cu 3 si 4 intrari) din punct
de vedere al preciziei
utilizarea metodei de cautare exhausiva (‘exhsrch’)
pentru selectarea intrarilor modelului fuzzy
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Modelarea unui sistem cu iesiri multiple
Pentru un model este mult mai dificil sa exprime comportarea
unui sistem cu mai multe iesiri decat cu o singura iesirire
Se poate utiliza modelarea pentru iesiri multiple ca o combinatie
de modele cu o singura iesirere
Se pot genera modele partiale, fiecare model partial reprezentand
efectul tuturor intrarilor asupra unei iesiri
Se poate utiliza aceasta abordare cand nu exista reactie in
sistemul dinamic de modelat si nu exista interactiune intre iesiri
Dupa validarea modelelor cu o singura iesire se realizeaza o
concatenare verticala pentru a combina modelele partiale intr-un
singur model cu mai multe iesiri.
Se poate incerca rafinarea modelului utilizand setul de date
original (cu mai multe iesiri)
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
Se doreste identificarea si modelarea unui sistem dinamic cu doua intrari
U1 si U2 si o iesire, utilizand un SLF. Setul de date disponibil este de:
U1
U1(n)
U1(n-1)
…
U1(n-k)
…
U1(1)
U2
U2(n)
U2(n-1)
…
U2(n-k)
…
U2(1)
Y
Y(n)
Y(n-1)
…
Y(n-k)
…
Y(1)
Pentru identificarea celor mai relevante intrari se utilizeaza algoritmul de
cautare secventiala inainte (sequential forward search). Se considera ca
intrari candidate pentru determinarea iesirii curente Y(k) urmatoarele
esantioane:
- iesirea Y, cu una, doua si trei intarzieri
- intrarea U1, cu una si doua intrazieri
- intrarea U2, cu intrazierile de la unu la patru
Problema
G. Oltean
Identificarea sistemelor dinamice
Sisteme cu logica nuantata
a) Cum trebuie formatate datele initiale pentru a putea fi utilizate la
selectarea celor mai reprezentative intrari ale modelului?
b) Cate “treceri” sunt necesare algoritmului pentru a identifica cele mai
relevante intrari, conform modelului rezultatprezentat in figura de mai
jos
c) Cate intrari are SLF? Care este rolul blocului Mux?
d) Etichetati fiecare intrare a SLF (ca intrari in blocul Mux)
e) Care este structura datelor ce vor fi utilizate pentru instruirea SLF?