MATLAB OKTATÁS 6. ELŐADÁS SIMULINK ALAPOK JÁRMŰMÉRNÖKI ALKALMAZÁSSAL. Dr. Bécsi Tamás Hegedüs Ferenc

Hasonló dokumentumok
Mechatronika segédlet 10. gyakorlat

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

Mechatronika segédlet 11. gyakorlat

Hurokegyenlet alakja, ha az áram irányával megegyező feszültségeséseket tekintjük pozitívnak:

Forgattyús mechanizmus modelljének. Adams. elkészítése, kinematikai vizsgálata,

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Nyolcbites számláló mintaprojekt

Dinamikus modellek szerkezete, SDG modellek

Négycsuklós mechanizmus modelljének. Adams. elkészítése, kinematikai vizsgálata,

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

MATLAB OKTATÁS 5. ELŐADÁS FELTÉTEL NÉLKÜLI ÉS FELTÉTELES OPTIMALIZÁLÁS. Dr. Bécsi Tamás Hegedüs Ferenc

Matlab Fuzzy Logic Toolbox

FIR és IIR szűrők tervezése digitális jelfeldolgozás területén

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Soros felépítésű folytonos PID szabályozó

Adatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com

Yottacontrol I/O modulok beállítási segédlet

Forrás és idéző közlemények felvitele importtal

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Ügyfélforgalom számlálás modul

MICROCAP PROGRAMRENDSZER HASZNÁLATA

ArchiPHYSIK AutoCAD Architecture kapcsolat használata

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Logikai hálózatok szimulációja a MATLAB/SIMULINK alkalmazásával

BASH SCRIPT SHELL JEGYZETEK

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 7.

BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató

M-Fájlok létrehozása MATLAB-ban

Táblázatkezelés Excel XP-vel. Tanmenet

Másodlagos adatok beszerzése és külső adattábla csatolása ArcGIS 10-ben

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Webcasting Editor Felhasználói kézikönyv és bemutató. A kapott Url -el valamint a kiadott felhasználónév jelszó párossal belépünk:

Teljesítményértékelések eredményeinek rögzítése a Neptun Egységes Tanulmányi Rendszerben

HÍRLEVÉL HASZNÁLATI ÚTMUTATÓ

DOAS data export. DOAS data export Budapest, Egressy út Telefon: ; fax: DOAS_data_export_v01.

2. Gyakorlat Khoros Cantata

Csatlakozás a végeselem modulhoz SolidWorks-ben

DebitTray program Leírás

Laborsegédlet 3. Labor

Felhasználói segédlet a Web of Knowledge / Web of Science adatbázis használatához

E-Freight beállítási segédlet

MATLAB alapismeretek I.

1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói

Mérnöki programozás 8. Szerkesztette: dr. Vass Péter Tamás

ContractTray program Leírás

"Eseményekre imm/connection Server scriptek futtatása

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

ONLINE SZAKÉRTŐI KERETRENDSZER

PC kártya és a szoftver telepítése, indítása után ( ID, jelszó : admin, admin)

Thermo1 Graph. Felhasználói segédlet

MATLAB OKTATÁS 4. ELŐADÁS LINEÁRIS, NEMLINEÁRIS ÉS DIFFERENCIÁL- EGYENLETRENDSZEREK MEGOLDÁSA. Dr. Bécsi Tamás Hegedüs Ferenc

ODE SOLVER-ek használata a MATLAB-ban

INGATLANVAGYON-KATASZTER SZAKRENDSZER

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

ServiceTray program Leírás

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Matematikai programok

Kó dgenerá lá s e s GUI fejleszte s Mátláb- Simulink kó rnyezetben

Építésügyi Monitoring Rendszer (ÉMO) komplex működését biztosító településrendezési tervek digitalizálása EKOP /B kiemelt projekt megvalósítása

CareLink Personal telepítési útmutató. Első lépések a CareLink Personal adatfeltöltéshez

A számok kiíratásának formátuma

HASZNÁLATI ÚTMUTATÓ. Készletérték feladás modul

Sú gó az ASIR/PA IR Públikús felú lethez

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Matematika (mesterképzés)

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Az FMH weboldal megnyitásakor megjelenő angol nyelvű üzenetek eltüntetése

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

Annak a function-nak a neve, amiben letároltuk az egyenletünket.

Bérprogram és az abevjava kapcsolata

(ArcCatalog, ArcMap)

GoodBill számlázó és kintlévőség menedzselő rendszer

Táblázatkezelés Excel XP-vel. Tanmenet

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Felhasználói segédlet a Scopus adatbázis használatához

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

Alapok (a K2D rendszer alapjai)

Bonded és No Separation

Microsoft Excel 2010

Kézikönyv. BAB űrlap

Felhasználói segédlet a Scopus adatbázis használatához

FELHASZNÁLÓI ÚTMUTATÓ

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

A ChipScope logikai analizátor

Mechatronika II (BMEGEFOAMM2)

1/9. Sunell IP kamerák webes felületének használati útmutatója. Élő kép (Live Video)

QGIS GRASS beépülő modul és GRASS GIS 7.0 (beta1 verzió) Hidrológiai analízis segédlet

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

KUTATÁSTÁMOGATÁS SOROZAT. Felhasználói segédlet Academic Search Complete adatbázisban idézők kereséséhez

Az MS Excel táblázatkezelés modul részletes tematika listája

Irányítástechnika 2. előadás

Változáskezelés Verzió Dátum Változás Pont Cím Oldal Kiadás: Verzió: 2.0. Oldalszám: 2 / 7

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

Ismerkedés az új felülettel

Cikk előkalkuláció - Művelet - Egyéb fix és változó költségek

Mechatronika II (BMEGEFOAMM2)

Készlet nyilvántartó

Átírás:

MATLAB OKTATÁS 6. ELŐADÁS SIMULINK ALAPOK JÁRMŰMÉRNÖKI ALKALMAZÁSSAL Dr. Bécsi Tamás Hegedüs Ferenc

FIZIKAI MODELL sl/vehslin_param.m Egy nyomvonalú lineáris járműmodell (biciklimodell). Az első és hátsó tengelyeken lévő kerékpárokat egy-egy virtuális kerékkel reprezentálja. A jármű tömegközéppontjának helye időben állandó. A jármű hosszirányú sebessége állandó. A járműváz síkbeli merev test, három szabadságfokkal: x hosszirányú (x-irányú) elmozdulás y oldalirányú (y-irányú) elmozdulás ψ függőleges tengely körüli (z-irányú) elfordulás A modell paraméterei: v hosszirányú sebesség m tömeg J tehetetlenségi nyomaték a z-tengely körül l f, l r az első és hátsó tengely és a tömegközéppont vízszintes távolsága c f, c r az első és hátsó tengelyek kanyarmerevsége A modell bemenete: δ kormányszög az első keréken A modell kimenete: ψሶ legyezési szögsebesség

ሶ ሶ MATEMATIKAI MODELL: MOZGÁSEGYENLETEK Oldalirányú gyorsulás yሷ t = g c fl r + c r l f v l f + l r yሶ t v + gl fl r c f c r v l f + l r ψሶ t + gc fl r δ t l f + l r Függőleges tengely körüli szöggyorsulás yሷ t = a 11 yሶ t + a 13 ψ t + b 11 δ t ψሷ t = mgl fl r c f c r Jv l f + l r yሶ t mgl fl r c f l f + c r l r Jv l f + l r ψሶ t + mgc fl f l r J l f + l r δ t A jármű sebessége a földhöz viszonyítva ψሷ t = a 31 yሶ t + a 33 ψ t + b 31 δ t xሶ G = xሶ cos ψ yሶ sin ψ, yሶ G = xሶ sin ψ + yሶ cos ψ

MATEMATIKAI MODELL: ÁLLAPOTTÉR REPREZENTÁCIÓ sl/vehslin_sseval.m A mozgásegyenlet mátrixos alakban yሷ yሶ ψሷ ψሶ = a 11 0 a 13 0 1 0 0 0 a 31 0 a 33 0 0 0 1 0 yሶ y ψሶ ψ + b 11 0 b 31 0 δ, Y = ሶ ψ Lineáris időinvariáns állapottér reprezentáció ሶ X = AX + BU, Y = CX + DU X = yሶ y ψሶ ψ, U = δ, A = a 11 0 a 13 0 1 0 0 0 a 31 0 a 33 0 0 0 1 0, B = b 11 0 b 31 0, C = 0 0 1 0, D = 0

SIMULINK MODELL ÁLLAPOTTÉR ALRENDSZER sl/vehslin_mdl.mdl ሶ X = AX + BU, Y = CX + DU Gain (erősítés) konstanssal való szorzás Integrator (integrátor) bemenő jel integrálása Sum (összegző) bemenő jelek összeadása, kivonása

SIMULINK MODELL ABSZOLÚT SEBESSÉG ALRENDSZER sl/vehslin_mdl.mdl xሶ G = xሶ cos ψ yሶ sin ψ, yሶ G = xሶ sin ψ + yሶ cos ψ Selector (választó) vektor jelből adott komponensek kiválasztása Trigonometric Function (trigonometrikus fv.) sin, cos, tan,... Product (szorzó) bemenő jelek szorzása, osztása

SIMULINK MODELL TELJES RENDSZER sl/vehslin_mdl.mdl Constant (állandó) konstans érték Scope (megjelenítő) bemenő jelek megjelenítése Step (ugrás) ugrás-függvény XY Graph (megjelenítő) bemenő jelek alapján X-Y ábra felrajzolása Demux (demultiplexer) vektorjelek komponensekre bontása (demultiplexálás) Mux (multiplexer) jelek vektorba foglalása (multiplexálás) Display (kijelző) bemenő jel aktuális értékének felrajzolása

MODELL PARAMÉTEREK A Simulink modell paraméterezése manuálisan a blokkokra való dupla kattintás után a paraméter párbeszédablakban történik. A paraméter lehet: Literális konstans érték. MATLAB alapértelmezett munkaterületén (Base Workspace) létező változó. MATLAB ablakban a Workspace lapon látható változók, amelyeket a MATLAB Command Window-ba írt parancsokkal, illetve a MATLAB script-ek futtatásával hozunk létre. Simulink modell munkaterületén (Model Workspace) létező változó. Simulink ablakban View > Model Explorer > Model Explorer vagy Ctrl+H segítségével előhívható Model Explorer-ben tekinthető meg a Model Workspace. Model Workspace változó létrehozható manuálisan a Model Explorer-ben. Model Workspace változó létrehozható a MATLAB-ból programozva is. A teljes Model Workspace a modell megnyitásakor inicializálható MAT-fájlból, vagy tetszőleges MATLAB-kód futtatásával.

MODEL WORKSPACE PÉLDA sl/vehslin_mdl_mdlworkspace.mdl A jármű paramétereinek automatikus betöltése, és azok alapján az állapotegyenlet mátrixainak automatikus kiszámítása a modell betöltésekor. Minden változó a Model Workspace-en fog tárolódni.

FÜGGVÉNY VISSZAHÍVÁS (FUNCTION CALLBACK) A Simulink modell, és benne minden egyes blokk is képes a szimuláció bizonyos meghatározott állapotaiban (modell betöltés előtt és után, inicializáláskor, futtatás után, stb.) MATLAB utasításokat végrehajtani, scripteket, függvényeket futtatni. Ezt a funkciót hívjuk függvény visszahívásnak (function callback). A teljes modell callback függvényeit a File > Model Properties > Model Properties > Callbacks fülön érjük el, míg az egyes blokkokét az adott blokkon jobb egérgombbal klikkelve a Properties > Callbacks fülön találjuk. Tipikus alkalmazások: Paraméterek automatikus beolvasása, kiszámítása a futtatás előtt. Független és szimulációnként állandó paraméterek betöltéséhez tipikusan a PreLoadFcn vagy PostLoadFcn (modell betöltése előtt illetve után futnak) használható. Független paraméterek alapján számolódó egyéb paraméterek, szimulációnként változó értékek betöltéséhez az InitFcn vagy StartFcn (szimuláció előtt futnak) használható. Szimulációs eredmények automatikus feldolgozása, kiértékelése a futtatás után. Szimulációs eredmények kiértékeléséhez a StopFcn (szimuláció után fut) használható.

FÜGGVÉNY VISSZAHÍVÁS (FUNCTION CALLBACK) PÉLDA sl/vehslin_mdl_callback.mdl A jármű paramétereinek automatikus betöltése, és azok alapján az állapotegyenlet mátrixainak automatikus kiszámítása a szimuláció indításakor (InitFcn). Minden változó a Base Workspace-en fog tárolódni.

ALRENDSZER MASZK (SUBSYSTEM MASK) Az egyes alrendszerek blokkjait ún. maszkkal láthatjuk el. Az alrendszer maszkolásával: Egyéni felhasználói felületet tudunk megvalósítani: a maszkolt alrendszer blokkjának saját kinézete, paraméter párbeszédablaka, leírása, segítség szövege lesz. További egyéni üzleti logikát (pl. paraméterek alapján további értékek kiszámítása) tudunk megvalósítani. Elrejthetünk az adott alrendszerhez tartozó adatokat.

ALRENDSZER MASZK (SUBSYSTEM MASK) PÉLDA sl/vehslin_mdl_callback_mask2.mdl sl/vehstlin_icon.png Egyéni kinézet (kép betöltése, port feliratok) megadása (bal oldalon) Egyéni paraméter párbeszédablak és rendszerparaméterek megadása (középen). Az állapotegyenlet mátrixainak automatikus kiszámítása a maszkon megadott paraméterek alapján. A kiszámolt értékek rejtve vannak, csak a maszkolt alrendszer látja őket (jobb oldalon).

MATLAB BE- ÉS KIMENET A Simulink jelek MATLAB Base Workspace-re való exportálása, valamint onnan történő importálása többféleképpen is megoldható. Modell szintű be- és kimeneti portok alkalmazásával. A működés a Simulation > Model Configuration Parameters > Data Import / Export menüpont alatt állítható be. FromWorkspace és ToWorkspace blokkok segítségével. A működés az egyes blokkok paraméter párbeszédablakában állítható be. A bemeneti és kimeneti jelek többféle formátumban megadhatóak illetve megkaphatóak, ezek közül a leggyakrabban használtak, és a portok valamint a From/ToWorkspace blokkok esetén egyaránt használhatóak: Tömb formátum (Array). Bemenet: mátrix, melynek első oszlopában időadatok, a többi oszlopában pedig a bemenet adott időpillanatokhoz tartozó értékei vannak. Szimulált időpillanatok: oszlopvektor, mely a szimulált időpillanatokat tartalmazza. Kimenet: mátrix, melynek minden sora az adott szimulált időpillanathoz tartozó kimenetvektort tartalmazza. Időadattal ellátott struktúra (Structure with time). MATLAB idősor objektum (MATLAB Timeseries).

MATLAB BE- ÉS KIMENET PÉLDA sl/vehslin_mdl_callback_mask2_inout.mdl sl/vehstlin_icon.png sl/vehstlin_input.m Jel importálás / exportálás modell szintű portokkal. % vehstlin_input.m %% Time of simulation t_start = 0; t_step = 0.1; t_stop = 14; %% Input data of simulation % Time data t_in = (t_start:t_step:t_stop)'; % Steering angle excitation data u_in = (1 / 180 * pi) *... ((t_in > 2.0) -... 2 * (t_in > 7.0) +... (t_in > 12.0));

AUTOMATIZÁLÁS 1 Simulink modell megnyitása: open_system függvény open_system(mdlname) mdlname: a modell neve Simulink modell bezárása: close_system függvény close_system(mdlname) mdlname: a modell neve Simulink modell szimulációja: sim függvény sim(mdlname) mdlname: a modell neve Simulink modell vagy blokk paraméter értékének lekérdezése: get_param függvény parametervalue = get_param(objectname, parametername) objectname: parametername: parametervalue: a modell neve vagy a blokk teljes elérési útja a modellen belül a lekérdezni kívánt paraméter neve a lekérdezett paraméter értéke Simulink modell vagy blokk paraméter értékének beállítása: set_param függvény set_param(objectname, parametername, parametervalue) objectname: parametername: parametervalue: a modell neve vagy a blokk teljes elérési útja a modellen belül a beállítani kívánt paraméter neve a beállítani kívánt paraméterérték

AUTOMATIZÁLÁS 2 Simulink aktuális aktív modell neve: bdroot függvény mdlname = bdroot mdlname: az aktuális aktív modell neve Simulink aktuális aktív blokk elérési útvonala: gcb függvény blkpath = gcb blkpath: az aktuális aktív blokk elérési útvonala Adott nevű Simulink modell be van-e töltve: bdisloaded függvény isloaded = bdisloaded(mdlname) mdlname: isloaded: a modell neve a modell be van-e töltve a memóriába, vagy sem (true/false)

AUTOMATIZÁLÁS PÉLDA sl/vehslin_mdl_callback_mask2_inout.mdl sl/vehstlin_icon.png sl/vehstlin_input.m sl/sim_vehstlin.m sl/plot_vehslin.m % sim_vehstlin.m %% Simulate model mdl = 'vehstlin_mdl_callback_mask2_inout'; % Load model if necessary if ~bdisloaded(mdl) open_system(mdl); end % Set stop time of simulation according to input set_param(mdl, 'StopTime', num2str(t_in(end))); % Save model save_system(mdl); % Run simulation tic; sim(mdl); toc;

MEGOLDÓK ÉS BEÁLLÍTÁSAIK Állandó lépésközű megoldók Az integrálásokat állandó időlépéssel végzik el. Előnyük hogy minden adatsor pontosan reprodukálható, illetve a szimulációs eredmények kiértékelése egyszerűbb lehet. Hátrányuk, hogy túl kicsire választott időlépés esetén a szimuláció lassabb, túl nagyra választott időlépés esetén pedig pontatlanabb lesz. Integrátort nem tartalmazó rendszerben: discrete Nem merev (non-stiff) megoldók: ode1, ode2, ode3, ode4, ode5, ode8 Merev (stiff) megoldó: ode14x Beállítható a megkívánt fix időlépés (Fixed-step size) értéke. Változó lépésközű megoldók Az integrálásokat változó, a megoldás lefutásához igazított időlépéssel végzik el. Előnyük, hogy a fejlett és hatékony megoldók általában változó lépésközűek, a szimuláció gyorsabb lehet. Hátrányuk, hogy az egyes szimulációk eredményei egymással közvetlenül nem összehasonlíthatóak, hiszen két jel összehasonlítása csak akkor lehetséges, ha az értékek azonos időpillanatokhoz tartoznak. Integrátort nem tartalmazó rendszerben: discrete Nem merev (non-stiff) megoldók: ode23, ode45, ode113 Merev (stiff) megoldók: ode15s, ode23s, ode23t, ode23tb Beállítható a javasolt kezdeti időlépés (Initial step size), a megengedett minimális (Min step size) és maximális (Max step size) időlépés, valamint a tolerálható hiba relatív (Relative tolerance) és abszolút (Absolute tolerance) értéke.

MEGOLDÓK ÉS BEÁLLÍTÁSAIK PÉLDA

HIBAKERESÉS A Simulink modell blokkdiagramján tovább információk jeleníthetőek meg az alapértelmezett nézethez képest: Jel dimenzió: Display > Signals & Ports > Signal Dimensions Port adattípus: Display > Signals & Ports > Port Data Types Jel értékének kijelzése a jelre klikkelés esetén szimuláció közben: Display > Data Display in Simulation > Toggle Value Labels When Clicked Egy Simulink jelen jobb egérgombbal kattintva a jel a forrásáig vagy céljáig kiemelhető. Jobb klikk > Highlight to Destination / Highlight to Source A kiemelés tetszőleges helyre jobb egérgombbal kattintva és a Remove Highlighting opciót választva megszüntethető. A Simulink modell szimulációja pillanatnyilag megállítható tetszőleges időpontban, vagy jelértékektől függő töréspontok alapján. A modell futtatása ezután egyszerűen, vagy akár lépésenként is folytatható. A pillanatnyi megállítás időpontja a Simulation > Stepping options menüben állítható be. Jelértéktől függő töréspont az adott jelen jobb egérgombbal kattintva és az Add Conditional Breakpoint opciót választva állítható be. A modell futtatása a Simulation > Run / Continue / Step back / Step forward / Stop menüpontokkal végezhető el.

HIBAKERESÉS PÉLDA

EGYÉB Végrehajtási sorrend A Simulink a modellben található függőségek alapján automatikusan meghatározza az egyes blokkok végrehajtási sorrendjét. Ha valami miatt az automatikus végrehajtási sorrendbe bele szeretnénk avatkozni, azt az adott blokkon jobb egérgombbal klikkelve a Properties > General fülön, a Priority mezőben tudunk megadni egy prioritás számot. Ez a szám minél kisebb, a blokk prioritása annál nagyobb, és a blokk annál hamarabb hajtódik végre. Ha a beállított egyéni prioritási sorrend sérti az adatfüggőségeket, akkor hibaüzenetet kapunk. Algebrai hurkok Algebrai hurokról beszélünk, ha a modellben van olyan visszacsatolás, melyben csak olyan blokkok vesznek részt, melyek kimenete közvetlenül függ a bemenetüktől. Pl. az alábbi példában a szorzó blokk kimenetének meghatározásához tudnunk kellene mindkét bemenetének az értékét, azonban a b bemenet meghatározásához már szükségünk lenne a kimenet ismeretére is. Az algebrai hurkok megoldása problémás, hiszen differenciál-algebrai egyenletrendszerre vezetnek.