prof. dr hab inż. Wojciech Mitkowski
mgr inż. Marek Długosz
Akademia Górniczo – Hutnicza
im. Stanisława Staszica
Wydział Elektrotechniki, Automatyki,
Informatyki i Elektroniki
KATEDRA AUTOMATYKI
BADANIE WRAŻLIWOŚCI SIECI NEURONOWYCH
WYKORZYSTYWANYCH DO MODELOWANIA
SYSTEMÓW DYNAMICZNYCH NA PRZYKŁADZIE
RUCHU OBIEKTU PŁYWAJĄCEGO.
Streszczenie
W pracy podjęto próbę zamodelowania dynamiki statku za pomocą dwu warstwowej
sieci neuronowej. Sieć o takiej architekturze jest wykorzystywana w neuroregulatorze
zaimplementowanym w MATLAB-ie. Opisano budowę sieci neuronowej użytej do
modelowania, sposób uczenia i generowania danych wejściowych. Przeprowadzono
szereg eksperymentów numerycznych w celu znalezienia najlepszej architektury sieci.
1. WPROWADZENIE
Obecnie sieci neuronowe znajdują coraz szersze zastosowanie zarówno w nauce,
jak i w praktyce. Sieci neuronowe są wykorzystywane na przykład do modelowania
obiektów fizycznych, prognozowania notowań na giełdzie i klasyfikacji różnych
elementów (np. obrazów). Duża moc obliczeniowa komputerów w połączeniu z ich
coraz niższą ceną spowodowały, że można w efektywny sposób konstruować, uczyć i
testować różne sieci neuronowe wykorzystując domowe komputery. Regulatorem
neuronowym nazywa się urządzenie, które przy generowaniu wartości chwilowych
sterowania wykorzystuje sieć neuronową, przy czym wykorzystanie sieci może być w
różnym stopniu. Jednym z ciekawszych zastosowań sieci neuronowych jest
wykorzystanie ich do budowy neuronowych układów regulacji. Czasem taki układ
może być lepszy od klasycznego układu regulacji z regulatorem PID. Sieć neuronowa
może nauczyć się pewnych zachowań obiektu przez co generowane sterowania mogą
być „skuteczniejsze”. Model neuronowy obiektu, którym chcemy sterować, powinien
jak najlepiej modelować dynamikę obiektu. Od jakości modelu neuronowego zależy w
dużym stopniu jakość działania całego neuronowego układu regulacji.
2. KONSTRUOWANIE REGULATORÓW NEURONOWYCH
Przy budowie neuronowego układu regulacji należy przestrzegać pewnej
kolejności wykonywanych zadań. Do zadań tych należy:
1. Budowa neuronowego modelu obiektu
2. Konstrukcja regulatora neuronowego.
W tej pracy do budowania, uczenia i testowania neuronowych regulatorów
wykorzystano pakiet Matlab ver. 6.0 wraz z toolboxem- Neural Network. Toolbox ten
posiada specjalny zestaw bloków, elementów do budowania, uczenia i testowania sieci
neuronowych.
Rysunek 1przedstawia blokowy schemat układu regulacji z regulatorem
neuronowym realizowany przez jeden z elementów toolbox-a Neural Network.
Rysunek 1. Model systemu z regulatorem neuronowym
Układ regulacji z regulatorem neuronowym zawiera następujące elementy
składowe (przy opisie wykorzystano również nazwy angielskie stosowane w pakiecie
Matlaba Neural Network):
•
dokładny (np. matematyczny) model obiektu
•
neuronowy model obiektu
•
regulator neuronowy
Wejściami do regulatora są: wartość jaką chcemy uzyskać na wyjściu obiektu oraz
sygnał sprzężenia zwrotnego. Wyjścia z układu to:
•
Control Error – błąd sterowania (odchyłka od wartości zdanej).
•
Model Error – błąd modelu neuronowego (sygnał ten
wykorzystywany jest w procesie uczenia i trenowania regulatora).
•
Plant Output – wyjście z modelu.
Rysunek 2 przedstawia strukturę sieci neuronowej regulatora oraz modelu
neuronowego obiektu.
Rysunek 2. Model sieci neuronowej regulatora i obiektu (Model Reference
Control)
Sieć neuronowa modelująca obiekt zbudowana jest z dwóch warstw. Wejściami
sieci modelującej obiekt są sygnał z regulatora (w fazie uczenia sieci są to losowo
wygenerowane próbki sterowań z dopuszczalnego przedziału) a także wyjście z samej
sieci. Istnieje możliwość określenia, jak wiele wartości wejść „wstecz” będzie
podawane na wejście. Tak samo można określić liczbę sterowań „wstecz”, które będą
podawana na wejście sieci. Struktura sieci regulatora neuronowego jest bardzo podobna
do sieci modelującej obiekt. Różnica polega tylko na sposobie określenia liczby
wartości sterowań „wstecz” podawanych na wejście regulatora.
3. OPIS MODELU STATKU
Jako model odniesienia przyjęto prosty model matematyczny (zob. Fossen T. I.
1994 s. 172), w którym dynamikę statku modeluje się obiektem inercyjnym drugiego
rzędu. Jest to najprostszy z modeli matematycznych statków, który można uzyskać przy
wielu założeniach ograniczających. Dla przykładu pomija się czynniki zewnętrzne takie
jak wiatr, prądy morskie oraz wysokie fale. Praktycznie, przy tych założeniach można
powiedzieć, że statek płynie po spokojnym morzu. Dodatkowo zakładamy, że ster
wychyla się w przedziale od -20
°
do +20
°
.
Dokładniej przyjmujemy, że równania stanu opisujące dynamikę obiektu
pływającego mają następującą postać:
˙x
t
=
Ax
t
Bu
t
y
t
=
Cx
t
Du
t
,
(1)
gdzie:
•
r – prędkość kątowa (obracającego się statku),
•
ψ
– kąt kursowy statku, czyli kąt o jaki kurs statku odbiega od kierunku
północnego,
•
u(t) – kąt wychylenia steru.
Model (1) określa tylko zmiany prędkości kątowej oraz zmiany kursu statku. Jeśli
są spełnione wszystkie przykładowe warunki ograniczające, to zmiany prędkości statku
nie są tak znaczące, by miały duży wpływ na ruch jednostki. Wobec tego zakłada się, że
prędkość statku jest stała przez cały czasu trwanie ruchu. Do symulacji komputerowej
przyjmujemy parametry statku typu kontenerowiec, wykorzystując dane literaturowe
(zobacz Fossen T.I.,1994 s.174),:
K = 0.185,
T=18.5
4. PRÓBY ZAMODELOWANIA DYNAMIKI STATKU ZA
POMOCĄ SIECI NEURONOWEJ
przedstawia strukturę sieci neuronowej użytej do zamodelowania dynamiki statku.
Rysunek 3. Struktura sieci neuronowej wykorzystanej do modelowania dynamiki
statku.
Jest to sieć dwu warstwowa. Wejściem do sieci są:
•
y(t) – wyjście z modelu dokładnego
•
u(t) – sterowania dopuszczalne (zwykle generowane losowo z
uwzględnieniem ograniczeń modelu)
Wyjściem z sieci y(t+1) jest stan modelu w chwili t+1. Funkcje przejścia w warstwach
są funkcjami typu: f
1
– tansig i f
2
– purelin. Bloki oznaczone jako TDL są elementami,
za pomocą których można wprowadzić opóźnienia na wejścia sieci.
Procedura nauczania sieci neuronowej rozpoczyna się od określenia kilku
parametrów, do których zaliczamy:
•
liczbę neuronów w warstwie wejściowej,
•
liczbę opóźnień wejścia y(t),
•
liczbę opóźnień wyjścia u(t),
•
krok czasowy.
Dodatkowo można również znormalizować dane uczące. Następnie należy określi
kryteria jakie powinny spełniać dane uczące wykorzystując:
•
liczbę danych uczących,
•
wartość minimalną i maksymalną danych uczących,
•
wartość minimalną i maksymalną czasu trwania określonej wartości
uczącej.
Można również zadać ograniczenia na wyjście z sieci. Po zdefiniowaniu tych
parametrów należy wskazać plik w simulinku, który zawiera nasz model dokładny.
T
D
L
b
1
LW
1
T
D
L
LW
2
f
1
b
3
LW
3
f
2
y
(t)
u(t)
y(t+1)
Kolejnym krokiem jest wygenerowanie danych uczący. Odbywa się to automatycznie, z
uwzględnieniem ograniczeń na dane wejściowe. Dane uczące można także
zaimportować bezpośrednio z MATLAB-a.
Standardowy błąd uczenia sieci zdefiniowany jest następująco:
( )
( )
(
)
∑
=
−
=
Q
k
sym
zad
k
y
k
y
Q
e
1
2
1
(2)
gdzie y
zad
jest zadaną wartością wyjścia, y
sym
jest wartością wyjścia z sieci neuronowej,
Q jest liczbą próbek
.
Mając zdefiniowaną strukturę sieci oraz dane uczące można przystąpić do uczenia
sieci. Sieć neuronowa o konfiguracji zawartej w Tabela 1 najlepiej symulowała
dynamikę statku. Strukturę sieci uzyskano na drodze eksperymentalnej.
Tabela 1
Rozmiar warstwy wejściowej
20
Ilość opóźnionych wejść
1
Ilość opóźnionych wyjść
3
Rozmiar próbki uczącej
10000
Interwał czasowy
1 [s]
Rysunek 4 przedstawia porównanie wyjścia z sieci (linia przerywana) i wyjścia z
modelu statku (linia ciągła).
0
100
200
300
400
500
600
700
800
900
1000
-140
-120
-100
-80
-60
-40
-20
0
20
Czas [s]
K
u
rs
Rysunek 4. Wyjście z sieci (linia przerywania) i wyjście z modelu (linia ciągła)
Rysunek 5 przedstawia odpowiedz modelu neuronowego i modelu dokładnego na
skok jednostkowy.
0
200
400
600
800
1000
1200
1400
1600
1800
2000
-200
0
200
400
600
800
1000
1200
1400
1600
1800
Czas [s]
K
u
rs
Rysunek 5. Odpowiedz na skok jednostkowy 5°.
Bardzo ważne jest dobranie parametrów budowy samej sieci. Rysunek 6
przedstawia wyjście z sieci (linia przerywana), która zawierała 19 neuronów (jeden
mniej niż poprzednia sieć).
0
100
200
300
400
500
600
700
800
900
1000
-150
-100
-50
0
50
100
Czas [s]
K
u
rs
Rysunek 6. Wyjście z sieci (linia przerywania) i wyjście z modelu (linia ciągła)
Sieć z 19 neuronami przestaje dobrze modelować dynamikę obiektu i można
powiedzieć, że jest ona bezużyteczna w dalszym procesie poszukiwania regulatora
neuronowego.
W naszym przypadku za duża liczba neuronów także nie poprawia jakości sieci
neuronowej. Rysunek 7 przedstawia wyjście z sieci neuronowej (linia przerywana)
która zawierała 21 neuronów (jeden neuron więcej niż sieć przedstawiona w tabeli (1)).
0
100
200
300
400
500
600
700
800
900
1000
-1200
-1000
-800
-600
-400
-200
0
Czas [s]
K
u
rs
Rysunek 7. Wyjście z sieci (linia przerywania) i wyjście z modelu (linia ciągła)
Dodanie tylko jednego neuronu spowodowało, że sieć gorzej modeluje dynamikę
statku. Zauważmy również, że pod koniec symulacji pojawiają się „dziwne oscylacje”
oscylacje.
5. WNIOSKI
Podczas projektowania regulatora neuronowego wykorzystywany jest model
neuronowy obiektu regulacji. Od jakości tego modelu zależy skuteczność działania
regulatora neuronowego. Znalezienie właściwiej struktury sieci neuronowej nie jest
zadaniem łatwym. W pracy przebadano wiele różne konfiguracje sieci neuronowej
wykorzystywanej później w procesie uczenia regulatora neuronowego. Model
neuronowy obiektu okazał się bardzo wrażliwy na zmianę parametrów, opisujących
strukturę sieci. Zmiana liczby neuronów w warstwie o jeden powodował „dziwne
zachowania” pokazane na rysunkach 6 i 7. Za mała liczba neuronów powodowała duże
niedokładności w modelowaniu dynamiki (rysunek 6). Zbyt duża liczba neuronów
powodowała powstanie „dziwnych oscylacji” (rysunek 7). Ze względu na dużą liczbę
neuronów (elementów nieliniowych) badania analityczne prowadzące do wyjaśnienia
dziwnych zachowań są praktycznie niemożliwe. Pozostają liczne i żmudne badania
symulacyjne, które jednak nie wyjaśniają do końca zauważonych zjawisk.
LITERATURA
1. Borel-Plater B., 1999, Rozmyte sterowanie powolnym ruchem jednostki pływającej.
VII Krajowa Konferencja Naukowo-Dydaktyczna „Automatyzacja i Eksploatacja
Systemów Sterowania”, AMW, 13-15.10.1999,Mat. Konf.Gdynia,s. 367-374.
2. Fossen T. I, 1994, Guidance and Control of Ocean Vehicles John Wiley & Sons,
West Sussex, England
3. Gorczyca P., Kołek K., Mitkowski W., 1999, Neurosterownik stabilizujący
położenie „helikoptera” (Neurocontroler using for stabilization of „helikopter”),
Materiały VII Krajowej Konferencji Naukowo – Dydaktycznej Automatyzacja i
Eksploatacja Systemów Sterowania, Akademia Marynarki Wojennej, Gdynia,
13-15.10.1999, s. 357-366.
4. Demuth, H., Beale, M., 2002, Neural Network Toolbox.
5. Kasprzyk, J. (red.), 2002, Identyfikacja procesów, Wyd. Pol. Śląskiej, Gliwice.
6. Kautz T., Kalinowski A., 1999, Identyfikacja parametrów liniowego modelu okrętu
za pomocą rekurencyjnej sieci Hopfielda. Materiały VII Krajowej Konferencji
Naukowo - Dydaktycznej Automatyzacja i Eksploatacja Systemów Sterowania,
Akademia Marynarki Wojennej, Gdynia, 13-15.10.1999, s. 403-410.
7. Garus J., Malecki J., Zak B., 1999, Zastosowanie sieci Hopfielda do modelowania
ruchu okrętu, Mat. Konferencyjne XIII Krajowej Konferencji Automatyki (pod red.
Z. Bubnickiego i J. Józefczyka), Opole 21-24.09.1999, Oficyna Wyd. Pol.
Opolskiej, Opole 1999, tom 1, s. 211-214.
8. Kołek K., Mitkowski W., 2001, Dobór struktury sieci neuronowych w układach
sterowania czasu rzeczywistego (Selection of neural network structure in real time
control systems), Informatyka w Technologii Materiałów, tom 1, numer 1, 2001,
Wydawnictwo Naukowe AKAPIT (Kraków), ss. 23-34.
9. Kołek K., Mitkowski W., 2001, Praktyczna realizacja sterowania i analiza pracy
węzła cieplnego z wykorzystaniem sieci neuronowych (Application of neural
networks to practical implementation of control and analysis of energetic node),
Informatyka w Technologii Materiałów, tom 1, numer 3-4, 2001, Wydawnictwo
Naukowe AKAPIT (Kraków), ss. 181-188.
10. Korbicz, J., Obuchowicz, A., Uciński, D., 1994, Sztuczne sieci neuronowe,
Akademicka Oficyna Wydawnicza PLJ, Warszawa.
11. Smierzchalski R., 1998, Synteza metod i algorytmów wspomagania decyzji
nawigatora w sytuacji kolizyjnej na morzu, Wyższa Szkoła Morska w Gdyni
12. Tadeusiewicz, R., 1993, Sieci Neuronowe, Akademicka Oficyna Wydawnicza RM,
Warszawa.
13. Zalewski, A., Cegieła, R., 1997, Matlab, obliczenia numeryczne i ich zastosowania,
Wyd. Nakom, Poznań.
STUDY OF SENSITIVITY NEURAL NETWORK USED
TO MODELING DYNAMIC SYSTEM FOR EXAMPLE
SWIMMING OBJECT
Abstrac
The paper presents neural network modeling ship dynamic. Describes also structure of
this neural network and method learning it. Presented neural network is used in
MATLAB in neuroregulator. Results of experiments and conclusions are placed in this
paper.