Tartalmi kivonat
4. 4.1 VisSim szimulációs program ismertetése Bevezetés A VisSim egy grafikus környezetet biztosító fejlesztő és szimulációs program. Minden,a modellépítéshez szükséges eszköz elérhető a különböző menüpontok alatt. A modellt blokkokból építhetjük fel, összeköttetéseket definiálhatunk, majd a kész rendszert szimulálhatjuk és analizálhajuk a program segítségével. 105 4.2 Alapok Indítsuk el a programot a VisSim ikon segítségével. A VisSim egy üres blokk diagrammal indul, melyet automatikusan létrehoz a program. Az indító képernyőt az 4-1ábrán láthatjuk 4-1. ábra A VisSim indítóképernyője Hasonlóan az eddig ismert grafikus progrmokhoz, a VisSimben is menük és dialógusablakok segítségével történik a kommunikáció a felhasználó és a program között, valamint görgetősáv szolgál a navigáció könnyítésére. 4.21 Az állapotsáv 4-2. ábra Az állapotsáv Az állapotsáv (lásd 4-2.ábra) a programablak
alsó részén helyezkedik el, és az éppen aktuális diagramról szóló információkat tartalmazza. Ezek a 106 blokk számláló, a szimulációs ráta, a használt algoritmus, a lépésköz, és az implicit solver. Ha fut egy szimuláció, akkor az eltelt szimulációs idő is leolvasható innét. Az állapotsáv eltűntetésére illetve megjelenítése a View > Status bar menüpont segítségével történhet. (Alt+V,S) 4.22 Az eszköztár Az eszköztár (View > Toolbar), lásd 4-3.ábra, a menüsáv alatt található Új gombok helyezhetők el illetve törölhetők az eszköztárból a tervezés és a szimuláció megkönnyítésére. 4-3. ábra Az eszköztár Az eszköztár megjelenése illetve elrejtése is lehetséges hasonlóan az állapotsávhoz. (Alt+V,S) Új gombok hozzáadása a következő képpen történik: Edit > Toolbar menüponttal, a gombok listájából válasszunk ki egy számot (0-17-ig foglalt), majd a Function legördülő menüjéből
válasszuk ki a kívánt tevékenységet. A Help String segítségével adhatunk neki egy szövegezést, mely a nyíllal való rámutatáskor jelenik meg. A Bitmap gomb segítségével az új gomb textúrája választható ki. Az Ok gomb lenyomásával elmenthetjük a beállításokat. Az eltávolításhoz nyissuk meg az Edit > Toolbar menüt. Keressük ki az eltávolítani kívánt gomb számát, majd a Function legördülő menüjéből válasszuk ki a none-t Az módosítások elfogadtatása után (OK) a kiválasztott gomb eltűnik. 4.23 Segítség A Help funkció legmagasabb szintjét a menüsor Help pontjánál találjuk (Alt+H). Ha az aktuális, kiválasztott blokkról szertnénk további információhoz jutni, 107 akkor az adott blokk dialógusablakában lévő Help gombra kell kattintanunk. (a blokk dialógusablakát a blokkon történő bal egér duplakattintásával hozhatjuk elő). 4.24 Egy egszerű modell felépítése Blokk diagrammok építése a Blokk
menüpontban szereplő építőelemek munkaterületre történő húzásával, majd az így felhelyezett elemek megfelelő összekötettésével történik. Az összekötettések a blokkok mozgatsával, forgatásával sem tűnnek el. Készítsünk egy egszerű áramkört, mely két szám összeadását végzi. Elsőként helyezzünk el egy összeadót a munkaterületen. Ezt a Blokk menüpont Arithmetic elemei közül kiválasztott összeadó megfogásával és a helyére húzásával tehetjük meg (lásd 4-4.ábra) 4-4. ábra Összeadó palettára helyezése A blokkokat egyszerűen a kiválasztás után bal egérrel tartva a megfelelő helyre húzzuk, majd elengedjük. Hasonlóan ehhez elhelyezünk két slider-t, 108 azaz csúszkakkal ellátott elemet: Block > Signal Producer > Slider, illetve az eredmény megjelenítéséhez egy kijelzőt: Block > Signal Consumer > Display. Ekkor az 4-5ábrán lévő képet láthatjuk a monitoron 4-5. ábra Elemek elhelyezése A
következő lépés az összeköttetések elkészítése. A blokkok kimenetei és bemenetei között létesíthetünk összeköttetéseket. Mindig az adott blokk kimenetétől indítjuk a drótozást úgy, hogy egérrel a kimenetre mutatva a kurzor kis nyillá változik, ekkor a bal egér gombot tartva, a drótot az összekötendő másik blokk bemenetéig húzzuk, majd ott elengedjük az egeret. Az összeköttetés létrejött. Lásd 4-6 ábra Most nézzük meg a blokkok beállítási lehetőségeit. A Setup ablak az adott blokkon történő dupla egérkattintással jeleníthető meg. Lasd 4-7ábra A Slider blokkon belül három értéket állíthatunk be, ezek az aktuális értéke a blokknak, a felső illetve az alsó határ a megjeleníthető értékeknek. A 109 4-6. ábra Összeköttetések készítése 4-7. ábra Beállítási lehetőségek különböző elemeknél a beállítási lehetőségek értelemszerűen egyediek. 110 4.3 Általános tudnivalók (1)
Kijelölés, törlés Blokkok törléséhez a Shift billentyű nyomva tartása mellett klikkeljünk a törölni kívánt blokkra, majd nyomjuk meg a Del billentyűt. Nagyobb területet is kejelölhetünk a vázlaton. Ekkor a kijelölendő terület egyik képzeletbeli sarkánál nyomjuk le a bal egér gombot, tartsuk és húzzuk addig, amíg a kijelölést kívánjuk. Így több elem is törölhető egyszerre A Ctrl+C (copy, másolás), Ctrl+X (cut, kivágás) és Ctrl+V (paste, beillesztés) itt is használatosak. (2) Forgatás Blokkok forgatására is lehetőség van. Jelöljük ki a forgatni kívánt objektumot, majd az Edit > Rotate 180 paranccsal vagy a Ctrl+left billentyűkombinációval elforgathatjuk az elemet A megforgatott elem összeköttetései megmaradnak. A munkatér üres részére kattintva a blokk kijelölése megszűnik. (3) Tömörített blokkok Komolyabb, összetettebb modellek építése során az átláthatóság érdekében felmerülhet az igény az
összetartozó részek egyetlen blokkba történő tömörítésére. Ezt VisSim-mel igen könnyen megtehetjük Jelöljük ki az összevonni kívánt elemeket. Az Edit > Create Compound Block segítségével megadhatjuk az új, összetett blokk nevét, beállíthatjuk a biztonsági funkciókat, elrejthetjük, valamint bitmap képpel szinesíthetjük az új blokkot. Az így öszetömörített blokk tartalmát blokkon történő duplakattintással vagy jobb egér kattintással megtekinthetjük. Ha a tömörített blokkot ki szeretnénk bontani, akkor klikkeljünk az Edit > Dissolve Compound Block menüpontra, majd az új kereszt alakú kurzorral klikkeljünk a kicsomagolni kívánt objektumra A munkapad egy üres helyére kattintva kiléphetünk ebből a funkcióból. 111 4.4 Blokkok(Blocks) A VisSim Block menüpontja tartalmazza a leggyakrabban használt blokkokat. Ezeknek a kategória listáját itt megtalálhatjuk Egérrel ráklikkelve egy pontra, további,
alkategóriához tartozó elemek tűnnek elő. Aimation (animáció) 4.41 Animate (animáció) Ezen elem segítségével szimuláció közben animációt futtathatunk, mozgást, méretváltozást, képmegjelenítést valósíthatunk meg. Az animáció csak kijelző módban aktív Kép megjelenítése animate blokkal: csak bmp kiterjesztsű képfájlokat jeleníthetünk meg Bitmap társítása animate blokkal: helyezzünk el egy animációs blokkot a munnkapadon, és hívjuk elő a setup ablakát (lásd 4-8. ábra) 8.ábra 4-8. ábra Animációs blokk A Number of States ablakban lehet megadni a blokkhoz kapcsolni kívánt képek számát. A State ablakban válasszuk ki a nulladikat,majd adjuk meg a kép elérési útvonalát. A többi állapot esetén hasonlóan járjunk el Végül 112 nyomjuk meg az OK gombot. Az animációs blokk bemeneteire kapott értékek szerint ugrik az animáció a különböző állapotok között. Ha nincs olyan számú kép, mint amennyi a bemenetre
érkező érték, akkor a legnagyobb állapotszámú képre ugrik Ha a bemeneti érték nem integer, akkor azt az animációs blokk integerré konvertálja. Az animációs blokk x és y bemenete adja meg a kép koordinátáit, a blokk w és h bemenete pedig a kép méretét pixelben. 4.42 lineDraw Ennek az elemnek a segítségével animálhatunk vonalakat a szimuláció során. Egyaránt módosítható a szín, a vastagság illetve a stílus paraméterek. A blokk bemenetei hasonlóan viselkednek az Animate blokkéhoz. 4.43 Annotation Bezel : A képernyő háttér megjelenése, háttér szín illetve háttér kép állítható be ezzel az elemmel. A blokk setup ablakában értelemszerűen módosíthatók ezek a paraméterek. Comment: Diagrammokhoz adhatók megjegyzések ennek az elemnek a segítségével. Az ablak görgetősávjának elhelyezése automatikus A szöveg elhelyezése, módosítása értelemszerűen történik. Date: Ez az ablak mindig az aktuális dátumot illetve
időt írja ki a kijelzőre. A frissítés mindig a blokk elmozdításakor, diagram kirajzolásakor történik. A Control Panel segítségével törölhető az ablak tartalma Index : Az index blokk segítségével dinamikusan válszthatunk ki vektor elemeket. A felső kapcsoló a kiválasztandó elemet jelenti, a középső pedig azt a vektort, ahonnét ki akarjuk választani. Például: az egyes index az első vektorelemet választja. Variable: A válozó blokk segítségével jeleket vihetünk át a diagramon belül összeköttetések használata nélkül. 113 WirePositioner : Ezen elem segítségével hozhatunk létre speciális összekötettési útvonalakat. Ez az elem tulajdonképpen mindössze egy kimeneti és egy bemeneti pontból áll, és az összeköttetések módosítására szolgál. 4.44 Arithmetikai elemek (Arithmetic) Ezen blokk elemei értelemszerűen használandók. Itt találhatjuk a matematikai operátorokat és függvényeket, mint például az osztás,
szorzás, reciprok-, ellentett-, abszolútérték képzés. Megemlítendő még négy elem, melyről kicsit bővebben szólunk: Gain: Ez az elem egy olyan kimenetet állít elő, mely a bemenő jel és a gain szorzataként jönlétre. y = x ∗ gain Pow : Ez az elem kimeneteként olyan jelet állít elő, mely a bemenő jel értékét egy, a blokkban megadott kitevőre emeli. Sign: A sign blokk meghatározza a bemenő jel előjelét, és kimenetként 1, 0, -1-et ad vissza. SummingJunction: Ez a blokk összeadja a beneteire érkező jeleket, és az összeget rakja a kimenetre. A bemenő jel előjele megváltoztatható a bemeneten való jobb egér kattintással Alapértelmezésben két bemenete van ennek a blokknak, de ez is módosítható az Edit menü Add Input, Remove Input pontjában. 4.45 Boolean kifejezések (Bookean) Itt találhatjuk meg a logikai, összehasonlító operátorokat. (pl: <,=,AND,OR, stb.) A bemenetre értelemszerűen a két összehasonlítandó jel kerül, és
az eredményt teszi a kimenetre. 114 4.46 Lineáris Rendszerek (Linear system) A lineáris rendszereket leíró modellek blokkjai is megtalálhatók a VisSimben. Az állapottér reprezentáció és az átviteli függvény segítségével adhatjuk meg a szimulálni kívánt rendszereket. StateSpace: A stateSpace blokk a MIMO (multiple-input, multiple-output) rendszerek állapottér reprezentálására szolgál. Az állapottér modellben szereplő mátrixok vagy *.M fajlként adhatók meg, vagy egy egyszerű szövegszerkezőben is definiálhatok matrixonként új sort megadva TransferFunction: Ezzel a blokkal egy SISO (Single Input Single Output), lineáris rendszer átviteli függvénye adható meg. A VisSim 90-ed fokú polinomok kezelésére képes A blokk az IIR, FIR digitális szűrőformát támogatja A blokkon történő duplakattintással előhívható a blokk tulajdonságait, adatait tartalmazó ablak. Itt lehet az átviteli függvény számlálójának és nevezőjének
polinómjait megadni a numerator illetve a denominator sorokban a következő módon: - Az ablakban csak az állandó együtthatók szerepelhetnek, méghozzá a változó kitevője szerint csökkenő sorrendben - A nulla értékű együtthatókat is fel kell tűntetni, hiszen a változó megjelenésének hiányában a nullával szereplő tagokat is jelölni kell. A gain mezőben adható meg a rendszer erősítése, ennek alapértéke 1. Az állapotok kezdőértéke az Inital State mezőben jelölhető. 4.47 Véletlen generátor (Random generator) Háromféle véletlen jelgeneráló elem található ebben a menüpontban. Ezek a Gauss, uniform és a PRBS. 4.48 Jelgeneráló elemek (Signal Producer) Buttom: A gomb elem segítségével szimuláció közben dinamikusan beállíthatók bizonyos jelértékek.A blokknak 2-16 számú állapota lehet Bitmap is társítható ezen állapotokkal, ezeket nevük illetve elérési útvonaluk szerint kell megadni, erre szolgál az Image gomb. A
név ablaknál megadható egy szöveg, 115 mely csak akkor látható, ha az adott bitkép nem jeleníthető meg. Constant: A blokk egy konstans értéket generál, mely értéke a setup ablakban megadható. Az alapértelmezett érték 1 Import: Ez a blokk adatokat importál *.DAT, *.M, *.MAT vagy *.WAV fájlokból. Parabola: Parabolikus kimenő jelet generál. Slope rate, curavante RealTime: A blokk az aktuális időt állítja a kimenetre millisecunduman megadva. Megjegyzendő, hogy ez az idő nem felel meg a szimulációs időnek Sinusoid : Egység sinushullám jelet állít elő. A setup ablakban módosítható az alapértékekkel megadott jel amplitúdója, frekvenciája, eltolása Slider : Ez az úgynevezett csúszka blokk. Lehetővé teszi, hogy a szimuláció során a felhasználó által (egér segítségével) dinamikusan változtatható jelet állítsunk elő. A csúszka aktuális illetve alsó, felső értéke beállítható Most következnek az általunk leggyakrabban
használt bemenő jelgenerátorok. PulseTrain: Egységimpulzus vonat blokk az egység amplitúdójú impulzusok sorozatát állítja elő. Az impulzusok közötti idő megadható, ezt elég nagynak választva a Dirac impulzust közelíthetjük. Step: Az egységugrás bemenetet állítja elő, ennek amplitúdója és késleltetése módosítható. Ramp: Egységsebesség ugrás bemenet. 4.49 Megjelenítés (Signal Consumer) Display: A kimenő jel aktuális értékét jelzi ki megahtározott számú digiten. A kijelzett érték szine és hattérszíne is megváltoztatható. 116 Error : A szimuláció során fellépő hibákat jelzi, és a program leállását eredményezi. Light: Ez a blokk tulajdonképpen egy háromállapotú riasztó. Alapértelmezett esetben a kielző piros színe jelzi, ha a bemenő jel túllép egy megadott értéket, a kék szín jelzi, ha egy adott érték alatt van a jel, és zöld jelzi, ha a felső és alsó korlát között van a bemenő jel. Stop: Ha a
bemenő jel nem nulla, akkor leállítja a szimulációt. Plot: Az általunk leggyakrabban használt kijelzési mód. A jelet egy kétdimenziós koordináta rendszerben, grafikusan jeleníti meg Maga a kijelző és a megjelenített adat reprezentálása módosítható (lásd 4-9.ábra) 4-9. ábra Kijelző 117 4.5 Szimulációs beállítások (Simulate) A modell felépítése után indítható a szimuláció. Először a jelgeneráló blokkot(egységugrás, Dirac-delta, stb) értékeli ki a program Aztán elküldi az adatokat a köztes blokkoknak (melyek rendelkeznek bemenettel és kimenettel is), végezetül az adatok a megjelenítő (plot, meter, stb.) bemenetére kerülnek, mely a végeredményt ábrázolja Amikor szimulálunk egy modellt, a VisSim a blokkdiagramban lévő egyenleteket numerikus módszerekkel oldja meg véges intervallumon belül, lépésenként haladva az egyenleteken. Így definiálni kell a szimulációs időközt, a használandó algoritmust és a
lépésközt is. Ezeket az értékeket a Simulation Setup ablakban módosíthatjuk. (1) Szimulációs beállítások A szimulációs beállítások ablakot a Menu > Simulation Setup menüpontból érhetjük el (lásd 4-10). 4-10. ábra Szimulációs beállítások Range control 118 Itt állíthatjuk be, hogy a szimuláció mely időponttól(Range start) mely időpontig (Range end) tartson és, mekkora legyen a lépésköz (Step size). Értelemszerűen csak a szimulációs időtartományon belül kiszámolt értékek jellenek meg a kijelzőn Ebben a mezőben állítható be, hogy a szimuláció valós időben fussone vagy nem, valamint a szimuláció lejátszódása után az automatikus újraindítás is lehetséges. Integration Algorithm A VisSim hét integráló algoritmust tartalmaz. Ezek az Euler, trapéz, másod- negyed,-ötödrendű Runge Kutta módszer, Bulirsh-Stoer és viszszafelévett Euler módszer. Mindegyik módszer az integrálás egy numerikus közelítésétt
szolgáltatja A bonyolultabb módszerek sokkal biztosabb, numerikusan helyesebb eredményt szolgáltatnak, bár futási idejük sokkal hosszabb. Ezen módszerek részletes ismertetésére itt nem terünk ki. (2) Szimuláció vezérlése A szimuláció egyszerű vezérlésére az eszköztár sávban találunk három gombot. Ha az eszköztár nem látható, megnyithatjuk a View > Toolbar menüpontból A gombok a következő funkciókat láják el: Szimuláció indítása ábra A szimulációt erre az ikonra való kattintással indíthatjuk el. Ugyanez a funkció érhető el a Simulate > Go menüpontból. Szimuláció megállítása ábra A szimuláció megállításásra való, ugyanúgy mint a Simulate > Stop menüpont. Szimuláció léptetése ábra Ez a gomb a szimuláció lépésenkénti végrehajtására való. Minden alkalommal, mikor e gombot megnyomjuk, a szimuláció egy lépéssel előreugrik, elvégezve a számításokat 119 ábra A szimuláció folytatásához
ezt a gombot kell aktíválni, ekkor a szimuláció abbahagyja a lépésenkénti futást, és végrehajtja a szmulációt. 120 4.6 Analizálás (Analyze) A rendszer megépítése utána magával a szimulációval önmagában nem érünk semmit. A szimuláció során kapott adatokat ki kell értékelni, és a következtetéseinket le kell vonni Erre szolgál az analizálás, megy a VisSimben igen sokrétű. Több szempontból is vizsgálhatjuk a kapott eredményeket, grafikonokat rajzolhatunk, táblázatokat készíthetünk. Ezeket a lehetőségeket az Analyze menüpontból érhetjük el. 4.61 Átviteli függvény(Transfer function) Az átviteli függvénnyel jellemzett blokk kijelölése után az átviteli függvényről kapunk itt információkat, úgy mint az erősítést valamint a számláló és nevező különböző fokszámú tagjainak együtthatóit láthatjuk táblázatos formában. Az ablakban az ok gombra kattintva új ablak nyílik meg, melyben a rendszer
zérushelyei (4-11.ábra) és pólusai (4-12ábra) vannak feltűntetve 4.62 Módosítás szerkesztő (Compensator Design) Ebben a módban lehetséges az átviteli függvény módosítása oly módon, hogy újabb pólusokat illetve zérushelyeket definiálhatunk, valamint régieket törölhetünk (lásd 4-13.ábra) A Replot gombbal pedig automatikusan megkapjuk a módosított rendszert jellemző függvényeket (lásd 4-14.ábra), mint gyökhelygörbe, Bode diagram 4.63 Gyökhelygörbe, Nyquist diagram (Root locus, Nyquist Response) Ezzel a rendszert jellemző gyökhelygörbe illetve Nyquist diagram rajzolható ki (lásd 4-15.ábra) 121 4-11. ábra Átviteli függvény - együtthatók 4.64 Bode diagram (Frequency Response, Frequency Range) A Bode diagram amplitudó és fáziskarakterisztikájának kirajzolása nem egyszerre történik, hanem a két menüpomtból külön külön (lásd 4-16.ábra) 122 4-12. ábra Átviteli függvény - pólusok, zérushelyek 123
4-13. ábra Compensator 124 4-14. ábra Replot 125 4-15. ábra Gyökhegygörbe, Nyquist diagram 126 4-16. ábra Bode diagram 127