15 Podstawy automatyki Matlabid 16181 ppt

background image

Dr inż. JANUSZ LICHOTA

PODSTAWY AUTOMATYKI

Matlab

Wydział Mechaniczno-
Energetyczny

background image

PLAN WYSTĄPIENIA

Typowe sygnały wejściowe
Równania różniczkowe obiektów

mechanicznych
elektrycznych
elektromechanicznych
silników prądu stałego
hydraulicznych
cieplnych
wniosek

Uogólnienie poprzez transmitancję – człony

podstawowe

Linearyzacja równań różniczkowych
Bonus

background image

2

2

2

40

0 warunki początkowe (0)

20, (0) 0

d x

dx

x

x

x

dt

dt

+

+

=

=-

=

&

BONUS

Rozwiązać równanie różniczkowe przy pomocy programu Matlab

Rozwiązanie

Należy utworzyć dwa pliki. Jeden zawiera definicję równania różniczkowego,
drugi je rozwiązuje.

Rownanie.m – zawiera równanie różniczkowe jako układ równań 1-go rzędu
Rozwiaz.m – zawiera warunki początkowe równania, zakres rozwiązania i

procedurę rozwiązującą równanie

background image

BONUS

function

zDot=diffX(t,z)

%
% równanie o postaci
% m d2x/dt2 + c dx/dt + k x = f(t)
% definicja stałych

m=1;
c=2;
k=40;
f=0;

% pobieranie wartości początkowych ze zmiennej z

x=z(1);
v=z(2);

% rozwiązanie równań różniczkowych 1-go rzędu

xDot=v;
vDot=(f-c*v-k*x)/m;

% i złożenie ich do tablicy (przekazywanie
% parametrów przez zmienną)

zDot=[xDot; vDot];

m=1;

Plik Rownanie.m

Plik Rozwiaz.m

% plik Rozwiaz.m
%
% Służy do rozwiązania równania różniczkowego
% zdefiniowanego w pliku DIFFX.M za pomocą metody zwanej
% ODE45
% Zmienne t0 = chwila początkowa
% tf = chwila końcowa obliczeń
% x0 = wartość początkowa przesunięcia
% v0 = wartość początkowa prędkości

t0=0

% chwila początkowa

tf=10

% chwila końcowa

T=[t0 tf]

% wektor T (poziomy)

x0=-20

% warunek początkowy przesunięcia

v0=0

% warunek początkowy prędkości

z0=[x0; v0]

% wektor z0 (pionowy)

[t,z]=ode45(

'diffX'

,T,z0)

% rozwiązanie znajdzie się w

% zmiennych t oraz z

x=z(:,1)

% ze zmiennej z pobierana jest pierwsza kolumna

v=z(:,2)

% ze zmiennej z pobierana jest druga kolumna

plot(t,x,

'b-'

)

% rysunek funkcji x(t) kolorem niebieskim

% (b-blue) linią ciągłą (-)

xlabel(

‘czas [s]'

)

% opis osi X

ylabel(

'x [m]'

)

% opis osi Y

title(

' model 2-go rzędu'

)

% tytuł wykresu

Grid

% siatka na rysunku

Należy uruchomić plik „rozwiaz”. Pliki powinny być w kartotece „work”

background image
background image
background image

Matlab –

survival dla opornych

background image

MATLAB
Polecenia systemowe

background image

Kartoteki funkcji

Zestaw funkcji znajduje się
\MATLAB\toolbox\

xxxx\...

(np. matlab\..., simulink\..., compiler\..., fuzzy\...)

yyyy\...

(grupy funkcji)

W każdej kartotece xxxx\yyyy\ jest plik Contents z wykazem funkcji.
Komenda Help i menu pomocy
„help” – podaje wszystkie tematy (topic) w postaci: xxxx\yyyy (gdzie xxxx jest nazwą podkartoteki \MATLAB\toolbox)
„help yyyy” – podaje wszystkie funkcje z danego tematu (każdy temat jest umieszczony w oddzielnej podkartotece a
zestaw funkcji zawarty jest w pliku Contents)
„help nazwa” – wypisuje sposób użycia funkcji – początkowy komentarz z pliku funkcji (nazwa.m)
 
menu Help\Table of contents

(funkcje grupami)

menu Help\Index

(funkcje alfabetycznie)

Pliki i foldery

dir, ls, what

(listowanie wszystkich plików, funkcji)

type

nazwa

(pisz zawartość pliku w oknie)

delete nazwa

(kasuj plik)

cd

(zmień kartotekę)

which, lookfor
Matlabpath

Polecenia dla zmiennych

who, whos

(lista zmiennych z przestrzeni roboczej)

save a1.dat A -ascii

(zapamiętaj tablice A w pliku a1.dat)

load a1.dat

(wczytaj zmienne z pliku a1.dat)

save ses

(wszystkie zmienne robocze do ses.mat)

load ses

(wczytaj z ses.mat)

clear

(wyczyść przestrzeń zmiennych)

MATLAB
Polecenia systemowe

background image

MATLAB
Zmienne i wyrażenia

Nazwy zmiennych
Pierwsza litera, 19 znaków, rozróżnia się duże i małe litery
Typy zmiennych
liczba

i=1, i=3*sin(1)

zmienna zespolona

a=3+2*j, a=3+2*i, a=r*exp(j*alfa), a=3+2i

wektor

a=[1 2 3 4 5]

tablica (macierz)

A=[1 2 0; 2 4 5]

łańcuch

s = ’ala’

Inicjowanie zmiennych w przestrzeni roboczej
Generowanie zmiennych
wprowadzenie listy
A=’ala’; C=1;
B=[11+11j 12+12j; 21+21j 22+22j];
B=[11 12; 21 22] + j * [11 12; 21 22];
wczytanie z pliku (binarny, ASCII)
load
generowanie tablic (wektorów, macierzy) przez funkcje
eye, linspace, logspace, meshgrid, ones, rand, randn, zeros, compan, magic, gallery,...
konstrukcja tablic za pomocą dwukropka (patrz znaki specjalne)
Rezerwacja miejsca w pamięci – zwykle generowanie przez funkcję (zeros, ones, eye)
A=ones(7)

(macierz jedynkowa 7*7)

ala=1:1:7

( [1 2 3 4 5 6 7] )

Odwołania do zmiennych
pojedyncze elementy tablic
B(1,2) – wiersz 1, kolumna 2
b) wybór wierszy i kolumn – patrz znaki specjalne - dwukropek
b) wielkość tablic i macierzy
ile = size(tablica) -> ile(1) – ilość wierszy, ile(2) – ilość kolumny
Nazwy specjalne

ans

zmienna robocza

computer
eps

dokładność obliczeń

flops

licznik operacji zmiennoprzecinkowej

i,j

jednostka urojona

Inf

nieskończoność

NaN

wartość nieokreślona

nargin

ilość argumentów wejściowych funkcji

nargout

ilość argumentów wyjściowych funkcji

pi

liczba 

realmax
realmin
clock
cputime
date
etime
tic,toc

background image

MATLAB
Operatory

dodawanie,
odejmowanie

+, -

 

mnożenie,
potengowanie

*, ^

.*, .^

dzielenie prawo- i
lewostronne

/, \

./ , .\

sprzężenie i
transpozycja

‘,’

 

iloczyn tesorowy
Kronecker’a

kron

 

relacje

<, <=, >, >=,
==, ~=,

 

operacje logiczne

&, |, ~, xor

 

Lista znaków
=

przypisanie

[ ]

wektor, macierz

()

kolejność obliczeń

.

niejawna indeksacja wektorów i macierzy

..

katalog macierzysty (DOS)

...

kontynuacja w następnej linii

,

separacja indeksów, argumentów, poleceń

;

koniec wiersza macierzy; wstrzymanie wypisania odpowiedzi (brak echa)

:

generowanie wektorów, indeksowanie macierzy, wprowadzanie łańcuchów,

‘ , ’

transpozycja/sprzeżenie macierzy

%

komentarz

!

komenda SO

Średnik – przykłady
a) wprowadzanie macierzy, np. 2 wiersze, 3 kolumny -> a1=[1 2 3;1 2 3]
Dwukropek - przykłady
generowanie wektorów
j : k

=> [j, j+1, ..., k]

(przyrost o 1)

j : i : k

=> [j, j+1i, j+2i, ..., k]

(przyrost o i)

 
wybór żądanych wierszy, kolumn, elementów
A( : , j)

j-ta komuna

A( : , j:k)

kolumny A(j), A(j+1), ..., A(k)

A( i, : )

i-ty wiersz

A( : )

wszystkie elementy macierzy wypisane w jednej kolumnie

A( j:k)

elementy od j do k wypisane w jednym wierszu

A( : , [2,3]) = A( : , 2:3 )

background image

Podstawowe funkcje matematyczne

abs, sqrt, round, fix, sign, rem, exp, log, log10
angle real, imag, conj
sin, cos, tan, asin acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh

- (kąt w radianach)

np. cos(2*pi-t)

MATLAB
Funkcje matematyczne

background image

Grafika - wykresy
Okno wykresów
[nr =] figure

– otwórz nowe okno [i zapamiętaj jego numer]

figure(nr)

– uaktywnij wskazane okno

Wykresy 2-D
plot

– wykres liniowy

loglog

– wykres w skali podwójnie logarytmicznej o podstawie log

10

semilogx

– wykres w skali półlogarytmicznej (na osi x)

semilogy

– wykres w skali półlogarytmicznej (na osi y)

polar

– wykres biegunowy

 
plot(y), plot(x, y), plot(x, y, ’typ_linii’), plot(x1, y1, ’typ1’, x2, y2, ’typ2’,..)
gdzie

x, y

– wektory N-elementowe lub macierze N*M

typ_linii = np.’r:’ (czerwona kropkowana):

y – żółty, m – magenta, c – cyan, r – red, g – green, b – blue, w – white, k – black

. – punkt, o – okrąg, x,+,* – znaki, – – ciągła, : – punktowa,–.,– –

Wykresy 3-D
meshgrid(x1:dx:x2, y1:dy:y2)

– tworzenie dziedziny funkcji w postaci par liczb [x,y] (meshdom dla v.4)

mesh(z)

– wykres siatkowy 3-D nad dziedziną [x,y]

surf(z)

– wykres powierzchniowy

waterfall

– wodospad

 
mesh(z), mesh(z,[kąt,obrót], mesh(z, [kąt, obrót], [sx, sy,sz])
gdzie:

[kąt,obrót] – kąt prawo-lewo, obrót góra-dół
[sx,sy,sz] – skalowanie osi

Inne wykresy
fplot

– wykres funkcji ciągłej

bar

– wykres słupkowy na podstawie elementów wektorów

stairs

– jw. ale bez linii wewnętrznych

 
contour

– wykres konturowy (izolinie, „mapa z poziomicami”)

contour3

– wykres konturowy 3D

slice

– wykres plasterkowy

plot3(x, y, z)

– wykres krzywej w przestrzeni

pcolor

– wykres pseudokolorowy

quivier

– linie pola

fill3

– wielokąt

 
meshc, meshz

– wykres siatkowo-konturowy i siatkowy na płycie

surfc

– wykres powierzchniowo-konturowy i podświetlany

 
hist, rose,
fill,
stem, compass, feather, errorbar,
Edycja wykresu
axis([xmin,xmax,ymin,ymax])

– skalowanieosi x i y

ylabel(‘opis osi y’)
xlabel(‘opis osi x’)
title(‘tytul wykresu’)
text(xa,ya,napisa)

– na pozycji xa, ya wyświetla napisa

grid on, grid of

– włącz /wyłącz siatę na wykresie

hold on, hold of

– włącz / wyłącz czyszczenie wykresy w oknie

subplot(xm,ym,i)

– dzieli okno na xm wierszy i ym kolumn i wybiera i-ty wycinek

view(kąt, obrót)

– zmienia punkt widzenia (obrót= punkt widzenia góra dół)

legend

clg

– wyczyść okno

MATLAB
Grafika

background image

Konstrukcje języka Matlab
Słowa kluczowe
catch, continue, break, else, elseif, end, error, for, if, return, switch, try, while
Pętla for

for indeks=poczatek:przyrost:koniec
instrukcje
end

for i = 1:n,
for j = 1:n,
A(i,j) = 1/(i+j-1);
end
end

Przerwanie pętli: break, przeskok do następnej pętli: continue
 
Pętla while

while wyrażenie
instrukcje
end

while i<10, i=i+1; a=a+2; end

Przerwanie pętli: break, przeskok do następnej pętli: continue
 
Warunek if

if warunek logiczny
instrukcje
end
if warunek_logiczny1
instrukcje1
elseif warunek_logiczny2
instrukcje2
else
instrukcje3
end

if i == j
A(i,j) = 2;
elseif ABS(i-j) == 1
A(i,j) = -1;
else
A(i,j) = 0;
end
 
if i==j, A(i,j)=2; else A(i,j)=0; end

MATLAB
Pętle

background image

Funkcje wewnętrzne (wbudowane)
Wszystkie polecenia systemowe, np. clear, what, save,...
Funkcje zewnętrzne (dyskowe), tzw. M-pliki
Funkcje zewnętrzne występują w postaci plików tekstowych z rozszerzeniem *.m. Listę funkcji w danym katalogu można zobaczyć przez
polecenie: help katalog
Skrypty
Skrypty (pliki sterujące) działają na zmiennych globalnych.
Wywoływane są przez nazwę (bez argumentów).
Tworzone są najczęściej przez użytkownika:
przy pomocy zewnętrznego edytora plików tekstowych
przy pomocy polecenia diary (diary nazwa, diary of, diary on)
Funkcje
Funkcje działają na zmiennych lokalnych.
Zwykle są wywoływane przez nazwę z argumentami. np. gear(‘model’,10,[0 1 2])
Mogą być wywoływane z lewostronnym zdefiniowaniem wielkości oddawanych, np. [t]=gear(‘cos’,10,[0 1 2])
Tworzone przy pomocy zewnętrznego edytora (patrz Tworzenie własnych funkcji)
Tworzenie własnych funkcji

Inicjacja pracy:
input

- np. a=input(‘Podaj a ’)

keyboard,
menu,
pause

Polecenia:

eval

- wykonaj lancuch polecen matlab

feval

- wykonaj funkcje zapisana jako lancuch

global

- def zm.globalnych

nargchk

- okreslenie liczby parametrow funkcji

 
Nazwa pliku taka sama jak nazwa funkcji
function [lista arg wy] = nazwa fun. ( lista arg we)
 
np.:
M.-plik „ldata.m”:
function [x1,x2,x4] = ldata(fstr,n,ptr)
 
Wywołanie:
[a1, a2, a3] = ldata(‘leq’, 3, pscr)

MATLAB
Funkcje

background image

Algorytmy całkowania Simulink’a
Dostępne metody Matlab4.2:
RK23, RK45, GEAR, EULER, LINSIM, SFUNC, DSFUNC, TRIM, LINMOD
ODE23, ODE45,
Patrz przykład odedemo (porownanie metod ode23 i ode45 z różnym krokiem)
 
Dostępne metody Matlab 5:
 
ODE15S Solve stif diferential equations, variable order method.
ODE23S Solve stif diferential equations, low order method.
ODE23TB Solve stif diferential equations, low order method.
ODE23T Solve moderately stif diferential equations, trapezoidal rule.
 
ODE23 Solve non-stif diferential equations, low order method.
ODE45 Solve non-stif diferential equations, medium order method.
ODE113 Solve non-stif diferential equations, variable order method.
 
ODE23S also solves problems M*y' = F(t,y) with a constant mass matrix M that is nonsingular and (usually) parse. Use ODESET to set
MassConstant 'on' if the ODE file is coded so that F([],[],'mass') returns a constant mass matrix M (see FEM2ODE).
 
ODE23T also solves problems M(t)*y' = F(t,y) with a mass matrix M(t) that is nonsingular and (usually) sparse. Use ODESET to set Mass 'on'
if the ODE file is coded so that F(T,[],'mass') returns M(T) (see FEM1ODE). Set MassConstant 'on' if F(T,[],'mass') returns a constant M.
 
ODE23TB also solves problems M(t)*y' = F(t,y) with a mass matrix M(t) that is nonsingular and (usually) sparse. Use ODESET to set Mass
'on' if the ODE file is coded so that F(T,[],'mass') returns M(T) (see FEM1ODE). Set MassConstant 'on' if F(T,[],'mass') returns a constant M.
 
Dla metod ODE15S, ODE23S, ODE23TB:
The Jacobian matrix dF/dy is critical to reliability and efficiency. Use ODESET to set JConstant 'on' if dF/dy is constant. Set Vectorized 'on' if
the ODE file is coded so that F(T,[Y1 Y2 ...]) returns [F(T,Y1) F(T,Y2) ...]. Set JPattern 'on' if dF/dy is a sparse matrix and the ODE file is coded
so that F([],[],'jpattern') returns a sparsity pattern matrix of 1's and 0's showing the nonzeros of dF/dy. Set Jacobian 'on' if the ODE file is
coded so that F(T,Y,'jacobian') returns dF/dy.
 

MATLAB
Algorytmy całkowania

background image

Dziękuję za uwagę i

zainteresowanie


Document Outline


Wyszukiwarka

Podobne podstrony:
Podstawy automatyki (w 5) elementy wykonawcze i pomiarowe ppt [tryb zgodnosci]
smalec,podstawy automatyzacji L,?dania symulacyjne elementów automatyki w środowisku Matlab Simulink
Symulacja układów sterowania z wykorzystaniem pakietu MATLAB, PWr W9 Energetyka stopień inż, III Sem
0 Podstawy automatyki Organizacja wykładu(1)id 1850 ppt
Podstawy automatyki (w 5) elementy wykonawcze i pomiarowe ppt [tryb zgodnosci]
06 Podstawy syntezy polimerówid 6357 ppt
Podstawy elektroniki i energoelektroniki prezentacja ppt
FESTO Podstawy automatyzacji
09 Podstawy chirurgii onkologicznejid 7979 ppt
2 Podstawowe definicje (2)id 19609 ppt
15 Sieć Następnej Generacjiid 16074 ppt
06 podstawy SQL 3id 6524 ppt
1 Epidemiologia i podstawowe informacje o NSid 8500 ppt
12 Podstawy automatyki Układy sterowania logicznego
podstawy automatyki ćwiczenia lista nr 4b

więcej podobnych podstron