simulink - · pdf filemultivarijabilni sistemi sa koncentrisanim parametrima • radi kao...
TRANSCRIPT
SIMULINK
MATLAB
Softver za modeliranje, simulaciju i analizu dinamičkih sistema
Uopšteno o SIMULINK-u
• upotrebljava se za simulaciju dinamike sistema (u grafičkom okruženju)
• mogu se analizirati linearni, nelinearni, vremenski kontinualni ili diskretni multivarijabilni sistemi sa koncentrisanim parametrima
• radi kao proširenje MATLAB-a
– dodaje osobine karakteristične dinamičkim sistemima
– zadržava MATLAB-ovu funkcionalnost
• koristi se blok dijagram prozor kao glavni grafički alat
– model se formira kao blok dijagram upotrebom miša
• simulacija se ostvaruje upotrebom SIMULINK funkcija za numeričko rešavanje običnih diferencijalnih jednačina prvog reda
Upotreba SIMULINK-a
• upotrebljava se u dve faze
– formiranje simulacionog modela (Model-Based Design)
– analiza modela - simulacije U praksi se primenjuju oba koraka iterativno dok se ne dostignu željena ponašanja. Preporučuje se formiranje novog modela na osnovu postojedeg, tj. ne treba raditi “sve iz početka”.
Simulink proširenja
• Brojni hardver i softver se oslanjaju/proširuju Simulink
• Stateflow uvodi rad sa dijagramima stanja.
• Real-Time Workshop generiše C kod za real-time implementacije sistema u proizvodnji, dizajn embedded system-a.
• xPC Target zajedno sa x86-zasnovanim real-time sistemima pruža okruženje za simulacije i testiranje Simulink i Stateflow modela u relanom vremenu na PC računarima. Podržane su i druge brojne platforme (Infineon C166, Motorola 68HC12, Motorola MPC 555, TI C2000, TI C6000).
• Simulink HDL Coder omogudava automatsko generisanje VHDL i Verilog-a.
• SimEvents dodaje biblioteku grafičkih blokova za modelovanje redova čekanja. Pored vremenski zasnovanih (time-based) simulacija dodaje i vremenski diskretne simulacije zasnovane na događajima (event-based).
Formiranje simulacionog modela
• upotrebljavaju se blokovi – tipična upotreba
• formiranje modela podseda na crtanje blok-dijagrama
• postoje biblioteke blokova
– Standardna, proširiva SIMULINK biblioteka
– korisnikova biblioteka
• blokovi se kopiraju iz biblioteke i povezuju vizuelno
– Kod složenih modela blokovi se mogu grupisati u hijerarhije
– blokovi poseduju parametre koji se postavljaju na željene vrednosti
– parametri blokova se mogu menjati i u toku simulacije
• programski interfejs (API) omogudava povezivanje sa proširenjima (simulacionim programima) i pisanje MATLAB koda.
Primer modela
Simulink okruženje
Primer jednostavnog modela
Generatorsignala 2
Pojacanje
Mux
Multiplekser
pera
u MAT LAB
Graf
Blokovi
• Veliki broj predefinisanih blokova organizovanih u grupe blokova
– Continuous and discrete dynamics blocks, sadrže Integration, Unit Delay, ...
– Algorithmic blocks, sadrže Sum, Product, Lookup Table, ...
– Structural blocks, sadrže Mux, Switch, Bus Selector, ...
• Blokovi se mogu prilagoditi (kastomizovati) ličnim potrebama i grupisati u vlastite biblioteke blokova
• Dodatne grupe blokova donose MATLAB proširenja
– Za aerospace, communications, radio frequency, signal processing, video and image processing, ...
– Proširenja za modelovanje fizičkih sistema (mehaničkih, električnih, hidrauličnih komponenti): Simscape™, SimDriveline™, SimHydraulics®, SimMechanics™, SimPowerSystems™.
Kontinualni i Diskontinualni blokovi
Blokovi Ulaza (izvora) i Izlaza (ponora)
Matematičke operacije
Rutiranje signala, Korisnikove f-je, Logičke i bit op.
Izgradnja modela
• Zasniva se na dovlačenju (drag & drop) blokova iz bibliotreke u grafički editor i njihovom povezivanju linijama koje uspostavljaju matematičke relacije.
• Model se može urediti upotrebom operacija poput: copy, paste, undo, align, distribute, resize.
• Model se može organizovati u nekoliko nivoa upotrebom hijerarhija podsistema i model referenci.
– Podsistem enkapsulira grupu blokova i signala u jedan blok
– Podsistemu se može kreirati izgled tako da se prikazuje kao atomski (nedeljiv) blok sa svojom slikom (ikonom) i okvirom dijaloga za unos parametara bloka (maskom).
• Pojedinačne komponente modela se mogu nezavisno simulirati, verifikovati, snimati u biblioteke
– komponente/podsistemi se mogu referencirati u modelima gde su upotrebljene
– Biblioteke su kompatibilne sa configuration management sistemima, poput CVS, ClearCase, ...
Uslovno izvršavanje podsistema
• Tokom testiranja se mogu omoguditi/onemogučiti izvršavanja delova dizajniranog modela
– To se postiže upravljanjem logičkim signalima
– Logički signali pokredu izvršavanje podsistema u predefinisanim trenucima ili zasnovano na događajima u sistemu
– Složena logika takvih signala se može realizovati upotrebom dijagrama stanja u alatu Stateflow®
Signali i parametri modela
• Mogu se definisati atributi signala i parametri pridruženi modelu
• Signali su vremenski promenljive vrednosti predstavljene linijama koje povezuju blokove
• Parametri su koeficijenti koji pomažu u definsanju dinamike i ponašanja sistema
• Atributi signala i parametara se mogu direktno postaviti na dijagramu modela ili u posebnom data dictionary
– Model Explorer omogudava uređenje data dictionary-ja
• Atributi signala i parametara:
– Tip podatka — single, double, signed or unsigned 8-, 16- or 32-bit integers; Boolean; fixed-point
– Dimenzionlanost — scalar, vector, matrix, or N-D arrays
– Realna ili kompleksna vrednost
– Min i max opseg, početna vrednost, inženjerske jedinice
Pokretanje simulacije
• Podržani su
– fixed-step and variable-step solveri,
– grafički debugger,
– model profiler.
• Simulacije se mogu pokretati
– interaktivno upotrebom Simulink GUI ili
– iz MATLAB komandne linije (m-datoteka)
• Modovi simulacija su:
– Normalan (podrazumevan) – model se interpretira
– Accelerator – ubrzava simulaciju kompajliranjem koda i dozvoljavanjem izmena parametara modela (blokova)
– Rapid Accelerator – brži od Accelerator moda, ali sa manje interaktivnosti gde se izvršavanje odvija odvojeno od Simulink-a
• Postoje MATLAB komande za učitavanje i procesiranje podataka modela, parametara i vizuelizaciju rezultata.
Solveri
• Solveri su numerički integracioni algoritmi koji računaju vremenske promene promenljivih stanja modela
• Podržane su simulacije brojnih tipova modela, poput:
– vremenski kontinualnih (analog),
– vremenski diskretnih (digital),
– hibridnih (mixed-signal), i
– multirate sistema (sa više perioda odabiranja).
• Solveri mogu simulirati stiff sisteme i sisteme sa diskretnim promenama stanja (diskontinuiteti, trenutne promene dinamike).
• Parametri simulacionog algoritma se mogu podešavati. Uključuju:
– Tip i osobine solvera
– Početno i krajnje vreme simulacije
– Da li se učitavaju ili snimaju simulacioni podaci?
– Optimizacione i dijagnostičke informacije
– Podešenja se mogu snimiti sa modelom
Primer formiranja modela dinamičkog sistema
Primer
Pojedini podsistemi primera
Pregled rezultata simulacije primera
Osnovne grupe blokova (v4)
• ulazi - Sources
• izlazi - Sinks
• diskretni sistemi - Discrete
• linearni sistemi - Linear
• nelinearni sistemi - Nonlinear
• veze između blokova - Connections
• dodatni blokovi - Extras
Linear Connections
SIMULINK Block Library (Version 1.3c)
ExtrasSources Discrete NonlinearSinks
Blokovi ulaza (v4)
• generator vremena - Clock
• generator diskretnog vremena - Digital clock
• generisanje vremenske funkcije tabelom koja se periodično 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 jedinične 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 slučajnih brojeva - Random Number
• generator ograničenog belog šuma - Band-Limited White Noise
Signal Source Library
RandomNumber
Chirp Signal
RepeatingSequence
Band-Limi tedWhite Noise
SignalGenerator
1
Constant
Sine Wave Step Input
untitled.mat
From File
[T,U]
FromWorkspace
12:34
Digital ClockClock
PulseGenerator
Blokovi izlaza (v4)
• grafički prozor za prikaz vremenske promene veličina - Scope, Graph, Auto-Scale Graph
• grafički prozor za prikaz promene jedne veličine u zavisnosti od druge - XY Graph
• smeštanje rezultata u MATLAB promenljivu - To Workspace
• smeštanje rezultata u MAT datoteku - To File
• zaustavljanje simulacije (kada je ulaz u blok <>0) - Stop Simulation
• promena koraka integracije (obično pri pojavi diskontinuiteta) - Hit Crossing
Signal Sinks Library
STOP
Stop Simulation
XY Graph
Graph
yout
To Workspace
untitled.mat
To File
Scope
Auto-ScaleGraph
Hit Crossing
Blokovi vremenski diskretnih sistema (v4)
• kašnjenje 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
• produživači signala
– nultog reda - Zero-Order Hold
– prvog reda - First-Order Hold
• diskretni integrator - Discrete-Time Integrator i integrator sa ograničavačem - Discrete-Time Limited Integrator
Zero-OrderHold
(z-1)
z(z-0.5)
DiscreteZero-Pole
1/z
Unit Delay
1
1+2z -1
Filter
1
z+0.5
DiscreteTransfer Fcn
y(n)=Cx(n)+Du(n)x(n+1)=Ax(n)+Bu(n)
Discrete State-Space
Discrete-T ime Library
1
z-1
Discrete-T imeIntegrator
First-OrderHold
Discrete-T imeLimited Integrator
Blokovi linearnih sistema (v4)
• sabirač - Sum
• množač (unutrašnji proizvod vektora) - Inner Product
• Integrator
• diferencijator - Derivative
• pojačavač - Gain
• matrični pojačavač - Matrix Gain
• klizač kao pojačavač - Slider Gain
• zadavanje linearnog kontinualnog modela sistema:
– u prostoru stanja - State-Space
– preko polinoma funkcije prenosa - Transfer Fcn
– preko nula i polova - Zero-Pole
Linear Library
.
InnerProduct
++
Sum
1/s
Integrator
du/dt
Derivative
1
s+1
Transfer Fcn
(s-1)
s(s+1)
Zero-Po le
1
Gain
K
MatrixGain
1.04
SliderGain
x' = Ax+Bu y = Cx+Du
State-Space
Nelinearne komp. (v4)
• znak broja (1,0,-1) - Sign
• apsolutna vrednost - Abs
• proizvod - Product
• funkcija - Fcn
• histerezis - Backlash
• zona neosetljivosti - Dead Zone
• ograničavač 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 pređe preko zadate vrednosti (parametra) - Switch
• transportno kašnjenje - Transport Delay ...
Nonlinear Library
Rate Limiter
Saturation
Dead Zone
Backlash
CoulombicFriction
Quantizer
RelaySign
2-D Look-UpTable
Look-UpTable
Abs
Abs
*
Product
SwitchCombinatorial
Logic
AND
LogicalOperator
>=
RelationalOperator
system
S-Function
MATLABFunction
MAT LAB Fcn
1/s
ResetIntegrator
f(u)
Fcn
VariableTransport Delay
TransportDelay
Memory
1/s
LimitedIntegrator
Nelinearne komponente - nastavak
• promenljivo transportno kašnjenje - Variable Transport Delay
• funkcija MATLAB-a - MATLAB Fcn
• S-Function
• diskretizovanje ulaza - Quantizer
• statičko trenje - Coulombic Friction
• relacioni operator - Relational Operator
• logički operator - Logical Operator
• kombinatorno logičko kolo - Combinatiorial Logic
• memorija (uvodi kašnjenje od jednog koraka integracije) - Memory
• integrator sa ograničavačem - Limited Integrator
Blokovi za veze (v4)
• 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
LibraryConnections
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
• prevođenje koordinata između polarnog i Dekartovog koordinatnog sistema
• blokovi drugih Toolbox-ova
– identifikaciju sistema
– veštačke neuronske mreže
– analizu robustnosti sistema, ...
MuToolsDemos
RobustControlDemos
System IDControllers
Additional blocks using the mask uti l i ty (documented in release notes):
Fi l ters
BlockLibrary
Most commonlyused blocks
DEMOS
SIMULINKDemos
Blocks and demos which require toolboxes:
Conversion Flip-Flops PID ControllersAnalyzers
NeuralNetworks
Posebni blokovi (v4)
Analiza modela
• ugrađeni su brojni alati za analizu modela
– različiti simulacioni algoritmi
– formiranje linearnog modela sistema (linearizacija modela)
– nalaženje stacionarnih stanja
• tok simulacije se može pratiti tokom njenog rada
• krajnji rezultati se mogu preneti u MATLAB-ovo okruženje
Analiza modela – načini upotrebe
1. potpuno interaktivan rad
– komande se zadaju iz menija
– rezultati se posmatraju u grafičkim prozorima Simulink-a
2. pokretanje simulacije iz MATLAB-a
– model se može 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 opiše programski – S-funkcijom
– postoji blok S-Function
Ne postoji jasna granica izmeđe upotrebe ova tri načina, tj. načini se međusobno preklapaju.
Način analize modela obično zavisi od faze razvoja modela.
Analiza modela - Simulacija
• simulacija uključuje numeričku integraciju skupa diferencijalnih jednačina
• postoji nekoliko algoritama za integraciju:
– sa promenljivim korakom integracije
– sa fiksnim korakom integracije
Zbog razlika u dinamičkom ponašanju različitih sistema, ni jedan algoritam ne garantuje da de za svaki model davati tačne i efikasne (brze) rezulatate.
Za dobijanje tačnih rezultata treba požljivo 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 početna stanja
• formirati “spoljašnji” ulazi preko dodatne promenljive ut
• 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 početka 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 (v7)
*t,x,y+ = sim(‘model’,<TIMESPAN>,<OPTIONS>,UT, p1, p2, …)
• <TIMESPAN> se zadaje na jedan od načina:
– 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'))
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 );
Izlazi modela - prikaz rezultata
1. Označavanje izlaza blokom za izlaz modela
- prenos vrednosti kao izlaza modela u MATLAB
- Prenos vrednosti kao ulaz u druge Simulink blokove
2. Grafički prikaz trajektorije pomodu Graph blokova
3. Prenos vrednosti u MATLAB pomodu “To Workspace” bloka
4. Zapis u datoteku - “To File” blok
Graph
1
OutportStep Input1
Step Input
1
s+1
Transfer Fcn
1
s+1
Transfer Fcn1
Step Input2
1
s+1
Transfer Fcn2
yout
To Workspace
Početna stanja
• primenjuju se u trenutku tstart
• nalaze se u samim blokovima
• mogu se postaviti (promeniti) iz komandne linije [t,x,y] = sim(‘model',tfinal,simset('initialstate',x0)) %v7 [t,x,y] = linsim( ‘model’, tfinal, x0 ) %v4
• početna stanja postojedeg modela se mogu očitati pomodu [sizes,x0] = model sizes su podaci u modelu: broj ulaza, izlaza, ...
Algebarske petlje
• algebarske ili implicitne petlje se javljaju kada dva ili više blokova imaju direktan prenos svojih ulaza i formiraju povratnu spregu
• rešavaju se iterativno (u najviše 200 iteracija Newton-Raphson tehnikom)
• znatno umanjuju brzinu simulacije i treba ih izbegavati
• javljaju se kod:
– blokova sa pojačanjima
– 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
Gain
1
Constant
+-
Sum
Interpolacija podataka
• potrebna je zbog promenljivog koraka integracije
• dobijaju se neekvidistantne tačke koje se teško upoređuju
• MATLAB-ove funkcije za interpolaciju podataka procenjuju vrednosti u vremenskim trenucima različitim od poznatih
• metode:
– linearna interpolacija yint = table1( [ t, y ], tint )
– interpolacija polinomom (1-D biharmonična 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, sabiračima i pojač.
– može se upotrebiti i za sisteme koji sadrže nelinearne elemente, ali ako su sastavljeni pretežno 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 “mešane” 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) Scopes
1
s
1
*
i l iX'' + ( X*X - 1 ) X' + X = 0
Van der Pol jednacina:
1
-
+
X1'
X2' = X1
X1
X2
Poređenje metoda integracije (v4) tol=0.001
referenca je rk45 sa tolerancijom od 1e-6
računato na PC486/33
Metod Br. računanjaizvoda
Tačaka naizlazu
Vremenaračunanja
Greška(po tački)
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
Poređenje metoda integracije (v4) tol=0.1
referenca je rk45 sa tolerancijom od 1e-6
računato na PC486/33
Metod Br. računanjaizvoda
Tačaka naizlazu
Vremenaračunanja
Greška(po tački)
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
• sadrže diskretne blokove
– svaki blok ima “ugrađene”:
• odabirač na ulazu i
• produživač signala 0-tog reda na izlazu
– ulazi se osvežavaju (računaju) samo u trenucima odabiranja
– izlati imaju stalnu vrednost između dva trenutka odabiranja
– vreme odabiranja i ofset (opcija) su parametri bloka t = n·T + ofset
• model može sadržati diskretne blokove sa različitim periodama odabirača
• modeli mogu biti sačinjeni isključivo od diskretnih blokova
• modeli mogu biti hibridni, sa pomešanim 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 označeni “ulaznim” i “izlaznim” blokovima (iz biblioteke veza među blokovima)
– x i u nominalne vrednosti promenljivih stanja i ulaza - radna tačka oko koje se vrši linearizacija (mogu se izostaviti ako je radna tačka 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+72
G5
s +s+22
2
G4
1.7
G3
s+2
10
G2
.5
G1
1
In1
Određivanje stacionarnih tačaka (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; % početno pogađanje 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)
380)(,5,10
)())(()()(
xxFcm
tftxFtxctxm
k
k
)(80
)()(
)(
)()(
3
122
21
txm
txm
c
m
tftx
txtx
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8Odziv 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
fx
tftxtxctxm
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.010,80
)(ˆ)(ˆ80380)(ˆ)(ˆ
2
3
23
tftxtxtx
tftxxtxctxm
xffx
tfftxxxtxctxm
Linearizacija modela
Primer Amortizer - poređenje
Poređenje odziva linearnog i nelinearnog modela:
» [y, t, x] = step(w, 25); % odziv na jediničnu 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 300.5
0.505
0.51
0.515
0.52
0.525
0.53
0.535
Kako SIMULINK funkcioniše
1. svi parametri blokova se izračunavaju u MATLAB-u i zamenjuju brojnim vrednostima
2. blokovi se sortiraju prema redosledu računanja (hijerarhija podsistema se ovde ignoriše)
3. proveravaju se dimenzije veza među blokovima (broj izlaza predhodnog se mora slagati sa brojem ulaza narednog bloka)
4. prva faza simulacije: računaju se izlazi svih blokova na osnovu (početnih) stanja
5. druga faza simulacije: iterativno se računaju izvodi na osnovu tekudeg vremena, ulaza i stanja. Izračunati izvodi se prosleđuju algoritmu za integraciju
6. osvežava se ekranski prikaz.