1. ZH Flashcards

1
Q

1.Hogyan reprezentálhatóak fizikai rendszerek modelljei diagrammok segítségével? Mik lesznek a diagrammok élei, csomópontjai, mi a szerepük a forrásoknak és a nyelőknek? Honnan származhatnak a modellek egyenleti?

A

A diagrammok irányított gráfok.
Reprezentáció: A fizikai rendszereket leíró differenciálegyenletet szimulálni kell valamilyen numerikus algoritmussal. Ezek gráfként reprezentálhatóak, amelyekben:
Élek:
 Irányítottak, blokkok bemeneteit kötik össze más blokkok kimeneteivel.
 Pillanatnyi értékük lehet skalár, vagy vektor (időben változó).
 Azonos típusú és dimenziójú ki- és bemeneteket kötnek össze.
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).
Jelforrás (source): Bemenet nélküli blokk.
Jelnyelő (sink): Kimenet nélküli blokk.

Modellek egyenletei:

  1. 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).
  2. A be- és kimeneti jelek mérése alapján azonosítjuk (identifikáljuk).

///Kiegészítés
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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

2.Adja meg az algebrai hurok definícióját és sorolja fel a feloldására használható módszereket!

A

Algebrai (vagyis belső állapotokkal nem rendelkező) blokkokból álló hurok. A be- és kimenetek egymástól való körkörös összefüggése. Differenciál-algebrai egyenlet (diff. egyenlet algebrai megkötésekkel)
Feloldása:
1. 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ó
2. A modell átstrukturálásával, bővítésével
3. Algebrai korlátozás differenciálegyenletté konvertálásával (ha lehetséges)
4. Késleltetés beszúrásával

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3.Ismertesse a differenciálegyenletek megoldására szolgáló Heun-módszert! Adja meg a módszer egyenleteit, Butcher-tábláját! Mekkora a módszer lokális és globális hibája?

A

ábraaaaa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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?

A
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.

+ ábra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

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

ábraa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

6.Az alábbi diagram a Simulink modellfuttatási végrehajtási hurkát ábrázolja. Töltse ki és magyarázza meg az egyes négyzetekkel reprezentált műveleteket

A

ábraaa+
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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

7.Mire szolgál az S-függvény? Milyen metódusok implementálása szükséges? Hogyan lehetséges C nyelvű kódok beépítése?

A

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é.
Metódusok:
 Setup - kompilálást segítő függvény
 Derivatives - deriváltak számítása
 Update - következő állapot számítása
 Outputs - kimenetek frissítése
 InitializeCondition - kezdeti állapot
C-kódok: Script készítésével, melynek a kiterjesztése .m lesz. (S-function Builder blokk)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

8.Mit értünk egy Simulink modell „külső” (external) futtatásán? Milyen fordítási lépések szükségesek a külső futtatáshoz? Milyen korlátozásokat kell betartani egy Simulink modell esetében ahhoz, hogy azt „külső” módban futtathassuk? Magyarázza meg a Target fogalmát!

A

“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.

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

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ó

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ó.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

9.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!

A

A következő diánál természetesen “Ha túl sok a blokk-nak” kéne lenni. Ennél az ütemezésnél érdemes elvonatkoztatni az oprés ütemezésről. Itt arról van szó, hogy van n darab blokkunk, de mindegyiknek más a mintavételezési ideje. Az egyszerűség kedvéért legyen egy egér és egy billentyűzet (nyilván elbaszott példa, de szemléletes). Egérnél érdemes elég gyakran mintavételezni, mondjuk legyen T időnként. Billentyűzetnél 2T időnként. Ez az ütemezés arról szól, hogy hogyan tudjuk ezeket úgy sorba rakni, hogy működjön megfelelően. Ha mindent egy taszkba rakunk (tehát azonos prioritásúak), akkor ráfutás következik be, ha pedig csinálunk több taszkot (több prioritást), akkor viszont adatvesztés lehet. Ezek között kell az arany középút. (ha amúgy is tök egyértelmű volt mindenkinek ez, akkor bocs, csak a kommentek miatt gondoltam, hogy érdemes tisztázni)

+ ábra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

10.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!)

A

Single Timer:Egy mintavételi idő mindenkinek

Multiple Timer:Különböző mintavételi idők

2T> 2Bgyors +Blassú+3kontextus váltás

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

11.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!) 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)?

A

Ha azt akarjuk, hogy determinisztikus legyen az átvitel időzítése, akkor meg kell várnunk, hogy a lassú blokk befejezze a működését, mielőtt a következő gyors blokkot elkezdenénk számolni (a második dián (2)). Emiatt a várakozás miatt növekszik a késleltetés.

+ ábra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

12.Az ábrán egy gyors és egy lassú blokknak megfelelő taszk futásához tartozó idődiagram látható. A folytonos egyenes nyilak a processzorhoz történő hozzáférés átadását jelzik a taszkok között. Az szaggatott, számozott nyilak jelzik, ha az egyik blokk eredményét a másik felhasználja.

A

ábra + táblázat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

13.A Simulink Coder a külső futtatáskor az alábbi ábrán szemléltetett lépéseket hajtja végre.

Magyarázza meg, hogy mi történik az egyes lépések végrehajtásakor! Hogyan jelenik meg a célhardver kapcsolata a külvilággal a modellben?

A

 RTW build:
• Leképezi a modellt egy “nagyon magas szintű” nyelvre. Ez kerül majd a .rtw fájlba.
• model.mdl -> model.rtw
 TLC:
• A Target Language Compiler a kapott .rtw fájlból target fájlok felhasználásával elkészíti az adott target language nyelven íródott fájlt (a block target fájlok a blokkok kódjait, míg a system target fájl az egész rendszerre vonatkozó kódokat tartalmaz)
• Fordítható kódot generál, például .c, .cpp és .mk (make fájlok)
• Ezután lesz a VHLL-ből HLL.
• model.rtw ->model.c
 make:
• Hozzáfűzi a RTI interfészt és összevonja a make fájlokat egy futtatható állományba.
• HLL-ből csinál EXE-t.
• model.c -> model.exe
 Letöltés:
• Futtatható kód letöltése a célhardware-re.
 Végrehajtás külső módban:
• Iterációs ciklus, futtatás
• A célhardware kapcsolatát a külvilággal olyan jel –források és –nyelők jelképezik a modellben, melyeket a hardware gyártója bocsát a rendelkezésünkre simulink könyvtárak formájában.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

14.Oldja fel az RCP, HIL, RTI rövidítéseket, magyarázza el azok jelentését és sorolja fel a megvalósításukhoz szükséges szolgáltatásokat tartalmazó fejlesztő környezet hardver és szoftver elemeit, azok funkcióit! Nevezzen meg egy alkalmazási példát, ahol HIL szimulációra lehet szükség (indoklással)!

A

RCP: Rapid Control Prototyping, a gyors prototípus-tervezés angol megfelelője.
Szükséges hozzá egy VHLL programozási nyelven működő software, valamint egy ezt
futtatni képes környezet.
HIL: Hardware-in-the-loop teszt, vagy szimuláció. Valós idejű szimuláció. Beágyazott rendszeren fut. A rendszer érzékelőit, beavatkozó szerveit (vagy azok egy részét) elektronikusan emuláljuk. Az irányító szoftver „azt hiszi” hogy egy valódi rendszert lát valós időben.
HIL szimuláció szükséges lehet ott, ahol adott esetek tesztelése a valódi irányított rendszerrel veszélyes lenne, vagy nem lenne reprodukálható. Esetleg nincs mód arra, hogy bizonyos bemenetekre teszteljük a rendszert ésszerű keretek közt, pl.: ritka időjárási jelenségek együttállása, karambol autóteszt esetén (lásd SIL)
SIL: Software-in-the-loop, olyan RT szimuláció, ahol a rendszer szenzorait, beavatkozó szerveit (vagy azok egy részét) programozottan emuláljuk.
RTI: Run-Time-Interface kód, a célkörnyezetben futó programmal történő kommunikációt szolgáló járulékos kód (overhead). Az RTI egy valós időben és egy NEM valós időben futó alkalmazás között teremt kapcsolatot (blokkok paramétereinek futás közbeni változása).
Egy olyan (grafikus) felület, amin figyelemmel kísérhetjük a modellünk egyes részeinek működését. Ugyanaz kell mint HIL-hez plusz még valamilyen (G)UI.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly