Subsystém a maskovaný subsystém, uživatelské knihovny Studijní cíl Jedenáctý blok je věnován jednak dalším možnostem SIMULINKu pro usnadnění tvorby složitějších modelů. V první části se ukážeme tvorbu subsystémů a maskovaných subsystémů a zmíníme se o používání funkcí. V druhé části si ukážeme tvorbu uživatelských knihoven. Doba nutná k nastudování hodiny Průvodce studiem Předpokládá se, že čtenář je seznámen s prostředím MATLABu a možnostmi SIMULINKu popsanými v předchozích kapitolách. Pro řešení příkladů jsou též potřeba základní znalosti matematiky, fyziky a z oblasti diferenciálních rovnic. Při studiu je vhodné mít spuštěný MATLAB a SIMULINK a jednotlivé příkazy či funkce hned vyzkoušet a případně získat podrobnější informace využíváním nápovědy k programu. Na závěr jsou opět uvedeny řešené příklady na procvičení. V textu jsou použity následující typografické konvence: Calibri, Bold, Italic nové pojmy k zapamatování Calibri označení klávesy Courier New, Bold názvy nástrojů MATLABu Courier New názvy bloků použitých v programu Courier New, Italic názvy proměnných použitých v programu názvy parametrů bloků či dialogových oken Courier New, Bold upřesnění nápovědy (help téma) KŘP/IMSW (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
. Subsystémy a funkce V SIMULINKU je možné používat funkce, jak je známe ze standardních programovacích jazyků, jen omezeně. Mnohem častější je používání subsystémů tj. zapojení několika existujících bloků do nového bloku. Použití subsystémů zpřehledňuje zápis složitějších modelů a usnadňuje jejich vytváření v případě, že obsahuje opakující se části. Maskovaný subsystém dovoluje vytvořit pro každý subsystém samostatnou sadu proměnných, jejichž hodnoty lze v uživatelsky vytvořeném dialogovém okně zadat a zadané hodnoty příkazy MATLABu libovolně přepočítat... Subsystém V terminologii SIMULINK je pojmem subsystém označováno zapojení několika existujících bloků s označení vstupních a výstupních signálů vytvářející nový blok. Je potřeba si uvědomit, že nejde o funkci ve smyslu, jak ji známe ve standardních jazycích. Jde o ekvivalent makra, tj. před spuštěním řešení dojde k rozkladu každého subsystému na knihovní bloky a jejich vložení do modelu tolikrát kolikrát je subsystém v modelu použit. Nedochází tedy k vícenásobnému využití stejného kódu jako u funkce. Význam subsystému je v zvýšení přehlednosti zápisu modelu a zvyšuje efektivitu tvorby složitějších modelů možností opakovaně použít opakující se části zapojení. Vytvoření a použití subsystému ukažme na příkladě výpočtu časového průběhu teploty vody na výstupu z trubky parního ohřívače v závislosti na průtoku ohřívané vody. Formulace úlohy vede na parciální diferenciální rovnici s nezávisle proměnnými čas a vzdálenost od počátku trubky. My si ukážeme přibližné řešení náhradou parciální diferenciální rovnice soustavou rovnic diferenciálních. Toto řešení vychází z myšlenky nahradit spojitou časovou změnu teploty podél délky trubky mnoha krátkými úseky se stejnou ale časově proměnnou teplotou. Pokud zanedbáme tepelnou kapacitu pláště trubky, budeme předpokládat, že teploty kondenzující páry T p je po celé délce stejná, že teplota T k je T k T p T k T k+ v objemu každého k tého úseku stejná a že M, S dochází k výměně tepla pouze v radiálním směru, můžeme k tý úsek popsat diferenciální rov c, α m m nicí (viz také schéma na Obrázku ) vycházející z tepelné bilance úseku. T p ( T T ) dtk mct k + αs p k = mctk + Mc 3 443 3 443 dt prichazeji teplo ci Obrázek k tý úsek tepelného výměníku predane teplo odchazejic teplo i akumulovane teplo kde m [kg.s ] hmotový průtok ohřívané vody Je možné použít jak standardní knihovní bloky tak i dříve vytvořené subsystémy či maskované subsystémy. KŘP/IMSW (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
c [J.kg.K ] měrná tepelná kapacita vody α [J.m.s ] koeficient přestupu tepla S [m ] přestupní plocha tepla jednoho úseku M [kg] hmota vody v jednom úseku Z této rovnice vyjdeme při vytváření modelu. Nejprve ji převedeme do tvaru vhodnějšího pro převod do formy modelu a T t k = m Tk M Obrázek Jeden úsek tepelného výměníku s označením vstupů a výstupů αs ( T ) + ( T T ) dt uvědomíme si, co jsou vstupní (m, T k, T p ) a výstupní signály (T k ) abychom je v zapojení modelu označili bloky In (knihovna Sources) a Out (knihovna Sinks). Odpovídající model pak může vypadat, jak je ukázáno na Obrázku. Je vhodné pojmenovat bloky In, Out názvy odpovídajícími významu signálů. Čísla uvnitř bloků určují pořadí vstupů či výstupů subsystému. Pořadí je možné kdykoli změnit změnou čísla v bloku. Subsystém nyní vytvoříme tak, že vybereme (označíme) všechny bloky, které budou tvořit subsystém, a pomocí nabídky hlavního menu Edit->Create Subsystem nebo pomocí pravého tlačítka myši a volby Create Subsystem nebo Ctrl+G vytvoříme subsystém. Vznikne nový blok s příslušný m počtem vstupů a výstupů jak je ukázáno na Obrázek 3 Nově vzniklý blok Subsystem Obrázku 3. Vnitřní zapojení nemaskovaného subsystému zobrazíme v novém okně dvojklikem na blok. Máme li připraven jeden díl, můžeme vytvořit celkový model jednotlivé díly zkopírujeme, propojíme, definujeme vstupní signály celého zapojení a vybereme signály pro zobrazení požadovaných průběhů. Znázorněme průběh výstupní teploty výměníku tvořeného jednou trubkou o průměru 3 cm délky m při změně z nulového průtoku na průtok.5 kg.s. Teplota syté páry je udržována na hodnotě C, teplota vstupující vody je 3 C, měrná tepelná kapacita vody je 48 J.kg.K a koeficient přestupu tepla je 8 J.m.s. Ukažme průběh výstupní teploty při dělení na 6 a dílů. Nejprve si připravíme hodnoty parametrů nejlépe pomocí skriptu, kde přepočítáme zadané hodnoty na potřebné parametry. Obě varianty výpočtu se kro k Mc p k Můžeme označit také jen pouze část bloků v okně modelu. Pozor pokud chceme označit všechny bloky v okně modelu, není možné použít pro označení Ctrl A. Je nutný výběr oblasti tažením myší nebo výběr jednotlivých bloků. KŘP/IMSW 3 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
mě počtu dílů (použitých subsystémů) budou ještě lišit hodnotami parametrů S (přestupní plocha tepla = plášť trubky v jednom dílu) a M (hmotnost vody hmotnost objemu jednoho dílu). Počáteční teploty dílů při nulovém průtoku budou stejné jako teplota páry. Tp=; T=3; Tk=Tp; al=8; c=48; ro=; % teplota páry v okolí trubky % teplota vstupující vody % počáteční teplota stejná jako teplota okolí % koeficient přestupu tepla % měrná tepelná kapacita vody % hustota vody L=; D=.3; S=pi*D*L; S=S/6; S=S/; M=pi*D^/4*ro; M=M/6; M=M/; % délka trubky % průměr trubky % plocha pláště trubky % přestupní plocha dílu při dělení na 6 dílů % přestupní plocha dílu při dělení na dílů % hmotnost objemu vody v trubce % hmotnost vody v dílu při dělení na 6 dílů % hmotnost vody v dílu při dělení na dílů Nyní modifikujme subsystém tak, že změníme symbolické parametry S, M na S, M, uzavřeme okno se subsystémem a přejmenujeme ho na D6. Zkopírujeme, změníme názvy parametrů S, M na S, M a nový subsystém přejmenujeme na D. Z důvodu přehlednějšího zapojení celkového modelu doporučuji změnit pořadí vstupů tak, že signál m bude první a signál Tp třetí. Dále kopírováním subsystémů a jejich propojením vytvoříme celkový model (viz Obrázek 4). Obě řady bloků budou mít společné vstupní signály T, Tp a m. Obrázek 4 Dva modely tepelného výměníku Průběh výstupních signálů obou modelů tepelného výměníku je na Obrázku 5... Maskovaný subsystém Možnost zamaskovat subsystém dovoluje vytvořit vlastní pracovní prostor pro symbolické parametry použité v blocích subsystému. Maskovaný systém tedy umožňuje, aby každá kopie subsystému měla vlastní sadu hodnot použitých symbolických proměnných. Vytvoření maskovaného subsystému ruší napojení na pracovní prostor MATLABu. Hodnoty symbolických proměnných se zadávají v dialogovém okně, které se připraví v rámci vytváření maskovaného systému. Kromě zadání hodnot je možné přepočítat zadané hodnoty libovolnými příkazy KŘP/IMSW 4 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
3 m=.5 kg.s - Tepelný výměník T6 T 9 8 7 6 m= 5 5 5 5 3 35 4 45 5 55 6 Obrázek 5 Výstupní teploty výměníku a funkcemi MATLABu. Přepočet se provádí po ukončení zadávání a před spuštěním řešení modelu. Vytvoření maskovaného subsystému ukážeme opět na příkladu. Použijeme příklad z předchozí kapitoly.., kde parametry bloků Gain a Gain v subsystému na Obrázku 4 nahradíme parametry G=αS/M/c a G=/M. Zamaskování subsystému se provede pomocí nástroje Mask Editor, který vyvoláme buď pomocí položky hlavního menu Edit->Mask Subsystem nebo pravým tlačítkem myši a volbou Mask Subsystem. nebo kombi nací kláves Ctrl+M. Podrobněji o možnostech nástroje Mask Editor viz nápověda vyvolaná tlačítkem Help. Dialogové okno nástroje Mask Editor má čtyři záložky, z nichž se zmíníme o dvou. V záložce Parameters (viz Obrázek 6) se definují nápovědné texty a názvy Obrázek 6 Mask Editor / Parameters proměnných, do kterých se uloží při použití masky zadané hodnoty. V záložce Initialization se zadávají příkazy MATLABu, které se mají pro vést při dokončení zadání hodnot parametrů případně při spuštění řešení mo KŘP/IMSW 5 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
Obrázek 7 Mask Editor / Initialization V případě potřeby editace masky je nutné po vybrání bloku maskovaného subsystému vybrat buď položku hlavního menu Edit->Edit Mask nebo pomocí pravého tlačítka myši a volbu Edit Mask nebo kombinaci kláves Ctrl+M. Pokud chceme zobrazit či změnit zapojení bloků maskovaného subsystému je nutné po vybrání bloku maskovaného subsystému vybrat buď položku hlavního menu Edit->Look Under Mask nebo pomocí pravého tlačítka myši a volbu Look Under Mask nebo kombinaci kláves Ctrl+U. Vytvořený maskovaný subsystém je možné kopírovat a každá kopie může mít jiné hodnoty parametrů...3 Uživatelem definované funkce v SIMULINKu delu. Na Obrázku 7 je ukázka zápisu příkazů pro výpočet paramet rů G a G na základě hodnot zadaných parametrů zadaných v masce. Po dvojkliku na zamaskovaný systém se vyvolá dialogové okno (podle návrh u vytvořeného v Mask Edi- které umožní zadat či tor->parameters), změnit hodnoty parametrů (viz Obrázek 8). Obrázek 8 Dialogové okno parametrů maskovaného subsystému Jak již bylo řečeno možnost používání funkcí je v SIMULINKových modelech omezena. Jsou v podstatě tři možnosti, všechny založené na syntaxi MATLABu a přístupné pomocí bloků v knihovně User-Defined Functions. Nejjednodušší možností je použití bloku Fcn, který má jeden vstup (který může být i D pole signálů) a jeden výstup. Jako parametr bloku může být uveden libovolný přípustný výraz v syntaxi MATLABu se skalárním číselným výsledkem. Není možné používat vektorové operace. Na hodnoty jednotlivých vstupních signálů se ve výrazu odkazujeme pomocí proměnné u(n), kde n je pořadové číslo signálu v D poli signálů na vstupu bloku. Chceme li např. vyhodnotit KŘP/IMSW 6 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
) výraz y = a + ( sin( b)cos( c) a vstupní D signál přivedený na vstup bloku Fcn je složen ze signálů {c,a,b} v uvedeném pořadí, pak jako parametr bloku Fcn zapíšeme poměrně nepřehledný výraz sqrt(u()^+(sin(u(3)*cos(u()))^). Blíže v nápovědě vyvolané tlačítkem Help bloku Fcn. Další možností je použití bloku (Embedded) MATLAB Fcn, který dovoluje vytvořit uživatelskou funkci v syntaxi MATLABu. Uvnitř funkce lze použít pouze omezenou množinu příkazů a funkcí MATLABu. Vytvořená funkce může mít více vstupních i výstupních parametrů, z nichž každý může být složený z D polí signálů nebo vektorových signálů. Při spuštění řešení jsou příkazy přeloženy a funkce je v rámci řešení spouštěna jako binární kód. Použití jednoduchých bloků umožňujících volat standardní či uživatelem definovaných funkcí ukážeme na příkladu pracujícím s vektorovými signály (viz model na Obrázku 9 s uvedenými rozměry signálů). Mějme čtyři časově závislé signály. Signál a( = cos(π/3* generovaný blokem Trigonometric Function, signál b( = sin(π/5* generovaný blokem Sine Wave Function s parametry Amplitude:, Frequence: *pi/3, Bias: a Phase:, signál c(= sin(π/4* generovaný blokem Fcn s parametrem sin(*pi/4*u()) a signál d( = cos(π/6* generovaný blokem MATLAB Fcn s parametrem cos. Signály jsou po dvojicích sloučeny do D signálů (blok Mux), které jsou blokem Reshape převedeny na řádkový a sloupcový vektorový signál. Oba vektorové signály jsou přivedeny na vstup bloku Embedded MATLAB Fcn, který provede skalární (výstupní signál y) a maticový (výstupní signál y) součin vektorových signálů. Funkce obsažená v bloku Embedded MATLAB Fcn je ukázána na Obrázku. Po dvojkliku na tento blok se spustí nástroj Embedded Obrázek 9 Funkce bloku Embeded MATLAB Fcn Obrázek Různé možnosti použití funkcí MATLAB Editor, ve kterém je možné uživatelskou funkci vytvořit či editovat. Počet vstupů a výstupů bloku se přizpůsobuje počtu vstupních a výstupních parametrů definovaných v hlavičce uživatelem vytvářené funkce. Nejsložitější možností vytvářet funkce je použití tzv. S funkcí. Pomocí bloku S- Function Builder je možné založit kostru S funkce v jazyce C a doplnit KŘP/IMSW 7 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
uživatelský kód. Případně pomocí bloků S-Function (vložení funkce vytvořené ve FORTRANu, jazyce C nebo v syntaxi MATLABu s určitými omezeními) či Level- MATLAB S-Function (plné možnosti vložené funkce zapsané v syntaxi MATLABu) lze vložit připravený kód. Kromě vlastní výkonné části musí kód obsahovat několik dalších vstupních bodů volaných v různých fázích řešení modelu. Vložená S funkce se chová jako nový blok včetně možnosti zadávat parametry a případné změny počtu vstupů a výstupů v závislosti na hodnotách parametrů.. Tvorba uživatelských knihoven Další rozšíření možností subsystémů představuje knihovna. Vytvářet knihovnu (sadu bloků) má význam v případě, že předpokládáme, že tyto bloky budeme opakovaně používat v různých modelech a potřebujeme zajistit automatickou aktualizaci při změně vlastností knihovního bloku. Zásadní rozdíl mezi blokem kopírovaným z jiného modelu a z knihovny je v tom, že při kopírování bloku knihovny je kopie závislá na originále. Je sice možné měnit u kopie knihovního bloku hodnoty parametrů, ale není možné měnit masku či vnitřní zapojení bez přerušení vazby na originál. Vazba zajišťuje automatickou změnu vlastností všech kopií v různých modelech při změně knihovního bloku. Uložení bloků ve formě knihovny tedy umožňuje jejich jednoduché přetahování z knihovny do otevřeného modelu a automatickou aktualizaci knihovních bloků použitých v modelu v případě, že byla knihovna upravena. Další vlastností je ochrana bloku použitého v modelu knihovní modul není možné v modelu upravovat bez zrušení vazby na knihovnu. Ukažme si jednoduchý příklad vytvoření knihovny, která bude obsahovat čtyři varianty ideálního spojitého PID regulátoru (P, PI, PD a PID), popsanými následujícími rovnicemi P : u( = r e( PI : u( = r e( + TI PID : u( = r e( + TI t e( dt e( dt + T PD : u( = r e( + T KŘP/IMSW 8 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice t D de( dt D de( dt Založíme okno nové knihovny volbou File->New->Library. To že jde o okno knihovny je indikováno v názvu okna (viz Obrázek ). Sestavíme zapojení bloků pro jednotlivé regulátory, každé označíme jako subsystém a zamaskujeme vytvoříme masku pro zadání parametrů r, T I a T D. Knihovnu (viz Obrázek ) uložíme např. pod názvem regpid a okno uzavřeme. Tím dojde k uzamčení vytvořené knihovny. Změna knihovny Pokud otevřeme existující knihovnu, je chráněna proti nechtěným změnám. To, že pracujeme s knihovnou a ne se standardním modelem, se kromě indikace v záhlaví okna projeví v okamžiku, kdy budeme chtít přidat nový blok nebo existující blok upravit. Pokus o úpravu knihovny vyvolá okno s upozorněním (Message), že chceme upravovat uzamčenou (locked) knihovnu. Knihovnu je
možné odemknout buď v uvedeném okně nebo volbou Edit->Unlock Library. Pak je možné bloky do knihovny přidávat či upravovat. Nové uzamčení se provede při uložení knihovny a uzavření okna. Aktuální stav (Locked/Unlocked) je indikován ve stavovém řádku okna (pravý dolní roh). PID regulator /TI Gain s Integrator e( r Gain TD du/dt u( Gain Derivative PI regulator /TI Gain5 s Integrator e( r Gain4 u( r e( Gain7 PD regulator TD Gain9 du/dt Derivative u( r e( Gain3 P regulator u( Obrázek Vytváření knihovny regpid Změna knihovního bloku použitého v modelu Když zkopírujem e blok z existující knihovny do jiného modelu, je vytvořena vazba na příslušný knihovní blok a nelze jej upravovat bez zrušení vazby na knihovnu. Otevřeme li takový blok, zjistíme, že otevřeme vazbu (link) na původní knihovní blok (informace v záhlaví okna). Pokud budeme chtít provést změnu v zapojení (vymazat či přidat blok, jinak zapojit atd.), objeví se okno (Message) s upozorněním a možností zrušit vazbu na knihovnu. Při pokusu změnit např. název parametru bloku se opět objeví okno (Warning) s informací o pokusu změnit parametry knihovního bloku. Pokud chceme editovat blok, musíme vazbu na knihovní blok zrušit. Možné je úplné zrušení vazby příkazem Edit->Link Option->Break Link nebo KŘP/IMSW 9 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
dočasné zrušení vazby. Dočasně můžeme zrušit vazbu buď volbou v okně upozornění nebo volbou Edit->Link Option->Disable Link. Zrušená vazba může být opět obnovena. Příkazem Edit->Link Option->Resolve Link je vyvoláno dialogové okno, které nabídne selektivně pro každý změněný blok buď obnovu původního knihovního bloku (Restore) nebo jeho aktualizaci (Push) na základě provedených změn. Aktualizace knihovních bloků použitých v různých modelech dle stavu v knihovn ě se provádí při načtení modelu nebo v otevřeném modelu při použití příkazu Edit->Update Diagram. KŘP/IMSW (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
.3 Příklady na procvičení V kapitole.3. jsou zadání a v kapitole.3. řešení příkladů zahrnujících možnosti SIMULINKu zmiňované v této a předchozích kapitolách. Předpokládá se, že při řešení příkladů má čtenář k dispozici MATLAB a SIMULINK a aktivně využívá nápovědu k programu..3. Zadání příkladů Př. Nalezněte časový průběh signálů x, y a z po dobu prvních s pro dvě sady hodnot parametrů, je li dána soustava rovnic by cz x + ax + x = + a + a + b + c cz ax y + by + y = + b + a + b + c ax by z + cz + z = + c + a + b + c x () = a y () = b z () = c x() = y() = z() = Sada A: a =. b =. c =.3 Sada B: a =. b =.5 c =.3 Návod: Vytvořte subsystém popisující jednu rovnici, zkopírujte a upravte identifikátory parametrů a počáteční hodnoty integrátorů. Použijte maskovaný subsystém s hodnotami parametrů a, b, c zadávanými v masce. Př. Nalezněte časový průběh výšek hladin soustavy válcových nádrží s přepadem zapojených podle schématu po dobu prvních 3 s, je li každá nádrž popsána soustavou rovnic dh in = Qou + S Qou = svo( 8 ms dt a parametry jednotlivých nádrží jsou shrnuty v následující tabulce, kde jsou uvedeny průměry ploch S nádrží a průměry kruhových výtokových ploch s v jednotlivých ventilů. Otevření ventilů je signál tj. časově proměnná veličina. Q Veličina Rozměr 3 Q in m 3 s t<, Q=7E 5 t, Q= o.5.5.3 h m..95.7 h m m.4..75 D m.5..5 d m.5.6.7 ( o( ) gh( h() = h g = 9. Návod: Vytvořte maskovaný subsystém obsahující všechny potřebné parametry v masce. Při řešení přetečení využijte možnost omezit výstup integrátoru (výšky hladiny). Pomocí výstupu integrátoru indikujícího, že došlo k omezení, a bloku Switch zajistěte, že výtok nádrže je buď výsledek výpočtu, nebo hodnota vstupní přítoku. h m h Q in S Q ou o s v 3 KŘP/IMSW (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
.3. Řešení příkladů Z důvodu menší velikosti souboru a lepšího tisku nebudou grafické průběhy zobrazovány v textu jako hardcopy grafu bloku Scope, ale průběhy budou vykreslovány v MATLABu pomocí příkazu plot. Př. Nalezněte časový průběh signálů x, y a z po dobu prvních s pro dvě sady hodnot parametrů, je li dána soustava rovnic Sada A: a =. b =. c =.3 Sada B: a =. b =.5 c =.3 Maskovany subsystem y z z x x y x Subsystem x y Subsystem y z Subsystem z Pro zápis diferenciální rovnice druhého x + ax řádu můžeme využít přepis na soustavu dvou rovnic prvního řádu, které se jednodušeji přepisují do mode r = u x = r lu SIMULINku. Tuto rovnici zapíšeme jako model, kde signál u( nahradíme příslušným tvarem, označíme b y vstupy (blok In) a výstupy (blok Ou a vytvoříme který xyz Gain + x = u ar x Subsystem x Jm x() = x x = r = Gain ( u ar x) dt r() = d subsystém, c a označíme z Gain3 Constant např. jako Subsystem x. Subsystém dvakrát zkopírujeme, vhodně pojmenujeme, upravíme názvy proměnných v kopiích a propojíme příslušné vstupy a výstupy subsystémů. Doplníme výstupní signál, vytvoříme další subsystém a zamaskujeme. Kromě zadaných parametrů uložených do proměnných a, b, c, v záložce Initialization vypočteme hodnotu pomocné proměnné Jm=/(+a+b+c). Výsledné průběhy pro obě sady parametrů jsou na následujícím obrázku. rdt u x () = d r()=a s x() = x Integrator a Gain r x()= s Integrator x x Sada parametrů A x y z - 3 4 5 6 7 8 9 3 Sada parametrů B y z - 3 4 5 6 7 8 9 x KŘP/IMSW (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
Př. Nalezněte časový průběh výšek hladin soustavy válcových nádrží s přepadem zapojených podle schématu po dobu prvních 3 s. Qin Qin Nadrz s prepadem Vytvoříme maskovaný subsystém pro jednu nádrž, kde v integrátoru nastavíme omezení výstupu (dolní omezení na a horní na hm) včetně povolení výstupu Saturation port. Řešení přepadu realizujeme pomocí bloku Switch, kde parametr Threshold nastavíme na hodnotu.5 (při dosažení horní meze se výstup Saturation port změní z na, dojde k překročení prahu.5 a přepínač přepne vstupy). V masce přepočteme zadané průměry na odpovídající plochy pozor SIMULINK nerozlišuje v masce malá a velká písmena v názvech proměnných prot o název proměnné D a dv. Celkový model je pak tvořen trojicí těchto maskovaných subsystémů s propojenými výtoky a přítoky jak je uvedeno na obrázku. Průběhy výšek hladin pro zadané parametry jsou uvedeny na dalším obrázku. o Constant.5 Constant3 Step.5 Constant Product Qin o h Qou Nadrz.3 Constant Qin sv Qou Gain Qin o Qin h Qou Nadrz /S u Sqrt Gain Qou h()=h Upper saturation limit: hm Lower saturation limit: Qin o h s Integrator Threshold:.5 h Qou Nadrz 3 >= Switch *g Gain Terminator - / / + Qou Scope h.5 h h h3.5 5 5 5 3 KŘP/IMSW 3 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice
Pojmy k zapamatování Okruhy problémů: tvorba a použití subsystému a maskovaného subsystému, možnosti tvorby funkcí v SIMULINKu, tvorba knihoven SIMULINKu Library Browser, Mask Editor, Embedded MATLAB Edi Použité nástroje: tor Bloky: Constant, Embedded MATLAB Fcn, Fcn, Gain, IC, In, Integrator, Mux, Out, Product, Reshape, Scope, Step, Sum, Switch, Trigonometric Function Otázky na procvičení. K čemu slouží bloky In a Out?. Jaký je rozdíl mezi subsystémem a funkcí? 3. Pomocí jakého bloku můžeme realizovat složitější matematický výraz? 4. Co označuje pojem S funkce? 5. V čem se liší bloky (subsystémy) vytvořené v okně modelu a v okně knihovny? 6. Jak se uzamkne knihovna? 7. Jak je možné měnit bloky knihovny? Odkazy a další studijní prameny elektronická dokumentace k programu SIMULINK v Reference / Simulink Graphical User Interface část Simulink Mask Editor elektronická dokumentace k programu SIMULINK v User's Guide / Managing Blocks části Using the Embedded MATLAB Function Block a Working with Block Libraries elektronická dokumentace k programu SIMULINK v Blocks části User Defined Functions / Embedded MATLAB Function a User Defined Functions / Fcn elektronická dokumentace www.mathworks.com/help/ KŘP/IMSW 4 (4) František Dušek Modelování ve výpočtových software.. KŘP FEI Univerzita Pardubice