Sterowanie mechanizmów wieloczłonowych
Wykład 7 - Matlab Simulink + Sterownik PLC
mgr inż. Piotr Opieka (B&R)
Instytut Automatyki i Robotyki
Warszawa, 2019
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Agenda
1 Oprogramowanie
Automation Studio Matlab/Simulink
Automation Studio Target for Simulink Simulink PLC Coder
2 Przykład zastosowania - wahadło odwrócone
Wahadło odwrócone Algorytm regulacji PID Algorytm regulacji LQR 3 Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID
Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Simulink PLC Coder
B&R Industrial Automation
Rysunek:Logo B&R
Firma założona w 1979 roku w Austrii (Eggelsberg)
Od 2017 tworzy dział Machine & Factory Automation w grupie ABB Ponad 200 biur na całym świecie, ponad 3000 pracowników
W Polsce firma działa pod nazwą B&R Automatyka Przemysłowa Sp. z o.o. i zatrudnia ponad 40 osób
Wszystkie urządzenia programowane z poziomu jednego środowiska
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Automation Studio Matlab/Simulink
Automation Studio Target for Simulink Simulink PLC Coder
Automation Studio
Konfiguracja wszystkich modułów B&R
Programowanie w standardzie IEC 61131-3 oraz C/C++
Rozbudowany symulator Szeroki wachlarz bibliotek
Modułowe aplikacje - mapp Technology
Instalacja
Oprogramowanie dostępne do pobrania ze strony www.br-automation.com
Simulink PLC Coder
Automation Studio
Rysunek:Struktura programu
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Automation Studio Matlab/Simulink
Automation Studio Target for Simulink Simulink PLC Coder
Matlab/Simulink
Program Simulink należy do pakietu numerycznego Matlab firmy MathWorks
Rozwinięty tryb symulacji obiektów z czasem ciągłym i dyskretnym Szeroko wykorzystywany przy tworzeniu i testowaniu algorytmów sterowania
Simulink PLC Coder
Automation Studio Target for Simulink
Rysunek:Generowanie kodu
Automatyczna generacja kodu ze środowiska Matlab/Simulink do projektu w Automation Studio
Możliwość eksportu paczki jako program lub blok funkcyjny Transfer programu bezpośrednio na sterownik
Jednoczesny podgląd online parametrów w Automation Studio i Matlab/Simulink
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Automation Studio Matlab/Simulink
Automation Studio Target for Simulink Simulink PLC Coder
Automation Studio Target for Simulink
Rysunek:On-Target Rapid Prototyping
„On-Target Rapid Prototyping”, czyli transfer algorytmu sterowania utwo- rzonego w środowisku Simulink na sterownik. W ten sposób możliwe jest uzyskanie bardziej zaawansowanych algorytmów sterowania w krótszym czasie i wyeliminowanie błędów w kodzie programu.
Simulink PLC Coder
Automation Studio Target for Simulink
Rysunek:Hardware-in-the-Loop
„Hardware-in-the-Loop”, czyli transfer modelu obiektu utworzonego w śro- dowisku Simulink na sterownik. Umożliwia przetestowanie zaimplemento- wanego już algorytmu sterowania na programie symulującym rzeczywisty obiekt. Dzięki temu testy są bezpieczne i zmniejszają ryzyko uszkodzenia rzeczywistego obiektu.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Automation Studio Matlab/Simulink
Automation Studio Target for Simulink Simulink PLC Coder
Simulink PLC Coder
Produkt firmy MathWorks
Generator kodu ze środowiska Matlab/Simulink na języki IEC 61131-3 Structured Text oraz Ladder Diagram
Niezależna platforma kompatybilna między innymi ze sterownikami:
B&R, Beckhoff, Rockwell, Siemens i środowiskiem CODESYS Obsługa jedynie bloków z czasem dyskretnym
Wahadło odwrócone
Rysunek:Wahadło odwrócone
Obiekt typu SIMO (single input, multiple outputs) Dwie wielkości sterowane - położenie i odchylenie Jedna wielkość sterująca - siła przyłożona do wózka Dwa punkty równowagi - pozycja pionowa górna i dolna
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Wahadło odwrócone Algorytm regulacji PID Algorytm regulacji LQR
Wahadło odwrócone
Rysunek:Rozkład sił w wahadle
Sumując siły działające na wózek w pionie i w poziomie otrzymujemy od- powiednie układy równań. Wiele algorytmów regulacji wymaga podania modelu obiektu w postaci równań stanu. W tym celu należy zlinearyzować układ równań w punkcie pracy.
Stanowisko laboratoryjne
Rysunek:Stanowisko wahadła odwróconego
Główny element stanowiska stanowi wózek z wahadłem, który został umiesz- czony na prowadnicy. Układ jest sterowany przez podawanie momentu siły na wał silnika, którego ruch jest przenoszony na wózek za pomocą paska zębatego. Do sensorów należy zaliczyć dwa potencjometry odczytujące po- zycję liniową oraz odchylenie kątowe wahadła i krańcówki po obu stronach konstrukcji.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Wahadło odwrócone Algorytm regulacji PID Algorytm regulacji LQR
Algorytm regulacji PID
Rysunek:Układ regulacji PID
Prosty i popularny regulator Kontrola jednej wielkości Uniwersalne rozwiązanie
Algorytm regulacji LQR
Regulator optymalny z kryterium kosztu Jednoczesna kontrola wielu wielkości Wykorzystuje model układu
Przykładowa funkcja kosztów:
JLQR = Z ∞
0
[XT(t)QX (t) + UT(t)RU(t)]dt
gdzie Q i R są diagonalnymi macierzami wag umożliwiającymi zmianę wpływu poszczególnych zmiennych stanu i sterowań na przedstawione kry- terium jakości
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Zamodelowane wahadło odwrócone
W ćwiczeniu wykorzystamy nieliniowy model wahadła odwróconego z wej- ściem ”Torque in”oraz wyjściami ”x out”oraz ”theta out”.
Ćwiczenia z regulatorem PID
Rysunek:Krok 1
Aby dobrać nastawy dla regulatora PID otwieramy program Simulink, a następnie plik o nazwie „wahadlo odwrocone”.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 2
Dodajemy blok regulatora PID. Znajdziemy go w kategorii „Simulink” -
„Continuous”.
Ćwiczenia z regulatorem PID
Rysunek:Krok 3
Tworzymy sprzężenie zwrotne od położenia kątowego.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 4
Wchodzimy w ustawienia regulatora PID, klikając na niego dwa razy. Wchodzimy w zakładkę „PID Advanced” i ustalamy limity na wyjściu. W rzeczywistym obiek- cie moment siły na silniku jest ograniczony do wartości 1,5 Nm i taką też wartość wpisujemy. Zmiany zatwierdzamy przyciskiem „Apply”.
Ćwiczenia z regulatorem PID
Rysunek:Krok 5
Wracamy do zakładki „Main” i klikamy na opcję samostrojenia „Tune”.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 6
Po wykonaniu odpowiednich operacji przez Tuner, naszym oczom powinno się ukazać następujące okno. Aby wyświetlić wyszukane wartości nastaw, klikamy opcję „Show parameters”.
Ćwiczenia z regulatorem PID
Rysunek:Krok 7
Do ręcznego skorygowania parametrów używamy suwaka. Przesuwając go w lewo lub w prawo, ustawiamy agresywność i szybkość algorytmu. Wybierając wariant
„Extended” otrzymujemy dostęp do dwóch suwaków – „Bandwidth” i „Phase margin”. Pierwszy określa agresywność algorytmu, drugi zaś decyduje o stabil- ności. Do wyboru mamy także rodzaj wyświetlanego wykresu. Wykres odpowiedzi skokowej nie będzie przydatny dla naszego układu, wybieramy więc wyświetlanie charakterystyki Bodego.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 8
Po ręcznej korekcie parametrów i wybraniu odpowiednich nastaw zatwier- dzamy zmiany i wychodzimy z ustawień regulatora. Aby zasymulować reak- cję układu na wytrącenie ze stanu równowagi, dodajemy dwa bloki „Step”.
Ćwiczenia z regulatorem PID
Rysunek:Krok 9
W pierwszym bloku ustawiamy skok z „0” na „1” w dziesiątej chwili cza- sowej.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 10
Aby stworzyć impuls, w drugim bloku ustawiamy skok z „0” na „-1” w jedenastej chwili czasowej.
Ćwiczenia z regulatorem PID
Rysunek:Krok 11
Odpowiednio sumujemy wypadkowy sygnał impulsu z sygnałem sterującym z regulatora za pomocą bloku „Add” z kategorii „Math Operations”. Aby dodać trzecie wejście, wpisujemy dodatkowy plus w odpowiedniej rubryce.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 12
Wszystkie bloki łączymy ze sobą w odpowiedni sposób.
Ćwiczenia z regulatorem PID
Rysunek:Krok 13
Dodajemy bloki „Scope” do obserwacji interesujących nas zmiennych, czyli war- tości sterowania, położenia kątowego i położenia liniowego wahadła. Przy testach należy sprawdzać odpowiedź układu, a więc zarówno położenie kątowe, jak i li- niowe. Patrząc jedynie na samo położenie kątowe możemy, na przykład, błędnie stwierdzić, że układ regulacji zrekompensował zakłócenie i wahadło stoi w miej- scu.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 14
Aby dokonać ponownego samostrojenia należy pamiętać o odłączeniu sy- gnału impulsu od układu!!!
Ćwiczenia z regulatorem PID
(a)Położenie kątowe (b)Położenie liniowe Rysunek:Przykładowa odpowiedź układu
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Krok 15
W praktyce obiekt jest nieco bardziej skomplikowany. Dodajmy bardzo małe opóźnienie w torze sterowania o wartości 6 ms. W rzeczywistym obiekcie właśnie z takim opóźnieniem będziemy mieli do czynienia (czym może to być spowodowane?).
Ćwiczenia z regulatorem PID
Rysunek:Krok 16
W tym celu dodajemy blok „Transport Delay” z kategorii „Continuous” i wpisujemy odpowiednią wartość do parametru opóźnienia.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Ćwiczenia z regulatorem PID
Rysunek:Przykładowe wyjście z regulatora (moment)
Dodane opóźnienie sprawia, że układ jest trudniejszy do regulacji, na wyj- ściu z regulatora mogą nawet pojawić się drgania niegasnące. Testujemy nastawy do uzyskania zadowalających rezultatów.
Dodanie regulacji położenia liniowego wahadła
Rysunek:Układ regulacji z dwoma regulatorami PID
Aby kontrolować oba parametry wahadła, czyli położenie kątowe i liniowe, można dodać dodatkowy regulator PID. W najprostszym przypadku mogą to być dwa niezależne regulatory, których wartości sterowań są sumowane.
Pamiętajmy, że regulacja położenia liniowego ma znacznie mniejszy prio- rytet niż kątowego (dlaczego?).
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Sterowanie regulatorem LQR
Rysunek:Układ regulacji z algorytmem LQR
Na potrzeby algorytmu model wahadła przedstawiono w postaci równań stanu z dodaną macierzą sprzężenia zwrotnego od stanu.
Sterowanie regulatorem LQR
Wartości macierzy stanu modelu wahadła:
A =
0 1 0 0
0 −1, 615 0, 527 0
0 0 0 1
0 −3, 314 21, 204 0
B =
0 2, 485
0 5, 098
C =
1 0 0 0
0 0 1 0
D =
0 0
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Sterowanie regulatorem LQR
Do obliczenia odpowiednich wartości można wykorzystać funkcję programu Matlab o nazwie ”lqr”. Funkcja ta pozwala uzyskać parametry potrzebne do realizacji sterowania, od użytkownika żądając jedynie podania macierzy A i B układu oraz macierzy wag Q, R (i opcjonalnie N).
Program uwzględnia następującą funkcję kosztów:
JLQR = Z ∞
0
[XT(t)QX (t) + UT(t)RU(t) + 2XT(t)NU(t)]dt
Sterowanie regulatorem LQR
Składnia funkcji ma postać:
[K , P, e] = lqr (A, B, Q, R, N) gdzie,
K - macierz sprzężenia od stanu, P - rozwiązanie równania Riccatiego, e - położenie biegunów układu zamkniętego, A - macierz stanu układu,
B - macierz wejść układu, Q, R, N - macierze wag.
Oprogramowanie Przykład zastosowania - wahadło odwrócone Ćwiczenia w praktyce
Regulacja położenia kątowego z wykorzystaniem regulatora PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu PID Regulacja położenia kątowego i liniowego z wykorzystaniem algorytmu LQR
Sterowanie regulatorem LQR
Dobór nastaw regulatora LQR sprowadza się do wyznaczenia wag poszczegól- nych zmiennych. Do wektora stanu X w naszym układzie należą kolejno wartości położenia i prędkości liniowej i kątowej.
Stąd otrzymano następujące macierze wag regulatora LQR:
Q =
W1 0 0 0
0 0 0 0
0 0 W2 0
0 0 0 0
oraz
R = W3
gdzie,
W1 - waga położenia liniowego, W2 - waga położenia kątowego, W3 - waga sterowania,
Sterowanie mechanizmów wieloczłonowych
Wykład 7 - Matlab Simulink + Sterownik PLC
mgr inż. Piotr Opieka (B&R)
Instytut Automatyki i Robotyki
Warszawa, 2019