Laboratorium Identyfikacji procesów technologicznych |
NAZWISKO IMI :
|
|
Temat : Identyfikacja charakterystyk statycznych obiektu dynamicznego z wykorzystaniem sieci neuronowych |
wiczenie numer :
|
Data wykonania:
|
Uwagi : |
Ocena : |
Data oddania : |
1.Cel wiczenia
Celem wiczenia jest identyfikacja charakterystyk statycznych obiektu dynamicznego, przy wykorzystaniem sztucznych sieci neuronowych .
2. Wstp
1
b
U 1
W1
U 2 y
: w2
.
U N wN F
Rys.1 Model neuronu nieliniowego
U1,U2,...,UN -
b - „bios”
w1,w2,...,wN - wagi
y = ( "uiwi +b )f
F- funkcja aktywacji neuronu
1 b
w
u y = b + wu
Rys.2 Neuron liniowy
Najlepsza aproksymacja danych eksperymentu oznacza dobór wagi w oraz „bios” b dla pojedynczego neuronu liniowego. W tym przypadku nauczanie neuronu przeprowadza si do rozwizania ukadu równa liniowych.
Faktyczn moc aproksymacji neuronów sztucznych osiga si przy budowie sieci kilku neuronów o rónych architekturach , najprostsza architektura - sie wielowarstwowa jednokierunkowa :
b11
b2
W11 w21
u y
b13
W13 w23
Rys.3 Sie wielowarstwowa jednokierunkowa
3.Przebieg wiczenia
u=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.2 1.5 2 3 4 6 8 10 11]
y=[0.065 0.13 0.2 0.27 0.33 0.4 0.45 0.55 0.6 0.65 0.8 1 1.3 1.9
2.5 3.5 4.5 5 5]
u1=u(1:10)
u1 =
Columns 1 through 7
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000
Columns 8 through 10
0.8000 0.9000 1.0000
y1=y(1:10)
y1 =
Columns 1 through 7
0.0650 0.1300 0.2000 0.2700 0.3300 0.4000 0.4500
Columns 8 through 10
0.5500 0.6000 0.6500
[w,b]=solvelin(u1,y1)
w =
0.6615
b =
6.6667e-004
U1=[ones(10,1) u1']
U1 =
1.0000 0.1000
1.0000 0.2000
1.0000 0.3000
1.0000 0.4000
1.0000 0.5000
1.0000 0.6000
1.0000 0.7000
1.0000 0.8000
1.0000 0.9000
1.0000
a=U1\y1'
a =
0.0007
0.6615
[ww,bb]=initlin(u1,y1)
ww =
-0.5621
bb =
-0.9059
[ww,bb]=trainwh(ww,bb,u1,y1,[20 800 0.1 0.0005])
ww =
0.2570
bb =
0.2299
Rys.1 Trening neuronu liniowego
y=w*u+b
y =
Columns 1 through 7
0.0668 0.1330 0.1991 0.2653 0.3314 0.3976 0.4637
Columns 8 through 14
0.5299 0.5960 0.6622 0.7945 0.9929 1.3237 1.9852
Columns 15 through 19
2.6467 3.9698 5.2928 6.6158 7.2773
pause
plot(u,y,'g+')
Rys.2 Zaleno u=f(y)
hold on
y1=w*u+b
y1 =
Columns 1 through 7
0.0668 0.1330 0.1991 0.2653 0.3314 0.3976 0.4637
Columns 8 through 14
0.5299 0.5960 0.6622 0.7945 0.9929 1.3237 1.9852
Columns 15 through 19
2.6467 3.9698 5.2928 6.6158 7.2773
plot(u,y1,'r--')
Zaleno u=f(y1)
y2=ww*u+bb
y2 =
Columns 1 through 7
0.2339 0.2657 0.2974 0.3292 0.3609 0.3927 0.4244
Columns 8 through 14
0.4562 0.4879 0.5197 0.5832 0.6784 0.8372 1.1547
Columns 15 through 19
1.4722 2.1072 2.7422 3.3772 3.6948
pause
[w1,b1,w2,b2]=initff(u,1,'tansig',y,'purelin')
w1 =
0.1284
b1 =
-0.4618
w2 =
0.8694
b2 =
-0.2330
[w1,b1,w2,b2]=trainbp(w1,b1,'tansig',w2,b2,'purelin',u,y,[25 500 0.005 0.01])
w1 =
0.4122
b1 =
-2.3794
w2 =
2.9057
b2 =
3.3151
Rys.4 Trening nieliniowej sieci aproksymacyjnej
y2=w*u+b
y2 =
Columns 1 through 7
0.0668 0.1330 0.1991 0.2653 0.3314 0.3976 0.4637
Columns 8 through 14
0.5299 0.5960 0.6622 0.7945 0.9929 1.3237 1.9852
Columns 15 through 19
2.6467 3.9698 5.2928 6.6158 7.2773