uvod v matlab andreja rojko

54
Uvod v Matlab Andreja Rojko Spletna stran navodil http://www.ro.feri.uni-mb.si/predmeti/navodila/ Matlab_nav/matlab_65_and.htm

Upload: zavad

Post on 16-Jan-2016

171 views

Category:

Documents


2 download

DESCRIPTION

Uvod v Matlab Andreja Rojko. Spletna stran navodil http://www.ro.feri.uni-mb.si/predmeti/navodila/Matlab_nav/matlab_65_and.htm. Vsebina. Matlab, opis programa Delo s skalarji, vektorji in matrikami Uporaba pomoči (help) Grafika Osnovne programske strukture Orodje za regulacije. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Uvod v Matlab Andreja Rojko

Uvod v MatlabAndreja Rojko

Spletna stran navodilhttp://www.ro.feri.uni-mb.si/predmeti/navodila/Matlab_nav/

matlab_65_and.htm

Page 2: Uvod v Matlab Andreja Rojko

Vsebina

• Matlab, opis programa

• Delo s skalarji, vektorji in matrikami

• Uporaba pomoči (help)

• Grafika

• Osnovne programske strukture

• Orodje za regulacije

Page 3: Uvod v Matlab Andreja Rojko

Matlab, opis programa• Matlab:

- matematika in računanje,- razvoj algoritmov (tudi v C-ju),- zajemanje in obdelovanje podatkov,- modeliranje in simulacija, - vizualizacija (2D,3D grafi,..),- grafični uporabniški vmesniki,- močna podpora uporabniku.

Page 4: Uvod v Matlab Andreja Rojko

Matlab, opis programa• Matlab:

- orodja (toolbox),

- vgrajene funkcije,

- Simulink.

• Uporabnik:

- lastni programi, funkcije, knjižnice,

- uporabniška orodja (internet).

Page 5: Uvod v Matlab Andreja Rojko

Matlab, opis programa• Matlab - matrix laboratory

- osnovna enota za delo je polje (array)

- enostavno delo z vektorji in matrikami

Page 6: Uvod v Matlab Andreja Rojko

Matlab, opis programa

Osnovno okno (View->

desktop layout->

Default)

Page 7: Uvod v Matlab Andreja Rojko

DEMOUkaz DEMO!

Page 8: Uvod v Matlab Andreja Rojko

Vpis skalarjevPrireditev vrednosti:

10

a = 10

b = -20; (Podpičje na koncu–ni ponovitve izpisa)

B = 1.07 (Decimalna vejica je decimalna pika!)

(Matlab razlikuje velike in majhne črke)

Števila z desetiško potenco vpišemo kot:

-> d = 5e-44105 d

Page 9: Uvod v Matlab Andreja Rojko

Vpis skalarjevNajmanjše število s plavajočo vejico 2.2251e-308:realmin

Največje število s plavajočo vejico 1.7977e+308:realmax

Točnost operacij s plavajočo vejico:eps

Vgrajeno število: pi

Page 10: Uvod v Matlab Andreja Rojko

Kompleksna številaKompleksna enota je i ali j:ijg = 5+7ih = 0.56e-12 +1.35j

Možne vse operacije kot z realnimi števili.Problem: i in/ali j prepišemo...-> rešitev clear i j

Page 11: Uvod v Matlab Andreja Rojko

Osnovne operacije

Seštevanje, odštevanje, množenje, deljenje:

a+b

a-b

a*b

a/b

Potenciranje:

a^5.78

b^d

Page 12: Uvod v Matlab Andreja Rojko

Osnovne operacije

Nekaj ‘nenavadnih’ operacij

0/10

100/0

Inf- neskončno

0/0

NaN- not a number

Page 13: Uvod v Matlab Andreja Rojko

Osnovne operacije

Kvadratni koren:

sqrt(a)

Eksponentna funkcija:

exp(a)

Naravni logaritem:

log(a)

Desetiški logaritem:

log10(a)

Page 14: Uvod v Matlab Andreja Rojko

Osnovne operacijeAbsolutna vrednost:

abs(b), abs(4+5i)

Trigonometrične funkcije, argumenti v radianih!

cos(0.2*pi), sin(a), tan(b)

Inverzne trigonometrične funkcije:

acos(-0.7), asin(1), atan(b)

Hiperbolične trigonometrične funkcije:

cosh(2), sinh(-2), tanh(0.56)

Page 15: Uvod v Matlab Andreja Rojko

ZaokroževanjeZaokrožitev navzdol na celo število:

fix(1.9), fix(-1.9)

Zaokrožitev na najbližje celo število:

round(5.6)

Zaokrožitev na najbližje celo število, proti :

floor(1.99), floor(-1.1)

Zaokrožitev na najbližje celo število, proti:

ceil(1.99), ceil(-1.1)

Page 16: Uvod v Matlab Andreja Rojko

Formati izpisaIzpis na 15 decimalk:

format long, 15/2.56

Izpis na 5 decimalk, osnovna nastavitev:

format, 15/2.56

Sami preizkusite ostale možnosti:

format short e, format long e, format +

Page 17: Uvod v Matlab Andreja Rojko

Uporaba pomoči

Pomoč za znan ukaz:

help log

Iskanje ukaza:

lookfor logarithm

Iskanje pomoči v meniju help/ Matlab help.

Page 18: Uvod v Matlab Andreja Rojko

Naloga

V delovnem oknu programa Matlab izračunajte:

)(7.35

108log 587.7*24.0cos2

ch

e

Page 19: Uvod v Matlab Andreja Rojko

Naloga - rešitev

)(7.35

108log 587.7*24.0cos2

ch

e

>> sqrt(log2(exp(cos(0.24*7.87)))+8e5)/(35.7+cosh(pi))

ans =

18.9129

Page 20: Uvod v Matlab Andreja Rojko

Vpis vektorjevVpis vrstičnega vektorja

x=[1,2,3,4]

Vpis stolpičnega vektorja

y=[10;20;30;40]

Avtomatsko generiranje vektorja

w=[0:0.1:1]

Transponiranje vektorja

transp_x = x’

Page 21: Uvod v Matlab Andreja Rojko

Delo z vektorji

Vsota vseh členov vektorja

sum(x)

Dolžina vektorja

length(y)

Page 22: Uvod v Matlab Andreja Rojko

Delo z vektorji

Seštevanje vektorjev

x+y'

Prištevanje, odštevanje, množenje, deljenje

vektorja s skalarjem

x+a

x*a

x/a

Page 23: Uvod v Matlab Andreja Rojko

Vpis matrikeVpis vrstičnega vektorja

vrstica=[1,2,3]

Vpis stolpičnega vektorja

stolpec=[1;2;3]

KAKO BI VPISALI MATRIKO

9087

654

321

A

Page 24: Uvod v Matlab Andreja Rojko

Vpis matrikeVpis matrike A

A=[1, 2, 3; 4, 5, 6; 7, 8, 90]

Dimenzije matrike

size(A)

Determinanta matrike

det(A)

Inverzna matrika

inv_A=inv(A)

Page 25: Uvod v Matlab Andreja Rojko

Matematične operacije z matrikami

Množenje, deljenje, seštevanje, odštevanje matrik

inv_A*A, A-inv_A, ...

Množenje, deljenje, seštevanje, odštevanje

skalarjev od/z matrikami

A*a, A-a, ...

Množenje matrike z vektorjem

u=A*[0.1,0.2,0.3]

Page 26: Uvod v Matlab Andreja Rojko

Elementarne matrike in vektorjiMatrika ničel s 3 vrsticami in 4 stolpci

nicelna = zeros(3,4)

Matrika enic z 2 vrsticama in 3 stolpci

enice = ones(2,3)

Enotina matrika s 3 vrsticami in stolpci

enotina = eye(3)

Matrika naključnih števil med 0 in 1

naklj = rand(2,2)

Page 27: Uvod v Matlab Andreja Rojko

Delo z členi, vrsticami in stolpci  matrik in vektorjev

Branje prvega člena vektorja x

prvi_clen = x(1)

Dodajanje člena 1 vrstičnem vektorju 

x = [x, 1]

Poskusite sami:- Spremeniti drugi člen vektorja x v 1000- Dodati člen 1000 stolpičnemu vektorju y

Page 28: Uvod v Matlab Andreja Rojko

Delo z členi, vrsticami in stolpci  matrik in vektorjev

Sprememba drugega člena vektorja x v 1000

x(2)=1000

Dodajanje člena 1000 stolpičnemu vektorju  y

y = [y; 1000]

Poskusite sami:- Prebrati prvi člen v tretji vrstici matrike A

Page 29: Uvod v Matlab Andreja Rojko

Delo z členi, vrsticami in stolpci  matrik in vektorjev

Branje prvega člena tretje vrstice A

A13 = A(1,3)

Branje drugega stolpca matrike

stolpec = A(:,2)

Branje tretje vrstice matrike

vrstica = A(3,:)

Page 30: Uvod v Matlab Andreja Rojko

Delo z členi, vrsticami in stolpci  matrik in vektorjev

Dodajanje vrstice matriki

A_nov=[A;[100,200,300]]

Dodajanje stolpca matriki

A_nov=[A,[0.1;0.2;0.3]]

Brisanje tretje vrstice iz matrike

A(3,:)=[]

Page 31: Uvod v Matlab Andreja Rojko

Dodatni ukaziIzpiše seznam vseh spremenljivk v delovnem prostoruwhos

Zbriše vse spremenljivke iz delovnega prostoraclear all

Zaustavi izvajanje programaCTRL+C

Page 32: Uvod v Matlab Andreja Rojko

Povzetek• Z vejico ločimo člene v eni vrstici, s podpičjem preidemo v

novo vrstico.

• Pri delu z matrikami, oziroma členi matrik, se prvo število v oklepaju nanaša na vrstico, drugo na stolpec. A(i,j) tako pomeni i to vrstico in j-ti člen v vrstici.

• Če delamo s celim stolpcem ali vrstico, nadomestimo številko člena z dvopičjem. A(i,:) pomeni i-to vrstico in je vrstični vektor,  A(:,j) pomeni vse člene v j-tem stolpcu in je stolpični vektor.

• Pri dodajanju členov matriki je potrebno paziti na dimenzijo. Tako lahko matriki dodamo le stolpec, ki ima toliko členov kot ima matrika vrstic ali vrstico, ki ima toliko členov kot ima matrika stolpcev.

Page 33: Uvod v Matlab Andreja Rojko

2D grafiOdpre grafično okno

figure(1)

Izriše x,y graf

x = [-2*pi:0.01:2*pi];

y= sin(x);

plot(x, y)

Naslov grafa

title(‘sin(x)’)

Page 34: Uvod v Matlab Andreja Rojko

2D grafiOznaka na x osi

xlabel(‘ t[s]’)

Oznaka na y osi

ylabel(‘ t[s]’)

Omejitev območja izpisa axis([xmin,xmax,ymin,ymax])

axis([-2*pi,2*pi,-1,1])

Page 35: Uvod v Matlab Andreja Rojko

2D grafiRisanje mreže na graf

grid

Branje dveh točk iz grafa s klikom miške

ginput(2)

Zadrži vsebino grafičnega okna

hold on

Page 36: Uvod v Matlab Andreja Rojko

2D grafiDoločanje barve in tipa izrisa

figure(2)

plot(x,y,’r’, x,y-1,’*y’, x,y+1,’-.g’)

Dodajanje teksta na graf

text(0, 0.5, ’Tocka x=0,Y=0.5’)

Poskusite v grafičnem oknu graf opremiti s teksti,

ter spreminjati izrise z uporabo ikon v

orodni vrstici okna in menijev Edit in Insert.

Page 37: Uvod v Matlab Andreja Rojko

Posebni 2D grafiPolarni graf

theta=[0:0.01:2*pi];

r=sin(theta);

polar(theta,r)

Histogram

x=[1,-2,-2,3,3,3,4,4,4,4];

hist(x)

Ostali: stem, stairs, pie,..

Page 38: Uvod v Matlab Andreja Rojko

3D grafi3D graf

figure(3)

plot3(x, cos(x), sin(x))

Page 39: Uvod v Matlab Andreja Rojko

Posebni 3D grafiPosebni 3D graf

surf, mesh, waterfall, ...

http://www.ro.feri.uni-mb.si/predmeti/navodila/Matlab_nav/grafika/Posebni_3d_grafi.htm

Page 40: Uvod v Matlab Andreja Rojko

Grafi, splošnoZbriše vsebino grafičnega okna

clf

Zapre vsa odprta grafična okna

close all

• Grafe lahko kopiramo v druge (Microsoft) programe z opcijo Edit->Copy Figure. Pred tem označimo v Edit->Copy Options izbrano opcijo (bitmap, metafile).

Page 41: Uvod v Matlab Andreja Rojko

M datotekeNapišite m datoteko s katero se bo izvedlo nekaj

matematičnih operacij in izrisal 2D graf. Datoteko

shranite v Work direktorij. Izbrišite vsebino

delovnega okna z ukazoma

clear all, close allIme datoteke ne sme vsebovati presledkov in šumnikov!!!!

Izvedite vašo m datoteko tako, da v delovno okno

napišete njeno ime.

Page 42: Uvod v Matlab Andreja Rojko

M datotekeNa začetek datoteke dodajte vrstice s

komentarjem, ki opisuje kaj datoteka izvaja

% Komentar

Datoteko ponovno shranite in v delovnem

prostoru napišite ukaz:

help ime_vase_datoteke

Page 43: Uvod v Matlab Andreja Rojko

UPORABNI UKAZI PRI PROGRAMIRANJU

Ustavi izvajanje m-datoteke dokler uporabnik ne

pritisne poljubne tipke

pause

Izpiše obvestilo v delovni prostor

disp(‘Obvestilo’)

Prekine izvajanje for in while stavkov oziroma

izvajanje datoteke na mestu ukaza

break

Page 44: Uvod v Matlab Andreja Rojko

POGOJNI STAVKI UKAZ IF

Oblika ukaza

if pogoj1

stavki1;

elseif pogoj2

stavki2;

else

stavki3;

end  

Page 45: Uvod v Matlab Andreja Rojko

POGOJNI STAVKI UKAZ IF

Primer:

a=1, b=2

if a<b

c=b-a

elseif ((a==b)|(c<=b))

c = a

else

c = a+b

end  

Logični operatorji:

~ negacija

~=  ni enako

= = ekvivalentno

<= manjše ali enako

< manjše

& logični in

| logični ali

Page 46: Uvod v Matlab Andreja Rojko

POGOJNI STAVKI UKAZ WHILE

Oblika zanke while

while pogoj

stavki;

end  

Page 47: Uvod v Matlab Andreja Rojko

FOR ZANKAOblika zanke FOR

for stevec = zacetni:korak:koncni,

stavki;

end    

Page 48: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXPrenosno funkcijo:

Definiramo z:

st=[1,2]

im=[1,7,12]

prenosna_funkcija=tf(st,im)

43

22

s

s

im

stsF

127

22

ss

s

im

stsF

Page 49: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXPrenosno funkcijo:

Definiramo tudi z ničlami in poli:

nicle=[-2]

poli=[-3,-4]

ojacenje=1

prenosna_funkcija=zpk(nicle,poli,ojacenje)

43

22

s

s

im

stsF

127

22

ss

s

im

stsF

Page 50: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXLastnosti prenosne funkcije:

poli: poli_pr_funkcije=pole(prenosna_funkcija)

ničle: nicle_pr_funkcije=zero(prenosna_funkcija)

graf lege korenov: pzmap(prenosna_funkcija)

dušenje, lastna frek.: damp(prenosna_funkcija)

stacionarno ojačenje: dcgain(prenosna_funkcija)

43

22

s

s

im

stsF

Page 51: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXFrekvenčna karakteristika in krivulja lege

korenov:

Frekvenčna karakteristika: bode(prenosna_funkcija)

Krivulja lege korenov: rlocus(prenosna_funkcija)

Uporabniški vmesnik za KLK: rltool(prenosna_funkcija)

43

22

s

s

im

stsF

Page 52: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXČasovni odzivi

Stopnični odziv: step(prenosna_funkcija)

Impulzni odziv: impulse(prenosna_funkcija)

Odziv na poljuben signal: t=[0:0.01:50];

u=sin(t);

lsim(prenosna_funkcija,u,t)

43

22

s

s

im

stsF

Page 53: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXPovezava sistemov

Zaporedna: serijski_sistem=series(sistem1, sistem2)

Vzporedna: vzp_sistem=parallel(sistem1, sistem2)

Zaprta zanka:

zaprtozančni_sistem=feedback

(sistem1, sistem2,predznak)

43

22

s

s

im

stsF

sFsF

sFsF

21

1

1

Page 54: Uvod v Matlab Andreja Rojko

CONTROL TOOLBOXNaloga

Za sistem določite:

- ničle,

- pole,

- graf lege korenov,- stopnični odziv,- bodejev diagram.

492

2423

2

sss

s

im

stsF