SIMULINK MATLAB Softver za modeliranje, simulaciju i analizu inamičkih sistema
Uopšteno o SIMULINK-u SIMULINK-u •
•
•
•
upotrebljava se za simulaciju dinamike sistema (u grafičkom grafičkom okruženju) okruženju) mogu se analizirati linearni, nelinearni, vremenski kontinualni ili diskretni multivarijabilni sistemi sa koncentrisanim koncentrisanim parametrima radi kao proširenje MATLAB-a proširenje MATLAB-a –
dodaje osobine karakteristične inamičkim inamičkim sistemima sistemima
–
zaržava MATLAB-ovu zaržava MATLAB-ovu funkcionalnost
koristi se blok dijagram prozor kao glavni grafički 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 diferencijalnih jenačina jenačina prvog prvog reda
Upotreba SIMULINK-a •
upotrebljava se u dve faze –
formiranje formir anje simulacionog modela (Model-Based Design)
–
analiza modela - simulacije U praksi se primenjuju oba koraka koraka iterativno dok se ne dostignu željena ponašanja. Preporučuje se formiranje novog modela na osnovu postojedeg , početka” a”.. tj. ne treba raditi “ sve sve iz početk
Simulink proširenja •
Brojni harver i softver se oslanjaju/proširuju Simulink
•
Stateflow uvodi rad sa dijagramima stanja.
•
•
•
•
Real-Time Workshop 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 sistemima pruža okruženje za simulacije i testiranje Simulink i Stateflow modela u relanom vremenu na PC računarima. računarima. Poržane Poržane su i ruge brojne platforme (Infineon C166, Motorola 68HC12, Motorola MPC 555, TI C2000, TI C6000).
automatsko generisanje VHDL i Verilog-a. Simulink HDL Coder omogudava automatsko SimEvents oaje biblioteku grafičkih blokova za moelovanje reova čekanja. Pore vremenski zasnovanih (time-based ) simulacija dodaje i vremenski iskretne simulacije zasnovane na ogađajima (event-based ). ).
Formiranje Formiranje simulacionog modela •
upotrebljavaju se blokovi – blokovi – tipi tipična čna upotreba
•
formiranje formiranje modela poseda na poseda na crtanje blok-dijagrama
•
postoje biblioteke blokova
•
•
–
Standardna,, proširiva SIMULINK Standardna proširiva SIMULINK biblioteka
–
korisnikova biblioteka
blokovi se kopiraju iz biblioteke i povezuju vizuelno –
Ko složenih složenih moela blokov blokovii se mogu grupisati u hijerarhije
–
blokovi poseduju parametre parametre koji se postavl postavljaju jaju na željene željene vrednosti vrednosti
–
parametri blokova 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
Mux Generator signala
2 Pojacanje
Multiplekser
Graf pera u MAT LAB
Blokovi •
Veliki broj predefinisanih blokova organizovanih u grupe blokova –
•
•
Continuous and discrete dynamics blocks, sarže Integration, Unit Delay, ...
–
Algorithmic blocks, sarže Sum, Product, Lookup Table, ...
–
Structural blocks, sarže Mux, Switch, Bus Selector, ...
Blokovi se mogu prilagoiti (kastomizovati) ličnim potrebama i grupisati u vlastite biblioteke blokova Doatne grupe blokova onose MATLAB proširenja –
–
Za aerospace, communications, radio frequency, signal processing, video and image processing, ... Proširenja za moelovanje fizičkih sistema (mehaničkih, električnih, hiraulič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 ovlačenju (rag & rop) blokova iz bibliotreke u grafički editor i njihovom povezivanju linijama koje uspostavljaju matematičke relacije. Moel se može ureiti upotrebom operacija poput: copy, paste, undo, align, distribute, resize. Moel se može organizovati u nekoliko nivoa upotrebom hijerarhija podsistema i model referenci. –
–
•
Podsistem enkapsulira grupu blokova i signala u jedan blok Posistemu se može kreirati izgle tako a se prikazuje kao atomski (nedeljiv) blok sa svojom slikom (ikonom) i okvirom dijaloga za unos parametara bloka (maskom).
Pojeinačne komponente moela 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 posistema •
Tokom testiranja se mogu omoguditi/onemogučiti izvršavanja elova dizajniranog modela –
–
–
To se postiže upravljanjem logičkim signalima Logički signali pokredu izvršavanje posistema u preefinisanim trenucima ili zasnovano na ogađajima u sistemu Složena logika takvih signala se može realizovati upotrebom ijagrama stanja u alatu Stateflow®
Signali i parametri modela •
•
•
•
Mogu se efinisati atributi signala i parametri priruženi moelu Signali su vremenski promenljive vrednosti predstavljene linijama koje povezuju blokove Parametri su koeficijenti koji pomažu u efinsanju inamike 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 vrenost, inženjerske jeinice
Pokretanje simulacije •
•
•
Porž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 o Accelerator moda, ali sa manje interaktivnosti ge se izvršavanje ovija ovojeno o Simulink-a
Postoje MATLAB komane za učitavanje i procesiranje poataka moela, parametara i vizuelizaciju rezultata.
Solveri •
•
•
•
Solveri su numerički integracioni algoritmi koji računaju vremenske promene promenljivih stanja modela Poržane su simulacije brojnih tipova modela, poput: –
vremenski kontinualnih (analog),
–
vremenski diskretnih (digital),
–
hibridnih (mixed-signal), i
–
multirate sistema (sa više perioa oabiranja).
Solveri mogu simulirati stiff sisteme i sisteme sa diskretnim promenama stanja (diskontinuiteti, trenutne promene dinamike). Parametri simulacionog algoritma se mogu poešavati. Uključuju: –
Tip i osobine solvera
–
Početno i krajnje vreme simulacije
–
Da li se učitavaju ili snimaju simulacioni poaci?
–
Optimizacione i ijagnostičke informacije
–
Poešenja se mogu snimiti sa moelom
Primer formiranja moela inamič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
Sources
Sinks
Discrete
Linear
Nonlinear Connections Extras
SIMULINK Block Library (Version 1.3c)
Signal Source Library
Blokovi ulaza (v4)
12:34 Clock •
•
•
•
•
•
•
•
•
•
•
•
•
Digital Clock
Repeating
generator vremena - Clock Sequence 1 Constant generator diskretnog vremena - Digital clock Signal Generator generisanje vremenske funkcije tabelom koja Pulse Generator se perioično ponavlja - Repeating Sequence Si ne Wave Step Inpu t generator konstantne vrednosti - Constant [T,U] untitled.mat From generator signala: sinusni, četvrtke, trougaoni From Fil e Workspace Chirp Si gnal ili beli šum - Signal Generator generator impulsa - Pulse Generator Random Band-Limited generator sinusnog oblika - Sine Wave Number White Noise generator jeinič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
Blokovi izlaza (v4) •
•
•
•
•
•
grafički prozor za prikaz vremenske promene veličina - Scope, Graph, Auto-Scale Graph grafički prozor za prikaz promene jene veličine u zavisnosti o ruge - XY Graph smeštanje rezultata u MATLAB promenljivu - To Workspace
Signal Sinks Library
Scope
yout To Workspace untitled.mat
Graph
To File
STOP Auto-ScaleStop Sim ulation Graph
smeštanje rezultata u MAT atoteku - To File zaustavljanje simulacije (kada je ulaz u blok <>0) - Stop Simulation
XY Gra ph Hit Crossing
promena koraka integracije (obično pri pojavi iskontinuiteta) - Hit Crossing
Blokovi vremenski diskretnih sistema (v4) •
•
•
kašnjenje jene perioe oabiranja Unit Delay zadavanje linearnog model diskretnog sistema: –
–
•
1/z Unit Dela y 1 1+2z-1 Filter
digitalni filter - Filter –
•
Discrete-T im e Li brary
u prostoru stanja - Discrete State-Space preko polinoma funkcije prenosa Discrete Transfer Fcn preko nula i polova - Discrete Zero-Pole
prouživači signala –
nultog reda - Zero-Order Hold
–
prvog reda - First-Order Hold
(z-1) z(z-0.5) Discrete Zero-Pole 1 z+0.5 Discrete Transfer Fcn
x(n+1)=Ax(n)+Bu(n) y(n)=Cx(n)+Du(n) Discrete State-Space
Zero-Order Hold
First-Order Hold
1 z-1 Discrete-T im e Discrete-Time Integrator Lim ited Integrato
diskretni integrator - Discrete-Time Integrator i integrator sa ograničavačem Discrete-Time Limited Integrator
Blokovi linearnih sistema (v4) •
•
•
množač (unutrašnji proizvo 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
.
+ + Sum
sabirač - Sum
•
•
Line ar Library
Inner Product du/dt
1/s Integrator 1 Gain
Derivative K
1.04
Matrix Gain
Slider Gain
1 s+1 Transfer Fcn
(s-1) s(s+1) Zero-Pole
x' = Ax+Bu y = Cx+Du State-Space
Nelinearne komp. (v4) •
•
•
•
•
•
•
•
•
•
•
•
Nonl ine ar Library
Relay Backlash Saturation Sign znak broja (1,0,-1) - Sign apsolutna vrednost - Abs Quantizer Dead Zone Coulombic Rate Li miter proizvod - Product Friction funkcija - Fcn * Abs Product Abs Look-Up 2-D Look-Up histerezis - Backlash Table Table zona neosetljivosti - Dead Zone >= AND ograničavač graijenta Relational Logical Combinatorial Switch Operator Operator Logic Rate Limiter MATLAB zavisnost izlaza od ulaza data f(u) system 1/s Function tablicom - Look-Up Table Fcn S-Function MAT LAB Fcn Reset Integrator zavisnost izlaza od dva ulaza data tablicom - 2-D Look-Up Table 1/s relej - Relay Memory Transport Limited Variable Delay Transport Del ayIntegrator prekiač, izlaz se prebacuje kaa srenji ulaz pređe preko zaate vrenosti (parametra) - Switch transportno kašnjenje - Transport Delay ...
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 (uvoi kašnjenje o jenog 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
Connections Library 1 Inport 1 Outport Mux Mux Demux Demux
Dodatni blokovi DEMOS Posebni blokovi (v4) •
•
•
•
•
SIMULINK Demos
primeri Flip-Flop-ovi: Latch, SR, D, JK
Most comm only used blocks
Additi onal blo cks using the m ask utili ty (docume nted in release notes):
kontroleri i PID kontroleri
Conversion
niskopropusni, visokopropusni i pojasni filtri analiza signala: auto i kros korelacija, spektar, spektar snage
Block Library
Flip-Flops PID ControllersAnalyzers
Blocks and demos which require toolboxes:
Controllers
Filters
System ID
Robust Control Demos
MuTools Demos
Neural Networks
•
prevođenje koorinata između polarnog i Dekartovog koorinatnog sistema
•
blokovi drugih Toolbox -ova –
identifikaciju sistema
–
veštačke neuronske mreže
–
analizu robustnosti sistema, ...
Analiza modela •
ugrađeni su brojni alati za analizu moela –
različiti simulacioni algoritmi
–
formiranje linearnog modela sistema (linearizacija modela)
–
nalaženje stacionarnih stanja
•
tok simulacije se može pratiti tokom njenog raa
•
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 moel 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 moela obično zavisi o faze razvoja moela.
Analiza modela - Simulacija •
simulacija uključuje numeričku integraciju skupa diferencijalnih jenačina
•
postoji nekoliko algoritama za integraciju: –
sa promenljivim korakom integracije
–
sa fiksnim korakom integracije
Zbog razlika u inamič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’,,,UT, p1, p2, …) •
se zadaje na jedan od načina: –
TFinal,
–
[TStart TFinal], ili
–
[TStart OutputTimes TFinal].
•
se postavlja upotrebom simset
•
UT = [T, U1, ... Un]
Primeri: sim(‘moel',tfinal) *t,x,y+=sim(‘moel',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, ge pojeini parametri imaju porazumevane vrenosti *t,x,y+ = linsim( ‘model’, tfinal );
Izlazi modela - prikaz rezultata 1.
Označavanje izlaza blokom za izlaz moela -
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
1 Step Input
s+1 Transfer Fcn 1
Step Input1
s+1 Transfer Fcn1 1
Graph 1 Outport
yout s+1 To Workspace Step Input2 Transfer Fcn2
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 moela se mogu očitati pomodu [sizes,x0] = model sizes su podaci u modelu: broj ulaza, izlaza, ...
Algebarske petlje 1 Constant
•
•
•
•
+ Sum
1 Gain
x To Workspace
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
Interpolacija podataka •
potrebna je zbog promenljivog koraka integracije
•
obijaju se neekviistantne tačke koje se teško upoređuju
•
•
MATLAB-ove funkcije za interpolaciju podataka procenjuju vrednosti u vremenskim trenucima različitim o 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, moelima preko nula i polova, sabiračima i pojač. može se upotrebiti i za sisteme koji sarže nelinearne elemente, ali ako su sastavljeni pretežno o 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 obar za “mešane” kontinualne i iskretne sisteme loš za stiff sisteme –
–
–
...
Osobine simulacionih algoritama - nastavak ... •
gear –
obar za nelinearne i “glatke” sisteme
–
dizajniran za stiff sisteme, a manje je efikasan za ostale
–
•
adams –
–
•
loš za sisteme sa singularitetima i brzim poremedajima i promenema na ulazima
obar 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 )
Van der Pol j ednacina: X'' + ( X*X - 1 ) X' + X = 0
1
ili
(1-x2*x2)
*
X2' = X1
X2
1-u*u
X1' = X1( 1 - X2*X2 ) - X2
+
X1'
1
1
s
s Scope
X1
Poređenje metoda integracije (v4) Metod
tol =0.001
Br. računanja izvoda
Tačaka na izlazu
Vremena računanja
(po tački)
144
136
1,37
0,0051
316
89
1,50
0,0023
rk45
204
35
1
0,0041
adams
270
55
1,51
0,0019
336
65
1,91
0,0048
365
366
3,03
0,2881
linsim rk23
gear
euler
referenca je rk45 sa tolerancijom od 1e-6
računato na PC486/33
Greška
Poređenje metoda integracije (v4) Metod
tol =0.1
Br. računanja izvoda
Tačaka na izlazu
Vremena računanja
(po tački)
linsim
77
74
2.38
0.0326
rk23
86
23
1.29
0.3730
140
21
1.46
0.8811
116
34
2.69
0.1005
181
48
4.17
0.2319
33
34
1
1.5835
rk45
adams gear euler
referenca je rk45 sa tolerancijom od 1e-6
računato na PC486/33
Greška
Vremenski diskretni modeli u Simulink-u •
sarže iskretne blokove –
svaki blok ima “ugrađene”: •
oabirač na ulazu i
•
prouživač signala 0-tog reda na izlazu
–
ulazi se osvežavaju (računaju) samo u trenucima oabiranja
–
izlati imaju stalnu vrenost između va trenutka oabiranja
–
vreme odabiranja i ofset (opcija) su parametri bloka t = n·T + ofset
•
moel može saržati iskretne blokove sa različitim perioama oabirača
•
moeli mogu biti sačinjeni isključivo o iskretnih blokova
•
modeli mogu biti hibridni, sa pomešanim iskretnim 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 moela označeni “ulaznim” i “izlaznim” blokovima (iz biblioteke veza među blokovima) x i u nominalne vrednosti promenljivih stanja i ulaza - rana tačka oko koje se vrši linearizacija (mogu se izostaviti ako je rana 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] = linmo(‘model2bloka') a = -2 -1 1 1 0 0 0 1 -1 b =1 0 0
2 Outport1
1 Inport
c=0 1 0 0 0 1 d =0 1
+ + Sum
1 s2+2s+1
Transfer Fcn1 1 s+1 Transfer Fcn2
1 Outport
Linearlizacija modela – primer 2 1 s+2.5 G6 1 In1
.5
10
2
1.7
s2 +s+2
s+2 G1
G2
G3
G4 s+1 s2 +2s+7 G5
-KG7
» [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
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
y = 1.0000 1.0000 dx = 1.0e-015 *
u = 3.5135e-016
0 0.0800 0.2220
Primer - Amortizer •
Nelinearan model:
x1 (t ) x2 (t )
(t ) c x (t ) F k ( x(t )) f (t ) m x m 10,c 5, F k ( x) 80 x 3
x2 (t )
f (t ) m
c m
x2 (t )
80 m
x13 (t )
» *t,x,y+=sim(‘AmortizerNelin',20,*+,*0 10; 10 10+); » plot(t,y)
Odziv x(t) na pobudu 10h(t) 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
0
2
4
6
8
10
12
14
16
18
20
Primer Amortizer – stacionarno stanje Stacionarno stanje:
(t ) c x (t ) 80 x 3 (t ) f (t ) m x 80 x 3
f
» 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
Primer Amortizer - linearizacija » *a,b,c,+ = linmo(‘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:
Linearizacija modela (t ) c x (t ) 80 x 3 3 80 x 2 x(t ) f f (t ) m x ˆ
0.1 -----------------s^2 + 0.5 s + 6
ˆ
80 x 3
ˆ
f ,
ˆ
f 10 x
0.5
(t ) c x (t ) 240 x 2 x(t ) f (t ) m x ˆ
ˆ
ˆ
ˆ
(t ) 5 x (t ) 60 x(t ) f (t ) 10 x ˆ
ˆ
ˆ
ˆ
Primer Amortizer - poređenje Poređenje odziva linearnog i nelinearnog modela: » [y, t, x] = step(w, 25);
% odziv na jediničnu pobuu
» 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.535
0.53
0.525
0.52
0.515
0.51
0.505
0.5
0
5
10
15
20
25
30