PRACA PRZEJŚCIOWA Zastosowanie sieci neuronowych w zagadnieniu sterowania odwróconym wahadłem

background image

Politechnika Warszawska

Praca przejściowa inżynierska

Zastosowanie sieci neuronowych

w zagadnieniu sterowania

odwróconym wahadłem

Autor:
Bartosz Ciechanowski

Prowadzący:

dr inż. Cezary

Rzymkowski

30 maja 2011

background image

Spis treści

1 Wprowadzenie

3

2 Sieć neuronowa

3

2.1

Wybór metody nauczania sieci . . . . . . . . . . . . . . . . . . . . .

3

2.2

Budowa zastosowanej sieci . . . . . . . . . . . . . . . . . . . . . . .

4

3 Badany układ

6

4 Równania ruchu układu

6

4.1

Układy współrzędnych . . . . . . . . . . . . . . . . . . . . . . . . .

6

4.2

Położenie ciał . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

4.2.1

Położenie kulki . . . . . . . . . . . . . . . . . . . . . . . . .

8

4.2.2

Położenie wózka . . . . . . . . . . . . . . . . . . . . . . . .

9

4.3

Energia kinetyczna . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

4.3.1

Energia kinetyczna kulki . . . . . . . . . . . . . . . . . . . .

9

4.3.2

Energia kinetyczna wózka . . . . . . . . . . . . . . . . . . .

9

4.3.3

Energia kinetyczna układu . . . . . . . . . . . . . . . . . . . 10

4.4

Energia potencjalna

. . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.4.1

Energia potencjalna kulki . . . . . . . . . . . . . . . . . . . 10

4.4.2

Energia potencjalna wózka . . . . . . . . . . . . . . . . . . . 10

4.4.3

Energia potencjalna układu . . . . . . . . . . . . . . . . . . 10

4.5

Równania Eulera-Lagrange’a . . . . . . . . . . . . . . . . . . . . . . 10
4.5.1

Lagranżjan układu . . . . . . . . . . . . . . . . . . . . . . . 10

4.5.2

Pochodne lagranżjanu . . . . . . . . . . . . . . . . . . . . . 11

4.5.3

Siły uogólnione . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.6

Układ równań . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.7

Postać macierzowa układ równań . . . . . . . . . . . . . . . . . . . 12

4.8

Równania ruchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.8.1

Rozwiązanie układu równań . . . . . . . . . . . . . . . . . . 13

4.8.2

Ostateczna postać równań ruchu . . . . . . . . . . . . . . . 13

4.9

Symulacja układu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 Proces nauki

14

5.1

Przyjęte wartości parametrów . . . . . . . . . . . . . . . . . . . . . 14

5.2

Normowanie wartości sygnałów . . . . . . . . . . . . . . . . . . . . 14

5.3

Symulacja obrotu toru . . . . . . . . . . . . . . . . . . . . . . . . . 15

1

background image

6 Uzyskane wyniki

15

6.1

Modyfikacja oryginalnego algorytmu . . . . . . . . . . . . . . . . . 15

6.2

Przeprowadzone testy . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6.3

Sprawność nauczania . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.3.1

Średnia liczba porażek . . . . . . . . . . . . . . . . . . . . . 18

7 Symulator sieci

19

7.1

Aplikacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7.2

Parametry nauczania . . . . . . . . . . . . . . . . . . . . . . . . . . 20

7.3

Stawianie wahadła . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2

background image

1 Wprowadzenie

Klasycznym testem dla systemów sterowania jest utrzymywanie odwróconego wa-
hadła w pozycji pionowej. Wahadło takie jest zazwyczaj umieszczone na wózku
jeżdżącym po płaskiej powierzchni i napędzanym siłą o stałej wartości, działającej
w lewo lub w prawo (Rysunek 1). Zwrot tej siły jest dobierany przez układ stero-
wania. Za porażkę sterowania przyjmuje się sytuację, w której wahadło odchyli się
od pionu o kąt większy od zadanego.

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

α

F

h

Rysunek 1: Klasyczny układ fizyczny z wahadłem zamocowanym na ruchomym
wózku

Układ ten jest nieliniowy i niestabilny. Układ sterujący nie zna dynamiki kon-

trolowanego układu. Wahadło wraz z wózkiem jest postrzegane jako czarna skrzyn-
ka, na której zawartość oddziałuje tylko sygnał siły, a która generuje stan wahadła
i wózka oraz ewentualny sygnał kary. Dodatkowo, dla danego stanu układu nie ist-
nieje unikalne, poprawne rozwiązanie problemu sterowania. Każda sekwencja sił
gwarantująca sukces jest akceptowalna. Z tych powodów sterowanie takim ukła-
dem jest trudne.

W pracy tej podjęto próbę nauczenie sztucznej sieci neuronowej kontroli takiego

układu. Podczas przeprowadzonych doświadczeń, sprawdzono wpływ różnych pa-
rametrów nauczania na efektywność nauki. Dodatkowo, napisano program, który
pozwala sprawdzić działanie sieci w czasie rzeczyiwstym. Wyniki przeprowadzo-
nych badań są przedstawione w niniejszej pracy.

2

Sieć neuronowa

2.1

Wybór metody nauczania sieci

Zasadniczo rozróżnia się trzy metody nauczania sieci. Najczęściej stosowane jest
uczenie nadzorowane (supervised learning). Polega ono na dostarczaniu sieci dużej
ilości danych i kontrolowaniu czy otrzymany rezultat pokrywa się z oczekiwanym.
Po każdym korku wagi sieci są modyfikowane, proporcjonalnie do różnicy między

3

background image

uzyskanym wynikiem a wzorcem. Metoda taka nie mogła zostać użyta w opisywa-
nym problemie, ponieważ nie sposób stworzyć wzorca prawidłowych odpowiedzi
dla określonego stanu układu.

W uczeniu nienadzorowanym (unsupervised learning), sieć neuronowa uczy się

wyszukiwać powtarzalnego wzorca w danym zbiorze danych. Tak nauczona sieć
znajduje zastosowanie przy klasyfikacji sygnałów wejściowych. Trzeba podkreślić,
że z założenia sieć taka nie przyjmuje informacji zwrotnych, trudno więc mówić o
praktycznym zastosowaniu takiej metody nauczania w prezentowanym zagadnie-
niu,

W trzeciej metodzie uczenia, uczeniu ze wzmocnieniem (reinforcement lear-

ning), jedyną informacją zwrotną jaką otrzymuje sieć neuronowa, jest sygnał kary,
mówiący o tym, czy wypracowany rezultat jest dobry czy zły. Na podstawie tyl-
ko tej informacji sieć ma poprawić swoje wyniki. Chociaż sieć podejmuje decyzje
na bieżąco, to sygnał kary zostaje wysłany dopiero po spełnieniu określonych wa-
runków. Bywa, że błędna decyzja prowadząca do porażki, zostanie podjęta wiele
kroków wcześniej i mimo, że kolejne decyzje będa poprawne, to nie uda się osiągnąć
sukcesu. W tego typu nauczaniu bardzo ważne jest wykrycie które decyzje najbar-
dziej przyczyniły się do porażki i poprawne przyznanie im odpowiedzialności za
uzyskany rezultat.

2.2

Budowa zastosowanej sieci

Anderson zaproponował [2] podział układu sterującego na dwie sieci - sieć oce-
niającą
(evaluation network) i sieć decyzyjną (action network). Sieć decyzyjna
odpowiada za wybór kierunku siły dla danego stanu układu. Sieć oceniająca, uży-
wana tylko w procesie nauki, uczy się przewidywać sygnał kary, wykorzystując
przy tym metodę różnic czasowych (temporal difference), stworzoną przez Suttona
[3]. Dzięki tej metodzie, sieć uczy się powiązań pomiędzy sygnałami oddalonymi
od siebie w czasie. Oceniając stan układu, sieć generuje sygnał wyjściowy. Im jest
on mocniejszy, tym szybciej, zdaniem sieci, wystąpi sygnał kary.

Na rysunku 2 schematycznie przedstawiono budowę układu sterowania w trybie

nauki.

4

background image

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

sieć oceniająca

sieć decyzyjna

układ fizyczny

wahadła

zmienne
stanu

sygnał kary

ocena
stanu

sygnał siły

Rysunek 2: Budowa układu sterowania w trybie nauki

Obie sieci składały się z dwóch warstw. W pierwszej warstwie umieszczono

7 neuronów – 4 dla zmiennych stanu i 3 dla parametrów. W drugiej znajdował
się jeden neuron o czternastu wejściach, który oprócz sygnałów z pierwszej war-
stwy, przyjmował również wartości wysyłane przez układ fizyczny (Rysunek 3).
Ten schemat, zaproponowany przez Andersona [1], różni się nieco od klasycznej,
trójwarstwowej sieci.

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

zmienne stanu

wyjście

Rysunek 3: Budowa pojedynczej sieci

5

background image

3 Badany układ

Ponieważ standardowy układ fizyczny (Rysunek 1) został już wielokrotnie prze-
badany, w tej pracy zdecydowano się sprawdzić zachowanie bardziej skompliko-
wanego układu. Przedstawiono go na rysunku 4. Wahadło (1) jest modelowane
przez kulkę o masie m, zamocowanej na sztywnym, nieważkim pręcie. Pręt ten
jest przyczepiony do wózka (2) i może swobodnie obracać się w obie strony bez
tarcia. Wózek ma masę M , a jego napęd stanowi silnik, zdolny tworzyć impul-
sy siły o zadanej wartości F , ukierunkowane w lewo lub w prawo. Wózek może
swobodnie poruszać się po torze w kształcie okręgu (3). Dodatkowo, tor ten może
być swobodnie obracany względem bezwzględnego układu wokół swojej osi (4). W
układzie założono całkowity brak tarcia.

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

3

2

1

g

4

Rysunek 4: Badany układ

4 Równania ruchu układu

4.1

Układy współrzędnych

Rozpatrywanie położeń ciał najlepiej rozpocząć od układu związanego ze środkiem
wózka – układem x

y

. Kąt β określa odchylenie wahadła od pionu (Rysunek 5).

6

background image

y'

x'

β

M

F

m

Rysunek 5: Układ x

y

Układ x

y

znajduje się wewnątrz układu xy. Kąt jaki zatoczył wózek, w sto-

sunku do najniżej położonego punktu toru po jakim się porusza, oznaczono jako
β Ponieważ układ x

y

jest związany z wózkiem, również on porusza się po okręgu

w taki sposób, że oś y

zawsze wskazuje środek układu xy (Rysunek 6).

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

y

x

M

α

m

y'

x'

β

F

Rysunek 6: Układ xy

Bezwględnym układem odniesienia jest układ XY . Kąt γ określa kąt obrotu

układu xy względem układu XY . Wartości X

0

oraz Y

0

nie mają żadnego znaczenia,

ta translacja służy wyłącznie poprawie czytelności rysunku .

7

background image

X

Y

y

x

X

0

γ

α

y'

x'

β

M

F

Y

0

m

g

Rysunek 7: Układ XY

4.2

Położenie ciał

W poniższych wyprowadzeniach długość wahadła oznaczono jako l, a promień toru
jako r.

4.2.1 Położenie kulki

Na początek należy wyznaczyć położenie kulki w układzie x

y

[

x

k

y

k

]

=

[

−l sin β

l cos β

]

W celu wyznaczenia położenia kulki w układzie xy trzeba dokonać obrotu i trans-
lacji układu współrzędnych
[

x

k

y

k

]

=

[

cos α

sin α

sin α

cos α

] [

x

k

y

k

]

+

[

r sin α

−r cos α

]

=

[

−l sin β cos α − l cos β sin α + r sin α

−l sin β sin α + l cos β cos α − r cos α

]

8

background image

Korzystając z tożsamości trygonometrycznych można uprościć powyższe równanie
do postaci

[

x

k

y

k

]

=

[

−l sin(α + β) + r sin α

l cos(α + β)

− r cos α

]

W układzie XY

[

X

k

Y

k

]

=

[

cos γ

sin γ

sin γ

cos γ

] [

x

k

y

k

]

+

[

X

0

Y

0

]

=

=

[

−l sin(α + β) cos γ + r sin α cos γ − l cos(α + β) sin γ + r cos α sin γ + X

0

−l sin(α + β) sin γ + r sin α sin γ + l cos(α + β) cos γ − r cos α cos γ + Y

0

]

W ostateczności

[

X

k

Y

k

]

=

[

−l sin(α + β + γ) + r sin(α + γ) + X

0

l cos(α + β + γ)

− r cos(α + γ) + Y

0

]

(1)

4.2.2 Położenie wózka

Położenie wózka można wyznaczyć w analogiczny sposób

[

X

w

Y

w

]

=

[

r sin(α + γ) + X

0

−r cos(α + γ) + Y

0

]

(2)

4.3

Energia kinetyczna

4.3.1 Energia kinetyczna kulki

T

k

=

1

2

m( ˙

X

2

k

+ ˙

Y

2

k

)

Po uproszczeniach otrzymujemy

T

k

=

1

2

m

(

l

2

( ˙

α + ˙

β + ˙γ)

2

2lr( ˙α + ˙β + ˙γ)( ˙α + ˙γ) cos β + r

2

( ˙

α + ˙γ)

2

)

(3)

4.3.2 Energia kinetyczna wózka

T

w

=

1

2

M

(

˙

X

2

w

+ ˙

Y

2

w

)

=

1

2

M

(

r

2

cos

2

(α + γ)( ˙

α + ˙γ)

2

+ r

2

sin

2

(α + γ)( ˙

α + ˙γ)

2

)

Ostatecznie

T

w

=

1

2

M r

2

( ˙

α + ˙γ)

2

(4)

9

background image

4.3.3

Energia kinetyczna układu

Energia kinetyczna układu jest równa sumie energii kinetycznych poszczególnych
ciał

T =

1

2

(

ml

2

( ˙

α + ˙

β + ˙γ)

2

2mlr( ˙α + ˙β + ˙γ)( ˙α + ˙γ) cos β + (m + M)r

2

( ˙

α + ˙γ)

2

)

(5)

4.4

Energia potencjalna

Przy obliczaniu energii potencjalnej jako poziom odniesienia przyjęto wartość Y

0

.

Jest to początek układu współrzędnych xy.

4.4.1 Energia potencjalna kulki

V

k

= mg(Y

k

− Y

0

) = mg

(

l cos(α + β + γ)

− r cos(α + γ)

)

(6)

4.4.2 Energia potencjalna wózka

V

w

= M g(Y

w

− Y

0

) =

−Mgr cos(α + γ)

(7)

4.4.3 Energia potencjalna układu

Energia potencjalna układu jest sumą energii potencjalnych ciał

V = g

(

ml cos(α + β + γ)

(m + M)r cos(α + γ)

)

(8)

4.5

Równania Eulera-Lagrange’a

4.5.1 Lagranżjan układu

Funkcja Lagrange’a jest opisana równaniem L = T

−V , po wstawieniu obliczonych

wcześniej równań otrzymujemy

L =

1

2

(

ml

2

( ˙

α + ˙

β + ˙γ)

2

2mlr( ˙α + ˙β + ˙γ)( ˙α + ˙γ) cos β + (m + M)r

2

( ˙

α + ˙γ)

2

)

− g

(

ml cos(α + β + γ)

(m + M)r cos(α + γ)

)

(9)

Równania Eulera-Lagrange’a są dane równaniem

d

dt

(

∂L

˙

q

)

∂L

∂q

= Q

(10)

W rozpatrywanym układzie uogólniony wektor przemieszczeń q składa się z dwóch
współrzędnych

q =

[

α
β

]

(11)

10

background image

W rezultacie mamy do czynienia z dwoma równaniami

d

dt

(

∂L

˙

α

)

∂L

∂α

= Q

α

(12)

d

dt

(

∂L

˙

β

)

∂L

∂β

= Q

β

(13)

4.5.2 Pochodne lagranżjanu

Można przystąpić do obliczeń poszczególnych pochodnych występujących w rów-
naniu (12)

∂L

˙

α

=

1

2

(

2ml

2

( ˙

α + ˙

β + ˙γ)

2mlr(2 ˙α + ˙β + 2 ˙γ) cos β + 2(m + M)r

2

( ˙

α + ˙γ)

)

d

dt

(

∂L

˙

α

)

= ml

2

( ¨

α + ¨

β + ¨

γ)

− mlr(2¨α + ¨β + 2¨γ) cos β

+ mlr(2 ˙

α + ˙

β + 2 ˙γ) sin(β) ˙

β + (m + M )r

2

( ¨

α + ¨

γ)

∂L

∂α

= g

(

ml sin(α + β + γ)

(m + M)r sin(α + γ)

)

oraz w równaniu (13)

∂L

˙

β

=

1

2

(

2ml

2

( ˙

α + ˙

β + ˙γ)

2mlr( ˙α + ˙γ) cos β

)

d

dt

(

∂L

˙

β

)

= ml

2

( ¨

α + ¨

β + ¨

γ)

− mlrα + ¨γ) cos β + mlr( ˙α + ˙γ) sin(β) ˙β

∂L

∂β

= mlr( ˙

α + ˙

β + ˙γ)( ˙

α + ˙γ) sin β + gml sin(α + β + γ)

4.5.3 Siły uogólnione

W układzie działa tylko siła F i jest ona przyłożona do wózka, stanowiąc odzwier-
ciedlenie wbudowanego napędu. Jej składowe w układzie XY wynoszą

F =

[

F

X

F

Y

]

=

[

F cos(α + γ)

F sin(α + γ)

]

(14)

W celu obliczenia sił uogólnionych działających w układzie należy dokonać nastę-
pującego przekształcenia

Q =

(

dr

dq

)

T

F

(15)

11

background image

gdzie

dr
dq

jest jakobianem przekształceń i przyjmującym postać

dr

dq

=

[

∂X

w

∂α

∂X

w

∂β

∂Y

w

∂α

∂Y

w

∂β

]

=

[

r cos(α + γ) 0

r sin(α + γ) 0

]

(16)

Wstawiając równania (14) i (16) do równania (15) otrzymujemy

Q =

[

r cos(α + γ) r sin(α + γ)

0

0

] [

F cos(α + γ)

F sin(α + γ)

]

=

[

F r

0

]

(17)

4.6

Układ równań

Podstawiając obliczone wcześniej wyrażenia do równań (12) i (13) uzyskujemy
układ dwóch równań różniczkowych drugiego rzędu

ml

2

( ¨

α + ¨

β + ¨

γ)

− mlr(2¨α + ¨β + 2¨γ) cos β + mlr(2 ˙α + ˙β + 2 ˙γ) sin(β) ˙β

+ (m + M )r

2

( ¨

α + ¨

γ)

− g

(

ml sin(α + β + γ)

(m + M)r sin(α + γ)

)

= F r

ml

2

( ¨

α + ¨

β + ¨

γ)

− mlrα + ¨γ) cos β + mlr( ˙α + ˙γ) sin(β) ˙β

(

mlr( ˙

α + ˙

β + ˙γ)( ˙

α + ˙γ) sin β + gml sin(α + β + γ)

)

= 0

4.7

Postać macierzowa układ równań

Wyprowadzony układ równań o wiele wygodniej jest przedstawić w postaci macie-
rzowej

[

a

11

a

12

a

21

a

22

] [

¨

α

¨

β

]

=

[

b

1

b

2

]

(18)

Współczynniki macierzy są dane wzorami

a

11

= ml

2

2mlr cos β + (m + M)r

2

(19)

a

12

= ml

2

− mlr cos β

(20)

a

21

= ml

2

− mlr cos β

(21)

a

22

= ml

2

(22)

b

1

=

−ml

2

¨

γ + 2mlr¨

γ cos β

− mlr(2 ˙α + ˙β + 2 ˙γ) sin(β) ˙β − (m + M)r

2

¨

γ

+ g

(

ml sin(α + β + γ)

(m + M)r sin(α + γ)

)

+ F r

(23)

b

2

=

−ml

2

¨

γ + mlr¨

γ cos β + mlr( ˙

α + ˙γ)

2

sin β

+ gml sin(α + β + γ)

(24)

12

background image

4.8

Równania ruchu

4.8.1

Rozwiązanie układu równań

Macierzowe równanie (18) jest przedstawione w postaci Ax = b, pozostaje znaleźć
zależność na x. W tym celu musimy znaleźć odwrotność macierzy A

A

1

=

[

a

11

a

12

a

21

a

22

]

1

=

1

det A

[

a

22

−a

12

−a

21

a

11

]

(25)

Wyznacznik macierzy A wynosi

det A =

(

ml

2

(

ml

2

2mlr cos β + (m + M) r

2

)

(

ml

2

− mlr cos β

)

2

)

= ml

2

r

2

(m sin

2

β + M )

(26)

Mnożąc lewostronnie obie strony równania (18) przez A

1

sprowadzamy układ do

postaci x = A

1

b, co po podstawieniu obliczonych wyrażeń daje

[

¨

α

¨

β

]

=

1

det A

[

a

22

−a

12

−a

21

a

11

] [

b

1

b

2

]

(27)

4.8.2 Ostateczna postać równań ruchu

Wymnażając macierze w równaniu (27) otrzymujemy ostatecznie

¨

α =

1

det A

(a

22

b

1

− a

12

b

2

)

(28)

¨

β =

1

det A

(a

11

b

2

− a

21

b

1

)

(29)

Z obliczeniowego punktu widzenia, warto pozostawić równania w takiej postaci.
Podczas rozwiązywania układu, wartości b

1

, b

2

oraz (det A)

1

będą musiały być

policzone tylko raz w każdym kroku, zmniejszając przy tym koszt obliczeniowy.

Celem sterowania jest taki dobór sekwencji sił działających w lewo i w prawo,

żeby utrzymać wahadło w pionie względem wózka. Wahadło powinno pokazywać
więc środek okrągłego toru. Przyjęto, że wahadło może odchylić się od pionu o
12

. Ten stosunkowo duży przedział tolerancji odchylenia nie nadawałby się w

zastosowaniach wymagających bardzo precyzyjnej kontroli położenia, jest jednak
standardową wartością przyjmowaną w pracach badawczych.

13

background image

4.9

Symulacja układu

Z powyższych rozważań wynika, że stan układu jest w danej chwili opisany cztere-
ma zmiennymi stanu: α, ˙α, β i ˙

β. Dodatkowo w równaniach ruchu występują trzy

parametry: γ, ˙γ i ¨

γ.

Problematyczną cechą sieci neuronowych jest ich długi czas uczenia. Przepro-

wadzenie nauki na układzie fizycznym wiązałoby się ze znacznymi trudnościami.
Z tego względu zdecydowano się na numeryczną symulację rzeczywistego układu.
Równania ruchu byłe całkowane metodą Rungego-Kutty IV rzędu z krokiem 0.005s
(200 Hz).

5

Proces nauki

5.1

Przyjęte wartości parametrów

Podczas badań zdecydowano się przyjąć następujące parametry układu

m = 0.1

M = 0.5

r = 1.0

l = 0.2

F = 7.0

g = 9.81

5.2

Normowanie wartości sygnałów

Ponieważ wartości zmiennych stanu generowanych przez symulator wahadła po-
chodzą z dość szerokiego przedziału wartości należało je najpierw unormować, tak,
aby sieć dostawała sygnały z przedziału

±0.1.

x

1

=

˙

α

2.0

x

2

=

α

180

x

3

=

˙

β

1.25

x

4

=

β

12

x

5

=

¨

γ

25.0

x

6

=

˙γ

6.0

x

7

=

γ

180

14

background image

Dodatkowo w każdym procesie nauki wstępne wagi wszystkich połączeń były

losowane z przedziału (

0.1; 0.1).

5.3

Symulacja obrotu toru

Ponieważ proces nauczania był przeprowadzony na komputerze stacjonarnym, a
nie na tablecie, należało w jakiś sposób symulować obrót urządzenia. Zadanie to
spełniała następująca funkcja

f (i) =


0.001

· sin

(

(i

1000) ∗ π

1000

)

jeśli i mod 2000

1000

0

w przeciwnym wypadku

(30)

i - krok symulacji

6 Uzyskane wyniki

6.1

Modyfikacja oryginalnego algorytmu

Jednym z głównych założeń Andersona jest zdefiniowanie sygnału kary jako

r(t) =

{

1 jeśli |β| ≥ 12

0

w przeciwnym wypadku

(31)

Podczas badań można było zauważyć, że sieć potrafiła nauczyć się utrzymywać

wahadło w zadanym przedziale. Często jednak okazywało się, że wahadło nie by-
ło stabilizowane dokładnie w pionie, lecz pod niewielkim, aczkolwiek widocznym,
kątem. Sytuacja taka jest co prawda sukcesem – został osiągnięty cel utrzymania
wahadła w określonym przedziale. Kłóci się to jednak z próbą utrzymania ideal-
nego
pionu, pozwalając na odchylenie o większy kąt podczas kryzysowych sytuacji,
oczywiście ciągle w zadanych granicach.

Aby temu zaradzić, postanowiono zmodyfikować nieco oryginalną funkcję kary

r(t) =


1 jeśli |β| ≥ 12

n

jeśli

|β| ≤ (p · 12

)

0

w przeciwnym wypadku

(32)

15

background image

Parametr n określa wartość sygnału jakim sieć zostanie nagrodzona w przy-

padku utrzymania wahadła w przedziale p procent mniejszym od zadanego. Oczy-
wistym jest, że wartość n powinna być dodatnia, natomiast wartość p winna być
mniejsza od jedności.

6.2

Przeprowadzone testy

Przeprowadzono badania dla 0

≤ n ≤ 1 oraz 0 ≤ p ≤ 1 z krokiem 0.1, łącznie 121

testów. Dla każdej pary wartości wykonano 100 prób nauczania sieci.

Za sukces próby nauczania przyjmowano moment, w którym przez 120000 ite-

racji symulatora (10 minut czasu rzeczywistego) sieć utrzymywała wahadło w za-
danym przedziale tj.

|β| ≥ 12

. Za porażkę próby przyjęto sytuację, w której przez

400000 iteracji symulatora sieć nie zdołała nauczyć się utrzymywać wahadło w
pionie. Dla każdego ze 121 testów mierzono dwie wartości, sprawność nauczania,
oraz średnią liczbę porażek sieci przed osiągnięciem sukcesu.

6.3

Sprawność nauczania

Sprawność naczania zdefiniowano jako

η =

liczba prób nauczania zakończonych sukcesem

całkowita liczba prób

Na rysunku 8 przedstawiono uzyskane wyniki.

16

background image

!"

!#$"

!#%"

!#&"

!#'"

!#("

!#)"

!#*"

!#+"

!#,"

$"

!"

!#$" !#%" !#&" !#'" !#(" !#)" !#*" !#+" !#,"

$"

!"

#"

!#,(-$"

!#,-!#,("

!#+(-!#,"

!#+-!#+("

!#*(-!#+"

!#*-!#*("

!#)(-!#*"

!#)-!#)("

!#((-!#)"

!#(-!#(("

!#'(-!#("

!#'-!#'("

Rysunek 8: Sprawność nauczania w funkcji p i n (im więcej tym lepiej)

Interpretując powyższy wykres od razu dostrzega się zawodność procesu na-

uczania przy skrajnych wartościach parametrów. Algorytm z równania (31), od-
powiadający wartości n = 0 w równaniu (32), osiągnął średnią sprawność równą
0.728 co stanowi stosunkowo słaby rezultat. Warto zauważyć, że podobne wyniki
uzyskano dla p = 0. Wynika to z prostego faktu, że sieć była wówczas nagradzana
tylko w wyjątkowych przypadkach – gdy kąt β przyjął wartość 0. Uwzględniając
znaczną niestabilność układu, skończenie mały krok całkowania i sporą precyzję
liczb zmiennoprzecinkowych można z dużą pewnością założyć, że takie zdarzenie
nigdy nie miało miejsca, co znajduje odzwierciedlenie w wynikach.

Fatalne wyniki, na średnim poziomie 0.469, otrzymano dla parametru p równe-

mu jedności. Jest to zrozumiałe, sieć była nagradzana nawet wtedy, gdy wahadło
znajdowało się na granicy zadanego przedziału, trudno mówić więc o sensownej
dystrybucji kar i nagród.

Najlepsze rezultaty uzyskano dla wartości obu parametrów z przedziału (0.2 :

0.5). Sieć była wówczas nagradzana za utrzymywanie wahadła blisko pionu (pa-
rametr p), warunek ten był jednak na tyle nie wyśrubowany, że dawał szanse na

17

background image

nagradzanie. Jednocześnie sygnał nagrody nie był zbyt mocny (parametr n), upa-
dek wahadła miał o wiele większą moc karzącą i stanowił główne źródło wiedzy.

6.3.1 Średnia liczba porażek

Średnią liczbę porażek przed zakończeniem procesu nauczania f zdefiniowano jako

f =

1

k

k

i=1

m

m - liczba porażek przed zakończeniem procesu nauczania

k - liczba prób nauczania zakończonych sukcesem, w danym teście

Wartość ta określała szybkość uczenia się sieci w danym teście, uwzględniając

tylko udane próby nauczania. Na rysunku 9 przedstawiono uzyskane wyniki.

!"

!#$"

!#%"

!#&"

!#'"

!#("

!#)"

!#*"

!#+"

!#,"

$"

!"

!#$"

!#%"

!#&"

!#'"

!#("

!#)"

!#*"

!#+"

!#,"

$"

!"

#"

&!!!-&%(!"

%*(!-&!!!"

%(!!-%*(!"

%%(!-%(!!"

%!!!-%%(!"

$*(!-%!!!"

$(!!-$*(!"

$%(!-$(!!"

$!!!-$%(!"

*(!-$!!!"

(!!-*(!"

%(!-(!!"

!-%(!"

Rysunek 9: Średnia liczba porażek w funkcji p i n (im mniej tym lepiej)

18

background image

Porównując powyższy wykres z rysunkiem 8 można zauważyć, że dla wartości

parametrów n i p bliskich zeru, sieć szybko się uczyła pomimo niskiej sprawności
nauczania. Oznacza to, że dla tych wartości proces nauki nie zawsze kończył się
sukcesem, jeśli jednak udało się osiągnąć cel to następowało to szybko.

Zdecydowanie najlepsze rezultaty, średnio 9.845 porażek na test, otrzymano dla

wartości 0.3

≤ n ≤ 0.4 oraz 0.2 ≤ p ≤ 0.4. Pokrywa się to z obszarem najlepszej

sprawności nauczania.

Najgorsze wyniki uzyskano dla dużych wartości obu parametrów. Szukając

przyczyn tak dużej liczby porażek łatwo odwołać się do wcześniej uzyskanych
wyników.

7

Symulator sieci

7.1

Aplikacja

Jednym z głównych celów badań było napisanie aplikacji zdolnej pokazać działanie
sieci neuronowej w czasie rzeczywistym. Chociaż sam proces nauczania sieci był
przeprowadzany na komputerze stacjonarnym, to symulację zaimplementowano na
urządzeniu mobilnym - tablecie iPad firmy Apple. W napisanej aplikacji związano
z urządzeniem układu xy (Rysunek 10). Oznacza to, że obrót tabletu odpowiada
obrotowi okrągłego toru.

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

y

x

a

x

a

y

ω

X

Y

Rysunek 10: Symulacja układu na tablecie

19

background image

Urządzenie to jest wyposażone w trzyosiowy akcelerometr, oraz trzyosiowy ży-

roskop. Częstotliwość pomiaru obu tych przyrządów wynosi 100 Hz. Ich odczyty
pozwalają na dostarczanie do symulatora rzeczywistych wartości prędkości kąto-
wych oraz kierunku grawitacji jakie działałyby na fizyczny układ. W aplikacji
korzystano trzech pomiarów: przyspieszeń liniowych a

x

i a

y

oraz z prędkości kąto-

wej wokół osi z oznaczonej jako ω. Wartości tych pomiarów pozwoliły na obliczenie
parametrów

γ = arctan

a

x

a

y

˙γ = ω

¨

γ =

d ˙γ

dt

ω

t

W napisanym programie wyniki te są liczone na bieżąco i podawane symulato-

rowi.

7.2

Parametry nauczania

Bazując na uzyskanych wynikach zdecydowano się przeprowadzić proces nauczania
sieci dla parametrów n = 0.5 i p = 0.3. Sieć była uczona przez 800000 kroków
(co odpowiada 67 minutom czasu rzeczywistego). Podczas nauki sieć zawiodła
tylko dwa razy: po 114 i 16542 krokach, by następnie prawidłowo utrzymywać
postawione wahadło aż do zakończenia procesu uczenia.

7.3

Stawianie wahadła

Podczas nauczania sieci cały układ fizyczny był przywracany do warunków po-
czątkowych, gdy wahadło odchyliło się o kąt większy od zadanego. Sieć neurono-
wa miała szansę uczyć się prawidłowych zachowań tylko w wąskim przedziale 24

stopni. Po zakończeniu procesu nauczania blokadę tę usunięto - wahadło miało
pełną swobodę obrotu.

Uzyskano przy tym nieoczekiwany rezultat - sieć neuronowa była wstanie po-

stawić wahadło całkowicie odchylone od pion tj. wiszące pod kątem 180

. Tę za-

skakującą zdolność można jednak łatwo wytłumaczyć próbą minimalizacji kąta β
(Rysunek 5). Sieć nauczyła się powiązań pomiędzy aktualnym stanem układu a
tym, jakie działania musi podjąć, żeby osiągnąć sukces.

W celu potwierdzenia tej teorii zbadano reakcję sieci na kombinacje parame-

trów β i ˙

β - kąta wychylenia wahadła i jego prędkości kątowej. Badano, z jakim

prawdopodobieństwem sieć będzie chciała przesunąć wózek w lewo w zależności od
aktualnej wartości tych parametrów. Wartość 0.0 odpowiada więc stu procentowej

20

background image

pewności, że wózek, pod wpływam działania sterującej siły, przesunie się w prawo.
Na rysunku 11 przedstawiono uzyskane wyniki.

!"#$%

&"#$%

$%

$'(%

$')%

$'*%

$'+%

$'"%

$',%

$'-%

$'.%

$'/%

(%

!(.$0%

(.$0%

!"#!$%

"%

Rysunek 11: Prawdopodobieństwo wymuszenia ruchu wózka w lewo w zależności
od parametrów β i ˙

β

Wykres ten potwierdza powyższe rozumowanie. Gdy wahadło przechodzi przez

najniższy punkt, tj. gdy kąt skokowo zmienia się z

180

na 180

zmienia się też

siła. Powoduje to rozhuśtanie wahadła.

Jednocześnie warto zauważyć, że sieć potrafi niejako przewidzieć przyszłe wyda-

rzenia. Gdy wahadło jest blisko pionu (β blisko 0), reakcja sieci zależy od aktualnej
prędkości kątowej wahadła. Sieć wie, że duża dodatnia prędkość kątowa oznacza,
że wahadło będzie przechylać się w lewo, stara się przeciwdziałać temu ruchowi
przesuwając wózkiem w lewo.

Literatura

[1] C.W. Anderson Strategy Learning with Multilayer Connectionist Representa-

tions, GTE Laboratories, Waltham, MA, 1987

21

background image

[2] C.W. Anderson. Learning to control an inverted pendulum using neural ne-

tworks, IEEE Controls Systems Magazine, 9:31-37, 1989.

[3] R.S. Sutton. Learning to Predict by the Methods of Temporal Differences, Ma-

chine Learning, vol. 3. pp. 9-44, 1988.

22


Wyszukiwarka

Podobne podstrony:
Projekt I Sztuczna Inteligencja, Sprawozdanie, Techniczne zastosowanie sieci neuronowych
Zastosowanie sieci neuronowych
Zastosowanie sieci neuronowych, giełda(3)
pierwszy, Sprawozdanie, Techniczne zastosowanie sieci neuronowych
ZASTOSOWANIE SIECI NEURONOWYCH W SYSTEMACH AKTYWNEJ REDUKCJI HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARA
Prońko, Rafał Zastosowanie sieci neuronowych do planowania i analizy kampanii reklamowej (2014)
Identyfikacja Procesów Technologicznych, Identyfikacja charakterystyki statycznej obiektu dynamiczne
Prognozowanie z zastosowaniem metod regresji krokowej, sieci neuronowych i modeli ARIMA
Sztuczne sieci neuronowe podstawy zagadnienia
Praca dyplomowa - Sieci Neuronowe, informatyka, Sieci neuronowe
praca dyplomowa sieci neuronowe GUYQ6C4FE3EUJPNFZFK6SAVH7SG2LWZYACZZG2A
praca dyplomowa sieci neuronowe, Praca magisterska
Prognozowanie z zastosowaniem metod regresji krokowej, sieci neuronowych i modeli ARIMA
Sztuczne sieci neuronowe podstawy zagadnienia
PRACA PRZEJŚCIOWA OPTYMALIZACJA PROCESÓW ENERGETYCZNYCH POPRZEZ ZASOTOWANIE NOWOCZESNYCH ALGORYTMÓW

więcej podobnych podstron