Sprawozdanie wahadło odwrócone

background image

Zachodniopomorski Uniwersytet

Technologiczny

Inteligentne Układy Sterowania

T

EMAT

:

S

YNTEZA NEURONOWEGO REGULATORA OBIEKTU DYNAMICZNEGO

.

(

WAHADŁO ODWRÓCONE

)

Emil Łobocki

Michał Mania

Prowadzący:

Dr Janusz Paplioski

D

ATA ODDANIA

:

O

CENA

:

P

ODPIS

:

Witam panie doktorze, na wstępie chciałem bardzo przeprosid za tak późny termin, zarazem proszę o
wyrozumiałośd, ze względu na moją niedyspozycyjnośd (mieszkam za granicą).

Pierwsze sprawozdanie oddał mój kolega z grupy (widoczny u góry w tabelce), teraz robię to drugie
osobiście zgodnie z umową, odnośnie części drugiej zadania, mieliśmy jej nie poruszad, gdyż nie
przerabialiśmy jej na laboratorium i wykładach, lecz postaram się w miarę sił coś uwzględnid...



1. Model wahadła odwróconego, który powstał w simulinku:

Dane są bezpośrednio imporotwane do workspace w ustawieniach, z pominięciem pliku
pmodel, co pozwala na szybkie ustawienie rządanych wartości.


2. Identyfikacja plików skryptowych appcs1 i appcs2.


Na początku appcs1 (jest to nielinowa identyfikacja obiektu i reguacji) i konfiguracja appcs1b,
zmieniłem w dwóch plikach czas trwania z 4sekund na 6 aby zobaczyd dokładniejszą
stabilizację i późniejsze ewntualne „piki”. Wartości początkowe zmieniamy w pliku appcs1b.

background image

Poniżej standardowe ustawienia czyi 5 stopni wychylenia, krzywa radialna bez zmian czyli 0
(liniowa od samego początku), oraz siła również zerowa.
Wygląda to tak...

angle = 5 * deg2rad;

vel = 0*deg2rad;

force = 0;


Testujemy model dla sieci o 10 neuronach i maxymalnej liczbie literacji 300, lecz po 69
następuje adaptacja...


Otrzymujemy dla odpowiedzi wahadła:

background image

Nie będe wklejał wykresów z otwartej pętli, orazu umieszczę różnicę odpowiedzi wahadła w
stosunku do odpowiedzi pętli sterowania, która jest znakowana krzyżkami na wykresie:


Następnie dla tych samych warunków, lecz dla zamkniętej pętli sterowania:

Wniosek: Wyniki nie różnia się od poprzednio(może nie zauważalnie) ze względu na „dośd”
dobry dobór nastaw, oraz przyuczenia sieci...
Oczywiście wszystkie wyniki, oraz wykresy odnoszą się do stworzenia obiektu, testowania i
przyuczenia go, nie do samego regulatora, gdyż to właśnie obiektem i jego wartościami
wpływamy na regulator.

Teraz spróbujemy, dla większego kątu początkowego oraz zmienimy liczbę neuronów na
trochę wiekszą, powiedzmy z 10 na 20....
Poniżej przedstawię tylko „czystą” odpowiedź wahadła, oraz porównanie odpowiedzi
wahadła względem zamkniętej pętli sterowania, gdyż te wyniki najbardziej nas interesują.
Przedstawiam:
Kąt 45 stopni

angle = 45 * deg2rad;

background image

vel = 0*deg2rad;

force = 0;

Oraz liczbę neuronów na 20

mnet.trainParam.show = 20;

% Frequency of progress displays (in

epochs).

mnet.trainParam.epochs = 300;

% Maximum number of epochs to train.

mnet.trainParam.goal = (0.0037^2);

% Mean-squared error goal.

Otrzymujemy:

Jak poprzednio zakooczone po 69 lieteracjach.

Odpowiedź wahadła, widad zmieniony kąt początkowy, krzywej radialnej (obortowej) nie zmieniałem,
gdyż podczas testowania obiektu mija się to z celem, zawsze będzie taka sama, dopiero przy regulacji
obiektu.

background image


Odpowiedź wahadła do zamkniętej pętli:


Wnioski:
Widzimy wyraźną róźnicę, prędkości obrotowej (radialnej) co jest oczywiście spowodowane innym
kątem początkowym, dużo wyższym, przez co prędkośd jest dużo łagodniejsza już po 2.5 sek
trwania...
W obu przypadkach jest utrzymany rządany kąt przez nas.

3.
Teraz rozpatrzymy sied, czyli obiekt i regulację dla linearyzacji ze sprzężeniem zwrotnym,
Również wykorzystamy do tego celu pomocniczy skrypt, odpowiednio wcześniej do tego
przygotowany. Posłuży nam do tego appcs2 oraz appcs2b.
Tak samo jak wyżej czas zmieniony do 6 sekund z 4.

Sied zawiera 4 warstwy oraz 5 neuronów, maxymalnie wykorzystuję do renowania 600 literacji i tyle
wykorzystała, później zwiększymy ilośd neuronów lecz nie znacznie, aby jej nie przeuczyd co jest
częste przy sprzężeniu zwrotnym, gdysz ma zawsze poprzednie próbki i nie ma potrzeby na
stosowanie dużej liczby neuronów, zwiększymy ilośd literacji czy uda się przyuczyd ją do kooca,ale to
poźniej narazie wygląda to następująco:

Dośd długi czas nauczania jest spowodowany, zmianą czasu z 4 na 6 sekunk, ale dla bezpieczeostwa i
pewności warto tak zmienid i pozostawid.

Niżej rysunek:

background image

Po wykonaniu nauczania, otrzymujemy wykres:


Perfekcyjna regulacja, znacznie szybsza od nieliniowej z poprzedniego zadania, oraz bardzej
dynamiczna i łagodna przy tym. Przy podobnych parametrach (w poprzedniej sieci było 5 stopni,
teraz tutaj mamy 10) bardzo szybki skok prędkości oborotowej, już po 2 sekundach następuje
stabilizacjia do założonego kątu (90 stopni w tym przypadku) oraz prędkośd radialna stabilizuje się do
poziomu bliskiemu zeru, naturalnie gdybyśmy powiększyli wykres w okolicach zera oraz zwiększyli
krok, zauważylibyśmy oscylacje w okolicach zera, gdyż regulator cały czas dąży do utrzymania
założonego kątu wahadła.

Następnie nie zminiając parametrów sieci i regulatora, zmieniy mocno parametry początkowe.
Zwiększymy kąt początkowy na 45 stopni, lecz zmniejszymy prędkośd oborotową, więc wyniki
powinny byd zbliżone do siebie.

background image

To są przedziały wartości w jakich możemy zmieniad parametry:

% angle = [-10:40:190]*deg2rad;

% vel = [-90:36:90]*deg2rad;

% demand = [-180:40:180]*deg2rad;

% angle2 = [-10:10:190]*deg2rad;


Zmieniamy:

angle0 = 45*deg2rad;

vel0 = -20;

init_state = [angle0; vel0];

otrzymujemy:

Widzimy zatem, że wahadło prawidłowo zaeregowało w odwrotnym kierunku, co jest oczywiste, ze
względu na prędkośd obrotową w odrwotnym kierunku, po bardzo podobnym czasie okolo 2 sekund
następuję stabilizacja, troszeczkę wychył ramienia zanim się ustabilizowało jest innymi, niż
przewidywał regulator, lecz jest to spowodowane za malą siłą, poprzez ujemną wartośd obrotową,
oraz dośd duży kąt wychyłu co normalnie jest zaletą, lecz nie tutaj przy użyciu innej prędkości
obrotowej. Reasumując krzywe są poprawne, regulator bardzo dobrze sobie radzi z obiektem.

Teraz wrócimy do poprzedniej konfiguracji, czyli 10 stopni, lecz zmienimi liczbę neuronów na
powiedzmy 15, oraz maksymalną liczbę literacji do 1200. Otrzymamy wówczas:

background image

Proces uczenia przy 15 neuronach, zakooczył się po 634 literacjach, gdyż został osiagnięty najniższy
gradient bliski jedności. Jak zoabczymy niżej na wykresie, regulator działa poprawnie, bez większej
zauważalnej róźnicy, jak przy przpadku wyżej.


Wnioski: jak już opisywałem we wcześniejszych wnioskach, ukł. regulacji ze sprzężeniem zwrotnym,
zachowuję dużo dynamiczniej, szybciej oraz dużo pewniej niz w przypadku regulacji nieliniowej.
Wszystko widad na wykresach oraz wnioskach zamieszczonych wyżej.

4. Teraz przetestujemy program dedykowany, do tego dwiczenia o nazwie mrefrobotarm, jest

to dedykowany program do ramienia robota, który ma pokonad siły bezwładności, tak samo
jak w przypadku wahadła, które badamy w naszym dwiczeniu,
Wcześniej zaimportujemy do niego nasz gotowy model wahadła, przygotowany wcześniej
pod simulinkiem.

Ogólny wygląd programu:

background image

Okno konfiguracji regulatora:


Mieliśmy wykorzystad, nasz model wahadła, oraz jako pkt odniesienia funckję plinear.m którą
wykorzystywaiśmy w poprzednim przykładzie.
Czyli na początku model wahadła pod simulinkiem:

Następnie patrzymy co zawiera funkcja plinear:
Interesuje nas tylko ten człon:

% CALCULATE DERIVATIVES

dangle = vel;

dvel = -9*angle - 6*vel + 9*demand;

ddemand = 0;



background image

Musimy stowrzyd teraz model do tej funkcji lecz pod simulinkiem, wygląda on następująco:

Jak widad wszytkie wartości, nam się zgadzają. To będzie nasz pkt odniesienia.
Na razie zostawiamy ustawienia domyśle w programie i uruchamiamy proces uczenia, oraz
patrzymy na wykres:


Jak widzimy, nałożyłem siatkę o skoku 3 sek na osi X, abyśmy mogli porównad lepiej wartości
osiągane jak w zadaniu wyżej, gdyż własnie po tym czasie następowała stabilizacja. Jak widad
wartości są niemalże identyczne. Osiągana wartośd kąta jest generowana automatycznie co
10 sekund przez generator, oraz losowych wartości osiąganego kąta wahadła... z
uwględnieniem czasu 9 sekund przez model odniesienia zbudowany pod simulinkiem, ze
skryptu plinear.m czyli mamy jedno sekundową przerwę, abyśmy mogli dostrzed ewentulane
zaburzenia sterowania, które akurat tutaj nie występują.

Teraz zmienimy parametry nauczania regulatora, czyli ilośd neuronów oraz warstwy, nie
ruszamy wartości paramtrów maksymalnych i minimlanych , gdyż musielibyśmy odpowiednio
budowad nowy model odniesienia, co jest w tej chwili nam nie potrzebne i nie zrobiłoby to
żadnej róznicy, gdyż własnie te parametry dobiera się pod model odniesienia.

background image

W naszym regulatorze zmieniłem liczbę warstw ukrytych na 20, oraz w obiekcie na 10.
Po czym jest potrzeba wygenerowania danych uczących losowych dla naszego wahadła,
zebrałem 1500 próbek, z deklarowanych wcześniej 10 000 ze wględu na skrócenie czasu,
przerwaem proces i otrrzymałem

Trzy losowo wybrane próbki, do weryfikacji, widad bardzo dokładnie, że proces uczenia
wystarczył w zupelności przy zachowaniu 1500 próbek, gdyż wyjścia wahadła i regulatora są
identyczne, przy różnych danych wejściowych oraz nie powtarzających się błędach.



Nastepnie wykonujemy proces trenowania sieci:

background image


Przy założonej przeze mnie wartości 600 literacji, wystarczyły zaledwie tylko 6 do pomyśłnej
adaptacji, gdzie w poprzednim dwiczeniu potrzebowaiśmy 634.

Generujemy dane dla naszego regulatora:


background image

Następnie trenujemy nasz kontroler... wybrałem aż 30 segmentów, ze względu na dużą ilośd
warstw, dla bezpieczeostwa, aby nie doszło do „nie do trenowania”.
Podczas pracy wgląda to tak, a trwa dłużej niż 30 minut przy bardzo dobrej klasie komputera
z dwu rdzeniowym procesorem. Około 1 minuty na każdy segmet w zależności na liczbę
losowo wybranych epok.


Po skooczonym trenowaniu mamy wyniki, które przedstawię niżej:

Widzimy dośd spore błędy, ze wględu na mała liczbę wcześniejszych próbek, lecz musiałem
się do takiej wartości ograniczyd ze względu na czas, który byłby potrzebny do większej ilości
np. gdybym użył zamiast 1000 próbek, 10 000 każdy segment trwałby około 30 minut razy 30
segmentów to jest około 15 godzin potrzebnych na pełną adaptację. Gdybym ograniczył ilośd
segmentów, sied napewno byłaby nie douczona, ze względu na dużą liczbę warstw.


background image

Po ponownie przeprowadzonej symulacji wyniki:


WNIOSKI:
Niestety sied, jednak jest nie douczcona, lecz gdybyśmy poczekali całe 15 godzin do zebrania
pełnych próbek, sądzad po wykresie, sied mogła by funkjonowad co widad na wykresie, gdyż
podąża dobrą „drogą”. Zyskalibyśmy na czasie stabilizacji, byłby znacznie krótszy, niż
poprzednio co widad po bardzo szybkim i stromym zboczu narastających jak i opadających dla
ujemnych wartości zadanych. Lecz mogły by się pojawid zniekształcenia, oraz drgania całego
układu, co delikatnie widad na wykresie wyżej....
Odnosząc sie do powyższych metod, gdy nie zależy nam na jak najkrótszym czasie osiągniecia
wartości zadanej, zdecydowanie lepszą, wygodniejszą metodą jest metoda nieliniowa, jest
bardzo prosta i równie skuteczna, gdy zależy nam na większej dokładności, zastosujemy
metodę z NN regulatorem, lecz potrzebnę są nam dokładniejsze dane o obiekcie, oraz
musimy przeprwadzid długi i żmudny proces identyfikacji obiektu i regulatora.

KONIEC, mam nadzieję, że wystarczająco wyczerpałem temat.


Wyszukiwarka

Podobne podstrony:
sprawozdanie 1 wahadlo proste
sprawozdanie wahadła
Sprawozdania, Sprawozdanie z wahadłami, Nr ćwiczenia
fizyka, sprawozdanie wahadlo fi Nieznany
Sprawozdanie 3 Wahadło rewersyjne
Sprawozdanie wahadło
Sprawozdanie 1 (Wahadło Fizyczne)
Sprawozdanie 3 wahadło
Wahadlo matematyczne, Studia, pomoc studialna, Fizyka- sprawozdania
Sprawozdanie z fizyki wahadlo proste
fiza sprawko wahadla, sprawozdania
Sprawdzanie twierdzenia Steinera za pomocą wahadła fizycznego, Studia pomieszany burdel, FIZA EGZAMI
Wahadlo torsyjne, Studia, Semestr 1, Fizyka, Sprawozdania
cw 10 - Wyznaczanie przyspieszenia ziemskiego za pomocą wahadła rewersyjnego, Sprawozdania jakieś, F
PRACA PRZEJŚCIOWA Zastosowanie sieci neuronowych w zagadnieniu sterowania odwróconym wahadłem
wahadlo maxela 44, Studia, Semestr 1, Fizyka, Sprawozdania

więcej podobnych podstron