Professional Documents
Culture Documents
• Oblik:
promenljiva = izraz
• 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)
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
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 mn ( 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’);
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]);
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]
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
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)
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
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
15
G(s) 2
s 14s 40.02
I Način II Način
I Način II Način
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
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
sys = series(sys1,sys2) Ge =
1 1 1
G1 ( s ) , G2 ( s ) --------------
s3 s5 s^2 + 8 s + 15
1
Ge ( s ) 2
s 8s 15 Continuous-time transfer function.
sys = parallel(sys1,sys2) Ge =
1 1 2s+8
G1 ( s ) , G2 ( s ) --------------
s3 s5
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, ...)
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
Primer.
R(s) E(s) U(s) Y(s)
2 G1(s) G2 (s)
G1 ( s ) , -
s3 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 ) ,
s3 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 s5 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
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
-0.5
-1
-1.5
-2
-5 -4 -3 -2 -1 0
Real Axis (seconds -1)
Step Response
VREMENSKI ODZIVI SISTEMA
1.6
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
Amplitude
1
Numeričke vrednosti
[y,t] = step(H); % --> plot(t,y) 0.5
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)
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)
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
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
A(w)
...) 0.6
0.4
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
Step Response
1.4
k = dcgain(sys)
1.2
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
6
h = nyquistplot(sys)
nyquistplot(sys,{wmin,wmax}) 4
nyquistplot(sys,w)
nyquistplot(sys1,sys2,...,w) 2
Imaginary Axis
0
-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
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
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
-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)
Root Locus
15
System: G
10 Gain: 2.77
Pole: 0.000972 + 1.73i
Damping: -0.000562
Imaginary Axis (seconds-1)
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
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
Stable: 1 System: G
-100 Phase Margin (deg): 44.7
-90 Delay Margin (sec): 0.752
-180
-225
-1 0 1 2
10 10 10 10
Frequency (rad/s)
Grafička prezentacija
margin_gui
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)
-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
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
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
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
pidstd(C_pidf)
ans =
1 1 s
Kp * (1 + ---- * --- + Td * ---------------)
Ti s (Td/N)*s+1
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, t2
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
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=
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:
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
Rezultat simulacije