Záróvizsga Flashcards
Mik lesznek a diagrammok élei?
A diagrammok irányított gráfok.
A fizikai rendszereket leíró differenciálegyenletet szimulálni kell valamilyen numerikus algoritmussal. Ezek gráfként reprezentálhatóak
Mik lesznek a diagrammok csomópontjai?
Csomópontok/Blokkok:
- Jelek közti (akár dinamikus) átalakításokat definiálnak.
- Több bemenettel, több kimenettel rendelkezhetnek, ezek mindegyike lehet vektor.
- Saját állapottal és paraméterekkel rendelkezhetnek.
- Bemenet nélküli blokk: jelforrás
- (source).
- Kimenet nélküli blokk: jelnyel˝o
- (sink).
Jelek közti (akár dinamikus) átalakításokat definiálnak. Több bemenettel, több kimenettel rendelkezhetnek, ezek mindegyike lehet vektor. Saját állapottal és paraméterekkel rendelkezhetnek.
Csomópontok típusai:
- algebrai: a blokk kimenete a bemenetek függvénye (nem függ sem a bemenetek, sem a kimenetek idő szerinti deriváltjaitól vagy késleltetett értékeiktől)
- folytonos idejű dinamikus: átviteli függvénnyel vagy folytonos idejű differenciálegyenlettel megadható dinamikus viselkedés
- diszkrét idejű dinamikus: impulzusátviteli függvénnyel vagy diszkrét idejű differenciaegyenlettel megadható dinamikus viselkedés
- általános dinamikus: folytonos és diszkrét idejű állapotokat is tartalmazó rendszer leírásához
A diagrammon mi a szerepük a forrásoknak és a nyelőknek?
Jelforrás (source): Bemenet nélküli blokk.
Jelnyelő (sink): Kimenet nélküli blokk.
Honnan származhatnak a modellek egyenleti?
Modellek egyenletei:
- A fizikai törvényszerűségek alapján felírt differenciálegyenletek szerint adódik (esetleg munkapont körüli linearizálás nyomán).
- A be- és kimeneti jelek mérése alapján azonosítjuk (identifikáljuk).
2.Adja meg az algebrai hurok definícióját és sorolja fel a feloldására használható módszereket!
Az algebrai hurok direct feedthrough elemekből álló hurok, amely mentén a blokkok be- és kimenetei egymástól körkörösen függenek.
Feloldása:
- Simulink algebrai-hurok megoldó algoritmusának segítségével
a. Van legalább egy blokk a hurokban
b. A modell jelei lebegőpontos valósak
c. A korlátozás folytonosan differenciálható - A modell átstrukturálásával, bővítésével
- Algebrai korlátozás differenciálegyenletté konvertálásával (ha lehetséges)
- Késleltetés beszúrásával
4.Mik a diagram futtatásának főbb lépései a Simulink környezetben és milyen műveletek kerülnek ezeknél végrehajtásra?
Kompilálás/Fordítás: · Blokkok paramétereinek kiértékelése · Jelek attribútumainak ellenőrzése · Egyszerűsítések · Virtuális alrendszerek helyettesítése · Blokkok (végrehajtási) sorba rendezése · Mintavételi idők regisztrálása.
Linkelés: Futási időben szükséges erőforrások lefoglalása, metódus híváslisták előálllítása.
Iterálás: Állapotok, bemenetek, kimenetek ciklikus újraszámítása, ahogy a szimulálási idő halad előre.
5.Mi jellemzi a Simulink diagram csomópontjait? Milyen adatstruktúrákra és metódusokra van szükség a csomópontok esetében a futtatáshoz?
A Simulink motor mindegyik fázisában kommunikál a blokkokkal (csomópontokkal).
Adatstruktúrák:
Bemenetek: -dimenzió
-típus
Kimenetek:
- dimenzió
- típus
- számítási szabály
Paraméterek:
- típusok
- értékek
Folytonos dinamika:
- állapot dim. & típus
- kezdeti érték
- derivált számítási szabálya
Diszkrét dinamika:
- állapot dim. & típus
- kezdeti érték
- aktualizálás számítási szabálya
Simulink modellfuttatási végrehajtási hurkát ábrázolja.
- modell inicializálása
- következő mintavételi idő számítása
- kimenetek számítása
- diszkrét állapotok frissítése
- deriváltak számítása
- kimenetek számítása
- deriváltak számítása
- nullátmenetek detektálása
Simulink modellfuttatási végrehajtási hurka. magyarázza meg az egyes négyzetekkel reprezentált műveleteket
A hurokban található műveletek ciklikusan végrehajtódnak. A hurkot a Simulink motor vezérli. A linkelési fázisban keletkeztek a diagram szintű derivatives, update, outputs metódusok. Két mintavételi időpont között a folytonos állapotok alakulását a kiválasztott solver szerint számoljuk (integráljuk).
Piros: Modell inicializálás (kompilálás, linkelés)Kék: Következő mintavételi idő számítása (ahol kell)Zöld: Kimenetek számítása; Diszkrét állapotok frissítéseNarancs: Deriváltak számítása; Kimenetek számítása; Deriváltak számítása; Nullaátmenetek detektálása
7.Mire szolgál az S-függvény?
S-függvény: Saját blokkokat (sőt blokk-könyvtárakat) hozhatunk létre, saját paraméterhalmazokkal.
Hasznos lehet tetszőleges rendszer leírására egyenletrendszerekkel;
- új, általános célú blokkok készítéséhez;
- hardverspecifikus funkciók megvalósításához;
- stb.
A metódusokat többfajta nyelven is kódolhatjuk. Ezzel gyorsítást érhetünk el és/vagy valós idejű megvalósítást tehetünk lehetővé.
Milyen metódusok implementálása szükséges az S-függvényhez?
Metódusok:
· Setup - kompilálást segíti
· Derivatives - deriváltak kiszámítása [folytonos időnél kell]
· Update - következő állapot számítása [diszkrét időnél kell]
· Outputs - kimenetek számítása
S-függvény: Hogyan lehetséges C nyelvű kódok beépítése?
S-Function Builder segítségével a be- és kimenetek, állapotok és paraméterek megadása után: metódusokat C nyelven lehet megvalósítani
(C-kódok: Script készítésével, melynek a kiterjesztése .m lesz. (S-function Builder blokk))
.Mit értünk egy Simulink modell „külső” (external) futtatásán?
“Külső” (external) futtatás: Az iterálási hurok számításait lehetőségünk van Matlabon “kívül”, egy másik számítógépen, vagy egy valós idejű operációs rendszert futtató számítógépen - akár beiktatott I/O-kat kezelő programrészekkel - elvégeztetni.
Milyen fordítási lépések szükségesek a külső futtatáshoz?
Fordítási lépések:
- RTW (Real-Time Workshop) build
- Target Language Compiler
- make (=> model.exe)
- Letöltés a célszámítógépre
- Végrehajtás Simulink külső módban
Milyen korlátozásokat kell betartani egy Simulink modell esetében ahhoz, hogy azt „külső” módban futtathassuk?
Korlátozások:
- t valós idő esetén:
· A hurokban szereplő számítások determinisztikusak és jósolhatóak
· A folytonos tagok numerikus integrálása NEM függhet adaptív módon a deriváltak értékétől (fix lépésköz)
· Nem megengedhető dinamikus memóriahasználat vagy nem ismert be és kimeneti dimenzió
· Nem megengedhető az iteráció
Magyarázza meg a Target fogalmát!
Target: Az a számítógép, (mikrokontroller), ahol a Simulink modell futtatásra kerül. Ehhez kell egy fordító, amely képes egy ún. Target Language-ből végrehajtható kódot előállítani. Ez a fordító tipikusan C/C++ fordító.
Magyarázza meg a ráfutás (overrun) jelenségét egy ábra segítségével akkor, ha a ráfutást egy megszakításvezérelt taszk okozza, illetve akkor ha „Single Timer” módban futtatunk különböző mintavételi periódusidejű blokkokból álló Simulink modelleket!
Ha egy taszkot úgy akarunk újraindítani, hogy az még fut, akkor úgynevezett ráfutás keletkezik.
+ábra
Mi a különbség a Single Timer és Multiple Timer ütemezés között? Hogyan lehetséges kiküszöbölni a ráfutás jelenségét Multiple Timer módban? (A megoldást szemléltesse idődiagramon!)
Single Timer:Egy mintavételi idő mindenkinek Minden blokk (függetlenül azok mintavételi idejétől) egy taszkba teszünk.
Multiple Timer:Különböző mintavételi idők
a hosszabb futásidejű taszk prioritása alacsonyabb, így kiküszöbölhető a lehetséges ráfutás
+ ábra
Milyen adatkonzisztencia problémák adódhatnak, ha Multiple Timer ütemezés mellett egy lassú és egy gyors időzítéssel működő taszk egymás eredményeit felhasználja? (Mindkét lehetséges sorrendet vizsgálja!)
gyors –> lassú:
A gyors (vagy magasabb prioritású) blokk kimenete változik a lassú (vagy
kisebb prioritású) blokk végrehajtása közben.
1 védett (protected): nem változik a kapott adat végrehajtás közben (1) -
kettős pufferelés
2 védtelen (unprotected): a kapott adat változhat végrehajtás közben (2)
lassú–>gyors:
A lassú blokk még “dolgozik”, de a gyors blokknak már szüksége lenne az
eredményre.
Hogyan biztosítható az adatkonzisztencia? Mit jelent, hogy egy adatátvitel védtelen / nem determinisztikus? Hogyan hat egy adatátvitel determinisztikusságának biztosítása a látenciára (válaszát indokolja)?
Az adatkonzisztencia a “Rate Tranzition” blokk alkalmazásával oldható meg. A determinisztikusság betartása a látenciát növeli, mivel a gyorsabb taszk által generált adat a lassabb taszknak csak a következő ütemére jut érvényre.
Determinisztikus (deterministic): Az átvitel időzítése determinisztikus. Ez több időbe, azaz látenciába (latency) kerül, így lassabb. Nem determinisztikus (nondeterministic): Az átvitel időzítése nem determinisztikus. Itt hamarabb érvényre jut a számított adat, így gyorsabb.
I vagy H? A LabVIEW For ciklusának magja legalább egyszer lefut.
H
I vagy H? Cluster adatszerkezetben különböző típusú adatok is összegyűjthetők.
I