• Nie Znaleziono Wyników

Wprowadzenie do rodowiska MATLAB - SIMULINK

N/A
N/A
Protected

Academic year: 2021

Share "Wprowadzenie do rodowiska MATLAB - SIMULINK"

Copied!
28
0
0

Pełen tekst

(1)

WPROWADZENIE

Ś

RODOWISKO OBLICZE

Ń

NUMERYCZNYCH

(2)
(3)

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)

1.

Cel opracowania

Celem opracowania jest zapoznanie studentów z podstawowymi zastosowaniami pro-gramu Matlab i jego podpropro-gramu (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,

(5)

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

roz-wią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ójwymiaro-wych 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 zatwier-dzeniu 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 =

(6)

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) ans =

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ż roz-miaru 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 rozsze-rzenie .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

(7)

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) ans = 2 » type sqrt sqrt is a built-in function. » sqrt(-4) ans = 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 elemen-cie 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

(8)

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 elemen-cie 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]

(9)

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. Ma-cierze: jednostkowe, wypełnione jedynkami i zerami definiuje się następująco:

» eye(3) ans = 1 0 0 0 1 0 0 0 1 » zeros(2,2) ans = 0 0 0 0 » ones(2,3) ans = 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; ans =

8

» A(3,2) - odwołanie do elementu w wierszu 3 i kolumnie 2 ans =

1

Wybór największego elementu

(10)

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) ans = 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) ans = 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) ans = 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

(11)

» 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 ele-mentó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 ans = 2 0 3 -2 1 3 Różnica: » A-B ans =

(12)

Dodanie do elementów macierzy A liczby 2: » A+2 ans = 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 ans = 4 8

Iloczyn macierzy przez liczbę: » A*2 ans = 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 transpo-zycji.

(13)

A = 1 2 3 0 9 8 3 4 7

»inv(A) - zwraca macierz odwrotną do A ans =

-15.5000 1.0000 5.5000 -12.0000 1.0000 4.0000 13.5000 -1.0000 -4.5000 » A’ - transponuje macierz A ans =

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’ ans = 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

(14)

f = 10 12 14 16 » p=e.*f p = 50 72 98 128 » f^2 ans = 268 312 364 424 » f.^2 ans = 100 144 196 256

Uwaga!:Rozróżniamy dzielenie „dwustronne”: lewo na prawo(/) i prawo na lewo (\) » gg=6; » hh=3; » gg/hh ans = 2 » gg\hh ans = 0.5

Uwaga!: Dzielenie na prawą stronę ma szczególne zastosowanie przy rozwiązywaniu układu równań y=mx

(15)

2.4. Algebra liniowa

Przykład 2.14

Rozwiążukład równańliniowych:

   = + = + 0 2 3 1 2 2 1 2 1 x x x x

Układ ten można zapisać w postaci macierzowej AX =B

gdzie:       = 2 3 1 2 A ;      = 2 1 x x X ;      = 0 1 B

Dla której rozwiązanie ma postać:

B X= A−1 >> 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

(16)

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

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 zmien-nej_iterowanej. Wartościami tymi są kolejne wektory kolumnowe pobrane z macie-rzy_wartości (jeżeli jest to wektor, to kolejno zostaną wykonane instrukcje dla danych elementów tego wektora).

tla WHILE („dopóki”):

while wyrażenie_warunkowe ciąg_instrukcji

(17)

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że-nie_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 elemen-tó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;

fori=1:n

wynik=wynik*i; end

(18)

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) ans =

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

(19)

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 nu-mer 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 parame-try 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;

(20)

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 elemen-ty wektorów x i y;

fill(x,y,’c’) - rysuje wielokąt o wierzchołkach w punktach wyznaczonych przez elemen-ty wektorów x i y wypełniony kolorem określonym przez argument c według poniż sze-go opisu kolorów: y - żółty m - fioletowy c - turkusowy r - czerwony g - zielony b - niebieski w - biały k - czarny

(21)

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ę dnia-ją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

Napisz skrypt kreślący siatkę wartości funkcji f(x,y)=sin(x)⋅sin(y)⋅exp(−x2 −y2) 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:

(22)

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')

(23)

3.

Silmulink

Simulink jest programowym narzędziem do modelowania, symulacji i analizy syste-mó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ż

yt-kownika (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

ń

ż

niczkowych

Przykład 3.1

Rozwiąż równanie różniczkowe postaci: 1 2 =

+ y

dt

dy (3.1)

z warunkiem początkowym y(0)=1. Przekształcamy równanie do postaci:

y dt dy 2 1 − = (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

(24)

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:

1 4 2 2 2 = + + y dt dy dt y d (3.3)

z warunkiem początkowym y(0)=0, y’(0)=0 Przekształcamy równanie do postaci:

y dt dy dt y d 2 2 1 2 1 2 2 − − = (3.4)

(25)

Rys. 3.4 Schemat blokowy układu dla przykładu 2

Uwaga!: Ponieważ równanie jest drugiego rzędu więc musimy zastosować dwa ele-menty 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ń:

   = − = + 4 2 1 2 2 1 z z z z (3.5)

Korzystamy z bloku Algebraic Constraint (biblioteka Math). Konstruujemy model po-zwalający rozwiązać układ równań (3.5) jak na rysunku 3.6.

(26)

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 zmie-niamy 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’):

(27)

% 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.

(28)

4.

Literatura

1. Brzózka J., Dorobczyński L.: Programowanie w MATLAB. Wyd. MIKOM

War-szawa. 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 Poli-techniki Ś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ń naukowo-technicznych. Wydawnictwo PLJ, Warszawa 1996.

7. Osowski S., Toboła A.: Analiza i projektowanie komputerowe obwodów z

zastoso-waniem języków MATLAB i PCNAP. Oficyna Wydawnicza Politechniki

Warszaw-skiej, 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ń

obwo-dowych i przetwarzania sygnałów. Oficyna Wydawnicza Politechniki Warszaw-skiej, 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,

War-szawa 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, War-szawa 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.

Obraz

Wykres mo ż na opisa ć  podaj ą c nazwy zmiennych, tytuł, itp.

Cytaty

Powiązane dokumenty

Głównym przedmiotem współpracy służb i organizacji wywiadowczych jest działalność informacyjna dotycząca zagrożeń dla bezpieczeństwa międzynaro- dowego oraz państw w

Gou 4ta Ling.. 2a ustawy, poprzez niezachowanie uczciwej konkurencji oraz równego traktowania wykonawcÓw, w tym w szczególności popzez niezgodne z

For each sentence identify the one element that is wrong.. Na karcie odporviedzi nr 1 zlznz.cz literę odporr'iadającą łv1'branej przez ciebie możliłvości obok

osoba śt<łaaa;ą-ca bś*iadc'enie obowiązana jest określić przynależność poszczególnych składników majątkowych, dochodów i zobowiązań do majątku odrębnego i

O ile w części eksperymentów manipulacje warunkami kodowania, wydobywania lub materiałem uczenia się prowadziĘ do przeciwnych efektów w pamięci bodźca docelowego i

Najświętsza Maryja Panna, która objawiła się w Szydłowie przed 407 laty (1608 r.)' umocniła wiarę Litwinów i pomo- gła im w1trwać w obliczu wszystkich

'JECK Noricum - APOLL Laacher Haus i VISUM Arminius -LASSO Neuen Berg ENZO Buchorn iJIJI\,180 Dolomiten -MARK Haus Beck KIMON Alhedys Hoeve iNlcKoR Holedau.. ODIN

Przemycie wszystkich ścian wodą z detergenlem zkutza i tłustych plam, następnie pokrycie wszystkich ścian w korytarzu wraz ŻE sfupem przy zabudowie recepcji,