WPROWADZENIE ŚRODOWISKO OBLICZEŃ NUMERYCZNYCH MATLAB - SIMULINK



Podobne dokumenty
Metody i analiza danych

Metody i analiza danych

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

Matlab Składnia + podstawy programowania

Matlab Składnia + podstawy programowania

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Wprowadzenie do środowiska

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Matlab MATrix LABoratory Mathworks Inc.

Podstawowe operacje na macierzach

Elementy metod numerycznych - zajęcia 9

Podstawy MATLABA, cd.

Przetwarzanie sygnałów

Wstęp do Programowania Lista 1

1 Programowanie w matlabie - skrypty i funkcje

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Ćwiczenie 1. Wprowadzenie do programu Octave

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Operatory arytmetyczne

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:

E-E-A-1008-s5 Komputerowa Symulacja Układów Nazwa modułu. Dynamicznych. Elektrotechnika I stopień Ogólno akademicki. Przedmiot kierunkowy

dr Tomasz Ściężor Wydział Inżynierii Środowiska Politechnika Krakowska Podstawy programowania w języku MatLab

PODSTAWY PROGRAMOWANIA W JĘZYKU MATLAB

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Rozwiązywanie równań różniczkowych cząstkowych metodą elementów skończonych - wprowadzenie

Wprowadzenie do Scilab: macierze

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

PODSTAWY AUTOMATYKI. MATLAB - instrukcje i funkcje zewnętrzne. Grafika w Matlabie. Wprowadzenie do biblioteki Control System Toolbox.

MATLAB - podstawy użytkowania

Grafika w Matlabie. Wykresy 2D

TWORZENIE WYKRESÓW (1)

Ćwiczenie 1. Wprowadzenie do programu Octave

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Elektrotechnika I stopień Ogólno akademicki. Przedmiot kierunkowy. Obowiązkowy Polski VI semestr zimowy

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Podstawy Informatyki Computer basics

Odniesienie do kierunkowych efektów kształcenia Zna podstawowe możliwości pakietu Matlab

Laboratorium Cel ćwiczenia Ćwiczenie ma na celu praktyczne przedstawienie grafiki 3D.

Obliczenia w programie MATLAB

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Ćwiczenie 3: Wprowadzenie do programu Matlab

1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,

Analiza Algebra Podstawy programowania strukturalnego. Podstawowe wiadomości o funkcjach Podstawowe wiadomości o macierzach Podstawy programowania

Wizualizacja funkcji w programie MATLAB

Wprowadzenie do Mathcada 1

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

WPROWADZENIE DO ŚRODOWISKA SCILAB

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Wprowadzenie do systemu Scilab

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Pętle iteracyjne i decyzyjne

Wprowadzenie do Scilab: funkcje i wykresy

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

zajęcia 2 Definiowanie wektorów:

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

MATLAB - laboratorium nr 1 wektory i macierze

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Wprowadzenie do pakietów MATLAB/GNU Octave

Analiza Algebra Podstawy programowania strukturalnego. Podstawowe wiadomości o funkcjach Podstawowe wiadomości o macierzach Podstawy programowania

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Metody optymalizacji - wprowadzenie do SciLab a

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Graficzna prezentacja wyników

Wprowadzenie do Scilab: macierze

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

MATLAB Podstawowe polecenia

, h(x) = sin(2x) w przedziale [ 2π, 2π].

PODSTAWY AUTOMATYKI. MATLAB - instrukcje i funkcje zewnętrzne. Grafika w Matlabie. Wprowadzenie do biblioteki Control System Toolbox.

Metody numeryczne Laboratorium 2

Elementy okna MatLab-a

Maxima i Visual Basic w Excelu

Laboratorium 1. Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

INFORMATYKA TECHNICZNA Komputerowe Wspomaganie Obliczeń Wykład 3. Komputerowe wspomaganie obliczeń w programie Mathcad. dr inż.

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

MATLAB tworzenie własnych funkcji

Wykład z Technologii Informacyjnych. Piotr Mika

PRZEWODNIK PO PRZEDMIOCIE

1 Wprowadzenie do algorytmiki

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

1 Typy i formaty danych

Transkrypt:

WPROWADZENIE ŚRODOWISKO OBLICZEŃ NUMERYCZNYCH MATLAB - SIMULINK

Spis treści 1. CEL OPRACOWANIA... 4 2. ŚRODOWISKO I PROGRAMOWANIE W JĘZYKU MATLAB... 5 2.1. Wprowadzenie do pracy w środowisku języka MATLAB... 5 2.1.1. Przykłady poleceń... 5 2.1.2. Sprawdzanie funkcji... 7 2.2. Wprowadzanie macierzy... 7 2.2.1. Generowanie ciągów... 7 2.2.2. Generowanie macierzy... 8 2.3. Działania na macierzach i tablicach... 9 2.3.1. Dostęp do elementów macierzy... 9 2.3.2. Działania na macierzach... 11 2.3.3. Działania tablicowe... 13 2.4. Algebra liniowa... 15 2.5. Skrypty (.m pliki)... 16 2.5.1. Instrukcje sterujące pętle... 16 2.5.2. Funkcje... 17 2.6. Grafika dwuwymiarowa... 19 2.6.1. Rysowanie... 20 2.7. Grafika trójwymiarowa... 21 3. SILMULINK... 23 3.1. Modelowanie i symulacja układów dynamicznych... 23 3.1.1. Rozwiązywanie równań różniczkowych... 23 3.2. Rozwiązywanie układów liniowych... 25 3.3. Współpraca Simulink-a z Matlab-em... 26 4. LITERATURA... 28

1. Cel opracowania Celem opracowania jest zapoznanie studentów z podstawowymi zastosowaniami programu Matlab i jego podprogramu (toolbox-a) Simulink. Omówiono skrótowo: - w środowisku Matlab-a generowanie zmiennych (wektory i macierze), podstawowe operacje na zmiennych, stosowanie podstawowych, wbudowanych, funkcji matematycznych do obliczeń inżynierskich, sporządzanie wykresów: dwu i trójwymiarowych, pisanie prostych programów rozwiązujących zadany problem, tworzenie m-plików wykonawczych uwzględniających np. deklaracje zmiennych, wywołanie napisanego podprogramu, wykresy itp. - w programie Simulink, modelowanie i symulowanie prostych systemów dynamicznych, rozwiązywanie układów równań liniowych, korzystanie z wyników Simulink-a w przestrzeni Matlab-a. 4 Matlab Simulink

2. Środowisko i programowanie w języku MATLAB MATLAB - pakiet obliczeniowy firmy MathWorks jest przeznaczony do wykonywania różnorodnych obliczeń numerycznych. Serce pakietu stanowi interpreter języka umożliwiający implementację algorytmów numerycznych oraz biblioteki podstawowych działań na macierzach (odwracanie, dodawanie/odejmowanie, wartości własne itp.). Podstawowym typem danych jest macierz, stąd nazwa MATrix LABoratory. Pakiet posiada obszerne biblioteki dodatkowych procedur umożliwiające rozwiązywanie typowych problemów obliczeniowych. Prosta budowa okienkowa ułatwia korzystanie z programu. Łatwa i estetyczna jest wizualizacja wyników w postaci dwu- i trójwymiarowych wykresów. Dodatkową zaletą pakietu MATLAB jest możliwość przeprowadzenia obliczeń symbolicznych (na wzorach). 2.1. Wprowadzenie do pracy w środowisku języka MATLAB Praca w środowisku języka MATLAB polega na wydawaniu poleceń, które po zatwierdzeniu wykonywane są przez interpreter. Większą liczbę instrukcji można zapisać w zbiorze tekstowym zwanym skryptem (pliki z rozszerzeniem.m). 2.1.1. Przykłady poleceń Podstawienie:» a=3; powoduje utworzenie zmiennej a o wartości 3. Uwaga!: Średnik po poleceniu powoduje, że wartość będąca wynikiem nie będzie wyświetlana na ekranie.» b=sin(a) b = Matlab Simulink 5

0.1411 oblicza wartość funkcji sinus dla zmiennej a, wynik zapisuje do zmiennej b i wyświetla na ekranie. Jeżeli nie podano nazwy zmiennej to wynik działania jest umieszczany w standardowej zmiennej ans, np.:» cos(pi/3) 0.5000 Utworzona (zdefiniowana) zmienna jest pamiętana od momentu utworzenia, aż do chwili jej usunięcia. Możliwa jest przy tym nie tylko zmiana wartości, ale również rozmiaru zmiennej. Nazwy zmiennych i informacje o nich można uzyskać wywołując funkcje who i whos. Usunięcie zmiennej z pamięci: clear a - usuwa zmienną a; clear - usuwa wszystkie zmienne znajdujące się w pamięci. Zapisanie zmiennych na dysku: save nazwa_pliku (domyślnie przyjmowane jest rozszerzenie.mat). Wczytanie danych z pliku dyskowego: load nazwa_pliku Korzystanie z podręcznej pomocy podającej opis funkcji: help nazwa_funkcji Zawartość aktualnego katalogu można wyświetlić używając funkcji dir lub ls. Do zmiany katalogu służy polecenie: cd nazwa_katalogu 6 Matlab Simulink

2.1.2. Sprawdzanie funkcji» help sqrt SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive. See also SQRTM.» sqrt(4) 2» type sqrt sqrt is a built-in function.» sqrt(-4) 0 + 2.00000000000000i 2.2. Wprowadzanie macierzy 2.2.1. Generowanie ciągów a=min:krok:max; Polecenie generuje wektor poczynając od elementu o wartości min, kończąc na elemencie o wartości max z krokiem krok. Jeżeli parametr krok zostanie pominięty, przyjmuje się, iż krok=1. Przykład 2.1» bb=7.1:-2:1 bb = 7.1 5.1 3.1 1.1» cc=3:5 cc = 3 4 5 Matlab Simulink 7

2.2.2. Generowanie macierzy Definicja macierzy przez wyliczenie elementów: Przykład 2.2» A=[2 2 2 1; 1 2 3 1]; lub:» A=[2 2 2 1 1 2 3 1] A = 2 2 2 1 1 2 3 1 Poszczególne elementy macierzy oddziela się spacjami, a wiersze średnikami lub umieszcza się je w oddzielnych liniach. Definicja macierzy przez wygenerowanie elementów: A=[min:krok:max] Polecenie generuje wektor poczynając od elementu o wartości min, kończąc na elemencie o wartości max z krokiem krok. Jeżeli parametr krok zostanie pominięty, przyjmuje się, iż krok=1. Przykład 2.3 Wygeneruj macierz dwuwierszową o wyrazach od 1 do 10 w pierwszym wierszu i o wyrazach od 2 do 20 (co 2) w wierszu drugim.» A=[1:10; 2:2:20] A = 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 Definicja macierzy wykorzystując elementy innych macierzy: Przykład 2.4 Utwórz macierz D budując ją ze zdefiniowanych macierzy A, B i C.» A=[1 4 1; 2 0 1];» B=[3 1; 4 1];» C=[1 2 2 0 1; 2 4 7 1 0];» D=[A B; C] D = 8 Matlab Simulink

1 4 1 3 1 2 0 1 4 1 1 2 2 0 1 2 4 7 1 0 Uwaga!: Przy takim budowaniu macierzy należy pamiętać o zgodności wymiarów. Macierze: jednostkowe, wypełnione jedynkami i zerami definiuje się następująco:» eye(3) 1 0 0 0 1 0 0 0 1» zeros(2,2) 0 0 0 0» ones(2,3) 1 1 1 1 1 1 2.3. Działania na macierzach i tablicach 2.3.1. Dostęp do elementów macierzy Odwołanie do elementów: Przykład 2.5» A=[1 2 3; 0 9 8; 1 1 0] A = 1 2 3 0 9 8 1 1 0» A(2,3) - odwołanie do elementu w wierszu 2 i kolumnie 3; 8» A(3,2) - odwołanie do elementu w wierszu 3 i kolumnie 2 1 Wybór największego elementu max(a) - zwraca największy element wektora A. Matlab Simulink 9

W przypadku gdy A jest macierzą, zwraca wektor wierszowy, którego elementami są maksymalne elementy z każdej kolumny A Przykład 2.6» max(a) 1 9 8 Wybór najmniejszego elementu min(a) - zwraca najmniejszy element wektora A. W przypadku gdy A jest macierzą, zwraca wektor wierszowy, którego elementami są minimalne elementy z każdej kolumny A Przykład 2.7» min(a) 0 1 0 Obliczanie wartości średniej elementów mean(a) - zwraca średnią arytmetyczną elementów wektora A. W przypadku gdy A jest macierzą, zwraca wektor wierszowy, którego elementami są średnie arytmetyczne elementów z każdej kolumny A Przykład 2.8» mean(a) 0.6667 4.0000 3.6667 Odwołanie do podmacierzy: Przykład 2.9» A=[1 2 3 4 5 6; 0 9 8 7 6 5; 1 1 0 0 2 2] A = 1 2 3 4 5 6 0 9 8 7 6 5 1 1 0 0 2 2 10 Matlab Simulink

» B=A(:,[1:3 5]) - utworzenie macierzy B poprzez pobranie z macierzy A kolumn: 1-3 oraz 5 B = 1 2 3 5 0 9 8 6 1 1 0 2» B=A([1 3],1:2:5) - utworzenie macierzy B z elementów macierzy A leżących na przecięciu wierszy 1 i 3 z kolumnami 1, 3 i 5 B = 1 3 5 1 0 2 2.3.2. Działania na macierzach Suma i różnica macierzy Przykład 2.10 Zdefiniuj dwie macierze A i B, a następnie oblicz ich sumę, różnicę oraz dodaj do elementów macierzy A liczbę 2. Definicja macierzy:» A=[1-1 2; -2 3 1] A = 1-1 2-2 3 1» B=[1 1 1; 0-2 2] B = 1 1 1 0-2 2 Suma:» A+B 2 0 3-2 1 3 Różnica:» A-B 0-2 1-2 5-1 Matlab Simulink 11

Dodanie do elementów macierzy A liczby 2:» A+2 3 1 4 0 5 3 Mnożenie macierzy Przykład 2.11 Zdefiniuj dwie macierze A i B, a następnie oblicz ich iloczyn oraz pomnóż elementy macierzy A przez 2. Definicja macierzy:» A=[1 1 0; 2 1 1] A = 1 1 0 2 1 1» B=[2; 2; 2] B= 2 2 2 Iloczyn macierzowy:» A*B 4 8 Iloczyn macierzy przez liczbę:» A*2 2 2 0 4 2 2 Odwracanie i transpozycja Przykład 2.12 Zdefiniuj macierz A, a następnie wyznacz macierz odwrotną do niej i dokonaj transpozycji.» A=[1 2 3; 0 9 8; 3 4 7] 12 Matlab Simulink

A = 1 2 3 0 9 8 3 4 7»inv(A) - zwraca macierz odwrotną do A -15.5000 1.0000 5.5000-12.0000 1.0000 4.0000 13.5000-1.0000-4.5000» A - transponuje macierz A 1 0 3 2 9 4 3 8 7 Przykład 2.13 Zdefiniuj wektor kolumnowy A, a następnie oblicz sumę kwadratów elementów tego wektora.» A=[1 2 3] A = 1 2 3» A*A 14 2.3.3. Działania tablicowe Operacje na zmiennych w Matlabie są wykonywane wektorowo, natomiast użycie kropki w wyrażeniu powoduje wykonanie działania skalarnego.» b=2;» e=[5 6 7 8] e = 5 6 7 8» f=b*e Matlab Simulink 13

f = 10 12» p=e.*f 14 16 p = 50 72» f^2 98 128 268 312 364 424» f.^2 100 144 196 256 Uwaga!:Rozróżniamy dzielenie dwustronne : lewo na prawo(/) i prawo na lewo (\)» gg=6;» hh=3;» gg/hh 2» gg\hh 0.5 Uwaga!: Dzielenie na prawą stronę ma szczególne zastosowanie przy rozwiązywaniu układu równań y=mx 14 Matlab Simulink

2.4. Algebra liniowa Przykład 2.14 Rozwiąż układ równań liniowych: 2x1 + x2 = 1 3x1 + 2x2 = 0 Układ ten można zapisać w postaci macierzowej AX= B gdzie: 2 1 x1 1 A = ; X = 3 2 ; B = x 2 0 Dla której rozwiązanie ma postać: X= A 1 B >> A=[2 1;3 2] A = 2 1 3 2 >> B=[1; 0] B = 1 0 >> X=inv(A)*B X = 2.0000-3.0000 Uwaga!: Zagadnienie to można rozwiązać także korzystając z dzielenia prawo na lewo >> X=A\B Matlab Simulink 15

X = 2.0000-3.0000 2.5. Skrypty (.m pliki) Przykład 2.15 Napisz skrypt (otwierając z menu File z opcji New plik M-file), który kreśli wykres wybranej przez użytkownika funkcji jednej zmiennej w przedziale [0,4π]. % wykres funkcji jednej zmiennej x=[0:0.1:4*pi]; wzor=input('podaj funkcje f(x):','s') % podac funkcje np. sin(x) y=eval(wzor); plot(x,y); % kreslenie wykresu funkcji y=f(x) grid; % podzialka Zapisujemy skrypt w formacie nazwa.m. Wywołanie skryptu (m.pliku) w przestrzeni Matlaba: >> nazwa 2.5.1. Instrukcje sterujące pętle Pętla FOR ( dla ): for zmienna_iterowana = macierz_wartości ciąg_instrukcji end Działanie pętli polega na wykonaniu ciągu_instrukcji dla kolejnych wartości zmiennej_iterowanej. Wartościami tymi są kolejne wektory kolumnowe pobrane z macierzy_wartości (jeżeli jest to wektor, to kolejno zostaną wykonane instrukcje dla danych elementów tego wektora). Pętla WHILE ( dopóki ): while wyrażenie_warunkowe ciąg_instrukcji end 16 Matlab Simulink

Działanie pętli polega na wykonaniu ciągu_instrukcji dopóki wyrażenie_warunkowe jest spełnione. Instrukcja warunkowa IF ( jeżeli ): if wyrażenie_warunkowe1 ciąg_instrukcji1 elseif wyrażenie_warunkowe2 ciąg_instrukcji2 else ciąg_instrukcji3 end Działanie instrukcji jest następujące: Jeżeli wyrażenie_warunkowe1 jest spełnione, to wykonywany jest ciąg_instrukcji1, w przeciwnym razie sprawdzane jest wyrażenie_warunkowe2, jeżeli jest ono spełnione wykonywany jest ciąg_instrukcji2, jeżeli nie, wykonywany jest ciąg_instrukcji3. Instrukcję warunkową IF można rozbudować dla większej liczby wyrażeń_warunkowych i odpowiadających im ciągów_instrukcji. 2.5.2. Funkcje W języku MATLAB istnieje możliwość definiowania własnych funkcji, jako elementów strukturalnych programu. Definicja funkcji ma następującą postać: function[wartość_funkcji]=nazwa_funkcji(argument1,..,argumentn) ciąg instrukcji Przykład 2.16 Napisz funkcję (otwierając z menu File z opcji New plik M-file) wyznaczającą wartość silni n!, gdzie n jest liczbą naturalną. % Funkcja wyznacza wartosc n! function[wynik]=silnia(n) wynik=1; for i=1:n wynik=wynik*i; end Matlab Simulink 17

Zapisz ją pod nazwą silnia0.m, a następnie uruchom wpisując w linii komend jej nazwę wraz z wartością argumentu n umieszczoną w nawiasie, np.:» silnia0(4) 24 Przykłady funkcji silnia z użyciem pętli: instrukcja for function y=silnia1(x) %Funkcja SILNIA1 % %y=silnia1(x) %oblicza silnie liczby x większej od zera %wykorzystuje instrukcje for if ~(x>0), error('liczba musi byc wieksza od zera'), end y=1; if x>1, for i= 2:x, y= y.*i; end, end instrukcja while function y=silnia2(x) %Funkcja SILNIA2 % %y=silnia2(x) %oblicza silnie liczby x wiekszej od zera %wykorzystuje instrukcje while if ~(x>0), error('liczba musi byc wieksza od zera'), end y=1; while x>0, y=y.*x; x=x-1; end rekurencja 18 Matlab Simulink

function [y]=silnia3(x) %Funkcja SILNIA3 % %y=silnia3(x) %oblicza silnie liczby x wiekszej od zera, a mniejszej od 10 %wykorzystuje metode rekurencji if ~(x>0), error('liczba musi byc wieksza od zera'), elseif x>10 error('przekroczony zakres x>10'), end y=1; if x>1, y=x*silnia3(x-1); end 2.6. Grafika dwuwymiarowa Najczęściej spotykanym sposobem graficznej prezentacji danych w języku MATLAB jest wykres funkcji jednej zmiennej. Służy do tego funkcja plot(x,y), gdzie y=f(x); Okno graficzne można wyczyścić wywołując funkcję clf. Zamknięcie okna graficznego odbywa się poprzez wywołanie funkcji close. Dodatkowe okna można otworzyć przy pomocy funkcji figure. Otworzyć jak i zamknąć można dowolne okno podając jego numer jako argument. W celu uzyskania kilku wykresów w jednym oknie należy wykorzystać funkcję subplot(m,n,p) gdzie: m - liczba wykresów w pionie; n - liczba wykresów w poziomie; p - kolejny numer wykresu. Skala wykresu dobierana jest automatycznie. Chcąc ją zmienić, trzeba wywołać funkcję axis([xmin xmax ymin ymax]) i jako argument podać wektor określający nowe parametry osi. Wykres można opisać podając nazwy zmiennych, tytuł, itp. title( tekst ) - tytuł rysunku; xlabel( tekst ) - opis osi x; ylabel( tekst ) - opis osi y; Matlab Simulink 19

text(x,y, tekst ) - umieszcza tekst w dowolnym punkcie o współrzędnych (x,y); grid - włącza lub wyłącza siatkę; Przykład 2.17 Napisz skrypt kreślący przykładowy wykres wraz z opisem. % Skrypt kresli przykladowy wykres wraz z opisem x=[0:pi/20:2*pi]; y=sin(x); plot(x,y) title( Wykres funkcji sin(x) ) xlabel( x ) ylabel( f(x) ) text(2.5,0.7, f(x)=sin(x) ) grid Zapisz go pod nazwą wykres0.m i uruchom. 2.6.1. Rysowanie Istnieją funkcje pozwalające na tworzenie dowolnych rysunków z linii i wielokątów. line(x,y) - rysuje linię łamaną łącząc wierzchołki punktów wyznaczonych przez elementy wektorów x i y; fill(x,y, c ) - rysuje wielokąt o wierzchołkach w punktach wyznaczonych przez elementy wektorów x i y wypełniony kolorem określonym przez argument c według poniższego opisu kolorów: y - żółty m - fioletowy c - turkusowy r - czerwony g - zielony b - niebieski w - biały k - czarny 20 Matlab Simulink

Przykład 2.18 Narysuj trójkąt o wierzchołkach w punktach (0,1), (3,4), (4,2) używając funkcji line oraz fill z wypełnieniem w kolorze niebieskim.» line([0 3 4 0],[1 4 2 1])» fill([0 4 3 0],[1 4 2 0], r ) 2.7. Grafika trójwymiarowa Większość funkcji języka MATLAB generujących rysunki trójwymiarowe służy do kreślenia powierzchni. W praktyce definiując powierzchnię trzeba się ograniczyć do skończonego zbioru punktów należących do obszaru. [x,y]=meshgrid(x,y) - tworzy macierze x i y opisujące położenie węzłów prostokątnej siatki pobierając wartości z wektorów X i Y. mesh(x,y,z) - rysuje siatkę powierzchni opisanej przez macierze x, y i z. surf(x,y,z) - rysuje kolorową powierzchnię opisaną przez macierze x, y i z. surfl(x,y,z) - rysuje kolorową powierzchnię opisaną przez macierze x, y i z uwzględniając na niej odbicie światła. plot3(x,y,z) - rysuje krzywą w przestrzeni opisaną przez wektory x, y i z. Przykład 2.19 2 2 Napisz skrypt kreślący siatkę wartości funkcji f ( x, y) = sin( x) sin( y) exp( x y ) w przedziale [-π,π]. % Skrypt rysuje siatke wartosci funkcji clf; [x,y]=meshgrid(-pi:0.2:pi,-pi:0.2:pi); z=sin(x).*sin(y).*exp(-x.^2-y.^2); mesh(x,y,z) Zapisz go pod nazwą wykres3d.m i uruchom. Rozbuduj powyższy skrypt o rysowanie kolorowej powierzchni poprzez dodanie na końcu polecenia: Matlab Simulink 21

surf(x,y,z) lub surfl(x,y,z) Przykład 2.20 Napisz skrypt kreślący krzywą w przestrzeni trójwymiarowej: % Skrypt kresli krzywa w przestrzeni trojwymiarowej x=[0:0.1:10]; y=2*cos(x); z=sin(2*y); plot3(x,y,z) grid title('wykres krzywej w przestrzeni trojwymiarowej') xlabel('x') ylabel('y') zlabel('z') 22 Matlab Simulink

3. Silmulink Simulink jest programowym narzędziem do modelowania, symulacji i analizy systemów dynamicznych. Ważną zaletą programu jest jego interaktywność, co oznacza, ze można zmieniać parametry układu podczas symulacji. Modelowanie w Simulink-u odbywa się z wykorzystaniem graficznego interfejsu użytkownika (GUI). Polega ono na budowanie modeli z gotowych bloków poprzez łączenie ich w podsystemy i systemy. Istnieje możliwość utworzenia własnych bloków (bibliotek użytkownika). Program Simulink jest integralnie związany ze środowiskiem Matlab-a i może być uruchamiany także z jego poziomu. 3.1. Modelowanie i symulacja układów dynamicznych 3.1.1. Rozwiązywanie równań różniczkowych Przykład 3.1 Rozwiąż równanie różniczkowe postaci: dy + 2 y= 1 (3.1) dt z warunkiem początkowym y(0)=1. Przekształcamy równanie do postaci: dy = 1 2y dt (3.2) Tworzymy schemat blokowy w Simulinku: Do zamodelowania różniczkowania używamy bloku całkowania (wykorzystując zależność, że całkowanie jest funkcją odwrotną do różniczkowania). Rys. 3.1 Blok całkowania w Simulinku Całkowity schemat modelu reprezentujący równanie 3.1 przedstawiony jest na rys. 3.2 Matlab Simulink 23

Rys. 3.2 Schemat blokowy układu dla przykładu 3.1 Wartość y(0)=1 jest określana w bloku całkowania jako warunek początkowy. Rys. 3.3 Przebieg wielkości wyjściowej Przykład 3.2 Rozwiąż równanie różniczkowe postaci: 2 d y dy (3.3) 2 + + 4y= 1 2 dt dt z warunkiem początkowym y(0)=0, y (0)=0 Przekształcamy równanie do postaci: 2 d y 1 = 2 dt 2 1 2 dy dt 2y (3.4) 24 Matlab Simulink

Rys. 3.4 Schemat blokowy układu dla przykładu 2 Uwaga!: Ponieważ równanie jest drugiego rzędu więc musimy zastosować dwa elementy całkujące celem uzyskania funkcji y(t). Rys. 3.5 Przebieg wielkości wyjściowej 3.2. Rozwiązywanie układów liniowych Rozwiązać układ równań: z 1+ z2= 2 (3.5) z1 z2= 4 Korzystamy z bloku Algebraic Constraint (biblioteka Math). Konstruujemy model pozwalający rozwiązać układ równań (3.5) jak na rysunku 3.6. Matlab Simulink 25

Rys. 3.6 Schemat blokowy układu rozwiązywania równań liniowych Dla układu trzech równań zastosujemy, analogicznie trzy bloki Algebraic Constraint. 3.3. Współpraca Simulink-a z Matlab-em Korzystając z pliku wykonawczego Matlab-a możemy wywołać model wykonany w Simulink-u. Na przykład gdy przeprowadzamy wielowariantową analizę układu i zmieniamy parametry wtedy model w Simulink-u dogodnie jest przedstawić jak na rys. 3.7. Rys. 3.7 Schemat blokowy układu dynamicznego z parametrami Wywołanie modelu Simulink-a z poziomu Matlab-a (.m pliku) uwzględnia instrukcję sim( nazwa ): 26 Matlab Simulink

% model simulink-a o nazwie suspension % definicja parametrów modelu clear all; m= 1000; k=1000; c=100; V=20; % Symulacja sim('suspension'); load yin.mat; % wgranie zbioru danych wejściowych load pos.mat; % wgranie zbioru danych wyjściowych % wykres figure(1); subplot(2,1,1) plot(x(1,:),x(2,:)); % plot(t,yzad) -> wykorzystanie bloku To Workspace subplot(2,1,2) plot(y(1,:),y(2,:)); Uwaga! W przedstawionym m-pliku dane z Simulink-a są wgrywane do Matlab-a za pomocą bloku To File. Podobny efekt uzyskamy korzystając z bloku To Workspace. Różnica polega na tym, że poprzez blok To File zapisujemy dane na dysku. Matlab Simulink 27

4. Literatura 1. Brzózka J., Dorobczyński L.: Programowanie w MATLAB. Wyd. MIKOM Warszawa. 1998. 2. Brzózka J.: Regulatory cyfrowe w automatyce. Wyd. MIKOM, Warszawa 2002. 3. Kamińska A., Pańczyk B.: Matlab przykłady i zadania. Wyd. MIKOM, Warszawa 2002. 4. Klamka J., Ogonowski Z.: Teoria systemów liniowych. Skrypty uczelniane Politechniki Śląskiej, Skrypt nr 1987, Gliwice 1996. (Zawiera wstęp do pakietu MA- TLAB i SIMULINK) 5. Mrozek B., Mrozek Z.: MATLAB 6 poradnik użytkownika. Wydawnictwo PLJ, Warszawa 2001. 6. Mrozek B., Mrozek Z.: MATLAB uniwersalne środowisko do obliczeń naukowotechnicznych. Wydawnictwo PLJ, Warszawa 1996. 7. Osowski S., Toboła A.: Analiza i projektowanie komputerowe obwodów z zastosowaniem języków MATLAB i PCNAP. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 1995. 8. Osowski S.: Modelowanie układów dynamicznych z zastosowaniem języka SIMU- LINK. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 1997. 9. Osowski S., Cichocki A., Siwek A.: MATLAB w zastosowaniu do obliczeń obwodowych i przetwarzania sygnałów. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2006 10. Pratap R.: Matlak 7 dla naukowców i inżynierów. Wyd. MIKOM, Warszawa 2007. 11. Regel W.: Statystyka matematyczna w programie MATLAB. Wyd. MIKOM, Warszawa 2003. 12. Regel W.: Wykresy i obiekty graficzne w programie MATLAB. Wyd. MIKOM, Warszawa 2003. 13. Regel W.: Przykłady i ćwiczenia w programie SIMULINK. Wyd. MIKOM, Warszawa 2004. 14. Wciślik M.: Wprowadzenie do systemu MATLAB: Politechnika Świętokrzyska, Kielce 2000. 15. Zalewski A., Cegieła R.: MATLAB obliczenia numeryczne i ich zastosowania. Wyd. Nakom, Poznań 1997. 28 Matlab Simulink