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 Generator signala 2 Pojacanje Mux Multiplekser Graf pera u MAT LAB
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
Podržani su Pokretanje simulacije 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 Sources Sinks Discrete Linear NonlinearConnections Extras SIMULINK Block Library (Version 1.3c)
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 Signal Generator Sine Wave untitled.mat From File Random Number Signal S ource Library Digital Clock Repeating 1 Sequence Constant Step Input Band-Limi ted White Noise Chirp S ignal 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 Clock 12:34 [T,U] From Workspace Pulse Generator
grafički prozor za prikaz vremenske promene veličina - Scope, Graph, Auto-Scale Graph Blokovi izlaza (v4) 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 Scope Graph STOP Auto-S calestop S imulation Graph XY Gra ph yout To Workspace untitled.mat To File 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 Discrete-T ime Library 1/z Unit Delay 1 1+2z -1 Filter Zero-Order Hold (z-1) z(z-0.5) Discrete Zero-Pole diskretni integrator - Discrete-Time Integrator i integrator sa ograničavačem - Discrete-Time Limited Integrator 1 z+0.5 Discrete Transfer Fcn x(n+1)=ax(n)+bu(n) y(n)=cx(n)+du(n) Discrete S tate-space 1 z-1 First-Order Hold Discrete-T ime Discrete-T ime Integrator Limited 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 + Sum 1/s Integrator 1 Gain 1 Linear Library K Matrix Gain s+1 Transfer Fcn x' = Ax+Bu y = Cx+Du. Inner Product du/dt Derivative 1.04 Slider Gain (s-1) s(s+1) State-S pace Zero-Po le
Nelinearne komp. (v4) Nonlinear Library znak broja (1,0,-1) - Sign apsolutna vrednost - Abs Sign Relay Backlash proizvod - Product Quantizer Dead Zone Coulombic Friction funkcija - Fcn * Abs histerezis - Backlash Product Abs Look-Up Table zona neosetljivosti - Dead Zone >= AND ograničavač gradijenta - Relational Logical Combinatorial Rate Limiter Operator Operator Logic zavisnost izlaza od ulaza data f(u) system MATLAB Function 1/s tablicom - Look-Up Table Fcn S-Function MAT LAB Fcn zavisnost izlaza od dva ulaza data tablicom - 2-D Look-Up Table 1/s relej - Relay Memory Transport Variable Delay prekidač, izlaz se prebacuje kada srednji ulaz pređe preko Transport zadate Delay vrednosti (parametra) - Switch transportno kašnjenje - Transport Delay... Saturation Rate Limiter 2-D Look-Up Table Switch Reset Integrator Limited Integrator
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 Connections Library 1 Inport 1 Outport Mux Mux Demux Demux
Dodatni blokovi DEMOS Posebni blokovi (v4) 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,... Additional blocks using the mask utility (documented in release notes): Controllers Conversion Filters SIMULINK Demos System ID Block Library Most commonly used blocks Flip-Flops PID ControllersAnalyzers Blocks and demos which require toolboxes: Robust Control Demos MuTools Demos Neural Networks
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.
iz menija iz komandne linije - MATLAB-a Pokretanje simulacije 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 Step Input Step Input1 1 s+1 Transfer Fcn 1 s+1 Transfer Fcn1 Graph 1 Outport Step Input2 1 yout s+1 To Workspace 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 modela 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 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...
gear Osobine simulacionih algoritama - nastavak... 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 ) Van der Pol jednacina: X'' + ( X*X - 1 ) X' + X = 0 ili X1' = X1( 1 - X2*X2 ) - X2 X2' = X1 1 X2 1 - u * u (1-x2*x2) * - + X1' 1 s 1 s Scope X1
Poređenje metoda integracije (v4) tol=0.001 Metod Br. računanja izvoda Tačaka na izlazu Vremena rač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 referenca je rk45 sa tolerancijom od 1e-6 računato na PC486/33
Poređenje metoda integracije (v4) tol=0.1 Metod Br. računanja izvoda Tačaka na izlazu Vremena rač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 referenca je rk45 sa tolerancijom od 1e-6 računato na PC486/33
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 1 Inport + + Sum 1 s 2 +2s+1 Transfer Fcn1 1 2 Outport1 1 Outport d = 0 1 s+1 Transfer Fcn2
Linearlizacija modela primer 2 1 s+2.5 G6 1 In1.5 G1 10 s+2 G2 1.7 G3 2 s 2+s+2 G4 1 Out1 s+1 s 2+2s+7 G5 -K- G7» [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
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: mx ( t) cx ( t) F m 10, c 5, F k k ( x( t)) ( x) 80x 3 f ( t) x ( t) x 1 x 2 2 ( t) f ( t) ( t) m c m x 2 80 ( t) m x 3 1 ( t)» *t,x,y+=sim( AmortizerNelin',20,*+,*0 10; 10 10+);» plot(t,y) 0.8 Odziv x(t) na pobudu 10h(t) 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: mx ( t) cx ( t) 80x 3 ( t) f ( t) 80x 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,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 Linearizacija modela mx ˆ( t) cxˆ( t) 80x 3 80x xˆ( t) 3 80x f, f 10 x 0.5 2 mx ˆ( t) cxˆ( t) 240x xˆ( t) fˆ( t) 10 xˆ( t) 5xˆ( t) 60xˆ( t) fˆ( t) 3 2 f fˆ( t)
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.535 0.53 0.525 0.52 0.515 0.51 0.505 0.5 0 5 10 15 20 25 30
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.