Kinematyka i Dynamika Układów Mechatronicznych | Raport |
---|---|
Wykonali: Tomasz Strzałka, Marek Miodunka | Ocena: |
Przebieg prędkości oraz sygnał z informacją czy robot porusza się po łuku czy też nie generowany jest przed subsystem „Wygeneruj_trapez”. Wyjściami z subsystemu są: „Trapez” czyli przebieg prędkości, „Wygladzony_trapez” czyli przebieg prędkości wygładzony, aby funkcja była różniczkowalna oraz „CzyLuk?” czyli informacja o tym, czy robot porusza się po linii prostej czy po łuku.
Subsystem wygeneruj trapez składa się z pięciu identycznych podsystemów: Etap 1,2,3,4 oraz 5.
Bloczki te przekazują sobie informację o stanie – aktualnej prędkości, tego czy robot znajduje się na łuku oraz czasie. Oprócz tego wejściem do każdego subsystemu są również kluczowe informacje o danym etapie – czas trwania etapu, prędkość końcowa, promień łuku itp. Taka budowa pozwala na dowolne rozszerzanie przebiegu prędkości – wystarczy przekopiować subsystem tworząc Etap 6,7…
Wewnątrz każdego z bloczków „Etap” znajduje się struktura, która pozwala na utworzenie przebiegu danego etapu – na podstawie informacji wejściowych określa czy prędkość ma się zwiększyć, zmniejszyć czy pozostać stała, określa również czy wysłać sygnał o znajdowaniu się na łuku. Ponadto porównuje czas z czasem rozpoczęcia ruchu oraz zakończenia ruchu, tak aby utworzony przebieg odpowiadał naszym oczekiwaniom.
Oprócz tego subsystem „Wygeneruj_trapez” zawiera blok odpowiedzialny za wygładzenie przebiegu. Odpowiada za to blok „Analog filter design”. Filtr Bessela wygładza przebieg sprawiając, że funkcja jest różniczkowalna. Występuje tutaj minimalne opóźnienie, lecz jest na tyle niewielkie, że nie powoduje komplikacji w dalszej części programu.
Za część kinematyczną odpowiada subsystem „Kinematyka”. Wejściami są przebieg prędkości oraz informacja zero-jedynkowa o tym czy robot znajduję się na łuku, a wyjściami wszystkie parametry – położenie, prędkości, kąty alfa1, alfa2, alfa3, beta i theta oraz ich pochodne.
Wnętrze tego subsystemu jest dość proste. Za każdą parę zmiennych (wartość i jej pochodną) odpowiada Function Block oraz Integrator:
Za tą część odpowiada subsystem „Dynamika – Lagrange”. Wejściami są alfa1’, alfa2’, beta oraz beta’, a wyjściami momenty oraz mnożniki.
We wnętrzu subsystemu pierwszym elementem jest wyciągnięciem średniej arytmetycznej z alfa1’ i alfa2’ w celu uzyskania alfa’. Następnie podobnie jak w kinematyce w blokach Function Block liczone są odpowiednie wartości.
Do tej części służy subsystem Dynamika – Maggi. Wejściami do niego są jedynie pochodne kątów alfa1 i alfa2, a wyjściami momenty.
Podobnie jak w przypadku bloków Kinematyka i Dynamika – Lagrange wewnątrz tego bloku znajdują się Function Blocks, które wyliczają odpowiednie wartości.
Poza wyżej wymienionymi subsystemami w programie znajdują się jedynie bloki Scope odpowiedzialne za narysowanie wykresów oraz XY Graph odpowiedzialny za narysowanie toru ruchu robota na płaszczyźnie.
Rozpoczęliśmy od przeprowadzenia symulacji dla niewygładzonego przebiegu prędkości (trapez). Przebieg prędkości oraz informacja o tym czy robot znajduje się na łuku:
Położenie
Prędkości:
Kąty obrotu kół Alfa:
Pochodne kątów Alfa (prędkość obrotowa kół):
Kąt obrotu obudowy i szybkość jego zmiany:
Kąt obrotu koła podpierającego i szybkość jego zmiany:
Tor robota na płaszczyźnie:
Mnożniki Lagrange`a
Porównanie momentów:
Przebieg prędkości i „CzyLuk?”
Położenie:
Prędkości
Kąt obrotu kół Alfa:
Pochodne kątów Alfa (prędkość obrotowa kół):
Kąt obrotu obudowy i szybkość jego zmiany:
Kąt obrotu koła podpierającego i szybkość jego zmiany:
Tor na płaszczyźnie XY:
Mnożniki Lagrange`a:
Porównanie momentów (Maggi – na górze, Lagrange – na dole):
Wykresy momentów osiągnięte metodą Lagrange`a i Maggi`ego można uznać za zbliżone. Wykresy osiągnięte w czasie laboratoriów są podobne, o ile nie takie same jak te zamieszczone w materiale z wykładów, czyli projekt został wykonany poprawnie.
Jedynie wykresy momentów i mnożników różnią się nieznacznie od tych z wykładu. Coraz mocniejsze wygładzanie trapezu prędkości sprawia, że wykresy coraz bardziej przypominają te z wykładu:
Jednak wygładzanie tym filtrem powoduje również opóźnienie w sygnale, co sprawia, że wygładzanie sygnału niekorzystnie odbija się na osiągniętych wynikach. Jedynie niewielkie wygładzenie, jakie zaprezentowano w tym raporcie, pozwala na przeprowadzenie symulacji bez negatywnego wpływu na osiągnięte rezultaty.
Układ identyfikacji przyjęto w postaci:
Zaimplementowano powyższe równanie w Simulinku:
Otrzymano następujące wykresy: