117
I. UVOD U SOFTVERSKI PAKET MATLAB 1. POKRETANJE MATLAB-A, OSNOVNI PROZORI I TOOLBAR-I MATLAB-A

I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

  • Upload
    others

  • View
    16

  • Download
    1

Embed Size (px)

Citation preview

Page 1: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

I. UVOD U SOFTVERSKI PAKET MATLAB 1. POKRETANJE MATLAB-A, OSNOVNI PROZORI I TOOLBAR-I MATLAB-A

Page 2: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

2. MODULI MATLABA

Page 3: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

TOOLBOX

Kolekcija (biblioteka) izabranih funkcija namenjena

rešavanju problema određenje oblasti.

Proširuju mogućnosti Matlab-a

Postoje toolbox-ovi za oblasti

– analize signala

– automatskog upravljanja

– simulacije dinamiĉkog ponašanja sistema

– identifikacije sistema

– veštačkih neuronskih mreža

– fuzzy sistema

– optimizacije

– analize robustnosti sistema

– ...

Postojeći toolbox-ovi se usavršavaju, a novi

nastaju

Aerospace Toolbox Bioinformatics Toolbox Communications Toolbox Control System Toolbox Curve Fitting Toolbox Data Acquisition Toolbox Database Toolbox Datafeed Toolbox Excel Link Filter Design Toolbox Filter Design HDL Coder Financial Toolbox Financial Derivatives Toolbox Fixed-Income Toolbox Fixed-Point Toolbox Fuzzy Logic Toolbox GARCH Toolbox Genetic Algorithm and Direct Search Toolbox Image Acquisition Toolbox Image Processing Toolbox Instrument Control Toolbox Mapping Toolbox Model-Based Calibration Toolbox Model Predictive Control Toolbox Neural Network Toolbox Optimization Toolbox OPC Toolbox Partial Differential Equation (PDE) Toolbox RF Toolbox Robust Control Toolbox Signal Processing Toolbox Spline Toolbox Statistics Toolbox Symbolic Math Toolbox System Identification Toolbox Virtual Reality Toolbox Wavelet Toolbox

Page 4: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

3. BROJEVI, PROMENLJIVE

Realni brojevi

3 -99 0.0001 -9.639825 1.62e-20 -10.34e200

Opseg 308 308 308 3081.7977*10 ,  2.2251*10   ,   2.2251*10 1.7977*10

Posebni brojevi:

– broj pi (3.1415...)

– imaginarna jedinica i ili j

– beskonačna vrednost Inf

delenje nulom ne prekida program, već nastaje vrednost Inf

– neodređena vrednost (not a number) NaN

NaN je rezultat neodređenih izraza Inf / Inf ili 0/0

– podrazumevana tačnost eps (2.2204e-16)

– “privremena” promenljiva ans

Kompleksni brojevi

-4+7i 8i -9j -9*j 1.23-12e-4j

Page 5: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Promenljive

– naziv promenljive čine slova i brojevi

– mora početi slovom

– prvih 31 znakova se uzima u obzir

– razlikuju se mala i velika slova (npr. a i A su

dve promenljive)

4. ARITMETIČKE OPERACIJE – sabiranje +

– oduzimanje -

– množenje *

– delenje (levo) /

– desno delenje \

– stepenovanje ^

• Redosled operacija je određen na osnovu prioriteta:

1. unarni minus

2. stepenovanje

3. množenje ili delenje

4. sabiranje ili oduzimanje

• Upotrebom ( ) može se uticati na redosled izračunavanja

a=3 A=5; s=1415.2381; d=45, E=31

a=3+2 A=5*13; s=1415.2381/2.12 d=45^11, E=31*d w=(a+A)/(1+2*d)

Page 6: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Izrazi

• Oblik:

promenljiva = izraz

• Izraz čine: nazivi promenljivih, funkcije, operatori i drugi specijalni znaci.

• Ako se izostavi promenljiva sa leve strane znaka “=”, privremena promenljiva ans

prima vrednost izraza

• Kod dugačkih izraza, kada je potrebno unos nastaviti u narednom redu, predhodni

red završiti sa “...” (tri tačke)

• Znak “;” na kraju izraza sprečava da se ispiše vrednost promenljive

a=23

B=2*a^2+3*a+4

c=(a+B)/B

Page 7: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

5. NIZOVI I MATRICE I OPERACIJE NAD NJIMA

Definisanje nizova a=[1 3 6 2 0.4 1e-2 4 90] % vektor vrsta 1x8 b=[3; 7; 1; 9; 12] % vektor kolona 5x1 c=1:100 % c=1,2,3,...,100 1x100 d=3:2:200 % d=3,5,7,...,200 e=linspace(1,200,100) % 100 elemenata od 1 do 200 f=logspace(-2,3,100) % 100 elementa od 10-2 do 103 g=e+f % sabiranje vektora

Definisanje i matrica

A=[1 2 3; 6 5 4; 9 8 7] % 3x3 matrica

Matrične operacije i funkcije h=g’ % transponovanje vektora B=A’ % transponovanje vektora C=A+B % sabiranje matrica E=A*B % množenje matrica F=inv(B) % inverzija matrica G=A/B --> A*inv(B) % desno deljenje matrica G=A\B --> inv(A)*B % levo deljenje matrica de=det(B) % determinanta matrica sv=eig(A) % sopstvene vrednosti matrice

Page 8: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Sistem linearnih jednačina

1 2 3

1 2 3

1 2 3

1

2

3

2 2.5

3 2 0.5

1.5

1 2 1 2.5

1 3 2 0.5

1 1 1 1.5

x x x

x x x

x x x

x

x

x

Izdvajanje kolona (redova) matrica

1 2 3 2 5 9

4 5 6 4 1 2

7 8 19 22 11 1

2 4 8 6 4 0

0 8 5 9 4 1

A

A = [1 2 -1; -1 3 2; -1 -1 1]; b = [-2.5; 0.5; 1.5]; x = A\b

Izdvojiti elemente iz 2. i 4 kolone

B = A([1 4],:)

Izdvojiti elemente iz poelednje 3 vrste

B = A(:,end-3:end)

Izdvojiti sve elemente koji pripadaju

istovremeno drugoj i trećoj vrsti i neparnim

kolonama

B = A(1:2:end,[2 3])

Page 9: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Spajanje matrica i vektora

1 2 3

4 5 6

7 8 19

A

1 2 3

45 3 4B

Specijalne matrice

Jedinična matrica I = eye(3,3)

Nulta matrica N = zeros(5,3)

Matrica sa svim 1 J = ones(6,8)

Formirati matricu spajanjem vrsta matrice A i

matrice B.

C = [A;B]

Formirati matricu spajanjem 1. i 3. vrste matrice

A i poslednje vrste matrice B.

B = [A([1 3],:),B(end,:)]

Page 10: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

6. POLINOMI I OPERACIJE SA POLINOMIMA

Definisanje polinoma

Polinomi se zadaju preko vektora koeficijenata polinoma, počevši od najvećeg stepena polinoma. Na primer:

3 2( ) 2 3P s s s a = [2 -1 0 3]

Nule polinoma

3 2

1,2,3

( ) 2 3 0

?

P s s s

s

xi=roots[2 -1 0 3])

Formiranje polinoma iz njegovih nula

1 2 31, 2, 5

( ) ?

s s s

P s

P=poly([-1 2 -5])

Predstavljanje polinoma

a = polynom([1 2 3])

Page 11: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Izračunavanje polinoma 3 2( ) 2 3 0

(2) ?

P s s s

P

y = polyval([-1 2 -5],2)

Množenje polinoma 3 2

2

( ) 2 3

( ) 2 1

( )* ( ) ( )

P s s s

Q s s s

P s Q s R s

R=conv([2 -1 0 3],[2 1 -1])

Delejne polinoma 3 2

2

( ) 2 3

( ) 2 1

( ) ( )( )

( ) ( )

P s s s

Q x s s

P s O sR s

Q s Q s

[R,O]=deconv([2 -1 0 3],[2 1 -1])

Izvod i integral polinoma 3 2( ) 2 3P s s s Pp=polyder([2 -1 0 3])

Pi=polyint([2 -1 0 3])

Page 12: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Razvoj količnika dva polinoma

1

1

( )( )

( )

m nm n

n n

b s RRK s

a s s p s p

3 2

3

2

2

3

2

( ) 2 3

( ) 3 2 ( 1)( 2)

( ) 9 2

( ) 2 12 5

b s s s

a s s s s s

b s

a s s ss

b=[2 1 0 3]; a=[1 3 2] [r, p, k] = residue(b,a)

r = 9 2 p = -2 -1 k = 2 -5

Page 13: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

3 2

3

3

4

4 3 2

3

2 3

4

( ) 2 3

( ) ( 2)( 1)

5 9 7 2

( ) 9 7 2 2

( ) 2 1 ( 1) ( 1)

b s s s

a x s s

s s s s

b s

a s s s s s

Kreiranje polinoma iz njegovog razvoja

2 3

3 2

4 3 2

9 7 2 2

2 1 ( 1) ( 1)

2 3

5 9 7 2

s s s s

s s

s s s s

b=[2 1 0 3]; a=conv(conv([1 1],[1 1]),[1 1]) a=conv(a,[1 2]) [r, p, k] = residue(b,a) r = 9.0000 -7.0000 2.0000 2.0000 p = -2.0000 -1.0000 -1.0000 -1.0000 k = []

[b,a] = residue(r,p,k) b = 2.0000 1.0000 0.0000 3.0000 a = 1.0000 5.0000 9.0000 7.0000 2.0000

Page 14: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

3

2 2

4

3

4

2

0.2500 0.3536 0.2500 0.3536

1.0000 1.414

( ) 2 1

( ) ( 3 2)( 2 3)

( )

( ) ( ) ( ) ( 1)

( 1

0.5

2 1.0000 1.4142

0.5  0.5

2 3

0.5

)

1

2

1

2

j j

j j

b s s

a x s s s s

b s

a s s s s

s

s

s

s s s

b = [2 1]; a1 = [1 3 2]; a2 = [1 2 3]; a = conv(a1,a2) [r,p,k] = residue(b,a) r = 1.0000 -0.2500 - 0.3536i -0.2500 + 0.3536i -0.5000

p = -2.0000 -1.0000 + 1.4142i -1.0000 - 1.4142i -1.0000 k = []

[pp,qq]=residue(r(2:3),p(2:3),[]) pp = -0.5000 0.5000 qq = 1.0000 2.0000 3.0000

Page 15: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

7. GRAFICI

plot(x,y) plot(x,y,’r’,’--’) plot(x1,y1,’r’,’--’,x2,y2,’b’,’o’)

Oznaka Boja

y Žuta

m Ljubičasta

c Setloplava

r Crvena

g Zelena

b Plava

w Bela

k Crna

Oznaka Tip linije

- Puna

: Tačkasta linija

-. Crta tačka

-- Isprekidana linija

Page 16: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Crtanje na logaritamskoj skali semilogx semilogx(x,y,’r’); semilogy semilogy(x,y,’r’); loglog loglog(x,y,’r’);

Nova slika figure figure, plot(x,y,’r’);

Više odvojenih grafova na istoj slici subplot subplot(211),plot(x1,y1,’r’); subplot(212), plot(x2,y2,’k’);

xlabel (‘x os’) dodavanje naziva x osi

ylabel (‘y os’) dodavanje naziva y osi

title (‘Graf funkcije’) dodavanje naziva grafiku

grid on /grid off dodavanje mreže na grafiku

Page 17: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

x1=linspace(0,20,5);

x2=0:0.01:20;

y1=1.3+0.9*x1;

y2=1.3+0.5*x2;

plot(x1,y1,’o’,x2,y2,’r’)

title(‘Grafik’), xlabel(‘x’), ylabel(‘y(x)’)

legend('y_1(x)','y_2(x)')

0 5 10 15 200

5

10

15

20Grafik

x

y(x

)

y1(x)

y2(x)

Page 18: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

8. SKRIPTE I FUNKCIJE (M DATOTEKE)

Naredbe Matlaba se mogu unositi u editor i snimiti kao fajl pod određenim imenom sa ekstenzijom .m

Fajl sa naredbama Matlaba se naziva skripta.

Skripta se izvršava navođenjem imena SKRIPTE sa komandne linije u prozoru Comand Window, ili iz editora pokretanjem Run tastera ( )

Naredbe iz skripte se izvršavaju redom, a njihov rezultat se prikazuje u prozoru Comand Window.

Page 19: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer. Prethodni primer (grafik funkcije) snimiti u skriptu Grafik.m i izvršiti

Page 20: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Funkcije su .m fajlovi sa naredbama Matlaba koje imaju ulazne i izlazne argumente.

Funkcije počinju naredbom function a završavaju se naredbom end.

Primer funkcije transformacija.m

Page 21: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

II. SYMBOLIC TOOLBOX 9. SIMBOLIČKO REŠAVANJE PROBLEMA – SYMBOLIC MATH TOOLBOX

Definicija simboličke promenljive

x=sym(‘x’), y=sym(‘y’), --> syms x y

x=sym('x','real'), y=sym('y','real') --> syms x y real

c=sym('c','positive') --> syms c positive

--> syms c, assume(c>0)

Kreiranje simboličkih brojeva i matrica

a=sym(‘2/3'); mat=sym([1 2;3 4]);

Zamena simboličke varijable numeričkom vrednošću ili drugom simbol. var.

subs(S), subs(S,new), subs(S,old,new)

syms a b, subs(a+b,a,4) ans = b + 4

syms a b subs(a+b,{a,b},{2,3}) ans =

5

Page 22: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Pretvaranje numeričke matrice u simboličku matricu

Određivanje simb. varijabli iz simb. izraza

b=[1 2 3; 4 5 6; 7 8 9]

b =

1 2 3

4 5 6

7 8 9

bb=sym(b)

bb =

[ 1, 2, 3]

[ 4, 5, 6]

[ 7, 8, 9]

f=sym('x^2+2*y^3-7*y+3+z'); findsym(f)

ans =

x, y, z

findsym(f,2)

ans =

x,y

Page 23: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Konverzija promenljivih

double konvertuje simboličke varijable u numeričke

poly2sym konvertuje numerički polinom u simbolički

sym2poly konvertuje simbolički polinom u numerički

syms a1 a2 a3 a4 a=[a1 a2; a3 a4] a =

[ a1, a2]

[ a3, a4]

b=double(a) b =

1 2

3 4

syms x f =x^2+2*x^3-6*x+3 p=sym2poly(f) p =

2 1 -6 3

p2 =[1 2 3 4 5] f2=poly2sym(p2) f2 =

x^4+2*x^3+3*x^2+4*x+5

Page 24: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Prikaz simboličkih izraza

pretty(s)

syms a1 a2 a3 a4 a=[a1 a2; a3 a4] % simbolička matrica b=inv(a) % simbolička matrica pretty(b) % prikaz

+- -+ | a4 a2 | | -------------, - ------------- | | a1 a4 - a2 a3 a1 a4 - a2 a3 | | | | a3 a1 | | - -------------, ------------- | | a1 a4 - a2 a3 a1 a4 - a2 a3 | +- -+

Page 25: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Diferenciranje

2( ) sin( )f x x x , 2

2

( )?

d f x

dx

2 2( , ) 2f x y x y y x , 2 ( , )

?d f x y

dxdy

syms x; f=x^2*sin(x); diff(f,2) ans = 2*sin(x)+4*x*cos(x)-x^2*sin(x)

syms x y; f=x^2*y+2*y^2*x diff(diff(f,x),y) ans = 2*x+4*y

Page 26: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Integraljenje

2 2( , ) 2f x y x y y x ,

( , ) ?f x y dx

2

( , ) axf x a e

( ) ?f x dx

( , ) xf x a xe

( ) ?

b

a

f x dx

10

0

( ) ?f x dx

syms x y; f=x^2*y+2*y^2*x int(f,x) ans = (x^2*y*(x + 3*y))/3

syms x, syms a, assume(a > 0); f=exp(-a*x^2) int(f,x,-inf,inf) ans = pi^(1/2)/a^(1/2)

syms x a b; f=x*exp(-x); F=int(f,x,a,b) % granice su parametri F =

-b*exp(-b)-exp(-b)+a*exp(-a)+exp(-a)

subs(F, {a,b}, [0,10]) % smena granica ans =

0.9995

Page 27: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Granične vrednosti

lim 1 sin

x

x

a bx

x x

0

1limx x

0

1limx x

0

1limx x

syms x a b; f=x*(1+a/x)^x*sin(b/x); limit(f,x,inf) ans =

exp(a)*b

syms x; limit(1/x,x,0) ans =

NaN

limit(1/x,x,0,’left’) ans =

-Inf

limit(1/x,x,0,’right’) ans =

Inf

Page 28: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Uprošćavanje izraza

R=expand(f)

cos(x+y)

R=factor(f)

x^3-y^3

R=simplify(f)

(x^2+5*x+6)/(x+2)

R=simple(f) – Koristi više različitih metoda

syms x y expand(cos(x+y)) ans =

cos(x)*cos(y)-sin(x)*sin(y)

syms x y factor(x^3-y^3) ans =

(x-y)*(x^2+x*y+y^2)

syms x f=(x^2+5*x+6)/(x+2) simplify(f) ans =

x+3

Page 29: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Grafik simboličke funkcije

ezplot(f),

ezplot(f,vektor_granica)

ezplot(x,y,t_granica)

x

yx = 2 sin(2 t) + 5, y = cos(2 t)

0 5 10-4

-2

0

2

4

6

ezplot(sym('-2*(x-2)^2+2+y'),[-2,8,-4,7]) grid hold on ezplot(sym('2*sin(2*t)+5'), sym('cos(2*t)'))

Page 30: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Algebarske jednačine

solve(eq), solve(eq,var) solve(eq1,eq2,...,eqn)

2 2

3

1 0

0.75 0.9 0

x y

x y

S=solve('x^2+y^2-1=0','y=4*sqrt(3)*x^3') S = x: [6x1 sym] y: [6x1 sym]

S.x ans = 1/2 -1/2 -1/12*(-18+6*i*39^(1/2))^(1/2) 1/12*(-18+6*i*39^(1/2))^(1/2) -1/12*(-18-6*i*39^(1/2))^(1/2) 1/12*(-18-6*i*39^(1/2))^(1/2)

S.y ans = 1/2*3^(1/2) -1/2*3^(1/2) -1/432*(-18+6*i*39^(1/2))^(3/2)*3^(1/2) 1/432*(-18+6*i*39^(1/2))^(3/2)*3^(1/2) -1/432*(-18-6*i*39^(1/2))^(3/2)*3^(1/2) 1/432*(-18-6*i*39^(1/2))^(3/2)*3^(1/2)

ezplot(sym('x^2+y^2-1=0'),[-1,1,-1,1]) hold on ezplot(sym('y=4*sqrt(3)*x^3'))

x

y

y == 4 31/2 x3

-1 -0.5 0 0.5 1-1

-0.5

0

0.5

1

Page 31: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

syms x y real

S=solve('x^2+y^2-1=0','y=4*sqrt(3)*x^3') S = x: [2x1 sym] y: [2x1 sym] S.x ans = 1/2 -1/2 S.y ans = 3^(1/2)/2 -3^(1/2)/2

% Resenja su (1/2, 3 2) i (-1/2, - 3 2)

xy

y == 4 31/2 x3

-1 -0.5 0 0.5 1-1

-0.5

0

0.5

1

Page 32: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Diferencijalne jednačine

dsolve(deq) dsolve(deq,c1) dsolve(deq1,deq2,c1,c2)

Primer 1. y'(t)-y(t)=sin(t)

Primer 2. f’(t)-f(t)-g(t)=0, g’(t)+f(t)-g(t)=0

% Bez početnih uslova

dsolve('Dy-y=sin(t)') ans = -1/2*cos(t)-1/2*sin(t)+exp(t)*C1

% Sa početnim uslovima

dsolve('Dy = y + sin(t)','y(0)=1') ans = -1/2*cos(t)-1/2*sin(t)+3/2*exp(t)

S=dsolve('Df-f-g=0', 'Dg+f-g=0', 'f(0)=1', 'g(0)=2') S = f: [1x1 sym] g: [1x1 sym]

S.f ans = exp(t)*cos(t) + 2*exp(t)*sin(t)

S.g ans = 2*exp(t)*cos(t) - exp(t)*sin(t)

Page 33: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Odskočna i impulsna funkcija

heaviside(x) ezplot(heaviside(x),[-0.1 0.1])

-0.1 -0.05 0 0.05 0.1

0

0.2

0.4

0.6

0.8

1

x

heaviside(x)

dirac(x)

Page 34: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Laplasova i inverzna Laplasova transformacija

syms t s a laplace(t^5) ans = 120/s^6 laplace(exp(a*t)) ans = 1/(s-a) ilaplace(s/(s-a)) ans = Dirac(t)+a*exp(a*t) ilaplace(1/(s^2+s+1)) ans = 2/3*exp(-1/2*t)*3^(1/2)*sin(1/2*3^(1/2)*t)

Page 35: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Redovi

symsum(f), symsum(f,a,b)

2 2

1 11

2 3M

1 2 3M n

syms k M=symsum(1/k^2,1,inf) M = pi^2/6

syms k n M=symsum(k,1,n) M =

pi^2/6

Page 36: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

III. CONTROL SYSTEM TOOLBOX Tipovi objekata modela

Page 37: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Modeli dinamičkih sistema

Model Family Model Types

Numeric LTI models

Basic numeric representation of

linear systems

tf

zpk

ss

frd

pid

pidstd

Identified LTI models —

Representations of linear systems

with tunable coefficients, whose

values can be identified using

measured input/output data.

idtf

idss

idfrd

idgrey

idpoly

idproc

Identified nonlinear models —

Representations of nonlinear

systems with tunable coefficients,

whose values can be identified

using input/output data. Limited

support for commands that

analyze linear systems.

idnlarx

idnlhw

idnlgrey

Model Family Model Types

Generalized LTI models —

Representations of systems that

include tunable or uncertain

coefficients

genss

genfrd

uss

ufrd

Dynamic Control Design Blocks

— Tunable, uncertain, or switch

components for constructing

models of control systems

ltiblock.gain

ltiblock.tf

ltiblock.ss

ltiblock.pid

ltiblock.pid2

ultidyn

udyn

loopswitch

Page 38: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

FUNKCIJA PRENOSA

1

1 1 0 1

1

1 1 0

1

( )

( )i

m

m m

m m i

nn

n

i

n

i

sb s b s b s b

G ss a s a s a

s p

z

K

Konstruisanje prenosnih funkcija sys = tf(num,den) ili tf(sys) % Transfer function sys = zpk(z,p,k) ili zpk(sys) % Zero/pole/gain sys = frd(response,frequencies) % Frequency response data

Page 39: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Kreiranje funkcije prenosa

2

15( )

14 40.02G s

s s

II Način s = tf('s');

G = 1.5/(s^2+14*s+40.02)

G =

1.5

------------------

s^2 + 14 s + 40.02

Continuous-time transfer

function.

I Način

G = tf(1.5,[1 14 40.02])

G =

1.5

------------------

s^2 + 14 s + 40.02

Continuous-time transfer

function.

Page 40: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Kreiranje G preko polova, nula i pojačanja

15( )

( 9.996)( 4.004)G s

s s

Kašnjenje u funkciji prenosa

0.05

2

15( )

14 40.02

seG s

s s

Gzpk = zpk([],[-9.996 -4.004], 1.5)

Gzpk =

1.5

-------------------

(s+9.996) (s+4.004)

Continuous-time zero/pole/gain model.

Gtd = tf(1.5,[1 14 40.02],'ioDelay',0.05)

Gtd = tf(1.5,[1 14 40.02],'InputDelay',0.05)

Gtd = tf(1.5,[1 14 40.02],'OutputDelay',0.05)

Gtd =

1.5

exp(-0.05*s) * ----------------------

s^2 + 14 s + 40.02

Continuous-time transfer function.

Page 41: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Multivarijabilni sistem I Način

h11 = tf([1 -1],[1 1]);

h21 = tf([1 2],[1 4 5]);

H = [h11; h21]

H =

From input to output...

s - 1

1: -----

s + 1

s + 2

2: -------------

s^2 + 4 s + 5

II Način

s = tf('s')

h11 = (s-1)/(s+1);

h21 = (s+2)/(s^2+4*s+5);

H = [h11; h21]

Page 42: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Transformacije iz jednog u drugi oblik prenosne funkcije

3 2

5 5( )

12 44 48

15

( 2)( 4)( 6)

sG s

s s s

s

s s s

3 2

1( ) 5

( 2)( 4)( 6)

5 5

12 44 48

sG s

s s s

s

s s s

s = tf('s')

G=(5*s+5)/(s^3+12*s^2+44*s+48) Gzpk = zpk(G)

Gzpk =

5 (s+1)

-----------------

(s+6) (s+4) (s+2)

Continuous-time zero/pole/gain model.

s = tf('s')

Gzpk=5*(s+1)/(s+2)/(s+4)/(s+6); G = tf(Gzpk)

G =

5 s + 5

------------------------

s^3 + 12 s^2 + 44 s + 48

Continuous-time transfer function.

Page 43: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

PROSTOR STANJA

0x(t) Ax(t) Bu(t), x(0) x

y(t) Cx(t) Du(t)

sys = ss(A,B,C,D) sys = ss(D) sys = ss(A,B,C,D,ltisys) sys_ss = ss(sys)

Page 44: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

A = [0 1;-5 -2]; B = [0;3]; C = [0 1]; D = 0; sys = ss(A,B,C,D)

sys = a = x1 x2 x1 0 1 x2 -5 -2 b = u1 x1 0 x2 3

c = x1 x2 y1 0 1 d = u1 y1 0 Continuous-time state-space model.

Page 45: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Kašnjenje u prostoru stanja

( ) 2 ( ) 3 ( 1.5)

( 0.7)( )

( )

x t x t u t

x ty t

x t

A = -2; B = 3; C = [1; -1]; D = 0; G = ss(A,B,C,D,'InputDelay',1.5,'OutputDelay',[0.7; 0])

Page 46: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

1 1

1 1

( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( )

N N

j j j j

j j

N N

j j j j

j j

x t Ax t Bu t A x t t B u t t

y t Cx t Du t C x t t D u t t

sys=delayss(A,B,C,D,delayterms)

( ) ( ) ( 1.2) 2 ( 0.5)

( ) ( 0.5) ( )

x t x t x t u t

y t x t u t

( ) 1 ( ) 0 ( ) 0 ( 0.5) 1 ( 1.2) 2 ( 0.5) 0 ( 1.2)

( ) 0 ( ) 1 ( ) 1 ( 0.5) 0 ( 1.2) 0 ( 0.5) 0 ( 1.2)

x t x t u t x t x t u t u t

y t x t u t x t x t u t u t

A=1; B=0; C=0; D=1; DelayT(1) = struct('delay',0.5,'a',0,'b',2,'c',1,'d',0); DelayT(2) = struct('delay',1.2,'a',-1,'b',0,'c',0,'d',0); sys = delayss(1,0,0,1,DelayT)

Page 47: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Redna veza sistema Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) sys = series(sys1,sys2)

1

1( )

3G s

s

, 2

1( )

5G s

s

2

1( )

8 15eG s

s s

Paralelna veza sistema Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) sys = parallel(sys1,sys2)

1

1( )

3G s

s

, 2

1( )

5G s

s

2

2 8( )

8 15e

sG s

s s

G1=tf([1],[1 3]); G2= tf([1],[1 5]); Ge=series(G1,G2)

Ge =

1

--------------

s^2 + 8 s + 15

Continuous-time transfer function.

G1=tf([1],[1 3]); G2= tf([1],[1 5]); Ge=parallel(G1,G2)

Ge =

2 s + 8

--------------

s^2 + 8 s + 15

Continuous-time transfer function.

Page 48: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Povratna sprega Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

sys = feedback(sys1,sys2)

2( )

3G s

s

2

3( )

2 1H s

s s

2

3 2

2 4 2( )

5 7 9e

s sG s

s s s

G=tf([2],[1 3]); H= tf([3],[1 2 1]); Ge= feedback(G,H,-1)

Ge =

2 s^2 + 4 s + 2

---------------------

s^3 + 5 s^2 + 7 s + 9

Continuous-time transfer function.

G(s) R(s) Y(s) E(s)

-

H(s)

Page 49: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

MEŠOVITA VEZA SISTEMA I NAČIN (primena series, paralel, feedback) Primer.

1

2( )

3G s

s

,

2 2

3( )

2 1G s

s s

,

3

1( )

1G s

s

,

2

3 2

2 4 2( )

5 7 9e

s sG s

s s s

G1=tf([2],[1 3]); G2= tf([3],[1 2 1]); G3=tf([1],[1 1]); Gd= series(G1,G2)

Ge= feedback(Gd,G3,-1)

Ge =

6 s + 6

-------------------------------

s^4 + 6 s^3 + 12 s^2 + 10 s + 9

Continuous-time transfer function.

1G (s)

Y(s) E(s)

- 2G (s)

U(s) R(s)

3G (s) Y1(s)

Page 50: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

II NAČIN (primena connect) sysc = connect(sys1,...,sysN,inputs,outputs)

Primer.

1

2( )

3G s

s

,

2 2

3( )

2 1G s

s s

,

3

1( )

1G s

s

,

G1=tf([2],[1 3]); G2= tf([3],[1 2 1]); G3=tf([1],[1 1]); G1.u = 'e'; G1.y = 'u'; G2.u = 'u'; G2.y = 'y'; G3.u = 'y'; G3.y = 'y1'; Sum = sumblk('e = r - y1'); T = connect(G1,G2,G3,Sum,'r','y')

T =

From input "r" to output "y":

6 s + 6

-------------------------------------

s^4 + 6 s^3 + 12 s^2 + 10 s + 9

Continuous-time transfer function.

1G (s)

Y(s) E(s)

- 2G (s)

U(s) R(s)

3G (s) Y1(s)

Page 51: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer. (I Način)

10 1( ) 5

2 1C

sG s

s

,

1( )

50 1H s

s

,

1

8( )

3 1G s

s

, 2

5( )

^ 2 12 25

sG s

s s

, 3

1( )

0.2 1G s

s

, 4

1G

s

Ge = 7500 s^5 + 97400 s^4 + 269095 s^3 + 193593 s^2 + 20015 s + 325 ----------------------------------------------------------------------------------------------------------------------------- 60 s^7 + 1071 s^6 + 1.349e04 s^5 + 1.095e05 s^4 + 276678 s^3 + 195218 s^2 + 20105 s + 325

s = tf('s'); Gc = 5*(10*s+1)/(2*s+1); G1 = 8/(3*s+1); G2 = (s+5)/(s^2+12*s+25); G3 = 1/(0.2*s+1); G4=1/s; H=1/(50*s+1);

G12=series(G1,G2); G123=parallel(G12,G3); G123H=feedback(G123,H,-1) Gdp = series(Gc,G123H); Gd = series(Gdp,G4); Ge = feedback(Gd,1,-1)

Page 52: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer. (II Način)

s = tf('s'); Gc = 5*(10*s+1)/(2*s+1); G1 = 8/(3*s+1); G2 = (s+5)/(s^2+12*s+25); G3 = 1/(0.2*s+1); G4=1/s; H=1/(50*s+1); Gc.u = 'e1'; Gc.y = 'x1'; G1.u = 'e2'; G1.y = 'x3'; G2.u = 'x3'; G2.y = 'x4';

G3.u = 'e2'; G3.y = 'x2'; G4.u = 's'; G4.y = 'y'; H.u = 's'; H.y = 'x5'; Sum1 = sumblk('e1 = r - y'); Sum2 = sumblk('e2 = x1 - x5'); Sum3 = sumblk('s = x2 + x4'); Ge = connect(Gc,G1,G2,G3,G4,H, ... Sum1, Sum2, Sum3, 'r', 'y')

e1 x1

x2

x3 x4

x5

e2 s

Ge = From input "r" to output "y":

125 s^5 + 1623 s^4 + 4485 s^3 + 3227 s^2 + 333.6 s + 5.417 ---------------------------------------------------------------------------------------------------------- s^7 + 17.85 s^6 + 224.8 s^5 + 1825 s^4 + 4611 s^3 + 3254 s^2 + 335.1 s + 5.417

Page 53: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Polovi i nule dinamičkog sistema Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

p = pole(sys) z = zero(sys) [z,gain]= zero(sys) pzplot(sys) [Wn,zeta]= damp(sys) [Wn,zeta,P]= damp(sys)

-5 -4 -3 -2 -1 0-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Pole-Zero Map

Real Axis (seconds-1)

Imagin

ary

Axis

(seconds

-1)

Primer.

H = tf([2 5 1],[1 2 3]);

pole(H) [z,gain]= zero(H) pzplot(sys) damp(H)

Page 54: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

VREMENSKI ODZIVI SISTEMA

Odskočni odziv sistema

Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) A = [2 -4; 4 2]; B = [-1; 0.5]; C = [-0.5, -2]; D = [-1]; S=ss(A,B,C,D); H = tf([8 18 32],[1 6 14 24]); Grafici

stepplot(H); % ili stepplot(S); stepplot(H,8); % ili stepplot(S,8); step(H); % ili step(S); step(H,8); % ili step(S); Numeričke vrednosti [y,t] = step(H); % --> plot(t,y) [y,t] = step(H,8); % --> plot(t,y)

0 1 2 3 40

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Step Response

Time (seconds)

Am

plit

ude

0 2 4 6 80

0.5

1

1.5

2Step Response

Time (seconds)

Am

plit

ude

Page 55: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Impulsni odziv sistema Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

H = tf([8 18 32],[1 6 14 24]); Grafici impulseplot(H) impulseplot(H, 10) impulse(H) impulse(H,10) Numeričke vrednosti [y,t] = impulse(H) % --> plot(t,y) [y,t] = impulse(H,10) % --> plot(t,y)

0 1 2 3 4-1

0

1

2

3

4

5

6

7

8

Impulse Response

Time (seconds)

Am

plit

ude

0 2 4 6 8 10-2

0

2

4

6

8

Impulse Response

Time (seconds)

Am

plit

ude

Page 56: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Odziv usled početnih uslova

Sistem je dat isključivo u prostoru stanja (ss)

0( ) ( ) ( ), (0)

( ) ( ) ( ), ( ) 0

x t Ax t Bu t x x

y t Cx t Du t u t

A=[-1 1; 0 -2]; B=[1; 2]; C=[1 3]; D=0; H = ss(A,B,C,D); x0=[1 2];

Grafici initialplot(H,x0) initialplot(H,x0,12) initial(H,x0) initial(V,x0,Tfinal) Numeričke vrednosti [y,t,x] = initial(H,x0) % --> plot(t,y), % --> plot(t,x) [y,t,x] = initial(H,x0,Tfinal)

0 1 2 3 4 50

1

2

3

4

5

6

7

Response to Initial Conditions

Time (seconds)

Am

plit

ude

Page 57: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Odziv na proizvoljnu pobudu Tipična pobuda [u,t] = gensig(type,tau) [u,t] = gensig(type,tau,Tf,Ts) Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) lsimplot(sys1,sys2,...) lsimplot(sys,u,t) lsimplot(sys,u,t,x0) lsimplot(sys1,sys2,...,u,t,x0) lsim(sys,u,t) lsim(sys,u,t,x0) Primer.

[u,t] = gensig('square',4,10,0.1); H = [tf([2 5 1],[1 2 3]) ; tf([1 -1],[1 1 5])] lsim(H,u,t)

-2

0

2

4

To: O

ut(

1)

0 2 4 6 8 10-1

0

1T

o: O

ut(

2)

Linear Simulation Results

Time (seconds)

Am

plit

ude

Page 58: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

VREME USPONA, VREME SMIRENJA, PRESKOK, ... Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) stepinfo(G) s = tf('s'); G = (s+5)/(s^2+5*s+25); step(G) stepinfo(G) ans = RiseTime: 0.1882 SettlingTime: 1.5011 SettlingMin: 0.1881 SettlingMax: 0.2597 Overshoot: 29.8352 Undershoot: 0 Peak: 0.2597 PeakTime: 0.4789

0 0.5 1 1.5 20

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Step Response

Time (seconds)

Am

plit

ude

Page 59: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

FREKVENTNI ODZIV SISTEMA Bodeovi dijagrami

Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) bodeplot(sys) bode(sys) [mag,phase,wout]= bode(sys) sys = tf(1,[1 1]); bodeplot(sys) [mag,phase,w]= bode(sys)

-40

-30

-20

-10

0

Magnitu

de (

dB

)10

-210

-110

010

110

2-90

-45

0

Phase (

deg)

Bode Diagram

Frequency (rad/s)

Page 60: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Asimptotski Bodeovi dijagrami sys = tf([1 20],[1 2 3]); asymp(sys) % funkcija sa sajta matxworks-a

Bode Diagram

Frequency (rad/s)

-60

-50

-40

-30

-20

-10

0

10

20

Magnitu

de (

dB

)

0.01 0.1 1 10 100 1000-180

-150

-120

-90

-60

-30

0

Phase (

deg)

Page 61: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Frekventni odziv, Amplitudna i fazna karakteristika

Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) [H,wout]= freqresp(sys) sys = tf(1,[1 1 1]); w=linspace(0,5,200); [H,wout]= freqresp(sys,w); Hw = reshape(H,[],1); A=abs(Hw); fi=angle(Hw); fi=fi*360/2/pi; plot(wout,A), xlabel('w'), ylabel('A(w)') plot(wout,fi), xlabel('w'), ylabel('fi(w)')

0 1 2 3 4 50

0.2

0.4

0.6

0.8

1

1.2

1.4

w

A(w

)

0 1 2 3 4 5-180

-160

-140

-120

-100

-80

-60

-40

-20

0

w

fi(w

)

Page 62: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Propusni opseg sistema

Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) fb = bandwidth(sys) sys = tf(1,[1 1 1]); fb = 1.2712

0 1 2 3 4 50

0.2

0.4

0.6

0.8

1

1.2

1.4

w

A(w

)

Page 63: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Statičko pojačanje Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

k = dcgain(sys) sys = tf(1,[1 1 1]); step(sys) Kp = dcgain(sys) Kp = 1

0 2 4 6 8 10 120

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (seconds)

Am

plit

ude

Page 64: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Nikvistov dijagram Važi za bilo koji dinamički sistem (tf, zpk, ss, ...) h = nyquistplot(sys) nyquistplot(sys,{wmin,wmax}) nyquistplot(sys,w) nyquistplot(sys1,sys2,...,w) sys = tf([1 5],[1 2 4 0]); nyquistplot(sys);

-1 -0.8 -0.6 -0.4 -0.2 0-10

-8

-6

-4

-2

0

2

4

6

8

10

Nyquist Diagram

Real Axis

Imagin

ary

Axis

Page 65: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

MARGINA POJAČANJA, FAZNA MARGINA, MARGINA KAŠNJENJA, PRESEČNE UČESTANOSTI margin(sys) allmargin(sys)

Primer.

H = tf([2 5 1],[1 2 3]);

margin(H) allmargin(H)

ans =

GainMargin: [1x0 double]

GMFrequency: [1x0 double]

PhaseMargin: -120.0000

PMFrequency: 0.5773

DelayMargin: [7.2552 0]

DMFrequency: [0.5773 Inf]

Stable: 1

-10

-5

0

5

10

Magnitu

de (

dB

)

10-2

10-1

100

101

102

-45

0

45

90

Phase (

deg)

Bode Diagram

Gm = Inf , Pm = -120 deg (at 0.577 rad/s)

Frequency (rad/s)

Page 66: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

PID REGULATOR

C = pid(Kp,Ki,Kd,Tf)

C = pid(Kp)

C = pid(Kp,Ki)

C = pid(Kp,Ki,Kd)

C = pid(sys)

Primer.

Kp=1;

Ki=0.1;

Kd=3;

Tf=0.5;

G = pid(Kp,Ki,Kd,Tf);

step(C) bode(C)

0 5 10 15 201

2

3

4

5

6

7

Step Response

Time (seconds)

Am

plit

ude

0

20

40

60

Magnitu

de (

dB

)

10-3

10-2

10-1

100

101

102

-90

-45

0

45

90

Phase (

deg)

Bode Diagram

Frequency (rad/s)

Page 67: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

C = pidstd(Kp) C = pidstd(Kp,Ti) C = pidstd(Kp,Ti,Td) C = pidstd(Kp,Ti,Td,N)

Page 68: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

POREĐENJE ODZIVA VIŠE SISTEMA G = zpk([],[-5 -5 -10],100); C = pid(0,4.4); Gsp = feedback(G*C,1); step(G,Gsp);

C(s)

Y(s)

- G(s)

R(s)

0 1 2 3 4 5 6 70

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (seconds)

Am

plit

ude

Page 69: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

G = zpk([],[-5 -5 -10],100); C1 = pid(0,4.4); T1 = feedback(G*C1,1); C2 = pid(2.9,7.1); T2 = feedback(G*C2,1); ltiview(G,T1,T2)

Step Response

Time (seconds)

Am

plit

ude

0 1 2 3 4 5 6 70

0.5

1

1.5

G

T1

T2

Impulse Response

Time (seconds)

Am

plit

ude

0 1 2 3 4 5 6 7 8-0.5

0

0.5

1

1.5

2

2.5

G

T1

T2

Page 70: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

STABILNOST SISTEMA

pole polovi funkcije prenosa

zero nule funkcije prenosa

damp koeficijent prigušenja, prirodna učestanost

pzplot grafik nula i polova

rlocus geometrijsko mesto korena

allmargin margina pojačanja, margina faze, margina kašnjenja,

presečna učestanost

margin margina pojačanja, margina faze,

presečna učestanost

Page 71: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer. K=1; G = tf([.5 1.3],[1 1.2 1.6 0]); T = feedback(K*G,1);

pole(T) Polovi zatvorenog sistema P = -0.2305 + 1.3062i -0.2305 - 1.3062i -0.7389 + 0.0000i Nule zatvorenog sistema Z = -2.6000

-3 -2.5 -2 -1.5 -1 -0.5 0-1.5

-1

-0.5

0

0.5

1

1.5

Pole-Zero Map

Real Axis (seconds-1)

Imagin

ary

Axis

(seconds

-1)

Page 72: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Koeficijent prigušenja i prirodna učestanost zatvorenog sistema damp(T)

Eigenvalue Damping Frequency -7.39e-01 1.00e+00 7.39e-01 -2.31e-01 + 1.31e+00i 1.74e-01 1.33e+00 -2.31e-01 - 1.31e+00i 1.74e-01 1.33e+00 (Frequencies expressed in rad/seconds)

Page 73: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Geometrijsko mesto korena sistema u povratnoj sprezi rlocus(G)

Root Locus

Real Axis (seconds-1)

Imagin

ary

Axis

(seconds

-1)

-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1-15

-10

-5

0

5

10

15

System: G

Gain: 2.77

Pole: 0.000972 + 1.73i

Damping: -0.000562

Overshoot (%): 100

Frequency (rad/s): 1.73

kada K

Page 74: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Odskočni odziv zatvorenog sistema

step(T), title('Odskocni odziv za K = 1')

0 5 10 15 20 250

0.2

0.4

0.6

0.8

1

1.2

1.4

Odskocni odziv za K = 1

Time (seconds)

Am

plit

ude

Page 75: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Poređenje odskočnih odziva zatvorenog sistema za razne vrednosti pojačanja K

K1 = 0.5; T1 = feedback(G*K1,1); K2 = 1; T2 = feedback(G*K2,1); K3=2; T3 = feedback(G*K3,1); K4=3; T3 = feedback(G*K4,1); step(T1,'b',T2,'r',T3,'g', T4,':'12), title('Odskocni odziv'), legend('K = 0.5','K = 1','K =2', 'K =2.5' )

K=0.5, 1, 2 sistem stabilan K=4 sistem nestabilan

0 2 4 6 8 10 12-1

-0.5

0

0.5

1

1.5

2

2.5

3

Odskocni odziv

Time (seconds)

Am

plit

ude

K = 0.5

K = 1

K =2

K =4

Page 76: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Bodeovi dijagrami funkcije povratnog prenosa

bode(G), grid Bode Diagram

Frequency (rad/s)

-100

-50

0

50

System: G

Gain Margin (dB): 8.77

At frequency (rad/s): 1.72

Closed loop stable? YesMagnitu

de (

dB

)

10-1

100

101

102

-225

-180

-135

-90

System: G

Phase Margin (deg): 44.7

Delay Margin (sec): 0.752

At frequency (rad/s): 1.04

Closed loop stable? Yes

Phase (

deg)

Page 77: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Pretek pojačanja, pretek faze,

m = allmargin(G) GainMargins_dB = mag2db(m.GainMargin) m = GainMargin: [2.7440 Inf] GMFrequency: [1.7241 Inf] PhaseMargin: 44.6703 PMFrequency: 1.0362 DelayMargin: 0.7524 DMFrequency: 1.0362 Stable: 1 GainMargins_dB = 8.7677 Inf

Bode Diagram

Frequency (rad/s)

-100

-50

0

50

System: G

Gain Margin (dB): 8.77

At frequency (rad/s): 1.72

Closed loop stable? YesMagnitu

de (

dB

)

10-1

100

101

102

-225

-180

-135

-90

System: G

Phase Margin (deg): 44.7

Delay Margin (sec): 0.752

At frequency (rad/s): 1.04

Closed loop stable? Yes

Phase (

deg)

Page 78: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Grafička prezentacija margin_gui

Loop Gain K:

-K G

Feedback Loop:

0.5 s + 1.3

s3 + 1.2 s2 + 1.6 s

= G(s)-60

-40

-20

0

20

40

60

Open Loop GKM

agnitu

de (

dB

)

10-1

100

101

-225

-180

-135

-90

-45

Frequency (rad/sec)

Phase (

deg)

0 5 10 15 200

0.5

1

1.5

Closed-Loop Step Response

Time (sec)A

mplit

ude

0.1 10

Page 79: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Nikvistov dijagram

nyquist(sys) nyquist(sys,w) nyquist(sys1,sys2,...,sysN) nyquist(sys1,sys2,...,sysN,w) [re,im,w,sdre,sdim] = nyquist(sys)

Primer

nyquist(G)

Nyquist Diagram

Real Axis

Imagin

ary

Axis

-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0-10

-8

-6

-4

-2

0

2

4

6

8

10

Page 80: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Poređenje Nikvistovih dijagrama za razne vrednosti pojačanja K

K1 = 0.5; G1=G*K1; K2 = 1; G2 = G*K2; K3=2; G3 = G*K3; K4=4; G4 = G*K4; nyquist(G1,'b',G2,'r',G3,'g', G4,':'), title(Nikvistov dijagram'), legend('K = 0.5','K = 1','K =2', 'K =2.5' )

-2.5 -2 -1.5 -1 -0.5 0

-8

-6

-4

-2

0

2

4

6

8

Nikvistov dijagram

Real Axis

Imagin

ary

Axis

K = 0.5

K = 1

K =2

K =4

Page 81: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

REGULATORI pidtune, pidtool pid, pidstd String Type Continuous-Time Controller Formula

(parallel form)

'p' Proportional only Kp

'i' Integral only

'pi' Proportional and integral

'pd' Proportional and derivative

'pdf' Proportional and derivative with first-order filter on

derivative term

'pid' Proportional, integral, and derivative

'pidf' Proportional, integral, and derivative with first-

order filter on derivative term

Page 82: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer.

sys = zpk([],[-1 -1 -1],1); [C_pi,info] = pidtune(sys,'pi') T_pi = feedback(C_pi*sys, 1); step(sys,T_pi), legend('Bez PI','Sa PI') C_pi = 1 Kp + Ki * --- s with Kp = 1.14, Ki = 0.454 Continuous-time PI controller in parallel form. info = Stable: 1 CrossoverFrequency: 0.5205 PhaseMargin: 60.0000 0 2 4 6 8 10 12 14

0

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (seconds)

Am

plit

ude

Bez PI

Sa PI

Page 83: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

[C_pid,info] = pidtune(sys,'pid'), T_pid = feedback(C_pid*sys, 1); [C_pidf,info] = pidtune(sys,'pidf'), T_pidf = feedback(C_pidf*sys, 1); step(sys,T_pi, T_pid, T_pidf), legend('Bez PI','Sa PI', 'Sa PID', 'Sa PIDF') C_pid = 1 Kp + Ki * --- + Kd * s s with Kp = 2.18, Ki = 0.921, Kd = 1.29 Continuous-time PID controller in parallel form. info = Stable: 1 CrossoverFrequency: 0.8250 PhaseMargin: 60.0000

0 2 4 6 8 10 12 140

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (seconds)

Am

plit

ude

Bez PI

Sa PI

Sa PID

Sa PIDF

Page 84: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

C_pidf = 1 s Kp + Ki * --- + Kd * -------- s Tf*s+1 with Kp = 2.17, Ki = 0.913, Kd = 1.28, Tf = 0.0106 Continuous-time PIDF controller in parallel form.

Page 85: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Konverzija regulatora u standardni oblik i obrnuto (pid, pidstd)

pidstd(C_pid)

ans = 1 1 Kp * (1 + ---- * --- + Td * s) Ti s with Kp = 2.18, Ti = 2.36, Td = 0.591

Continuous-time PID controller in standard form

pidstd(C_pidf)

ans = 1 1 s Kp * (1 + ---- * --- + Td * ---------------) Ti s (Td/N)*s+1 with Kp = 2.17, Ti = 2.37, Td = 0.588, N = 55.5 Continuous-time PIDF controller in standard form

Page 86: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

PROJEKTNE ALATKE

ltiview – analiza lineatnih stacionarnih sistema

sisotool – podešavanje parametara kompenzatora

pidtool – projektovanje PID regulatora

ident – identifikacija sistema

Page 87: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

ltiview – analiza lineatnih stacionarnih sistema

Page 88: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

sisotool – podešavanje parametara kompenzatora

Page 89: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a
Page 90: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

pidtool – projektovanje PID regulatora

Page 91: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

ident – identifikacija sistema

Page 92: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

IV. SIMULINK

Grafičko okruženje bazirano na bok dijagramima

Namenjeno za:

- modelovanje,

- simulaciju i

- projektovanje dinamičkih sistema

- automatsko generisanje programskog koda

Page 93: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Editor Simulink modela

Page 94: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Biblioteke blok dijagrama u Simulinku

Page 95: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer 1. Napraviti simulacioni model u Simulinku sistema koji je prikazan na sledećoj slici. Parametri sistema su: masa 1 2m , krutost opruge 1 3k i

koeficijent trenja 1 3b . Za početne vrednosti uzeti (0) 1x u odnosu na

ravnotežni položaj i (0) (0) 0x v . Pobudna funkcija je: a) sinusna amplitude 1 i kružne učestanosti 2rad/s, b) pravougaono periodična amplitude 2 i periode 5,

c)

0, 1

2.5, 1 2

0, 2

t

f t t

t

m1 k1 u(t)

x1

b1

Page 96: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Rešenje.

Matematički model sistema: 1 1 1 1 1 1m x b x k x u

Rešenje po najvećem izvodu: 1 11 1 1

1 1 1

u b kx x x

m m m

Zadavanje vrednosti parametara blokova u Comand Window:

m1=2;

k1=3;

b1=3;

vremesimulacije = 10; % trajanje simulacije

Page 97: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Simulacioni dijagram u editoru.

Za vreme trajanja simulacije staviti promenljivu vremesimulacije. Za početne uslove u integratorima staviti odgovarajuće početne uslove iz zadatka.

Page 98: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Simulacioni dijagram eksportovan preko Clopboard-a

Page 99: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Rezultat simulacije (Scope blok)

Page 100: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer 2. Napraviti simulacioni model sledećeg sistema ako je poznato:

1 2m , 1 3k , 1 3b , 2 1m , 2 1k . Za početne vrednosti izabrati 1(0) 1x i

2 (0) 2x u odnosu na ravnotežni položaj i 1 2(0) (0) 0x x . Pobuda je

0, 1

1.5, 1 2

0, 2

t

u t t

t

Matematički model sistema:

1 1 1 1 1 1 2

2 2 2 2 2 2 1 1 2 2

( ) ( )

( ), 0

m x b x k x x u t

m x b x k x k x x b

m2 m1 k2 k1 u(t)

x2 x1

b1 b2

Page 101: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Rešenje po najvećim izvodima:

1 1 11 1 1 2

1 1 1 1

2 2 1 12 2 2 1 2

2 2 2 2

2 1 1 22 1 2 2

2 2 2

, 0

b k k ux x x x

m m m m

b k k kx x x x x

m m m m

b k k kx x x b

m m m

Zadavanje vrednosti parametara blokova u Comand Window:

m1=2; k1=3; b1=3

m2=1; k2=1; b2=0

vremesimulacije = 10; % trajanje simulacije

Page 102: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Simulacioni dijagram. Za početne uslove u integratorima staviti odgovarajuće početne uslove iz zadatka.

( )u t

Page 103: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Rezultat simulacije (Scope blok)

x1(t) x2(t)

Page 104: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer 3. Odrediti linearni (linearizovani) model u prostoru stanja za sistem iz prethodnog primera.

Rešenje. Pobudne funkcije u modelu se zamene „In“ ulaznim blokovima. Takođe, Izlazi modela se zamene sa „Out“ blokovima. U našem primeru „Signal builder“ se zameni sa „In“ blokom, dok se „Scope“ i „Scope1“ zamene sa „Out1“ i „Out2“.

Page 105: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Odredjivanje radne (ravnotezne) tačke

[x,u,y] = trim('SimZad2Lin');

x = 0 0 0 0 u = 0 y = 0

0

SimZad2Lin je naziv modela sistema u Simulinku.

Page 106: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Odredjivanje linearnog modela u prostoru stanja

[A,B,C,D] = linmod('SimZad2Lin',x,u)

A = 0 0 1.0000 0 0 0 0 1.0000 -1.5000 1.5000 -1.5000 0 3.0000 -4.0000 0 0 B = 0 0 0.5000 0 C = 1 0 0 0 0 1 0 0 D = 0

0

Page 107: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Formiranje linearnog modela u prostoru stanja

S=ss(A,B,C,D)

S = a = x1 x2 x3 x4 x1 0 0 1 0 x2 0 0 0 1 x3 -1.5 1.5 -1 0 x4 3 -4 0 0

b = u1 x1 0 x2 0 x3 0.5 x4 0 c = x1 x2 x3 x4 y1 1 0 0 0 y2 0 1 0 0 d = u1 y1 0

y2 0

Page 108: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Funkcija prenosa sistema

G=tf(S)

G = From input to output... 0.5 s^2 + 2 1: -------------------------------------- s^4 + s^3 + 5.5 s^2 + 4 s + 1.5 1.5 2: ------------------------------------- s^4 + s^3 + 5.5 s^2 + 4 s + 1.5

Page 109: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Poređenje sa teorijskim rezultatom:

Sa simulacionog dijagrama ili iz:

1 1 11 1 1 2

1 1 1 1

2 2 1 12 2 2 1 2

2 2 2 2

2 1 1 22 1 2 2

2 2 2

, 0

b k k ux x x x

m m m m

b k k kx x x x x

m m m m

b k k kx x x b

m m m

usvajanjem četiri nove promenljive:

1 1 3 1 2 2 4 2, , ,z x z x z x z x

sledi:

Page 110: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

1 3

2 4

1 1 13 3 1 2

1 1 1 1

2 1 1 24 4 1 2

2 2 2

z z

z z

b k k uz z z z

m m m m

b k k kz z z z

m m m

, 1

0 0

1

2

00

00

u

mB

1 1

2 2

y z

y z

1 0 0 0

0 1 0 0C

, 0

0D

1 1 1

1 1 1

1 1 2 2

2 2 2

0 0 1 0 0 0 1 00 0 1 0

0 0 0 1 0 0 0 10 0 0 1

3 3 20 3 301 02 2 2

2 23 4 0

3 4 0 00 01 1 1

k k bA

m m m

k k k b

m m m

Page 111: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer 4. Napraviti u Simulinku simulacioni diagram punjenja i pražnjenja rezervoara koji je prikazan na slici. Isticanje tečnosti definisano je sledećim

izrazom: ( ) ( )iq t k h t . Na bazi dobijenog modela kreirati model u obliku

podsistema. Rešenje. Model sistema

( )

( ) ( )u i

dh tA q t q t

dt

( ) ( )iq t k h t

uq

iq

A

h

Page 112: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Simulacioni dijagram

Page 113: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Formiranje simulacionog dijagrama podsistema

Pobudne funkcije u modelu se zamene „In“ ulaznim blokovima. Takođe, Izlazi modela se zamene sa „Out“ blokovima. Označe se ulaz sa Qu(t) i izlati sa h(t) i Qi(t) (videti sliku).

Page 114: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Iz menija se „Diagram“ bira se opcija „Subsistem & Model Reference“, a potom „Create Subsistem from Selection“. Imenuje se novodobijeni blok („Rezervoar“ u ovom primeru). Obrišu se „In“ i „Out“ blokovi i dobija se sledeći blok, koji se dalje može koristiti kao regularni model rezervoara. Ovaj blok ima jedan ulaz i dva izlaza

Page 115: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Primer 5. Kreirati simulacioni diagram punjenja i pražnjenja dva kaskadno vezana rezervoara prikazana na slici. Isticanje tečnosti definisano je sledećim

izrazima: 2 1( ) ( )q t k h t i

4 2 2( ) ( )q t k h t . Ulazni protok je pravougaono

periodična funkcija amplitude 2, širine 1 i periode 2. Poznato je 1 2A , 1 1k ,

2 1A i 2 2k . Početna stanja visina rezervoara su 1(0) 2h i 1(0) 1h .

Rešenje. Model sistema

11 1 2

( )( ) ( )

dh tA q t q t

dt

22 3 4

( )( ) ( )

dh tA q t q t

dt

3 2q q

2 1( ) ( )q t k h t

4 2 2( ) ( )q t k h t

3q

4q

2A

2h

1q

2q

1A

1h

Page 116: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Podsistem

Simulacioni dijagram. Za pošetne uslove u integratorima staviti promenljive h10 i h20.

Page 117: I. UVOD U SOFTVERSKI PAKET MATLAB - tf.ni.ac.rs · TOOLBOX Kolekcija (biblioteka) izabranih funkcija namenjena rešavanju problema određenje oblasti. Proširuju mogućnosti Matlab-a

Zadavanje vrednosti parametara blokova u Comand Window: A1=2; k1=1; h10=2; A2=1; k2=2; h20=1; vremesimulacije = 10; % trajanje simulacije

Rezultat simulacije