AiR_ais_cw_8_joystick.pdf
(
425 KB
)
Pobierz
292676686 UNPDF
Instrukcja do ćwiczenia nr 8 z Laboratorium Automatyki
1
Ćwiczenie 8.
Joystick force-feedback
Instrukcja do ćwiczenia nr 8 z Laboratorium Automatyki
2
Wstęp.
W skład stanowiska laboratoryjnego wchodzi:
– komputer PC z oprogramowaniem Matlab/Simulink pozwalający na wykonanie pomiarów oraz realizację
algorytmu sterowania,
– joystick Logitech Force 3D Pro będący obiektem sterowania,
– joystick Logitech Extreme 3D Pro służący jako źródło sygnału zadanego.
Rysunek 1. Stanowisko laboratoryjne. Po prawej joystick z force-feedback
Joystick Logitech Force 3D Pro posiada funkcję siłowego sprzężenia zwrotnego (force feedback) – pozwala on
nie tylko na pomiar położenia rękojeści, ale może także wywierać pewną siłę – wystarczającą do poruszania
swobodną
rękojeścią w dwóch wymiarach.
Współpracę z joystickem z poziomu Simulinka umożliwia blok ff-joystick pokazany na rysunku
2.
Sygnałami
wejściowymi dla bloku są wartość siły w osi x oraz siły w osi y. Sygnały wyjściowe to położenie joysticka (port
oznaczony jako „x”), prędkość („v”) i wywierana siła („f”) oraz położenie drugiego joysticka (bez sprzężenia siłowego,
port oznaczony jako "x(noFF)"). Sygnały te zawierają dwie współrzędne – dla osi x i y. Przyjęto, że oś x odpowiada
wychyleniom w lewo/prawo, oś y – wychyleniom do przodu/do tyłu. Aby rozdzielić sygnał na dwie współrzędne należy
skorzystać z bloku demux (położenia wykorzystywanych bloków w bibliotece Simulinka podano na końcu instrukcji),
co pokazano na rysunku.
Instrukcja do ćwiczenia nr 8 z Laboratorium Automatyki
3
Rysunek 2. Blok ff-joystick oraz sygnały wejściowe i wyjściowe
Zakresy wartości poszczególnych sygnałów wynoszą:
– dla położenia – wartości całkowite od -1000 do +1000, co odpowiada wychyleniu o około 15 stopni
odpowiednio w lewo i prawo / do przodu i do tyłu,
– dla sił w obu osiach – wartości całkowite od -10000 do +10000,
– prędkość obliczana jest przy pomocy filtru Golay'a-Savitzky'ego i przyjmuje wartości z zakresu
±1.6⋅10
4.
.
Uwaga.
Działanie algorytmu w Simulinku zawierającego blok ff-joystick jest spowolnione w taki sposób, by
czas symulacji odpowiadał czasowi rzeczywistemu. Komunikacja z joystickiem wykonywana jest co 1/100 sekundy,
stąd w parametrach symulacji (menu Simulation, polecenie Configuration parameters) należy wybrać Type:
Fixed-step
oraz Fixed-step size:
sampletime
. (zmienna
sampletime
powinna zostać zdefiniowana w Matlabie przed uruchomieniem
bloku ff-joystick, wartość: 0.01).
Blok ff-joystick komunikuje się z joystickiem korzystając z dodatkowego programu ff-const (skrót na
pulpicie). Program ten należy uruchomić i pozostawić działający w tle przez cały czas wykonywania ćwiczenia.
Po uruchomieniu Matlaba należy w linii wpisać polecenie:
start_joy
Zadanie 0.
Zapoznać się z działaniem stanowiska laboratoryjnego:
– uruchomić program ff-const,
– uruchomić Matlab i Simulink (w Matlabie wpisać polecenie
Simulink
),
Instrukcja do ćwiczenia nr 8 z Laboratorium Automatyki
4
– utworzyć nowy model (w oknie Simulinka: File > New > Model),
– z odpowiednich bloków złożyć schemat pokazany na rysunku
3,
– ustawić parametry symulacji zgodnie z informacjami podanymi powyżej, wpisać czas zakończenia symulacji
(Stop time) jako
inf,
– uruchomić symulację, zbadać zakresy uzyskiwanych wartości oraz możliwości zadania siły (zmienić wartość
w bloku Constant lub Contant1 na różną od zera, np. 2000).
Rysunek 3.Schemat Simulinka do Zadania 0
Zadanie 1.
Wyznaczenie odpowiedzi skokowej obiektu.
– zmodyfikować schemat z poprzedniego zadania, tak by zadawana w osi x siła zmieniała się skokowo od
wartości zero do wybranej wartości z zakresu 0-10000,
– schemat uzupełnić o blok To Workspace (w ustawieniach bloku wybrać rodzaj danych: Structure with time),
– ustawić joystick w położeniu zerowym (lub bliskim zera) w obu osiach,
– uruchomić symulację i zatrzymać po skoku,
– w Matlabie wykreślić przebieg siły i położenia joysticka w osi x w funkcji czasu:
plot( odp.time, odp.signals.values(:,1), 'r', odp.time,
odp.signals.values(:,2), 'b' )
– sprawdzić jak zależy kształt uzyskiwanej odpowiedzi od amplitudy skoku?
Zadanie 2.
Wyznaczanie charakterystyki statycznej.
Pomiary z siłą zadawaną ręcznie:
– zbudować schemat edytorze Simulink pozwalający na zadawanie dowolnej siły i wykorzystać go do
wyznaczenia 10-20 punktów charakterystyki statycznej joysticka (dla jednej osi)
Instrukcja do ćwiczenia nr 8 z Laboratorium Automatyki
5
– punkty wpisać do Matlaba jako macierz i wykreślić poleceniem plot
Automatyczne wyznaczanie charakterystyki:
– zbudować schemat Simulinka, w którym generowany jest sygnał prostokątny (okres 2s, wypełnienie 50%) o
rosnącej amplitudzie, np. 200, 400, 600, itd. (Można skorzystać np. z bloków Ramp, Quantizer, Pulse
Generator oraz Product)
– wygenerowany sygnał podać jako siłę w osi x joysticka
– zarejestrować w Matlabie zadawaną siłę oraz uzyskiwaną pozycję joysticka (blok To Workspace – zmienić
nazwę zmiennej z "simout" na "pomiar", rodzaj zmiennej: Structure with time)
– skorzystać z pliku steady_char do uzyskania punktów charakterystyki statycznej:
[sU,sY] =steady_char( pomiar.signals.values(:,1), pomiar.signals.values(:,2) )
– powtórzyć pomiary dla ujemnych wartości siły
Zadanie 3.
Wyznaczanie charakterystyki częstotliwościowej.
– schemat z poprzedniego zadania zmodyfikować tak by zadawana była siła o przebiegu sinusoidalnym
– ustalić wartość amplitudy, która zapewnia jak najmniej zniekształcony sygnał na wyjściu
– po wykonaniu pomiaru skorzystać z pliku sin_analyz do wyznaczenia amplitudy (ampl), przesunięcia
fazowego (phi) i okresu (period) sygnału wyjściowego:
[ampl, phi, period] = sin_analyz( pomiar.time, pomiar.signals.values(:,1),
pomiar.signals.values(:,2) );
– pomiary wykonać dla różnych częstotliwości – pamiętając, że próbkowanie jest z okresem 10ms
– wykreślić charakterystyki:
– logarytmiczną amplitudową i fazową (Bodego),
– amplitudowo-fazową (Nyquista)
– uwaga: w celu poprawienia dokładności działania programu sin_analyz można usunąć początkową część
zmierzonego przebiegu, np.: (usuwa początkowe 3 sekundy z pomiaru typu Structure with time)
pomiar = przytnij( pomiar, 3 );
Zadanie 4.
Wyznaczanie prędkości
– zbudować układ pozwalający na obserwowanie prędkości joysticka obliczanej przy pomocy:
a) bloku Derivative z biblioteki Continuous
b) bloku Discrete Derivative z biblioteki Discrete (tylko Matlab >6.5)
c) bloku o transmitancji:
Plik z chomika:
maciek011
Inne pliki z tego folderu:
AiR_ais_cw_6_MRJ3A.pdf
(401 KB)
AiR_ais_cw_7_Fanuc.pdf
(153 KB)
AiR_ais_cw_8_joystick.pdf
(425 KB)
AiR_ais_cw_1_DrRobot.pdf
(325 KB)
AiR_ais_cw_2_Label.pdf
(1942 KB)
Inne foldery tego chomika:
Wykład
Zgłoś jeśli
naruszono regulamin