Uruchomienie i wyłączenie MATLAB
Celem uruchomienia pakietu MATLAB należy podwójnie kliknąć ikonę
na panelu komputera lub w menu „START”. Po uruchomieniu pojawi się panel MATLAB.
Aby kończyć pracę z MATLAB należy wybrać Exit MATLAB w menu File na panelu lub napisać quit w oknie poleceń (Command Window). Żeby wykonywać wyznaczone czynności podczas wyjścia z MATLAB, na przykład zachowanie roboczej przestrzeni, można stworzyć i uruchomić skrypt finish.m.
Po uruchomieniu pojawi się panel MATLAB (rys.1), który zawiera graficzny interfejs (graphical user interfaces) dla pracy z plikami, zmiennymi i aplikacjami związanymi MATLAB. Przy pierwszym uruchomieniu MATLAB, pojawia się panel pokazany na rysunku 1.
Rys.1. Panel MATLAB
Można zmienić wygląd paneli poprzez otwieranie, zamykanie, przesuwanie oraz zmianę wymiarów okien. Do otwierania lub zamykania okien można wykorzystać menu Desktop. (Spróbujcie usunąć i dodać okno Workspace, zmienić rozmiary Command Window). Można również wynieść okna poza panel lub wnieść z powrotem (docking). (Spróbujcie wynieść okno Command Window za pomocą myszki lub oraz umieścić go z powrotem za pomocą menu Desktop).
Uruchomienie demonstracyjnego modelu Simulink
Przedstawiony tu zostanie model termodynamiczny budynku.
Dla uruchomienia demo należy w oknie poleceń napisać thermo. Polecenie to uruchomi Simulink i stworzy okno, które zawiera ten model (rys.2).
Uwaga: Dla zachowania modelu demonstracyjnego bez zmian przed rozpoczęciem pracy z modelem należy zapisać go w roboczym folderze pod nazwą thermo1. (FileSave Aswybrać folder roboczyzmienić nazwęzapisać. Folder - C:\dokumenty).
Dalej należy kliknąć podwójnie na bloku „Thermo Plots” Otworzy się okno wykresów, które zawiera wykresy: wewnętrzna i zewnętrzna temperatura (Indoor vs. Outdoor Temp) oraz koszty ogrzewania (Heat Cost ($)).
W celu rozpoczęcia symulacji otworzyć menu Simulation i wybrać polecenie Start (lub kliknąć przycisk Start na panelu Simulika). Po rozpoczęciu symulacji pojawią się odpowiednie wykresy (rys.3).
Rys.2. Okno modelu thermo
Symulacja kończy się, jeżeli dobiegnie końca czas symulacji. Celem zakończenuia symulacji przed czasem należy wybrać polecenie Stop w menu (lub nacisnąć przycisk Stop na panelu). Symulację można zatrzymać naciskając przycisk Pause na panelu.
W celu zakończenia pracy z modelem należy zamknąć model wybierając Close w menu File.
Demo modeluje termodynamikę budynku za pomocą uproszczonego modelu. Termostat jest ustawiony na 70°F, temperatura zewnętrzna zmienia sinusoidalnie z amplitudą 15°F i wartością bazową 50°F. Symuluje to dzienne zmiany temperatury. Model zawiera układy, które upraszczają schemat blokowy i mogą być wykorzystane powtórnie. Takie układy zawierają kilka bloków i przedstawione są blokami Subsystem. Model zawiera 5 takich układów: jeden Thermostat, jeden House oraz trzy Temp Convert (dwa przeliczają temperaturę w stopniach Fahrenheita do temperatury w stopniach Celsjusza i jeden służy do przeliczenia odwrotnego). Bloki Subsystem można otworzyć klikająć podwójnie na odpowiednim bloku.
Działanie modelu można zbadać zmieniając niektóre parametry modelu.
Najpierw zmienimy temperaturę bazową. Zmienimy wartość 50 wpisaną w bloku „Avg Outdoor Temp” na wartość 55. W tym celu należy kliknąć podwójnie na tym bloku - otworzy się okno parametrów tego bloku i teraz można wprowadzić nową wartość temperatury bazowej. Po wprowadzeniu wartości naciskamy OK lub Apply (obydwa polecenia wprowadzą nową wartość natomiast pierwsze polecenie zamyka okno, drugie pozostawia go otwartym). Przeprowadzamy symulację naciskając Start i obserwując zmiany na wykresach (Rys.4). W tym przypadku pojawiają się okresy, kiedy grzejnik pozostaje dłuższy czas wyłączony. Poza tym koszty ogrzewania maleją.
|
|
Rys.3. Wykresy zmian temperatury i kosztów ogrzewanie (Tav = 50°F) |
Rys.4. Wykresy zmian temperatury i kosztów ogrzewanie (Tav = 55°F) |
Spróbujemy teraz zobaczyć wpływ mocy grzejnika na przebieg sterowania. W tym celu należy otworzyć blok „Heater Blower” i w wierszu Gain dopisać mnożenie przez 0,5 (*0.5). Oznacza to, że zmniejszyliśmy moc o połowę. Można zobaczyć, że częstotliwość włączenia zmniejszyła się, natomiast koszty pozostały takie same. Zmniejszając wartość mnożnika do 0,4, zobaczymy, że pojawia się okres, kiedy grzejnik pracuje bez wyłączenia (koszty - bez zmian). Zmniejszając mnożnik do 0,15 pokazuje, że moc grzejnika jest niewystarczająca i jego nieprzerywalna praca nie pozwala utrzymywać zadanej temperatury. Wróćmy do wartości mnożnika 0,4.
Dodamy do wykresów jeszcze jedną zmienną. W tym celu w oknie „Thermo Plots” naciskamy na przycisk Parameters (drugi). W wiersz „Number of axes” wprowadzamy 3 i zamykamy to okno. Pojawi się trzecie okno wykresu. Rozszerzymy okno wykresów chwytając granicę okna wykresów i rozciągając go. Na bloku „Thermo Plots” również pojawi się trzecie wejście. Za pomocą myszki połączmy to wejście z wyjściem bloku „Heater Blower” (Rys.5). Przeprowadzamy symulację. Po symulacji, aby zobaczyć pracę elementu grzewczego w oknie „Thermo Plots” należy zmienić skalę nacisnąć Autoscale (ikona „lornetki”) lub kliknąć prawym przyciskiem myszki na wykresie i wybrać Autoscale.
Dalej zmienimy ustawienia termostatu. Należy otworzyć blok „Thermostat” i zmienić parametry bloku „Relay1”. Zamienimy wartości 5 i -5 w pierwszym i drugim wierszu odpowiednio na 2 i -2. Oznacza to, że chcemy podtrzymywać temperaturę z większą dokładnością. Przed symulacją rozszerzymy okno wykresów łapiąc kursorem za pomocą myszki boczną granicę okna i rozciągając te okno. Przeprowadzamy symulację i obserwujemy zmiany na wykresach. Można zauważyć, że przy zmniejszonym zakresie wahania temperatury są mniejsze, jednak ogrzewanie włącza się częściej.
Kolejną modyfikacją modelu będzie zmiana typu układu sterowania. Układ regulacji należy do układów przełącznikowych, kiedy grzejnik ma tylko dwa reżimy: włączony lub wyłączony. Zmienimy go na układ analogowy. W tym celu należy usunąć blok „Thermostat” (wybrać blok i nacisnąć przycisk Del na klawiaturze) i połączyć blok sumujący z blokiem „Heater Blower” (usunąć jedne z powstałych otwartych połączeń, natomiast drugie za pomocą myszki dociągnąć do odpowiedniego bloku). Schemat przedstawiono na rys.6. Grzejnik w takim układzie ma regulowaną, nieograniczoną moc. Mnożnik bloku „Heater Blower” ma inny fizyczny sens. W układzie przełącznikowym był on związany z mocą grzejnika. W przypadku układu analogowego jest to współczynnik wzmocnienia regulatora.
Rys.5. Okno modelu z trzecim wejściem bloku „Thermo Plots”
Rys.6. Okno modelu z trzecim wejściem bloku „Thermo Plots”
Przedstawiony model realizuje zasadę sterowania w układzie zamkniętym, czyli sterowania według błędu (regulacja). W tym przypadku w bloku sumującym porównywane są wartości temperatury zadanej i rzeczywistej. Ta różnica jest podawana na regulator, który wpływa na pracę elementu grzewczego. Regulator pracuje tylko wówczas, gdy powstaje różnica pomiędzy wartościami temperatury zadanej i rzeczywistej. Jeżeli istnieje różnica pomiędzy temperaturą zewnętrzną a wewnętrzną, regulator będzie pracował, jednak w tym przypadku można zaobserwować błąd regulacji (dynamiczny - zawsze, statyczny - w zależności od typu układu regulacji). Żeby lepiej zobaczyć ten błąd, należy kliknąć na linię wykresu temperatury wewnętrznej. Zmieni to skale wykresu i można będzie zobaczyć, że temperatura odbiega od wartości zadanej. Błąd również będzie zależał od parametrów regulatora. Zmniejszymy współczynnik wzmocnienia regulatora. W tym celu należy otworzyć blok „Heater Blower” i w wierszu Gain dopisać mnożenie przez 0,02 (*0.02). Zasymulować i zwrócić uwagę na zwiększenie błędu regulacji.
Ten model można przekształcić w taki sposób, żeby realizował zasadę sterowania w układzie otwartym według zakłóceń. Dlatego należy rozerwać połączenie wyjścia bloku „House” z blokiem sumującym. Natomiast na wolne ujemne wejście bloku sumującego należy podać sygnał zewnętrznej temperatury z bloku „F2C” (rys.7). Przeprowadzić symulację. W tym przypadku również istnieje błąd sterowania. Ale w układzie otwartym można tak dobrać współczynnik, żeby ten błąd był równy zeru. W naszym przypadku wartość współczynnika jest zbliżona do 0,0215. Jednak inne zakłócenia (na przykład nieregularne generowanie ciepła wewnątrz budynku), nieuwzględnione układem sterowania zawsze będą powodowały powstanie błędu sterowania, natomiast w układzie zamkniętym zakłócenia nie są mierzone, więc układ reaguje na wszystkie zakłócenia.
Rys.7. Okno modelu z trzecim wejściem bloku „Thermo Plots”
Zasady pracy w Simulinku
Pracę z Simulink można rozpocząć z okna poleceń Matlaba podając polecenie simulink. Inne możliwości: Nacisnąć odpowiedni przycisk na pasku narzędzi Matlaba lub naciskając w dolnym lewym rogu panelu Matlab menu Start Simulink Library Browser.
Wykonanie tego polecenia powoduje pojawienie się okna z tytułem Simulink Library Browser (rys.1). Okno to zawiera następujące biblioteki programowe:
Rys.1. Okno biblioteki elementów. |
|
Signal Attributes - narzędzia do przekształcania sygnałów.
Signal Routing - elementy pozwalające przełączać, łączyć, zapamiętywać, odczytywać sygnały.
Sinks - elementy przeznaczone do wyświetlenia wyników obliczeń.
Sources - źródła sygnałów.
User-Defined Function - funkcje wyznaczane przez użytkownika.
Additional Math & Discrete - dodatkowe elementy matematyczne i impulsowe.
Stworzenie najprostszego modelu i badanie charakterystyk elementów
Stworzymy model zawierający źródło sygnału, człon elementarny i element wyświetlający wyniki obliczeń.
Na panelu MATLABa lub Simulink Library Browser wybieramy w menu File polecenie New Model. Otworzy się puste okno modelu. Rozmieszczamy obok siebie okno Simulink Library Browser i okno modelu. Po kolei otwieramy menu bloków i przeciągamy odpowiedni blok do okna modelu:
Sources Step,
Math Operations Gain,
Signal Routing Mux,
Sinks Scope.
Połączmy bloki zgodnie z rys.2. Otrzymamy schemat, w którym sygnał skoku jednostkowego jest podawany na element bezinercyjny (proporcjonalny) i dalej sygnał wejściowy i sygnał wyjściowy podawany jest na wyświetlacz. Zmieniamy wartość współczynnika wzmocnienia elementu bezinercyjnego. Po uruchamieniu symulacji w oknie wykresów można zobaczyć zmiany obydwóch sygnałów.
Rys.2. Schemat blokowy do badania odpowiedzi na skok jednostkowy elementu bezinercyjnego.
Zaznaczamy cały schemat modelu i kopiujemy poniżej dwa razy. Zamieniamy sygnał wejściowy na dwóch schematach odpowiednio na sygnał harmonijny (Sine Wave) i sygnał losowy (Random Number). Zamiast trzech wyświetlaczy pozostawiamy jeden o trzech wejściach. Końcowy schemat przedstawiono na Rys.3.
Rys.3. Schemat blokowy do badania odpowiedzi na skok jednostkowy, harmonijny i losowy elementu bezinercyjnego.
Wyniki symulacji obserwujemy w oknie wykresów. Dopasowujemy odpowiednie skale. Zapiszemy ten model w folderze roboczym (C:\dokumenty) pod nazwą „gain3”.
Zastępujemy w tym modelu element bezinercyjny elementem inercyjnym (Continuous Transfer Fcn). Ustalamy współczynniki: Numerator (licznik) coefficient: [1], Denominator (mianownik) coefficient: [2 1]. (Uwaga: przed kopiowaniem dwóch elementów można zmienić współczynniki). Nawiasy kwadratowe w Matlabie oznaczają wektory lub macierze, w tym przypadku wektory współczynników odpowiednio licznika i mianownika. Podane liczby odpowiadają elementowi inercyjnemu z współczynnikiem wzmocnienia k = 1 i stałą czasową T = 2:
. Schemat tego modelu jest przedstawiony na rys.3.
Rys.4. Schemat blokowy do badania odpowiedzi na skok jednostkowy, harmonijny i losowy elementu inercyjnego.
Wyniki symulacji obserwujemy w oknie wykresów. Zapiszemy ten model pod nazwą „inertional3”.
Powtarzamy badania dla następujących elementów: różniczkującego (Continuous Derivative), całkującego (Continuous Integrator), oscylacyjnego (Continuous Transfer Fcn z parametrami licznika [1] i mianownika [1 0.5 1]) (Uwaga: można zamknąć ostatni model i otworzyć zapisany poprzednio „Inertional3”) i opóźniającego (Continuous Transport Delay).
Kolejny etapem ćwiczeń jest badanie wpływu parametrów elementów na odpowiedź na skok jednostkowy. Należy stworzyć schemat blokowy przedstawiony na rys.5.
Rys.5. Schemat blokowy do badania wpływu parametrów elementu inercyjnego na odpowiedź na skok jednostkowy.
W pierwszym wariancie takich badań należy zadać dla elementu inercyjnego różne współczynniki wzmocnienia (na przykład 1, 2 i 3). W drugim wariancie przy równych współczynnikach wzmocnienia (na przykład 1) zadać różne stałe czasowe (na przykład 1, 2 i 3).
Wykorzystać ten sam schemat do badania współczynnika tłumienia elementu oscylacyjnego. Dla współczynników mianownika zadać następujące liczby: [1 1 1], [1 0.5 1] i [1 0.2 1]. Przed symulacją zmienić czas modelowania. W tym celu w menu Simulation otworzyć okno Configuration Parameters... W wierszu Stop time: wpisać 30. Przeprowadzić symulacje. Zamienić wartości mianowników w następujący sposób: [1 0 1], [1 2 1] i [1 4 1]. Pierwszy zestaw odpowiada elementowi oscylacyjnemu bez tłumienia, w którym można obserwować oscylacje ze stalą amplitudą. Natomiast dwa kolejne zestawy odpowiadają elementom inercyjnym drugiego rzędu, pierwszy z nich ma dwie równe stałe czasowe, drugi - różne. Zastąpimy wartości [1 4 1] przez wartości [1 -0.05 1]. W tym przypadku można zaobserwować oscylacje ze wzrastającą amplitudą. Odpowiada to niestabilnemu elementowi.
Uwaga: Sprawozdanie powinno zawierać dwie części:
Badania odpowiedzi elementów podstawowych na trzy sygnały wejściowe: skok jednostkowy, sygnał harmonijny oraz sygnał losowy według schematu pokazanego na rys.3 i 4.
Badania wpływu parametrów elementów na odpowiedź na skok jednostkowy zgodnie ze schematem przedstawionym na rys.5.
Obie części powinny zawierać schemat z wpisanymi parametrami elementów wewnątrz bloków zgodnie z wariantem (tablica 1), wykresy uzyskane podczas symulacji oraz analizę wpływu parametrów dla zadania 2.
Tablica 1. Warianty.
Numer wariantu |
Zadanie 1. Nazwa elementu, parametry |
Zadanie 2. Nazwa elementu, parametry |
1 |
Różniczkujący |
Inercyjny k = 2;3;4, T = 1 |
2 |
Różniczkujący |
Inercyjny k = 1;3;5, T = 2 |
3 |
Całkujący |
Inercyjny k = 2;5;6, T = 3 |
4 |
Całkujący |
Inercyjny k = 1;3;4, T = 4 |
5 |
Inercyjny k = 2, T = 3 |
Oscylacyjny, k = 2, mianownik = [1 1 1], [1 0.4 1] i [1 0.1 1] |
6 |
Inercyjny k = 3, T = 3 |
Oscylacyjny, k = 3, mianownik = [1 1 1], [1 0.6 1] i [1 0.3 1] |
7 |
Inercyjny k = 4, T = 3 |
Oscylacyjny, k = 4, mianownik = [1 1 1], [1 0.4 1] i [1 0.2 1] |
8 |
Inercyjny k = 2, T = 5 |
Oscylacyjny, k = 3, mianownik = [1 1 1], [1 0.4 1] i [1 0.1 1] |
9 |
Inercyjny k = 3, T = 5 |
Oscylacyjny, k = 4, mianownik = [1 1 1], [1 0.6 1] i [1 0.3 1] |
10 |
Inercyjny k = 4, T = 5 |
Oscylacyjny, k = 5, mianownik = [1 1 1], [1 0.4 1] i [1 0.2 1] |
11 |
Oscylacyjny, mianownik = [2 2 2] |
Inercyjny k = 1, T = 1;3;5 |
12 |
Oscylacyjny, mianownik = [2 1 2] |
Inercyjny k = 2, T = 2;4;6 |
13 |
Oscylacyjny, mianownik = [2 0.5 2] |
Inercyjny k = 3, T = 1;2;5 |
14 |
Oscylacyjny, mianownik = [2 0 2] |
Inercyjny k = 4, T = 2;3;4 |
15 |
Oscylacyjny, mianownik = [2 -0.1 2] |
Oscylacyjny, k = 2, mianownik = [1 2 1], [1 0.9 1] i [1 0.2 1] |
16 |
Oscylacyjny, mianownik = [2 5 2] |
Oscylacyjny, k = 2, mianownik = [1 0.5 1], [1 0.1 1] i [1 -0.02 1] |
17 |
Całkujący |
Oscylacyjny, k = 2, mianownik = [1 1 1], [1 0.4 1] i [1 0.1 1] |
18 |
Całkujący |
Oscylacyjny, k = 3, mianownik = [1 1 1], [1 0.6 1] i [1 0.3 1] |
19 |
Inercyjny k = 2, T = 3 |
Inercyjny k = 1;3;5, T = 4 |
20 |
Inercyjny k = 3, T = 3 |
Inercyjny k = 1;2,4, T = 4 |
21 |
Inercyjny k = 4, T = 3 |
Oscylacyjny, k = 3, mianownik = [1 1 1], [1 0.4 1] i [1 0.1 1] |
22 |
Inercyjny k = 4, T = 5 |
Oscylacyjny, k = 4, mianownik = [1 1 1], [1 0.4 1] i [1 0.2 1] |
23 |
Inercyjny k = 2, T = 6 |
Oscylacyjny, k = 5, mianownik = [1 1 1], [1 0.4 1] i [1 0.2 1] |
24 |
Oscylacyjny, mianownik = [2 2 2] |
Oscylacyjny, k = 4, mianownik = [1 1 1], [1 0.6 1] i [1 0.3 1] |
25 |
Inercyjny k = 4, T = 5 |
Inercyjny k = 2, T = 2;4;6 |
26 |
Oscylacyjny, mianownik = [2 0.5 2] |
Inercyjny k = 1, T = 1;3;5 |
27 |
Oscylacyjny, mianownik = [2 1 2] |
Inercyjny k = 4, T = 2;3;4 |
28 |
Oscylacyjny, mianownik = [2 -0.1 2] |
Inercyjny k = 3, T = 1;2;5 |
29 |
Oscylacyjny, mianownik = [2 0 2] |
Oscylacyjny, k = 2, mianownik = [1 0.5 1], [1 0.1 1] i [1 -0.02 1] |
30 |
Oscylacyjny, mianownik = [2 5 2] |
Oscylacyjny, k = 2, mianownik = [1 2 1], [1 0.9 1] i [1 0.2 1] |