POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Rok akademicki 2004/2005 PRACA DYPLOMOWA MAGISTERSKA Konrad Wojdan Zaprojektowanie i implementacja regulatorów osi robota IRP6 Kierownik pracy: dr inż. Adam Woźniak 1
SPIS TREŚCI: 1. WSTĘP... 3 2. IDENTYFIKACJA OSI ROBOTA IRP6... 5 2.1. PRZYGOTOWANIE DO IDENTYFIKACJI... 5 2.2. PROCES ZBIERANIA DANYCH... 5 2.3. WYZNACZANIE STAŁYCH CZASOWYCH I WZMOCNIENIA OBIEKTU... 6 2.4. UWZGLĘDNIENIE ZJAWISKA TARCIA... 7 3. WYNIKI IDENTYFIKACJI... 8 3.1. OŚ PIERWSZA TOR JEZDNY... 8 3.2. OŚ DRUGA KOLUMNA OBROTOWA... 16 3.3. OŚ TRZECIA... 26 3.4. OŚ CZWARTA... 33 3.5. OŚ PIĄTA... 40 3.6. OŚ SZÓSTA... 47 3.7. WYBÓR MODELU LINIOWEGO O WŁAŚCIWYM WZMOCNIENIU... 54 3.8. KOMENTARZ DO WYKRESÓW PRĘDKOŚCI ZMIERZONEJ.... 56 3.9. DOMINUJĄCE ZAKŁÓCENIE ZWIĄZANE Z BŁĘDNYM DZIAŁANIEM REZOLWERA... 59 4. PROJEKTOWANIE REGULATORÓW OSI ROBOTA IRP6... 60 4.1. OPIS PROCESU PROJEKTOWANIA UKŁADU REGULACJI NA PRZYKŁADZIE OSI 6... 60 4.1.1. Założenia projektowe... 60 4.1.2. Transmitancja HG(z)... 61 4.1.3. Określenie granic obszaru zabronionego... 62 4.1.4. Charakterystyka pseudoczęstotliwościowa... 63 4.1.5. Zaprojektowanie regulatora, bez zastosowania pomocniczego regulatora PI... 64 4.1.6. Zaprojektowanie pomocniczego regulatora PI... 68 4.1.7. Testowanie regulatora w układzie symulacyjnym... 70 4.1.8. Implementacja w systemie MRROC++... 72 4.1.9. Rzeczywisty przebieg uchybu... 75 5. IMPLEMENTACJA REGUATORÓW OSI ROBOTA IRP6... 76 5.1. IMPLEMENTACJA REGULATORA OSI 1 (TOR JEZDNY)... 77 5.2. IMPLEMENTACJA REGULATORA OSI 2... 93 5.3. IMPLEMENTACJA REGULATORA OSI 3... 109 5.4. IMPLEMENTACJA REGULATORA OSI 4... 126 5.5. IMPLEMENTACJA REGULATORA OSI 5... 143 5.6. IMPLEMENTACJA REGULATORA OSI 6... 160 6. WNIOSKI... 176 7. LITERATURA... 177 8. DODATEK... 178 2
1. WSTĘP Celem pracy jest zaprojektowanie i implementacja regulatorów osi robota IRP6 dla okresu próbkowania wynoszącego 1.04 ms. Robot, z którym będą pracować zaprojektowane w tej pracy regulatory znajduje się na Politechnice Warszawskiej w gmachu Wydziału Elektroniki i Technik Informacyjnych w laboratorium 012. rys.1 Robot IRP6 (na torze jezdnym). Na rys. 1 pokazane jest zdjęcie omawianego robota. Posiada on sześć stopni swobody. Przyjęto, że pierwszy stopień swobody (tor jezdny) jest oznaczony numerem 1, drugi stopień swobody (kolumna obrotowa) jest oznaczony numerem 2 itd.. W osiach robota zaimplementowane są regulatory pracujące z okresem próbkowania 2.08 ms, co oznacza, że sterowanie jest wystawiane co 2.08 ms. Celem tej pracy jest zaprojektowanie regulatorów pracujących z okresem próbkowania 1.04 ms, które byłyby lepsze od dotychczasowych. 3
Poniżej przedstawiono uporządkowaną listę wymagań stawianych przed nowym układem regulacji. Wymaganie o najwyższym priorytecie ma przyporządkowany numer 1, a wymaganie o najniższym priorytecie ma przyporządkowany numer 3. Nowy układ sterowania: 1. Nie powinien powodować uszkodzenia obiektu. Oznacza to, że sterowania wystawiane przez regulator są bezpieczne dla obiektu. 2. Powinien cechować się większą sztywnością niż stary układ regulacji działający z czasem próbkowania 2.08 ms. Warunek ten oznacza, że wychylenie osi robota, pod wpływem działania siłą na wybraną oś, powinno być mniejsze dla nowego układu regulacji. 3. Powinien charakteryzować się ładniejszymi przebiegami uchybu niż stary układ regulacji działający z czasem próbkowania 2.08 ms. Ładniejszy przebieg uchybu oznacza w szczególności mniejszy co do wartości bezwzględnej maksymalny uchyb, szybsze zbieganie uchybu do wartości zerowej i mniejsze przeregulowanie. Pośrednim celem tej pracy jest również stworzenie modeli wszystkich osi robota IRP6. Modele te muszą być na tyle dokładne, aby na ich podstawie można było zaprojektować dobry regulator. Dotychczasowe regulatory również projektowane były w oparciu o model osi robota. Ponieważ proces identyfikacji osi robota został przeprowadzony kilka lat temu, a przez ten czas mogły zmienić się parametry robota IRP6 (zużycie części mechanicznych, drobne usterki itp.), stworzenie nowego modelu, na podstawie którego zostaną zaprojektowane nowe regulatory, jest w pełni uzasadnione. Zadanie identyfikacji zostało opisane w rozdziale 2 i 3, zadanie projektowania regulatorów w rozdziale 4, a implementacji regulatorów poświęcony jest rozdział 5. 4
2. IDENTYFIKACJA OSI ROBOTA IRP6 2.1. Przygotowanie do identyfikacji Do zebrania danych niezbędnych w procesie identyfikacji wykorzystano program napisany przez dr inż. Wojciecha Szynkiewicza. Program ten był napisany dla systemu QNX 4.25. Zadaniem autora było przeniesienie tego programu pod system QNX Neutrino. 2.2. Proces zbierania danych Proces zbierania danych polegał na zadawaniu na odpowiednią oś wymuszenia skokowego i obserwowaniu reakcji na to wymuszenie. We wszystkich osiach robota IRP6 znajdują się silniki elektryczne poruszające odpowiednimi ramionami. Wartości zadane wymuszenia skokowego podawanego na oś robota to liczby całkowite z zakresu od 255 do 255. W dalszej części pracy liczby te będą oznaczane jako impulsy wymuszenia. Wymuszenie zamieniane jest na sygnał PWM, który pobudza silnik w osi robota. Kierunek obrotu silnika zależy od znaku wymuszenia. Pobudzenie silnika w osi robota powoduje ruch osi robota. Rezolwery umieszczone w każdej osi mierzą przemieszczenie osi. Proces zbierania danych polegał więc na zadawaniu wymuszeń na wybraną oś i na mierzeniu przesunięcia osi pod wpływem tych wymuszeń. Jednostkami przesunięcia są impulsy generowane przez rezolwer, podczas obrotu wału silnika. Na rys. 2 przedstawiono schemat systemu sterowania robotem IRP6. rys.2 Schemat systemu sterowania robotem IRP6 Na rys. 2 widać, że identyfikacja osi robota IRP6 oznacza identyfikację całego układu znajdującego się wewnątrz oznaczonego przerywaną linią obszaru. Wynika to z tego, że z punktu widzenia regulatora obiektem jest układ złożony ze sterownika osi, wzmacniacza mocy, silnika i rezolwera. 5
Komputer nadrzędny to komputer z zainstalowanym systemem sterowania robotem, posiadający interfejs, który pozwala na komunikację ze sterownikami osi robota IRP6. Do sterownia robotem IRP6 w laboratorium 012 wykorzystywany jest system MRROC++. System ten został szczegółowo opisany w [3] i [10]. 2.3. Wyznaczanie stałych czasowych i wzmocnienia obiektu W każdej osi robota IRP6 znajduje się silnik prądu stałego. Z tego względu do opisu modelu użyto transmitancji silnika. Założono, że elektryczna stała czasowa silnika jest znacznie mniejsza niż mechaniczna stała czasowa. Dla wielu układów elektromechanicznych jest to założenie rozsądne i prowadzi do redukcji rzędu modeli dynamiki napędów ([7]).Uproszczona transmitancja silnika ma postać: K G silnik ( s) = (2.3.1) s( Ts + 1) Wpływ bezwładności obciążenia jest bardzo mały, dzięki zastosowaniu przekładni w silnikach znajdujących się w każdej osi robota IRP6. Z uwagi na ten fakt, można identyfikować i sterować każdą osią osobno, zakładając, że zachowanie osi nie będzie zależało od obciążenia, a zatem i konfiguracji pozostałych stopni swobody, względem rozpatrywanej osi. W środowisku MATLAB 6 autor napisał program do wyznaczania stałych czasowych i wzmocnienia modelu obiektu. Program ten wykorzystuje pliki wynikowe programu do identyfikacji osi robota IRP6, napisanego przez dr inż. Wojciecha Szynkiewicza. W plikach tych, w kolejnych wierszach zapisane są przemieszczenia ramienia robota w odpowiedzi na wymuszenie skokowe, w następujących po sobie chwilach czasu. Napisany przez autora program wyznacza, przy wykorzystaniu metody najmniejszych kwadratów, parametry funkcji, która najlepiej aproksymuje przemieszczenia ramienia robota. Ogólną postać funkcji, której parametry należy wyznaczyć, uzyskujemy poprzez wyznaczenie odpowiedzi obiektu na K skok jednostkowy. Zakładając, że obiekt opisany jest transmitancją, odpowiedź na s( Ts +1) skok jednostkowy ma postać: t / T h( t) = K[ t T (1 e )] (2.3.2) K Model opisany uproszczoną transmitancją silnika prądu stałego jest wystarczający s( Ts +1) dla wszystkich osi z wyjątkiem osi trzeciej. W przypadku osi trzeciej przyjęto model opisany K( T1 s + 1) transmitancją. Odpowiedź na skok jednostkowy dla osi trzeciej opisana jest s( T2s + 1) funkcją: t / T2 h ( t ) = K [( T T )(1 e ) + 1 2 t ] (2.3.3) 6
W programie funkcje (2.3.2) i (2.3.3) są wykorzystywane w metodzie najmniejszych kwadratów. Metoda ta wyznacza parametry K i T (w przypadku osi trzeciej K, T 1 i T 2 ), dla których funkcja 2.3.2 (w przypadku osi trzeciej funkcja (2.3.3) ) najlepiej aproksymuje przemieszczenia ramienia robota w czasie. Program zwraca wartości wzmocnienia K i stałej czasowej T modelu, a w przypadku osi trzeciej wartości wzmocnienia K i stałych czasowych T 1 i T 2 modelu. 2.4. Uwzględnienie zjawiska tarcia W wyniku zastosowania programu do wyznaczania stałych czasowych i wzmocnień modelu dla wybranego wymuszenia skokowego, otrzymujemy tabelę przedstawiającą wartości wzmocnienia (K) i stałej czasowej (T) w zależności od wymuszenia skokowego (patrz punkty 3.1 3.6). Analizując takie tabele uzyskane dla każdej osi robota IRP6 zauważono, że wzmocnienie obiektu w istotny sposób zależy od wartości wymuszenia. Wraz ze wzrostem bezwzględnej wartości wymuszenia wzrastało również wzmocnienie. Różne wartości wzmocnienia wynikają z faktu, że aby dokładnie wyznaczyć wzmocnienie obiektu, od wartości skoku należy odjąć te impulsy, które zostały wykorzystane na pokonanie sił tarcia i dopiero wtedy wyznaczyć wzmocnienie obiektu. Na tarcie składają się 3 składniki: tarcie lepkie proporcjonalne do prędkości, tarcie statyczne i tarcie dynamiczne. Tarcie statyczne działa wówczas, kiedy prędkość obiektu wynosi zero. Gdy obiekt zostanie już wprawiony w ruch przestaje działać tarcie statyczne, a zaczyna działać tarcie dynamiczne i lepkie. Tarcie dynamiczne jest mniejsze od tarcia statycznego [4]. Wpływ tarcia lepkiego jest uwzględniony w modelu w nieznacznie powiększonej stałej czasowej. rys. 3 Nieliniowy model osi robota IRP6, uwzględniający tarcie Estymacji rzeczywistego wzmocnienia K v i tarcia dynamicznego C o dokonywano za pomocą metody najmniejszych kwadratów minimalizującej błąd [4]: E i = K i * U i - K v * ( U i - C o * sgn( U i ) ), (2.4.1) gdzie U i to wartość i-tego skoku (impulsy wymuszenia), K i wzmocnienie przy i-tym skoku, K v wzmocnienie rzeczywiste (po uwzględnieniu zjawiska tarcia), C o tarcie dynamiczne. Starano się więc znaleźć najlepsze dopasowanie ostatecznego modelu uwzględniającego tarcie do otrzymanych wcześniej odpowiedzi skokowych modelu liniowego. Model z uwzględnionym zjawiskiem tarcia był wykorzystywany do badań symulacyjnych zaprojektowanych układów regulacji.. 7
3. WYNIKI IDENTYFIKACJI 3.1. Oś pierwsza tor jezdny K Transmitancja postaci jest wystarczająca do opisu osi pierwszej. Zadawano s( Ts +1) skoki w zakresie do 150 do 150 impulsów. Dla dodatnich wartości skoku otrzymano (niebieska przerywana linia zmierzone wartości, linia czerwona aproksymująca funkcja): skok 150 skok 140 skok 120 skok 100 skok 150 skok 140 skok 120 skok 100 skok 80 skok 80 skok 50 skok 30 skok 50 skok 30 rys. 4 Przesunięcie i prędkość w odpowiedzi na skoki dodatnie. rys. 5 Bezwzględny błąd modelowania będący różnicą położenia obliczonego na podstawie modelu i położenia zmierzonego. 8
Dla ujemnych wartości skoku otrzymano: skok -150 skok -150 skok -120 skok -110 skok -120 skok -110 skok -80 skok -80 skok -50 skok -30 skok -50 skok -30 rys. 6 Przesunięcie i prędkość w odpowiedzi na skoki ujemne. rys. 7 Bezwzględny błąd modelowania będący różnicą położenia obliczonego na podstawie modelu i położenia zmierzonego. Wykresy położenia pokazują, że transmitancja postaci dla osi pierwszej. K s( Ts +1) jest dobrym modelem 9
Po identyfikacji otrzymano: a) dla skoków o wartości ujemnej: Skok [impulsy_wymuszenia] T [sek] K [impulsy_rezolwer/impulsy_wymuszenia] -30 0.162133 51.885509-50 0.108422 75.559417-80 0.193660 105.012228-110 0.206793 123.121586-120 0.222802 137.463875-150 0.225369 141.877790 Tabela 1 Skoki ujemne b) dla skoków o wartości dodatniej: Skok [impulsy_wymuszenia] T [sek] K [impulsy_rezolwer/impusly_wymuszenia] 30 0.537572 47.321911 50 0.262076 74.579033 80 0.168687 105.756604 100 0.225964 130.200668 120 0.211814 131.930621 140 0.237942 149.819473 150 0.215902 140.240292 Tabela 2 Skoki dodatnie Wyjaśnieniem faktu, że wzmocnienia różnią się w zależności od wartości skoku jest zjawisko tarcia dynamicznego. Szerzej na ten temat w punkcie 2.4. Dziwne wartości stałej czasowej dla małych skoków wynikają z faktu, że dla tak małych skoków układ ma bardzo duże trudności z wykonaniem ruchu i zachowanie układu w istotny sposób zależy od wielu różnych, trudnych do zamodelowania czynników, których wpływ przy większych skokach jest niezauważalny. Na podstawie tabel nr. 1 i 2, przedstawiających wyznaczone parametry K i T w zależności od skoku, wyznaczono stałą czasową T = 0.2121 [sek]. Wartość ta jest średnią ze stałych czasowych wyznaczanych dla każdego wymuszenia skokowego, z wyjątkiem wymuszeń o wartości 50, -30, 30 i 50. Te cztery pomiary zostały odrzucone, ponieważ dla tak małych skoków robot miał duże problemy z wykonaniem ruchu i model opisany K transmitancją wydaje się być niewystarczający, dla tak małych wymuszeń. Tą s( Ts +1) uśrednioną wartość stałej czasowej przyjęto w późniejszym postępowaniu identyfikacyjnym. Następnie dokonano estymacji rzeczywistego wzmocnienia K v i tarcia dynamicznego C o korzystając z równania 2.4.1. z punktu 2.4.. Otrzymano wyniki: K v =171.3373 [impulsy_rezolwer/impulsy_wymuszenia] C o =25.9454 10
Przyjęto: C o = 26 Na rys. 8 został przedstawiony model symulacyjny osi pierwszej. -26 rys. 8 Model osi pierwszej w SIMULINKu. Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, w którym przyjęto, że T należy do przedziału <0.205;0.225> [sek], K v należy do przedziału <160;174> [impulsy_rezolwer/impulsy_wymuszenia] znajduje się na wykresach przedstawionych na rys. 9 i 10. Niebieską przerywaną linią zaznaczono odpowiedzi zmierzone, a odpowiedzi układu symulacyjnego oznaczone są przez zakreskowany obszar ograniczony z góry linią czerwoną, a z dołu linią zieloną. 11
skok -150 skok -120 skok -110 skok -80 skok -50 skok -30 rys. 9 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki ujemne skok 150 skok 140 skok 120 skok 100 skok 80 skok 50 skok 30 rys. 10 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki dodatnie Rysunki pokazują, że przyjęty model przybliża rzeczywistość wystarczająco, aby na jego podstawie zbudować układ regulacji. Model niedostatecznie przybliża rzeczywistość jedynie dla skoków o wartości 30 i 30 [impulsy_wymuszenia]. Wartości te są wartościami granicznymi, przy których robot zaczyna się poruszać, jednak ruch ten nie jest płynny. Przy tych wartościach skoku robot porusza się z trudem i nie powinien być on pobudzany takimi wartościami podczas normalnej pracy. Ponieważ model układu jest budowany jedynie w celu 12
zaprojektowania dobrego regulatora, a nie wiernego oddania właściwości robota, przyjęty model jest wystarczający. Dowodem na to, że przyjęto dobre przedziały wartości dla wzmocnienia i stałej czasowej są poniższe rysunki. Przedstawiają one, wyrażony w procentach, względny błąd liczony dla: granicznego górnego położenia (parametry : T=0.205; K=174; kolor czerwony). położenia ze środka przedziału (parametry: T=0.215; K=166; kolor niebieski). granicznego dolnego położenia (parametry: T=0.225; K=160; kolor zielony). Względny błąd liczony według wzoru: h p δ = 100%, p gdzie h odpowiedź układu symulacyjnego (przy zadanych parametrach) na skok jednostkowy, p odpowiedź układu rzeczywistego na skok jednostkowy. rys. 11 Względny błąd modelowania δ (w procentach) dla skoków ujemnych 13
rys. 12 Względny błąd modelowania δ (w procentach) dla skoków dodatnich Jak widać największy relatywny błąd występuje na samym początku wykonywania ruchu. Wynika to z faktu, że na początku przemieszczenie jest tak małe, że nawet względne różnice rzędu 100% są tak naprawdę bardzo małymi różnicami bezwzględnymi i trudno tak dobrać parametry K i T, aby tę różnicę jeszcze zmniejszyć. Poniżej przedstawiono charakterystyki częstotliwościowe osi pierwszej: rys. 13 Charakterystyka amplitudowa dla osi pierwszej 14
rys. 14 Charakterystyka fazowa dla osi pierwszej Sprawdzono także, że zgodnie z oczekiwaniami zamontowanie obciążenia (czujnik siły) nie wpłynęło w istotny sposób na parametry K i T. Dowodzi tego poniższy rysunek. rys. 15 Wpływ obciążenia na odpowiedź dla skoku o wartości 90 impulsów wymuszenia Podsumowanie : Dla osi pierwszej stała czasowa przyjmuje wartości z przedziału <0.205 ; 0.225> [sek], wzmocnienie przyjmuje wartości z przedziału <160 ; 174> [impulsy_rezolwer/impulsy_wymuszenia], a współczynnik tarcia dynamicznego C o = 26. 15
3.2. Oś druga kolumna obrotowa K Przyjęto transmitancję postaci. Pomiary przeprowadzono przy dwóch s( Ts +1) skrajnych położeniach ramienia robota. Pierwsza seria pomiarów została przeprowadzona dla ramienia ułożonego w taki sposób, że środek ciężkości robota znajdował się blisko kolumny obrotowej, a przy drugiej serii pomiarów, ramię było tak ułożone, że środek ciężkości był maksymalnie oddalony od kolumny obrotowej. Zadawano skoki w zakresie od 140 do 140 impulsów. Dla osi drugiej bezwzględna graniczna wartość skoku dla obu położeń ramienia wprawiająca robota w ruch wynosi 30. Na rys. 16 przedstawiono odpowiedź robota na skok o wartości 30 (niebieska przerywana linia rzeczywiste wartości, linia czerwona aproksymująca funkcja). rys. 16 Odpowiedź osi drugiej na skok o wartości 30 Dla skoku o wartości 30 i 30 impulsów wymuszenia robot miał duże problemy z wykonaniem ruchu. Zachowanie robota różniło się od zachowania modelu opisanego K transmitancją. Dla tak małych wartości wymuszeń, podobnie jak to miało miejsce s( Ts +1) w przypadku toru jezdnego, zachowanie robota zależy również od innych, bardzo trudnych do zamodelowania czynników, których wpływ przy większych wymuszeniach jest pomijalny. 16
Dla maksymalnej wartości skoku równej 140 impulsów otrzymano: rys. 17 Odpowiedź osi drugiej na skok o wartości 140 impulsów Powyższy rysunek pokazuje, że przyjęta transmitancja jest dobrym modelem dla osi drugiej. Chcąc zbadać wpływ ustawienia ramienia robota na wartości K i T przeanalizujmy poniższe rysunki. Na rysunkach tych kolorem czerwonym zaznaczono zaproksymowane przebiegi prędkości dla pierwszej serii pomiarowej, a kolorem zielonym zaproksymowane przebiegi prędkości dla drugiej serii pomiarowej. Skok 140 Skok -140 Skok 120 Skok -120 Skok 90 Skok -90 Skok 60 Skok -60 Skok 30 Skok -30 rys. 18 Z lewej odpowiedzi na skoki dodatnie, z prawej odpowiedzi na skoki ujemne Jak łatwo zauważyć wpływ ustawienia ramienia robota na wyniki identyfikacji nie jest duży i wzrasta wraz z wartością skoku. 17
W procesie identyfikacji otrzymano następujące wyniki: a) Dla dodatnich wartości skoku Seria Skok [impulsy_wymuszenia] T [sek] K [impulsy_rezolwer/impulsy_wymuszenia] 0 30 0.141445 43.085306 0 60 0.113653 79.477094 0 90 0.130570 101.281843 0 120 0.155888 115.224643 0 140 0.193385 129.827703 1 30 0.132122 45.832320 1 60 0.127402 84.242368 1 90 0.168799 104.838388 1 120 0.182278 121.049799 1 140 0.215295 135.616715 Tabela 3 Skoki dodatnie b) Dla ujemnych wartości skoku Seria Skok [impulsy_wymuszenia] T [sek] K [impulsy_rezolwer/impulsy_wymuszenia] 0-30 0.135131 35.557302 0-60 0.116590 80.078933 0-90 0.157161 107.297104 0-120 0.173304 129.676986 0-140 0.188483 144.043223 1-30 0.164210 40.346548 1-60 0.131998 82.754307 1-90 0.168793 112.421731 1-120 0.174819 126.940706 1-140 0.216665 147.519877 Tabela 4 Skoki ujemne Wyjaśnieniem faktu, że wzmocnienia różnią się w zależności od wartości skoku jest zjawisko tarcia dynamicznego. Szerzej na ten temat w punkcie 2.4. Stosując schemat postępowania z punktu 2.4. dokonano identyfikacji stałej czasowej T, wzmocnienia rzeczywistego K v i współczynnika tarcia dynamicznego C o. Otrzymano następujące wyniki: seria 0 (zgięte ramie): K v =162.9 - wzmocnienie rzeczywiste (uwzględnione zjawisko tarcia) C o =27.56 - tarcie dynamiczne uśrednione C o plus=25.9006 - tarcie dynamiczne przy skokach dodatnich C o minus =29.0162 - tarcie dynamiczne przy skokach ujemnych T=0.154 - stała czasowa 18
seria 1 (rozwinięte ramie): K v =166.4 - wzmocnienie rzeczywiste (uwzględnione zjawisko tarcia) C o =26.96 - tarcie dynamiczne uśrednione C o plus=25,7310 - tarcie dynamiczne przy skokach dodatnich C o minus=28.0799 - tarcie dynamiczne przy skokach ujemnych T=0.173 - stała czasowa Przyjęto: T należy do przedziału <0.15;0.175> [sek] K v należy do przedziału <150;170> [impulsy_rezolwer/impulsy_wymuszenia] C o plus = 25.8 C o minus = 28.5 Zbudowano model osi 2 w SIMULINKu tak jak było to zrobione dla osi pierwszej, z tą różnicą, że dla osi drugiej przyjęto niesymetrycznie działające tarcie dynamiczne wynoszące dla skoków ujemnych 28.5, dla skoków dodatnich 25.8. rys. 19 Model osi 2 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego znajduje się na poniższych wykresach. Niebieską przerywaną linią zaznaczono odpowiedzi rzeczywiste, a odpowiedzi układu symulacyjnego wyznaczone są przez zakreskowany obszar ograniczony z góry linią czerwoną, a z dołu linią zieloną. 19
Skok -140 Skok -120 Skok -90 Skok -60 Skok -30 rys. 20 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki ujemne, seria 0 Skok 140 Skok 120 Skok 90 Skok 60 Skok 30 rys. 21 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki dodatnie, seria 0 20
Skok -140 Skok -120 Skok -90 Skok -60 Skok -30 rys. 22 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki ujemne, seria 1 Skok 140 Skok 120 Skok 90 Skok 60 Skok 30 rys. 23 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki dodatnie, seria 1 Rysunki pokazują, że przyjęty model przybliża rzeczywistość wystarczająco, aby na jego podstawie zbudować dobry układ regulacji. 21
Dowodem na to, że przyjęto dobre przedziały wartości dla wzmocnienia i stałej czasowej są poniższe rysunki. Przedstawiają one, wyrażony w procentach, względny błąd liczony dla: granicznego górnego położenia (parametry: T=0.15; K=170; kolor czerwony) położenia ze środka przedziału (parametry: T=0.167; K=160; kolor niebieski) granicznego dolnego położenia (parametry: T=0.175; K=150; kolor zielony). Względny błąd liczony według wzoru: h p δ = 100%, p gdzie h odpowiedź układu symulacyjnego (przy zadanych parametrach) na skok jednostkowy, p odpowiedź układu rzeczywistego na skok jednostkowy. rys. 24 Względny błąd modelowania δ (w procentach) dla skoków dodatnich, seria 0 22
rys. 25 Względny błąd modelowania δ (w procentach) dla skoków ujemnych, seria 0 Seria 1: rys. 26 Względny błąd modelowania δ (w procentach) dla skoków dodatnich, seria 1 23
rys. 27 Względny błąd modelowania δ (w procentach) dla skoków ujemnych, seria 1 Poniżej przedstawiono charakterystyki częstotliwościowe osi drugiej: rys. 28 Charakterystyka amplitudowa dla osi drugiej 24
rys. 29 Charakterystyka fazowa dla osi drugiej Sprawdzono także, że tak jak się spodziewano zamontowanie obciążenia (czujnik siły) nie wpłynęło w istotny sposób na parametry K i T. Dowodzi tego poniższy rysunek: rys. 30 Wpływ obciążenia na odpowiedź dla skoku o wartości 90 impulsów wymuszenia. Jak widać wpływ obciążenia dla osi drugiej jest pomijalnie mały. Podsumowanie : Dla osi drugiej stała czasowa przyjmuje wartości z przedziału <0.15 ; 0.175> [sek], wzmocnienie przyjmuje wartości z przedziału <150; 170> [impulsy_rezolwer/impulsy_wymuszenia], współczynnik tarcia dynamicznego dla skoków dodatnich C o plus = 25.8, a dla ujemnych C o minus= 28.5. 25
3.3. Oś trzecia Pomiary przeprowadzono przy dwóch skrajnych położeniach początkowych ramienia robota. Pierwsza seria pomiarów (skoki ujemne) została przeprowadzona dla maksymalnie wychylonego ramienia, a przy drugiej serii pomiarów (skoki dodatnie) ramię na początku było maksymalnie cofnięte (patrz rys. 31). rys. 31 Po lewej stronie ułożenie robota przy drugiej serii pomiarowej (skoki dodatnie), po prawej stronie ułożenie robota przy pierwszej serii pomiarowej (skoki ujemne). Zadawano skoki w zakresie 160 do 160 impulsów. Dla osi trzeciej bezwzględna graniczna wartość skoku dla obu położeń ramienia wprawiająca robota w ruch wynosi 50. K Przyjęcie transmitancji modelu postaci okazało się niewystarczające w s( Ts +1) K( T1 s + 1) przypadku osi trzeciej. Dla osi 3 przyjęto transmitancję. s( T s + 1) 2 K rys. 32 Położenie i prędkość przy modelu s( Ts +1) linia czerwona aproksymująca funkcja). (niebieska linia zmierzone wartości, 26
K( T1 s + 1) rys. 33 Położenie i prędkość przy modelu s( T2s + 1) linia czerwona aproksymująca funkcja). (niebieska linia zmierzone wartości, Porównując rysunki 32 i 33 wyraźnie widać, że przy skoku 80 impulsów przyjęcie K( T modelu opisanego transmitancją 1 s +1) jest lepszym rozwiązaniem. Sprawdzono, że dla s( T2 s + 1) pozostałych wartości wymuszeń skokowych odpowiedź modelu opisanego powyższą K transmitancją jest bliższa rzeczywistości niż modelu opisanego transmitancją. s( Ts +1) Wyjaśnienie natury nagłych wychyleń w na wykresie prędkości zmierzonej znajduje się w punkcie 3.8. Stosując schemat postępowania z punktu 2.3. dokonano identyfikacji stałych czasowych T 1 i T 2, oraz wzmocnienia obiektu K. 27
Skok [impulsy_wymuszenia] T 1 obiekt [sek] T 2 obiekt [sek] -60-0.007667 8.499855 499.985919-80 0.258954 3.317539 371.462761-100 0.160524 1.206398 242.797311-120 0.124792 0.723956 220.041008-140 0.071506 0.435410 197.638512-160 0.041385 0.324188 192.225774 60-0.003636 11.069795 562.128224 80 0.395975 5.029403 443.570845 100 0.284246 1.665741 266.418531 120 0.176140 0.816739 217.226369 140 0.085487 0.432664 188.972105 160 0.055714 0.295568 173.977337 SR 0.136951 2.818104 298.037058 Max 0.395975 11.069795 562.128224 Min -0.007667 0.295568 173.977337 K obiekt [impulsy_rezolwer/impulsy_wymuszenia] Tabela 5 Parametry T 1, T 2, i K wyznaczone metodą najmniejszych kwadratów T 1 stała czasowa z licznika T 2 - stała czasowa z mianownika K wzmocnienie przy poszczególnych wymuszeniach (bez uwzględnienia zjawiska tarcia) Tabela nr 5 przedstawia parametry T 1, T 2, i K wyznaczone metodą najmniejszych kwadratów dla każdego skoku. Wykorzystując heurystykę wyznaczono rzeczywiste wzmocnienie K v i tarcie C o : C o = 26 K v = 330 [impulsy_rezolwer/impulsy_wymuszenia] T 1 T 2 K v Ustalono następujące przedziały: < 0.11 ; 0.18 > [sek] < 1.05 ; 1.6 > [sek] <270 ; 490 > [impulsy_rezolwer/impulsy_wymuszenia] Wówczas otrzymano następujące przebiegi położenia: (czerwona linia górna granica przedziału, parametry: T 1 =0.18; T 2 =1.05; K v =270) (zielona linia dolna granica przedziału, parametry: T 1 =0.11; T 2 =1.6; K v =490) (niebieska przerywana linia położenie zmierzone) 28
rys. 34 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki ujemne rys. 35 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego, skoki dodatnie 29
Rysunki 36 i 37 przedstawiają, wyrażony w procentach, względny błąd liczony dla: granicznego górnego położenia (parametry: T 1 =0.18; T 2 =1.05; K v =270; kolor czerwony). położenia ze środka przedziału (parametry: T 1 =0.145; T 2 =1.3; K v =380; kolor niebieski). granicznego dolnego położenia (parametry : T 1 =0.11; T 2 =1.6; K v =490; kolor zielony). Względny błąd liczony według wzoru: h p δ = 100%, p gdzie h odpowiedź układu symulacyjnego (przy zadanych parametrach) na skok jednostkowy, p odpowiedź układu rzeczywistego na skok jednostkowy. rys. 36 Względny błąd modelowania δ (w procentach) dla skoków ujemnych 30
rys. 37 Względny błąd modelowania δ (w procentach) dla skoków dodatnich Poniżej przedstawiono charakterystyki częstotliwościowe osi trzeciej: rys. 38 Charakterystyka amplitudowa osi trzeciej 31
rys. 39 Charakterystyka fazowa osi trzeciej Sprawdzono także, że zgodnie z oczekiwaniami zamontowanie obciążenia (czujnik siły) nie wpłynęło w istotny sposób na parametry K,T 1 i T 2. Dowodzą tego poniższe rysunki: rys. 40 Wpływ obciążenia na odpowiedź osi trzeciej dla skoku o wartości 100 i 100. Podsumowanie : Dla osi trzeciej stała czasowa T 1 przyjmuje wartości z przedziału < 0.11 ; 0.18 > [sek], stała czasowa T 2 przyjmuje wartości z przedziału < 1.05 ; 1.6 > [sek], wzmocnienie przyjmuje wartości z przedziału <270 ; 490 > [impulsy_rezolwer/impulsy_wymuszenia], współczynnik tarcia dynamicznego C o =26. 32
3.4. Oś czwarta Zadawano skoki w zakresie od 160 do 160. Bezwzględny minimalny skok wprawiający oś czwartą w ruch wynosi 20 impulsów. Skoki o wartościach dodatnich powodują ruch ramienia w dół, a skoki o wartościach ujemnych powodują ruch ramienia robota w górę. Przeprowadzono dwie serie pomiarowe: seria 0 końcówka robota nieobciążona seria 1 końcówka robota obciążona czujnikiem Przeprowadzone eksperymenty pokazały, że transmitancja postaci dobrym modelem dla osi czwartej. K s( Ts +1) jest Stosując schemat postępowania z punktu 2.4. dokonano identyfikacji stałej czasowej T, wzmocnienia rzeczywistego K v i współczynnika tarcia dynamicznego C o. Tabela nr 6 przedstawia parametry T, i K wyznaczone metodą najmniejszych kwadratów dla każdego skoku. 33
T stała czasowa obiektu K wzmocnienie przy poszczególnych wymuszeniach (bez uwzględnienia zjawiska tarcia) Skok [impulsy_wymuszenia] seria T obiekt [sek] -20 0 0.128210 77.060590-50 0 0.103474 150.978586-80 0 0.117975 170.281745-110 0 0.128808 191.309527-140 0 0.140635 199.536491-160 0 0.149082 210.513764-20 1 0.190062 47.807037-50 1 0.131021 141.610708-80 1 0.132735 169.898657-110 1 0.128579 180.986440-140 1 0.130852 184.872943-160 1 0.131232 187.284659 20 0 0.017783 35.808999 50 0 0.143299 126.856132 80 0 0.132559 156.634954 110 0 0.140320 181.891556 140 0 0.154743 196.999287 160 0 0.158267 203.199802 20 1 0.183021 84.451902 50 1 0.154009 171.509312 80 1 0.142187 194.262485 110 1 0.147127 207.286381 140 1 0.153131 215.277399 160 1 0.157284 220.019295 SR 0.137349 162.7641105 Max 0.190062 220.019295 Min 0.017783 35.808999 K obiekt [impulsy_rezolwer/impulsy_wymuszenia] Tabela 6 Parametry K i T wyznaczone metodą najmniejszych kwadratów Wykorzystując heurystykę wyznaczono rzeczywiste wzmocnienie K v i tarcie C o : skoki seria K v C o ujemne 0 228.7 16.5401 ujemne 1 207.85 15.2443 dodatnie 0 229.7820 21.0259 dodatnie 1 239.3509 13.9876 Tabela 7 Wartości K v i C o dla skoków dodatnich i ujemnych w serii 0 i w serii 1. Ustalono następujące przedziały wartości: T < 0.11 ; 0.18 > [sek] K v <210 ; 375 > [impulsy_rezolwer/impulsy_wymuszenia] C o 15 34
Wówczas otrzymano następujące przebiegi położenia: (czerwona linia górna granica przedziału, parametry: T=0.12; K v =270; C o =15) (zielona linia dolna granica przedziału, parametry: T=0.15; K v =180; C o =15) (niebieska przerywana linia położenie zmierzone) rys. 41 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki ujemne, seria 0 35
rys. 42 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki ujemne, seria 1 36
rys. 43 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki dodatnie, seria 0 37
rys. 44 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki dodatnie, seria 1 Poniżej przedstawiono charakterystyki częstotliwościowe osi czwartej: rys. 45 Charakterystyka amplitudowa osi czwartej 38
rys. 46 Charakterystyka fazowa osi czwartej Podsumowanie: Dla osi czwartej stała czasowa T przyjmuje wartości z przedziału < 0.12 ; 0.15 >, wzmocnienie przyjmuje wartości z przedziału < 180 ; 270 > [impulsy_rezolwer/impulsy_wymuszenia], współczynnik tarcia dynamicznego C o =15. 39
3.5. Oś piąta Zadawano skoki w zakresie od 190 do 190 impulsów wymuszenia. Bezwzględny minimalny skok wprawiający oś piątą w ruch wynosi 15 impulsów. Skoki o wartościach dodatnich powodują ruch ramienia w górę, a skoki o wartościach ujemnych powodują ruch ramienia robota w dół. Przeprowadzono dwie serie pomiarowe: seria 1 końcówka robota nieobciążona seria 0 końcówka robota obciążona czujnikiem K Przeprowadzone eksperymenty pokazały, że transmitancja postaci jest dobrym s( Ts +1) modelem dla osi piątej. Stosując schemat postępowania z punktu 2.4. dokonano identyfikacji stałej czasowej T, wzmocnienia rzeczywistego K v i współczynnika tarcia dynamicznego C o. Tabela nr. 8 przedstawia parametry T, i K wyznaczone metodą najmniejszych kwadratów dla każdego skoku. 40
T stała czasowa obiektu K wzmocnienie przy poszczególnych wymuszeniach (bez uwzględnienia zjawiska tarcia) Skok [impulsy_wymuszenia] seria T obiekt [sek] -15 0 0.047670 41.860356-40 0 0.115044 190.508798-70 0 0.087594 229.801272-100 0 0.080197 253.046871-130 0 0.089003 262.374871-160 0 0.091398 270.456136-190 0 0.092599 272.317809-15 1 0.393758 79.758913-40 1 0.106599 205.224040-70 1 0.095110 237.676403-100 1 0.093128 254.490393-130 1 0.091348 263.522035-160 1 0.090949 266.599399-190 1 0.092931 268.633571 15 0 0.047476 36.838847 40 0 0.078740 169.373117 70 0 0.073154 224.289804 100 0 0.088922 253.594344 130 0 0.090555 266.358356 160 0 0.096103 281.136145 190 0 0.098401 281.582633 15 1 0.004639 68.460210 40 1 0.114826 202.273947 70 1 0.101264 250.342957 100 1 0.101676 269.334884 130 1 0.096265 279.147328 160 1 0.096806 283.755818 190 1 0.100478 286.978346 SR 0.098451 223.204914 Max 0.393758 286.978346 Min 0.004639 36.838847 K obiekt [impulsy_rezolwer/impulsy_wymuszenia] Tabela 8 Parametry T i K wyznaczone metodą najmniejszych kwadratów Porównanie serii 1 (ramię nieobciążone czujnikiem) i serii 0 (ramię obciążone czujnikiem) pokazuje, że wzmocnienia dla skoków o małej wartości bezwzględnej (skoki o wartościach bezwzględnych 15 i 40 impulsów wymuszenia) są wyraźnie większe, gdy robot nie jest obciążony czujnikiem. 41
Wykorzystując heurystykę wyznaczono rzeczywiste wzmocnienie K v i tarcie C o : skoki Seria K v C o ujemne 0 294 13.9 ujemne 1 287 10 dodatnie 0 308 16.7 dodatnie 1 308 12.6 Tabela 9 Wartości K v i C o dla skoków dodatnich i ujemnych w serii 0 i w serii 1. Ustalono następujące przedziały: T < 0.07 ; 0.11 > [sek] K v <255 ; 320> [impulsy_rezolwer/impulsy_wymuszenia] C o plus 12.2 C o minus 10 Wówczas otrzymano następujące przebiegi położenia: (czerwona linia górna granica przedziału, parametry: T=0.07; K v =320) (zielona linia dolna granica przedziału, parametry: T=0.11; K v =255) (niebieska przerywana linia położenie zmierzone) rys. 47 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki ujemne, seria 0 42
rys. 48 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki ujemne, seria 1 43
rys. 49 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki dodatnie, seria 0 44
rys. 50 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki dodatnie, seria 1 Dla skoków o wartości bezwzględnej 15 impulsów wymuszenia kluczowe znaczenie odgrywa wartość parametru tarcia dynamicznego C o. Wartość ta różni się w zależności od tego czy robot jest obciążony, czy nie. Ponieważ nie jest możliwe takie dobranie parametru C o aby dla skoku 15 i 15 impulsów odpowiedź rzeczywista zawierała się w odpowiedzi układu symulacyjnego, autor tak dobrał parametr C o plus i C o minus aby bardziej dopasować model symulacyjny do układu z robotem obciążonym (czujnik siły), kosztem dopasowania do układu z robotem nieobciążonym. 45
Poniżej przedstawiono charakterystyki częstotliwościowe osi piątej: rys. 51 Charakterystyka amplitudowa osi piątej Podsumowanie: rys. 52 Charakterystyka fazowa osi piątej Dla osi piątej stała czasowa T przyjmuje wartości z przedziału < 0.07 ; 0.11 >, wzmocnienie przyjmuje wartości z przedziału < 255 ; 320 > [impulsy_rezolwer/impulsy_wymuszenia], współczynnik tarcia dynamicznego dla skoków dodatnich wynosi C o plus = 12.2, dla skoków ujemnych C o minus = 10. 46
3.6. Oś szósta Zadawano skoki w zakresie od 190 do 190 impulsów wymuszenia. Bezwzględny minimalny skok wprawiający oś szóstą w ruch wynosi 15 impulsów przy braku obciążenia i 20 impulsów przy obciążeniu końcówki robota czujnikiem siły. Skoki o wartościach dodatnich powodują obrót osi 6 zgodnie z kierunkiem wskazówek zegara, a skoki o wartościach ujemnych powodują ruch osi 6 w kierunku przeciwnym. Przeprowadzono dwie serie pomiarowe: seria 0 końcówka robota nieobciążona seria 1 końcówka robota obciążona czujnikiem K Przeprowadzone eksperymenty pokazały, że transmitancja postaci jest dobrym s( Ts +1) modelem dla osi szóstej. Tabela nr 10 przedstawia parametry T i K wyznaczone metodą najmniejszych kwadratów dla każdego skoku, gdzie: T stała czasowa obiektu K wzmocnienie przy poszczególnych wymuszeniach (bez uwzględnienia zjawiska tarcia) 47
Skok [impulsy_wymuszenia] seria T obiekt [sek] -20 0 0.286962 136.823706-50 0 0.058315 181.189793-80 0 0.040695 191.606416-110 0 0.042759 199.932182-140 0 0.043441 198.506935-170 0 0.045422 199.562784-190 0 0.041616 202.206615-15 1 0.130596 114.950751-40 1 0.050854 173.977749-70 1 0.043695 192.645847-110 1 0.044180 199.429283-140 1 0.044464 202.825937-170 1 0.040216 203.453478-190 1 0.040599 202.135065 20 0 0.365125 136.024785 50 0 0.058720 180.087897 80 0 0.047962 192.036846 110 0 0.043647 198.747890 140 0 0.045256 199.685132 170 0 0.045048 202.460261 190 0 0.045909 201.714976 15 1 0.436871 115.826605 40 1 0.064846 172.220137 70 1 0.044788 187.208438 110 1 0.046636 195.609698 140 1 0.049259 201.389596 170 1 0.046984 205.155424 190 1 0.048159 204.782674 SR 0.083679 185.435603 Max 0.436871 205.155424 Min 0.040216 114.950751 K obiekt [impulsy_rezolwer/impulsy_wymuszenia] Tabela 10 Parametry T i K wyznaczone metodą najmniejszych kwadratów Wykorzystując heurystykę wyznaczono rzeczywiste wzmocnienie K v i tarcie C o : skoki seria K v C o ujemne 0 209 6.5 ujemne 1 210 6.1 dodatnie 0 210 6.9 dodatnie 1 214 7.8 Tabela 11 Wartości K v i C o dla skoków dodatnich i ujemnych w serii 0 i w serii 1. 48
Ustalono następujące przedziały: T < 0.04; 0.1 > [sek] K v <195; 230 > [impulsy_rezolwer/impulsy_wymuszenia] C o plus 7 C o minus 6.2 Wówczas otrzymano następujące przebiegi położenia: (czerwona linia górna granica przedziału, parametry: T=0.04; K v =230) (zielona linia dolna granica przedziału, parametry: T=0.1; K v =195) (niebieska przerywana linia położenie zmierzone) rys. 53 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki ujemne, seria 0 49
rys. 54 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki ujemne, seria 1 50
rys. 55 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki dodatnie, seria 0 51
rys. 56 Porównanie odpowiedzi układu rzeczywistego i symulacyjnego skoki dodatnie, seria 1 Poniżej przedstawiono charakterystyki częstotliwościowe osi szóstej: rys. 57 Charakterystyka amplitudowa osi szóstej 52
rys. 58 Charakterystyka fazowa osi szóstej Podsumowanie: Dla osi szóstej stała czasowa T przyjmuje wartości z przedziału < 0.04 ; 0.1 >, wzmocnienie przyjmuje wartości z przedziału < 195 ; 230 > [impulsy_rezolwer/impulsy_wymuszenia], współczynnik tarcia dynamicznego dla skoków dodatnich wynosi C o plus = 7, dla skoków ujemnych C o minus = 6.2. 53
3.7. Wybór modelu liniowego o właściwym wzmocnieniu W punktach 3.1-3.6. przedstawiono wyniki identyfikacji wszystkich sześciu osi robota IRP6. W punktach tych identyfikowano modele nieliniowe, z uwzględnionym zjawiskiem tarcia. W procesie projektowania regulatorów wykorzystuje się model liniowy obiektu. W niniejszym punkcie opisano, w jaki sposób na podstawie znajomości parametrów modelu nieliniowego oraz minimalnej i maksymalnej prędkości sygnału zadanego, można wyznaczyć parametry modelu liniowego, wykorzystywanego w procesie projektowania regulatorów. Niech u oznacza sygnał sterowania, K v wzmocnienie modelu nieliniowego, K wzmocnienie modelu liniowego, c współczynnik tarcia. rys. 59 Model liniowy rys. 60 Model nieliniowy Podczas projektowania regulatora wykorzystywany jest model liniowy. W procesie identyfikacji wyznaczono parametry modelu nieliniowego. Dla modelu nieliniowego w stanie ustalonym prawdziwe są wzory (patrz rys. 60): y = K ( u c) = ρ( u) u v, ρ( u) 0 (3.7.1) ρ( u) = K v c (1 ) u, u c (3.7.2) rys. 61 Kształt funkcji ρ( u) K v = 1 c u 54
Widać zatem, że model nieliniowy z tarciem można przedstawić w postaci, jak na rys. 62. rys. 62 Model nieliniowy obiektu ze wzmocnieniem zależnym od wartości sygnału sterowania Na rys. 62 u oznacza sterowanie podawane na obiekt, a ρ(u) oznacza wzmocnienie zależne od sterowania (patrz równanie 3.7.2). Zatem aby na podstawie modelu nieliniowego uwzględniającego tarcie zbudować model liniowy należy wyznaczyć minimalne i maksymalne sterowanie podawane na obiekt. Znając te wartości można wyznaczyć ρ ( u min ) i ρ ( u max ), czyli można ustalić przedział wartości, do którego należy wzmocnienie ρ (u). Wzmocnienie modelu liniowego zawiera się w tym przedziale. Znając wyznaczone w procesie identyfikacji wzmocnienie K v modelu nieliniowego, współczynnik tarcia c, oraz prędkość sygnału zdanego y o można wyznaczyć wartość sterowania podawanego na obiekt, gdy przyspieszenie sygnału zadanego jest zerowe: u 1 = c yo (3.7.3) K 0 + v Wzmocnienie modelu liniowego K można wyznaczyć ze wzoru: c K = ρ ( uo ) = K v (1 ), u o c (3.7.4) uo Korzystając z równań 3.7.3 i 3.7.4, znając współczynnik tarcia c i maksymalną oraz minimalną prędkość sygnału zadanego dla poszczególnych osi robota (patrz rozdział 5) obliczono wartość wzmocnienia modelu liniowego dla wszystkich stopni swobody. Minimalna y 0 min i maksymalna y 0 max prędkość sygnału zadanego [impulsy_z_rezolwera/sek] Przedział wzmocnienia modelu nieliniowego K v [impulsy_z_rezolwera] Przedział wzmocnienia modelu liniowego K [impulsy_z_rezolwera] Oś 1 5000 ; 15000 <160 ; 174> <87 ; 134> Oś 2 5000 ; 15000 <150 ; 170> <80 ; 125> Oś 3 5000 ; 15000 <270 ; 490 > <180 ; 265> Oś 4 5000 ; 20000 < 180 ; 270 > <115 ; 225> Oś 5 5000 ; 30000 < 255 ; 320 > <145 ; 285> Oś 6 5000 ; 30000 < 195 ; 230 > <153 ; 218> Tabela 12 Wartości wzmocnień modeli nieliniowych i modeli liniowych 55
3.8. Komentarz do wykresów prędkości zmierzonej. Zbadano zjawisko występowania nagłych skoków na wykresie prędkości zmierzonej, na przykładzie odpowiedzi na wymuszenie o wartości 120 [impulsy_wymuszenia] dla toru jezdnego. W wyniku procesu identyfikacji otrzymujemy zbiór kolejnych położeń w następujących po sobie chwilach czasowych. Przeanalizujmy próbki z przedziału czasowego ( 920 ; 932 ) [ms]. rys. 63 Odpowiedź osi pierwszej na skok 120 impulsów wymuszenia Widać skok po 925 ms. Jeśli skok byłby pojedynczym błędem pomiarowym, pozostałe pomiary powinny znajdować na przerywanej czerwonej linii. Tak jednak nie jest. Po dokładnej analizie odpowiedzi robota dla pierwszych trzech osi zauważono, że: 1. Skoki powtarzają się w odstępach od 672 do 690 impulsów przemieszczenia odczytanych z rezolwera. Ponieważ jednemu pełnemu obrotowi wału silnika odpowiada przemieszczenie o 682 impulsy, można wysnuć wniosek, że skoki występują co jeden obrót wału silnika. 2. Rozpatrując występowanie skoków na tle bezwzględnych przemieszczeń robota zauważono, że skoki występują przy tych samych bezwzględnych przemieszczeniach, niezależnie od wartości wymuszenia i bezwzględnej pozycji początkowej. Z 1. i 2. wynika, że skok następuje co pełen obrót wału silnika, w jednym wyróżnionym miejscu, prawdopodobnie przy przejściu kąta obrotu wału silnika przez zero. 3. Wartość skoku jest proporcjonalna do wymuszenia, podawanego na oś robota, przy którym wystąpił skok. 4. Skok jest zawsze dodatni, tzn. skok zawsze zwiększa przesunięcie robota (patrz rys. 63). Przy wymuszeniach ujemnych skok zwiększa przesunięcie robota, ale ponieważ przesunięcia robota przy tych wymuszeniach są ujemne, w chwili wystąpienia skoku wartość bezwzględna przesunięcia przy ujemnych wymuszeniach jest mniejsza. Przy wymuszeniach ujemnych robot w chwili wystąpienia skoku chwilowo zwalnia ruch w kierunku ujemnych przesunięć, a przy dodatnich wymuszeniach w momencie wystąpienia skoku robot chwilowo zwiększa swoją prędkość poruszania w kierunku dodatnich przesunięć (patrz rys. 64). 56
rys. 64 Przebieg prędkości osi pierwszej w odpowiedzi na skok 120 impulsów wymuszenia Powiększenie wykresu prędkości zmierzonej na przedziale ( 920 ; 932 ) [ms] : rys. 65 Przebieg prędkości osi pierwszej w odpowiedzi na skok 120 impulsów wymuszenia Zjawiska opisane w punktach 1.-4. (patrz str. 56) występują we wszystkich osiach robota IRP6 na torze i dla dowolnych wymuszeń. Po konsultacji z mgr inż. Andrzejem Rydzewskim i dr inż. Wojciechem Szynkiewiczem wysnuto hipotezę, że skoki te związane są z błędnym działaniem rezolwera, a dokładniej, z pewną nieuwzględnioną nieliniowością podczas pomiaru kąta obrotu, przez co po wykonaniu pełnego obrotu pozostaje nadmiarowość, która objawia się właśnie tym skokiem. 57
Prędkość, przedstawiona na rysunkach 64 i 65, była wyznaczana na podstawie różnicy położeń w następujących po sobie chwilach czasu. Ponieważ prędkość jest pierwszą pochodną położenia, do wyznaczenia dokładniejszych przebiegów prędkości należy użyć numerycznych metod różniczkowania. Wzory, z których korzystano wraz z programem do obliczania pochodnej zostały zaprezentowane w Dodatku. Metoda była stosowana dla różnej wartości parametru k. Parametr k określa dokładność metody, czyli zakres chwil czasowych na podstawie których obliczana jest pochodna. Duża wartość parametru k, oznacza dużą ilość historycznych danych (wartości w poprzednich chwilach czasowych), a zatem większą dokładność różniczkowania. rys. 66 Porównanie trzech metod różniczkowania na podstawie skoku 120 dla osi 1 Oznaczenia: Przerywana czarna linia odpowiedź po aproksymacji metodą najmniejszych kwadratów Czerwona krzywa prędkość wyznaczana na podstawie różnicy położenia Zielona krzywa prędkość po różniczkowaniu dla k=3 Niebieska krzywa - prędkość po różniczkowaniu dla k=5 Metoda różniczkowania dla k=3 (kolor zielony ) jest wystarczająco wrażliwa i dokładna, a przy tym nie powoduje takiego rozrzutu jak ta sama metoda dla k=5 (kolor niebieski ). Dane zmierzone są zaszumione, a metoda dla k=5 jest za bardzo wrażliwa i powoduje silne różniczkowanie szumu. Jest to niewskazane. Z tego względu to właśnie metoda różniczkowania dla k=3 jest używana w procesie identyfikacji osi robota IRP6 do wyznaczenia przebiegu prędkości na podstawie zmierzonego położenia. 58
3.9. Dominujące zakłócenie związane z błędnym działaniem rezolwera W punkcie 3.8 opisano błędne działanie rezolwera. Analizując przebiegi otrzymane podczas testowania układów regulacji dla wszystkich osi robota IRP6 na torze, oraz znając maksymalne i minimalne prędkości sygnału zadanego można określić pulsację występowania dziwnych skoków opisanych w punkcie 3.8, dla konkretnej prędkości sygnału zadanego. Innymi słowy można określić pulsację zakłócenia generowanego przez rewolwer. Zakłócenie to sprawiało najwięcej kłopotów dla układów regulacji i należało tak projektować te układy, aby w miarę możliwości tłumić pulsacje związane z tym zakłóceniem. Ponieważ amplituda tego zakłócenia jest proporcjonalna do prędkości sygnału zadanego, starano się tak projektować układy regulacji, aby tłumić przede wszystkim pulsacje związane z zakłóceniem przy maksymalnej prędkości sygnału zadanego. Poniżej przedstawiono tabelę pokazującą wartość skoku oraz pulsację zakłócenia generowanego przez rewolwer w zależności od osi i prędkości sygnału zadanego. Wybrano maksymalną i minimalną prędkość sygnału, dla którego projektowano układ regulacji. Wartość skoku to średnia różnica między wartością zmierzoną przez rezolwer w chwili k i w chwili k-1. Odstęp czasowy między pomiarami wynosi 1.04 ms. Wartości skoku są zawsze dodatnie niezależnie od znaku sygnału zadanego. Oś Prędkość sygnału zadanego Średnia pulsacja Średnia wartość skoku [impulsy_z_rezolwera/sek] zakłócenia [1/sek] [impulsy_z_rezolwera] 1 5000 7.95 4 1 15000 23.91 8.5 2 5000 7.95 4 2 15000 23.91 8.5 3 5000 7.95 4 3 15000 23.91 8.5 4 5000 7.95 4 4 20000 31.56 11 5 5000 7.95 4 5 30000 47.82 17 6 5000 7.95 4 6 30000 47.82 17 Tabela 13 Pulsacja zakłócenia i wartość skoku dla poszczególnych osi 59
4. PROJEKTOWANIE REGULATORÓW OSI ROBOTA IRP6 Wszystkie regulatory działają z czasem próbkowania 1.04 ms co oznacza, że sterowanie jest wystawiane co 1.04 ms. Regulatory projektowane są metodą częstotliwościową. Wejściem regulatora jest uchyb mierzony w jednostkach rezolwera, a wyjściem są liczby w zakresie od 255 do 255, zdefiniowane w punkcie 2.2. jako impulsy wymuszenia. Liczby te zamieniane są na wypełnienie sygnału PWM pobudzającego silnik w osi robota (patrz punkt 2.2.). W poniższej tabeli przedstawiono wartości przemieszczenia osi wyrażone w jednostkach układu SI, odpowiadające przemieszczeniu osi o jeden impuls. Impulsy z rezolwera Odpowiadająca wartość wyrażona w jednostkach układu SI Oś 1 1 5.8651 μm Oś 2 1 0.00335 Oś 3 1 zależność nieliniowa Oś 4 1 zależność nieliniowa Oś 5 1 0.00412 Oś 6 1 0.00687 Tabela 14 Przelicznik jednego impulsu z rezolwera na wartość wyrażoną w jednostkach układu SI. 4.1. Opis procesu projektowania układu regulacji na przykładzie osi 6 W punkcie tym opisano proces projektowania układu regulacji w oparciu o metodę częstotliwościową. Metoda ta została opisana w [8]. 4.1.1. Założenia projektowe Uchyb w stanie ustalonym jest najmniejszy z możliwych do osiągnięcia. Sygnały zadane o maksymalnej prędkości v max = 30000 [impulsy_rezolwer/sek] i przyspieszeniu a max = 300000 [impulsy_rezolwer/sek 2 ] są przenoszone z jak najmniejszym uchybem. Okres próbkowania wynosi 1.04 ms. Struktura układu regulacji: rys. 67 Schemat układu regulacji. 60
K Obiekt G(s) ma strukturę:. Wzmocnienie K dotyczy modelu liniowego. Tabela s( Ts +1) z wartościami parametru K dla każdej osi znajduje się w punkcie 3.7. Okres próbkowania T p = 1.04 ms Wartości parametrów K i T dla osi 6: K należy do przedziału <153 ; 218> [impulsy_rezolwer/impulsy_wymuszenia] T należy do przedziału <0.04 ; 0.1> [sek]. Analizując tabelę 10 (punkt 3.6. strona 48) należy zwrócić uwagę na fakt, że obiekt cechuje się stałą czasową T 0.044 [sek] dla dużych i średnich wymuszeń. Wobec tego dla ułatwienia przyjęto jedną wartość stałej czasowej T = 0.044 [sek]. Ponieważ projektowano regulator dla obiektu, którego parametry należą do pewnego przedziału, na wszystkich rysunkach zamieszczonych w tej pracy znajdują się charakterystyki dla skrajnych wartości parametrów: K=153, oraz K=218. Charakterystyki dla skrajnych wartości mają ten sam kolor. Jeśli charakterystyki dla skrajnych wartości będą miały różne kolory zostanie to wyraźnie zaznaczone. 4.1.2. Transmitancja HG(z) Celem tej pracy jest zaprojektowanie dyskretnego układu regulacji dla obiektu pracującego z czasem ciągłym. Z tego powodu na rys. 67 przed obiektem G(s) znajduje się ekstrapolator zerowego rzędu ZOH, a za obiektem znajduje się impulsator. Zatem z punktu widzenia regulatora obiektem jest układ złożony z ekstrapolatora zerowego rzędu, obiektu ciągłego opisanego uproszczoną transmitancją silnika oraz impulsatora. Dlatego też zamiast posługiwania się transmitancją G(s) należy posługiwać się dyskretną transmitancją HG(z) lub dyskretną transmitancją HG*(jω), gdyż transmitancje te uwzględniają człon ZOH i impulsator związany z obiektem. Wzór obliczeniowy na transmitancję HG(z) jest następujący: z 1 1 G( s) HG( z) = Ζ( L ( )), (4.1.2.1) z s gdzie G(s) to transmitancja obiektu, L to operator przekształcenia Laplace a (transformacja s), a Z to operator przekształcenia Laurenta (transformacja z). 61