Riadenie inverzného kyvadla pomocou neurónových sietí

Riadenie inverzného kyvadla pomocou neurónových sietí Riadenie inverzného kyvadla pomocou neurónových sietí

neuron.tuke.sk
from neuron.tuke.sk More from this publisher
25.07.2013 Views

TECHNICKÁ UNIVERZITA V KOŠICIACH FAKULTA ELEKTROTECHNIKY A INFORMATIKY Riadenie inverzného kyvadla pomocou neurónových sietí Milan DOSTAL BAKALÁRSKA PRÁCA 2009

TECHNICKÁ UNIVERZITA V KOŠICIACH<br />

FAKULTA ELEKTROTECHNIKY A INFORMATIKY<br />

<strong>Riadenie</strong> <strong>inverzného</strong> <strong>kyvadla</strong> <strong>pomocou</strong> <strong>neurónových</strong> <strong>sietí</strong><br />

Milan DOSTAL<br />

BAKALÁRSKA PRÁCA<br />

2009


TECHNICKÁ UNIVERZITA V KOŠICIACH<br />

FAKULTA ELEKTROTECHNIKY A INFORMATIKY<br />

KATEDRA KYBERNETIKY A UMELEJ INTELIGENCIE<br />

<strong>Riadenie</strong> <strong>inverzného</strong> <strong>kyvadla</strong> <strong>pomocou</strong> <strong>neurónových</strong> <strong>sietí</strong><br />

BAKALÁRSKA PRÁCA<br />

Milan DOSTAL<br />

Vedúci bakalárskej práce: Ing. Rudolf Jakša, PhD.<br />

Konzultant bakalárskej práce: Ing. Rudolf Jakša, PhD.<br />

Košice 2009


Analytický list<br />

Autor: Milan Dostal<br />

Názov práce: <strong>Riadenie</strong> <strong>inverzného</strong> <strong>kyvadla</strong> <strong>pomocou</strong> <strong>neurónových</strong> <strong>sietí</strong><br />

Podnázov práce:<br />

Jazyk práce: slovenský<br />

Typ práce: Bakalárska práca<br />

Počet strán: 51<br />

Akademický titul: Bakalár<br />

Univerzita: Technická univerzita v Košiciach<br />

Fakulta: Fakulta elektrotechniky a informatiky (FEI)<br />

Katedra: Katedra kybernetiky a umelej inteligencie (KKUI)<br />

Študijný odbor: Kybernetika<br />

Študijný program: Kybernetika<br />

Mesto: Košice<br />

Vedúci práce: Ing. Rudolf Jakša, PhD.<br />

Konzultanti práce: Ing. Rudolf Jakša, PhD.<br />

Dátum odovzdania: 1. jún 2009<br />

Dátum obhajoby: 15.06.2009<br />

Kľúčové slová: Inverzné kyvadlo, neurónová sieť, model, topológia, riadenenie<br />

Kategória konspekt: Výpočtová technika; Teória systémov. Automatické systémy.<br />

Kybernetika. Informačné systémy<br />

Citovanie práce: Dostal, Milan : <strong>Riadenie</strong> <strong>inverzného</strong> <strong>kyvadla</strong> <strong>pomocou</strong><br />

<strong>neurónových</strong> <strong>sietí</strong>. Bakalárska práca. Košice: Technická<br />

univerzita v Košiciach, Fakulta elektrotechniky a informatiky ,<br />

2009. 51 s.<br />

Názov práce v AJ: Inverted Pendulum Control Using Neural Networks<br />

Podnázov práce v AJ:<br />

Kľúčové slová v AJ: Nural Network, Topology, Design


Abstrakt v SJ<br />

Bakalárska práca sa zaoberá návrhom riadenia pre model <strong>inverzného</strong> <strong>kyvadla</strong> použitím<br />

neurónovej siete. Popisuje úvod do riadenia systémov a zameriava sa na paradigmu neuroriadenia.<br />

V neuroriadení sa zameriava na algoritmus učenia so spätným šírením chyby a popisuje systém<br />

<strong>inverzného</strong> <strong>kyvadla</strong>. Pre model <strong>inverzného</strong> <strong>kyvadla</strong> navrhujú neurónové siete, kde jednotlivé<br />

navrhované topológie sú simulované v Štuttgardskom neurónovom simulátore (SNNS). Výsledky<br />

vyhodnocuje a porovnáva jednotlivé topológie <strong>neurónových</strong> <strong>sietí</strong>. Najlepšie navrhnuté riešenie sa<br />

aplikuje na riadenie modelu <strong>inverzného</strong> <strong>kyvadla</strong>.<br />

Abstrakt v AJ<br />

This bachelor work deals with a design control for the inverted pendulum model by using<br />

the neural network. It describes the introduction to the systems control and focuses on the<br />

paradigm of neural control. In the neural control it focuses on the algorithm of learning with a<br />

backpropagation of error and describes the system of the inverted pendulum. For the inverted<br />

pendulum model, the neural networks are designed, where the individual suggested topologies are<br />

simulated in the Stuttgard Neural Network Simulator (SNNS). The results are evaluated and<br />

compared with each topology of neural network. The best designed solution is applied to the<br />

control of the inverted pendulum model.


Čestné vyhlásenie<br />

Vyhlasujem, že som celú bakalársku prácu vypracoval samostatne s použitím uvedenej<br />

odbornej literatúry.<br />

Košice, 15.06.2009<br />

..........................................<br />

vlastnoručný podpis


Poďakovanie<br />

Týmto sa chcem poďakovať vedúcemu práce za pripomienky a odbornú pomoc pri<br />

vypracovaní práce.


Obsah<br />

Zoznam symbolov a skratiek.......................................................................................................9<br />

Úvod.............................................................................................................................................10<br />

1 Úvod do riadenia neurónovou sieťou ................................................................................11<br />

1.1 Učenie so spätným šírením chyby..................................................................................12<br />

2 Úvod do problematiky <strong>inverzného</strong> <strong>kyvadla</strong>......................................................................15<br />

2.1 Model <strong>inverzného</strong> <strong>kyvadla</strong>..............................................................................................20<br />

3 Návrh systému pre riadenie <strong>inverzného</strong> <strong>kyvadla</strong> <strong>pomocou</strong> neurónovej siete................21<br />

3.1 Model <strong>inverzného</strong> <strong>kyvadla</strong>..............................................................................................21<br />

3.2 Návrh riadenia virtuálneho modelu <strong>kyvadla</strong>...................................................................21<br />

3.3 Množina trénovacich a testovacích dát...........................................................................26<br />

4 Overenie výsledkov návrhu................................................................................................28<br />

4.1 Topológie NN so šiestimi vstupmi a s jedným výstupom...............................................28<br />

4.2 Topológia NN zo šiestimi vstupmi a s dvoma výstupmi................................................34<br />

4.3 Topológia NN so šiestimi vstupmi a s tromi výstupmi...................................................39<br />

5 Vyber najvhodnejšieho riešenia..........................................................................................44<br />

6 Implementácia neurónovej siete na model <strong>inverzného</strong> <strong>kyvadla</strong>......................................46<br />

7 Záver.....................................................................................................................................49<br />

Zoznam použitej literatúry........................................................................................................50<br />

Prílohy.........................................................................................................................................51


FEI KKUI<br />

Zoznam symbolov a skratiek<br />

M hmotnosť vozíka<br />

m hmotnosť <strong>kyvadla</strong><br />

F sila pôsobiaca na vozík<br />

g gravitačné zrýchlenie<br />

l dĺžka <strong>kyvadla</strong><br />

x dráha vozíka<br />

x' rýchlosť vozíka<br />

x'' zrýchlenie vozíka<br />

θ uhol vychýlenia <strong>kyvadla</strong><br />

θ' uhlová rýchlosť <strong>kyvadla</strong><br />

θ'' uhlové zrýchlenie <strong>kyvadla</strong><br />

b trecia sila pôsobiaca na vozík<br />

I trecia sila pôsobiaca na kyvadlo<br />

9


FEI KKUI<br />

Úvod<br />

V oblasti riadenia a regulácie je neodmysliteľnou súčasťou systémov vo<br />

všeobecnosti regulátor, alebo takzvaný akčný člen, ktorého parametre musia presne<br />

vyhovovať pre daný riadený systém. Na to, aby sme vedeli na základe stanovených<br />

požiadaviek navrhnúť regulátor pre systém, musíme poznať riadený systém a<br />

potrebujeme poznať technológie, na základe ktorých vieme navrhnúť daný regulátor. V<br />

našom prípade sa budeme zaoberať s neuroriadením, pretože táto problematika je pre<br />

nás zaujímavá a veľmi rozšírená, tak sa pokúsime bližšie zoznámiť z možnosťami a<br />

princípom takéhoto riadenia na modeli <strong>inverzného</strong> <strong>kyvadla</strong>.<br />

10


FEI KKUI<br />

1 Úvod do riadenia neurónovou sieťou<br />

<strong>Riadenie</strong> je taká činnosť, ktorou sa snažíme pôsobiť na systém tak, aby sme<br />

pôsobili na akčný člen žiadanými hodnotami. Existuje viacero definícií pre riadenie, ale<br />

dôležité je uvedomiť si, čo je riadenie a čo umožňuje.<br />

Na procese riadenia sa zúčastňujú:<br />

– riadený systém (je to systém ktorý chceme riadiť),<br />

– riadiaci systém (je to regulátor, ktorým chceme riadiť systém),<br />

– signály, <strong>pomocou</strong> ktorých prebieha komunikácia medzi zúčastnenými<br />

systémami.<br />

– cieľ riadenia, ktorý dáva procesu riadenia zmysel,<br />

– prostredie, v ktorom sa riadenie uskutočňuje a ktoré na neho vplýva, ako sú<br />

napríklad poruchy rôzneho charakteru.<br />

Existuje niekoľko paradigiem riadenia, ale kvôli prehľadu vymenujeme len tie základné<br />

a neskôr sa zameriame v ďalších kapitolách len na jednu paradigmu.<br />

– kompenzačné riadenie,<br />

– spätnoväzobné riadenie,<br />

– riadenie s modelom,<br />

– adaptívne riadenie,<br />

– centralizované a decentralizované riadenie,<br />

– riadenie zložitých systémov,<br />

– lineárne riadenie,<br />

– riadenie systémov s diskrétnymi udalosťami,<br />

– neuroriadenie.<br />

11


FEI KKUI<br />

V súčastnosti je výskum v oblasti riadenia na takej úrovni, že máme pred sebou<br />

širokú škálu možností, z ktorých môžeme vybrať vhodnú technológiu riadenia na daný<br />

riadený systém. Preto jednou z možností riadenia systémov je neuroriadenie, kde takéto<br />

riadenie je aplikované neurónovou sieťou. Neurónové siete sa postupne dostávajú na<br />

úroveň všeobecného riadenia, čo umožňuje rôznorodé využitie v oblasti riadenia.<br />

Neurónová sieť NN (Nueral Network) je zložitý systém, ktorého hlavnými<br />

vlastnosťami sú: nelinearita, čo predurčuje na použite nielen v prostredí linearných<br />

systémov, ale aj v prostredí nelineárnych systémov [1]. Neurónová sieť patrí do systému<br />

MIMO (Multiple Input Multiple Output), teda umožňuje riadenie systémov s veľkým<br />

počtom vstupov a výstupov. Prirodzenou schopnosť všetkých NN je schopnosť učiť sa a<br />

adaptovať sa.<br />

Existujú dva pohľady na objekt ,,Neurónová sieť“. Štandardný je ten, podľa<br />

ktorého je neurónová sieť modelom mozgu, prípadne nervovej sústavy. Ďalší však je<br />

iný, matematicky orientovaný pohľad, podľa ktorého tvoria neurónové siete triedu<br />

algoritmov pre paralelne distribuované spracovanie dát (Parallel Distributed<br />

Processing) a vlastne nejaký univerzálny matematický nástroj. Neurónové siete<br />

môžeme kategorizovať podľa učiaceho algoritmu na viaceré skupiny, z dôvodu rozsahu<br />

práce sa zameriame na učiaci algoritmus: učenie so spätným šírením chyby<br />

(Backpropagation of error). Viac teórie o <strong>neurónových</strong> sietiach nebudeme rozvádzať,<br />

pretože by to malo širší rozsah, ale pre záujem si môžete pozrieť v nasledujúcej<br />

bibliografii [1].<br />

1.1 Učenie so spätným šírením chyby<br />

V súčasností je veľká väčšina aplikácií založená na tomto učiacom sa algoritme<br />

(backpropagation, error backpropagation, backpropagation of error). Je považovaný za<br />

základný učiaci sa algoritmus. Ide o rekurzívnu gradientovú metódu na nastavenie váh<br />

neurónovej siete s ohľadom na minimalizáciu učiacej chyby J, ktorá je definovaná<br />

vzťahom:<br />

1 0 N<br />

∑<br />

i=<br />

1<br />

p<br />

p p 2<br />

J = ( evi<br />

− xi<br />

) . (1)<br />

2<br />

12


FEI KKUI<br />

Kde N0 je počet výstupných neurónov v sieti, evi je požadovaná hodnota aktivácie<br />

i-tého neurónu, xi je aktivácia i-tého neurónu a index p znamená, že údaj sa vzťahuje k<br />

p-tej vzorke. Pre každý neurón platí:<br />

M<br />

∑<br />

j = 1<br />

x i = fi<br />

( ii<br />

) ii = wij<br />

x j + θ i.<br />

(2)<br />

Kde ii je vstup i-tého neurónu, fi je aktivačná funkcia i-tého neurónu, M je počet<br />

liniek vstupujúcich do i-tého neurónu, wij je váha na linke z j-tého neurónu do i-tého<br />

neurónu a θi je prah i-tého neurónu (externý vstup neurónu). Keďže ide o gradientovú<br />

metódu, pre zmenu váhy Δwij platí:<br />

∂ J ∂ J ∂ ii<br />

Δ wij = − γ = − γ<br />

= γ δ ix<br />

j , (3)<br />

∂ w ∂ i ∂ w<br />

ij<br />

kde γ je konštanta udávajúca rýchlosť zmeny váh (learning rate) a pre δi platí:<br />

Ak je i-tý neurón výstupný, tak platí:<br />

Ak je i-tý neurón nie je výstupný, tak platí:<br />

δ<br />

i<br />

∑<br />

= − f ′ ( i )<br />

∂ J ∂ J ∂ xi<br />

∂ J<br />

δ i = − = −<br />

= − f ′ ( ii<br />

). (4)<br />

∂ i ∂ x i ∂ x<br />

i<br />

i<br />

i<br />

∂ J<br />

δ i = − f ′ ( ii<br />

) = ( evi<br />

− xi<br />

) f ′ ( ii<br />

). (5)<br />

∂ x<br />

∑<br />

= − f ′ ( i )<br />

i<br />

i<br />

Nh<br />

Nh<br />

h= 1 h<br />

∂ J<br />

w<br />

∂ i<br />

h= 1 h<br />

i<br />

∂ J ∂ ih<br />

= − f ′ ( ii<br />

) ∑<br />

∂ i ∂ x<br />

hi<br />

=<br />

i<br />

f ′ ( i )<br />

i<br />

Nh<br />

∑<br />

h=<br />

1<br />

δ<br />

i<br />

,<br />

ij<br />

i<br />

∂ J<br />

∂ i<br />

h= 1 h<br />

h<br />

Nh<br />

w<br />

hi<br />

∂<br />

∂ x<br />

Ni<br />

∑<br />

i i=<br />

1<br />

kde Nh je počet neurónov, do ktorých vedú z i-tého neurónu linky a ih sú vstupy týchto<br />

neurónov. Ni je počet neurónov, z ktorých vedú linky do neurónov so vstupmi ih a xi sú<br />

aktivácie týchto neurónov.<br />

Posledný vzťah je základným vzťahom backpropagation a vyjadruje rekurzívne spätné<br />

šírenie chybového signálu δ od výstupných neurónov až po vstup siete. Z hodnoty tohto<br />

signálu na jednotlivých neurónoch sa potom odvádza zmena váh na linkách Δij= γδi xi. Je<br />

vidíme, že backpropagation je veľmi univerzálny algoritmus. Od aktivačnej funkcie<br />

požaduje iba znalosť jej derivácie. Učiacu chybu, od ktorej sa odvádza celé učenie, v<br />

13<br />

w<br />

hi<br />

x<br />

i<br />

=<br />

(6)


FEI KKUI<br />

podstate je tiež možné predefinovať bez podstatných zmien v algoritme. Uvedená<br />

použitá teória je prevzatá z [3].<br />

14


FEI KKUI<br />

2 Úvod do problematiky <strong>inverzného</strong> <strong>kyvadla</strong><br />

Princíp <strong>inverzného</strong> <strong>kyvadla</strong><br />

Inverzné kyvadlo môže byť realizované viacerými spôsobmi. Zameriame sa na<br />

typ <strong>inverzného</strong> <strong>kyvadla</strong>, ktoré je na vozíku. Na vrchu vozíka je pripevnená tyč jedným<br />

koncom o pohyblivý čap. Je to systém s dvoma stupňami voľnosti, s posuvným a<br />

rotačným. Tyč nemusí mať konštantnú dĺžku a hmotnosť, kde tieto parametre sú<br />

sústredené na konci tyče. Pre lepšiu predstavu <strong>inverzného</strong> <strong>kyvadla</strong> je zobrazené na obr.<br />

1. Toto kyvadlo z pohľadu riadenia môžeme nazvať riadeným systémom, ktorý zatiaľ<br />

nemá riešené riadenie.<br />

Funkcia <strong>inverzného</strong> <strong>kyvadla</strong> spočíva pôsobením silou na vozík z jednej alebo z<br />

druhej strany, čím sa vozík posúva po dráhe. Pripevnená tyč na pohyblivom čape<br />

balansuje po rovine, ktorá je kolmá na dráhu vozíka. Pôsobením silou na vozík sa<br />

snažíme udržať balansujúcu tyč v kolmej polohe voči dráhe vozíka.<br />

Obr. 1: Inverzné kyvadlo na vozíku, na vrchu vozíka je pripevnená tyč jedným koncom o<br />

pohyblivý čap. Je to systém s dvoma stupňami voľnosti, s posuvným a rotačným. Tyč nemusí mať<br />

konštantnú dĺžku a hmotnosť, kde tieto parametre sú sústredené na konci tyče.<br />

15<br />

čap


FEI KKUI<br />

Popis <strong>kyvadla</strong><br />

Tento systém vieme popísať niekoľkými spôsobmi, buď Lagrange-Eulerovou<br />

rovnicou <strong>pomocou</strong> rozdielu kinetickej energie a potenciálnej energie viď. [2], alebo<br />

<strong>pomocou</strong> síl a vektorov pôsobiacich na kyvadlo obr. 2 viď.[5].<br />

F<br />

mg<br />

Teda vychádzame zo súčtu síl pôsobiacich na kyvadlo:<br />

m<br />

Obr. 2: Popis jednotlivých zložiek pôsobiacich<br />

na inverzné kyvadlo<br />

M x<br />

+ bx<br />

+ N = F,<br />

(7)<br />

výsledná sila F je rovná sume síl pôsobiacich na vozík pri horizontálnom (vodorovnom)<br />

posune vozíka. Teda M x<br />

je sila vozíka, b x je trecia sila pôsobiaca proti vozíku a vektor<br />

N je sila, ktorá pôsobí z horizontálneho vychýlenia tyče na vozík. Teda tento vektor N<br />

viď. obr. 3 a 4 je rovný nasledujúcim zložkám, ktoré pôsobia na tyč <strong>kyvadla</strong>:<br />

2<br />

N = mx<br />

+ mlθ<br />

cosθ<br />

− mlθ<br />

sin θ , (8)<br />

kde θ 2<br />

ml cosθ<br />

je sila <strong>kyvadla</strong> a ml θ sin θ je odstredivá sila <strong>kyvadla</strong>.<br />

l<br />

θ<br />

M<br />

16<br />

x<br />

čap<br />

bx'


FEI KKUI<br />

Teraz zavedieme substitúciu do prvej rovnice (7) za N dosadíme druhú rovnicu (8)<br />

a po úprave dostávam pre tento systém prvú pohybovú rovnicu v tvare:<br />

2<br />

( M + m)<br />

x<br />

+ bx<br />

+ mlθ<br />

cosθ<br />

− mlθ<br />

sin θ = F.<br />

(9)<br />

m<br />

F<br />

Iθ' 2<br />

l/2<br />

N<br />

mg<br />

I<br />

N<br />

θ<br />

P<br />

Obr. 4: Popis zložiek na tyči <strong>inverzného</strong> <strong>kyvadla</strong><br />

17<br />

M<br />

Obr. 3: Zobrazenie síl pôsobiacich na vozík<br />

P<br />

Iθ''<br />

x''<br />

x<br />

x<br />

čap<br />

b x


FEI KKUI<br />

Druhú pohybovú rovnicu získame sumou síl pôsobiacich kmitavo na kyvadlo. Z<br />

obrázka obr. 3 popíšeme nasledujúcu rovnicu:<br />

Psin θ + N cosθ<br />

− mg sin θ = mlθ<br />

+ mx<br />

cosθ<br />

. (10)<br />

Aby sme zjednodušili výpočet, musíme sa zbaviť vektorov P a N v rovnici.<br />

Urobíme sumu momentov okolo stredu <strong>kyvadla</strong> a dostaneme:<br />

rovnicu:<br />

− Pl sin θ − Nl cosθ<br />

= Iθ.<br />

(11)<br />

Kombináciou týchto dvoch rovníc (10) a (11) dostaneme druhú dynamickú<br />

2<br />

( I + ml ) θ + mgl sin θ = − mlx<br />

cosθ<br />

. (12)<br />

Z týchto dvoch pohybových rovníc (9) a (12) dostaneme prenosovú funkciu<br />

systému, ktorú linearizujeme analyticky. Najprv urobíme Laplaceovú transformáciu<br />

týchto pohybových rovníc.<br />

( I + ml<br />

2<br />

) Φ ( s)<br />

s<br />

( M + m)<br />

X ( s)<br />

s<br />

2<br />

2<br />

2<br />

− mglΦ<br />

( s)<br />

= mlX ( s)<br />

s<br />

2<br />

+ bxX ( s)<br />

s − mlΦ<br />

( s)<br />

s = U ( s).<br />

(13)<br />

Počas vyjadrenia prenosovej funkcie predpokladáme, že počiatočné podmienky<br />

budú nulové. Na uhol Φ sa budeme pozerať ako na výstup a dostaneme X(s):<br />

2<br />

⎡ ( I + ml ) g ⎤<br />

X ( s)<br />

= ⎢<br />

− Φ ( s),<br />

2 ⎥<br />

(14)<br />

⎣ ml s ⎦<br />

18


FEI KKUI<br />

v druhej rovnici (13) za X(s) dosadíme rovnicu (14) a dostaneme:<br />

2<br />

2<br />

⎡ ( I + ml ) g ⎤ 2 ⎡ ( I + ml ) g ⎤<br />

2<br />

( M + m)<br />

⎢<br />

− ⎥ Φ ( s)<br />

s + b⎢<br />

− ⎥ Φ ( s)<br />

s − mlΦ<br />

( s)<br />

s = U ( s),<br />

(15)<br />

⎣ ml s ⎦<br />

⎣ ml s ⎦<br />

Φ(s) musíme prehodiť na pravú stranu a po úprave dostaneme:<br />

kde<br />

Φ ( s)<br />

=<br />

U ( s)<br />

s<br />

4<br />

2<br />

b(<br />

I + ml ) 3<br />

+ s −<br />

q<br />

ml 2<br />

s<br />

q<br />

( M + m)<br />

mgl 2<br />

s −<br />

q<br />

,<br />

bmgl<br />

s<br />

q<br />

2<br />

2<br />

q = [ ( M + m)(<br />

I + ml ) − ( ml)<br />

]. (17)<br />

Z prenosovej funkcie uvedenej vyššie (16) môžeme dva póly a nuly v originály<br />

vykrátiť. Z toho dostaneme prenosovú funkciu pre inverzné kyvadlo:<br />

Φ ( s)<br />

=<br />

U ( s)<br />

Tieto použité vzťahy sú prevzaté z [5].<br />

s<br />

3<br />

2<br />

b(<br />

I + ml ) 2<br />

+ s −<br />

q<br />

ml<br />

s<br />

q<br />

( M + m)<br />

mgl<br />

s<br />

q<br />

−<br />

19<br />

. (18)<br />

bmgl<br />

q<br />

(16)


FEI KKUI<br />

2.1 Model <strong>inverzného</strong> <strong>kyvadla</strong><br />

Pre virtuálny model <strong>inverzného</strong> <strong>kyvadla</strong> sme použili už vytvorený model na<br />

základe predchádzajúceho popisu systému. Model <strong>kyvadla</strong> je programovaný pre<br />

platformu Linux v jazyku C. Využíva staršie grafické rozhranie Motif – z historického<br />

pohľadu patril Motif medzi prvé grafické používateľské rozhrania (GUI – Grafical user<br />

interface) Unixovských systémoch v 80-tich rokoch 20-ho storočia. Ukážka modelu je<br />

na obr. 5.<br />

Obr. 5: Ukážka modelu <strong>inverzného</strong> <strong>kyvadla</strong>. Program je stiahnuteľný [11] na základe<br />

licenčných podmienok, viď. v prílohe systémovú príručku. Model je ovládaný myšou, <strong>pomocou</strong><br />

klikania vľavo alebo vpravo dokážete udržať kyvadlo v kolmej polohe voči dráhe vozýka.<br />

20


FEI KKUI<br />

3 Návrh systému pre riadenie <strong>inverzného</strong> <strong>kyvadla</strong><br />

<strong>pomocou</strong> neurónovej siete<br />

3.1 Model <strong>inverzného</strong> <strong>kyvadla</strong><br />

Kompilácia a spustenie virtuálneho modelu<br />

Použitý model <strong>inverzného</strong> <strong>kyvadla</strong> je hotové riešenie, teda voľne dostupný balík<br />

so zdrojovým kódom, ktorý je potrebné nainštalovať pod operačným systémom Linux.<br />

Balík obsahuje okrem zdrojového kódu aj make-file a inštrukcie pre kompiláciu a<br />

spustenie. Zdrojové kódy virtuálneho <strong>kyvadla</strong> skompilujeme Linuxovským<br />

kompilátorom. Spustenie aplikácie modelu bez nainštalovania balíčka s grafickým<br />

používateľským rozhraním (GUI) Motif nie je možné, pretože aplikácia využíva<br />

knižnicu Xlib, tá je podporovaná grafickým používateľským rozhraním Motif. Aby sa<br />

aplikácia mohla spustiť,je potrebné nainštalovať grafické používateľské rozhranie<br />

Motif, ktoré je dostupné na internete pre väčšinu typov Linuxu. Tu sme použili balíček<br />

pre Linux Mandriva: lesstif-devel-0.93.94-12mdv2007.0.i586.rpm. Po inštalácií GUI je<br />

možné spustiť aplikáciu modelu <strong>inverzného</strong> <strong>kyvadla</strong>.<br />

Úprava zdrojových kódov<br />

Ďalšou dôležitou úlohou je preštudovanie zdrojových kódov aplikácie modelu<br />

<strong>inverzného</strong> <strong>kyvadla</strong>. Bolo potrebné zdrojový kód aplikácie upraviť do jednoduchšej<br />

formy, pretože kód obsahoval nevyužité programové funkcie a premenné pre naše<br />

potreby.<br />

3.2 Návrh riadenia virtuálneho modelu <strong>kyvadla</strong><br />

Voľba vstupných a výstupných veličín<br />

Dôležitou súčasťou návrhu riadenia je definovanie vstupov a výstupov pre riadenie<br />

<strong>inverzného</strong> <strong>kyvadla</strong>. Vstupnými veličinami, od ktorých je výstup závislý, bude: poloha<br />

vozíka - x, rýchlosť vozíka – x', zrýchlenie vozíka – x'', uhol posunu <strong>kyvadla</strong> – θ, uhlová<br />

rýchlosť <strong>kyvadla</strong> – θ' a uhlové zrýchlenie <strong>kyvadla</strong> - θ''. Výstupom z neurónovej siete je<br />

sila pôsobenia na vozík – F. Detailnejšie je zobrazené na obr. 6.<br />

21


FEI KKUI<br />

Odchýlka <strong>kyvadla</strong><br />

Posun vozíka<br />

x<br />

x'<br />

x”<br />

θ<br />

θ'<br />

θ”<br />

M<br />

Neurónová sieť<br />

Obr. 6: Pohľad na vstupné a výstupné veličiny pre riadenie systému: poloha vozíka - x, rýchlosť<br />

vozíka – x', zrýchlenie vozíka – x'', uhol posunu <strong>kyvadla</strong> – θ, uhlová rýchlosť <strong>kyvadla</strong> – θ' a uhlové<br />

zrýchlenie <strong>kyvadla</strong> - θ''. Výstupom z neurónovej siete je sila pôsobenia na vozík – F.<br />

Návrh topológie pre neurónovú sieť<br />

l<br />

Neuroriadeniu nemusí vyhovovať hneď prvá vybraná topológia neurónovej siete.<br />

Preto sa treba pripraviť na návrh neuroriadenia tak, že musíme počítať s viacerými<br />

alternatívami. Práve vybraná topológia, ktorá sa naprogramuje, nemusí poskytovať<br />

vyhovujúce riadenie pre náš systém. Pre jednoduchosť programovania existuje<br />

Štuttgardský neurónový simulátor, ktorý umožňuje rýchlo odsimulovať navrhnutú<br />

topológiu a <strong>pomocou</strong> trénovacích a testovacích množín, čím dokážeme naučiť a<br />

22<br />

Sila pôsobiaca na vozík<br />

F


FEI KKUI<br />

otestovať neurónovú sieť. Z týchto testov potom dokážeme vyhodnotiť neurónovú sieť<br />

na základe učiacich sa a testovacích chýb, či daná topológia spĺňa naše kritéria.<br />

Topológia sa navrhuje tak, že musíme vedieť koľko vstupov a výstupov budeme<br />

využívať pri neuroriadení nášho systému. Náš systém je ovládaný jedným výstupom a<br />

to je pôsobením konštantnej sily na vozík za čas t+1. Znamená to, že kyvadlo pokiaľ sa<br />

drží v kolmej polohe, nepotrebujeme pôsobiť na systém. V prípade, že nastane<br />

vychýlenie o daný uhol θ, musíme pôsobiť na vozík konštantnou silou do protismeru<br />

výchylky. Pokiaľ pôsobenie s konštantnou silou na vozík raz nestačí, musíme pôsobiť<br />

ešte raz konštantnou silo na vozík a to až dovtedy, kým sa kyvadlo nevráti do kolmej<br />

polohy. Ak sa kyvadlo vychýli na opačnú stranu, pôsobíme na vozík do protismeru<br />

vychýlenia na kyvadlo a postupujeme tak isto ako do opačnej strany.<br />

Z uvedených skutočností teda vyplýva, že riadenie nášho systému bude mať<br />

trojhodnotovú logiku na výstupe neuroriadenia. Vstupom do neuroriadenia sú tieto<br />

veličiny: poloha vozíka, uhol posunu <strong>kyvadla</strong>, rýchlosť vozíka, zrýchlenie vozíka,<br />

uhlová rýchlosť <strong>kyvadla</strong> a uhlové zrýchlenie <strong>kyvadla</strong>. Tieto veličiny sa dostávajú na<br />

vstup neurónovej siete, teda sieť bude mať šesť vstupov. Na obr. 7 máme načrtnutý<br />

vzhľad neurónovej siete, kde skrytá vrstva je načrtnutá len pre ilustráciu. Rozloženie<br />

skrytej vrstvy bude popísané ďalej. Úrovne výstupného neurónu pre topológiu s jedným<br />

neurónom na výstupe sú naznačené v tabuľke tab. 1.<br />

Tab. 1: Úrovne výstupného neurónu pre topológiu s jedným výstupným neurónom<br />

Pôsobenie na vozík Úroveň výst. neurónu<br />

zľava 0,1<br />

nepôsobí 0,5<br />

zprava 0,9<br />

23


FEI KKUI<br />

Vstupná vrstva Skrytá vrstva Výstupná vrstva<br />

Obr. 7: Návrh topológie nerónovej siete so šiestimi vstupmi a s jedným<br />

výstupom. Skrytá vrstva je zobrazená ilustračne.<br />

Pre ďalšiu alternatívu sme sa rozhodli navrhnúť nerónovú sieť, ktorá má dve<br />

výstupné neuróny a šesť vstupných neurónov (obr. 8). Výstupná logika je riešená tak, že<br />

konštantná sila bude ovládaná do jednej strany jedným výstupným neurónom a druhým<br />

výstupným neurónom bude ovládaná do druhej strany. Pokiaľ nieje potrebné s vozíkom<br />

pohnúť, oba výstupné neuróny budú v rovnakej úrovni, podľa tab. 2.<br />

Vstupná vrstva Skrytá vrstva<br />

Výstupná vrstva<br />

Obr. 8: Návrh topológie nerónovej siete so šiestimi vstupmi a s dvoma<br />

výstupmi. Skrytá vrstva je zobrazená ilustračne.<br />

24


FEI KKUI<br />

Tab. 2: Výstupné hodnoty na výstupných neurónoch<br />

Pôsobenie na<br />

vozík<br />

Hodnota na 1.<br />

výst. neurónu<br />

Hodnota na 2.<br />

výst. neurónu<br />

zľava 0,9 0,1<br />

nepôsobí 0,1 0,1<br />

zprava 0,1 0,9<br />

Poslednou možnou alternatívou je návrh topológie so šiestimi vstupnými neurónmi<br />

a s troma výstupnými neurónmi. Na každú akciu <strong>kyvadla</strong> teda použijeme jeden neurón<br />

obr. 9.<br />

Vstupná vrstva Skrytá vrstva<br />

Výstupná vrstva<br />

Obr. 9: Návrh topológie neurónovej siete so šiestimi vstupmi a s<br />

troma výstupmi. Skrytá vrstva je zobrazená ilustračne.<br />

Skrytej vrstve sa počet neurónov bude pohybovať v každej kombinácií vstupov a<br />

výstupov v počtoch: 0,2,6,12,40 neurónov, to znamená, že získame pätnásť rôznych<br />

topológii <strong>neurónových</strong> sieti. Pre 12 neurónov v skrytej vrstve sa neuróny rozložia do<br />

dvoch skrytých vrstiev po šesť neurónov. Podobným spôsobom sa rozdelí sieť zo 40<br />

neurónmi v skrytej vrstve, takže podelíme 40 neurónov do štyroch skrytých vrstiev po<br />

desať neurónov na jednu skrytú vrstvu.<br />

25


FEI KKUI<br />

3.3 Množina trénovacich a testovacích dát<br />

Získanie trénovacich dát<br />

Množinu trénovacich dát musíme vhodne vybrať, pretože na základe týchto dát<br />

budeme môcť vedieť čo najlepšie naučiť neurónové siete pre navrhované topológie.<br />

Fáza učenia je taká fáza, kde sa do sinaptických váh ukladajú znalosti. Dáta musia byť<br />

navrhnuté podobne ako pri návrhu jednotlivých topológii <strong>neurónových</strong> <strong>sietí</strong>, čiže<br />

napríklad pre topológiu so šiestimi vstupmi a jedným výstupom priradíme šesť<br />

vstupných hodnôt a jednu výstupnú hodnota. Tieto hodnoty považujeme za vzorku z<br />

trénovacej množiny. Pre tieto topológie sme sa rozhodli použiť tisíc vzoriek na<br />

trénovanie každej neurónovej siete.<br />

Návrh testovacích dát<br />

Testovacie dáta sú potrebné na testovanie danej neurónovej siete, čiže na základe<br />

testu vieme zistiť ako úspešne dokáže neurónová sieť vo fáze života využívať znalosti,<br />

ktoré sa naučila počas fázy testovania. Testovacie dáta sa navrhujú z množiny<br />

trénovacich dát tak, že množina testovacích dát tvorí približne dvadsať percent z<br />

trénovacej množiny.<br />

Prispôsobenie aplikácie modelu <strong>inverzného</strong> <strong>kyvadla</strong> pre získanie<br />

trénovacich dát<br />

Pre zjednodušenie získavania trénovacich dát sme pôvodnú aplikáciu modelu<br />

<strong>inverzného</strong> <strong>kyvadla</strong> preprogramovali tak, aby sme pri ručnom ovládaní myšou<br />

generovali trénovaciu množinu pre príslušnú topológiu. Teda pre tri rôzne výstupné<br />

topológie sme vytvorili tri rôzne aplikácie pre generovanie trénovacich dát. Týmto<br />

dátam sa len jednoducho prepíše koncovka súboru .txt na .pat<br />

Testovacia množina sa vytvorí ako bolo spomenuté vyššie z tých dvadsiatich<br />

percent z trénovacej množiny náhodným výberom, čiže pripravíme približne dvesto<br />

vzoriek na testovaciu množinu. Túto testovaciu množinu uložíme s koncovkou .pat,<br />

ktorú vieme načítať do SNNS.<br />

26


FEI KKUI<br />

Výber aktivačnej funkcie pre neurónovú sieť<br />

Aktivačná funkcia pre učiaci sa algoritmus pre Backpropagation je štandardne<br />

sigmoidálna funkcia, ktorá je popísaná vzťahom:<br />

kde α je parameter strmosti sigmoidy.<br />

1<br />

xi = f ( ini<br />

) = ,<br />

− α in (19)<br />

i 1 + e<br />

27


FEI KKUI<br />

4 Overenie výsledkov návrhu<br />

Pre každú topológiu, ktorú overíme <strong>pomocou</strong> neurónového simulátora SNNS,<br />

nastavujeme nasledovné parametre:<br />

- učiací algoritmus je štandardný backpropagation,<br />

- učiací parameter je 0.2,<br />

- inicializácia neurónovej siete je -0.1 až 0.1,<br />

- pre trénovacia množina je použité 1000 vzoriek vid. CD príloha,<br />

- pre testovaciu množinu je použité približne 20 percent z trénovacej množiny vid.<br />

CD príloha.<br />

4.1 Topológie NN so šiestimi vstupmi a s jedným výstupom<br />

Topológia bp 6-0-1<br />

Obr. 10: Topológia NN so šiestimi vstupnými neurónmi a s jedným výstupným<br />

neurónom, bp 6-0-1.<br />

28


FEI KKUI<br />

Obr. 11: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Čierna krivka je chyba učenia NN, červená krivka je testovacia chyba NN. Neurónová sieť sa nič<br />

nenaučila pri tejto topológii. Vidíme, že ani jedna krivka neklesá, ale drží sa rovnako na chybe<br />

22.00 z rozptylom ±1. Táto topológia teda nie je vhodná na riadenie <strong>kyvadla</strong>.<br />

29


FEI KKUI<br />

Topológia 6-2-1<br />

Obr. 12: Topológia NN so šiestimi vstupnými neurónmi, s dvoma neurónmi v<br />

skrytej vrstve a jedným neurónom na výstupe, bp 6-2-1.<br />

Obr. 13: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 20,7 a s rozptylom ±0,5. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 3,05 a s rozptylom ±0,2. Táto neurónová<br />

sieť s topológiou 6-2-1 sa dokázala niečo naučiť. Testovacia krivka ukazuje že chyba testovania je<br />

oveľa nižšia oproti predchádzajúcemu prípadu.<br />

30


FEI KKUI<br />

Topológia 6-6-1<br />

Obr. 14: Topológia NN so šiestimi vstupmi, šesť neurónov v skrytej vrstve a<br />

jeden neurón na výstupe, bp 6-6-1.<br />

Obr. 15: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Pri tejto topológie učiaca krivka s čiernou farbou hore postupne klesá počas učenia, z chyby 22,00<br />

na 15,0 s rozptylom približne ±0,2. Testovacia krivka s červenou farbou dole, klesá s chybou až na<br />

1,8 s rozptylom približne ±0,2. Tento výsledok je prijateľnejší oproti predchádzajúcim topológiám.<br />

31


FEI KKUI<br />

Topológia 6-12-1<br />

Obr. 16: Topológia NN so šiestimi vstupnými neurónmi, dvanásť neurónov vo<br />

skrytej vrstve a jeden neurón na výstupe, bp 6-12-1.<br />

Obr. 17: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka s čiernou farbou hore postupne klesá počas učenia až na chyby 5,50 s rozptylom<br />

približne ±0,2. Testovacia krivka s červenou farbou dole, klesá s chybou až na 0,7 s rozptylom<br />

približne ±0,2. Z kriviek vidíme, že aj táto topológia patrí medi zhodné riešenia riadenia <strong>kyvadla</strong>.<br />

32


FEI KKUI<br />

Topológia 6-40-1<br />

Obr. 18: Topológia NN so šiestimi neurónmi na vstupe, štyridsať neurónov v<br />

skrytej vrstve a jeden neurón na výstupe, bp 6-40-1.<br />

Obr. 19: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka s čiernou farbou hore, postupne klesá počas učenia na 1,30 s rozptylom ±0,3.<br />

Testovacia krivka s červenou farbou dole, klesá s chybou až na 0,2 s rozptylom ±0,15. Tento<br />

výsledok je najlepší oproti predchádzajúcim topológiam. Túto topológiu môžeme započítať do<br />

jednej alternatív riešenia pre náš systém.<br />

33


FEI KKUI<br />

4.2 Topológia NN zo šiestimi vstupmi a s dvoma výstupmi<br />

Topológia 6-0-2<br />

Obr. 20: Topológia NN so šiestimi vstupnými neurónmi a s dvomi výstupnými<br />

neurónmi, bp 6-0-2.<br />

Obr. 21: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia 97,0 a rozptylom ±0,5. Nižšie červenou farbou je<br />

krivka testovania s chybou približne 15,50 a s rozptylom ±0,5. Takáto topológia nepriniesla veľmi<br />

uspokojivé výsledky, NN sa dokáže niečo naučiť, ale so slabými výsledkami.<br />

34


FEI KKUI<br />

Topológia 6-2-2<br />

Obr. 22: Topológia NN so šiestimi vstupmi, s dvoma neurónmi v skrytej<br />

vrstve a s dvomi neurónmi na výstupe, bp 6-2-2.<br />

Obr. 23: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 90,0 a s rozptylom ±2,0. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 14,90 a s rozptylom ±0,2. Takáto topológia<br />

má podobné výsledky ako v predchádzajúcom prípade, NN dokáže sa niečo naučiť, ale so slabými<br />

výsledkami.<br />

35


FEI KKUI<br />

Topológia 6-6-2<br />

Obr. 24: Topológia NN so šiestimi vstupmi, šesť neurónov v skrytej vrstve a dva<br />

neuróny na výstupe, bp 6-6-2.<br />

Obr. 25: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou klesá na chybu učenia približne 58,0 a s rozptylom ±1,0. Nižšie s<br />

červenou farbou je krivka testovania, ktorá má chybou testovania približne 12,0 a s rozptylom ±3,5.<br />

NN dokáže sa niečo naučiť, ale chyba je ešte v tomto prípade veľká.<br />

36


FEI KKUI<br />

Topológia 6-12-2<br />

Obr. 26: Topológia NN so šiestimi vstupnými neurónmi, dvanásť neurónov vo<br />

skrytej vrstve a jeden neurón na výstupe, bp 6-12-2.<br />

Obr. 27: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 37,5 a s rozptylom ±1,5. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 8,3 a s rozptylom ±1,2. NN s touto<br />

topológiou má lepšie výsledky oproti predchádzajúcemu prípadu, postupne tá chybovosť klesá<br />

nárastom počtu neurónov v skrytej vrstve.<br />

37


FEI KKUI<br />

Topológia 6-40-2<br />

Obr. 28: Topológia NN so šiestimi neurónmi na vstupe, štyridsať neurónov v<br />

skrytej vrstve a dva neuróny na výstupe, bp 6-40-2.<br />

Obr. 29: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 9,30 a s rozptylom ±1,1. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 1,85 a s rozptylom ±0,65. NN s touto<br />

topológiou sa dokáže naučiť a zároveň vo fáze života celkom úspešne zvláda riadenie systému. Túto<br />

topológiu môžeme započítať do jednej alternatív riešenia pre náš systém.<br />

38


FEI KKUI<br />

4.3 Topológia NN so šiestimi vstupmi a s tromi výstupmi<br />

Topológia 6-0-3<br />

Obr. 30: Topológia NN so šiestimi vstupnými neurónmi a s tromi<br />

výstupmi neurónmi, bp 6-0-3.<br />

Obr. 31: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 162,0 a s rozptylom ±0,7. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 43,50 a s rozptylom ±0,5. Takáto topológia<br />

nepriniesla veľmi uspokojivé výsledky, NN dokáže sa niečo naučiť, ale so slabými výsledkami.<br />

Chyba učenia je v tomto prípade najvyššia zo všetkých topológii.<br />

39


FEI KKUI<br />

Topológia 6-2-3<br />

Obr. 32: Topológia NN so šiestimi vstupmi, s dvoma neurónmi v skrytej<br />

vrstve a s tromi neurónmi na výstupe, bp 6-2-3.<br />

Obr. 33: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 113,6 a s rozptylom ±1,2. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 25,0 a s rozptylom ±2,5. Takáto topológia<br />

nepriniesla veľmi uspokojivé výsledky, NN dokáže sa niečo naučiť, ale so slabými výsledkami.<br />

40


FEI KKUI<br />

Topológia 6-6-3<br />

Obr. 34: Topológia NN so šiestimi vstupnými neurónmi, šesť neurónov vo<br />

skrytej vrstve a tri neuróny na výstupe, bp 6-6-3.<br />

Obr. 35: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 73,0 a s rozptylom ±2,2. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 17,70 a s rozptylom ±3,4. Takáto topológia<br />

má lepšie výsledky ako predchádzajúce prípady, NN dokáže sa niečo naučiť, ale so slabými<br />

výsledkami.<br />

41


FEI KKUI<br />

Topológia 6-12-3<br />

Obr. 36: Topológia NN so šiestimi vstupnými neurónmi, dvanásť neurónov<br />

vo skrytej vrstve a tri neuróny na výstupe, bp 6-12-3.<br />

Obr. 37: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 30,0 a s rozptylom ±3,5. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 6,10 a s rozptylom ±4,0. Takáto topológia<br />

má lepšie výsledky, táto NN dokáže sa niečo naučiť.<br />

42


FEI KKUI<br />

Topológia 6-40-3<br />

Obr. 38: Topológia NN so šiestimi neurónmi na vstupe, štyridsať neurónov v<br />

skrytej vrstve a tri neuróny na výstupe, bp 6-40-3.<br />

Obr. 39: Na grafe po osi x je počet cyklov a na osi y je chybovosť pri učení alebo testovaní.<br />

Učiaca krivka je čiernou farbou s chybou učenia približne 10,0 a s rozptylom ±4,8. Nižšie s<br />

červenou farbou je krivka testovania s chybou približne 2,90 a s rozptylom ±1,5. Takáto topológia<br />

má najlepšie výsledky spomedzi topológii s tromi výstupmi. Túto topológiu môžeme započítať do<br />

jednej alternatív riešenia pre náš systém.<br />

43


FEI KKUI<br />

5 Vyber najvhodnejšieho riešenia<br />

Výsledky testov pre topológie <strong>neurónových</strong> <strong>sietí</strong> sme zhrnuli pre prehľad do<br />

tabuľky tab.3, kde pre lepší prehľad sú tri najlepšie výsledky vyznačené v tejto tabuľke.<br />

Z tohto množstva experimentov vyplýva, že sme vybrali tri najvhodnejšie riešenia, ktoré<br />

by zvládli úspešne riadenie nášho modelu. Vyhovujúcim riešením je NN s topológiou<br />

bp 6-40-3 obr. 38, s chybou učenia približne 10,0 a s rozptylom ±4,8. Chyba testov je<br />

2,90 a s rozptylom ±1,5. Druhá vhodnejšia alternatíva je topológia s NN pb 6-40-2 obr.<br />

28 s chybou učenia približne 9,30 a s rozptylom ±1,1. Chyba testovania je 1,85 a s<br />

rozptylom ±0,65. Najvýhodnejšou možnosťou je NN s topológiou bp 6-40-1 obr. 18 s<br />

chybou učenia na 1,30 a s rozptylom ±0,3. Chyba testovania je 0,2 s rozptylom<br />

približne ±0,15.<br />

Tab. 3: Zhrnutie výsledkov testov pre jednotlivé topológie<br />

Topológia NN Chyba pri učení Chyba pri testovaní<br />

bp 6-0-1 22 ±1 22 ±0,5<br />

bp 6-2-1 20,7 ±0,5 3,05 ±0,2<br />

bp 6-6-1 15,0 ±0,2 1,8 ±0,2<br />

bp 6-12-1 5,50 ±0,2 0,7 ±0,2<br />

bp 6-40-1 1,3 ±0,3 0,2 ±0,15<br />

bp 6-0-2 97,0 ±0,5 15,50 ±0,5<br />

bp 6-2-2 90,0 ±2,0 14,90 ±0,2<br />

bp 6-6-2 58,0 ±1,0 12,0 ±3,5<br />

bp 6-12-2 9,30 ±1,1 1,85 ±0,65<br />

bp 6-40-2 9,3 ±1,1 1,85 ±0,65<br />

bp 6-0-3 162,0 ±0,7 43,50 ±0,5<br />

bp 6-2-3 113,6 ±1,2 25,0 ±2,5<br />

bp 6-6-3 73,0 ±2,2 17,70 ±3,4<br />

bp 6-12-3 30,0 ±3,5 6,10 ±4,0<br />

bp 6-40-3 10 ±4,8 2,9 ±1,5<br />

44


FEI KKUI<br />

Na riadenie modelu <strong>inverzného</strong> <strong>kyvadla</strong> navrhujeme topológiu neurónovej siete pb 6-<br />

40-1, pretože táto topológia má najlepšie parametre. Najhoršia topológia je bp 6-0-1,<br />

pretože táto topológia sa nič nenaučila počas fáze učenia.<br />

45


FEI KKUI<br />

6 Implementácia neurónovej siete na model<br />

<strong>inverzného</strong> <strong>kyvadla</strong><br />

Pre model <strong>inverzného</strong> <strong>kyvadla</strong> sme sa rozhodli použiť neurónovú sieť, ktorá má<br />

najlepšie parametre, teda sme vybrali z topológiou bp-6-40-1 obr. 18. Táto neurónová<br />

sieť je po naučení v SNNS uložená do súboru bp5.net. Tento súbor potrebujeme<br />

prekonvertovať do zdrojového kódu, ktorý je použiteľný pre aplikáciu <strong>inverzného</strong><br />

<strong>kyvadla</strong>. Pomocou snns2c súbor bp5.net prekonvertujeme do zdrojového súboru bp5.c a<br />

bp5.h, ktoré môžeme do modelu <strong>kyvadla</strong> dopracovať pre neuroriadenie touto vybranou<br />

topológiou. Dopracovanie neurónovej siete urobíme tak, že vstupy <strong>kyvadla</strong> privádzame<br />

na vstup NN a výstup z NN využijeme pre riadenie <strong>kyvadla</strong> viď, obr. 40.<br />

Odchýlka <strong>kyvadla</strong><br />

Posun vozíka<br />

x<br />

x'<br />

x”<br />

θ<br />

θ'<br />

θ”<br />

l<br />

M<br />

Neurónová sieť<br />

Obr. 40: Pripojenie neurónovej siete na riadenie <strong>inverzného</strong> <strong>kyvadla</strong><br />

46<br />

Sila pôsobiaca na vozík<br />

F


FEI KKUI<br />

Start<br />

Incializácia kontextu<br />

draw_track()<br />

Vstupné udalosti<br />

Je stalčeny reset?<br />

update_pole()<br />

calc_derivs()<br />

bp5() - volanie NN<br />

draw_state()<br />

nie<br />

show_state()<br />

Koniec<br />

ano<br />

Obr. 41: Zakomponovanie zdrojového kódu pre NN do hlavného programu <strong>inverzného</strong><br />

<strong>kyvadla</strong><br />

47<br />

Hlavný cyklus<br />

reset(context)<br />

Zakomponovanie NN do programu pre<br />

riadenie <strong>inverzného</strong> <strong>kyvadla</strong>


FEI KKUI<br />

V hlavnom programe sa doplní do funkcie update_pole() volanie funkcie pre<br />

neurónovú sieť ako je principiálne grafický znázornené na obr. 41. Netreba zabudnúť<br />

správne podávanie parametrov medzi funkciami. Výsledkom dostaneme inverzné<br />

kyvadlo, ktoré je ovládané neurónovou sieťou. Celkový výsledok riadeného modelu<br />

<strong>inverzného</strong> <strong>kyvadla</strong> <strong>pomocou</strong> neurónovej siete je možné pozrieť v CD prílohe nahraté<br />

vo video formáte.<br />

48


FEI KKUI<br />

7 Záver<br />

Cieľom tejto práce bolo navrhnúť riadenie pre model <strong>inverzného</strong> <strong>kyvadla</strong><br />

<strong>pomocou</strong> neurónovou sieťou. Počas návrhu boli testované rôzne topológie <strong>neurónových</strong><br />

<strong>sietí</strong>, ktoré by sa hodili pre riadenie <strong>inverzného</strong> <strong>kyvadla</strong>. Ako ukázali výsledky<br />

experimentov, tak najlepšia možnosť je <strong>pomocou</strong> topológie pb 6-40-1 pozri tab. 3 a<br />

najhoršia topológia bola pb 6-0-1, kde sme mali najslabšie výsledky učenia NN.<br />

49


FEI KKUI<br />

Zoznam použitej literatúry<br />

[1] SINČÁK, Peter – ANDREJKOVÁ, Gabriela: Neurónvé siete : Inžiniersky<br />

prístup (1. diel). Košice : TU-FEI, 1996. 107 s. Elfa<br />

[2] KOPČÍK, Martin: Použitie fuzzy neurónovej siete typu ANFIS na riadenie<br />

vozíka s balansujúcou tyčou (Diplomová práca). Košice: TU-FEI, 1996.<br />

http://www.ai-cit.sk/source/publications/thesis/master_thesis/1996/kopcik/html/<br />

all.html/<br />

[3] JAKŠA, Rudolf: Neuroriadenie: využitie <strong>neurónových</strong> <strong>sietí</strong> v inteligentnom<br />

riadení (Dizertačná práca). Košice : TU-FEI, 1998. http://www.ai-cit.sk/source/<br />

publications/thesis/phd_thesis_prospectuses/1998/jaksa/html/all.html/<br />

[4] MADARÁSZ, Ladislav – BUČKO, Marián – FÖZÖ, Ladislav: Základy<br />

automatického riadenia. Košice : TU-FEI, 2007. 449 s. ISBN 80-8086-042-4<br />

[5] MENSER, William – TILBURY, Dawn : Control Tutorials for Matlab and<br />

Simulink: http://www.engin.umich.edu/class/ctms/<br />

[6] ČUBA, Marián: Použitie <strong>neurónových</strong> <strong>sietí</strong> pri riadení autonómneho vozidla.<br />

Košice: TU-FEI, 2007. (Diplomová práca) http://www.ai-<br />

cit.sk/source/publications/thesis/master_thesis/1997/cuba/html/index.html/<br />

[7] NOSKIEVIČ, Petr: Modelování a identifikace systémú, Ostrava :<br />

MONTANEX, a. s., 1999. 276 s. ISBN 80-7225-030-2<br />

[8] MRÁZIK, František: Ako na neurónové siete, alebo Stuttgart Neural Network<br />

Simulator po slovensky a v praxi... . 2005 : http://www.ist.sk/index.php?<br />

go=clanok&id=4&PHPSESSID=2e6e49c4f9b17d4cfcfc67f163e6d000/<br />

[9] ZELL Andreas: Stuttgart Neural Network Simulator: Developed at University<br />

of Stuttgart, Maintained at University of Tübingen http://www.ra.cs.uni-<br />

tuebingen.de/SNNS/<br />

[10] Maxwell's Stuttgart Neural Network Simulator [SNNS] Tutorial<br />

http://palantir.cs.colby.edu/maxwell/classes/tutorials/snns/<br />

[11] ANDERSON, Chuck - Program pre model <strong>inverzného</strong> <strong>kyvadla</strong>:<br />

http://www.cs.colostate.edu/~anderson/code/<br />

50


FEI KKUI<br />

Prílohy<br />

Príloha A: CD médium – bakalárska práca v elektronickej podobe, prílohy v<br />

elektronickej podobe.<br />

Príloha B: Používateľská príručka<br />

Príloha C: Systémová príručka<br />

51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!