Jakub Wierciak Człowiek- najlepsza inwestycja Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Modelowanie (Osowski 1997) Modelowanie i symulacja zjawisk i procesów zachodzących w układach dynamicznych polega na przyporządkowaniu im odpowiedniej postaci opisu matematycznego, określeniu parametrów funkcji użytych w modelu, a następnie rozwiązaniu ich przy użyciu wybranego symulatora. 1
Rodzaje modeli (Ljung 1987) wyobrażeniowe graficzne matematyczne (analityczne) symulacyjne (programowe) Symulacja działania systemu (Osowski 1997) Symulacja rozwiązanie zadania zapisanego w postaci modelu matematycznego z użyciem symulatora, najczęściej w dziedzinie czasu. 2
SIMULINK (Mrozek, Mrozek 1998) SIMULINK jest interaktywnym pakietem przeznaczonym do modelowania, symulacji i analizy dynamicznych układów ciągłych, układów dyskretnych w czasie oraz mieszanych tzn. dyskretno-ciągłych. SIMULINK jest zintegrowany z MATLAB-em i nie jest możliwe jego używanie bez zainstalowania MATLAB-a. Symulacyjny model siłownika liniowego w języku SIMULINK (Bodnicki, Oleksiuk, Wierciak 2001) 3
Elementy pakietu MATLAB (Zalewski, Cegieła 1999) MATLAB jest programem przeznaczonym do wykonywania różnorodnych obliczeń numerycznych. Na całość pakietu składają się następujące elementy: Interpreter języka programowania wraz z bibliotekami podstawowych działań i obliczeń na macierzach (odwracanie macierzy, rozkłady macierzy, wartości własne i inne) Standardowe biblioteki procedur napisanych w języku programu MATLAB (w tym obliczanie wartości funkcji elementarnych i specjalnych, całkowanie numeryczne, rozwiązywanie układów równań różniczkowych zwyczajnych, podstawowe obliczenia statystyczne) Biblioteki dodatkowe (ang. toolboxes), które zawierają procedury wspomagające obliczenia numeryczne w różnych zastosowaniach Nakładki dodatkowe programy napisane w języku MATLAB, które ułatwiają realizację obliczeń określonego rodzaju np. Simulink nakładka umożliwiająca interakcyjne definiowanie struktury układu sterowania oraz wygodną jego symulację Elementy pakietu MATLAB (The MathWorks 2008) 4
Praca w środowisku MATLAB (Zalewski, Cegieła 1999) MATLAB stanowi w istocie interpreter języka, zaprojektowanego specjalnie z myślą o obliczeniach numerycznych. Praca w środowisku MATLAB-a przypomina pracę w typowym systemie operacyjnym (np. DOS, UNIX) polega na wydawaniu poleceń, które po zatwierdzeniu są wykonywane przez interpreter. W ten sposób bezpośrednio z wiersza poleceń można zdefiniować zmienną, wywołać funkcję lub podprogram zbudowany z poleceń interpretera, a zapisany w specjalnym zbiorze tekstowym zwanym skryptem. Jedynym używanym w MATLAB-ie typem danych są macierze. Obok normalnej funkcji numerycznej występują one także w roli wartości logicznych oraz łańcuchów tekstowych. Wykaz źródeł (Wierciak 2006) Mrozek B., Mrozek Z.: MATLAB i Simulink. Poradnik użytkownika. Wyd. Helion. Gliwice 2004 Mrozek B., Mrozek Z.: Matlab 5.x. Simulink 2.x. Poradnik użytkownika. Wyd. PLJ. Warszawa 1998 Mrozek B., Mrozek Z.: Matlab. Uniwersalne środowisko do obliczeń naukowotechnicznych. CCATIE. Kraków 1995 Osowski S.: Modelowanie układów dynamicznych z zastosowaniem języka Simulink. OWPW. Warszawa 1997 Szymkat M.: Komputerowe wspomaganie w projektowaniu układów regulacji. WNT. Warszawa 1993 Zalewski A., Cegieła R.: Matlab obliczenia numeryczne i ich zastosowanie. Wyd. Nakom. Poznań 1999 5
Pulpit pakietu MATLAB (Mrozek, Mrozek 2004) Okno plików Okno poleceń Okno historii Okno główne SIMULINKA - biblioteki bloków (Mrozek, Mrozek 2004) Wywołanie Simulinka Biblioteki bloków 6
Elementy składowe SIMULINK-a (Mrozek, Mrozek 1998) Biblioteka bloków zestawy bloków używanych do graficznego definiowania modeli Algorytmy numeryczne służące do rozwiązywania układów równań różniczkowych zwyczajnych i linearyzacji modeli oraz określania ich punktu równowagi Funkcje używane przy wykonywaniu symulacji modeli SIMULINK-a z okna poleceń MATALB-a Funkcje stosowane przy konstruowaniu modeli i ich maskowaniu Etapy pracy z SIMULINK-iem (Mrozek, Mrozek 1998) Definiowanie modelu wykonuje się w postaci schematu blokowego czyli graficznie. W otwartym oknie umieszcza się bloki pochodzące z bibliotek SIMULINK-a i łączy się je liniami reprezentującymi przepływ sygnałów. Modele można definiować także w postaci funkcji o specjalnej strukturze, zwanej S-funkcją i zapisanej zgodnie z syntaktyką języka MATLAB lub języka C. Analiza modelu jest realizowana przy użyciu algorytmów numerycznych działających wyłącznie na modelach graficznych, zbudowanych z bloków bibliotecznych SIMULINK-a. Dla poprawnie zdefiniowanego modelu możliwe do wykonania są: - symulacja, - linearyzacja, - określenie punktów równowagi. 7
Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach Okna SIMULINK-a (Mrozek, Mrozek 1998) Okno główne wywoływane z okna poleceń MATLAB-a przez zrealizowanie polecenia simulink - zawiera menu i ikony służące do otwierania poszczególnych bibliotek Okno modelu (robocze) w nagłówku ma nazwę modelu i dostępne wszystkie opcje menu głównego. Takie okno jest stosowane do konstruowania modeli z wykorzystaniem bloków bibliotecznych 8
Robocze okno SIMULINK-a (Mrozek, Mrozek 2004) Menu roboczego okna SIMULINK-a (Mrozek, Mrozek 2004) File otwieranie, zamykanie okien modeli oraz zapis zawartości okien do plików Edit typowe funkcje edycyjne View ustawianie widoku Simulation uruchamianie i zatrzymywanie symulacji, wybór metody i ustalenie jej parametrów Format łączenie i rozdzielanie obiektów, maskowanie, obracanie bloków, optymalizowanie połączeń, wygląd ekranu, czcionki, cienie itp. Tools narzędzia służące do oceny symulacji, w tym debugger Help zbiór objaśnień poszczególnych funkcji Simulinka 9
Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach Praca w roboczym oknie SIMULINKA (Wierciak 2006) 10
Edytor graficzny SIMULINK-a (Mrozek, Mrozek 1998) Służy do graficznego definiowania modeli w postaci schematów blokowych. Podstawowe elementy edytora to: Blok reprezentujący określoną funkcję lub operację, na który składają się - symbol graficzny - nazwa - wejścia i wyjścia - okno dialogowe Napis stanowiący komentarz do modelu Linia reprezentująca przepływ sygnału od wyjścia bloku do wejścia innego bloku Biblioteka elementów ciągłych (The MathWorks, Inc. 2005) 11
Biblioteka elementów nieciągłych (The MathWorks, Inc. 2005) Biblioteka operatorów arytmetycznych cz. 1 (The MathWorks, Inc. 2005) 12
Biblioteka operatorów arytmetycznych cz. 2 (The MathWorks, Inc. 2005) Biblioteka portów i podsystemów (The MathWorks, Inc. 2005) 13
Biblioteka odbiorników (The MathWorks, Inc. 2005) Biblioteka źródeł cz. 1 (The MathWorks, Inc. 2005) 14
Biblioteka źródeł cz. 2 (The MathWorks, Inc. 2005) Biblioteka funkcji definiowanych przez użytkownika (The MathWorks, Inc. 2005) 15
Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach Edytor graficzny SIMULINK-a (Mrozek, Mrozek 1998) Służy do graficznego definiowania modeli w postaci schematów blokowych. Podstawowe elementy edytora to: Blok reprezentujący określoną funkcję lub operację, na który składają się - symbol graficzny - nazwa - wejścia i wyjścia - okno dialogowe Napis stanowiący komentarz do modelu Linia reprezentująca przepływ sygnału od wyjścia bloku do wejścia innego bloku 16
Symulacyjny model złożonego systemu samolot F-14 (MathWorks Inc. 1992) Pilot 1 u + + Stick Input Controller wgust qgust 1 Ta.s+1 Actuator Model Zw Mw + + Aircraft q Dynamics Model Nz pilot calculation w 1/Uo Pilot G force Scope 2 Nz Pilot (g) Angle of Attack 1 alpha (rad) Dryden Wind Gust Models Mq F-14 Flight Control (Double click on the "?" for more info) To start and stop the simulation, use the "Start/Stop" selection in the "Simulation" pull-down menu? Double click here for SIMULINK Help Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach 17
Okno dialogowe bloku Fcn (Wierciak 2001) Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego (nie używać polskich znaków) 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach 18
Edytor graficzny SIMULINK-a (Mrozek, Mrozek 1998) Służy do graficznego definiowania modeli w postaci schematów blokowych. Podstawowe elementy edytora to: Blok reprezentujący określoną funkcję lub operację, na który składają się - symbol graficzny - nazwa - wejścia i wyjścia - okno dialogowe Napis stanowiący komentarz do modelu Linia reprezentująca przepływ sygnału od wyjścia bloku do wejścia innego bloku Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach 19
Przykładowy model układu zapisany w graficznym edytorze SIMULINK-a (The MathWorks, Inc. 1994) 12000 u 0 Jh om eg a M hs1 29.43 Mtar 38.69 M tar1 Si gno m 12000 uz PBM-40 0.0056 Jh 1 * + + Produ ct4 M hpb m * Produ ct5 * M hfrt M hs2 0 Rb ig PBM_ 40 0.1 du/dt ta um r dm r/d t Graph Md yf + + Re z Sa turatio n + - M int1 0.1 Gain1 + - M rint 0 du/dt Rstep Co nstant Escap 36 loa d dm b/dt - + M dif Step Input1 mtest M siln ika te stowan ego Graph Ma filt * Produ ct2 mdyf Ró zn ica m om entow krytcal Abs 1/s Ab sroznica pol 100 % Step Input * Abs 1/s Graph Mrfilt + Produ ct1 Ab s1 Po le - od nie sie nia M dif1 * Produ ct6 Graph Mr-Mrr xx Graph kca l kryt ca lk * Produ ct3 1/u Fcn1 Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach 20
Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach Budowanie modelu w SIMULINK-u (Mrozek, Mrozek 1995) 1. Otwarcie okna roboczego i ustawienie wyglądu ekranu 2. Wybranie bloku z biblioteki i przemieszczenie do okna roboczego 3. Połączenie z innymi blokami za pomocą linii 4. Otwarcie okna dialogowego i wprowadzenie parametrów bloku 5. Umieszczenie opisu tekstowego 6. Powtórzenie czynności 2-5 dla wszystkich bloków tworzących model 7. Poprawienie połączeń 8. Zapisanie pliku W przypadku powtarzających się fragmentów modelu - sporządzenie podsystemu i wykorzystanie go w dalszych pracach 21
Tworzenie i maskowanie podsystemów (Mrozek, Mrozek 2004) Zaznaczenie kursorem myszy obszaru prostokątnego zawierającego bloki przewidziane do połączenia Utworzenie podsystemu przez zgrupowanie wybranych bloków (Ctrl+G) Zaznaczenie ikony podsystemu Otwarcie okna dialogowego Mask editor: Subsystem (Ctrl+M) Określenie kształtu graficznego ikony dla maskowanego bloku w zakładce Icon Określenie wyglądu okna dialogowego dla maskowanego bloku w zakładce Parameters (nie używać polskich znaków) Wpisanie poleceń inicjujących w zakładce Initialization Wprowadzenie tekstów z informacjami dotyczącymi maskowanego bloku w zakładce Documentation Zapamiętanie utworzonej maski Menu SIMULATION (Mrozek, Mrozek 2004) 22
Algorytmy rozwiązywania układów równań różniczkowych w SIMULINK-u (Mrozek, Mrozek 2004) Zmiennokrokowe Rungego-Kutty, Dormanda-Prince a, Adamsa-Bashforta-Moultona, NDF, Rosenbrocka, trapezowa, discrete (zmiennokrokowa) Stałokrokowe Dormanda-Prince a, Rungego-Kutty czwartego rzędu, Bogackiego- Shampine, Heuna, Eulera, discrete (stałokrokowa) Uruchamianie programu (Wierciak 2007) Stała czasowa elektromagnetyczna T e L R t ω ω 0 Stała czasowa elektromechaniczna T m Rt K K E T J s 0,632 ω 0 T m t J r - moment bezwładności napędzanych zespołów (kg m 2 ) J s - moment bezwładności wirnika (kg m 2 ) K E - stała napięcia (V s) K T - stała momentu (N m/a) L - indukcyjność uzwojenia twornika (H) R t - całkowita rezystancja obwodu twornika (Ω) Idealny przebieg zmian prędkości silnika podczas rozruchu ω 0 - ustalona prędkość obrotowa wirnika 23
Symulowane odpowiedzi układu (przykład) (Wierciak 2001) Kąt obrotu wirnika (rd) Prędkość kątowa wirnika (rd/s) Droga popychacza (mm) Błąd pozycjonowania (e-3 mm) Symulowane odpowiedzi układu (przykład) (Wierciak 2002) Odpowiedzi silnika FA 23C 21S8 na pojedynczy takt komutacji Kąt obrotu wirnika γ [rad] 0,06 0,05 0,04 0,03 0,02 0,01 0 0,01 0,02 0,03 0,04 0,05 Czas t [s] Silnik obciążony masowym momentem bezwładności J l = 50e -6 kg m 2 Kąt obrotu wirnika γ [rad] 0,06 0,05 0,04 0,03 0,02 0,01 0 0,01 0,02 0,03 0,04 0,05 Czas t [s] Silnik nieobciążony 24
Analiza wyników symulacji (przykład) (Wierciak 2002) Wyniki wyznaczenia stałej D m z wykorzystaniem pierwszych dwu (i = 1) amplitud skokowych odpowiedzi silnika 0,020 Współczynnik tłumienia D m [N m/s] 0,015 0,010 0,005 0,000 0 20 40 60 80 100 Masowy moment bezwł. obciążenia J l [kg m 2 ] Dokumentowanie eksperymentów (Mrozek, Mrozek 1995) 25
Dokumentowanie wyników (Mrozek, Mrozek 1995) SimMechanics - nowe narzędzie do modelowania systemów mechanicznych (The MathWorks, Wierciak 2008) (dokumentacja 846 stron) 26