Laboratorium Metod Optymalizacji 216 Metody Optymalizacji Laboratorium nr 4 Metoda najmniejszych kwadratów 1. Za pomocą funkcji lsqcurvefit dobrać parametry a i b funkcji: Posiadając następujące dane pomiarowe: grupa 1: x = [.4,.8, 1.2, 1.6, 2., 2.3] y = [75, 1, 14, 2, 27, 375] x = [1, -1]; grupa 2: x = [.1,.35,.66,.89, 1.3, 1.9] y = [3.5, 8, 22.5, 48.4, 189.7, 1398.7] x = [1, 1]; f(x) = ae bx grupa 3: x = [.1,.25,.56,.79, 1.3, 1.7] y = [1.1618, 1.455, 2.3164, 3.277, 7.287, 12.871] x = [2.5, 6.3]; grupa 4: x = [.2,.4,.8,.9, 1.3, 1.5] y = [.5637,.6356,.88,.858, 1.97, 1.2298] x = [33, 11]; grupa 5: x = [.2,.4,.8, 1, 1.2, 1.4] y = [2.9836, 4.4511, 9.961, 14.7781, 22.464, 32.8893] x = [.3, 11.1]; grupa 6: x = [.11,.22,.33,.55,.77,.99] y = [.19,.247,.349,.4894,.7854, 1.263] x = [8, 18]; grupa 7: x = [1, 1.5, 1.75, 2.45, 3.8, 4.1] y = [.117,.1789,.2213,.412, 1.264, 1.6311] x = [5, -4.8]; grupa 8: x = [.8,.95, 1.15, 2.45, 3.33, 4.44] y = [.5595,.6178,.749, 1.6625, 2.9717, 6.1826] x = [1.6, 3.6]; Opracował: Łukasz Kuczkowski Strona 1
Laboratorium Metod Optymalizacji 216 2. Za pomocą funkcji lsqnonlin znaleźć wartość wektora x, który minimalizuje funkcje postaci: n+3 f(x 1, x 2 ) = (5 + kx 1 2 + x 1 x 2 + e kx 1 + e kx 2 ) 2 k=1 gdzie: n numer grupy, x = [.n,.(n+1)] 3. Wykorzystując metodę najmniejszych kwadratów (funkcja lsqnonlin) dobrać parametry regulatora PID dla modelu ZAD3_MO_LAB3_MODEL.mdl. Nie dokonywać zmian w modelu poza wpisaniem parametrów a 1 i a 2 (patrz pomoc do zadania 3). 4. Rozważany system przedstawia odwrócone wahadło osadzone na ruchomym wózku (rys. 1). Należy zauważyć, że wahadło ustawione na wózku jest niestabilne bez sterowania, a dynamika systemu jest nieliniowa. Jeżeli wózek nie będzie się poruszał, wahadło przewróci się. Celem sterowania jest balansowanie wahadłem w osi x za pomocą siły F przełożonej do wózka. Wahadło porusza się w płaszczyźnie pionowej. Wejście do systemu jest siła F, która porusza wózek w płaszczyźnie poziomej. System jest dwuwymiarowy, ponieważ wyjściem z systemu jest położenie kątowe wahadła θ oraz pozioma pozycja wózka x (patrz rys. 1). Rys 1. Odwrócone wahadło Na potrzeby zadania przyjęto następujące oznaczenia: M masa wózka m masa wahadła b współczynnik tarcia wózka l długość wahadła (od środka ciężkości do wolnego końca) I moment bezwładności wahadła F siła przyłożona do wózka x położenie wózka θ wychylenie kątowe wahadła od pionu (w dół) Opracował: Łukasz Kuczkowski Strona 2
Laboratorium Metod Optymalizacji 216 Analiza sił w układzie oraz równania. W celu analizy układu należy wyprowadzić dwa równania opisujące system na podstawie modelu równowagi sił (rys. 2). Rys 2. Rozkład sił w modelu odwróconego wahadła Zsumowanie sił w kierunku poziomym dla wózka daje: Mx + bx + N = F (1) Zsumowaniu sił w kierunku poziomym dla wahadła daje równanie na siłę reakcji N: N = mx + mlθ cosθ mlθ 2 sinθ (2) Po podstawieniu (2) do (1) otrzymujemy pierwsze z równań opisujących system: (M + m)x + bx + mlθ cosθ mlθ 2 sinθ = F (3) W celu otrzymania drugiego równania należy zsumować siły prostopadłe do wahadła: P sinθ + N cosθ mg sinθ = mlθ + mx cosθ (4) Aby pozbyć się z (4) sił P oraz N należy zsumować momenty względem środka ciężkości wahadła: Pl sinθ Nl cosθ = Iθ (5) oraz podstawić (5) do (4) w wyniku czego uzyskamy drugie równanie opisujące system. (I + ml 2 )θ + mgl sinθ = mlx cosθ (6) Ponieważ klasyczna analiza i projektowanie układów sterowania wymaga, aby system był liniowy równania muszą zostać zlinearyzowane. Zakładamy, że system będzie linearyzowany w okolicach pionowej pozycji równowagi θ = π oraz, że wahadło wychyla się tylko w okolicach tego punktu. Zakłada się, że odchylenie wahadła od pionowej pozycji równowagi nie będzie większe niż 2. Niech φ oznacza odchylenie wahadła od pionowej pozycji równowagi, wtedy: Opracował: Łukasz Kuczkowski Strona 3
Laboratorium Metod Optymalizacji 216 θ = π + φ (7) Zakładając małe odchylenia od pozycji równowagi możemy przyjąć następujące przybliżenia funkcji nieliniowych w równaniach: cosθ = cos(π + φ) 1 (8) sinθ = sin(π + φ) φ (9) θ 2 = φ 2 (1) Po wprowadzeniu powyższych uproszczeń do funkcji nieliniowych otrzymujemy opis układu w postaci dwóch równać liniowych. Siła F została zastąpiona przez wejście u. (I + ml 2 )φ mglφ = mlx (11) (M + m)x + bx + mlφ = u (12) Zlinearyzowane równia ruchu (11) i (12) po sprowadzeniu do serii równań różniczkowych pierwszego rzędu mogą zostać przedstawione w postaci równań stanu: x x [ φ ] = φ [ 1 (I+ml 2 )b mlb m 2 gl 2 mgl(m+m) x x [ 1 φ] + φ ] [ I+ml 2 ml ] u (13) x y = [ 1 1 ] [ x φ] + [ ] u (14) φ gdzie: M masa wózka kg m masa wahadła kg b współczynnik tarcia wózka N/m/sec l długość wahadła (od środka ciężkości do wolnego końca) m I moment bezwładności wahadła kg m 2 u siła działająca na wózek N x współrzędna położenia wózka m φ kąt wychylenia wahadła (mierzony od pionu) rad g przyspieszenie ziemskie m/s 2 Opracował: Łukasz Kuczkowski Strona 4
Laboratorium Metod Optymalizacji 216 Polecenie: Posługując się metoda najmniejszych kwadratów należy wyznaczyć, na podstawie danych pomiarowych, estymaty parametrów m, l, I modelu odwróconego wahadła. Okres próbkowania wielkości mierzonych (u, φ, x) jest równy T =,1 sek. Należy: sformułować problem optymalizacji, Przyjąć: M =,5 b =,1 g = 9,81 rozwiązać zadanie optymalizacji przy użyciu funkcji fminunc, rozwiązać zadanie optymalizacji przy użyciu funkcji fmincon, przyjąć ograniczenia: o m < eps, 2 >, o l < eps, 1 >, o I < eps, 1 >, rozwiązać zadanie optymalizacji przy użyciu funkcji lsqnonlin. Dane pomiarowe dostępne są w pliku dane1_wah_grupa*.mat. Sprawozdanie powinno zawierać: Zadanie 1: Zdefiniowany problem optymalizacji Treść m-pliku z funkcją celu oraz wywołaniem lsqcurvefit Wynik działania funkcji Wykres dopasowanej krzywej z naniesionymi punktami pomiarowymi Zadanie 2: Treść m-pliku z funkcją celu. Treść m-pliku minimalizującego podaną funkcję. Wynik działania funkcji. Zadanie 3: Model ZAD3_MO_LAB3_MODEL.mdl. Wartości przyjętych parametrów a 1 i a 2. Wykres odpowiedzi układu po inicjacji parametrów pid_p, pid_i, pid_d. Dobrane eksperymentalnie wartości początkowe wzmocnień regulatora. Wykres odpowiedzi układu po wprowadzeniu dobranych eksperymentalnie wzmocnień. Treść m-pliku z funkcją function F = uchyb(nastawy). Treść m-pliku przeprowadzającego dobór wzmocnień regulatora PID metodą najmniejszych kwadratów minimalizując uchybu regulacji. Wykres odpowiedzi układu po optymalizacji wzmocnień. Opracował: Łukasz Kuczkowski Strona 5
Laboratorium Metod Optymalizacji 216 Przeprowadzić testy działania algorytmu po zamianie parametrów a 1, a 2, tzn. a 1 = a 2 ; a 2 = a 1. Przeprowadzić testy dla różnych punktów startowych pid. Jaki będzie efekt działania algorytmu, jeżeli układ w punkcie startowym jest niestabilny? Wnioski i spostrzeżenia. Zadanie 4: M-plik ze zdefiniowanym modelem odwróconego wahadła Sformułowany problem optymalizacji Rozwiązanie uzyskane każdą z metod Wykres przedstawiający wartości błędu dla każdej próbki Wykres porównujący wyniki pomiarowe wielkości sterowanych od odpowiedzi układu z estymowanymi parametrami. Wnioski i spostrzeżenia (rozważyć sens stosowania ograniczeń) Opracował: Łukasz Kuczkowski Strona 6
Laboratorium Metod Optymalizacji 216 Pomoc: Zadanie 1: Patrz: wykład z Metod Optymalizacji Zadanie 2: Funkcja lsqnonlin rozwiązuje nieliniowy problem przybliżania rozwiązań układów nadokreślonych metodą najmniejszych kwadratów, zdefiniowany jako: min f(x) 2 2 = min(f 1 (x) 2 + f 2 (x) 2 + + f n (x) 2 ) x x Zamiast obliczać wartość f(x) 2 2 (sumę kwadratów), lsqnonlin wymaga funkcji zdefiniowanej w postaci wektorowej: f 1 (x) f f(x) = [ 2 (x) ] f n (x) Podpowiedź: Rozważyć użycie wektora k = [1 : n+3] w celu zapisania funkcji sumy w postaci wektora. Zadanie 3: Zapoznać się z modelem ZAD3_MO_LAB3_MODEL.mdl. Do modelu wprowadzić wartością parametrów bloku transmitancji: a 1, a 2 liczba liter w nazwiskach; a 1 = a 1 ; a 2 = a 1 a 2. Do przestrzeni roboczej Matlab wprowadzić zmienne odpowiadające wzmocnieniom regulatora PID, odpowiednio pid_p = 1, pid_i = 1, pid_d = 1. Przeprowadzić symulację modelu i ocenić jakość działania na podstawie uzyskanego wykresu. Dobrać metodą prób i błędów wstępne nastawy regulatora tak, aby układ był stabilny. Stworzyć funkcję celu: function F = uchyb(nastawy) przypisującą kolejne wartości z wektora nastawy do wzmocnień pid_p, pid_i, pid_d, następnie przeprowadzającą symulację modelu za pomocą polecenia sim z parametrami SrcWorkspace, Current oraz StopTime, 1. Do wektora F zwracać wartości uchybu regulacji. W osobnym m-pliku stworzyć zmienną pid i wprowadzić do niej wcześniej dobrane eksperymentalnie parametry regulatora: pid = [pid_p pid_i pid_d]; Ustawić odpowiednie parametry optymalizacji: options = optimset('algorithm', 'levenberg-marquardt', 'Display', 'off', 'TolX',.1, 'TolFun',.1); Opracował: Łukasz Kuczkowski Strona 7
Laboratorium Metod Optymalizacji 216 Wywołać funkcję lsqnonlin dla wcześniej zdefiniowanej funkcji celu uchyb uwzględniają punkt początkowy oraz parametry: pid_out = lsqnonlin(@uchyb, pid, [], [], options); Przypisać otrzymane nastawy do wzmocnień w modelu: pid_p = pid_out(1); pid_i = pid_out(2); pid_d = pid_out(1); Zadanie 4: Niech: λ 1 λ 2 λ = [ ] oznacza wektor poszukiwanych parametrów modelu wahadła; λ 3 u = [u(1), u(2),, u(n)] T wektor wyników pomiarów wielkości sterującej; y = [y(1), y(2),, y(n)] T wektor wyników pomiarów wielkości sterowanych; gdzie: y(k) = [x(k), φ(k)] Schemat procedury poszukiwania wektora λ przedstawia rys.3. Rys 3. Schemat procedury optymalizacji Model odwróconego wahadła przedstawić w postaci równań stanu w Matlab za pomocą polecenia ss. Przekształcić model w postaci równań stanu do transmitancji za pomocą polecenia tf. Opracował: Łukasz Kuczkowski Strona 8