You are on page 1of 40

SIMULINK

MATLAB
Softver za simulaciju dinamikih
sistema
Uopteno o SIMULINK-u
upotrebljava se za simulaciju dinamike sistema
(u grafikom okruenju)
mogu se analizirati linearni, nelinearni, vremenski kontinualni ili diskretni
multivarijabilni sistemi sa koncentrisanim parametrima
radi kao proirenje MATLAB-a
dodaje osobine karakteristine dinamikim sistemima
zadrava MATLAB-ovu funkcionalnost
uvodi novu klasu prozora - blok dijagram prozor
model se formira u takvom prozoru upotrebom mia
simulacija se ostvaruje upotrebom SIMULINK funkcija za numeriko
reavanje obinih diferencijalnih jednaina prvog reda
Upotreba SIMULINK-a
upotrebljava se u dve faze
formiranje simulacionog modela
analiza modela - simulacije
U praksi se primenjuju oba koraka iterativno dok se ne dostignu eljena
ponaanja.
Preporuuje se formiranje novog modela na osnovu postojedeg,
tj. ne treba raditi sve iz poetka.
Formiranje simulacionog modela
upotrebljavaju se blokovi tipina upotreba
formiranje modela podseda na crtanje blok-dijagrama
postoje biblioteke blokova
standardna SIMULINK biblioteka
korisnikova biblioteka
blokovi se kopiraju iz biblioteke i povezuju vizuelno
blokovi poseduju parametre koji se postavljaju na eljene vrednosti
parametri blokova se mogu menjati i u toku simulacije
Primer jednostavnog modela
Generator
si gnal a
2
Poj acanj e
Mux
Mul ti pl ekser
pera
u MATLAB
Graf
Osnovne grupe blokova (v4)
ulazi - Sources
izlazi - Sinks
diskretni sistemi - Discrete
linearni sistemi - Linear
nelinearni sistemi - Nonlinear
veze izmeu blokova - Connections
dodatni blokovi - Extras
Li near Connecti ons
SIMULINK Bl ock Li brary (Versi on 1.3c)
Extras Sources Di screte Nonl i near Si nks
Blokovi ulaza
generator vremena - Clock
generator diskretnog vremena - Digital clock
generisanje vremenske funkcije tabelom koja
se periodino ponavlja - Repeating Sequence
generator konstantne vrednosti - Constant
generator signala: sinusni, etvrtke, trougaoni
ili beli um - Signal Generator
generator impulsa - Pulse Generator
generator sinusnog oblika - Sine Wave
generator jedinine funkcije - Step Input
generator funkcije definisane podacima iz MAT datoteke - From File
generator funkcije definisane podacima iz radnog prostora - From Workspace
generator sinusnog oblika sa linearno rastudom frekvencijom - Chirp Signal
generator serije sluajnih brojeva - Random Number
generator ogranienog belog uma - Band-Limited White Noise
Si gnal Source Li brary
Random
Number
Chi rp Si gnal
Repeati ng
Sequence
Band-Li mi ted
Whi te Noi se
Si gnal
Generator
1
Constant
Si ne Wave Step Input
untitled.mat
From Fi l e
[T,U]
From
Workspace
12:34
Di gi tal Cl ock
Cl ock
Pul se
Generator
Blokovi izlaza
grafiki prozor za prikaz vremenske
promene veliina - Scope, Graph,
Auto-Scale Graph
grafiki prozor za prikaz promene jedne
veliine u zavisnosti od druge - XY Graph
smetanje rezultata u MATLAB
promenljivu - To Workspace
smetanje rezultata u MAT datoteku - To File
zaustavljanje simulacije
(kada je ulaz u blok <>0) - Stop Simulation
promena koraka integracije (obino pri pojavi diskontinuiteta) - Hit
Crossing
Si gnal Si nks Li brary
STOP
Stop Si mul ati on
XY Graph
Graph
yout
To Workspace
untitled.mat
To Fi l e
Scope
Auto-Scal e
Graph
Hi t Crossi ng
Blokovi vremenski diskretnih sistema
kanjenje jedne periode odabiranja -
Unit Delay
digitalni filter - Filter
zadavanje linearnog model diskretnog sistema:
u prostoru stanja - Discrete State-Space
preko polinoma funkcije prenosa -
Discrete Transfer Fcn
preko nula i polova - Discrete Zero-Pole
produivai signala
nultog reda - Zero-Order Hold
prvog reda - First-Order Hold
diskretni integrator - Discrete-Time Integrator i integrator sa ograniavaem -
Discrete-Time Limited Integrator
Zero-Order
Hol d
(z-1)
z(z-0.5)
Di screte
Zero-Pol e
1/z
Uni t Del ay
1
1+2z
-1
Fi l ter
1
z+0.5
Di screte
Transfer Fcn
y(n)=Cx(n)+Du(n)
x(n+1)=Ax(n)+Bu(n)
Di screte State-Space
Di screte-Ti me Li brary
1
z-1
Di screte-Ti me
Integrator
Fi rst-Order
Hol d
Di screte-Ti me
Li mi ted Integrator
Blokovi linearnih sistema
sabira - Sum
mnoa (unutranji proizvod vektora) -
Inner Product
Integrator
diferencijator - Derivative
pojaava - Gain
matrini pojaava - Matrix Gain
kliza kao pojaava - Slider Gain
zadavanje linearnog kontinualnog
modela sistema:
u prostoru stanja - State-Space
preko polinoma funkcije prenosa -
Transfer Fcn
preko nula i polova - Zero-Pole
Li near Li brary
.
Inner
Product
+
+
Sum
1/s
Integrator
du/dt
Deri vati ve
1
s+1
Transfer Fcn
(s-1)
s(s+1)
Zero-Pol e
1
Gai n
K
Matri x
Gai n
1.04
Sl i der
Gai n
x' = Ax+Bu
y = Cx+Du
State-Space
Nelinearne komponente
znak broja (1,0,-1) - Sign
apsolutna vrednost - Abs
proizvod - Product
funkcija - Fcn
histerezis - Backlash
zona neosetljivosti - Dead Zone
ograniava gradijenta -
Rate Limiter
zavisnost izlaza od ulaza data
tablicom - Look-Up Table
zavisnost izlaza od dva ulaza data
tablicom - 2-D Look-Up Table
relej - Relay
prekida, izlaz se prebacuje kada srednji ulaz pree preko zadate vrednosti
(parametra) - Switch
transportno kanjenje - Transport Delay ...
Nonl i near Li brary
Rate Li mi ter
Saturati on
Dead Zone
Backl ash
Coul ombi c
Fri cti on
Quanti zer
Rel ay Si gn
2-D Look-Up
Tabl e
Look-Up
Tabl e
Abs
Abs
*
Product
Swi tch
Combi natori al
Logi c
AND
Logi cal
Operator
>=
Rel ati onal
Operator
system
S-Functi on
MATLAB
Function
MATLAB Fcn
1/s
Reset
Integrator
f(u)
Fcn
Vari abl e
Transport Del ay
Transport
Del ay
Memory
1/s
Li mi ted
Integrator
Nelinearne komponente - nastavak
promenljivo transportno kanjenje - Variable Transport Delay
funkcija MATLAB-a - MATLAB Fcn
S-Function
diskretizovanje ulaza - Quantizer
statiko trenje - Coulombic Friction
relacioni operator - Relational Operator
logiki operator - Logical Operator
kombinatorno logiko kolo - Combinatiorial Logic
memorija (uvodi kanjenje od jednog koraka integracije) - Memory
integrator sa ograniavaem - Limited Integrator
Blokovi za veze
multiplekser - Mux (upotrebljava se za grupisanje signala)
demultiplekser - Demux
ulaz u posmatrani model - Inport
izlaz iz posmatranog modela - Outport
Mux
Mux
Demux
Demux
1
Outport
1
Inport
Li brary
Connecti ons
Dodatni blokovi
primeri
Flip-Flop-ovi:
Latch, SR, D, JK
kontroleri i
PID kontroleri
niskopropusni,
visokopropusni i
pojasni filtri
analiza signala:
auto i kros korelacija,
spektar, spektar snage
prevoenje koordinata izmeu polarnog i Dekartovog koordinatnog sistema
blokovi drugih Toolbox-ova
identifikaciju sistema
vetake neuronske mree
analizu robustnosti sistema, ...
MuTool s
Demos
Robust
Control
Demos
System ID Control l ers
Addi ti onal bl ocks usi ng the mask uti l i ty (documented i n rel ease notes):
Fi l ters
Block
Library
Most commonl y
used bl ocks
DEMOS
SIMULINK
Demos
Bl ocks and demos whi ch requi re tool boxes:
Conversi on Fl i p-Fl ops PID Control l ersAnal yzers
Neural
Networks
Posebni blokovi
Analiza modela
ugraeni su brojni alati za analizu modela
razliiti simulacioni algoritmi
formiranje linearnog modela sistema (linearizacija modela)
nalaenje stacionarnih stanja
tok simulacije se moe pratiti tokom njenog rada
krajnji rezultati se mogu preneti u MATLAB-ovo okruenje
Analiza modela naini upotrebe
1. potpuno interaktivan rad
komande se zadaju iz menija
rezultati se posmatraju u grafikim prozorima Simulink-a
2. pokretanje simulacije iz MATLAB-a
model se moe formirati interaktivno
pokretanje simulacije i preuzimanje rezultata se radi u MATLAB-u
Postupak je fleksibilniji od predhodnog jer se dobijeni rezultati mogu
dodatno obraditi upotrebom MATLAB-a
3. upotreba S-funkcija
model dela sistema se opie programski S-funkcijom
postoji blok S-Function
Ne postoji jasna granica izmee upotrebe ova tri naina, tj. naini se
meusobno preklapaju.
Nain analize modela obino zavisi od faze razvoja modela.
Analiza modela - Simulacija
simulacija ukljuuje numeriku integraciju skupa diferencijalnih jednaina
postoji nekoliko algoritama za integraciju (v4):
linsim- simulacija sistema od linearnih komponenata
rk23 - Runge-Kutta 3. reda
rk45 - Runge-Kutta 5. reda
gear - Gear-ov prediktor-korektor metod
adams - Adams-ov prediktor-korektor metod
euler - Euler-ov metod
u (v7) tip algoritma se postavlja kao parametar sim metode
Zbog razlika u dinamikom ponaanju razliitih sistema, ni jedan algoritam ne
garantuje da de za svaki model davati tane i efikasne (brze) rezulatate.
Za dobijanje tanih rezultata treba poljivo izabrati metodu integracije i postaviti
njene parametre.
Pokretanje simulacije
iz menija
iz komandne linije - MATLAB-a
pokretanje simulacije iz MATLAB-a u odnosu na pokretanje simulacije iz
menija ima vedu fleksibilnost, mogu se:
zadati poetna stanja
formirati spoljanji ulazi preko dodatne promenljive ut
simulirati M-datoteke ili MEX-datoteke
pokretati simulacije iz MATLAB skript datoteke,
gde se parametri mogu programski menjati
Pokretanje simulacije iz menija
Parametri algoritma se posebno postavljaju u dijalogu (v4):
izbor algoritma integracije
vremena poetka i kraja simulacije: tstart i tfinal
tolerancija, min. i maks. korak integracije: tol, minstep, maxstep
imena promenljivih sa rezultatima simulacije: txy (vreme, prom.
stanja, izlazi sistema kao [t,x,y])
Mogudnost izbora integracionog algoritma fiksnog i promenljivog koraka
v7
Pokretanje simulacije iz komandne linije (v4)
Parametri algoritma se zadaju kao argumenti
*t,x,y+ = linsim( model, *tstart,tfinal+, x0, *tol,minstep,maxstep+,
UT, p1, p2, );
ili krade, gde pojedini parametri imaju podrazumevane vrednosti
*t,x,y+ = linsim( model, tfinal );
Pokretanje simulacije iz komandne linije (v7)
*t,x,y+ = sim(model,<TIMESPAN>,<OPTIONS>,UT, p1, p2, )
<TIMESPAN> se zadaje na jedan od naina:
TFinal,
[TStart TFinal], ili
[TStart OutputTimes TFinal].
<OPTIONS> se postavlja upotrebom simset
UT = [T, U1, ... Un]
Primeri:
sim(model',tfinal)
*t,x,y+=sim(model',tfinal)
sim(model',[tstart tfinal],simset('initialstate',x0))
sim(model',[tstart tfinal],simset('initialstate',1,'solver','ode23'))
Izlazi modela - prikaz rezultata
1. Oznaavanje izlaza blokom za izlaz modela
- prenos vrednosti kao izlaza modela u MATLAB
- Prenos vrednosti kao ulaz u druge Simulink blokove
2. Grafiki prikaz trajektorije pomodu Graph blokova
3. Prenos vrednosti
u MATLAB pomodu
To Workspace bloka
4. Zapis u datoteku -
To File blok
Graph
1
Outport Step Input1
Step Input
1
s+1
Transfer Fcn
1
s+1
Transfer Fcn1
Step Input2
1
s+1
Transfer Fcn2
yout
To Workspace
Poetna stanja
primenjuju se u trenutku tstart
nalaze se u samim blokovima
mogu se postaviti (promeniti) iz komandne linije
*t,x,y+ = linsim( model, tfinal, x0 )
*t,x,y+ = sim(model',tfinal,simset('initialstate',x0))
poetna stanja postojedeg modela se mogu oitati pomodu
[sizes,x0] = model
sizes su podaci u modelu: broj ulaza, izlaza, ...
Algebarske petlje
algebarske ili implicitne petlje se javljaju kada dva ili vie blokova imaju
direktan prenos svojih ulaza i formiraju povratnu spregu
reavaju se iterativno
(u najvie 200 iteracija Newton-Raphson tehnikom)
znatno umanjuju brzinu simulacije i treba ih izbegavati
javljaju se kod:
blokova sa pojaanjima
vedine nelinearnih blokova
funkcija prenosa sa jednakim stepenima brojioca i imenioca ili jednakim
brojem nula i polova
modela u prostoru stanja sa nenultom matricom D
x
To Workspace
1
Gai n
1
Constant
+
-
Sum
Interpolacija podataka
potrebna je zbog promenljivog koraka integracije
dobijaju se neekvidistantne take koje se teko uporeuju
MATLAB-ove funkcije za interpolaciju podataka procenjuju vrednosti u
vremenskim trenucima razliitim od poznatih
metode:
linearna interpolacija
yint = table1( [ t, y ], tint )
interpolacija polinomom (1-D biharmonina interpolacija)
yint = interp2( t, y, tint )
interpolacija kubnim splajnom
yint = spline( t, y, tint )
Ove funkcije imaju i dodatne parametre.
Osobine simulacionih algoritama (v4)
linsim
upotrebljava se za linearne sisteme sa: funk. prenosa, modelima u
prostoru stanja, modelima preko nula i polova, sabiraima i poja.
moe se upotrebiti i za sisteme koji sadre nelinearne elemente, ali
ako su sastavljeni preteno od linearnih elem.
dobar je za stiff sisteme - sisteme sa jednovremeno prisutnom i brzom
i sporom dinamikom
rk23, rk45
najbolji za izrazito nelinearne i diskontinualne sisteme
dobar za meane kontinualne i diskretne sisteme
lo za stiff sisteme
...
Osobine simulacionih algoritama - nastavak ...
gear
dobar za nelinearne i glatke sisteme
dizajniran za stiff sisteme, a manje je efikasan za ostale
lo za sisteme sa singularitetima i brzim poremedajima i promenema
na ulazima
adams
dobar za nelinearne i glatke sisteme
lo za sisteme sa vremenskim konstantama koje se menjaju u irokim
granicama
euler
dobar samo za proveru rezultata
generalno: izbegavati ga!
Primer (v4)
opt = [1e-3, 1e-5, 10]; % tolerancija, min i max korak
Tf = 20;
x0 = [1; 1];
[tr23, xr23] = rk23( 'vdp', Tf, x0, opt );
plot( tr23, xr23 )
X1' = X1( 1 - X2*X2 ) - X2
1 - u * u
(1-x2*x2)
Scope
s
1
s
1
*
i l i
X'' + ( X*X - 1 ) X' + X = 0
Van der Pol j ednaci na:
1
-
+
X1'
X2' = X1
X1
X2
Poreenje metoda integracije (v4) tol=0.001
referenca je rk45 sa tolerancijom od 1e-6
raunato na PC486/33
Metod Br. raunanja
izvoda
Taaka na
izlazu
Vremena
raunanja
Greka
(po taki)
linsim 144 136 1,37 0,0051
rk23 316 89 1,50 0,0023
rk45 204 35 1 0,0041
adams 270 55 1,51 0,0019
gear 336 65 1,91 0,0048
euler 365 366 3,03 0,2881
Poreenje metoda integracije (v4) tol=0.1
referenca je rk45 sa tolerancijom od 1e-6
raunato na PC486/33
Metod Br. raunanja
izvoda
Taaka na
izlazu
Vremena
raunanja
Greka
(po taki)
linsim 77 74 2.38 0.0326
rk23 86 23 1.29 0.3730
rk45 140 21 1.46 0.8811
adams 116 34 2.69 0.1005
gear 181 48 4.17 0.2319
euler 33 34 1 1.5835
Vremenski diskretni modeli u Simulink-u
sadre diskretne blokove
svaki blok ima ugraene:
odabira na ulazu i
produiva signala 0-tog reda na izlazu
ulazi se osveavaju (raunaju) samo u trenucima odabiranja
izlati imaju stalnu vrednost izmeu dva trenutka odabiranja
vreme odabiranja i ofset (opcija) su parametri bloka
t = nT + ofset
model moe sadrati diskretne blokove sa razliitim periodama odabiraa
modeli mogu biti sainjeni iskljuivo od diskretnih blokova
modeli mogu biti hibridni, sa pomeanim diskretnim i kontinualnim
blokovima
Linearizacija modela
funkcija linmod formira linearan vremenski kontinualan model na osnovu
Simulink 'model'-a
rez = linmod(model,x,u)
gde su:
ulazi i izlazi modela oznaeni ulaznim i izlaznim blokovima (iz
biblioteke veza meu blokovima)
x i u nominalne vrednosti promenljivih stanja i ulaza - radna taka oko
koje se vri linearizacija (mogu se izostaviti ako je radna taka u 0)
rez je dobijeni linearan model u nekoliko oblika:
*A,B,C,D+ = linmod(model,x,u)
[P, Q+ = linmod(model,x,u)
struktura = linmod(model,x,u)
kod vremenski diskretnih ili hibridnih modela upotrebljava se funkcija
dlinmod, sa dodatnim parametrom - vremenom odabiranja Ts
rez = dlinmod(model,Ts,x,u)
Linearlizacija modela - primer
[a, b, c, d] = linmod(model2bloka')
a = -2 -1 1
1 0 0
0 1 -1
b =1
0
0
c = 0 1 0
0 0 1
d =0
1
2
Outport1
1
s+1
Transfer Fcn2
1
Outport
1
s +2s+1
2
Transfer Fcn1
1
Inport
+
+
Sum
Linearlizacija modela primer 2
[a,b,c,d]=linmod('zad7blok');
tf(ss(a,b,c,d))
Transfer function:
17 s^3 + 76.5 s^2 + 204 s + 297.5
---------------------------------------------------------------------------------------
s^6 + 7.5 s^5 + 46.5 s^4 + 124.5 s^3 + 293.2 s^2 + 289.7 s + 315.8
1
Out1
-K-
G7
s+2.5
1
G6
s+1
s +2s+7
2
G5
s +s+2
2
2
G4
1.7
G3
s+2
10
G2
.5
G1
1
In1
Odreivanje stacionarnih taaka (trim)
Za zadate vrednosti ulaza (i promenljivih stanja) mogu se odrediti vrednosti
izlaza u ustaljenom stanju, i obrnuto
Za zadate vrednosti izlaza mogu se odrediti vrednosti ulaza, ili kombinacija ...
Primer
Odrediti vrednosti ulaza i promenljivih stanja koje na izlazu modela daju y=[1;1]
x = [0 0 0]'; u = 0; % poetno pogaanje promenljivih stanja i ulaza
y = [1;1]; % eljene vrednosti izlaza
ix = []; iu = []; % dozvoljene su promene vrednosti prom. stanja i ulaza
iy = [1;2]; % izlazi modela koji su fiksirani: 1. i 2.
[x, u, y, dx] = trim('model2bloka', x, u, y, ix, iu, iy)
x = 0.0000
1.0000
1.0000
u = 3.5135e-016
y = 1.0000
1.0000
dx = 1.0e-015 * 0
0.0800
0.2220
Primer - Amortizer
Nelinearan
model:
*t,x,y+=sim(AmortizerNelin',20,*+,*0 10; 10 10+);
plot(t,y)
3
80 ) ( , 5 , 10
) ( )) ( ( ) ( ) (
x x F c m
t f t x F t x c t x m
k
k


) (
80
) (
) (
) (
) ( ) (
3
1 2 2
2 1
t x
m
t x
m
c
m
t f
t x
t x t x

0 2 4 6 8 10 12 14 16 18 20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Odziv x(t) na pobudu 10h(t)
Primer Amortizer stacionarno stanje
Stacionarno stanje:
Upoc = 10; Xpoc = [1;1]; Ypoc = [1];
[Xnom, Unom, Ynom] = trim(AmortizerNelin', Xpoc, Upoc, Ypoc, [], 1, [])
Xnom= 0.5000
0.0000
Unom= 10
Ynom= 0.5000
f x
t f t x t x c t x m


3
3
80
) ( ) ( 80 ) ( ) (
Primer Amortizer - linearizacija
*a,b,c,d+ = linmod(AmortizerNelin, Xnom, Unom)
a = 0 1.0000
-6.0000 -0.5000
b =0
0.1000
c = 1 0
d =0
w = tf(ss(a,b,c,d))
Transfer function:
0.1
------------------
s^2 + 0.5 s + 6
) (

) ( 60 ) ( 5 ) ( 10
) (

) ( 240 ) ( ) (
5 . 0 10 , 80
) (

) ( 80 3 80 ) ( ) (
2
3
2 3
t f t x t x t x
t f t x x t x c t x m
x f f x
t f f t x x x t x c t x m







Linearizacija modela
Primer Amortizer - poreenje
Poreenje odziva linearnog i nelinearnog modela:
[y, t, x] = step(w, 25); % odziv na jedininu pobudu
UT = [0 Unom+1; 25 Unom+1]; % pobuda je ustaljeno stanje + 1 (jed.pobuda)
[tn, xn, yn+ = sim(AmortizerNelin, 25, simset('InitialState',Xnom), UT);
plot(t, y+Ynom, tn, yn)
0 5 10 15 20 25 30
0.5
0.505
0.51
0.515
0.52
0.525
0.53
0.535
Kako SIMULINK funkcionie
1. svi parametri blokova se izraunavaju u MATLAB-u i zamenjuju brojnim
vrednostima
2. blokovi se sortiraju prema redosledu raunanja
(hijerarhija podsistema se ovde ignorie)
3. proveravaju se dimenzije veza meu blokovima
(broj izlaza predhodnog se mora slagati sa brojem ulaza narednog bloka)
4. prva faza simulacije:
raunaju se izlazi svih blokova na osnovu (poetnih) stanja
5. druga faza simulacije:
iterativno se raunaju izvodi na osnovu tekudeg vremena, ulaza i stanja.
Izraunati izvodi se prosleuju algoritmu za integraciju
6. osveava se ekranski prikaz.

You might also like