You are on page 1of 12

1.

Introducere
Lucrarea de fa, este o introducere n identificarea sistemelor dinamice liniare, folosind
retele neuronale. Aceasta ii propune s prezinte conceptul de sistem i cel de reea neuronal i
s abordeze principalele probleme n identificarea sistemelor dinamice, urmrindu-se
identificarea lor folosind reele neuronale.

2.Sistem dinamic: definiie, caracteristici.
O unitate relativ delimitat fat de mediu, reprezint un sistem. Un sistem dinamic, este
un sistem care evolueaz n timp(ieirea curent depinde de strile anterioare prin care trece
sistemul).
In general, un sistem dinamic poate fi reprezentat drept un black box, ca n figura:
Sistem
dinamic
Intrri
(cauze)
Ieiri
(efecte)
y
u

1 1 1 2
2 2 1 2
,
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
u t y t u t u t u t
u t y t y t y t y t
o |e9
= o +|

`
= o +|
)

Modelul matematic a unui sistem dinamic liniar
Se observ cum u(t), depinde i de valorile anterioare, precum i y(t) depinde de valorile
anterioare.
Un sistem dinamic liniar continuu i invariant n timp (nu ii schimb structura intern) poate fi
descris printr-un model matematic de tip ecuaie diferenial liniar de ordinul n, cu
coeficieni constani i reali:
) ( ) ( ) ( ) ( ) ( ) (
0
) 1 (
1
) (
0
) 1 (
1
) (
t u b t u b t u b t y a t y a t y a
m
m
m
m
n
n
n
n
+ + + = + + +

, (1)
unde:
u(t) reprezint mrimea de comand aplicat,
y(t) desemneaz mrimea de ieire,
iar t reprezint variabila independent timp.

Aplicnd ecuaiei difereniale (1) transformata Laplace i folosind notaiile:
Y(s) = L{y(t)} i U(s) = L{u(t)} ,
se obine:
Y(s)[a
n
s
n
+a
n-1
s
n-1
++a
0
]=U(s) [b
n
s
n
+b
n-1
s
n-1
++b
0
] (2)


Relaia 2 este rescris astfel:


Rezult c: Y(s)=G(s)U(s)

In care Q(s)<P(s), altfel sistemul nu este realizabil.
Pentru ca un sistem Y(s)=G(s)U(s) s fie utilizabil, se cere s fie stabil(BIBO stabil), adic dac
intrarea U(t) este limitat, atunci i ieirea Y(s) trebuie s fie limitat, ntr-un anumit sens.
Sistemele dinamice lineare se gsesc n cadrul unui sistem mai complex, numic sistem automat,
prezentat in Fig 1.

3.Identificare sisteme. Sistem automat.
Idenficarea sistemelor, este o problem sensibil, des intlnit n inginerie. In vederea
identificrii, se va ine cont de mai multe aspecte, precum: complexitatea sistemului, semnalele
de test, perturbatii, modele de referint, etc. De asemenea exist o serie de condiii ce trebuiesc
ntrunite:
1)Sistemul automat trebuie s fie stabil.
2)Sistemul automat trebuie s realizeze o anumit precizie a reglrii n regim staionar.
3) Rspunsul sistemului automat la variaii treapt ale referinei sau perturbaiei trebuie s
fie suficient de amortizat.
4) Sistemul automat trebuie s rspund suficient de rapid att la variaia mrimii prescrise
ct i a perturbaiei.
Sistemele, ntr-o prima instana, se pot ncadra n 3 categorii: albe, gri i negre.
- Sistemele albe, sunt cele care au structur intern cunoscut, identificarea sistemului
fcndu-se imprtind sistemul n subsisteme. Aceste subsisteme la randul lor sunt
divizate, pn se ajunge la sisteme elementare, pe care se pot aplica legi ale fizicii
elementare.
- Sistemele gri, sunt cele care au o structur partial cunoscut, identificarea fcandu-se de
obicei cu ajutorul unui tehnolog .
- Sistemele negre, sunt cele ale caror structur este complet necunoscut, identificarea
fiind foarte greoaie, fcndu-se mai mult matematic.
In practic, pe lng problema identificrii aparare i problema erorii, astfel schema general a
unui sistem automat are forma:

Gt(s)
Traductor
y Gf(s)


Gp(s)
Reostat
prescriere
Gr(s)
Regulator
Referinta
r(t)
Perturbatia
w(t)
a(t) u(t)

Fig 1: Sistem Automat
(imaginea a fost preluat din laboratoarele de Introducere n Automatic, din cadrul Facultatii de
Automatic i Calculatoare)
Gp(s) = funcia de transfer a elementului de prescriere
Gf(s) = funcia de transfer a instalaiei de lucru (parte fix); partea fix se mai numeste i obiect
de reglat;
Gr(s) = funcia de transfer a regulatorului;
Gt(s) = funcia de transfer a traductorului;
y(t) = ieirea sistemului automat;
r(t) = referina (ieirea dorit) pentru sistemul automat;
u(t) = mrimea de comand (de intrare) a instalaiei;
a(t) = abaterea.
Determinarea unui model matematic adecvat (suficient) se poate realiza sistematic parcurgnd o
anumit metodologie ntr-un mod iterativ i interactiv. Procesul de identificare const n
construirea modelului unui sistem prin metoda experimental. Acest proces se desfoar n 4
etape:

Fig. 2
(imaginea a fost preluat din cursurile Identificarea Sistemelor, din cadrul Facultii de
Automatic i Calculatoare)

3.Reele Neuronale: definiie, caracteristici.
Reelele neuronale artificiale au ca model de organizare i funcionare sistemul nervos uman.
Neuronal biologic reprezint elemental funcional fundamental al sistemului nervos. El este o
celula similar tuturor celorlalte celule ale corpului uman, dar spre deosebire de acesta, el are
particulariti ce-i permit s realizeze funcii de calcul i funcii de comunicare n cadrul
sistemului nervos.
Neuronul biologic conine trei elemente principale: corpul celulei, dentritele i axonul, fiecare
dintre acestea avnd funcii distincte i complementare. Funcional, dentritele primesc semnalele
de la celulele nvecinate. De aici, semnalele sunt trecute ctre corpul celulei unde sunt sumate
ponderat impreun cu alte semnale asemntoare.
Dac suma ponderat, pentru un anumit interval de timp, depseste o anumit valoare de prag,
atunci celula este activat, producndu-se un impuls. Acesta este trecut, print intermediul
axonului, ctre alte celule nervoase, comunicaia realizndu-se n acest fel pan ce impulsul
ajunge la sistemul nervos central. In ansamblu, neuronul biologic reprezint un sistem
electrochimic complex, caracterizat de o funcie de transfer neliniar.
- Neuronul artificial reprezint unitatea elementar de prelucrare dintr-o retea
neuronal artificial.

Fig. 3 structura unui neuron artificial, cu o singur intrare.

Fig. 4 structura unui neuron artificial, cu o R intrri.

Mrimile care aplic la intrarea neuronului artificial P
i
(t), i=1:R, sunt sumate ponderat:
() ()


Unde w
i
, i=1:R sunt ponderi cu valori reale, Suma ponderat a mrimilor de intrare ale
neuronului este, apoi, convertit ntr-o valoare de activare, a(t),:
a(t)=f(a(t-1),n(t)+b); unde b este o valoare de prag real, iar f este o funcie n general neliniar.
Semnificaia biologic a valorii de prag este mrimea ce trebuie depit de ctre semnalul de
activare astfel nct neuronul s devin activ. Funcia f corespunde celei ndeplinite de ctre
corpul celulei n cazul neuronului biologic. Mrimea de activare este, apoi, prelucrat de un bloc
cu funcie de transfer n general neliniar, ieirea neuronului fiind: y(t)=f(a(t)). Funcia neliniar
f, numit i funcie de activare, modeleaz funcia ndeplinit de axon n cadrul neuronului
biologic. De regul se foloseste un model simplificat al neuronului biologic, considernd:
a(t)=n(t)+b. Astfel, mrimea de ieire a neuronului devine y(t)=f(n(t)+b)
Cel mai des tipuri de functii de activare pentru neuronal artificial sunt:
- Funcia liniar: f(x)=x;
- Funcia tangent hiperbolic: f(x)=tanh(x)


- Funcia sigmoid: f(x)=sig(x)=


- Funcia limitator
- Funcia limitator hard cu dou stri
- Funcia Gauss: f(x)=e^x
2


Reele neuronale artificiale cu un singur strat
Se consider c reeaua are R mrimi de intrare, x
i
(t), i=1:R, i S neuroni, deci S mrimi
de ieire, y
j
(t),j=1:S. Acesta din urm se calculeaz folosind relaiile:
Y
j
=f([

ij
x
i
(t)]+b) , j=1:S

Fig 5. Reea neuronal cu un singur strat

Reele neuronale multistrat:
Acest tip de reea neuronal const din mai multe straturi de neuroni, conectate n serie, astfel
inct mrimile de ieire ale unui strat constituie mrimile de intrare pentru stratul urmtor.
Se consider c neuronii dintr-un strat au funcia de activare identic, neuronii din straturi
diferite putnd avea funcii de activare diferite.
Stratul ce furnizeaz mrimile de ieire ale reelei se numeste strat de ieire, iar cele anterioare
lui se numesc straturi interne.
Y=f(Wf
2
(W
2
f
1
(W
1
x+b
1
)+b
2
)+b)
f ,f
1,
f
2
sunt vectorii continnd funciile de activare ale neuronilor din stratul de ieire, i ,
respective, primul strat i al doilea strat intern. W,W
1,
W
2
sunt matrici ce conin ponderile
neuronilor din stratul de ieire i, respective din straturile interne, iar b,b
1
, b
2
sunt vectorii
aparinnd valorilor de prag ale neuronilor din stratul de ieire i, respective, din straturile
interne.

Fig 6. Reea neuronal cu trei straturi

Antrenarea unei reele neuronale artificiale
O reea neuronal este antrenat astfel nct aplicarea unui set de mrimi de intrare:
{x
1
,,x
q
,,x
Q
}, x
q
R
Rx1
,q=1:Q
s produc un anumit set dorit(sau cel putin consistent) de vectori la ieire:
{y
1
,,y
q
,,y
Q
}, y
q
R
Rx1
,q=1:Q
Antrenarea este realizat prin aplicarea succesiv a vectorilor de intrare x
q
conducnd la ajustarea
parametrilor retelei n conformitate cu o anumit metod, numit procedur de antrenare.

4. Perceptronul
Perceptronul este o reea neuronal cu un singur strat, neliniaritatea neuronilor ce formeaz
aceast reea fiind de tipul functiei limitator hard. Acest tip de reea neuronal artificial(RNA), a
fost dezvoltat pentru rezolvarea unor problem de recunoastere a formelor(clasificare). Denumirea
de perceptron provine de la celulele nervoase legate de actul perceptiei.

5.Program demonstrative
clc;
clear;
%program pentru practica de vara
%Nistor Constantin 1303A
%---------------------------------------
disp('program demonstrativ: ');
%set de optiuni pentru utilizator
disp('apasa 1 pentru functia de grad doi');
disp('apasa 2 pentru funtie neliniara;');
%se citeste optiunea de la tastatura
optiune=input('optiune + enter: ');
%ramnificatie pentru cele doua optiuni
if optiune==1,
%afiseaza tipul ecuatiei alese
disp('y=a*x^2+b*x+c')
%citeste de la tastatura, parametrii ecuatiei
a=input('parametrul a: ');
b=input('parametrul b: ');
c=input('parametrul c: ');
%intervalul in care are loc afisarea
disp('intervalul pe care doriti reprezentarea graficului: ');
minim=input('de la:');
maxim=input('pana la: ');
%vectorul in intervalul dorit, folosit ca intrare,
pas=0.001;%pasul de de calculare
t=minim:pas:maxim;
lungime=length(t);
%calcularea vectorului iesire
for i=1:lungime,
y(i)=a*(t(i)^2)+b*9*t(i)+3*c;
end;
if max(t)>1, %daca DA, facem o scalare a datelor de intrare
disp('este nevoie de scalare a datelor');
m=max(t);%maximul multimii, dupa care facem scalarea
for i=1:lungime,
t(i)=t(i)/m;
y(i)=y(i)/m;
end;
%afisam maximul dupa care s-a facut scalarea
disp('scalare incheiata cu succes');
fprintf('\nmaximul dupa care s-a scalat: %g\n',m);
end;
%se citesc de la tastatura parametrii necesari antrenarii retelei
%neuronale
eroare=input('eroarea maxima dorita: ');
epoci =input('numarul maxim de epoci dorite: ');
%se citeste ;numarul de neuroni din primul strat
numar =input('numarul de neuroni pe primul strat: ');
%se creaza obiectul retea neuronala
r=[-1 1];
net=newff([-1 1],[numar 1],{'tansig','purelin'});
%se seteaza parametrii de antrenare
net.trainParam.epochs = epoci;
net.trainParam.goal =eroare;
%antrenarea retelei
net=train(net,t,y);
%simularea retelei
O1=sim(net,t);
%afisarea datelor folosind functia plot
%cu rosu sunt valorile realizate de functie
%cu albastru sunt valorile realizate de reteaua neuronala
figure(1); plot(t,y,'- r',t,O1,':b');
else
disp('tipul de ecuatii alese:');
disp('x1(t)=A1*sin(w1*t+fi1);');
disp('x2(t)=A2*cos(w2*t+fi2);');
disp('y=x1+x2 ');
A1=input('Ampltudinea A1: ');
A2=input('Ampltudinea A2: ');
w1=input('Pulsatia w1: ');
w2=input('Pulsatia w2: ');
fi1=input('fi1: ');
fi2=input('fi2: ');
disp('intervalul de simulare: ');
a=input('de la; ');
b=input('pana la: ');
numar=input('numarul de neuroni pe straturine interne: ');
%se citesc de la tastatura parametrii necesari antrenarii retelei
%neuronale
eroare=input('eroarea maxima dorita: ');
epoci =input('numarul maxim de epoci dorite: ');

%calculam functia
t=a:0.01:b;
lungime=length(t);
x1=A1*sin(w1*t+fi1);
x2=A2*cos(w1*t+fi2);
y=x1+x2;
if max(y)>1, %daca DA, facem o scalare a datelor de intrare
disp('este nevoie de scalare a datelor');
m=max(y);%maximul multimii, dupa care facem scalarea
for i=1:lungime,
x1(i)=x1(i)/m;
x2(i)=x2(i)/m;
y(i)=y(i)/m;
end;
%afisam maximul dupa care s-a facut scalarea
disp('scalare incheiata cu succes');
fprintf('\nmaximul dupa care s-a scalat: %g\n',m);
end;
%antrenarea retelei
I=[x1;x2];
net2=newff([-1 1;-1 1],[numar numar numar numar1],
{'purelin','tansig','tansig','tansig','purelin'});
%se seteaza parametrii de antrenare
net2.trainParam.epochs = epoci;
net2.trainParam.goal =eroare;
net2=train(net2,I,y);
figure(1); plot(y,I);
figure(2); O1=sim(net2,I);
plot(O1,I);
end;


Bibliografie:
*laboratorul de Identificarea Sistemelor, autor: Prof. dr. ing. Teohari Ganciu
*laboratorul de introdere n automatic, autor: assist. dr. eng. Constantin Florin Cruntu
*internet,Wikipedia
*internet: www.mathworks.com
*Diagnoza anomaliilor proceselor tehnice, autor Letiia Mirea

You might also like