Metody Optymalizacji Laboratorium nr 7 Zagadnienia optymalizacji
Transkrypt
Metody Optymalizacji Laboratorium nr 7 Zagadnienia optymalizacji
Laboratorium Metod Optymalizacji 2016 Metody Optymalizacji Laboratorium nr 7 Zagadnienia optymalizacji wielokryterialnej 1. Zadanie 1: Zadanie polega na stworzeniu losowej listy 20 samochodów o losowych parametrach. Każdy samochód posada trzy cechy: cena, moc silnika, zużycie paliwa l /100 km . Numer samochodu 1 .... 20 cena Zakres ceny od 20 000 do 40 000 moc silnika Zakres mocy silnika od 110 do 160 zużycie paliwa Zużycie paliwa od 6 do 10 litrów Należy wybrać najlepszy samochód stosując się do założeń: - minimalizacja ceny samochodu. - maksymalizacja mocy silnika. - minimalizacja zużycia paliwa. Do rozwiązania zadania wykorzystać metodę diagram Hassego. 2. Zadanie 2: Wykorzystując dane z poprzedniego zadania rozwiązać zadanie z wykorzystaniem kryterium wagowego (należy przeskalować wyniki, aby każda cecha należała z zakresu 0 do 1) dla dwóch klientów. Klient I klient II klient Waga ceny 0.3 0.5 Waga dla mocy silnika 0.7 0.2 Waga dla zużycia paliwa 0.4 0.6 3. Zadanie 3: Dobrać parametry filtru liniowego (FIR) dolnoprzepustowego z amplitudą równą jeden dla częstotliwości od 0 do 0,15 Hz i amplitudą zero dla częstotliwości od 0,2 Hz do 1 Hz z wykorzystanie funkcji fgoalattain. Do ustawienie parametrów funkcji użyć optimoptions. Aby wykonać zadanie należy: 1. Napisać funkcję filtmin zwracającej wartość wyjściową dla filtru. Funkcja posiada dwa parametry a i w. Należy sprawdzić długość a( wzmocnień filtra FIR); Napisać funkcję obliczającą wartośc wyjściową filtra. ( )= ( )cos (2 ) 2. Napisać drugą funkcję wykorzystującą funkcje pierwszą: Sygnał wejściowy dla określonych częstotliwości Przedział częstotliwości Określenie problemu: Określenie jaki sygnał wyjściowy dla jakich częstotliwości określenie wagi dla wszystkich próbek Wywołanie funkcji optymalizacji Opracował: Krzysztof Jaroś Strona 1 Laboratorium Metod Optymalizacji 2016 options = optimoptions('fgoalattain','EqualityGoalCount',length(goal)); [a,fval,attainfactor,exitflag]=fgoalattain(@(x)filtmin(x,w0),... a0,goal,weight,[],[],[],[],[],[],[],options) 4. Zadanie 4: Aby wykonać zadanie, należy skopiować poniższy kod i utworzyć z niego osobny m plik, który będzie później wywoływany. Wywołanie danego kodu spowoduje uruchomienie symulacji, która jest wbudowana w środowisko Matlab-simulink. Kod ten służy do optymalizacji parametrów regulatora PID. Funkcja ta posiada dwie zmienne a1 i a2, które przekazywane są do transmitancji obiektu w symulacji. W zadaniu należy zapoznać się z działaniem poniższej funkcji oraz przekształcenie jej do postaci umożliwiającej optymalizacje parametrów regulatora PID dla dowolnej transmitancji drugiego rzędu. Aby wykonać to zadanie, należy po jednokrotnym uruchomieniu programu zmienić parametry transmitancji obiektu, aby wszystkie one były podawane w czasie wywołania funkcji. Program należy przetestować na dowolnej transmitancji drugiego rzędu. function [Kp, Ki, Kd] = runtrackmm optsim % initialize Simulink(R) pid0 = [0.63 0.0504 1.9688]; % a1, a2, yout are shared with TRACKMMOBJ and TRACKMMCON a1 = 3; a2 = 43; % Initialize plant variables in model yout = []; % Give yout an initial value pold = []; % tracks last pid options = optimoptions('fminimax','Display','iter'); pid = fminimax(@trackmmobj,pid0,[],[],[],[],[],[],... @trackmmcon,options); Kp = pid(1); Ki = pid(2); Kd = pid(3); function F = trackmmobj(pid) % Track the output of optsim to a signal of 1. % Variables a1 and a2 are shared with RUNTRACKMM. % Variable yout is shared with RUNTRACKMM and % RUNTRACKMMCON. updateIfNeeded(pid) F = yout; end function [c,ceq] = trackmmcon(pid) % Track the output of optsim to a signal of 1. % Variable yout is shared with RUNTRACKMM and % TRACKMMOBJ updateIfNeeded(pid) end c = -yout(20:100)+.95; ceq=[]; Opracował: Krzysztof Jaroś Strona 2 Laboratorium Metod Optymalizacji 2016 function updateIfNeeded(pid) if ~isequal(pid,pold) % compute only if needed Kp = pid(1); Ki = pid(2); Kd = pid(3); myobj = sim('optsim','SrcWorkspace','Current'); yout = myobj.get('yout'); pold = pid; end end end Sprawozdanie powinno zawierać: Zadanie1: treść wszystkich m-plików tabela danych rozwiązania diagram Hassego wraz z uzasadnieniem wnioski spostrzeżenia Zadanie 2: treść wszystkich m-plików obliczone wagi dla wszystkich samochodów rozwiązania z wykorzystaniem metody wagowej wnioski i spostrzeżenia Zadanie 3: treść wszystkich m-plików wykres Amplitudowo fazowy obliczonego filtra oraz sygnał wejściowy i wyjściowy dla sygnału o różnych częstotliwościach. wnioski i spostrzeżenia Zadanie 4: transmitancję przekształconą treść m pliku wyniki symulacji wnioski i spostrzeżenia Pomoc: Zadanie 1 Graf Hassego: Jest grafem skierowanym ( , ), gdzie X jest zbiorem porównywanych elementów, a R jest relacją częściowego porządku, określoną na elementach zbioru X w taki sposób, że R ↔ "lepszy od" Opracował: Krzysztof Jaroś Strona 3 Laboratorium Metod Optymalizacji 2016 Lepsze rozwiązanie jest to które jest lepsze we wszystkich cechach, jeżeli nie można stwierdzić jednogłośnie że rozwiązanie jest lepsze to rozwiązań nie można porównać. Najlepszym rozwiązaniem jest przypadek kiedy rozwiązanie danego jest lepsze od pozostałych przypadków z którymi mógł zostać porównany. Materiały pomocnicze: Wykład Zadanie 2 W metodzie wagowej należy przyporządkować pewną wagę ( ważność) każdej z cechy w rozwiązaniu. Przed rozpoczęciem jednak tej czynności należy znormalizować przedziały otrzymywanych wartości żeby mogły one być ze sobą porównywane. Przykład normalizacji: ść ść = ść Obliczanie wartości oceny produktu: ść = ∗ ść Materiały pomocnicze: Wykład Zadanie 3 Odpowiedź częstotliwościowa ( ) dla filtru FIR ( )= ( )= ℎ( ) ( )cos (2 ) gdzie ( )- jest amplitudą odpowiedzi częstotliwościowej a(n)- biorąc pod uwagę funkcję fgoalattainbędzie zmieniać wzmocnienia aby obliczyć wartość odpowiedzi w pożądanej tolerancji. Opcje dla fgoalattain options = optimoptions('fgoalattain','EqualityGoalCount',length(cel)); Materiały pomocnicze: http://www.mathworks.com/help/optim/ug/example-signal-processing-usingfgoalattain.html#f25076 Zadanie 4 Materiały pomocnicze: Plik źródłowy -http://www.mathworks.com/help/optim/ug/example-using-fminimax-with-asimulink-model.html Opracował: Krzysztof Jaroś Strona 4