Kwp wykl cz2

background image

Funkcje I/O - Praca Interaktywna

input

- polecenie wypisuje komunikat i czeka na dane z klawiatury

» n=input('Proszę wpisac liczbę naturalną: ')
Proszę wpisac liczbę naturalną: 23

n =
23
» name=input(’Wpisz swoje imię: ', 's')
Wpisz swoje imię : Zyzio

name =
Zyzio

• Matlab dokonuje podstawienia dopiero po naciśnięciu “Enter”

background image

» k=menu('Choose a color','r','b','g')

k = 2

Funkcje I/O - Praca Interaktywna

• Komenda

menu

tworzy menu (graficzne lub tekstowe) czeka na

wybór dokonany przez użytkownika

Naciśnij b

background image

Funkcje I/O - Praca Interaktywna

• k = 2 (niebieski) z poprzedniego

slajdu

• Informacje tą użyto do określenia

koloru linii na wykresie

» color=['r' 'b' 'g'];
» x=[0:10];y=2*x;
» plot(x,y,color(k));
» title('Plot color from Menu');

background image

Funkcje I/O - Obsługa Plików (w.p.)

• Czytanie i zapisywanie plików

• Inne formaty:

– csvread

- ASCII separowane przecinkami

– dlmread

- ASCII (nieformatowany)

– textread

- tekst foramatowany

load fname
load fname x y z
load fname -ascii
load fname -mat
load fname*

save fname
save fname x y z
save fname data*
save fname -ascii
save fname -v4

Można używać (*) do
czytania wielu plików
jednocześnie

»help iofun

background image

Funkcje I/O - Obsługa Plików (n.p.)

This is a magic matrix

17

23

4

10

11

24

5

6

12

18

1

7

13

19

25

8

14

20

21

2

15

16

22

3

9

Plik tekstowy ASCII: magic5.txt

» fid=fopen('magic5.txt', 'rt');
» title = fgetl(fid);
» [data,count]=fscanf(fid, '%i');
» data = reshape(data, 5, 5);
» fclose(fid);

»help fprintf

Odczytywanie danych
z pliku tekstowego:

» fid = fopen('magic5.txt', 'wt');
» fprintf(fid, '%s\n', 'This is a magic matrix');
» fprintf(fid, '%i\t%i\t%i\t%i\t%i\n', magic(5));
» fclose(fid);

Zapis danych do pliku tekstowego:

background image

• Określ dane_y i / lub dane_x (ydata, xdata)
• Określ kolor linii, rodzaj linii i symbol znacznika

(jeśli nie - użyte będą wartości domyślne)

• Składnia:

– Rysowanie pojedyńczej linii:

– Rysowanie wielu linii na jednym wykresie:

Grafika 2D

plot(xdata, ydata, 'color_linestyle_marker')

plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)

background image

Grafika 2D

N.p. rysujemy dane o

kursach akcji IBM

(Uwaga na oś X)

» load ibm.mat
» plot(1:length(ibm), ibm)

background image

Grafika 2D

>> hold on

“zamraża”

bieżący rysunek

>> hold off

“uwalnia”

bieżący rysunek

>> hold

zmienia aktualny

stan

»

new = ibm + rand(length(ibm),1)*10;

» hold on
»

plot(1:length(ibm), new, 'r*:')

background image

Grafika 2D

subplot

pozwala na wykreślenie kilku wykresów w jednym oknie

»subplot(2,2,1);
»

»

subplot(2,2,2)

» ...

»subplot(2,2,3)
»

...

»subplot(2,2,4)
» ...

subplot(#rzędów, #kolumn, indeks)

background image

Grafika 2D

SEMILOGY
log Y
lin X

PLOTYY
Dwie liniowe
osie Y

LOGLOG
Obie osie
w skali
logarytmicz
-nej

SEMILOGX
log X
lin Y

background image

Grafika 2D

3 wektory tej

samej
długości

Jak wyróżnić
poszczególne
wykresy ?

background image

Grafika 2D

• Opis wykresu generuje komenda:

» legend('First', 'Second', 'Third' );

• Opis można przesunąć przeciągając w nowe miejsce lewym

przyciskiem myszki

• Opis kasuje komenda:

» legend off

background image

Grafika 2D

Wykres musi
nieść czytelne
informacje

background image

Grafika 2D

• Ustalanie minimów i maksimów

» axis([ xmin xmax ymin ymax]);

• Przywracanie ustawień domyśnych

» axis('auto')

lub

» axis auto

• Ustawianie równej skali na obu osiach

» axis equal

• Zablokowanie zmian proporcji osi podczas zmiany położenia kamery

obserwatora

» axis vis3d

Formatowanie osi

background image

Grafika 2D

gtext

służy do dołączania tekstu do wykresów

• Wywołuje ona znacznik i czeka na kliknięcie myszką. W miejscu

kliknięcia umieszczany jest wprowadzony tekst

» gtext('These are straight lines');

Dopisywanie

tekstu

background image

Grafika 2D

• Aby pobrać współrzędne punktów, w których kliknięto na wykresie

myszką stosuje się komendę

ginput

Liczba punktów do odczytu

Wektor współrzędnych Y
Wektor współrzędnych X

» [xp, yp] = ginput(3);

Pobieranie

danych z

wykresu

background image

Grafika 2D

» f='sin(2*x)*exp(-x)';xmin=0; xmax=2*pi;
» ezplot(f,[xmin,xmax]);

EZPlot

Wygodne

narzędzie

background image

Grafika 3D

»

t = 0.001:0.001:0.03;

»

s = 90:0.2:100;

»

[gt, gs] = meshgrid(t,s);

»

r = 0.1;

»

k = 95;

»

[call, put] = blsprice(gs,k,r,gt,0.3);

»

surf(t,s,call)

»

xlabel('Time to Maturity')

»

ylabel('Spot Price’);

background image

Grafika 3D

background image

Grafika 3D

background image

Grafika - Przenoszenie wykresów do innych aplikacji

• Drukowanie do pliku:

– Okno dialogowe drukowania: (File / Print...)

>> printdlg

– Wiersz poleceń:

(Parametry są opcjonalne)

• Kopiowanie do schowka:

– Opcje:

(File / Preferences)

– Kopiowanie: (Edit / Copy Figure)

print -devicetype -options filename

background image

Podstawy „Handle Graphics”

Grafika w MATLAB-ie jest zorientowana obiektowo
Każdy obiekt graficzny posiada unikalny

uchwyt

(identyfikator)

i zbiór

własności

określających jego cechy.

Obiekty zorganizowane są w

hierarchicznej strukturze.

Uicontrol

Image

Line

Patch

Surface

Text

Light

Axes

Uimenu

Figure

Root (Screen)

background image

Podstawy „Handle Graphics”

Obiekt

Root

Obiekt
Surface

Obiekty
Line

Obiekty
Text

Obiekty
UIControl

Obiekt Axes

Obiekt
UIMenu

Obiekt
Figure

background image

Podstawy „Handle Graphics”

1. W chwili tworzenia obiektu

2. Funkcje specjalizowane

0

- uchwyt obiektu root

gcf - pobiera uchwyt bieżącego okna graficznego
gca - pobiera uchwyt aktualnego układu osi współrzędnych
gco - pobiera uchwyt aktualnego obiektu

3. FINDOBJ

h_obj = findobj(h_parent, 'Property', 'Value', ...)

h_line = plot(x_data, y_data, ...)

Co to jest “aktualny obiekt”?

Ostatni stworzony obiekt

LUB

Obiekt ostatnio kliknięty myszką

Domyślnie = 0 (root)

Pobieranie

uchwytów

background image

Podstawy „Handle Graphics”

» h = findobj('Color', [0 0 1])
» delete(h)

delete(h_object)

Kasowanie

obiektów

background image

Podstawy „Handle Graphics”

• Odczytywanie bieżących własności:

• Odczytywanie listy możliwych nastaw:

• Modyfikowanie własności obiektów:

get(h_object)

set(h_object)

set(h_object, 'PropertyName',
'New_Value', ...)

Modyfikowanie

własności obiektów

background image

Podstawy „Handle Graphics”

Lista własności:

Ukazuje własności
wybranego obiektu

»propedit

Wyszukiwarka

obiektów:

Hierarchiczna lista

wszystkich obiektów

graficznych

Okna zmiany wartości
dla poszczególnych
własności.

Edytor

własności

background image

Matlab - zastosowania

•Moment bezwładności wirnika:

(J) = 0.01 kg.m^2/s^2

•Współczynnik tarcia lepkiego:

(b) = 0.1 Nms

•Wsp. określający zależność siły prze-
ciwelektromotorycznej od prędkości
kątowej (K=Ke=Kt) = 0.01 Nm/Amp
•Rezystancja (R) = 1 ohm
•Indukcyjność (L) = 0.5 H
•Napięcie zasilania (V) -

Wejście

•Kąt obrotu wału (theta) -

Wyjście

•Zakłada się, że wirnik i wał są
elementami sztywnymi

background image

Matlab - zastosowania

J ¨θ

b ˙θ=Ki

L

di
dt

Ri=V K ˙θ

z praw Newtona i Kirchoffa

s

Jsbθs=KI s

LsRI s=V Ksθs

po przekształceniu Laplace’a

˙θ

V

=

K

Jsb LsRK

2

Transmitancja po wyeliminowaniu I(s)

background image

Matlab - zastosowania

J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
step(num,den,0:0.1:3)
title(’Odpowiedź skokowa układu otwartego')

background image

Matlab - zastosowania

Regulator

Silnik

R

V

˙θ

+

-

Wymagania projektowe:

(Dla wymuszenia skokowego 1rad/sec)

•Czas regulacji < 2 sec
•Przeregulowanie < 5%
•Uchyb statyczny < 1%

background image

Matlab - zastosowania

Kp=100;
numa=Kp*num;
dena=den;
[numac,denac]=cloop(numa,dena);
t=0:0.01:5;
step(numac,denac,t)
title(‘Odpowiedź skokowa układu z regulatorem P')

background image

Matlab - zastosowania

Kp=100;
Ki=1;
Kd=1;
numc=[Kd, Kp, Ki];
denc=[1 0];
numa=conv(num,numc);
dena=conv(den,denc);
[numac,denac]=cloop(numa,dena);
step(numac,denac)
title(‘Sterowanie PID dla małych Ki i Kd')

background image

Matlab - zastosowania

Kp=100;
Ki=200;
Kd=1;
numc=[Kd, Kp, Ki];
denc=[1 0];
numa=conv(num,numc);
dena=conv(den,denc);
[numac,denac]=cloop(numa,dena);
step(numac,denac)
title(‘Sterowanie PID dla dużego Ki i małego Kd')

background image

Matlab - zastosowania

Kp=100;
Ki=200;
Kd=10;
numc=[Kd, Kp, Ki];
denc=[1 0];
numa=conv(num,numc);
dena=conv(den,denc);
[numac,denac]=cloop(numa,dena);
step(numac,denac)
title('Sterowanie PID')

background image

Dziś KONIEC


Wyszukiwarka

Podobne podstrony:
Kwp wykl cz1
Kwp wykl cz3
Zakażenia grzybicze skóry cz2
wykl 8 Mechanizmy
Stomatologia czesc wykl 12
Wykł 1 Omówienie standardów
Wykl 1
parafunkcje cz2
KOMPLEKSY POLAKOW wykl 29 03 2012
Wykł 1B wstępny i kinematyka
Ger wykł II
Wykł BADANIA KLINICZNO KONTROLNE I PRZEKROJOWE

więcej podobnych podstron