You are on page 1of 117

I.

UVOD U SOFTVERSKI PAKET MATLAB


1. POKRETANJE MATLAB-A, OSNOVNI PROZORI I TOOLBAR-I MATLAB-A
2. MODULI MATLABA
Aerospace Toolbox
Bioinformatics Toolbox
TOOLBOX Communications Toolbox
Control System Toolbox
Kolekcija (biblioteka) izabranih funkcija namenjena Curve Fitting Toolbox
rešavanju problema određenje oblasti. Data Acquisition Toolbox
Database Toolbox
 Proširuju mogućnosti Matlab-a Datafeed Toolbox
Excel Link
 Postoje toolbox-ovi za oblasti Filter Design Toolbox
Filter Design HDL Coder
Financial Toolbox
– analize signala Financial Derivatives Toolbox
Fixed-Income Toolbox
– automatskog upravljanja Fixed-Point Toolbox
Fuzzy Logic Toolbox
– simulacije dinamiĉkog ponašanja sistema GARCH Toolbox
Genetic Algorithm and Direct Search Toolbox
– identifikacije sistema Image Acquisition Toolbox
Image Processing Toolbox
– veštačkih neuronskih mreža Instrument Control Toolbox
Mapping Toolbox
– fuzzy sistema Model-Based Calibration Toolbox
Model Predictive Control Toolbox
Neural Network Toolbox
– optimizacije Optimization Toolbox
OPC Toolbox
– analize robustnosti sistema Partial Differential Equation (PDE) Toolbox
RF Toolbox
– ... Robust Control Toolbox
Signal Processing Toolbox
 Postojeći toolbox-ovi se usavršavaju, a novi Spline Toolbox
Statistics Toolbox
nastaju Symbolic Math Toolbox
System Identification Toolbox
Virtual Reality Toolbox
Wavelet Toolbox
3. BROJEVI, PROMENLJIVE
Realni brojevi
3 -99 0.0001 -9.639825 1.62e-20 -10.34e200

Opseg  1.7977 *10308 ,  2.2251*10308    2.2251*10308 , 1.7977 *10308 


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


Promenljive
– naziv promenljive čine slova i brojevi
a=3
– mora početi slovom A=5;
– prvih 31 znakova se uzima u obzir s=1415.2381; d=45, E=31
– razlikuju se mala i velika slova (npr. a i A su
dve promenljive)
4. ARITMETIČKE OPERACIJE
– sabiranje + a=3+2
– oduzimanje - A=5*13;
– množenje * s=1415.2381/2.12
– delenje (levo) / d=45^11, E=31*d
– desno delenje \ w=(a+A)/(1+2*d)
– 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
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
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
Sistem linearnih jednačina
x1  2 x2  x3  2.5
 x1  3 x2  2 x3  0.5 A = [1 2 -1; -1 3 2; -1 -1 1];
b = [-2.5; 0.5; 1.5];
 x1  x2  x3  1.5
x = A\b
 1 2 1  x1   2.5
 1 3 2   x    0.5 
  2  
 1 1 1   x3   1.5 

Izdvajanje kolona (redova) matrica


Izdvojiti elemente iz 2. i 4 kolone
B = A([1 4],:)
1 2 3 2 5 9
4 5 6 4 1 2 Izdvojiti elemente iz poelednje 3 vrste
  B = A(:,end-3:end)
A  7 8 19 22 11 1 
  Izdvojiti sve elemente koji pripadaju
2 4 8 6 4 0 istovremeno drugoj i trećoj vrsti i neparnim
 0 8 5 9 4 1  kolonama
B = A(1:2:end,[2 3])
Spajanje matrica i vektora

1 2 3 Formirati matricu spajanjem vrsta matrice A i


A  4 6
matrice B.
5
  C = [A;B]
7 8 19 
Formirati matricu spajanjem 1. i 3. vrste matrice
1 2 3 A i poslednje vrste matrice B.
B
 45 3 4  B = [A([1 3],:),B(end,:)]

Specijalne matrice
Jedinična matrica I = eye(3,3)
Nulta matrica N = zeros(5,3)
Matrica sa svim 1 J = ones(6,8)
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:
P( s )  2s 3  s 2  3 a = [2 -1 0 3]

Nule polinoma
P( s)  2s 3  s 2  3  0
xi=roots[2 -1 0 3])
s1,2,3  ?
Formiranje polinoma iz njegovih nula
s1  1, s2  2, s3  5
P=poly([-1 2 -5])
P( s)  ?
Predstavljanje polinoma
a = polynom([1 2 3])
Izračunavanje polinoma
P( s)  2s 3  s 2  3  0
y = polyval([-1 2 -5],2)
P (2)  ?
Množenje polinoma
P( s)  2s 3  s 2  3
Q( s)  2s 2  s  1 R=conv([2 -1 0 3],[2 1 -1])
P( s) * Q( s)  R( s)
Delejne polinoma
P( s)  2s 3  s 2  3
Q( x)  2s 2  s  1 [R,O]=deconv([2 -1 0 3],[2 1 -1])
P( s) O( s)
 R( s) 
Q( s) Q( s)
Izvod i integral polinoma
P( s )  2s 3  s 2  3 Pp=polyder([2 -1 0 3])
Pi=polyint([2 -1 0 3])
Razvoj količnika dva polinoma

bm ( s ) R Rn
  K mn ( s)  1  
an ( s ) s  p1 s  pn

b3 ( s )  2s 3  s 2  3 b=[2 1 0 3];
a=[1 3 2]
a2 ( s )  s 2  3s  2  ( s  1)( s  2) [r, p, k] = residue(b,a)
b3 ( s ) 9 2
 
 2s  5  
a2 ( s ) s  2 s 1 r=
9
2
p=
-2
-1
k=
2 -5
b=[2 1 0 3];
b3 ( s )  2 s  s  3
3 2
a=conv(conv([1 1],[1 1]),[1 1])
a4 ( x)  ( s  2)( s  1)3 a=conv(a,[1 2])
[r, p, k] = residue(b,a)
 s 4  5s 3  9 s 2  7 s  2
r=
b3 ( s ) 9 7 2 2
    9.0000
a4 ( s ) s  2 s  1 ( s  1) 2
( s  1)3 -7.0000
2.0000
2.0000
p=
-2.0000
-1.0000
-1.0000
-1.0000
Kreiranje polinoma iz njegovog razvoja k=
[]
9 7 2 2
  
s  2 s  1 ( s  1) 2
( s  1)3 [b,a] = residue(r,p,k)
2s3  s 2  3 b=
 4 2.0000 1.0000 0.0000 3.0000
s  5s 3  9 s 2  7 s  2 a=
1.0000 5.0000 9.0000 7.0000 2.0000
b3 ( s )  2 s  1
a4 ( x)  ( s 2  3s  2)( s 2  2 s  3)
b3 ( s ) 1 0.2500  j 0.3536 0.2500  j 0.3536 0.5
   
a4 ( s ) s  2 s  (1.0000  j1.4142) s  (1.0000  j1.4142) ( s  1)
1 0.5s  0.5 0.5
  2 
s  2 s  2 s  3 ( s  1)

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

r = [pp,qq]=residue(r(2:3),p(2:3),[])
1.0000
-0.2500 - 0.3536i pp =
-0.2500 + 0.3536i -0.5000 0.5000
-0.5000 qq =
1.0000 2.0000 3.0000
7. GRAFICI

plot(x,y)
plot(x,y,’r’,’--’)
plot(x1,y1,’r’,’--’,x2,y2,’b’,’o’) Oznaka Boja
y Žuta
m Ljubičasta
Oznaka Tip linije c Setloplava
Puna r Crvena
-
g Zelena
: Tačkasta linija
b Plava
-. Crta tačka w Bela
-- Isprekidana linija k Crna
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
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)')

Grafik
20

y 1(x)
y 2(x)
15
y(x)

10

0
0 5 10 15 20
x
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.
Primer. Prethodni primer (grafik funkcije) snimiti u skriptu Grafik.m i izvršiti
 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
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, syms a b
subs(a+b,a,4) subs(a+b,{a,b},{2,3})
ans = ans =
b+4 5
Pretvaranje numeričke matrice u simboličku matricu

b=[1 2 3; 4 5 6; 7 8 9] bb=sym(b)
b= bb =
123 [ 1, 2, 3]
456 [ 4, 5, 6]
789 [ 7, 8, 9]

Određivanje simb. varijabli iz simb. izraza


f=sym('x^2+2*y^3-7*y+3+z');
findsym(f)
ans =
x, y, z
findsym(f,2)
ans =
x,y
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 syms x
a=[a1 a2; a3 a4] f =x^2+2*x^3-6*x+3
a= p=sym2poly(f)
[ a1, a2] p=
[ a3, a4] 2 1 -6 3
p2 =[1 2 3 4 5]
b=double(a)
f2=poly2sym(p2)
b=
f2 =
12
x^4+2*x^3+3*x^2+4*x+5
34
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 |
+- -+
Diferenciranje syms x;
2
d f ( x) f=x^2*sin(x);
f ( x)  x sin( x) ,
2
2
? diff(f,2)
dx
ans =
2*sin(x)+4*x*cos(x)-x^2*sin(x)

2
d f ( x, y )
f ( x, y )  x 2 y  2 y 2 x , ?
dxdy syms x y;
f=x^2*y+2*y^2*x
diff(diff(f,x),y)
ans =
2*x+4*y
Integraljenje
syms x y;
f=x^2*y+2*y^2*x
f ( x, y )  x 2 y  2 y 2 x , int(f,x)

 f ( x, y)dx  ? ans =
(x^2*y*(x + 3*y))/3

 ax 2
f ( x, a )  e

syms x, syms a, assume(a > 0);
f=exp(-a*x^2)


f ( x)dx  ? int(f,x,-inf,inf)
ans =
pi^(1/2)/a^(1/2)

f ( x, a)  xe x syms x a b;
b
f=x*exp(-x);
 f ( x)dx  ?
a
F=int(f,x,a,b)
F=
% granice su parametri

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


0
f ( x)dx  ? subs(F, {a,b}, [0,10])
ans =
% smena granica

0.9995
Granične vrednosti syms x a b;
x
 a b f=x*(1+a/x)^x*sin(b/x);
lim x 1   sin   limit(f,x,inf)
x   x  x ans =
exp(a)*b

syms x;
1 limit(1/x,x,0)
lim ans =
x 0 x
NaN
1
lim limit(1/x,x,0,’left’)
x 0 x ans =
-Inf
1
lim limit(1/x,x,0,’right’)
x 0 x
ans =
Inf
Uprošćavanje izraza
syms x y
expand(cos(x+y))
R=expand(f) ans =
cos(x)*cos(y)-sin(x)*sin(y)
cos(x+y)

syms x y
R=factor(f)
factor(x^3-y^3)
x^3-y^3 ans =
(x-y)*(x^2+x*y+y^2)

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

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


Grafik simboličke funkcije ezplot(sym('-2*(x-2)^2+2+y'),[-2,8,-4,7])
ezplot(f), grid
hold on
ezplot(f,vektor_granica) ezplot(sym('2*sin(2*t)+5'),
ezplot(x,y,t_granica) sym('cos(2*t)'))

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

2
y

-2

-4
0 5 10
x
Algebarske jednačine S=solve('x^2+y^2-1=0','y=4*sqrt(3)*x^3')
S =
solve(eq), solve(eq,var) x: [6x1 sym]
solve(eq1,eq2,...,eqn) y: [6x1 sym]

x2  y 2 1  0
0.75 x 3  y  0.9  0 S.x
ans =
ezplot(sym('x^2+y^2-1=0'),[-1,1,-1,1]) 1/2
hold on -1/2
ezplot(sym('y=4*sqrt(3)*x^3')) -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)
y == 4 31/2 x 3 1/12*(-18-6*i*39^(1/2))^(1/2)
1

0.5 S.y
ans =
0 1/2*3^(1/2)
y

-1/2*3^(1/2)
-1/432*(-18+6*i*39^(1/2))^(3/2)*3^(1/2)
-0.5
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
-1 -0.5 0 0.5 1
1/432*(-18-6*i*39^(1/2))^(3/2)*3^(1/2)
x
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 =
y == 4 31/2 x 3
1/2 1

-1/2
S.y 0.5
ans =

3^(1/2)/2 0

y
-3^(1/2)/2
-0.5
% Resenja su (1/2, 3 2 ) i (-1/2, - 3 2 )
-1
-1 -0.5 0 0.5 1
x
Diferencijalne jednačine
dsolve(deq) dsolve(deq,c1) dsolve(deq1,deq2,c1,c2)

Primer 1. y'(t)-y(t)=sin(t)
% Bez početnih uslova % Sa početnim uslovima
dsolve('Dy-y=sin(t)') dsolve('Dy = y +
ans = sin(t)','y(0)=1')
-1/2*cos(t)-1/2*sin(t)+exp(t)*C1 ans =
-1/2*cos(t)-1/2*sin(t)+3/2*exp(t)

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


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 S.g
ans = ans =
exp(t)*cos(t) + 2*exp(t)*sin(t) 2*exp(t)*cos(t) - exp(t)*sin(t)
Odskočna i impulsna funkcija
heaviside(x)
ezplot(heaviside(x),[-0.1 0.1])
heaviside(x)

0.8

0.6

0.4

0.2

-0.1 -0.05 0 0.05 0.1


x

dirac(x)
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)
Redovi
symsum(f), symsum(f,a,b) syms k
M=symsum(1/k^2,1,inf)
1 1 M =
M 1 2
 2 pi^2/6
2 3

M 1 2  3  n syms k n
M=symsum(k,1,n)
M =
pi^2/6
III. CONTROL SYSTEM TOOLBOX
Tipovi objekata modela
Modeli dinamičkih sistema
Model Family Model Types Model Family Model Types
Numeric LTI models tf Generalized LTI models — genss
zpk Representations of systems that genfrd
Basic numeric representation of include tunable or uncertain
linear systems ss coefficients uss
frd ufrd
pid Dynamic Control Design Blocks ltiblock.gain
pidstd — Tunable, uncertain, or switch ltiblock.tf
components for constructing
Identified LTI models — idtf models of control systems ltiblock.ss
Representations of linear systems idss ltiblock.pid
with tunable coefficients, whose
values can be identified using idfrd ltiblock.pid2
measured input/output data. idgrey ultidyn
idpoly udyn
idproc loopswitch
Identified nonlinear models — idnlarx
Representations of nonlinear idnlhw
systems with tunable coefficients,
whose values can be identified idnlgrey
using input/output data. Limited
support for commands that
analyze linear systems.
FUNKCIJA PRENOSA
m

m 1
bm s  bm 1s   b1s  b0
m  (s  z )
i
G s  n n 1
K i 1

s  an 1s   a1s  a0 n

 (s  p )
i 1
i

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
Kreiranje funkcije prenosa

15
G(s)  2
s  14s  40.02

I Način II Način

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


G = 1.5/(s^2+14*s+40.02)
G=
1.5 G=
------------------ 1.5
s^2 + 14 s + 40.02 ------------------
s^2 + 14 s + 40.02
Continuous-time transfer
function. Continuous-time transfer
function.
Kreiranje G preko polova, nula i
Gzpk = zpk([],[-9.996 -4.004], 1.5)
pojačanja
Gzpk =
15 1.5
G( s) 
( s  9.996)( s  4.004) -------------------
(s+9.996) (s+4.004)
Continuous-time zero/pole/gain model.

Kašnjenje u funkciji prenosa Gtd = tf(1.5,[1 14 40.02],'ioDelay',0.05)


Gtd = tf(1.5,[1 14 40.02],'InputDelay',0.05)
15e 0.05 s Gtd = tf(1.5,[1 14 40.02],'OutputDelay',0.05)
G(s)  2
s  14s  40.02 Gtd =
1.5
exp(-0.05*s) * ----------------------
s^2 + 14 s + 40.02

Continuous-time transfer function.


Multivarijabilni sistem

I Način II Način

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


h21 = tf([1 2],[1 4 5]); h11 = (s-1)/(s+1);
h21 = (s+2)/(s^2+4*s+5);
H = [h11; h21]
H= H = [h11; h21]
From input to output...
s-1
1: -----
s+1
s+2
2: -------------
s^2 + 4 s + 5
Transformacije iz jednog u drugi s = tf('s')
oblik prenosne funkcije G=(5*s+5)/(s^3+12*s^2+44*s+48)
Gzpk = zpk(G)

5s  5 Gzpk =
G (s)  3 5 (s+1)
s  12 s 2  44 s  48 -----------------
s 1 (s+6) (s+4) (s+2)
5
( s  2)( s  4)( s  6)
Continuous-time zero/pole/gain model.

s 1 s = tf('s')
G ( s)  5 Gzpk=5*(s+1)/(s+2)/(s+4)/(s+6);
( s  2)( s  4)( s  6) G = tf(Gzpk)
5s  5
 3
s  12 s 2  44 s  48 G=
5s+5
------------------------
s^3 + 12 s^2 + 44 s + 48

Continuous-time transfer function.


PROSTOR STANJA

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


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)
A = [0 1;-5 -2];
B = [0;3];
C = [0 1];
D = 0;
sys = ss(A,B,C,D)

sys =
c=
x1 x2
a=
y1 0 1
x1 x2
x1 0 1
d=
x2 -5 -2
u1
y1 0
b=
u1
Continuous-time state-space model.
x1 0
x2 3
Kašnjenje u prostoru stanja

x(t )  2 x(t )  3u (t  1.5)


 x(t  0.7) 
y (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])
N N
x(t )  Ax(t )  Bu (t )   A j x(t  t j )   B j u (t  t j )
j 1 j 1
N N
y (t )  Cx(t )  Du (t )   C j x(t  t j )   D j u (t  t j )
j 1 j 1
sys=delayss(A,B,C,D,delayterms)

x(t )  x(t )  x(t  1.2)  2u (t  0.5)


y (t )  x(t  0.5)  u (t )

x(t )  1  x(t )  0  u (t )   0  x(t  0.5)  1  x(t  1.2)    2  u (t  0.5)  0  u (t  1.2) 


y (t )  0  x(t )  1  u (t )  1  x(t  0.5)  0  x(t  1.2)   0  u (t  0.5)  0  u (t  1.2) 

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)
Redna veza sistema
Važi za bilo koji dinamički sistem (tf, G1=tf([1],[1 3]); G2= tf([1],[1 5]);
zpk, ss, ...) Ge=series(G1,G2)

sys = series(sys1,sys2) Ge =
1 1 1
G1 ( s )  , G2 ( s )  --------------
s3 s5 s^2 + 8 s + 15
1
Ge ( s )  2
s  8s  15 Continuous-time transfer function.

Paralelna veza sistema


Važi za bilo koji dinamički sistem (tf, G1=tf([1],[1 3]); G2= tf([1],[1 5]);
zpk, ss, ...) Ge=parallel(G1,G2)

sys = parallel(sys1,sys2) Ge =
1 1 2s+8
G1 ( s )  , G2 ( s )  --------------
s3 s5
2s  8 s^2 + 8 s + 15
Ge ( s )  2
s  8s  15 Continuous-time transfer function.
Povratna sprega
Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

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


sys = feedback(sys1,sys2) G(s)
-
H(s)
2
G (s) 
s3 G=tf([2],[1 3]); H= tf([3],[1 2 1]);
Ge= feedback(G,H,-1)
3
H (s)  2
s  2s  1 Ge =

2s 2  4s  2 2 s^2 + 4 s + 2
Ge ( s)  3 ---------------------
s  5s 2  7 s  9 s^3 + 5 s^2 + 7 s + 9

Continuous-time transfer function.


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

Primer.
R(s) E(s) U(s) Y(s)
2 G1(s) G2 (s)
G1 ( s )  , -
s3 Y1(s) G3 (s)

3
G2 ( s )  2 , G1=tf([2],[1 3]); G2= tf([3],[1 2 1]); G3=tf([1],[1 1]);
s  2s  1 Gd= series(G1,G2)
Ge= feedback(Gd,G3,-1)
1
G3 ( s)  ,
s 1 Ge =
6s+6
2s 2  4s  2 -------------------------------
Ge ( s)  3 s^4 + 6 s^3 + 12 s^2 + 10 s + 9
s  5s 2  7 s  9
Continuous-time transfer function.
II NAČIN (primena connect)
R(s) E(s) U(s) Y(s)
G1(s) G2 (s)
sysc = connect(sys1,...,sysN,inputs,outputs)
-
Y1(s) G3 (s)
Primer.

2
G1 ( s )  ,
s3 G1=tf([2],[1 3]); G2= tf([3],[1 2 1]); G3=tf([1],[1 1]);
G1.u = 'e'; G1.y = 'u';
3 G2.u = 'u'; G2.y = 'y';
G2 ( s )  2 , G3.u = 'y'; G3.y = 'y1';
s  2s  1 Sum = sumblk('e = r - y1');
T = connect(G1,G2,G3,Sum,'r','y')
1
G3 ( s)  ,
s 1 T=
From input "r" to output "y":
6s+6
-------------------------------------
s^4 + 6 s^3 + 12 s^2 + 10 s + 9
Continuous-time transfer function.
Primer. (I Način)

10s  1
GC ( s )  5 ,
2s  1
1
H (s)  ,
50 s  1
8 s5 1 1
G1 ( s )  , G2 ( s)  , G3 ( s )  , G4 
3s  1 s ^ 2  12 s  25 0.2 s  1 s

s = tf('s'); G12=series(G1,G2);
Gc = 5*(10*s+1)/(2*s+1); G123=parallel(G12,G3);
G1 = 8/(3*s+1); G123H=feedback(G123,H,-1)
G2 = (s+5)/(s^2+12*s+25); Gdp = series(Gc,G123H);
G3 = 1/(0.2*s+1); G4=1/s; Gd = series(Gdp,G4);
H=1/(50*s+1); Ge = feedback(Gd,1,-1)

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
x2
Primer. (II Način)
e1 x1 e2 x3 x4 s

x5

s = tf('s'); G3.u = 'e2'; G3.y = 'x2';


Gc = 5*(10*s+1)/(2*s+1); G4.u = 's'; G4.y = 'y';
G1 = 8/(3*s+1); H.u = 's'; H.y = 'x5';
Sum1 = sumblk('e1 = r - y');
G2 = (s+5)/(s^2+12*s+25);
Sum2 = sumblk('e2 = x1 - x5');
G3 = 1/(0.2*s+1); G4=1/s;
Sum3 = sumblk('s = x2 + x4');
H=1/(50*s+1);
Gc.u = 'e1'; Gc.y = 'x1'; Ge = connect(Gc,G1,G2,G3,G4,H, ...
G1.u = 'e2'; G1.y = 'x3'; Sum1, Sum2, Sum3, 'r', 'y')
G2.u = 'x3'; G2.y = 'x4';

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
Polovi i nule dinamičkog sistema
Primer.
Važi za bilo koji dinamički sistem (tf, zpk, H = tf([2 5 1],[1 2 3]);
ss, ...) pole(H)
[z,gain]= zero(H)
pzplot(sys)
damp(H)
p = pole(sys)
z = zero(sys)
[z,gain]= zero(sys)
pzplot(sys) Pole-Zero Map
2

1.5

[Wn,zeta]= damp(sys) 1

Imaginary Axis (seconds-1)


[Wn,zeta,P]= damp(sys) 0.5

-0.5

-1

-1.5

-2
-5 -4 -3 -2 -1 0
Real Axis (seconds -1)
Step Response
VREMENSKI ODZIVI SISTEMA
1.6

Odskočni odziv sistema 1.4

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

Amplitude
1

0.8
A = [2 -4; 4 2]; B = [-1; 0.5]; C = [-0.5, -2]; D = [-1]; 0.6
S=ss(A,B,C,D); 0.4
H = tf([8 18 32],[1 6 14 24]); 0.2

0
0 1 2 3 4
Grafici Time (seconds)
stepplot(H); % ili stepplot(S); Step Response
stepplot(H,8); % ili stepplot(S,8); 2

step(H); % ili step(S); 1.5

step(H,8); % ili step(S);

Amplitude
1

Numeričke vrednosti
[y,t] = step(H); % --> plot(t,y) 0.5

[y,t] = step(H,8); % --> plot(t,y)


0
0 2 4 6 8
Time (seconds)
Impulse Response
8
Impulsni odziv sistema 7

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

Amplitude
4
H = tf([8 18 32],[1 6 14 24]);
3

2
Grafici 1
impulseplot(H) 0

impulseplot(H, 10) -1
0 1 2 3 4
Time (seconds)
Impulse Response
8
impulse(H)
impulse(H,10) 6

Numeričke vrednosti 4

Amplitude
[y,t] = impulse(H) % --> plot(t,y)
2
[y,t] = impulse(H,10) % --> plot(t,y)
0

-2
0 2 4 6 8 10
Time (seconds)
Odziv usled početnih uslova
Sistem je dat isključivo u prostoru stanja (ss)
x(t )  Ax(t )  Bu (t ), x(0)  x0
Response to Initial Conditions
y (t )  Cx(t )  Du (t ), u (t )  0 7

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

Amplitude
4

Grafici 3

initialplot(H,x0) 2
initialplot(H,x0,12)
1

initial(H,x0) 0
0 1 2 3 4 5
initial(V,x0,Tfinal) Time (seconds)

Numeričke vrednosti
[y,t,x] = initial(H,x0) % --> plot(t,y), % --> plot(t,x)
[y,t,x] = initial(H,x0,Tfinal)
Odziv na proizvoljnu pobudu
[u,t] = gensig('square',4,10,0.1);
Tipična pobuda H = [tf([2 5 1],[1 2 3]) ; tf([1 -1],[1 1 5])]
[u,t] = gensig(type,tau) lsim(H,u,t)
[u,t] = gensig(type,tau,Tf,Ts)

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


Linear Simulation Results
4
lsimplot(sys1,sys2,...)
lsimplot(sys,u,t)

To: Out(1)
2
lsimplot(sys,u,t,x0)
lsimplot(sys1,sys2,...,u,t,x0) 0

Amplitude
-2
lsim(sys,u,t) 1
lsim(sys,u,t,x0)
To: Out(2)

Primer. 0

-1
0 2 4 6 8 10
Time (seconds)
VREME USPONA, VREME SMIRENJA, PRESKOK, ...
Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

stepinfo(G)

s = tf('s'); Step Response


0.35
G = (s+5)/(s^2+5*s+25);
step(G) 0.3
stepinfo(G)
0.25
ans =
RiseTime: 0.1882
Amplitude
0.2
SettlingTime: 1.5011
SettlingMin: 0.1881 0.15
SettlingMax: 0.2597
Overshoot: 29.8352 0.1
Undershoot: 0
Peak: 0.2597 0.05

PeakTime: 0.4789
0
0 0.5 1 1.5 2
Time (seconds)
FREKVENTNI ODZIV SISTEMA
Bode Diagram
Bodeovi dijagrami 0

-10

Magnitude (dB)
Važi za bilo koji dinamički sistem (tf,
zpk, ss, ...) -20

-30
bodeplot(sys)
-40
0
bode(sys)
[mag,phase,wout]= bode(sys)

Phase (deg)
-45

sys = tf(1,[1 1]);


bodeplot(sys) -90
-2 -1 0 1 2
[mag,phase,w]= bode(sys) 10 10 10 10 10
Frequency (rad/s)
Asimptotski Bodeovi dijagrami
sys = tf([1 20],[1 2 3]);
asymp(sys) % funkcija sa sajta matxworks-a

Bode Diagram
20
10
Magnitude (dB)

0
-10
-20
-30
-40
-50
-60
0
-30
Phase (deg)

-60
-90
-120
-150
-180
0.01 0.1 1 10 100 1000
Frequency (rad/s)
Frekventni odziv, Amplitudna i fazna 1.4

karakteristika 1.2

Važi za bilo koji dinamički sistem (tf, zpk, ss, 0.8

A(w)
...) 0.6

0.4

[H,wout]= freqresp(sys) 0.2

0
0 1 2 3 4 5
sys = tf(1,[1 1 1]); w

w=linspace(0,5,200);
0
[H,wout]= freqresp(sys,w);
-20
Hw = reshape(H,[],1); -40
A=abs(Hw); -60
fi=angle(Hw); fi=fi*360/2/pi; -80

fi(w)
plot(wout,A), xlabel('w'), ylabel('A(w)') -100
plot(wout,fi), xlabel('w'), ylabel('fi(w)') -120

-140

-160

-180
0 1 2 3 4 5
w
Propusni opseg sistema
Važi za bilo koji dinamički sistem (tf, zpk, ss, ...)

1.4
fb = bandwidth(sys)
1.2
sys = tf(1,[1 1 1]);
1
fb =
0.8
1.2712 A(w)
0.6

0.4

0.2

0
0 1 2 3 4 5
w
Statičko pojačanje

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

Step Response
1.4

k = dcgain(sys)
1.2

sys = tf(1,[1 1 1]); 1

step(sys) 0.8

Amplitude
Kp = dcgain(sys)
0.6

Kp = 0.4

1
0.2

0
0 2 4 6 8 10 12
Time (seconds)
Nyquist Diagram
Nikvistov dijagram 10

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

6
h = nyquistplot(sys)
nyquistplot(sys,{wmin,wmax}) 4
nyquistplot(sys,w)
nyquistplot(sys1,sys2,...,w) 2

Imaginary Axis
0

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


nyquistplot(sys); -2

-4

-6

-8

-10
-1 -0.8 -0.6 -0.4 -0.2 0
Real Axis
MARGINA POJAČANJA, FAZNA MARGINA, MARGINA KAŠNJENJA, PRESEČNE
UČESTANOSTI

margin(sys)
allmargin(sys)
Bode Diagram
Gm = Inf , Pm = -120 deg (at 0.577 rad/s)
Primer. 10

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


5
margin(H)

Magnitude (dB)
allmargin(H) 0

ans = -5

-10
GainMargin: [1x0 double] 90
GMFrequency: [1x0 double]
PhaseMargin: -120.0000
Phase (deg)

45
PMFrequency: 0.5773
DelayMargin: [7.2552 0] 0
DMFrequency: [0.5773 Inf]
Stable: 1 -45
-2 -1 0 1 2
10 10 10 10 10
Frequency (rad/s)
PID REGULATOR 7
Step Response

Amplitude
4

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

C = pid(Kp) 1
0 5 10 15 20
C = pid(Kp,Ki) Time (seconds)

C = pid(Kp,Ki,Kd)
Bode Diagram
C = pid(sys) 60

Magnitude (dB)
40
Primer.
Kp=1; 20

Ki=0.1; 0

Kd=3; 90

45
Tf=0.5;
Phase (deg) 0
G = pid(Kp,Ki,Kd,Tf);
-45
step(C)
-90
bode(C) 10
-3 -2
10 10
-1
10
0
10
1 2
10
Frequency (rad/s)
C = pidstd(Kp)
C = pidstd(Kp,Ti)
C = pidstd(Kp,Ti,Td)
C = pidstd(Kp,Ti,Td,N)
POREĐENJE ODZIVA VIŠE SISTEMA R(s) Y(s)
C(s) G(s)
G = zpk([],[-5 -5 -10],100); -

C = pid(0,4.4);
Gsp = feedback(G*C,1);
Step Response
1.4

step(G,Gsp);
1.2

0.8

Amplitude
0.6

0.4

0.2

0
0 1 2 3 4 5 6 7
Time (seconds)
Step Response
G = zpk([],[-5 -5 -10],100); 1.5
G
T1
T2
C1 = pid(0,4.4); 1

T1 = feedback(G*C1,1);

Amplitude
C2 = pid(2.9,7.1); 0.5

T2 = feedback(G*C2,1);
0
0 1 2 3 4 5 6 7
ltiview(G,T1,T2) Time (seconds)

Impulse Response
2.5
G
2 T1
T2

1.5
Amplitude

0.5

-0.5
0 1 2 3 4 5 6 7 8
Time (seconds)
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
Primer.

K=1;
G = tf([.5 1.3],[1 1.2 1.6 0]);
T = feedback(K*G,1);
pole(T)
Pole-Zero Map
1.5
Polovi zatvorenog sistema
P= 1
-0.2305 + 1.3062i

Imaginary Axis (seconds-1)


-0.2305 - 1.3062i 0.5
-0.7389 + 0.0000i
0
Nule zatvorenog sistema
Z= -0.5
-2.6000
-1

-1.5
-3 -2.5 -2 -1.5 -1 -0.5 0
Real Axis (seconds -1)
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)


Geometrijsko mesto korena sistema u povratnoj sprezi
rlocus(G)

Root Locus
15

System: G
10 Gain: 2.77
Pole: 0.000972 + 1.73i
Damping: -0.000562
Imaginary Axis (seconds-1)

5 Overshoot (%): 100


Frequency (rad/s): 1.73

kada K
-5

-10

-15
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
Real Axis (seconds -1)
Odskočni odziv zatvorenog sistema
step(T), title('Odskocni odziv za K = 1')

Odskocni odziv za K = 1
1.4

1.2

0.8
Amplitude

0.6

0.4

0.2

0
0 5 10 15 20 25
Time (seconds)
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' )
Odskocni odziv
3
K = 0.5
K=0.5, 1, 2 2.5 K=1

sistem stabilan K =2
2 K =4

K=4 1.5
Amplitude
sistem nestabilan 1

0.5

-0.5

-1
0 2 4 6 8 10 12
Time (seconds)
Bodeovi dijagrami funkcije povratnog prenosa
bode(G), grid
Bode Diagram
50
Magnitude (dB)

System: G
Gain Margin (dB): 8.77
-50 At frequency (rad/s): 1.72
Closed loop stable? Yes

System: G
-100 Phase Margin (deg): 44.7
-90 Delay Margin (sec): 0.752
At frequency (rad/s): 1.04
Closed loop stable? Yes
-135
Phase (deg)

-180

-225
-1 0 1 2
10 10 10 10
Frequency (rad/s)
Pretek pojačanja, pretek faze,

m = allmargin(G)
GainMargins_dB = mag2db(m.GainMargin)

m=
GainMargin: [2.7440 Inf] Bode Diagram
GMFrequency: [1.7241 Inf] 50

PhaseMargin: 44.6703
PMFrequency: 1.0362
Magnitude (dB)
0

DelayMargin: 0.7524 System: G


Gain Margin (dB): 8.77
At frequency (rad/s): 1.72
DMFrequency: 1.0362 -50
Closed loop stable? Yes

Stable: 1 System: G
-100 Phase Margin (deg): 44.7
-90 Delay Margin (sec): 0.752

GainMargins_dB = At frequency (rad/s): 1.04


Closed loop stable? Yes

8.7677 Inf -135


Phase (deg)

-180

-225
-1 0 1 2
10 10 10 10
Frequency (rad/s)
Grafička prezentacija

margin_gui

Open Loop GK Closed-Loop Step Response


60 1.5

40 Feedback Loop:
Magnitude (dB)

20 1

Amplitude
K G
0 -
-20 0.5

-40
0.5 s + 1.3
G(s) =
-60 0
0 5 10 15 20 s 3 + 1.2 s 2 + 1.6 s
-45
Time (sec)

-90
Phase (deg)

-135 Loop Gain K:

-180
0.1 10

-225
-1 0 1
10 10 10
Frequency (rad/sec)
Nikvistov dijagram
nyquist(sys)
nyquist(sys,w)
nyquist(sys1,sys2,...,sysN)
nyquist(sys1,sys2,...,sysN,w)
[re,im,w,sdre,sdim] = Nyquist Diagram
10
nyquist(sys)
8

6
Primer
4
nyquist(G)
2
Imaginary Axis
0

-2

-4

-6

-8

-10
-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0
Real Axis
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' )
Nikvistov dijagram

8
K = 0.5
6 K=1
K =2
4 K =4
Imaginary Axis

-2

-4

-6

-8
-2.5 -2 -1.5 -1 -0.5 0
Real Axis
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
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')
Step Response
1.4
C_pi = Bez PI
1 1.2 Sa PI
Kp + Ki * ---
s 1

with Kp = 1.14, Ki = 0.454


0.8

Amplitude
Continuous-time PI controller in 0.6
parallel form.
0.4

info =
0.2
Stable: 1
CrossoverFrequency: 0.5205 0
PhaseMargin: 60.0000 0 2 4 6 8 10 12 14
Time (seconds)
[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
Step Response
Kp + Ki * --- + Kd * s 1.4
s Bez PI
1.2 Sa PI
with Kp = 2.18, Ki = 0.921, Kd = 1.29 Sa PID

1 Sa PIDF

Continuous-time PID controller in


parallel form. 0.8
Amplitude

info = 0.6

Stable: 1
0.4
CrossoverFrequency: 0.8250
PhaseMargin: 60.0000
0.2

0
0 2 4 6 8 10 12 14
Time (seconds)
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.


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
PROJEKTNE ALATKE
ltiview – analiza lineatnih stacionarnih sistema
sisotool – podešavanje parametara kompenzatora
pidtool – projektovanje PID regulatora
ident – identifikacija sistema
ltiview – analiza lineatnih stacionarnih sistema
sisotool – podešavanje parametara kompenzatora
pidtool – projektovanje PID regulatora
ident – identifikacija sistema
IV. SIMULINK
 Grafičko okruženje bazirano na bok dijagramima
 Namenjeno za:
- modelovanje,
- simulaciju i
- projektovanje dinamičkih sistema
- automatsko generisanje
programskog koda
Editor Simulink modela
Biblioteke blok dijagrama u Simulinku
Primer 1. Napraviti simulacioni model u Simulinku sistema koji je prikazan na
sledećoj slici. Parametri sistema su: masa m1  2 , krutost opruge k1  3 i
koeficijent trenja b1  3. Za početne vrednosti uzeti x(0)  1 u odnosu na
ravnotežni položaj i x(0)  v(0)  0 . Pobudna funkcija je:
a) sinusna amplitude 1 i kružne učestanosti 2rad/s,
b) pravougaono periodična amplitude 2 i periode 5,
0, t 1

c) f  t   2.5, 1  t  2
0, t2

x1

k1 u(t)
m1

b1
Rešenje.
Matematički model sistema: m1 x1  b1 x1  k1 x1  u
u b1 k1
Rešenje po najvećem izvodu: x1   x1  x1
m1 m1 m1
Zadavanje vrednosti parametara blokova u Comand Window:
m1=2;
k1=3;
b1=3;
vremesimulacije = 10; % trajanje simulacije
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.
Simulacioni dijagram eksportovan preko Clopboard-a
Rezultat simulacije (Scope blok)
Primer 2. Napraviti simulacioni model sledećeg sistema ako je poznato:
m1  2 , k1  3 , b1  3, m2  1, k2  1. Za početne vrednosti izabrati x1 (0)  1 i
x2 (0)  2 u odnosu na ravnotežni položaj i x1 (0)  x2 (0)  0 . Pobuda je
0, t 1

u  t   1.5, 1  t  2
0, t2

x2 x1

k2 m2 k1 m1 u(t)

b2 b1
Matematički model sistema:
m1 x1  b1 x1  k1 ( x1  x2 )  u (t )
m2 x2  b2 x2  k2 x2  k1 ( x1  x2 ), b2  0
Rešenje po najvećim izvodima:

b1 k1 k1 u
x1   x1  x1  x2 
m1 m1 m1 m1
b2 k2 k1 k1
x2   x2  x2  x1  x2
m2 m2 m2 m2
b2 k1 k1  k2
 x2  x1  x2 , b2  0
m2 m2 m2
Zadavanje vrednosti parametara blokova u Comand Window:
m1=2; k1=3; b1=3
m2=1; k2=1; b2=0
vremesimulacije = 10; % trajanje simulacije
Simulacioni dijagram.
Za početne uslove u integratorima staviti odgovarajuće početne uslove iz
zadatka.
u (t )
Rezultat simulacije (Scope blok)
x1(t) x2(t)
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“.
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.


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
Formiranje linearnog modela u prostoru stanja

S=ss(A,B,C,D)
b=
u1
x1 0
x2 0
S= x3 0.5
x4 0
a=
x1 x2 x3 x4 c=
x1 0 0 1 0 x1 x2 x3 x4
x2 0 0 0 1 y1 1 0 0 0
x3 -1.5 1.5 -1 0 y2 0 1 0 0
x4 3 -4 0 0
d=
u1
y1 0
y2 0
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
Poređenje sa teorijskim rezultatom:

Sa simulacionog dijagrama ili iz:


b1 k1 k1 u
x1   x1  x1  x2 
m1 m1 m1 m1
b2 k2 k1 k1
x2   x2  x2  x1  x2 usvajanjem četiri nove promenljive:
m2 m2 m2 m2
b2 k1 k1  k2
 x2  x1  x2 , b2  0
m2 m2 m2
z1  x1 , z3  x1 , z2  x2 , z4  x2
sledi:
z1  z3
 0  0
z2  z4 u  
b1 k1 k1 u   1
z3   z3  z1  z2  , B   m1    2 
m1 m1 m1 m1  0  0
b2 k1 k1  k2    
z4   z4  z1  z2  0   0 
m2 m2 m2

y1  z1 1 0 0 0  0 
 C  , D 
y2  z 2 0 1 0 0  0 

 0 0 1 0   0 0 1 0 
 0  0 0
1   0  0 1
0 0
     0 0 0 1
0 0 1
 k1
A  
k1 b
 1

0    3 3 2  
 2  0   3 3 
 1
m m1 m1
  2 2   1 0 
 2 2
 k1 k1  k2 b2   3 4 0  
 m  0    0   3 4 0 0 
 2 m2 m2   1 1 
1
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: qi (t )  k h(t ) . Na bazi dobijenog modela kreirati model u obliku
podsistema.

Rešenje.
Model sistema

dh(t )
A  qu (t )  qi (t ) qu
dt
qi (t )  k h(t )
h
qi
A
Simulacioni dijagram
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).
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
Primer 5. Kreirati simulacioni diagram punjenja i pražnjenja dva kaskadno
vezana rezervoara prikazana na slici. Isticanje tečnosti definisano je sledećim
izrazima: q2 (t )  k h1 (t ) i q4 (t )  k2 h2 (t ) . Ulazni protok je pravougaono
periodična funkcija amplitude 2, širine 1 i periode 2. Poznato je A1  2 , k1  1,
A2  1 i k2  2 . Početna stanja visina rezervoara su h1 (0)  2 i h1 (0)  1.
Rešenje.
Model sistema
dh1 (t ) q1
A1  q1 (t )  q2 (t )
dt
h1
dh2 (t ) q2
A2  q3 (t )  q4 (t ) A1
dt
q3  q2
q3
q2 (t )  k h1 (t )
h2
q4 (t )  k2 h2 (t ) q4
A2
Podsistem

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


h10 i h20.
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

You might also like