224
Matlab & Simulink studijní materiály pro předmět Základy kybernetiky Libor Kupka

Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

  • Upload
    bea

  • View
    826

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Matlab & Simulink

studijní materiály pro předmět Základy kybernetiky

Libor Kupka

Page 2: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 3: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

3

Obsah

Předmluva ................................................................................................ 5

1 Úvod .................................................................................................... 7

2 Základy práce v prostředí MATLAB ................................................. 9

2.1 Práce v příkazovém řádku..................................................................13

2.2 Proměnné v MATLABu.......................................................................15

2.3 Komplexní čísla ..................................................................................17

2.4 Formát zobrazování čísel ...................................................................17

2.5 Vybrané matematické funkce .............................................................18

3 Práce s vektory a maticemi............................................................. 23

3.1 Některé speciální typy vektorů a matic...............................................25

3.2 Základní operace s maticemi..............................................................26

3.3 Indexovaní vektorů a matic.................................................................29

3.4 Základy práce s mnohočleny..............................................................32

4 Základní použití 2D grafiky ............................................................. 37

4.1 Vykreslení grafu .................................................................................39

4.2 Popis grafu .........................................................................................42

4.3 Ovládání souřadných os.....................................................................46

4.4 Kreslení více grafů do jednoho okna ..................................................48

4.5 Vybrané speciální typy 2D grafů.........................................................50

5 Práce se soubory a tvorba skriptů ................................................. 57

5.1 Základy práce se soubory ..................................................................61

5.2 Tvorba skriptů.....................................................................................65

6 Základy práce v prostředí Simulink ............................................... 69

6.1 Standardní knihovny Simulinku ..........................................................71

6.2 Vytváření modelu ...............................................................................80

6.3 Spuštění simulace a zobrazení výsledků ...........................................87

6.4 Vytváření subsystémů ........................................................................93

6.5 Volba testovacích signálů...................................................................98

7 Modelové příklady.......................................................................... 104

7.1 Rezonanční vlastnosti RLC členu.....................................................104 7.1.1 Vytvoření simulačního modelu...............................................105 7.1.2 Spuštění simulace a zobrazení výsledků ...............................108

Page 4: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Obsah

4

7.1.3 Frekvenční charakteristiky..................................................... 110

7.2 Dynamika sedadla řidiče.................................................................. 114 7.2.1 Vytvoření simulačního modelu .............................................. 117 7.2.2 Spuštění simulace a zobrazení výsledků .............................. 118 7.2.3 Matematická analýza pohybu sedadla .................................. 119 7.2.4 Ověření analytického řešení v Simulinku .............................. 123 7.2.5 Dynamický systém na mezi periodicity.................................. 124 7.2.6 Kmitavý dynamický systém ................................................... 125

8 Příklady z oblasti modelování systémů....................................... 130

8.1 Vývoj výšky hladiny v nádrži ............................................................ 130

8.2 Vývoj výšky hladin dvou spojených nádrží....................................... 135

8.3 Navíjecí zařízení .............................................................................. 138

8.4 Stejnosměrný motor s cizím buzením.............................................. 141

8.5 Stejnosměrný motor s buzením permanentními magnety................ 145

9 Příklady z oblasti automatického řízení ...................................... 148

9.1 Přechodové charakteristiky dynamických systémů 1. řádu.............. 148

9.2 Přechodové charakteristiky dynamických systémů 2. řádu.............. 153

9.3 Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu ............................................................................. 160

9.4 Frekvenční charakteristiky dynamických systémů 2. řádu ............... 165

9.5 Přechodové charakteristiky PID regulátoru...................................... 174

9.6 Regulační obvod se spojitým PID regulátorem................................ 178

9.7 Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse ........................................................................................ 185

9.8 Oblast stability regulačního obvodu ................................................. 192

9.9 Dvoupolohová a třípolohová regulace ............................................. 197

9.10 Číslicové řízení, regulátor PSD........................................................ 202

9.11 Numerická optimalizace parametrů regulátoru ................................ 207

Literatura .............................................................................................. 215

PŘÍLOHA A: Laplaceova integrální transformace .......................... 217

Page 5: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

5

Předmluva

Tento studijní text byl vytvořen v rámci projektu CZ.04.1.03/3.2.15.3/0442 operačního programu Evropské unie Rozvoj lidských zdrojů v Opatření 3.2 – Podpora terciárního vzdělávání, výzkumu a vývoje, který byl zaměřen na inovaci studijního oboru Informatika a logistika bakalářského studijního programu Elektrotechnika a informatika na Fakultě mechatroniky a mezioborových inženýrských studií.

Nově vytvořený učební text vychází z již vydaných knih [8, 9], které velmi podrobně popisují prostředí MATLAB & Simulink verze R2006a. Tyto knihy byly primárně určeny pro vyučující středních škol technického typu a jejich náklad byl již rozebrán. Nově zpracovaný text je přizpůsoben podmínkám výuky v předmětu Základy kybernetiky – probírány jsou pouze některé partie, které s výukou bezprostředně souvisí. Text je kompletně přepracován do novější verze prostředí R2007b.

Studijní text by měl studentům předmětu Základy kybernetiky, pro které je určen, především usnadnit práci v programovém prostředí MATLAB – SIMULINK. Vzhledem k relativně nízké hodinové dotaci předmětu a vzhledem k absenci předmětu, ve kterém by bylo uvedené programové prostředí probíráno samostatně, by měl tento text studentům významně usnadnit orientaci v probírané problematice. Text byl koncipován nejen pro podporu seminárních cvičení, ale tvoří i teoretický základ pro část přednášek v předmětu. Student oboru Informatika a logistika by měl získat přehled o základních možnostech a přístupech k modelování dynamických systémů, o stabilitě a statických i dynamických vlastnostech těchto systémů a samozřejmě také o metodách jejich řízení a regulace.

Učební text lze využít i pro podporu výuky v předmětech Základy spojitého řízení a Prostředky automatického řízení vyučovaných na fakultě v bakalářském studiu a předmětů Automatické řízení, Číslicové řízení, Identifikace dynamických systémů a Adaptivní řízení vyučovaných ve studiu navazujícím. Text však může být dobrou pomůckou i studentům předmětů Základy řízení a regulace a Teorie automatického řízení vyučovaných na Fakultě strojní a Fakultě textilní Technické univerzity v Liberci. Studenti jej mohou použít samozřejmě i při vypracování jejich ročníkových projektů a bakalářských či diplomových prací.

Milou povinností autora je poděkovat paní doc. Ing. Jiřině Královcové, Ph.D., vedoucí projektu ESF pro inovaci studijního oboru Informatika a logistika, za poskytnutý prostor a finanční podporu, bez níž by tento text nemohl vzniknout. Autor by také rád vyjádřil poděkování doc. Ing. Josefu Janečkovi, CSc. za poskytnutí podkladů k úlohám uvedeným v kapitolách 7.2, 9.1, 9.5 a 9.8 až 9.11.

Liberec, červen 2008

Autor

Page 6: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 7: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

7

1 Úvod

Předkládaný studijní text si klade za cíl seznámit čtenáře s ovládáním a se základními funkcemi prostředí MATLAB – Simulink. Vzhledem k rozsahu tohoto prostředí jsou podrobně probírány pouze některé jeho části. Jsou to zejména části, které jsou pro práci v MATLABu a v Simulinku nezbytné. Jejich znalost je nutná při vytváření modelů, ať již samotných procesů nebo i regulačních obvodů, v rámci předmětu Základy kybernetiky, který je vyučován v oboru Informatika a logistika.

Uživatel – začátečník je postupně seznamován se základy práce s MATLABem a s jeho nadstavbovým prostředím Simulink. Text nemá v žádném případě plnit funkci manuálu. Tam, kde to autor považoval za vhodné, je ale pro zlepšení přehledu uživatele doplněna o výčty všech použitelných funkcí a jejich vlastností (obvykle ve formě tabulek).

Systém MATLAB, který vyvinula v roce 1984 firma The Mathworks, Inc. v USA, je výkonné prostředí určené pro vědecké a inženýrské výpočty a vizualizaci dat. Název MATLAB vznikl z anglického MATrix LABoratory. MATLAB integruje numerickou analýzu, maticové výpočty a grafiku do uživatelsky příjemného prostředí, ve kterém se řešené problémy zapisují podobně jako v matematice – tedy bez obtíží klasického programování. V MATLABu je možné řešit široký okruh problémů spojených především s matematikou, fyzikou, měřením a zpracováním dat a grafikou, ale i mnoho dalších.

Nadstavbové prostředí Simulink slouží k modelování a simulaci dynamických systémů. Simulink využívá rozsáhlých grafických možností operačního systému Windows. Uživateli poskytuje možnost snadno a rychle vytvářet modely ve formě blokových schémat. Tato schémata jsou značně podobná zapojením pro analogový počítač. Hierarchická struktura modelů umožňuje vytvářet i velmi složité systémy, jejichž jednotlivé části lze zahrnout do přehledné struktury subsystémů a to prakticky bez omezení počtu bloků. Simulink využívá algoritmy MATLABu pro numerické řešení diferenciálních rovnic. To je i také jeden z důvodů, proč je třeba se nejdříve seznámit se základním prostředím MATLAB. Pro efektivní využití Simulinku při řešení složitějších problémů je znalost MATLABu prakticky nezbytná.

V další části učebního textu jsou uvedeny dva modelové příklady (každý v samostatné kapitole). Tyto příklady jsou detailně rozpracovány, tedy včetně teoretického rozboru a diskuze možných variant jejich řešení. Uživatel je krok po kroku provázen simulačním experimentem. Jsou uvedeny i kontrolní otázky a úkoly vybízející studenta k aktivnímu přístupu k řešené problematice.

V následující části textu je uveden ucelený soubor příkladů, které byly voleny tak, aby byly přímo využitelné při výuce. Teoretický rozbor řešení je u nich obvykle velmi zkrácen. Příklady jsou zaměřeny zejména na sestavovaní matematických modelů pomocí matematicko-fyzikální analýzy. Jsou vyloženy základní přístupy umožňující vytvoření odpovídajících simulačních modelů v prostředí MATLAB – Simulink.

V poslední části textu jsou uvedeny úlohy, které jsou orientovány na oblast teorie automatického řízení. Zvláštní pozornost je věnována jednak způsobům modelování regulované soustavy, ať již na základě příslušné diferenciální rovnice nebo na základě obrazového přenosu, ale především možnostem realizace regulátoru. Uvedeno je několik různých realizací spojitého PID regulátoru a jeho číslicové obdoby PSD, ale i regulátorů nespojitých – dvoupolohových a třípolohových. V prostředí Simulinku jsou vytvářeny

Page 8: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Úvod

8

modely uzavřeného regulačního obvodu. Ve stručnosti jsou popisovány a simulačně ověřeny některé přístupy vedoucí k nazelení optimálních parametrů regulátoru. Je také ilustrována jednoduchá, ale přesto velmi užitečná aplikace MATLABu, která umožňuje velmi efektivně podle zvoleného kritéria naleznout parametry regulátoru na základě numerické (iterační) optimalizace, tedy bez použití obtížných matematických postupů.

Pro konstrukci dynamických charakteristik modelovaných systémů je velmi užitečné také použití speciálních příkazů doplňkového Control System Toolboxu. Tento toolbox poskytuje značné množství příkazů pro teorii automatického řízení. V textu je prostor věnován zejména charakteristikám frekvenčním – je demonstrováno několik zajímavých situací při různém rozložení pólů charakteristické rovnice systému 2. řádu. V jednom z příkladů je diskutována i oblast stability jednoduchého regulačního obvodu.

Page 9: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

9

2 Základy práce v prostředí MATLAB

V této kapitole se seznámíme s desktopem MATLABu, jeho možnostmi a základním nastavením. Ukážeme si, jak se orientovat v rozsáhlé nápovědě a využívat četná dema, která jsou v prostředí MATLAB k dispozici a také jak využívat technickou podporu MATLABu na internetových stránkách výrobce. Dále bude vysvětlen princip práce v příkazovém řádku a zápis jednoduchého výrazu a proměnné. Probrány budou také některé zvláštní typy proměnných a konstant a zápis komplexních čísel.

Prostředí MATLAB spustíme obvykle pomocí příslušné ikony na pracovní ploše počítače nebo prostřednictvím základního menu systému Windows Start → MATLAB → R2007b → Matlab R2007b. MATLAB je možné spustit i prostřednictvím souboru matlab.exe, který je umístěn ve složce C:/Program Files/MATLAB/R2007b/bin/win32. Umístění je platné pouze pro verzi MATLABu R2007b. Máme-li k dispozici verzi jinou, název složky je pozměněn, název souboru je ale stejný. Záleží samozřejmě i na okolnosti, zda uživatel ponechal při instalaci implicitně nabízenou složku. Zde popisovanou verzi MATLABu je vhodné provozovat pod operačním systémem Windows XP nebo Windows Vista. Pokud má uživatel nainstalovánu starší verzi systému Windows, měl by použít nižší verzi MATLABu.

Obr. 2-1: Pracovní plocha prostředí MATLAB R2007b

Verze MATLABu R2007b je oproti předcházejícím verzím (zejména oproti stále velmi často používané verzi 5) poněkud odlišná. Po spuštění MATLABu se otevře pracovní plocha (tzv. desktop, obr. 2-1), která je složená ze tří oken. Základním oknem

Page 10: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

10

je Command Window a dále jsou otevřena také okna Workspace a Command History. Okno Workspace může být pomocí myši přepnuto na Current Directory – kliknutím na záložku ve spodní části.

Kombinace jednotlivých oken v desktopu je libovolná, s každým oknem lze pracovat samostatně a do desktopu lze zakomponovat také další okna. Uživatelské nastavení může být provedeno v položce Desktop Layout menu Desktop v horní liště základního okna. Původní uspořádání oken lze vrátit pomocí menu Desktop → Desktop Layout → Default.

Způsob práce v desktopu názorně popisuje několik animovaných demo programů v Desktop Tools and Development Environment. Jejich spuštění je možné prostřednictvím okna Command Window příkazem demo. Další možností je volba položky Demos z menu tlačítka START.

Obr. 2-2: Pracovní plocha prostředí MATLAB R2007b – použití tlačítka START

Okno Command Window je hlavní a nejdůležitější částí pracovní plochy (desktopu). V tomto okně uživatel zapisuje jednotlivé příkazy a je v něm zobrazena odezva a různá systémová hlášení MATLABu.

V okně Command History se zobrazují všechny příkazy, zapsané uživatelem v hlavním okně Command Window. Chce-li uživatel použít již jednou zapsaný příkaz (nebo i celou sekvenci příkazů), stačí jej v tomto okně jednoduše nalistovat a poklepáním znovu aktivovat. Je také možné jej myší přetáhnout do hlavního okna. Přímo v hlavním okně Command Window lze již jednou zapsané příkazy znovu vyvolat pomocí kurzorových šipek nahoru a dolů.

Okno Workspace je při prvním spuštění MATLABu prázdné. Veškeré proměnné, které v průběhu práce uživatel nadefinuje, se zobrazují v tomto okně. Okno obsahuje vždy úplný seznam všech typů proměnných. Poklepáním myší na některé z nich je možné zobrazit detailní informace (rozměr, struktura apod.).

Page 11: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

11

V okně Current Directory je zobrazen seznam souborů v aktuální složce. Poklepáním myší na některém ze souborů je možné jej otevřít. Způsob otevření souboru je závislý na jeho typu, např. soubory s příponou MAT jsou otevírány ve vestavěném editoru. Aktuální složka (Current Directory) je zobrazena nad oknem Command Window. Aktuální složku je samozřejmě možné také změnit, implicitně je nastavena do složky C:\Documents and Settings\User\Dokumenty\MATLAB, přičemž složka User v uváděné cestě odpovídá označení uživatelského účtu v konkrétní instalaci systému Windows.

Od MATLABu verze 6 se v levé spodní části pracovní plochy, podobně jako v operačním systému Windows, objevuje tlačítko START (obr. 2-2). S jeho pomocí je možné spouštět řadu vestavěných aplikací, používat nápovědu, otevírat internetové stránky apod. Ukončit práci s prostředím MATLAB je možné standardním způsobem, prostřednictvím nabídky File → Exit MATLAB (Ctrl + Q) nebo kliknutím myší na křížek vpravo nahoře. Další možností jak ukončit MATLAB je zápis příkazu quit a jeho potvrzení klávesou ENTER.

Některé vlastnosti a vzhled prostředí MATLAB je možné nastavit pomocí dialogového okna Preferences, k němuž lze přistoupit přes menu File → Preferences… Prostřednictvím tohoto dialogu (viz obr. 2-3) je možné nastavit vlastnosti pro okna Command Window, Command History a Current Directory. Dále některé vlastnosti vestavěného textového editoru a Simulinku. Přes základní menu v horní liště hlavního okna je možné jednoduše přistupovat i k systému nápovědy a k součástem MATLABu dostupným prostřednictvím internetu (obr. 2-4). V horní liště okna v tomto případě zvolíme menu Help resp. jeho položku Web Resources.

Obr. 2-3: Dialogové okno Preferences pro nastavení vlastností prostředí

Obr. 2-4: Přístup k nápovědě a k součástem MATLABu dostupným na Internetu

Page 12: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

12

Obr. 2-5: Internetová podpora MATLABu

Další možností jak přistupovat k nápovědě je zápis příkazu help v hlavním okně Command Window. Pokud příkaz zadáme a potvrdíme bez argumentu, dojde k vypsání kompletního seznamu dostupných položek nápovědy. K jednotlivým položkám je možné přistupovat např. kliknutím na příslušné heslo. Podrobný popis použití nápovědy je možné vyvolat zápisem příkazu help help. Užitečné je využití odkazů See also, které představují podobné příkazy vztahující se aktuálně k hledanému. Je také možné vyvolat podrobnější textovou verzi nápovědy zobrazovanou v okně Help, které je mimochodem možné využít i jako prohlížeč internetových stránek (jednoduchá obdoba používaných prohlížečů, např. Internet Explorer, Firefox, Opera, atd.). Přechod k této verzi nápovědy je možný opět jednoduše kliknutím na heslo v části Reference page in Help browser. Jako příklad si uvedeme nápovědu k funkci sinus.

Obr. 2-6: Nápověda k příkazu sin

Page 13: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce v příkazovém řádku

13

Obr. 2-7: Podrobnější verze nápovědy k příkazu sin (např. kliknutím na doc sin)

Aby bylo možné využít okna Help, je samozřejmě nutné mít nainstalované soubory nápovědy. Tyto soubory jsou typu HTML a umožňují skutečně efektivní způsob přístupu k systému nápovědy. V otevřeném okně Help je možné dále využít nabídku Index v levé horní části. Do příkazové řádky můžeme zapisovat příkazy nebo jejich části a MATLAB automaticky vyhledává a doplňuje možnou syntaxi. Dále je možné využít i položek Search, Contents a také prostřednictvím tohoto okna vyhledat vhodné demo volbou položky Demos. Všechna dostupná dema obsahují i ukázky použitých příkazů a celých skriptů, které je možné dále využít, a ukázky možných výstupů např. ve formě grafů.

2.1 Práce v příkazovém řádku Jak již bylo řečeno, okno Command Window je základním oknem prostředí MATLAB.

Slouží k zadávání příkazů, spouštění skriptů (m-souborů) a funkcí MATLABu, výpisu proměnných a případně k vyvolání nápovědy pomocí příkazu help. Některé základní užitečné příkazy jsou uvedeny v tab. 2-1.

Výpis všech příkazů je možný po zadání help matlab/general. Prompt v příkazovém okně, který představuje připravenost MATLABu k činnosti je >>. Po zápisu jednoduchého výrazu a potvrzení klávesou ENTER je v okně zobrazen výsledek, který se ukládá do proměnné ans, se kterou lze dále pracovat. Příkladem je zápis jednoduchého výrazu na obr. 2-8.

Page 14: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

14

Tab. 2-1: Vybrané základní příkazy MATLABu

Příkaz Popis helpwin vyvolání okna Help pro nápovědu help <funkce> nápověda k zadané funkci v okně Command Window doc <funkce> podrobnější nápověda k zadané funkci v okně Help pwd vypíše aktuální adresář včetně úplné cesty dir, ls výpis obsahu aktuálního adresáře lookfor <výraz> vyhledává zadané klíčové slovo ve všech nápovědách cd, cd <adresář> mění pracovní adresář nebo vypíše aktuální včetně cesty type <soubor> vypíše obsah souboru whos výpis proměnných (textová kopie Workspace) who zjednodušený výpis proměnných (pouze jejich název) clear <proměnná> clear all vymazání dané proměnné resp. všech proměnných

web zobrazí HTML soubor nebo zadanou HTTP adresu

Obr. 2-8: Zápis jednoduchého výrazu a zobrazení výsledku

Využití implicitní proměnné ans není ale příliš vhodné, protože do ans může být uložena jakákoliv hodnota. Vhodnější je přiřazování hodnot do proměnných. Na místo desetinné čárky zapisujeme tečku. Výsledek je zobrazen ve formátu s přesností na čtyři desetinná místa. Základní matematické operace a jejich zápis jsou v tab. 2-2. Výrazy se vyhodnocují zleva doprava s následující prioritou: umocňování, násobení a dělení, sčítání a odčítání. Prioritu lze standardně měnit použitím závorek.

Tab. 2-2: Základní matematické operace v MATLABu

Operace Symbol Příklad sčítání, a + b + 3+22

odčítání, a – b – 90–54 násobení, a ⋅ b * 3.14*0.85 dělení, a ÷ b / nebo \ 56/8 = 8\58

umocňování, ab ^ 2^8

Jak již bylo řečeno, provedené příkazy se ukládají do historie. Jednotlivé příkazy lze pak jednoduše vybírat pomocí kurzorových šipek ↑ a ↓ a nebo lze historii příkazů sledovat v okně Command History. Mazání zvoleného příkazu, pokud jej nechceme použít, lze provést stiskem klávesy ESCAPE. Historii lze i vypnout resp. opětovně zapnout pomocí příkazu diary. Je také možné historii příkazů zapsat do definovaného souboru (více help diary). Implicitně se historie zapíše do souboru „diary“ ve složce

Page 15: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Proměnné v MATLABu

15

C:/Program Files/MATLAB/R2007b/Work, pokud bylo zadáno diary on. Vlastní zápis je proveden až při ukončení činnosti MATLABu.

Pokud je výraz, který chceme řešit, zapsán chybně nebo zápis není úplný, dojde po potvrzení klávesou ENTER k vypsání chybového hlášení. Příklad takového hlášení je na obr. 2-9. V tomto případě nebylo zadání výrazu úplné, chybí zápis druhého sčítance. MATLAB zřetelně označil pozici chyby. Chybová hlášení jsou velmi dobrou vlastností MATLABu, umožňují snadné vyhledání chyby i v případě složitých výrazů či celých skriptů.

Obr. 2-9: Příklad chybového hlášení

Výše popsaný, nejjednodušší způsob práce v příkazovém řádku MATLABu připomíná práci s kalkulačkou. Pokud budeme postupně zadávat další výrazy, okno Command Window se bude průběžně zaplňovat řešenými výrazy, výsledky a případně i chybovými hlášeními. Po zaplnění celého okna dojde k posunu horních řádků směrem nahoru mimo oblast okna. Okno lze samozřejmě i smazat pomocí příkazu clc a zvýšit tak přehlednost.

Obr. 2-10: Označení chyby v řešeném výrazu a správný zápis

2.2 Proměnné v MATLABu Proměnná v prostředí MATLAB se může skládat až z 63 znaků, další jsou ignorovány.

V názvu proměnné se rozlišují malá a velká písmena (je case sensitive), jména proměnných musí začínat písmenem a nesmí obsahovat tečku. V tab. 2-3 následuje seznam některých speciálních proměnných a v tab. 2-4 je přehled nejpoužívanějších řídicích znaků.

Tab. 2-3: Speciální proměnné

Proměnná Popis a použití

ans implicitní proměnná používaná k zápisu výsledků neprovede-li uživatel přiřazení do proměnné

eps přesnost výpočtu na daném počítači realmax největší možné kladné reálné číslo realmin nejmenší možné kladné reálné číslo

Page 16: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

16

Tab. 2-3: pokračování

Proměnná Popis a použití pi Ludolfovo číslo π i nebo j imaginární složka komplexního čísla, i = j = 1− Inf (inf) nekonečno (např. 1/0) NaN (nan) Not–a–Number (např. 0/0) computer vypíše typ počítače (obvykle PCWIN)

version vypíše verzi MATLABu (např. v textu popisovaná verze 7.5.0.342 (R2007b))

clock vypsání aktuálního času, je obvykle v následujícím formátu 1.0e+003 * (2.0060 0.0080 0.0150 0.0140 0.0050 0.0448)

date aktuální datum v počítači (např. 05-Jun-2008) nargin počet vstupních argumentů funkce, nargin(funkce) nargout počet výstupních argumentů funkce, nargout(funkce)

Jednotlivé příkazy lze na řádku zapisovat za sebe a navzájem je oddělovat čárkou (,) nebo středníkem (;). Čárka, na rozdíl od středníku, nepotlačuje výpis (obr. 2-11). Pokud je příkaz příliš dlouhý, lze jej rozdělit na více řádků použitím tří teček (…), viz obr. 2-12.

Tab. 2-4: Nejpoužívanější řídicí znaky

Proměnná Popis a použití . (tečka) desetinná tečka, oddělovač proměnných ve struktuře , (čárka) oddělovač příkazů na řádku (výpis není potlačen) nebo prvků

; (středník) potlačení výpisu po přiřazení do proměnné, volání funkce nebo m-souboru, oddělovač prvků ve sloupci či celých řádků u matic

: (dvojtečka) rozsah hodnot nebo indexů ve vektoru nebo matici % (procento) oddělení komentáře na řádce … (tři tečky) rozdělení dlouhého řádku

! (vykřičník) spuštění systémových příkazů (např. ! dir výpis adresáře v okně MATLABu nebo ! dir & přímo v okně emulátoru DOSu cmd.exe)

[ ] ohraničení obsahu definovaného vektoru nebo matice ohraničení obsahu definované buňky ( ) použití při indexování vektorů nebo matic, obsahy

′ (apostrof) ohraničení textové proměnné, transpozice matice

Při práci s proměnnými je možné, že uživatel ztratí přehled kolik a pod jakými jmény jich již nadefinoval. K výpisu aktuálního stavu lze použít příkazy who nebo whos. Druhý příkaz z uvedených provede podrobnější výpis seznamu proměnných. Kromě jejich názvu, bude vypsán také jejich rozměr (1x1 značí proměnnou, jejíž obsah je pouze jedno číslo – skalár) a struktura (např. 8 double array značí počet obsazených bajtů (Bytes) v paměti a použitou přesnost. Proměnné, které již nechceme používat, lze vymazat a ušetřit tak místo v paměti. K tomuto účelu slouží příkaz clear. Všechny definované proměnné lze vymazat zadáním clear all, jednotlivou proměnnou pak zadáním clear <proměnná>. Příkaz clear samozřejmě nabízí více možností, jako je např. mazání definovaných globálních proměnných apod., více zadáním help clear nebo doc clear.

Page 17: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Komplexní čísla

17

Obr. 2-11: Oddělování příkazů na řádku

Obr. 2-12: Rozdělení dlouhého příkazu

2.3 Komplexní čísla Zadání komplexního čísla se v příkazovém řádku provádí pomocí symbolu i nebo j.

Samostatně lze zobrazit reálnou a imaginární část komplexního čísla pomocí příkazů real a imag, vypočítat absolutní hodnotu (délku průvodiče v komplexní rovině) pomocí příkazu abs a úhel mezi průvodičem a reálnou osou pomocí příkazu angle. Je také možné vypočítat číslo komplexně sdružené (konjugované) pomocí příkazu conj. Na obr. 2-13 jsou uvedeny příklady práce s komplexními čísly.

Obr. 2-13: Příklady práce s komplexními čísly

2.4 Formát zobrazování čísel MATLAB pracuje ve dvojnásobné přesnosti (double precision). Desetinná čísla jsou

zobrazována s desetinnou tečkou, implicitně na 4 desetinná místa (formát short). Formát zobrazování čísel nesouvisí s přesností výpočtu. Změnu formátu čísel při výpisu výsledku na obrazovku a také případné potlačení mezer mezi řádky umožňuje příkaz format:

format short – implicitní formát čísla na 5 číslic (4 desetinná místa), format compact – potlačí volný řádek v příkazovém okně,

Page 18: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

18

format loose – přidá volný řádek v příkazovém okně.

Tab. 2-5: Možné formáty zobrazení

Příkaz Příklad – formát čísla π (pi) Popis format short 3.1416 5 číslic (4 desetinná místa) format short eng 3.1416e+000 5 číslic + exponent (násobek tří) format short e 3.1416e+000 minimálně 5 číslic + exponent format short g 3.1416 nejlepší z short nebo short e format long 3.14159265358979 15 číslic (14 desetinných míst) format long eng 3.14159265358979e+000 15 číslic + exponent (násobek tří) format long e 3.14159265358979e+000 15 číslic + exponent format long g 3.14159265358979 nejlepší z long nebo long e

format hex 400921fb54442d18 hexadecimální (šestnáctkový) zápis

format bank 3.14 2 desetinná místa format + + kladné (+), záporné (–) nebo 0 format rat 355/113 racionální přiblížení

format debug

Structure address = 2dfd360 m = 1 n = 1 pr = 1d1b760 pi = 0 3.1416

informace o vnitřním uložení čísla s konečným zobrazením short g

2.5 Vybrané matematické funkce MATLAB obsahuje celou řadu matematických a dalších funkcí, které jsou rozděleny

do základních skupin. Úplný seznam lze získat pomocí příkazu help. Mezi základní skupiny funkcí (efektivní je vypsání jednotlivých funkcí pomocí help <skupina>) patří:

help elfun – přehled elementárních matematických funkcí, help specfun – přehled speciálních matematických funkcí.

Dále lze také zobrazit přehled příkazů pro všeobecné použití, přehled matematických operátorů, relačních operátorů, atd.

help general – přehled příkazů všeobecného použití, help ops – přehled všech typů operátorů, help arith – přehled aritmetických operátorů, help relop – přehled relačních operátorů.

Tab. 2-6: Trigonometrické funkce

Funkce Popis sin sinus, argument v radiánech sind sinus, argument ve stupních sinh hyperbolický sinus asin inverzní sinus, výsledek v radiánech asind inverzní sinus, výsledek ve stupních asinh inverzní hyperbolický sinus

Page 19: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vybrané matematické funkce

19

Tab. 2-6: pokračování

Funkce Popis

cos kosinus, argument v radiánech cosd kosinus, argument ve stupních cosh hyperbolický kosinus, argument v radiánech acos inverzní kosinus, výsledek v radiánech acosd inverzní kosinus, výsledek ve stupních acosh inverzní hyperbolický kosinus, výsledek v radiánech tan tangens, argument v radiánech tand tangens, argument ve stupních tanh hyperbolický tangens, argument v radiánech atan inverzní tangens, výsledek v radiánech atand inverzní hyperbolický tangens, výsledek ve stupních atanh inverzní hyperbolický tangens, výsledek v radiánech cot kotangens, argument v radiánech cotd kotangens, argument ve stupních coth hyperbolický kotangens, argument v radiánech acot inverzní kotangens, výsledek v radiánech acotd inverzní kotangens, výsledek ve stupních acoth inverzní hyperbolický kotangens, výsledek v radiánech

Tab. 2-7: Exponenciální funkce

Funkce Popis

exp exponenciální funkce log přirozený logaritmus (v matematice ln, základ e ≈ 2,7) log10 dekadický logaritmus (základ 10) log2 logaritmus při základu 2 pow2 mocnina při základu 2 sqrt druhá odmocnina nextpow2 nejbližší vyšší mocnina při základu 2

Tab. 2-8: Funkce pro zaokrouhlování

Funkce Popis a příklad použití

fix zaokrouhlování směrem k nule, fix(–0.4) = 0 floor zaokrouhlování směrem k – ∞, floor(–0.4) = –1 ceil zaokrouhlování směrem k + ∞, ceil(0.4) = 1

round zaokrouhlování k nejbližšímu celému číslu, round(0.4) = 0, round(0.7) = 1

mod funkce modulo, mod(13,5) = 3 rem zbytek po celočíselném dělení, rem(13,5) = 3

sign funkce signum (znaménková funkce), sign(5) = 1, sign(0) = 0, sign(–5) = –1

Page 20: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí MATLAB

20

Tab. 2-9: Komplexní funkce

Funkce Popis

abs absolutní hodnota nebo modul angle fázový úhel conj komplexně sdružená hodnota imag imaginární část real reálná část isreal test pro reálná pole cplxpair setřídění komplexně sdružených párů

Tab. 2-10: Vybrané speciální matematické funkce

Funkce Popis

cross vektorový součin dot skalární součin

Na následujících obrázcích jsou ukázky operací s některými elementárními funkcemi, princip zápisu složitějších výrazů a způsob využívání nápovědy.

Obr. 2-14: Použití nápovědy, výpis části skupiny elementárních funkcí

Page 21: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vybrané matematické funkce

21

Obr. 2-15: Operace s některými základními funkcemi

Obr. 2-16: Některé funkce pro zaokrouhlování

Page 22: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 23: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

23

3 Práce s vektory a maticemi

Při seznamování se s prostředím MATLAB je třeba zvláštní pozornost věnovat maticím, na nichž je činnost prostředí MATLAB založena. Z tohoto důvodu si v následujícím textu podrobněji ukážeme právě práci s vektory a maticemi. Zejména pak možnosti jejich definice, nejrůznější operace, které může uživatel s vektory a maticemi provádět, a také jejich indexování a princip přístupu k jednotlivým prvkům.

Obr. 3-1: Vytváření vektorů a matic v MATLABu

Jednoduchou matici lze zadat výčtem prvků, který je vložen do hranatých závorek. Prvky matice mohou být libovolné výrazy MATLABu. Matice se zapisují po řádcích, které jsou odděleny středníkem. Jednotlivé prvky každého řádku jsou pak odděleny mezerou nebo je lze z důvodu větší přehlednosti oddělit také čárkou. Několik ukázek definice menších vektorů a matic je na obr. 3-1 a 3-2.

Existují samozřejmě i další možnosti jak vektory či matice definovat. Jednoduchým způsobem lze vytvořit i dlouhé vektory a matice. S výhodou můžeme použít dvojtečku (:). Lze použít i příkazy linspace a logspace. Základní techniky jsou shrnuty v tab. 3-1, některé příklady na obr. 3-3 a 3-4. MATLAB v těchto případech rozdělí výpis vektoru na více řádků.

Page 24: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce s vektory a maticemi

24

Obr. 3-2: Další možnosti při vytváření matic

Obr. 3-3: Vytváření dlouhých vektorů – příkazy linspace a logspace

Obr. 3-4: Vytváření dlouhých vektorů a sdružování do matic

Page 25: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Některé speciální typy vektorů a matic

25

Tab. 3-1: Základní techniky vytváření vektorů a matic

Technika sestavení Popis

x = [2 2*pi sqrt(2) 2–3j] Vytvoří řádkový vektor x ze zvolených prvků. x = X1:X2 Vytvoří řádkový vektor x od X1 do X2 s krokem 1 x = X1:K:X2 Vytvoří řádkový vektor x od X1 do X2 s krokem K x = linspace(X1,X2,N) Vytvoří řádkový vektor x od X1 do X2 mající N prvků

x = logspace(X1,X2,N) Vytvoří řádkový vektor x s logaritmickým rozložením od 10X1 do 10X2 mající N prvků

3.1 Některé speciální typy vektorů a matic V MATLABu je také možné využít speciální typy matic. Pomocí příkazů zeros a

ones lze definovat vektor nebo matici samých nul resp. samých jedniček. Pomocí eye lze definovat jednotkovou matici. Možnosti definice takových matic jsou na obr. 3-5 a 3-6.

Obr. 3-5: Speciální typy matic – zeros

Obr. 3-6: Speciální typy matic – ones a eye

Velmi užitečný je i příkaz diag, pomocí něhož lze obsadit nejen hlavní diagonálu matice vektorem (obr. 3-7).

Page 26: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce s vektory a maticemi

26

Obr. 3-7: Obsazení diagonály definovaným vektorem

3.2 Základní operace s maticemi Operace s vektory či maticemi se v MATLABu zapisují velice jednoduchým způsobem.

Pro operace mezi dvěma nebo více maticemi se používají operátory uvedené v tab. 3-2. Dále lze využít také vnitřní funkce MATLABu pro operace nad jednou maticí. Množství těchto funkcí a operátorů je poměrně velké. Jejich kompletní seznam získáme pomocí help slash resp. help matfun. Některé ukázky jednoduchých operací s maticemi jsou na obr. 3-8 a 3-9.

Tab. 3-2: Základní operace s maticemi

Operace Popis

Sčítání matice a skaláru C = A + c, ke každému prvku matice je přičten skalár c Násobení matice a skaláru D = A * c, každý prvek matice je vynásoben skalárem c Dělení matice skalárem E = A / c, každý prvek matice je vydělen skalárem c Sčítání resp. odčítání matic F = A ± B, součet resp. rozdíl stejnolehlých prvků matic Násobení matic G = A * B, klasické násobení matic Prvkové násobení matic H = A .* B, násobení stejnolehlých prvků matic Dělení matic zprava I = A / B, pravé dělení matic, platí A / B = A B–1 Prvkové dělení zprava J = A . / B, pravý podíl stejnolehlých prvků matic A a B Dělení matic zleva K = A \ B, levé dělení matic, platí A \ B = A–1 B Prvkové dělení zprava L = A .\ B, levý podíl stejnolehlých prvků matic B a A Mocnění matice M = A^ n, n-tá mocnina (pouze čtvercové matice) Prvkové mocnění matice N = A .^ n, n-tá mocnina každého prvku matice

Při zápisu vlastního výrazu, je třeba uvažovat rozměr matice. Některé operace není možné provádět vždy, např. výraz 1 / B není možné z logických důvodů provést. Je ale možné, provést dělení prvkové, tedy 1 . / B. Výpočet výrazu 1 . / A, ale také není zcela v pořádku, dochází při něm k dělení nulou. MATLAB jej ale provede, vypíše varovné hlášení a u prvků, kde došlo k dělení nulou, je výsledek inf (tedy nekonečno). Situace je na obr. 3-9.

V MATLABu je k dispozici i řada tzv. maticových funkcí. Přehled nejpoužívanějších funkcí je v tab. 3-3. Příklady použití některých uvedených funkcí jsou na obr. 3-10 až 3-11.

Page 27: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní operace s maticemi

27

Obr. 3-8: Základní operace s maticemi

Obr. 3-9: Prvkové operace a mocnění matic

Obr. 3-10: Varovné hlášení (warning) při dělení nulou

Tab. 3-3: Vybrané maticové funkce

Operace Popis

B = A′ transpozice vektoru či matice C = inv(A) inverze čtvercové matice d = det(A) determinant čtvercové matice E = eig(A) vrací vektor vlastních čísel čtvercové matice

F = sum(A) u matic vrací vektor, jehož prvky jsou součtem sloupců matice, u vektoru vrací součet jednotlivých prvků

Page 28: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce s vektory a maticemi

28

Tab. 3-3: pokračování

Operace Popis

G = sign(A)

vrací matici stejného řádu, ve které každý prvek je definován: 1 … je-li prvek původní matice kladný, 0 … je-li prvek původní matice nulový, –1 … je-li prvek původní matice záporný.

H = max(A) u matic vrací vektor maximální hodnot každého sloupce matice, u vektoru vrací přímo největší prvek

I = min(A) u matic vrací vektor minimálních hodnot každého sloupce matice, u vektoru vrací přímo nemenší prvek

J = diag(A) vrací vektor prvků, které jsou na hlavní diagonále K = triu(A) vrací horní trojúhelníkovou matici z původní matice L = tril(A) vrací dolní trojúhelníkovou matici z původní matice m = isempty(A) vrací 0, je-li matice neprázdná nebo 1, je-li prázdná

N = mean(A) u matic vrací vektor, jehož prvky jsou aritmetickým průměrem sloupců matice, u vektorů vrací průměr jejich prvků

O = rot90(A) rotace matice o 90° P = expm(A) exponenciální funkce prvků čtvercové matice Q = logm(A) logaritmus prvků čtvercové matice R = sqrtm(A) odmocnina prvků čtvercové matice

S = funm(A) definovaná funkce čtvercové matice (více doc funm), např.: funm(A,@sin) … sinus, funm(A,@cos) … kosinus, funm(A,@sinh), funm(A,@cosh) ... hyperbol. sinus a kosinus

Obr. 3-11: Některé maticové funkce

Page 29: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Indexovaní vektorů a matic

29

3.3 Indexovaní vektorů a matic Přístup k jednotlivým prvkům vektoru nebo matice (tj. indexování) lze v MATLABu

velmi jednoduše provádět několika způsoby (tab. 3-4). K indexování se využívají kulaté závorky; s výhodou využíváme dvojtečky. Odkaz na příslušný prvek lze provést zadáním jeho pozice ve vektoru nebo řádky a sloupce u matic.

Tab. 3-4: Přístup k prvkům matice

Adresace Popis

A(r,c) adresace prvků matice A definovaná řádkovým indexem či vektorem řádkových indexů a sloupcovým indexem či vektorem sloupcových indexů

A(r,:) adresace prvků matice A definovaná vektorem řádkových indexů r a všemi sloupci

A(:,c) adresace prvků matice A definovaná vektorem sloupcových indexů c a všemi řádky

A(:)

adresace všech prvků matice A, výpis ve formě sloupcového vektoru; pokud se A(:) objeví na levé straně přiřazovacího znaménka, znamená to vyplnění pole A prvky z pravé strany přiřazovacího znaménka bez změny jeho tvaru

A(I) adresace prvků matice A definovaná jednoduchým indexovým vektorem I, jako kdyby A byla sloupcovým vektorem A(:)

Indexy musí být vždy celočíselnými hodnotami a mohou v souladu s tab. 3-4 popisovat např. jeden prvek nebo případně i souvislý rozsah prvků definovaný pomocí dvojtečky, tj. min:krok:max. Příklady použití jsou na obr. 3-12, možné navzájem ekvivalentní metody indexace jsou na obr. 3-13.

Obr. 3-12: Indexování vektorů a matic

Page 30: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce s vektory a maticemi

30

Obr. 3-13: Navzájem ekvivalentní metody indexování

K vyhledávání jednotlivých prvků či jejich skupiny lze použít funkci find, varianty použití jsou v tab. 3-5, ukázkové příklady jsou na obr. 3-14 a 3-15.

Tab. 3-5: Vyhledávání prvků

Syntaxe příkazu Popis

I = find(A) vrací řádkový nebo sloupcový vektor (dle rozměru vektoru či matice A) indexů nenulových prvků

J = find(A<p) vrací vektor prvků matice A, které splňují podmínku p

[R C] = find(A) vrací vektor R řádkových a vektor C sloupcových indexů prvků matice A, které jsou nenulové

[R C V] = find(A) vrací navíc vektor nenulových prvků V

[R C] = find(A>p) vrací vektor R řádkových a vektor C sloupcových indexů prvků matice A, které splňují podmínku p

[R C V] = find(A>p)vrací navíc vektor logických hodnot V, kde značí: 0 – index je nulový 1 – index není nulový

Tab. 3-6: Zjišťování rozměru vektorů a matic

Syntaxe příkazu Popis

S = size(A) vrací řádkový vektor S, jehož první prvek je počet řádek matice A a druhý prvek je počet sloupců A

[r,c] = size(A) vrací dva skaláry r a c, které obsahují počet řádek a počet sloupců matice A

r = size(A,1) vrací skalár r odpovídající počtu řádek matice A c = size(A,2) vrací skalár c odpovídající počtu sloupců matice A n = length(A) vrací skalár n odpovídající max(size(A))

Sloupce (n)

1 2 3 4 5 1 2 3 4 5

5 4 1 1 8 9 6 2 3 8 0 4 7 4 1 2 3 2 3 5 1 0 1 9 7

1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25

Řád

ky (m

)

A(1:5,2) A(:,2) A(6:10)′ A(1:end,2)

A(5,5) A(25) A(end,end)

A(2:3,4:5) A([17 22;18 23])

A

Page 31: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Indexovaní vektorů a matic

31

Obr. 3-14: Vyhledávání prvků ve vektoru

Obr. 3-15: Vyhledávání prvků v matici

K zjištění rozměru vektoru nebo matice lze standardním způsobem využít příkazy length a size, podrobnosti viz tab. 3-6, příklady použití na obr. 3-16.

K přerovnání prvků vektoru nebo matice lze použít příkazy fliplr a flipud. V prvním případě jsou prvky přerovnány zleva doprava, ve druhém pak odshora dolů (obr. 3-17).

Page 32: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce s vektory a maticemi

32

Obr. 3-16: Rozměr vektoru a matice

Obr. 3-17: Přerovnávání prvků vektorů a matic

3.4 Základy práce s mnohočleny Mnohočleny jsou v MATLABu jednoduše definovány pomocí vektorů, které obsahují

jejich koeficienty a to v sestupném pořadí od nejvyšší mocniny nezávisle proměnné k nejnižší. Základní skupinu příkazů, které jsou obsaženy v samotném jádru MATLABu, je možné případně doplnit příkazy z dalších toolboxů. Jde např. o speciální toolbox pro symbolickou matematiku (Symbolic Math Toolbox) a toolbox pro práci s mnohočleny (Polynomial Toolbox). Příkazy těchto toolboxů zde ale nebudeme popisovat.

Jak již bylo uvedeno, mnohočlen vytvoříme zadáním vektoru jeho koeficientů. S takto vytvořeným mnohočlenem již můžeme dále pracovat. Mezi užitečné funkce patří výpočet kořenů, k čemuž slouží příkaz roots.

Pomocí příkazu poly je možné stanovit charakteristický polynom matice, tj. det(λ I – A). V nižších verzích MATLABu bylo možné pomocí tohoto příkazu sestavovat mnohočlen ze známých kořenů. Zde je třeba upozornit na skutečnost, že pokud má původní mnohočlen

Page 33: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce s mnohočleny

33

u nejvyšší mocniny jiný koeficient než jedna, pak je třeba při aplikaci příkazu poly násobit výsledek právě tímto koeficientem. Opětovné určení koeficientů mnohočlenu z kořenů je tedy bohužel nejednoznačnou úlohou. Toto plyne ze skutečnosti, že pokud násobíme mnohočlen libovolným reálným číslem různým od nuly, jeho kořeny se nezmění.

Obr. 3-18: Výpočet kořenů polynomu

Další užitečnou funkcí je pak funkce polyval, která vypočte funkční hodnotu pro konkrétní hodnotu nezávisle proměnné. Funkci s výhodou využíváme i při prokládání naměřených hodnot křivkou (regresi). Mnohočleny je také možné derivovat či integrovat pomocí příkazů polyder a polyint.

Použití všech výše uvedených příkazů je na následujících obrázcích. Na obr. 3-18 je výpočet kořenů polynomu x2 + x – 2 a polynomu x3 – 4x2 + 5,25x – 2,5. Na obr. 3-19 je pak výpočet charakteristického polynomu det(λ I – A) = c1λ

n + c2λ n–1 + … + cnλ + cn+1

čtvercové matice A (v tomto případě je n = 3) a ukázka dvou možností nalezení vlastních čísel této matice a nalezení vlastních vektorů. Výsledné vlastní vektory jsou ve sloupcích matice, vlastní čísla jsou na diagonále matice. Jednotlivé sloupce obou matic si navzájem odpovídají, tj. např. první sloupec (vlastní vektor) první matice odpovídá vlastnímu číslu v prvním sloupci druhé matice. MATLAB vypočítá vlastní vektory tak, že mají normu jedna, o čemž se snadno přesvědčíme pomocí příkazu norm.

Obr. 3-19: Nalezení charakteristického polynomu, vlastní čísla a vlastní vektory

Page 34: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce s vektory a maticemi

34

Obr. 3-20: Výpočet funkčních hodnot

Na obr. 3-20 je ukázka použití příkazu polyval pro výpočet funkčních hodnot funkce v daném bodě. Tímto způsobem je vypočítána hodnota funkce y(x) = 2x + 1 v bodě x = 3 a jsou také vypočítány funkční hodnoty pro y(x) = x2 pro hodnoty x = 0, 1, …, 5.

Obr. 3-21: Derivace a integrace polynomu

Pokud derivujeme nebo integrujeme mnohočlen reprezentující např. polynomickou funkci definovanou v MATLABu prostřednictvím vektoru jednotlivých koeficientů, tak výsledkem jsou samozřejmě opět koeficienty výsledných funkcí. Pro větší názornost by bylo možné využít toolbox pro symbolickou matematiku a pomocí příkazu sym definovat symbol nezávisle proměnné. Výsledky by pak byly přímo v symbolickém tvaru, který je uživateli bližší a odpovídá matematickému zápisu.

Obr. 3-22: Derivace a integrace funkcí v symbolickém zápisu

Page 35: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce s mnohočleny

35

Na obr. 3-21 je derivována a integrována funkce y(x) = 2x + 1, která je definována vektorem koeficientů Y = [2 1]. Derivací dostáváme skalární hodnotu 2. Integrací pak vektor [1 1 0], který odpovídá zápisu x2 + x. Stejný příklad je řešen i na obr. 3-22, ale již pomocí symbolického zápisu. Toolbox pro symbolickou matematiku není ale přímo součástí jádra MATLABu a proto zde není podrobně probírán. Derivace je v tomto případě vypočítána pomocí příkazu diff a integrace pomocí příkazu int. Je zřejmé, že tímto způsobem, lze vypočítat derivace resp. integrály i jiných funkcí. Je možné vypočítat i složitější integrály, které je jinak nutno počítat pomocí metody per partes. Výsledky zjednodušíme použitím příkazu simple.

Page 36: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 37: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

37

4 Základní použití 2D grafiky

Grafický subsystém prostředí MATLAB umožňuje přehlednou prezentaci výsledků získaných výpočtem a nebo na základě měření. Je možné vykreslit různé druhy grafů: dvourozměrné pro funkce jedné proměnné, třírozměrné pro funkce dvou proměnných, histogramy, koláčové grafy a mnoho dalších. Všem grafickým objektům je možné téměř libovolně měnit vzhled, a to jak již při jejich vytváření, tak i po jejich vykreslení. Vzhled grafických objektů je možno měnit interaktivně, pomocí lišty nástrojů umístěné pod záhlavím obrázku.

Veškerý grafický výstup je v MATLABu realizován v grafickém okně, které se nazývá figure. Těchto oken muže být samozřejmě i několik a každé má své pořadové číslo. Okna lze vytvářet nebo mezi nimi přepínat pomocí příkazu figure. Příkazy pro vykreslování, kterými se budeme v následujícím textu zabývat, vytváří v případě, že uživatel nestanoví jinak, automaticky nové okno. Zapíšeme-li tedy v okně Command Window příkaz figure, dojde k vytvoření prázdného grafického okna (má šedé pozadí, viz obr. 4-1) s názvem Figure 1. S oknem je možné pracovat standardním způsobem, obdobně jako s jinými okny v systému Windows.

Obr. 4-1: Vytvoření nového grafického okna

Součástí grafického okna je i několik ikon umístěných v toolbaru. Tyto ikony reprezentují některé užitečné a nejvíce používané funkce, které jsou součástí standardních rozbalovacích

Page 38: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

38

menu. Pokud najedeme kurzorem myši nad příslušné tlačítko, zobrazí se stručný popis jeho funkce. Jak již bylo řečeno, po zadání příkazu figure se vytvoří samostatné okno, které je ale možné také umístit do pracovní plochy (obr. 4-2). K tomuto účelu slouží malé tlačítko se symbolem šipky umístěné v pravém horním rohu okna. Šipka směrem nahoru (dock) znamená zapojit, šipka dolů (undock) pak rozpojit. V tomto okamžiku je možné osamostatnit buď okno Figure 1 (šipka napravo od ikon toolbaru) nebo celý objekt Figures (šipka napravo od záhlaví Figures – Figure 1, viz obr. 4-2 a 4-3).

Obr. 4-2: Zapojení (dock) grafického okna do pracovní plochy

Obr. 4-3: Zapojení grafického okna do objektu Figures

Page 39: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vykreslení grafu

39

4.1 Vykreslení grafu Základním příkazem pro vykreslování 2D grafů v prostředí MATLABu je plot.

Obecná syntaxe příkazu plot má tento tvar: plot (x, y, <barva> <značky> <typ čáry>). Samozřejmostí je vykreslení několika průběhů do jednoho grafu; příkaz plot lze zapsat: plot (x1, y1,<barva> <značky> <typ čáry>, x2, y2, <barva> <značky> <typ čáry>, ...), kde vektory x1, y1, x2, y2, …, xn, yn přísluší různým průběhům funkcí yi = f (xi) s vlastní definicí značek a čar. Příklad vykreslení průběhu jednoduché funkce (v tomto případě funkce sinus) je uveden na obr. 4-4. Zadání vektorů nezávisle a závisle proměnné je třeba provést způsobem uvedeným v odstavci 3, s výhodou využijeme příkaz linspace.

Obr. 4-4: Vykreslení jednoduché funkce

Obr. 4-5: Vykreslení několika funkcí do jednoho grafu, nastavení stylu čar

Jak již bylo uvedeno výše, příkaz plot automaticky vytvoří objekt Figure 1 a umístí do něj průběh funkce y = sin(x). Barva čáry je implicitně nastavena na modrou, šířka

Page 40: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

40

čáry na 0,5 a značky jednotlivých bodů nejsou vykreslovány. Graf nemá popisky os, titulek a není ani vykreslena mřížka. Chceme-li, aby barva čáry byla např. červená čárkovaná a jednotlivé body byly označeny křížkem, zapíšeme: plot(x, y, ′r x--′), viz také obr. 4-5.

Tab. 4-1: Dostupné barvy, typy čar a typy značek

Barva čáry Typ čáry Značka bodu b modrá (blue) – plná (solid) . tečka (point) g zelená (green) : tečkovaná (dotted) o kroužek (circle) r červená (red) –. čerchovaná (dash-dot) x křížek (x-mark) c tyrkysová (cyan) – – čárkovaná (dashed) + křížek (plus) m purpurová (magenta) (nic) bez čáry (je-li zadán bod) * hvězdička (star) y žlutá (yellow) s čtverec (square) k černá (black) d kosočtverec (diamond) v trojúhelník (triangle – down) ^ trojúhelník (triangle – up) < trojúhelník (triangle – right) > trojúhelník (triangle – left) p pětiúhelník (pentagram) h šestiúhelník (hexagram)

Obr. 4-6: Kopírování grafu pro vložení do textu

Přehled možných barev, typů čar a značek, které je možné v příkazu plot využít, je uveden v tab. 4-1. Šířku čáry lze nastavit pomocí parametru LineWidth, velikost značky pak pomocí parametru MarkerSize, viz obr. 4-9.

Page 41: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vykreslení grafu

41

Prostředí MATLABu poskytuje i další možnosti vkládání obrázků do textu, než je prosté vložení celého okna Figure (pomocí Alt + PrintScreen a Ctrl + V), tak jak bylo ukázáno výše. V menu okna Figure vybereme Edit → Copy Figure. Je také možné nastavit parametry kopírování v menu Edit → Copy Options... (obr. 4-6). Doporučeno je použití formátu metafile (volba Preserve information) a transparentní pozadí (Transparent background) nebo bílé pozadí (Force white background), viz obr. 4-7.

Obr. 4-7: Nastavení parametrů kopírování grafu

Obr. 4-8: Jiný způsob vložení grafu (Edit → Copy figure a Ctrl + V)

Na obr. 4-8 je ukázka grafu vloženého výše uvedeným způsobem. Původní nastavení můžeme v části Figure background color změnit např. tak, aby zůstaly zachovány původní

Page 42: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

42

barvy grafu včetně barvy pozadí (Use figure colors) a nebo použít pozadí bílé (Force white background). Tímto způsobem budou vkládány i některé další grafy v následujícím textu.

4.2 Popis grafu Popisky os umístíme do grafu pomocí příkazu xlabel a ylabel, titulek pomocí title.

Pokud má příslušná popiska obsahovat více řádek, je třeba jednotlivé řádky této popisky zapsat do složených závorek, viz obr. 4-9. Mřížku můžeme zobrazit příkazem grid.

Obr. 4-9: Zapojení grafického okna do objektu Figures

K zobrazení legendy používáme příkaz legend (obr. 4-9). V tab. 4-2 jsou uvedeny možnosti umístění legendy v grafu. Zadáme-li legend boxoff, tak dojde k odstranění rámečku a výplně plochy legendy. Navrácení původního stavu nastane po zadání legend boxon.

Pro zobrazení několika průběhů v jednom grafu je v příkladě uvedeném na obr. 4-9 použit příkaz hold. Implicitní nastavení je hold off. Vykreslení další funkce do stejného osového systému je možné po zadání příkazu hold on.

Page 43: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Popis grafu

43

Tab. 4-2: Umístění legendy v grafu

Číslo pozice Popis umístění -1 pravý horní roh, mimo graf 0 automatické umístění 1 pravý horní roh (implicitní nastavení) 2 levý horní roh 3 levý dolní roh 4 pravý dolní roh

Do grafu je také možné pomocí příkazu text vkládat jakýkoliv text, který je pak v grafu umístěn na zadanou pozici vztahující se ke konkrétním souřadnicím. Chceme-li např. do grafu umístit text „minimum funkce“ na souřadnice x = 4,7 a y = –1,1, zápis příkazu bude následující: text(4.7, -1.1, ′minimum funkce′), viz obr. 4-10.

Obr. 4-10: Umístění textu do grafu

Příkaz gtext umožní vložit text na zvolené místo grafu pomocí myši a záměrného kříže, který se při volání této funkce objeví.

Text je také možné umístit do rámečku, jehož vzhled je možno blíže specifikovat. Konkrétně lze nastavit typ a barvu čáry a barvu výplně, viz tab. 4-3. Uvedené parametry lze použít i ve spojení s jinými příkazy; např. parametr LineWidth byl již použit (obr. 4-9) jako parametr příkazu plot. Na vkládaný text lze samozřejmě aplikovat i všechny níže uváděné formátovací příkazy (tab. 4-4 a 4-5).

Tab. 4-3: Možné parametry vkládaného textu

Parametr Popis EdgeColor barva obrysu rámečku BackgroundColor výplň rámečku (implicitně žádná – transparentní) LineWidth šířka čáry rámečku (je-li použit parametr EdgeColor) LineStyle styl čáry rámečku (je-li použit parametr EdgeColor)

Margin zvětší velikost rámečku o zadanou hodnotu v bodech (je-li použit parametr EdgeColor nebo BackgroundColor)

Mnohdy je také účelné použít v popiscích dolní resp. horní index. K tomu slouží speciální formátovací znaky; pro dolní index používáme podtržítko ( _ ), pro horní index pak stříšku (^ ). V tab. 4-4 jsou uvedeny další formátovací příkazy, které umožňují měnit typ, velikost a řez písma. Tyto formátovací příkazy mají platnost vždy do konce řetězce nebo se týkají pouze obsahu definovaného uvnitř složených závorek. Příklady použití jsou na obr. 4-11 až 4-13.

Page 44: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

44

Tab. 4-4: Formátovací příkazy

Formátovací příkaz Popis

\fontnamefontname bude použito písmo fontname \fontsizes bude použito písmo o velikosti s bodů \colorcolor bude použito písmo barvy color \bf tučné písmo \it kurzíva \sl šikmé písmo \rm normální písmo

MATLAB umožňuje i zápis znaků řecké abecedy a dalších znaků často používaných zejména v matematice, jejich přehled je uveden v tab. 4-5.

Tab. 4-5: Formátovací příkazy pro speciální znaky v popiscích grafů

Znak Formátovací příkaz Znak Formátovací

příkaz Znak Formátovací příkaz Znak Formátovací

příkaz

α \alpha ς \varsigma ⟨ \langle • \bullet β \beta ϑ \vartheta ⟩ \rangle ° \circ γ \gamma Γ \Gamma ≡ \equiv ℜ \Re δ \delta ∆ \Delta ≠ \neq ℑ \Im ε \epsilon Θ \Theta ≈ \approx ℵ \aleph ζ \zeta Λ \Lambda ≅ \cong ℘ \wp η \eta Ξ \Xi ≤ \leq ∀ \forall θ \theta Π \Pi ≥ \geq ∃ \exist ι \iota Σ \Sigma ∼ \sim ¬ \neg κ \kappa Υ \Upsilon ± \pm ∇ \nabla λ \lambda Φ \Phi × \times ∂ \partial µ \mu Ψ \Psi ⋅ \cdot ∫ \int ν \nu Ω \Omega ÷ \div √ \surd ξ \xi ↔ \leftrightarrow ⊕ \oplus ∝ \propto ο \o ← \leftarrow ⊗ \otimes ∞ \infty π \pi → \rightarrow ∅ \oslash nebo \0 ϖ \varpi ρ \rho ↑ \uparrow ∩ \cap ∠ \angle σ \sigma ↓ \downarrow ∪ \cup … \ldots τ \tau ⇔ \Leftrightarrow ⊃ \supset \mid υ \upsilon ⇐ \Leftarrow ⊂ \subset ⊥ \perp φ \phi ⇒ \Rightarrow ⊇ \supseteq ♣ \clubsuit χ \chi ⇑ \Uparrow ⊆ \subseteq ♦ \diamondsuit ψ \psi ⇓ \Downarrow ∈ \in ♥ \heartsuit ω \omega ′ \prime ∋ \ni ♠ \spadesuit

Page 45: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Popis grafu

45

V následujících dvou příkladech (obr. 4-11 až 4-13) je názorně demonstrováno vkládání textu do grafu. V prvním příkladě jsou pomocí textu označeny některé význačné body funkce y = x2 a je také vykreslen barevný rámeček s předpisem této funkce. V druhém příkladě jsou ukázány některé další možnosti vytváření složitějších popisek a použití speciálních znaků.

Obr. 4-11: Některé možnosti vkládání textu do grafu

Obr. 4-12: Použití speciálních znaků v popiscích grafu

Page 46: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

46

Obr. 4-13: Použití speciálních znaků v popiscích grafu (zdrojový kód)

4.3 Ovládání souřadných os Měřítka na obou osách grafu jsou vždy prostředím MATLAB nastavena tak, aby

průběh vykreslované funkce maximálně vyplnil plochu výsledného grafu. Uživatel samozřejmě může pomocí příkazu axis toto implicitní nastavení jednoduše změnit, viz tab. 4-6.

Tab. 4-6: Možnosti ovládání souřadných os

Parametr Popis axis([xmin xmax ymin ymax]) nastaví meze os aktuálního grafu v = axis vrátí vektor jednotlivých mezí os aktuálního grafu axis auto nastaví implicitní meze os axis manual zmrazí meze os axis xy použije kartézský souřadný systém, tj. počátek je vlevo dole axis ij použije maticový souřadný systém, tj. počátek je vlevo nahoře axis square nastaví čtvercové osy axis equal nastaví na obou osách stejná měřítka axis tight nastaví meze os podle rozsahu dat axis vis3d zamezí změně proporcí os při změně pohledu axis normal zruší nastavená měřítka a efekty equal, square, tight a vis3d axis on | off on zapne zobrazení os, off vypne zobrazení os

Ukázky některých variant použití příkazu axis jsou na obr. 4-14 a 4-15. Po zadání příkazu axis off dojde nejen k potlačení zobrazení souřadných os, ale nebude zobrazena ani výplň grafu (implicitně bílá). Efekt je podobný jako při použití příkazu legend boxoff. Pokud chceme, aby nebyl vykreslován rámeček grafu, zadáme příkaz box off. Jeho opětovné zapnutí je možné po zadání box on, viz obr. 4-15. V tomto případě je ale nadále vykreslováno pozadí grafu. Výsledný vzhled je také závislý na skutečnosti zda je vykreslena mřížka (grid on).

K shora uvedeným vlastnostem a objektům lze také přistupovat interaktivním způsobem přímo z různých menu příslušného grafického okna – Figure. Osy, popisky, texty nebo typy čar lze definovat nebo měnit např. pomocí ikon ve Figure Toolbaru, pomocí voleb v roletovém menu Insert a jeho položek X Label, Y Label, Title, Legend, Line, Text

Page 47: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Ovládání souřadných os

47

nebo Axes. V roletovém menu Edit jsou dále položky Figure Properties, Axes Properties a Current Object Properties, které umožňují pracovat s objekty ještě podrobnějším způsobem.

Obr. 4-14: Ovládání souřadných os

Dosud uvedené možnosti práce s grafem jsou určeny především těm uživatelům, kteří nepotřebují ke své práci hlubší znalost grafiky MATLABu, ale potřebují zejména efektivně a přehledně vykreslovat výsledky svých výpočtů či měření. MATLAB však

Page 48: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

48

interpretuje všechny tyto výše popisované entity jako grafické objekty, které mají určité vlastnosti a které mají svůj specifický identifikátor – tzv. handle. Mezi jednotlivými objekty je stanovena hierarchie ve smyslu rodiče a potomků. Pro orientaci v tomto hierarchickém stromu a pro práci s vlastnostmi vybraných objektů slouží potom příkazy get a set. Podrobnější seznámení s Handle Graphics by ale značně přesahovalo rozsah tohoto textu. Pro případné další studium je možné použít některou z knih uváděných v seznamu literatury, např. [5, 6].

Obr. 4-15: Vypnutí zobrazení rámečku grafu a vypnutí zobrazení os

4.4 Kreslení více grafů do jednoho okna Jak již bylo řečeno, MATLAB umožňuje přehlednou a relativně jednoduchou formou

prezentovat výsledky nejrůznějších výpočtů. V mnoha případech může být výhodné vykreslit několik celých grafů do jednoho obrázku. Kreslící plocha může být pomocí příkazu subplot rozdělena na několik samostatných částí. Syntaxe tohoto příkazu je následující: subplot(m,n,p) nebo případně subplot(mnp). Kreslící plocha je rozdělena na m řádků a n sloupců. Číslo p určuje konkrétní graf, do kterého se má vykreslovat. Jednotlivé grafy jsou kresleny po řádcích od shora dolů. Za příkazem subplot následuje příkaz pro vykreslení daného typu grafu (např. příkaz plot). Na obr. 4-16 jsou tímto způsobem vykresleny čtyři grafy jednoduchých funkcí.

Page 49: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Kreslení více grafů do jednoho obrázku

49

Obr. 4-16: Kreslení více grafů do jednoho okna

Takto získaný obrázek obsahující několik grafů je možné způsobem uvedeným výše vkládat do textu prostřednictvím menu okna Edit → Copy Figure. Možnosti umístění grafů v obrázku jsou rozsáhlé; uživatel prakticky není nijak omezen. V příslušném grafu může být, stejně jako při běžném zobrazení pouze jednoho grafu v grafickém okně, i několik průběhů různých funkcí. Na obr. 4-16 jsou tímto způsobem zobrazeny průběhy funkcí y = e–x a y = ex.

Není nutné ani zachovávat stejný počet grafů na jednotlivých řádcích resp. sloupcích, viz obr. 4-17. Můžeme např. umístit na první řádek tři grafy a na řádek druhý umístit graf pouze jeden. Analogicky je také možné do prvního sloupce nad sebe umístit tři grafy, zatímco druhý sloupec je tvořen jedním grafem.

Page 50: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

50

Obr. 4-17: Další varianty umístění více grafů v jednom okně

4.5 Vybrané speciální typy 2D grafů MATLAB poskytuje i značné množství specializovaných 2D grafů, jmenovitě např.

grafy s dvěmi osami y, s logaritmickými stupnicemi, grafy koláčové, histogramy apod. Kompletní přehled podává tab. 4-7.

Tab. 4-7: Přehled speciálních 2D grafů

Příkaz Popis plotyy graf, který má dvě různé osy závisle proměnné (dvě osy y) semilogx graf s logaritmickou stupnicí na ose x a lineární stupnicí na ose y semilogy graf s logaritmickou stupnicí na ose y a lineární stupnicí na ose x loglog graf s logaritmickou stupnicí na obou osách stairs schodový graf stem graf diskrétních posloupností (tzv. stopkový graf) hist histogram pie koláčový graf comet průběh funkce je vykreslen pohybujícím se bodem

Page 51: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vybrané speciální typy 2D grafů

51

Tab. 4-7: pokračování

Příkaz Popis fill vykreslí vyplněný mnohoúhelník area vykreslí plošný (vyplněný) graf bar sloupcový graf barh sloupcový horizontální graf bar3 sloupcový graf, sloupce jsou ve 3D podobě bar3h sloupcový horizontální graf, sloupce jsou ve 3D podobě errorbar graf chyb polar graf v polárních souřadnicích compass graf vektorů zobrazovaných ve formě šipek vycházejících z počátku

feather graf vektorů vycházejících z ekvidistantně rozložených bodů podél horizontální osy

plotmatrix graf rozptylu quiver graf vektorového pole rose úhlový histogram pareto pareto graf

Ukázky některých speciálních grafů včetně odpovídajícího zápisu příkazů jsou na obr. 4-18 až 4-25. Chceme-li, aby výsledný graf měl dvě osy závisle proměnné (např. v případě, kdy jsou vykreslované funkce co do rozsahu závisle proměnné značně rozdílné), můžeme použít příkaz plotyy. Pokud je ale třeba měnit např. šířku nebo styl čáry, musíme použít prostředků tzv. handle grafiky. Problém nastane i u popisek os závisle proměnných. Standardním způsobem (pomocí příkazu ylabel) lze popsat pouze osu na levé straně grafu. Tomuto problému se zde ale nebudeme podrobněji věnovat; další informace uživatel získá zadáním doc plotyy.

Obr. 4-18: Dvě různé osy závisle proměnné

Často je také vhodné vykreslovat grafy funkcí v logaritmických souřadnicích. MATLAB umožňuje volit logaritmické měřítko pro každou osu zvlášť (semilogx a semilogy) a nebo pro obě osy současně (loglog). Záporné hodnoty jsou při vykreslování ignorovány a MATLAB vypíše varovné hlášení (Warning).

Page 52: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

52

Obr. 4-19: Kreslení v logaritmických souřadnicích – příkaz semilogx

Obr. 4-20: Kreslení v logaritmických souřadnicích – příkaz loglog

Pomocí příkazu stairs lze jednoduše vytvořit schodový graf, jež má diskrétní charakter. Hodnoty na ose závisle proměnné se mění pouze v okamžiku, kdy je definována hodnota na ose nezávisle proměnné. Mezi těmito okamžiky je ponechána předchozí hodnota. Na obr. 4-21 je navíc vykreslena standardním způsobem (příkaz plot) i spojitá křivka.

Pro kreslení diskrétních posloupností (např. vzorků nějakého signálu) je možné použít také příkaz stem, který vykreslí tzv. stopkový graf (obr. 4.24). Funkční hodnoty v jednotlivých bodech nejsou navzájem spojeny. Jednotlivé hodnoty jsou ale označeny kroužkem, který je případně možno pomocí parametru příkazu fill i vyplnit. MATLAB dokonce při vykreslování funkce y = 1/t ohlásí varovnou zprávu – Warning: Divide by zero. V čase t = 0 není tato funkce totiž definována, dochází k dělení nulou, nicméně k vykreslení průběhu přesto dojde.

Page 53: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vybrané speciální typy 2D grafů

53

Obr. 4-21: Schodový graf

Obr. 4-22: Stopkový graf

Prostředí MATLAB poskytuje i možnost práce s histogramy. Ty jsou obvykle vhodné pro zobrazování rozložení číselných hodnot, které jsou například výsledkem realizace náhodného procesu nebo jsou získány měřením, apod. Ve výsledném histogramu jsou četnosti výskytu těchto hodnot reprezentovány sloupci. Příklad použití je na obr. 4-23. V příkladě je vytvořen vektor náhodných čísel v s normálním rozložením hustoty pravděpodobnosti. V uvedeném histogramu je znázorněno toto rozložení ve zvoleném intervalu x ∈ ⟨–3,9; 3,9⟩. Na ose závisle proměnné je udávána četnost zastoupení hodnot vektoru x ve vektoru náhodných čísel v. K vlastnímu vykreslení histogramu je použit příkaz hist.

Příklad využití plošného grafu pomocí příkazu area k zobrazení vyplněného průběhu druhé mocniny funkce sinus násobené konstantou je na obr. 4-24.

Page 54: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základní použití 2D grafiky

54

Obr. 4-23: Histogram

Obr. 4-24: Plošný graf

MATLAB umožňuje pomocí příkazu polar efektivně vykreslovat grafy i v polárních souřadnicích. Příkaz má dva parametry. Prvním parametrem je úhel v radiánech, který svírá vektor (někdy také označovaný rádius vektor) s kladným směrem osy nezávisle proměnné. Druhým parametrem je délka (modul) tohoto vektoru. Uživatel samozřejmě může také specifikovat styl a barvu kreslených křivek. Stejně jako v ostatních případech je možné i do grafu umístit nejrůznější popisky. Do obrázku je také možné pomocí příkazu subplot umístit několik grafů. Ukázka základního použití příkazu polar je uvedena na obr. 4-25. MATLAB poskytuje také navíc dvě funkce, které je lze využít k transformaci souřadnic. Příkaz cart2pol slouží k převodu z kartézských souřadnic do polárních, příkaz pol2cart k převodu zpětnému.

Page 55: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vybrané speciální typy 2D grafů

55

Obr. 4-25: Graf v polárních souřadnicích

Page 56: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 57: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

57

5 Práce se soubory a tvorba skriptů

Po ukončení práce s MATLABem dojde k nevratnému vymazání všech proměnných, které uživatel definoval. Pokud ale tyto proměnné uživatel potřebuje např. při dalším spuštění MATLABu či je chce přenést do jiného počítače, musí tyto proměnné uložit do souboru. Často je také třeba zpracovat data získaná měřením, provést jejich grafické zobrazení, regresi apod. Prostředí MATLAB umožňuje pracovat s nejrůznějšími typy souborů a jak bude ukázáno dále, zpracování naměřených dat je v tomto prostředí velmi jednoduché a elegantní.

Uložení nejrůznějších dat je možné do speciálních souborů MATLABu s příponou MAT. Jedná se o binární soubory a struktura proměnných nehraje žádnou roli. K ukládání slouží příkaz save a pokud jej použijeme bez parametrů, dojde k uložení celého prostoru proměnných (Workspace) do souboru matlab.mat. Soubor je umístěn v aktuálním adresáři. K uložení celého prostoru proměnných lze také použít položku Save Workspace as... z menu File okna Command Window. Stejným způsobem je možné i uložené proměnné vyvolat. K načtení proměnných ze souboru matlab.mat použijeme příkaz load (opět bez parametrů). Další možností je, obdobně jako v předchozím případě, výběr položky Import Data... z menu File.

Vytvořme nyní několik proměnných a proveďme jejich uložení a opětovné načtení výše uvedeným způsobem. Způsob definování proměnných byl již podrobně popsán v kapitole 2. Na obr. 5-1 je uvedeno vytvoření šesti proměnných – tři skalární proměnné, pole (matice), řetězec a struktura. Tyto proměnné jsou po vytvoření viditelné v okně Workspace, viz obr. 5-2. V okně je znázorněna i jejich struktura, typ a příp. minimální a maximální hodnota.

Obr. 5-1: Definice proměnných různých typů

Page 58: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce se soubory a tvorba skriptů

58

Obr. 5-2: Interaktivní práce s proměnnými, Array Editor

Okno prostoru proměnných Workspace (obr. 5-2) obsahuje samozřejmě i několik funkcí pro interaktivní práci s definovanými proměnnými. Proměnné je možné zobrazit v Array Editoru. Po dvojitém kliknutí na zvolenou proměnnou, v našem případě matice M, se otevře okno editoru a přímo se zapojí (dock) do základního okna MATLABu. V editoru je interaktivním způsobem možné měnit jednotlivé hodnoty a případně je i okamžitě vykreslit, viz obr. 5-3. Zvolíme-li v roletovém menu položku More Plots..., dojde k otevření dalšího okna Plot Catalog (obr. 5-4), ve kterém lze opět interaktivním způsobem vybrat zvolený typ grafu a okamžitě jej vykreslit. Samozřejmě není možné zvolit jakýkoliv typ grafu, záleží na povaze a struktuře dat.

Obr. 5-3: Možnosti okamžitého vykreslení hodnot

Page 59: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce se soubory a tvorba skriptů

59

Obr. 5-4: Interaktivní vykreslování dat

Vraťme se ale k možnostem ukládání proměnných do souboru. V okně Workspace je také možné prostřednictvím k tomu určené ikony proměnné uložit. Po kliknutí na ikonu lze všechny proměnné uložit do binárního souboru s příponou MAT. V dialogovém okně na obr. 5-5 pouze zvolíme standardním způsobem cílový adresář a název souboru. Ponecháme-li název matlab.mat, budeme moci později proměnné otevřít pomocí příkazu load.

Obr. 5-5: Dialogové okno pro ukládání proměnných

Proměnné vytvořené na obr. 5-1 nyní uložíme příkazem save (bez parametrů) do souboru, který bude umístěn v aktuální složce. Následně provedeme vymazání všech definovaných proměnných příkazem clear all a pomocí příkazu whos se přesvědčíme,

Page 60: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce se soubory a tvorba skriptů

60

zda vymazání skutečně proběhlo. Je zřejmé, že ani v okně Workspace nebudou žádné proměnné.

Obr. 5-6: Uložení proměnných do souboru matlab.mat v aktuální složce

Proměnné, které jsme uložili do souboru matlab.mat můžeme načíst příkazem load (také bez jakýchkoliv parametrů) a opět se přesvědčit pomocí whos, zda jsou proměnné skutečně načtené a odpovídají těm ukládaným, viz obr. 5-7.

Obr. 5-7: Načtení proměnných ze souboru matlab.mat v aktuální složce

Jinou možností je načtení proměnných ze souboru interaktivním způsobem pomocí položky Import Data... hlavního menu MATLABu nebo pomocí ikony v okně Workspace (obr. 5-2). V tomto případě bezprostředně po výběru příslušného souboru v dialogovém okně Import Data (je podobné oknu Save to MAT-file na obr. 5-5) dojde k otevření okna průvodce Import Wizard (obr. 5-8). V průvodci je možné zvolit proměnné, které chceme importovat a k dispozici je i náhled (preview). Implicitně jsou vybrány všechny proměnné. Pokud některou z nich nechceme importovat, zrušíme její výběr v příslušném check boxu v části Import.

Page 61: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce se soubory

61

Obr. 5-8: Průvodce importem proměnných

5.1 Základy práce se soubory Výše popsaný způsob uložení proměnných do souboru samozřejmě není jedinou

možností MATLABu jak zálohovat či načítat data. Není ani účelné vždy ukládat veškeré proměnné, které uživatel v průběhu práce s MATLABem nadefinuje. Příkaz save lze také zadat s parametry, které přímo určují název souboru, případně i adresář, do kterého chceme soubor umístit, ale především výčet proměnných pro uložení. Z proměnných, které jsme již vytvořili na obr. 5-1 uložíme zapsáním příkazu save data1 c M text do souboru data1.mat pouze proměnné c, M a text, viz obr. 5-9. Pokud nechceme data uložit do aktuálního adresáře, zapíšeme v argumentu příkazu i úplnou cestu, např. save C:\New\data1 c M text.

Obr. 5-9: Uložení vybraných proměnných

Příkaz k načtení dat můžeme zadat pouze s názvem souboru (obr. 5-9, příponu není nutné uvádět), tedy load data1. Nebo můžeme zadat v parametrech příkazu i konkrétní proměnnou, kterou chceme načíst – syntaxe pro načtení např. matice M je následující load data1 M, viz obr. 5-10.

Další proměnné lze také přidávat i do souborů, které již existují a to bez rizika přepsání proměnných v souboru původně uložených. Příkaz save stačí doplnit o parametr

Page 62: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce se soubory a tvorba skriptů

62

–append. Na obr. 5-11 je takto nově vytvořená proměnná A (matice definovaná pomocí eye). Tímto způsobem lze připojit proměnné do existujícího souboru i opakovaně.

Obr. 5-10: Načtení vybraných proměnných

Obr. 5-11: Přidání nové proměnné do existujícího souboru

Z důvodu zpětné kompatibility je soubory určené ke čtení v nižších verzích MATLABu (ve verzi 6.5 a nižších) třeba uložit s přepínačem –v6. Syntaxe použití přepínače je obdobná jako na obr. 5-11. Možné je i zachování kompatibility s verzemi 4.x, k příkazu přidáme přepínač –v4.

MATLAB pracuje i s textovými soubory ve formátu ASCII. Tyto soubory mají většinou příponu TXT, nicméně to není nutnou podmínkou a lze použít i příponu jinou. Pro ukládání textových souborů zapisujeme příkaz save obvyklým způsobem, jen jej rozšíříme o přepínač –ascii. Tabulka 5-1 uvádí všechny přepínače, které je možné při ukládání textových souborů použít.

Tab. 5-1: Přehled speciálních 2D grafů

Kombinace přepínačů Popis

–ascii ASCII standard s přesností čísla na 8 míst, oddělovač je mezera –ascii –double ASCII standard s přesností čísla na 16 míst –ascii –tabs ASCII standard, oddělovač je tabelátor –ascii –double –tabs ASCII standard s přesností čísla na 16 míst, oddělovač je tabelátor

Page 63: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce se soubory

63

Matici B definovanou na obr. 5-12 uložíme v textovém ASCII formátu do souboru data2.abc, jako oddělovač zvolíme v tomto případě tabelátor. Syntaxe příkazu bude save data2.abc B –ascii –double –tabs. Soubor lze otevřít i ve standardním textovém editoru, např. v poznámkovém bloku obsaženém v operačním systému Windows, viz obr. 5-13.

Obr. 5-12: Uložení textového souboru

Zápis příkazu může být také ve tvaru funkce, tedy např. save(′data2.abc′,′B′,′–ascii′). Pokud chceme naopak data z textového souboru načíst, zapíšeme příkaz load data2.abc resp. load(′data2.abc′).

Obr. 5-13: Struktura souboru po otevření v textovém editoru

Po načtení dat není ale v prostoru proměnných původní matice B, ale proměnná s názvem souboru, z kterého data načítáme. V našem případě je to proměnná data2, viz obr. 5-14. Pokud chceme název jiný, musíme provést následně přiřazení jiné proměnné a tu původní pomocí příkazu clear příp. vymazat, tak jako na obr. 5-15.

Obr. 5-14: Čtení dat z textového souboru

Uvedený způsob čtení dat z textového souboru je výhodný zejména při zpracování naměřených dat, která bývají často uložena v textovém formátu. Obvykle je v souboru uložena matice, jejíž jednotlivé sloupce resp. řádky odpovídají např. hodnotám získaným různými měřícími přístroji a po načtení do prostředí MATLABu je možné efektivně tato data zpracovávat a následně i graficky interpretovat. Na obr. 5-15 je načtena datová matice z textového souboru a její řádky jsou následně přiřazeny dvěma proměnným.

Page 64: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce se soubory a tvorba skriptů

64

Obr. 5-15: Čtení dat z textového souboru a jejich přiřazení proměnným

Práci značně usnadňuje vytváření skriptů, v rámci nichž lze naměřená data např. filtrovat, převzorkovávat, porovnávat se simulací apod. Základní pravidla pro vytváření skriptů budou uvedena v kapitole 5.2.

Obr. 5-16: Uložení dat ve formátu XLS

Data je možné také číst a zapisovat ve formátu XLS (soubory tabulkového procesoru Microsoft Excel). Čtení ze souboru zajišťuje příkaz xlsread. Syntaxe tohoto příkazu může být např. M = xlsread(′data.xls′) nebo N = xlsread(′data.xls′, ′list3′, ′b2:g10′), chceme-li ze souboru data.xls číst data v rozsahu buněk b2 až g10 v listu 3. Zápis do souboru tohoto typu je možný prostřednictvím příkazu xlswrite. Na obr. 5-16 je takto zapisována předem vytvořená matice do souboru data3.xls a na obr. 5-17 jsou uložená data zobrazena přímo v programu Excel.

Obr. 5-17: Struktura uložených dat v programu Microsoft Excel

Page 65: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Tvorba skriptů

65

5.2 Tvorba skriptů Práci v MATLABu značně usnadňuje vytváření vlastních programů – skriptů. Tato

skutečnost dovoluje uživateli při řešení rozsáhlejších problémů zapisovat potřebné příkazy do skriptů, které lze uložit na disk počítače a později kdykoliv vyvolat. Uživatelem vytvořené skripty se ukládají do souborů s příponou m a z tohoto důvodu jsou i často označovány jako m-soubory (m-files). Jinými slovy je skript takový textový m-soubor obsahující seznam příkazů MATLABu, který po zavolání v příkazovém řádku jednotlivé příkazy postupně zpracovává. Volání skriptu se realizuje prostým zapsáním jeho jména (bez přípony).

Obr. 5-18: Okno editoru skriptů

Uživatel skripty vytváří ve speciálním editoru (obr. 5-18), jelikož se ale jedná o textové soubory, je možné je prohlížet nebo i editovat běžným textovým editorem. Vestavěný editor ale poskytuje užitečné funkce a lze z něho také vytvářené skripty přímo spouštět. Editor vyvoláme z nabídky základního okna matlabu File → New → M-File, případně pomocí ikony umístěné v toolbaru okna zcela vlevo (symbol prázdného listu). K vyvolání editoru dojde i v případě, že otevíráme již existující m-soubor, ať již z menu File → Open... (zvolíme soubor s příponou m) nebo pomocí ikony v toolbaru.

Před začátkem vlastního zápisu skriptu je vhodné provést nejprve uložení m-souboru na disk počítače. Uložení se provádí standardním způsobem v menu File → Save As..., průběžné ukládání je později možné např. prostřednictvím klávesové zkratky Ctrl + S. Název m-souboru může obsahovat až 219 znaků. Při překročení tohoto limitu MATLAB verze R2007b vypíše chybové hlášení a k uložení nedojde. Ve starších verzích prostředí bylo možné ukládat soubory o délce 31 znaků, přičemž znaky nad limit byly ignorovány. Název souboru musel začínat písmenem, za kterým se pak mohli vyskytovat písmena, číslice a podtržítka, tak jako u proměnných. Ve verzi R2007b již toto omezení neplatí.

Obr. 5-19: Skript startup.m otevřený ve standardním textovém editoru

V MATLABu jsou obdobným způsobem, tedy pomocí skriptů, vytvářeny veškeré funkce. K pravidlům pro tvorbu vlastních funkcí majících vstupní a výstupní parametry

Page 66: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Práce se soubory a tvorba skriptů

66

se vrátíme ještě později. Při spuštění MATLABu se automaticky zavolá skript s názvem startup.m (pokud soubor na disku existuje), v němž může uživatel nastavit požadované parametry, např. změnit používanou znakovou sadu. Popisovaný skript s volbou jiné znakové sady může vypadat jako na obr. 5-19. Běžně se ale tento soubor na disku počítače nenachází a MATLAB je spouštěn s implicitním nastavením. Soubor je třeba tedy po vytvoření umístit do podadresáře MATLABu; nezměnil-li uživatel nastavení, tak do C:\Program Files\MATLAB\R2007b\toolbox\local.

Obr. 5-20: Jednoduchý skript

Obr. 5-21: Odezva MATLABu po vykonání skriptu

Jak již bylo řečeno, tak do skriptu lze zapisovat jakékoliv příkazy MATLABu. Skript lze ale také doplnit o komentáře, které jsou uvozené znakem procenta (%). Komentáře mohou být na samostatných řádcích, ale i za běžnými příkazy. Všechny ve skriptu volané funkce pracují s daty uloženými v prostoru proměnných. Nové proměnné je před jejich použitím možné přímo ve skriptu definovat. Na obr. 5-20 je ukázka jednoduchého

Page 67: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Tvorba skriptů

67

skriptu, který vypočítá a následně zobrazí frekvenční charakteristiky systému definovaného obrazovým přenosem. Ke spuštění tohoto skriptu je ale nutné mít nainstalovaný Control System Toolbox. Skript spustíme prostřednictvím menu Debug, v němž zvolíme položku Run, případně pomocí funkční klávesy F5. Další možností je spuštění pomocí ikony v toolboxu okna editoru. Odezva MATLABu po vykonání uvedeného skriptu je na obr. 5-21. Vypsány jsou pouze polynomy čitatele a jmenovatele a obrazový přenos systému. U ostatních příkazů byl úmyslně výstup potlačen pomocí středníku, obdobně jako při běžném zápisu v příkazovém řádku okna Command Window.

Po dokončení skriptu se také zobrazí výsledné průběhy frekvenčních charakteristik. Na obr. 5-22 je uvedena frekvenční charakteristika v komplexní (Gaussově) rovině a také frekvenční charakteristiky (amplitudová a fázová) v logaritmických souřadnicích.

Obr. 5-22: Frekvenční charakteristiky vykreslené pomocí uživatelského skriptu

Page 68: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 69: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

69

6 Základy práce v prostředí Simulink

Jak již bylo řečeno v úvodu tohoto textu, nadstavbové prostředí Simulink je určeno především k modelování a simulaci dynamických systémů. Toto prostředí využívá grafických možností operačního systému Windows. Způsob vytváření vlastního modelu je tedy značně odlišný od práce se základním prostředím MATLABu. Modely uživatel definuje jednoduchým způsobem prostřednictvím blokových schémat, která jsou podobná zapojením pro analogový počítač. Pro efektivní práci v Simulinku je nutná základní znalost MATLABu. Nezbytné jsou ale také alespoň elementární znalosti principů matematického modelování dynamických systémů. V následujících odstavcích se uživatel seznámí se základy prostředí Simulink a jeho možnostmi.

Obr. 6-1: Spuštění prostředí Simulink

Obr. 6-2: Základní okno Simulinku

Page 70: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

70

Pokud chceme spustit Simulink, musíme mít již spuštěné základní prostředí MATLAB. Simulink lze spustit přímo pomocí příslušné ikony v toolbaru (viz obr. 6-1) a nebo přímo zadáním příkazu simulink v okně Command Window MATLABu. Po spuštění prostředí se otevře okno Simulink Library Browser (obr. 6-2) obsahující standardní knihovny.

Každá z knihoven obsahuje jednotlivé bloky reprezentující příslušné funkce. Tyto bloky lze jednoduchým způsobem přetahovat myší do okna modelu. Nejedná se ovšem o klasické přetažení, neboť blok samozřejmě v knihovně zůstane. Ve skutečnosti se vytvoří pouze vazba na knihovní blok; v okně modelu je pak možno s tímto blokem dále pracovat. Bloky jsou v knihovnách seskupeny podle oblasti jejich použití.

Většina bloků dovoluje zadat hodnoty různých parametrů. Tyto hodnoty lze zadávat přímo jako číselné konstanty a nebo efektivněji – pomocí proměnných. Ty je možné definovat standardním způsobem jako v základním prostředí MATLABu. Proměnné je nutné v tomto případě inicializovat před spuštěním vlastní simulace prostým zadáním v příkazovém okně MATLABu či pomocí skriptu, jehož součástí může být i případné spuštění simulace a vykreslení výsledků v grafické formě.

Obr. 6-3: Okno pro vytváření modelu

Obr. 6-4: Rozšířený systém nápovědy a přístup k demům

Page 71: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Standardní knihovny Simulinku

71

Okno nového modelu otevřeme přes základní menu v horní liště okna Simulink Library Browser, zvolíme File → New → Model. Další možností je použití klávesové zkraty Ctrl + N nebo použití ikony v toolbaru okna. Samozřejmostí je otevření existujícího modelu (Ctrl + O), viz obr. 6-3, úplné zavření okna Simulinku či přístup k vlastnostem Preferences.

K systému nápovědy lze přistupovat také přímo z hlavního okna Simulinku – v menu okna vybereme Help → Simulink Help. Další možností je přístup z okna modelu, zde vybereme v menu Help → Using Simulink. Pokud uživatel potřebuje podrobnější popis jednotlivých bloků, přehled datových typů podporovaných v těchto blocích, přehled všech zkratkových kláves, které lze v Simulinku používat nebo výčet možností speciálních funkcí (tzv. S-funkcí), zvolí v menu okna pro vytváření modelu položky Blocks, Block Support Table, Shortcuts resp. S-Functions.

6.1 Standardní knihovny Simulinku Ke knihovnám Simulinku lze přistupovat, jak již bylo řečeno, prostřednictvím okna

Simulink Library Browser. Zvolíme-li například knihovnu Continuous (viz obr. 6-5), tak v pravé části tohoto okna vidíme její obsah. V tomto případě je vybrán blok Derivative (numerická derivace) a v horní části okna, bezprostředně pod toolbarem, je uveden jeho podrobnější popis.

Obr. 6-5: Procházení knihoven Simulinku

Simulink umožňuje i jiný způsob přístupu ke knihovnám a jejím blokům. Zadáme-li příkaz simulink3 v okně Command Window MATLABu, dojde k otevření základní knihovny označené simulink3 (okno je označené Library: simulink3) a fyzicky uložené v souboru simulink3.mdl, viz obr. 6-6. Zobrazená základní knihovna (Simulink Block Library) je ve verzi 5.0. V textové informaci ve spodní části tohoto okna se uživatel může dočíst, že uvedená knihovna je již nevyhovující a doporučuje se použití příkazu

Page 72: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

72

open_system('simulink.mdl') k otevření nové základní knihovny Simulinku, viz obr. 6-7. Nová základní knihovna je již ve verzi 7.0 a odpovídá v textu popisované distribuci MATLABu verze R2007b (7.5.0).

Obr. 6-6: Jiný způsob procházení knihoven Simulinku

Pro efektivní práci se Simulinkem je zřejmě vhodnější použití základní nabídky (okno Simulink Library Browser). Nabízený alternativní přístup ke knihovnám je ale přehlednější a poslouží k názornému popisu jednotlivých knihoven Simulinku v dalších odstavcích. Výhodou je i skutečnost, že uživatel může mít otevřeno i několik knihoven současně.

Obr. 6-7: Aktuální základní knihovna Simulinku ve verzi 7.0

Základní knihovna prostředí Simulink obsahuje další knihovny, do kterých jsou jednotlivé bloky seskupeny podle oblasti jejich využití. Knihovny (skupiny bloků) jsou v základním okně (obr. 6-7) reprezentovány ikonami – tlačítky. Po dvojitém kliknutí myší na příslušnou ikonu dojde k otevření zvolené knihovny. Takto byly např. otevřeny knihovny Sources a Sinks na obr. 6-8.

Další možností otevření příslušné knihovny (např. knihovny Continuous) je její výběr pomocí myši v levé části základního okna Simulinku. Prostřednictvím pravého tlačítka myši se v tomto případě objeví plovoucí nabídka Open the Continuous Library a po jejím vybrání se knihovna Continuous otevře v samostatném okně.

V knihovně Sources jsou obsaženy bloky pro vstup dat do subsystémů (In1), pro čtení ze souboru na disku (From File) resp. z prostoru proměnných (From Workspace). Dále také i bloky použitelné jako zdroje běžných druhů signálů, např. konstantního signálu (Constant), různých harmonických signálů a pulsů (Signal Generator, Sine Wave, Chirp Signal, Pulse Generator), zdroje skokových a rampových funkcí a opakovaných

Page 73: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Standardní knihovny Simulinku

73

sekvencí (Step, Ramp, Repeating Sequence). Dále generátory různých pseudonáhodných signálů (Random Number, Uniform Random Number), bílého šumu (Band-Limited White Noise), signálů číslicových a generátory času (Clock, Digital Clock).

Obr. 6-8: Knihovny Sources a Sinks

Knihovna Sinks obsahuje bloky pro výstup dat ze subsystémů (Out1), pro zápis do souboru (To File) a do prostoru proměnných (To Workspace) a bloky pro zobrazení průběhů signálů (Scope, Floating Scope, XY Graph, Display). Knihovna také obsahuje blok Stop Simulation pro ukončení simulace pokud je vstup do bloku nenulový.

Mezi základní knihovny Simulinku patří knihovny Continuous a Discrete sloužící ke spojitému a diskrétnímu popisu dynamických systémů. Nejdůležitější jsou bloky pro numerickou integraci a derivaci. Blok Integrator umožňuje zadání počátečních podmínek a limitaci výstupu (saturaci). Obojí je možno zadat jednak přímo hodnotou parametru, ale také pomocí dalších vstupních signálů. Blok dovoluje i externí reset (nastavení do počátečního stavu) na základě změny řídicího logického signálu (na náběžnou, sestupnou nebo obě hrany). Další možností je definování stavového výstupu (state portu), který se využívá právě ve spojitosti s externím resetem integrátoru a poskytuje hodnotu, která by byla na výstupu, pokud by nedošlo k resetu.

K numerické derivaci slouží blok Derivative. Je známou skutečností, že matematicky jasně definovaná derivace je obtížně numericky aproximovatelná. Derivace je v prostoru obrazů (po aplikování Laplaceovy transformace) v tomto případě aproximována obrazovým přenosem s / ((1 / N) s + 1), kde Tv = 1 / N představuje tzv. parazitní časovou konstantu. Blok derivace umožňuje změnu konstanty N, implicitní hodnota je Inf (nekonečno, přesněji aritmetická reprezentace kladného nekonečna podle standardu IEEE). V popisu uvedeném v okně parametrů bloku, ale i v nápovědě k bloku, je uveden chybný přenos ve tvaru s / (N + 1).

Page 74: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

74

Obr. 6-9: Knihovny Continuous a Discrete

Obr. 6-10: Knihovna Discontinuous

Bloky State-Space, Transfer Fcn a Zero Pole umožňují zadání popisu dynamického systému ve formě stavového popisu, obrazového přenosu či pomocí nul, pólů a zesílení. Zbývající bloky Transport Delay, Variable Time Delay a Variable Transport Delay slouží k modelování dopravního zpoždění (i proměnného).

Knihovna Discrete obsahuje bloky potřebné pro diskrétní popis systémů. Většina bloků je víceméně ekvivalentní blokům z knihovny Continuous, např. bloky Discrete-Time Integrator, Discrete Transfer Fcn resp. Discrete Filter, Discrete State-Space.

Page 75: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Standardní knihovny Simulinku

75

Knihovna obsahuje také bloky tvarovače nultého řádu (Zero-Order Hold) a prvního řádu (First-Order Hold). Užitečný je i blok Memory, který představuje zpoždění vstupního signálu o jeden simulační krok a lze jej využít např. k odstranění algebraické smyčky.

Knihovna Discontinuous (obr. 6-10) obsahuje typické nelinearity, jmenovitě saturaci (blok Saturation), necitlivost – mrtvé pásmo (Death Zone), zubovou vůli (Backlash) a statické tření (Coulomb & Viscous Friction). Dále blok Relay, blok Rate Limiter pro omezení rychlosti změny signálu, blok Hit Crossing pro detekci průchodu definovanou hodnotou a další.

Obr. 6-11: Knihovny Signal Routing a Signal Attributes

Součástí knihoven Signal Routing a Signal Attributes jsou především bloky pro práci se signály. Mezi nejdůležitější bloky patří Mux a Demux, které umožňují sloučení několika signálů do jednoho a naopak. Pokud uživatel potřebuje např. pomocí daného parametru přepínat mezi několika signály, může využít blok Multiport Switch. Výhodné je i použití bloku Switch, který umožňuje přepínání mezi dvěma vstupními signály na základě vyhodnocování úrovně referenčního signálu a porovnání s definovanou mezí. Pro rozsáhlá simulační schémata je vhodné použití bloků From a Goto, umožňujících přenos signálů mezi těmito bloky bez nutnosti fyzického propojení.

V mnoha případech je důležité použití bloku Convert, který zajistí konverzi na požadovaný datový typ (i zcela automaticky dle typu signálu na výstupu bloku). Blok IC nastaví počáteční hodnotu signálu na vstupu bloku. Knihovna Signal Attributes obsahuje samozřejmě i další bloky, např. blok Probe, sloužící k zjišťování parametrů signálů (šířka, vzorkování, detekce jestli je signál komplexní) nebo blok Width, na jehož výstupu je šířka vstupního signálu (datový typ výstupu lze navíc zvolit).

Rozsáhlá knihovna Math Operations (obr. 6-12) obsahuje bloky Sum, Add a Subtract pro sčítání resp. odečítaní signálů. Vzhled a počet vstupů bloku Sum lze jednoduše předem

Page 76: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

76

nastavit; implicitně je nastaveno sčítání dvou signálů a kruhový tvar bloku. Bloky Add a Subtract jsou pouze variantou bloku Sum a jejich vzhled a počet vstupů lze měnit stejným způsobem.

Obr. 6-12: Knihovna Math Operations

Mezi další bloky popisované knihovny patří blok pro zesílení signálu Gain příp. Slider Gain pro zesílení ručně přestavitelné (pomocí posuvníku). K násobení či dělení dvou a více signálů lze využit bloky Product (násobení vektorové), Dot Product (odpovídá prvkovému násobení, v MATLABu označovanému .*) a Divide.

Významnou skupinou jsou bloky reprezentující základní matematické funkce, např. funkci signum (blok Sign) a absolutní hodnotu (Abs). Knihovna obsahuje dále univerzální blok matematických funkcí a univerzální blok trigonometrických funkcí (Math Function resp. Trigonometric Function), blok pro zaokrouhlování (Rounding Function) a blok pro stanovení minima a maxima (MinMax). Další skupinu tvoří bloky pro vektorové a maticové operace a bloky pro nejrůznější konverze komplexních čísel (např. převod na složkový tvar resp. na tvar exponenciální, rozdělení na reálnou a imaginární část).

Knihovna Logic and Bit Operations (obr. 6-13) zahrnuje bloky logických a bitových operací a bloky pro detekci hran signálů. Mezi základní bloky patří Logical Operator pro logické operace (AND, OR, NAND, NOR, XOR, NOT). Uživatel může v okně parametrů bloku změnit i jeho vzhled, tak aby odpovídal zvolené logické operaci (použito je anglosaské značení), a počet vstupů. Blok Relational Operator umožňuje navzájem

Page 77: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Standardní knihovny Simulinku

77

porovnávat dva signály. V bloku je možno zvolit operátory = (= =), ≠ (~ =), <, ≤ (< =), ≥ (> =) a >. Bloky Compare To Zero a Compare To Constant umožňují porovnávat vstupující signál s nulou resp. s předem definovanou konstantou. Blok Combinatorial Logic poskytuje uživateli možnost implementovat do simulačního schématu pravdivostní tabulku.

Obr. 6-13: Knihovna Logic and Bit Operations

Obr. 6-14: Knihovny Lookup Tables a User-Defined Functions

Page 78: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

78

Součástí knihovny Lookup Tables (obr. 6-14) jsou bloky pro tabulkovou aproximaci funkcí jedné (Lookup Table) či více proměnných (Lookup Table (2-D), Lookup Table (n-D)). V okně parametrů bloku se volí rozsah vstupních dat (i včetně kroku), typ a rozsah tabelační funkce (implicitně funkce tanh) a metodu aproximace.

Velmi významná je knihovna User-Defined Functions poskytující značné možnosti pro zadávání téměř libovolných funkcí (blok Fcn), celých skriptů (MATLAB Function) nebo speciálních S-funkcí (S-Function).

Obr. 6-15: Knihovna Ports & Subsystems

Poslední knihovnou Simulinku, uvažujeme-li pouze základní verzi prostředí bez rozšíření o další toolboxy, je knihovna Ports & Subsystems (obr. 6-15). Mimo již dříve uvedené bloky In1 a Out1 (knihovny Sources a Sinks), které slouží ke vstupu a k výstupu dat u subsystémů, obsahuje tato knihovna několik bloků pro vytváření vlastních subsystémů (Subsystem, Model a další).

Blok subsystému představuje ve své podstatě další (vnořené) simulační schéma; propojení s ostatními částmi modelu se realizuje pomocí již zmiňovaných bloků In1 a Out1. Počet vstupů a výstupů bloku lze jednoduše rozšířit přidáním dalších vstupních či výstupních bloků. Blok Model umožňuje vnoření celého modelu (nikoliv jen skupiny bloků), který je uložen v souboru.

Okno základních knihoven je také doplněno o skupinu běžně užívaných bloků (commonly used blocks), o rychlý přístup k demům (Demos) a o skupiny obsahující knihovny dalších toolboxů a skupin bloků (Blocksets & Toolboxes, Additional Math & Discrete).

Page 79: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Standardní knihovny Simulinku

79

Obr. 6-16: Skupina bloků Commonly Used Blocks

Ze skupiny bloků Blocksets & Toolboxes je v základní verzi Simulinku důležitá hlavně základní knihovna Simulink Extras, která obsahuje další knihovny, viz obr. 6-17. Mimo knihovny Additional Sinks, Additional Discrete a Additional Linear (obr. 6-18), které obsahují jakési doplňky k výše popisovaným knihovnám, je její součástí také knihovna Flip Flops s bloky představujícími základní typy klopných obvodů (obr. 6-19).

Obr. 6-17: Základní knihovna Simulink Extras

Knihovna Additional Sinks obsahuje některé další bloky pro vyhodnocování průběhů a vlastností signálů. Jsou to např. bloky pro výpočet výkonové spektrální hustoty (Power Spectral Density, Averaging Power Spectral Density), pro výpočet autokorelační funkce signálu (Auto Correlator) či vzájemné korelační funkce dvou signálů (Cross Correlator).

Knihovny Additional Discrete a Additional Linear poskytují doplňkové bloky pro spojitý a diskrétní popis dynamických systémů. Tyto bloky umožňují, oproti obdobným blokům z knihoven Continuous a Discrete, nastavit také počáteční stavy na vstupu resp. na výstupu bloku.

Nejdůležitější z této skupiny jsou ale bloky PID regulátoru. Blok PID Controller představuje běžnou spojitou variantu PID regulátoru s přenosem P + I / s + D s (přenos je

Page 80: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

80

v paralelním tvaru), zatímco PID Controller (with Approximate Derivative) představuje PID regulátor s aproximovanou derivací s přenosem P + I / s + (D s) / ((1 / N) s + 1); je tedy možno navíc měnit i konstantu N.

Obr. 6-18: Knihovny Additional Sinks, Additional Discrete a Additional Linear

Obr. 6-19: Knihovna Flip Flops

6.2 Vytváření modelu Prvním předpokladem pro vytváření modelu dynamického systému je, mimo spuštění

vlastního prostředí Simulink, otevření prázdného okna modelu. Zopakujme, že nové okno modelu lze otevřít přes základní menu v horní liště okna Simulink Library Browser, zde zvolíme File → New → Model, další možností je použití klávesové zkraty Ctrl + N nebo také ikony v toolbaru okna (viz obr. 6-2). Velmi vhodné je uložení nového modelu již na počátku jeho vytváření a jeho pozdější průběžné ukládání (standardním způsobem, např. pomocí kombinace kláves Ctrl + S).

Prázdné okno modelu je zpočátku pojmenované untitled. Proveďme nyní uložení nového modelu, např. pod názvem Simulace1. Dialogové okno pro uložení souboru je na obr. 6-20. Mimo obvyklá omezení operačního systému nesmí název souboru modelu začínat číslicí a obsahovat pomlčku (rozdělovník -). Simulink poskytuje i možnost zpětné kompatibility s nižšími verzemi prostředí. Uživatel může prostřednictvím roletového menu Uložit jako typ zvolit verzi, kterou potřebuje.

Page 81: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření modelu

81

Obr. 6-20: Uložení nového modelu

Aktuální adresář odpovídá nastavení v základním v okně MATLABu, implicitně je nastaven do C:\Documents and Settings\User\Dokumenty\MATLAB, lze jej ale změnit. Adresář User v uváděné cestě odpovídá označení uživatelského účtu v konkrétní instalaci systému Windows. Připomeňme, že v MATLABu je aktuální adresář (Current Directory) zobrazen nad hlavním oknem Command Window. Na disku počítače je v aktuálním adresáři po uložení umístěn soubor Simulace1.mdl. Nyní již může uživatel začít vytvářet vlastní model dynamického systému.

Pro jednoduchost a názornost bude dále vytvářen model obecného dynamického systému druhého řádu. Konkrétně se může jednat o model RLC obvodu, zjednodušený model sedadla řidiče či pružného závěsu kola automobilu, apod. Popisovaný dynamický systém je popsán diferenciální rovnicí obecně ve tvaru a2 y″(t) + a1 y′(t) + a0 y(t) = b0 u(t) s nulovými počátečními podmínkami. Lze jej také popsat obrazovým přenosem ve tvaru G(s) = b0 / (a2 s2 + a1 s + a0).

Užijeme-li k řešení uvedené diferenciální rovnice např. metodu postupné integrace, tak po vyjádření nejvyšší derivace obdržíme rovnici

uaby

aay

aay

2

0

2

0

2

1 +−′−=′′ .

a po dvojí integraci pak

∫∫∫∫∫ +−−= uaby

aay

aay

2

0

2

0

2

1 .

Pro zjednodušení zápisu jsou jednotlivé integrály zapsány bez příslušných mezí. Např. integrálu

∫t

dy0

)( ττ odpovídá zápis ∫ y .

Výše uvedenou rovnici budeme dále realizovat v Simulinku.

Page 82: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

82

Obr. 6-21: Umístění bloku do okna modelu

Do prázdného okna modelu (Simulace1) umístíme postupně několik bloků tak, aby bylo možné realizovat výše uvedenou diferenciální rovnici. Bloky ze zvolené knihovny lze jednoduchým způsobem přetahovat myší do okna modelu. Připomeňme, že se nejedná o klasické přetažení (blok v knihovně samozřejmě zůstane), ale vytvoří se pouze vazba na knihovní blok.

Do okna modelu umístíme nejprve dva integrátory. Blok pro integraci (Integrator) je součástí knihovny Continuous (viz obr. 6-5 a 6-9). Blok do okna modelu umístíme tak, že jej nejprve vybereme v základním okně Simulink Library Browser. V levé části okna zvolíme základní knihovnu Simulink a v ní vybereme knihovnu Continuous. V pravé části okna poté v rámci této knihovny myší vybereme blok Integrator a přetažením jej umístíme do okna modelu, viz obr. 6-21. Další možností je výběr položky Add to <název modelu>, v našem konkrétním případě Add to Simulace1, z plovoucího menu přístupného prostřednictvím pravého tlačítka myši nad zvoleným blokem v okně Simulink Library Browser.

Kromě přesunu z knihovny je možné i bloky v okně modelu kopírovat – standardním způsobem (Ctrl + C a následně Ctrl + V) nebo pomocí myši. Kopírování pomocí myši provedeme tak, že nejprve vybereme kliknutím blok, který chceme kopírovat (po výběru je zřetelně označen), následně stiskneme pravé tlačítko myši (u kurzoru se objeví symbol plus), přesuneme kurzor na požadované místo a uvolníme stisknutí tlačítka. V tento okamžik již máme na ploše druhý blok integrátoru, který je zřetelně označen, viz obr. 6-22. U názvu okna se objevil po vložení nového bloku symbol hvězdičky, který signalizuje, že došlo ke změně v okně modelu a model je vhodné uložit.

Obr. 6-22: Kopírování bloků pomocí myši

Page 83: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření modelu

83

Název nového bloku se nastaví zcela automaticky tak, aby byl v rámci okna modelu jednoznačný. V našem případě má první blok (přetažený z knihovny) název Integrator, druhý blok (zkopírovaný) má pak název Integrator1.

Obdobným způsobem umístíme do okna modelu z knihovny Math Operations tři bloky Gain a dva bloky Sum (případně bloky Add mající stejné vlastnosti, ale odlišný vzhled, viz obr. 6-12). Dále umístíme z knihovny Sources blok Step a z knihovny Sinks blok Scope. Bloky (obr. 6-23) je vhodné před jejich vlastním propojením v okně modelu rozmístit, případně některé z nich i otočit tak, aby výsledné zapojení bylo přehledné.

Obr. 6-23: Počáteční rozmístění bloků v okně modelu

Bloky Integrator, Integrator1, Step a Scope prozatím ponecháme beze změn. Nejprve se zaměříme na bloky Gain, Gain1 a Gain2. Blok Gain využijeme k realizaci násobení signálu u(t) konstantou b0 / a2, bloky Gain1 a Gain2 k vynásobení signálu y(t) konstantou –a1 / a2 resp. konstantou –a0 / a2. Bloky Gain1 a Gain2 otočíme tak, aby byly ve směru toku signálu. Otočení (rotaci) bloku lze provést pomocí menu Format → Rotate Block nebo prostřednictvím zkratkové klávesy Ctrl + R. Rotaci je na uvedené bloky nutné aplikovat dvakrát, neboť po prvním použití je blok orientován svisle (otočení je vždy směrem doprava) a až po druhém použití je blok otočen zrcadlově. Další možností je zrcadlové otočení bloku – opět pomocí menu Format → Flip Block resp. pomocí klávesy Ctrl + I.

Obr. 6-24: Zadání parametrů bloku Gain

Page 84: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

84

V tomto okamžiku je účelné již zadat konkrétní hodnoty parametrů zesilovačů a případně také změnit jejich velikost. Implicitně je ve všech blocích zesilovačů nastavena hodnota 1, viz obr. 6-23. Dvojitým kliknutím na bloku Gain otevřeme dialogové okno parametrů bloku (obr. 6-24) a v záložce Main zadáme v položce Gain konstantu b0 / a2. Bezprostředně po zadání se změní podbarvení položky, což signalizuje, že došlo ke změně parametru. U ostatních parametrů ponecháme implicitní hodnoty. Poznamenejme pouze, že položka okna Multiplikation umožňuje pomocí roletového menu změnit implicitně nastavené prvkové násobení (Element-wise K.*u) na násobení maticové a to i včetně pořadí (Matrix K*u a Matrix u*K). Položka Sample time umožňuje volbu vzorkování resp. kroku výpočtu; obvykle se doporučuje ponechat implicitní hodnotu –1 a nastavení kroku výpočtu řešit centrálně v parametrech simulace. Obdobným způsobem definujeme i parametry zesilovačů Gain1 a Gain2.

Obr. 6-25: Změna velikosti bloku

Po zadání konstanty b0 / a2 do bloku Gain se změní vzhled tohoto bloku (obr. 6-25) a na místo původního symbolu 1 je uvnitř bloku zobrazen symbol -K-. Pro zlepšení přehlednosti, zejména u rozsáhlých simulačních schémat, je vhodné zvětšit velikost bloku tak, aby byla viditelná zadaná hodnota zesílení. Zvětšení bloku můžeme provést uchopením vybraného bloku za rohovou značku (změní se kurzor myši) a tažením tak dlouho, dokud není zadaná hodnota viditelná, viz obr. 6-25.

Obr. 6-26: Optimální rozmístění bloků před vlastním zapojením

Situace po provedení shora uvedených změn je na obr. 6-26. Nyní již můžeme postupně provést vlastní propojení bloků modelu. Naprostá většina bloků Simulinku má alespoň jeden port sloužící k propojení s ostatními bloky. Např. blok Gain, má jeden vstupní port a jeden výstupní port. Na obr. 6-28 je ukázán postup vzájemného propojení bloku Step (má pouze výstupní port) s blokem Gain.

Page 85: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření modelu

85

Obr. 6-27: Tip pro automatické

propojování bloků

Při prvním pokusu o propojení bloků nás Simulink upozorní na možnost rychlého automatického propojení bloků – dojde k zobrazení okna Automatic Block Connection Tip (obr. 6-27). Aby nedocházelo nadále k zobrazování tohoto okna, může uživatel zatrhnout volbu Do not show this message again. Rychlé propojení dvou bloků lze provést tak, že nejprve levým tlačítkem myši zvolíme první blok a současně stiskneme a držíme klávesu Ctrl. Následně myší zvolíme druhý blok a uvolníme klávesu Ctrl – bloky jsou navzájem propojeny.

Výhodné je propojování bloků směrem od výstupu prvního bloku ke vstupu bloku druhého. Nejdříve umístíme kurzor myši na výstupní port bloku Step (kurzor se změní na kříž), následně stiskneme levé tlačítko a myší táhneme až ke vstupnímu portu bloku Gain. Tlačítko myši uvolníme až v okamžiku, kdy se kurzor změní na dvojitý kříž, viz obr. 6-28.

Obr. 6-28: Propojování bloků

Jedině tak zajistíme správné spojení bloků. Pokud tlačítko uvolníme dříve, nedojde ke spojení a vlastní spoj je zobrazen červenou čárkovanou čarou (obr. 6-29). Nedokončený spoj je ovšem možné opravit uchopením jeho konce a dotažením až k bloku.

Obr. 6-29: Správné a chybné spojení bloků

Pokud potřebujeme signál větvit, je vhodnější postupovat v propojování od cílového bloku směrem ke spoji, na který chceme navázat. Zalomení spoje je zcela automatické. Nejprve opět umístíme kurzor myši na vstupní port bloku Gain1 (pozor, blok je již otočen a vstupní port je na pravé straně) a stejným způsobem jako na obr. 6.28 myší táhneme směrem doprava a poté směrem nahoru. Tlačítko myši uvolníme až v okamžiku změny kurzoru na dvojitý kříž, viz obr. 6-30.

Page 86: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

86

Obr. 6-30: Větvení signálů

Zbývá již jen dokončit vzájemné propojení ostatních bloků. Výsledný model systému je na obr. 6-31. Závěrem ještě uveďme, že výstup jednoho bloku může být připojen na libovolný počet vstupů jiných bloků či toho samého bloku. V případě potřeby většího počtu pravoúhlých zalomení je možné tažený spoj ukončit bez připojení ke konkrétnímu bloku (tento spoj je zobrazen červenou čárkovanou čarou, tak jako na obr. 6-29) a z tohoto místa táhnout další spoj.

Simulink také umožňuje jednoduše měnit vzhled bloků. Po kliknutí pravým tlačítkem myši nad zvoleným blokem dojde k zobrazení plovoucího menu. Prostřednictvím tohoto menu je možné, mimo základních možností pro kopírování a mazání bloku a přístupu k oknu parametrů bloku, také nastavit font popisky bloku, umístění této popisky, barvu pozadí a obrysu bloku, případně zobrazit kontextovou nápovědu.

Obr. 6-31: Výsledný model dynamického systému

Font popisky a její umístění lze nastavit, zvolíme-li v plovoucím menu Format jeho položky Font... resp. Flip Name či položku Hide Name pro úplné odstranění popisky. Další možností je zvolení položky Show Drop Shadow, která zvýrazní vybraný blok doplněním o stín. Barvu obrysu bloku můžeme změnit, zvolíme-li v položce Foreground Color některou z nabízených barev, příp. zvolíme Custom a vybereme barvu z rozsáhlé nabídky. Požadovanou barvu si může uživatel pomocí barevné palety i sám namíchat. Zvolí-li v dolní části okna položku Definovat vlastní barvy, dojde k rozšíření okna Choose Custom Color o barevnou paletu, viz obr. 6-32.

Stejným způsobem lze změnit i výplň bloku – prostřednictvím položky Background Color. K dispozici máme stejné možnosti volby barev, včetně možnosti definování požadované barvy uživatelem.

Page 87: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření modelu

87

Obr. 6-32: Definování vlastní barvy

Dvojitým kliknutím na popisku vybraného bloku přejdeme do režimu editace (uvnitř popisky se objeví svislý kurzor) a standardním způsobem lze text popisky přepsat. Není ale možné označit dva bloky stejným textem. V libovolném místě okna modelu je také možné umístit komentář. Dvojklikem na zvoleném místě se uživatel dostane do režimu editace a může zapsat požadovaný text. U textu komentáře lze obvyklým způsobem měnit velikost, řez a barvu písma, barvu pozadí apod. V nabídce okna modelu Format volíme položky Font..., Text Alignment (Left, Center nebo Right), Show/Hide Drop Shadow, Foreground Color a Background Color. Můžeme změnit i pozadí celého okna – k tomu slouží položka Screen Color. Vzhled modelu (obr. 6-31) můžeme pomocí popisovaných úprav změnit např. do podoby na obr. 6-33.

Obr. 6-33: Upravený vzhled modelu

6.3 Spuštění simulace a zobrazení výsledků Model dynamického systému vytvořený v předchozím odstavci je již ve stavu, kdy je

možné přejít k vlastní simulaci. Je ale třeba ještě definovat koeficienty a0, a1, a2 a b0, které byly zadány v zesilovačích pomocí proměnných a0, a1, a2 a b0. Nejjednodušší je zadat tyto hodnoty přímo v příkazovém okně MATLABu. Pro jednoduchost byly všechny koeficienty zvoleny jednotkové, viz obr. 6-34.

Page 88: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

88

Obr. 6-34: Změna velikosti bloku

Před spuštěním simulace je třeba nastavit základní parametry simulace. Po otevření nabídky Simulation z okna modelu a výběru položky Configuration Parameters... (nebo po stisku Ctrl + E) se otevře okno parametrů simulace (obr. 6-35) se záložkami (jsou v levé části okna v nabídce Select) Solver, Data Import/Export, Optimization, Diagnostics, Hardware Implementation a Model Referencing. Pro základní práci s prostředím Simulink budou postačovat nastavení pouze v záložce Solver příp. Data Import/Export.

V záložce Solver je nejdůležitější nastavit v části Simulation time počátek simulace Start time, zde zpravidla ponecháme nulu, a zejména pak konec resp. délku simulace Stop Time. Pro simulaci v textu popisovaného systému bude stačit čas 15 s. Nastavení numerické metody výpočtu, kroku výpočtu a tolerancí je možné v části okna Solver options. Zde obvykle ponecháme parametr týkající se velikosti kroku (Variable-step, druhou variantou je Fixed Step) a pokud chceme zvýšit přesnost výpočtu, změníme pouze hodnoty Max step size, Min step size a Initial step size.

Obr. 6-35: Okno parametrů simulace – nastavení řešitele

Implicitní nastavení u všech těchto parametrů je auto. Parametr Max step size je Simulinkem volen automaticky podle zvolené doby simulace dtmax = (tstop – tstart) / 50.

Page 89: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření modelu

89

V našem případě, kdy jsme zvolili čas simulace 15 s, Simulink nastaví automaticky podle uvedeného vzorce tuto hodnotu na 0,3 s (v příkazovém okně MATLABu je dokonce zobrazeno i hlášení – Warning). Pro zvýšení přesnosti nastavíme Initial step size a Min step size na hodnotu 0,001 a hodnotu Max step size na desetinásobek, tedy na 0,01. Tolerance (Relative tolerance a Absolute tolerance) ponecháme beze změny.

Tab. 6-1: Přehled numerických metod

Řešitel (solver) Třída problémů Metoda

ode45 (Dormand-Prince) non-stiff explicitní Runge-Kutta (implementace Dormand-Prince)

ode23 (Bogacki-Shampine) non-stiff explicitní Runge-Kutta (implementace Bogacki-Shampine)

ode113 (Adams) non-stiff Adams-Bashforth-Moultonova ode15s (stiff/NDF) stiff NDFs (BDFs) ode23s (stiff/Mod. Rosenbrock) stiff Rosenbrockova

ode23t (Mod. stiff/trapezoidal) moderately stiff lichoběžníkové pravidlo

ode23th (stiff/TR–BDF2) stiff implicitní Runge-Kutta (implementace TR–BDF2)

Parametr Solver umožňuje zvolit numerickou metodu výpočtu. Implicitně je nastavena metoda ode45 (Dormand-Prince) a není třeba ji většinou měnit. Přehled všech možných metod výpočtu podává tab. 6-1. Často užívaný pojem stiff označuje tzv. tuhé (těžko řešitelné) systémy. Jedná se např. o elektrické obvody s velmi malými a současně i velkými časovými konstantami, které jsou obtížně numericky řešitelné (doba řešení, stabilita, konvergence). Zvolená numerická metoda je zobrazena také ve status baru okna modelu, viz obr. 6-31 a 6-33.

Obr. 6-36: Okno parametrů simulace – vstup a výstup dat z modelu

Page 90: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

90

Nyní je již možné spustit simulaci vytvořeného modelu. První možností je spuštění simulace z nabídky okna modelu Simulation → Start (nebo Ctrl + T). Rychlejší je ale spuštění prostřednictvím ikony v toolbaru okna, viz obr. 6-37. Napravo od této ikony lze také rychle zadávat délku simulace; je tam uvedena hodnota zadaná prostřednictvím okna parametrů simulace. Pokud dojde k neočekávaným problémům v průběhu simulace nebo pokud je zvolen příliš dlouhý čas výpočtu (resp. příliš malý krok), lze simulaci zastavit pomocí ikony .

Obr. 6-37: Rychlé ovládání běhu simulace

Průběh výpočtu je signalizován ve status baru okna modelu, zcela vlevo dole je zobrazován stav Running – běží. Přibližně uprostřed je pak aktuální čas, konkrétně např. na obr. 6-38 T = 7,423 s. Po ukončení simulace se stav změní zpět na Ready, viz obr. 6-39.

Obr. 6-38: Signalizace průběhu simulace

Obr. 6-39: Signalizace stavu bez probíhající simulace

Po ukončení výpočtu můžeme dvojitým kliknutím na ikonu zobrazovače (blok Scope) otevřít okno s grafickým záznamem řešení, viz obr. 6-40. Zobrazovací okno má implicitně nastavené určité měřítko a pokud jsou obdržené výsledky výrazně jiné, nemusíme nic vidět. V tomto případě je nutné manuálně změnit měřítko, např. pomocí ikony se symbolem dalekohledu nastavíme měřítko tak, aby se zobrazilo vše.

Obr. 6-40: Zobrazení řešení

Pokud je čas simulace příliš dlouhý resp. krok výpočtu malý, dojde k vykreslení pouze posledních 5000 vzorků. Ponecháme-li délku simulace 15 s a zvolíme-li maximální

Page 91: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření modelu

91

krok simulace např. 0,001 a minimální krok simulace 0,0001, dojde k vykreslení pouze části průběhu. Konkrétně pořadnic v čase od 10 do 15 s – ostatní data jsou ztracena, viz obr. 6-41.

Obr. 6-41: Ztráta dat při limitaci počtu vzorků na posledních 5000

Uvedený problém lze vyřešit zrušením implicitně nastavené limitace prostřednictvím okna parametrů bloku, které uživatel vyvolá pomocí ikony (obr. 6-41) nacházející se v toolbaru nalevo od ikony tisku. V okně ′Scope′ parameters (obr. 6-42) zvolíme záložku Data history a zrušíme uvedenou limitaci odznačením parametru Limit data points to last.

Obr. 6-42: Nastavení parametrů zobrazovače

Okno zobrazovače je vhodné také obvyklým způsobem zvětšit (nebo i maximalizovat). Po nastavení měřítek může být výsledek simulace zobrazen např. jako na obr. 6-43. Pokud ale chceme výsledky simulace prezentovat např. v nějakém textu, ve většině případů v tištěné formě, není možné použít přímo grafického výstupu zobrazovače. Převážně z důvodu nemožnosti nastavení změny barvy pozadí, barvy a šířky čar apod., je výstup z bloku Scope pro tyto účely přinejmenším nevhodný.

Velmi užitečné je tedy uložení dat získaných simulací do prostoru proměnných. V okně parametrů zobrazovače (obr. 6-42), opět v záložce Data History, označíme položku Save data to workspace. Zvolíme název proměnné Variable name, v našem případě v, a formát ukládaných dat Format změníme na Array namísto implicitně

Page 92: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

92

nastaveného typu Structure with Time. Po proběhnutí simulace již můžeme uložená data vykreslit v prostředí MATLABu zcela běžným způsobem (kapitola Chyba! Nenalezen zdroj odkazů.). V prostoru proměnných se objeví proměnná v rozměru 15005×2, viz obr. 6-44.

Obr. 6-43: Zobrazení řešení při vhodném nastavení měřítek

Vykreslení dat provedeme pomocí standardní funkce plot. S ohledem na strukturu dat musí být syntaxe příkazu plot(v(:,1),v(:,2)). První řádek matice v obsahuje vektor času, druhý pak vektor pořadnic simulované přechodové odezvy. Výsledný průběh je na obr. 6-45. Pokud zadáme příkaz pouze ve tvaru plot(v), dojde k vykreslení obou vektorů v závislosti na kroku výpočtu – průběh je chybný.

Obr. 6-44: Uložení dat v prostoru proměnných

Page 93: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření subsystémů

93

Obr. 6-45: Vykreslení řešení pomocí MATLABu – skript

Obr. 6-46: Vykreslení řešení pomocí MATLABu

6.4 Vytváření subsystémů Někdy je užitečné zahrnout část simulačního schématu do jednoho bloku – subsystému.

Obzvláště, je-li simulační schéma značně rozsáhlé a ponechání celého modelu v jednom okně by bylo na úkor přehlednosti. Zajímavé možnosti Simulink poskytuje také při vytváření vlastních (uživatelských) knihoven. Můžeme např. vytvořit knihovnu, která bude obsahovat nejrůznější varianty regulátorů.

Pokusme se nyní vytvořit vlastní subsystém. Budeme vycházet z modelu na obr. 6-31 a nejprve jej uložíme pod názvem Simulace2. Nejjednodušší způsob jak zahrnout část schéma do bloku subsystému je výběr této části (viz obr. 6-47) s následnou volbou položky Create Subsystem z menu Edit okna modelu (nebo Ctrl + G). Výsledný vzhled schéma modelu je na obr. 6-48. Nově vzniklý blok má název Subsystem a jeho ikona obsahuje i popis vstupů a výstupů (v tomto případě In1 a Out1).

Page 94: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

94

Obr. 6-47: Výběr části modelu pro zahrnutí do subsystému

Obr. 6-48: Vytvoření subsystému

Dvojklikem na bloku otevřeme okno subsystému pojmenované Simulace2/Subsystem, viz obr. 6-49. Toto okno poskytuje stejné možnosti jako základní okno modelu, např. přístup k parametrům simulace, spuštění simulace apod.

Obr. 6-49: Okno subsystému

Pro přehlednost je velmi vhodné přejmenovat vlastní blok subsystému, ale i všechny jeho vstupy a výstupy. Subsystém v našem případě pojmenujeme jako Model (PI), tato změna se projeví i v názvu okna subsystému, vstup přejmenujeme z In1 na u(t) a výstup

Page 95: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření subsystémů

95

z Out(1) na y(t). Přejmenování vstupů a výstupů je nutné provést přímo z okna subsystému, základní okno modelu tuto možnost neposkytuje.

Obr. 6-50: Doplnění modelu o další subsystém

Druhou možností jak vytvořit subsystém, je vložení příslušného bloku do okna modelu. K tomuto účelu slouží blok Subsystem z knihovny Ports & Subsystems (viz obr. 6-15). Nově vložený blok má název opět název Subsystem (první subsystém byl již přejmenován a proto není v názvu číslice jak bychom očekávali). Přejmenujme jej tedy na Model (SRD) a jeho porty na u(t) resp. y(t), obdobně jako v předchozím případě. Vzhled modelu by měl být podobný jako na obr. 6-50.

Obr. 6-51: Okno nového subsystému

Otevřeme-li okno subsystému Model (SRD) (obr. 6-51), zjistíme, že obsahuje pouze navzájem propojené vstupní a výstupní porty. Pokusme se nyní v rámci tohoto subsystému realizovat model shora popisovaného dynamického systému na základě jeho diferenciální rovnice metodou snižování řádu derivace. Připomeňme, že dynamický systém je druhého řádu a je popsán diferenciální rovnicí ve tvaru a2 y″(t) + a1 y′(t) + a0 y(t) = b0 u(t).

Z uvedené diferenciální rovnice stačí jednoduše vyjádřit nejvyšší derivaci

uaby

aay

aay

2

0

2

0

2

1 +−′−=′′

a provést vlastní zapojení. Pro zjednodušení práce můžeme většinu bloků zkopírovat ze subsystému Model (PI). Využijeme oba integrátory a všechny zesilovače včetně zadaných hodnot zesílení. K vlastnímu zapojení bude postačovat pouze jeden blok Sum, je ale třeba upravit počet jeho vstupů. V okně parametrů bloku (obr. 6-52) změníme v záložce Main typ ikony Icon Shape z původního round na rectangular. Dále změníme

Page 96: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

96

počet a typ vstupů definovaný v položce List of signs. Původní nastavení vstupů + + nahradíme + + + a blok dále také zvětšíme, viz obr. 6-53.

Obr. 6-52: Nastavení tvaru a počtu vstupů bloku Sum

Symbol představuje neobsazený port a má smysl jej používat pouze u kruhového tvaru bloku Sum. Pokud potřebujeme, aby některý z portů měl záporné znaménko, použijeme místo symbolu plus (+) symbol mínus (–).

Obr. 6-53: Změna tvaru a počtu vstupů bloku Sum

Na obr. 6-54 je uvedeno několik možností konfigurace portů bloku Sum kruhového tvaru. Pokud uživatel potřebuje více jak tři vstupy, je vhodnější použití obdélníkového tvaru.

Obr. 6-54: Několik možností konfigurace portů bloku Sum

Výsledný model realizovaný metodou snižování řádu derivace (SŘD), tedy subsystém s názvem Model (SRD), je na obr. 6-55.

+ + ++ + + + – +

Page 97: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vytváření subsystémů

97

Obr. 6-55: Model realizovaný metodou SŘD

Zbývá pouze dokončit zapojení v hlavním okně modelu. Vstup subsystému Model (SRD) připojíme na signál generovaný blokem Step. Bude nás jistě také zajímat, zda jsou výsledky simulace získané řešením na základě dvou různých modelů totožné. Z tohoto důvodu není příliš vhodné vložení dalšího bloku zobrazovače. Lepším řešením je změna konfigurace zobrazovače tak, aby bylo možné sledovat oba průběhy v jednom okně.

V okně parametrů bloku Scope nastavíme v záložce General v položce Number of axes hodnotu 2. Po potvrzení má blok Scope již dva vstupy a umožňuje samostatné zobrazení dvou průběhů. Výsledné schéma obsahující dva subsystémy (různé modely stejného dynamického systému) je na obr. 6-57.

Obr. 6-56: Nastavení zobrazení více průběhů

v jednom zobrazovači

Page 98: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

98

Obr. 6-57: Výsledné simulační schéma

Obr. 6-58: Doplnění modelu o další subsystém

Shoda výsledků obou modelů (subsystémy Model (PI) a Model (SRD)) je patrná z obr. 6-58. V následující kapitole budou ukázány i další možnosti zobrazení více průběhů v jednom zobrazovači.

6.5 Volba testovacích signálů Ve výše uvedeném textu byly téměř výhradně používány pro buzení modelů bloky

Step, představující jednotkový (tzv. Heavisideův) skok. Simulink ale poskytuje značné množství nejrůznějších generátorů funkcí, které jsou součástí knihovny Sources, viz kapitola 6.1.

Vraťme se nyní k již dříve vytvořenému modelu systému na obr. 6-31. Model budeme budit i nadále jednotkovým skokem, do schématu navíc doplníme blok Signal Generator.

Page 99: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Volba testovacích signálů

99

Volbu příslušného budicího signálu provedeme pomocí bloku Manual Switch, který je součástí knihovny Signal Routing. Nastavení parametrů provedeme pomocí proměnných, které budeme definovat ve skriptu. Pomocí tohoto skriptu spustíme i vlastní simulaci.

Obr. 6-59: Model s různými variantami generace budicího signálu

Obr. 6-60: Nastavení parametrů bloku Signal Generator

Upravený model je na obr. 6-59. V bloku Step zadáme do Step Time proměnnou ts a do položky Final Value proměnnou us. V bloku Signal Generator ponecháme implicitně nastavenou funkci sinus a zadáme velikost amplitudy a frekvenci v položce Amplitude resp. Frequency – pomocí proměnných Au a fu, viz obr. 6-60.

Průběhy budicí veličiny u(t) a odezvy y(t) systému budeme ukládat prostřednictvím bloků To Workspace (knihovna Sinks) do prostoru proměnných. V okně parametrů těchto bloků musíme ještě nastavit formát ukládaných dat Array (např. pro u(t) viz obr. 6-61).

Page 100: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

100

Obr. 6-61: Nastavení parametrů bloku To Workspace

Hodnoty všech výše uvedených proměnných zadáme ve skriptu (obr. 6-62). Simulaci lze následně spustit pomocí příkazu sim. Vhodné je také otevření okna modelu zapsáním jména souboru (příponu není nutné uvádět), v našem případě Simulace3. Pokud je okno již otevřeno, dojde k jeho vysunutí do popředí. Jelikož v modelu na obr. 6-59 ukládáme veličiny t, u(t) a y(t), můžeme i jednoduchým způsobem zobrazit příslušné průběhy, viz obr. 6-63.

Obr. 6-62: Definice proměnných, spuštění simulace a zobrazení výsledků pomocí skriptu

Pokud chceme změnit typ budící funkce, musíme pomocí myši přepnout přepínač (blok Manual Switch). Výhodnější je ale použití bloku Multiport Switch, který umožňuje přepnutí pomocí daného parametru. Parametr zadáme do bloku Multiport Switch pomocí bloku Constant, v jehož okně parametrů zapíšeme v položce Constant Value proměnnou s názvem typ.

Page 101: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Volba testovacích signálů

101

Obr. 6-63: Grafické zobrazení výsledků simulace při různých typech buzení

Obr. 6-64: Okno parametrů bloku Multiport Switch

Obr. 6-65: Upravený model s různými variantami budicích signálů

Page 102: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

102

Požadovaný signál budeme volit pomocí proměnné typ ve skriptu. Pokud chceme systém budit jednotkovým skokem, tak proměnné přiřadíme hodnotu 1 (bude zvolen první vstupující signál do bloku). Chceme-li systém budit harmonickým signálem, přiřadíme proměnné typ hodnotu 2. V okně parametrů bloku Multiport Switch (obr. 6-64) lze měnit i počet jeho vstupů. Implicitně má blok vstupy tři.

Upravené simulační schéma je na obr. 6-65. Model byl uložen pod názvem Simulace4, je tedy nutné změnit jeho název také ve skriptu. Skript ještě doplníme o proměnnou typ; ostatní části můžeme ponechat, viz obr. 6-66.

Obr. 6-66: Upravený skript

Page 103: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Volba testovacích signálů

103

Page 104: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Základy práce v prostředí Simulink

104

7 Modelové příklady

V následujících odstavcích jsou uvedeny dva modelové příklady. Oby příklady jsou velmi podrobně rozebrány, včetně úvodního teoretického rozboru. Student – uživatel je krok po kroku provázen vytvářením simulačního modelu s využitím prostředí MATLAB – Simulink. V závěru jsou uváděny kontrolní otázky a úkoly k procvičení a prohloubení probrané látky.

V prvním příkladě je vytvářen model serio-paralelního RLC rezonančního obvodu tak, aby mohly být simulovány jeho základní charakteristiky, včetně frekvenčních. Odvozena je diferenciální rovnice uvažovaného obvodu, v tomto konkrétním případě s derivací na pravé straně. K sestavení simulačního modelu je použita metoda postupné integrace.

V druhém příkladě je vytvářena nejjednodušší varianta modelu sedadla řidiče. K řešení, tj. k realizaci simulačního modelu sedadla, je v tomto případě použita metoda snižování řádu derivace. Pohyb sedadla je též analyzován s využitím potřebného matematického aparátu a řešení je následně provedeno také pomocí Laplaceovy integrální transformace. Podrobněji jsou popisovány i varianty, kdy je systém na mezi aperiodicity a kdy je jeho dynamika kmitavá.

7.1 Rezonanční vlastnosti RLC členu RLC členy jsou obvody, které jsou připojeny ke zdroji střídavého napětí a jsou

obecně tvořeny rezistorem o odporu R, ideální cívkou s indukčností L a ideálním kondenzátorem s kapacitou C. Obvykle se tyto obvody označují jako obvody rezonanční. Jednoduché rezonanční obvody, sériové nebo paralelní, tvoří vždy komplexní jednobran. Obvody serio-paralelní pak tvoří komplexní dvojbran. Při tzv. rezonanční frekvenci se v těchto obvodech navzájem vyrovná působení indukční a kapacitní reaktance (induktance a kapacitance) a celý obvod se chová jako čistá rezistance. Rezonanční obvody se používají jako pasivní filtry, horní a dolní propusti, pásmové propusti či zádrže.

Problémem při řešení takových obvodů může být komplikovanost obdržených rovnic, mnohdy i ve velmi jednoduchých případech. Značné možnosti poskytuje programové prostředí MATLAB, především jeho grafická nadstavba Simulink. Chování rezonančních obvodů lze velmi jednoduchým způsobem v tomto prostředí simulovat. Můžeme také měnit hodnoty vstupních parametrů a sledovat průběh odezvy obvodu při buzení různými typy signálů. Konstrukce frekvenčních charakteristik je v MATLABu triviální.

Příklad

Analyzujte a v prostředí MATLAB – Simulink simulujte chování rezonančního obvodu na obr. 7-1. Hodnoty prvků pro jednoduchost zpočátku uvažujte R = L = C = 1.

Obr. 7-1: Schéma zapojení RLC obvodu

R

L C u1 u2

uR iL iC

iR

Page 105: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Rezonanční vlastnosti RLC členu

105

Řešení Při zkoumání rezonančních vlastností RLC členu na obr. 7-1, vycházíme ze základních

vztahů pro střídavé napětí a proud. Je-li v obvodu více prvků (R, L nebo C), je pro každý prvek možné sestavit odpovídající integrální a diferenciální rovnici

Riu RR =

⎪⎪⎭

⎪⎪⎬

=

= ∫

tiLu

iC

u

LL

t

CC

dd

d)(1

0

ττ CL uuu ==2

∫=

=

t

LL

CC

uL

i

tuCi

0

d)(1

dd

ττ

Dosazením do rovnice pro napětí v obvodu

2221 )( uRiiuRiuuu CLRR ++=+=+=

20

21 d)(1

dd uRu

LtuCu

t

L +⎟⎟⎠

⎞⎜⎜⎝

⎛+= ∫ ττ

Výše uvedenou integro-diferenciální rovnici dále můžeme derivovat podle času, formálně označíme d u2 / d t = u2′, d2u2 / d t

2 = u2″, a získat diferenciální rovnici popisující zkoumaný systém – RLC člen

1222 uuLRuuRC ′=+′+′′

Diferenciální rovnici budeme řešit v prostředí MATLAB – Simulink. Chování RLC členu budeme simulovat, nejprve však musíme navrhnout simulační schéma.

7.1.1 Vytvoření simulačního modelu

Vycházíme z výše uvedené diferenciální rovnice a nejprve vyjádříme nejvyšší derivaci 2u ′′ jako lineární kombinaci nižších derivací a buzení (napájecí napětí u1)

1222111 u

RCu

LCu

RCu ′+−′−=′′

Sestavení simulačního schématu provedeme s využitím metody postupné integrace, která je v tomto případě vynucena derivací na pravé straně diferenciální rovnice, tj. u1′. Rovnici budeme dvakrát integrovat

∫∫∫∫ +−−= 1222111 u

RCu

LCu

RCu

Z důvodu zjednodušení zápisu se jednotlivé integrály obvykle zapisují bez příslušných mezí. Např. integrálu

∫t

u0

2 d)( ττ odpovídá zápis ∫ 2u

a obdobně

∫ ∫t t

u0 0

22 d)( ττ odpovídá ∫∫ 2u

Page 106: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

106

Zavedeme-li označení

LCa 1

0 = ; RC

a 11 = ;

RCb 1

1 =

lze psát

∫∫∫∫ +−−= 1120212 ubuauau

Simulační schéma (model) RLC členu je na obr. 7-2. Technice vytváření simulačních modelů se podrobně věnuje kapitola 6, příp. kniha [8]. Kliknutím na symbol (ikonu) některého z bloků v programovém okně Simulinku se otevře příslušné dialogové okno, ve kterém nastavíme požadované parametry.

Obr. 7-2: Simulační model RLC členu

Koeficienty v zesilovačích (bloky Gain) budeme definovat pomocí proměnných. Na obr. 7-3 je okno parametrů jednoho ze zesilovačů. V položce Gain záložky okna Main je v tomto případě zadána proměnná b1.

Obr. 7-3: Model

Pomocí dvoupolohového přepínače, dvojitým kliknutím na ikoně bloku, je také možné zvolit typ vstupního signálu. Jednoduše lze změnit parametry obou budicích funkcí (obr. 7-4). V případě skokové funkce lze měnit v položce Step time dobu skoku a v položkách Initial value a Final value počáteční a konečnou hladinu skoku.

Page 107: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Rezonanční vlastnosti RLC členu

107

Obr. 7-4: Změna parametrů budicích funkcí

V případě harmonické funkce (sinus) lze měnit v položce Amplitude amplitudu, dále v položce Bias velikost stejnosměrné složky (posun), v položce Frequency frekvenci v rad/s a v položce Phase fázový posuv v radiánech.

Hodnoty koeficientů a0, a1 a b1 jsou zadány pomocí proměnných. Konkrétní hodnoty je tedy třeba ještě definovat v příkazovém řádku v okně Command Window MATLABu, viz obr. 7-5.

Obr. 7-5: Definování proměnných a výpočet

koeficientů diferenciální rovnice

Před spuštěním simulace je možné nastavit základní parametry simulace. Po otevření nabídky Simulation z okna modelu a výběru položky Configuration Parameters... (nebo po stisku Ctrl + E) se otevře okno parametrů simulace (obr. 7-6) s několika záložkami (jsou v levé části okna v nabídce Select). Pro základní práci s prostředím Simulink obvykle postačuje změnit nastavení v záložce Solver.

Page 108: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

108

Obr. 7-6: Změna základních parametrů simulace

V záložce Solver je nejdůležitější nastavit v části Simulation time počátek simulace Start time, zde zpravidla ponecháme nulu, a zejména pak konec resp. délku simulace Stop time. Nastavení numerické metody výpočtu, kroku výpočtu a tolerancí je možné v části okna Solver options. Zde obvykle ponecháme parametr týkající se velikosti kroku (Variable-step, druhou variantou je Fixed-step) a pokud chceme zvýšit přesnost výpočtu, změníme pouze hodnoty Max step size, Min step size a Initial step size.

Implicitní nastavení u všech těchto parametrů je auto. Parametr Max step size je Simulinkem volen automaticky podle zvolené doby simulace dtmax = (tstop – tstart) / 50. V našem případě, kdy jsme zvolili čas simulace 20 s, Simulink nastaví automaticky podle uvedeného vzorce tuto hodnotu na 0,4 s (v příkazovém okně MATLABu je dokonce zobrazeno i hlášení – Warning). Pro zvýšení přesnosti nastavíme Max step size na hodnotu 0,01, viz obr. 7-6.

7.1.2 Spuštění simulace a zobrazení výsledků

Simulaci lze spustit z nabídky okna modelu Simulation → Start (Ctrl + T). Rychlejší je ale spuštění prostřednictvím ikony v toolbaru okna. Napravo od této ikony je také možné měnit délku simulace. Pokud dojde k neočekávaným problémům v průběhu simulace či pokud je zvolen příliš dlouhý čas výpočtu (resp. příliš jemný krok výpočtu), lze simulaci zastavit pomocí ikony .

Po ukončení výpočtu, dvojitým kliknutím na ikonu zobrazovače ve schématu (v našem případě blok Scope) otevřeme okno s grafickým záznamem řešení diferenciální rovnice. Na obr. 7-7 jsou průběhy budící skokové funkce (jednotkový skok) a příslušné odezvy.

Pokud by nás zajímala reakce systému vybuzeného jinou než skokovou budicí funkcí, jednoduše nahradíme blok Step jiným blokem z bohaté nabídky Simulinku. Další možností je umístění více bloků budicích funkcí a použití analogového přepínače (Manual Switch) k volbě mezi nimi, tak jak je to provedeno v demonstrovaném příkladě na obr. 7-2.

Page 109: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Rezonanční vlastnosti RLC členu

109

Obr. 7-7: Zobrazení řešení

Chceme-li nyní zkoumat vlastnosti RLC členu v závislosti na parametrech R, L a C a zároveň se i vyhnout poněkud složitějšímu zadávání koeficientů z příkazového řádku MATLABu, otevřeme z prostředí Simulinku soubor rezonancni_obvod_2.mdl. Upravené simulační schéma je na obr. 7-8. Hodnoty R, L a C jsou zde zadávány pomocí bloků Constant. Pomocí bloku Mul (multiplexor) jsou jednotlivé signály sdruženy do jednoho. Vektorové spoje můžeme pro přehlednost zvýraznit. V položce menu Format Port/Signal Displays zvolíme Wide Nonscalar Lines.

Obr. 7-8: Upravený simulační model

Výpočet koeficientů a0, a1 a b1 je ve schématu realizován pomocí bloků Fcn (jsou označeny 1/ RC a 1/ C L) sloužících pro definování funkcí. K hodnotám R, L a C je třeba přistupovat výběrem z vektoru. Ukázka zápisu výrazu do funkčního bloku je uvedena na obr. 7-9.

Nyní se budeme podrobněji zabývat rezonančními vlastnostmi RLC členu. Jako budící funkci zvolíme funkci sinus, použijeme blok Sine Wave resp. přepneme přepínač do příslušné polohy. Konfigurace bloku byla provedena již dříve. Připomeňme pouze, že pro

Page 110: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

110

jednoduchost byly nastaveny tyto hodnoty: amplituda U1 = 1, frekvence fu1 = 1 rad/s. Fáze a střední hodnota byly ponechány nulové.

Obr. 7-9: Zápis výrazu v bloku Fcn

Na obr. 7-10 jsou průběhy budící sinové funkce a odpovídající odezvy. Je zřejmé, že ve stavu rezonance (ω L = 1/ω C) a pro R = L = C = 1 platí

11==

LCω ; π2π2

==ω

T

Snadno se můžeme přesvědčit z průběhu získaného simulací, že perioda vybuzeného signálu v ustáleném stavu je skutečně 2π a při impedanci jdoucí k nekonečnu je u2 = u1.

Obr. 7-10: Záznam řešení při harmonickém buzení modelu

7.1.3 Frekvenční charakteristiky

Vyjdeme-li z diferenciální rovnice popisující RLC člen ve tvaru

1120212 ubuauau ′=+′+′′

LCa 1

0 = ; RC

a 11 = ;

RCb 1

1 =

lze s využitím Laplaceovy transformace stanovit odpovídající obrazový přenos systému – RLC členu. S využitím základních korespondencí (viz příloha A) můžeme psát

Page 111: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Rezonanční vlastnosti RLC členu

111

)]0()([)()]0()([)]0(')0()([ 111202212222 +−=++−++−+− usUsbsUausUsauussUs

Obrazový přenos je definován jako poměr Laplaceova obrazu výstupu ku Laplaceovu obrazu vstupu při nulových počátečních podmínkách

012

1

1

2

)()()(

asassb

sUsUsG

++==

Frekvenční přenos získáme nahrazením parametru s → jω

012

1

j)j(j)j(

aabG

++=

ωωωω

Z frekvenčního přenosu můžeme samozřejmě vyjádřit pomocí jednoduchých úprav frekvenční charakteristiky. Zejména nás zajímají logaritmické frekvenční charakteristiky – amplitudová a fázová frekvenční charakteristika (často označovány jako tzv. BODEho charakteristiky). MATLAB umožňuje tyto charakteristiky kreslit přímo, pokud definujeme obrazový přenos zkoumaného systému. K definování obrazového přenosu použijeme příkaz tf (Transfer Function), k zobrazení charakteristik pak příkaz bode, viz obr. 7-11. Tyto příkazy jsou ale přístupné pouze tehdy, máme-li nainstalován Control System Toolbox.

Obr. 7-11: Frekvenční charakteristiky

Simulink umožňuje provádět simulaci systému, který je definován pouze v jednom bloku, na základě znalosti obrazového přenosu. Nemusíme tedy složitě programovat odpovídající diferenciální rovnici, použijeme pouze blok Transfer Fcn. Simulační schéma s příkladem je součástí souboru rezonancni_obvod_3.mdl. Pro srovnání jsou uvedeny obě varianty řešení (obr. 7-12). Praktická shoda je prokázána překrytím obou průběhů zakreslených v jednom grafu (obr. 7-14).

Zadání koeficientů obrazového přenosu odpovídá zápisu do příkazového řádku v okně MATLABu, viz obr. 7-11 a 7-13. Velmi důležité je dodržení správného zápisu vektorů čitatele a jmenovatele obrazového přenosu – vždy sestupně od koeficientu u nejvyšší mocniny operátoru s.

Page 112: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

112

Obr. 7-12: Simulace na základě znalosti obrazového přenosu

Obr. 7-13: Definice obrazového přenosu v bloku Transfer Fcn

Obr. 7-14: Porovnání obou variant řešení

Page 113: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

113

Zobrazení průběhů do paralelních oken grafu zajistíme nastavením parametru Number of axes v záložce General okna parametrů zobrazovače. Zvolíme-li jemný krok simulace, je z důvodu většího rozsahu dat vhodné v záložce Data history zrušit přednastavenou limitaci počtu zobrazovaných vzorků na posledních 5000.

Probraná témata

základní integrální a diferenciální rovnice (pro napětí a proud) pro jednotlivé prvky, odvození diferenciální rovnice,

řešení lineární diferenciální rovnice s derivací na pravé straně v prostředí MATLAB – Simulink, metoda postupné integrace,

změna parametrů simulace a budicích funkcí, možnosti zobrazení výsledků,

frekvenční charakteristiky.

Stručné shrnutí

při sestavování diferenciální rovnice vycházíme z integrálních a diferenciálních vztahů pro napětí a proud,

vzhledem k derivaci na pravé straně rovnice používáme k sestavení simulačního modelu obvykle metodu postupné integrace,

výsledný simulační model může obsahovat i několik různých bloků vstupních funkcí (jejichž parametry lze samozřejmě měnit), přepínání mezi nimi můžeme realizovat pomocí přepínačů (manuálních nebo řízených),

Simulink umožňuje měnit jednoduchým způsobem krok simulace (přesnost výpočtu), všechny parametry lze definovat prostřednictvím proměnných,

pokud máme nainstalován i Control System Toolbox, MATLAB umožňuje velmi jednoduše vykreslovat frekvenční charakteristiky,

analyzovaný dynamický systém může být popsán obrazovým přenosem, při simulaci pak postačuje systém modelovat pouze pomocí jednoho bloku.

Kontrolní otázky a úkoly

Simulujte chování zadaného RLC členu s uvažováním obou typů budicích funkcí, měňte vhodně hodnoty R, L a C a sledujte odezvu modelu.

Předpokládejme zadané hodnoty parametrů, při frekvenci budicího harmonického signálu fu1 = 1 rad/s je obvod v rezonanci. Jaká bude perioda vybuzeného signálu (napětí u2(t)) v ustáleném stavu? Vaši hypotézu ověřte odečtem z grafu.

Uvažujte tyto hodnoty prvků: R = 0,5 Ω, L = 5 H, C = 200 µF. Nalezněte frekvenci, při které bude uvažovaný RLC v rezonanci. Výpočet následně ověřte simulací.

Přiložené soubory

soubory modelu: rezonancni_obvod_1.mdl, rezonancni_obvod_2.mdl a rezonancni_obvod_3.mdl

Page 114: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

114

7.2 Dynamika sedadla řidiče Základní konstrukce vodicích mechanismů odpružených sedadel jsou dvojího typu.

Jedním typem je nůžkový mechanismus, druhým typem je čtyřkloubový mechanizmus – paralelogram. Oba tyto typy mechanizmů sedadel jsou obvykle doplněny pneumatickými pružinami a hydraulickými tlumiči. Vyráběná sedadla umožňují nastavovat jejich výšku, tuhost tlumičů a nebo je umožněno úplné vypuštění vzduchu ze vzduchové pružiny. Sedadla jsou vybavena také pružnými omezovači zdvihu, obvykle v podobě pryžových dorazů či zádržných pásů, které zabraňují poškození vibroizolačního systému.

Chování nejrůznějších dynamických systémů resp. jejich zjednodušených modelů (např. zjednodušený model sedadla řidiče či model pružného závěsu kola automobilu), můžeme poměrně jednoduše simulovat v prostředí MATLAB – Simulink. Abychom mohli sestavit odpovídající model nějakého dynamického systému v Simulinku, je nutné se nejdříve zabývat diferenciálním popisem tohoto systému. Pomocí matematicko-fyzikální analýzy tedy obvykle hledáme diferenciální rovnici, která by vhodně popisovala chování reálného fyzikálního systému. V dalším textu se omezíme na konkrétní lineární časově invariantní systém (jeho vlastnosti se v čase nemění) s jednou vstupní a jednou výstupní veličinou. Ten bývá popsán lineární diferenciální rovnicí s konstantními koeficienty, obecně ve tvaru

an y(n) (t) + an–1 y(n–1) + ... + a1 y′(t) + a0 y(t) = bm u(m) (t) + ... + b1 u′(t) + b0 u(t)

kde ai, bi jsou konstantní koeficienty a u(t) představuje vstupní a y(t) výstupní veličinu.

Z podmínky fyzikální realizovatelnosti systému musí být m ≤ n, tj. stupeň nejvyšší derivace výstupní veličiny musí být větší nebo roven stupni nejvyšší derivace vstupní veličiny. Pro řešení uvedené diferenciální rovnice musíme znát počáteční podmínky systému y(0), y′(0), ..., y(n–1)(0) a průběh vstupní veličiny u(t) včetně jejích počátečních podmínek u(0), u′(0), ..., u(m–1)(0).

Přenos dynamického systému je definován jako poměr Laplaceova obrazu výstupní veličiny k Laplaceově obrazu vstupní veličiny při nulových počátečních podmínkách systému y(0) = y′(0) = ... = y(n–1)(0) = 0 a vstupního signálu u (0) = u′(0) = ... = u(m–1)(0) = 0. Lineární diferenciální rovnici s konstantními koeficienty můžeme transformovat použitím pravidel Laplaceovy transformace (viz příloha A) při splnění výše uvedených podmínek do tvaru

[an s n + an–1 s n–1 + ... + a1 s + a0] Y(s) = [bm s(m) + ... + b1 s + b0] U(s)

Vyjdeme-li z této rovnice, tak podle výše uvedené definice má obrazový přenos systému tvar

01

01

......

)()()(

asasabsbsb

sUsYsG n

n

mm

++++++

==

K případnému dalšímu studiu může čtenář využít např. knihy [1, 2].

Příklad Analyzujte a v prostředí Simulink simulujte chování zjednodušeného modelu sedadla

řidiče na obr. 7-15. Uvažujte konkrétní hodnoty: hmotnost sedadla m1 = 20 kg, hmotnost řidiče m2 = 80 kg, gravitační zrychlení g ≈ 10 m/s2, koeficient tuhosti pružiny c = 8 ⋅103 N/m

Page 115: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

115

a koeficient tlumení tlumiče k = 2,4 ⋅103 N s/m. Pro jednoduchost neuvažujte kinematické buzení spodní základny (pohyb podlahy vozidla vyvolaný jízdou po nerovné vozovce). Sledujte také vliv změny parametrů c a k na pohyb sedadla při dosednutí řidiče.

Obr. 7-15: Zjednodušený model sedadla

Řešení

Při zkoumání dynamického chování pracovního sedadla řidiče budeme vycházet z jeho zjednodušeného modelu. Jedná se v podstatě o pohyb hmoty (zahrnující hmotnost řidiče, sedadla a jeho mechanizmu) na tlumeném pružném závěsu.

V příloze tohoto textu naleznete soubor model_sedadla_1.mdl. Otevřete tento soubor v prostředí Simulinku a dvakrát klikněte na ikonu symbolizující model sedadla řidiče, otevře se vám skrytá struktura subsystému vlastního simulačního modelu, viz obr. 7-16. Tato struktura může (ale i nemusí) být uživateli, kterého nezajímají podrobnosti modelu, skrytá. Realizuje v grafickém prostředí Simulinku jednu z možností simulačního modelu reálného systému, jehož pohyb je popsán diferenciální rovnicí.

Obr. 7-16: Model dynamiky sedadla řidiče v Simulinku

Zabývejme se nejprve diferenciálním popisem dynamického systému, tj. diferenciální rovnicí (představuje matematický model), která popisuje chování reálného fyzikálního systému. Získáme ji jednoduchou aplikací d’Alembertova principu vyrovnání sil působících na hmotu m, viz obr. 7-17. V pracovním rozsahu předpokládáme lineární chování tlumiče i pružiny.

m

F

kc

y

Page 116: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

116

Obr. 7-17: Rovnováha sil

V tomto případě se jedná o rovnováhu čtyř sil

F = m2 g … síla vyvolaná hmotností řidiče

F1 = c y … reakce pružiny

F2 = k y′ = k dy / d t … reakce tlumiče

F3 = m y″ = m d2y / d t2 … setrvačný odpor

Uvažujme-li jejich společné působiště v těžišti tělesa

F3 + F2 + F1 = F

m y″ + k y′ + c y = F

Pro konkrétní hodnoty uvedené v zadání je

F = m2 g = 80 ⋅ 10 = 800 N

m = m1 + m2 = 20 + 80 = 100 kg

a diferenciální popis nabývá tvaru

100 y″ + 2400 y′ + 8000 y = F

Poloha sedadla je vztažena k ustálenému stavu, odpovídajícímu deformaci pružiny vyvolané samotnou její hmotností bez vnějšího zatížení. Hmotu řidiče lze považovat za vnější sílu F působící na sedadlo.

S t a t i c k á ú v a h a

Zabývejme se nyní souvislostmi mezi budicí silou F a reakcí y v ustáleném stavu, tedy po odeznění přechodového děje. Z fyzikální podstaty je zřejmé, že se jedná o stabilní systém v tom smyslu, že po dosednutí řidiče na sedadlo dojde k přechodovému ději, který se za konečný čas prakticky ustálí.

Po dostatečně dlouhé době (čas t → ∞) platí, že F → F(∞) = 800, y″ → y″(∞) = 0, y′ → y′(∞) = 0 a y → y (∞) ≠ 0. Diferenciální popis tak přechází do tvaru

100 y″(∞) + 2400 y′(∞) + 8000 y (∞) = F(∞)

a s ohledem na výše uvedené

8000 y (∞) = 800

m

F

F2F1

y

F3

Page 117: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

117

y (∞) = 0,1 m = 10 cm

Ustálená hodnota polohy sedadla po odeznění přechodového děje je y (∞) = 10 cm. Srovnejte s výsledkem simulace v kapitole 7.2.2 (obr. 7-20)!

7.2.1 Vytvoření simulačního modelu

Při vytváření simulačního modelu (tvorbě simulačního schéma v Simulinku) vycházíme z dynamického popisu systému. Nejprve z výše uvedené diferenciální rovnice vyjádříme nejvyšší derivaci polohy sedačky y″ jako lineární kombinaci nižších derivací a buzení, tj. síly F

y″ = –24 y′ – 80 y + 0,01 F

Realizaci této závislosti nám snadno umožní sériové zapojení dvou integrátorů na obr. 7-18. Technice vytváření simulačních modelů se podrobně věnuje kniha [8]. Kliknutím na symbol (ikonu) některého z bloků v programovém okně Simulinku se otevře příslušné dialogové okno, ve kterém nastavíme požadované parametry.

Obr. 7-18: Simulační schéma

V modelu je samozřejmě možné měnit hodnoty zesílení v jednotlivých zesilovačích (bloky Gain, Gain1 a Gain2) V záložce Main dialogového okna zapíšeme v položce Gain požadovanou hodnotu. Jednoduše lze změnit i parametry budicí funkce (blok Step). V položce Step time lze měnit dobu skoku a v položkách Initial value a Final value počáteční a konečnou hladinu skoku (obr. 7-4). Podrobnější popis techniky nastavení parametrů jednotlivých bloků a nastavení parametrů simulace je uveden v kapitole 7.1.1.

Blok Integrator umožňuje i zadání počátečních podmínek a limitaci výstupu (tzv. saturaci), viz obr. 7-19. Obojí je možno zadat jednak přímo hodnotou parametru, ale také pomocí dalších vstupních signálů. Blok dovoluje i externí reset (nastavení do počátečního stavu) na základě změny na řídicím logickém signálu (na náběžnou, sestupnou nebo obě hrany). Další možností je definování stavového výstupu (state portu), který se využívá právě ve spojitosti s externím resetem integrátoru a poskytuje hodnotu, která by byla na výstupu, pokud by nedošlo k resetu.

Page 118: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

118

Obr. 7-19: Možnosti nastavení počátečních podmínek

a dalších parametrů integrátoru

7.2.2 Spuštění simulace a zobrazení výsledků

Simulaci spustíme prostřednictvím položky Start v nabídce Simulation či kliknutím na ikonu v toolbaru okna. Stejného efektu dosáhneme i kombinací kláves Ctrl + T. Pokud dojde v průběhu simulace k problémům nebo je-li zvolen příliš dlouhý čas (resp. jemný krok), je možné simulaci předčasně ukončit pomocí ikony .

Po ukončení výpočtu a kliknutím na ikonku zobrazovače ve schématu (v našem případě blok Scope) se otevře okno s grafickým záznamem simulovaného průběhu pohybu sedadla (tj. grafické řešení diferenciální rovnice), viz obr. 7.20. V liště okna je k dispozici sada ikon pro případný zoom a editaci průběhu.

Obr. 7-20: Záznam řešení

Page 119: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

119

Připomeňme, že kladná hodnota reakce modelu odpovídá prosednutí sedadla, tedy pohybu směrem dolů. Povšimněme si také ustálené hodnoty řešení y (∞) = 0,1, která potvrzuje správnost úvahy o statickém chování systému (viz statická úvaha výše).

Pokud by nás zajímala reakce systému vybuzeného jinou než skokovou budící funkcí, jednoduše nahradíme blok skokové změny (blok Step) jiným blokem z bohaté nabídky Simulinku.

Model sedadla řidiče uvedený v úvodu této kapitoly (obr. 7.16) byl skryt do tzv. subsystému, který je reprezentován jediným blokem. Zahrnutí části simulačního schéma do subsystému (tj. do jednoho bloku) dosáhneme tak, že myší označíme požadovanou část schématu a následně z menu Edit vybereme položku Create Subsystem. Tímto způsobem můžeme zjednodušit a zpřehlednit i velmi složité a komplikované struktury simulačních modelů.

Obr. 7-21: Zahrnutí části modelu do subsystému

7.2.3 Matematická analýza pohybu sedadla

Matematickým modelem sedadla řidiče je diferenciální rovnice, jejímž řešením je časová funkce, která analyticky popisuje jeho pohyb. Velmi účinným nástrojem pro řešení lineárních diferenciálních rovnic je Laplaceova transformace. V předchozích odstavcích byl nalezen diferenciální popis ve tvaru

m y″ + k y′ + c y = F

a pro zadané hodnoty pak

Page 120: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

120

100 y″ + 2400 y′ + 8000 y = F

Poloha sedadla y je vztažena k ustálenému stavu, odpovídajícímu deformaci pružiny vyvolané samotnou její hmotností bez vnějšího zatížení. Hmotu řidiče lze považovat za vnější sílu F působící na sedadlo.

Předpokládejme, že v ustáleném klidovém stavu sedadla (nulové počáteční podmínky, tj. y (0) = 0, y′(0) = 0) dosedne na sedadlo náhle řidič a vyvolá tak jeho pohyb. Řešení diferenciální rovnice za těchto podmínek a s tímto buzením popisuje vyvolaný pohyb.

Nejprve připomeňme statickou úvahu provedenou již v úvodu této kapitoly. Jedná se o určení

)(lim)( tyyt ∞→

=∞

tj. celkového prosednutí sedadla v ustáleném stavu, po odeznění přechodového děje. Tuto hodnotu můžeme určit velmi snadno i jednoduchou úvahou bez použití složité matematiky (matematický rozbor však musí tento závěr samozřejmě potvrdit).

Z fyzikální podstaty je zřejmé, že se jedná o stabilní systém, a to v tom smyslu, že po dosednutí řidiče na sedadlo dojde k přechodovému ději, který se za konečný čas prakticky ustálí. Po dostatečně dlouhé době (t → ∞) platí, že F → F(∞) = 800, y″ → y″(∞) = 0, y′ → y′(∞) = 0 a y → y (∞) ≠ 0. Diferenciální popis tak přechází do tvaru

100 y″(∞) + 2400 y′(∞) + 8000 y (∞) = F(∞)

a s ohledem na výše uvedené

y (∞) = 0,1 m = 10 cm

L a p l a c e o v a t r a n s f o r m a c e

Zabývejme se dále pohybem sedadla po dosednutí řidiče. Jeho pohyb je v čase popsán řešením uvedené diferenciální rovnice s předpokládanými počátečními podmínkami a budící funkcí. Řešme ji tedy pomocí Laplaceovy transformace. Je to velmi jednoduchý a efektivní aparát, který nám umožní převést lineární diferenciální rovnici na rovnici algebraickou, v tomto tvaru pak nalézt její řešení (resp. jeho obraz) a opět ho převést zpět do časové oblasti. Byť tento postup vypadá na první pohled složitě, řešení diferenciální rovnice tímto způsobem je velmi jednoduché. K formálnímu řešení vystačíme s několika málo korespondencemi a vlastnostmi transformace (příloha A)

y (t) Y(s)

y′(t) s Y(s) – y (0+)

y″(t) s2 Y(s) – s y (0+) – y′(0+)

F(t) 800 / s = F(s)

Obraz diferenciální rovnice nalezneme snadno

100 [ s2 Y(s) – s y(0+) – y′(0+)] + 2400 [ s Y(s) – y(0+)] + 8000 Y(s) = F(s)

Obrazem diferenciální rovnice je rovnice algebraická s jedinou neznámou Y(s), obrazem řešení je

Page 121: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

121

80002400100)0(100)0()2400100()(

800024001001)( 22 ++

+′++++

++=

ssyyssF

sssY

Vyjádřili jsme tak relativně snadno obraz reakce dynamického systému obecně pro jakékoliv buzení a počáteční podmínky. V našem konkrétním případě však

y (0+) = y′(0+) = 0

ssF 800)( =

ssssssssssY

)20()4(8

)8024(8800

800024001001)( 22 ++

=++

=⋅++

=

L i m i t n í k o r e s p o n d e n c e

Hodnotu y (∞) reakce sedadla po odeznění přechodového děje můžeme ověřit již v této fázi řešení z nalezeného obrazu Y(s) využitím limitních korespondencí mezi obrazem a předmětem (viz příloha A).

1,0)20()4(

8lim)(lim)(00

=++

==∞→→ ss

sYsyss

Použitím druhé limitní korespondence určíme naopak začátek pochodu, který musí být v souladu se zadanými počátečními podmínkami.

0)20()4(

8lim)(lim)0( =++

==+∞→∞→ ss

sYsyss

y′(t) )20()4(

8)0()(++

=+−ss

ysYs

0)20()4(

8lim)0( =++

=+′∞→ ss

sys

Ověření shody těchto limitních hodnot v této fázi řešení je mj. i vhodnou kontrolou správnosti nalezeného obrazu. Poznamenejme však, že shoda hodnot ještě nedokazuje správnost obrazu, ale naopak rozpor by prokázal chybu.

Z p ě t n á L a p l a c e o v a t r a n s f o r m a c e

Řešení popisující pohyb sedadla v reálném čase získáme zpětnou Laplaceovou transformací. Nejprve obraz rozložíme na součet parciálních zlomků, které pak postupně podle slovníku korespondencí uvedených v příloze A převedeme do hledaného předmětu.

)20()4()20()4(8)(

++

++=

++=

sC

sB

sA

ssssY

1,0)20()4(

8lim)(lim00

=++

==→→ ss

ssYAss

Page 122: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

122

125,081

)20(8lim)4()(lim

44−=−=

+=+=

−→−→ ssssYB

ss

025,0401

)4(8lim)20()(lim

2020==

+=+=

−→−→ ssssYC

ss

Koeficienty parciálních zlomků lze určit i jiným způsobem. Sečteme-li formálně uvažované parciální zlomky a srovnáme-li koeficienty u příslušných mocnin vzniklého polynomu v čitateli s polynomem čitatele rozkládaného obrazu, dostaneme soustavu algebraických rovnic, jejímž řešením jsou hledané koeficienty (jde o tzv. metodu neurčitých koeficientů).

)20()4(8

)20()4(80)42024()(

)20()4()4()20()20()4(

)20()4()(

2

++=

++++++++

=

=++

++++++=

++

++=

ssssssACBAsCBAs

ssssCssBsssA

sC

sB

sAsY

8800420240

==++=++

ACBACBA

⎪⎭

⎪⎬

025,0125,0

1,0

=−=

=

CBA

Metoda neurčitých koeficientů se zdá být jednodušší (snad je i častěji používaná), výpočet je však v obecném případě pracnější. Uvedený přístup s limitními manipulacemi je efektivní zejména v případě reálných jednonásobných kořenů jmenovatele rozkládané funkce.

Povšimněme si, že koeficienty A, B, C parciálních zlomků jsou rezidua obrazu Y(s) v jeho singulárních bodech (pólech) – a také se tak jako rezidua i počítají. Vzhledem ke stupňům polynomů čitatele (nula) a jmenovatele (tři) obrazu musí být jejich součet roven nule. Součet reziduí je roven podílu koeficientů (n–1)-ní mocniny operátoru s čitatele a n-té mocniny s jmenovatele, kde n je nevyšší mocnina s ve jmenovateli – obraz musí být racionální lomená funkce ryzí.

Tato kontrola je vhodným ověřením správnosti rozkladu. V případě vícenásobných pólů nejsou obecně koeficienty všech parciálních zlomků rezidua rozkládaného obrazu. V tomto případě je nutné i uvedený výpočet koeficientů parciálních zlomků poněkud modifikovat.

Pokud máme obraz Y(s) rozložený na součet parciálních zlomků, jsme již blízko od hledaného řešení diferenciální rovnice. Z integrální podstaty Laplaceovy transformace totiž vyplývá, že obraz součtu dílčích funkcí se rovná součtu jejich obrazů (a obráceně). Můžeme proto jednoduše nalézt pomocí slovníku L-transformace předměty odpovídající jednotlivým parciálním zlomkům a vyjádřit hledané řešení jejich součtem.

)20(0,025

)4(125,00,1)(

++

+−

+=sss

sY

)()e0,025e0,1250,1()( -20-4 tty tt η+−=

Symbol η (t) nabývá hodnoty 0 pro čas t < 0 a hodnoty 1 pro t ≥ 0. Tzv. Heavisideův jednotkový skok formálně ošetřuje platnost uvedeného vztahu jen pro t ≥ 0.

Page 123: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

123

Rychlost pohybu sedadla určíme jako derivaci y (t)

)()e0,5e0,5()( -20-4 tty tt η+=′

Ověřme nyní správnost limitních hodnot řešení na začátku a na konci přechodového děje

0)e0,025e0,1250,1(lim)(lim)0( -20-4

00=+−==+

+→+→

tt

tttyy

0)e0,5e0,5(lim)(lim)0( -20-4

00=+=′=+′

+→+→

tt

tttyy

1,0)e0,025e0,1250,1(lim)(lim)( -20-4 =+−==∞∞→∞→

tt

tttyy

0)e0,5e0,5(lim)(lim)( -20-4 =+=′=∞′∞→∞→

tt

tttyy

7.2.4 Ověření analytického řešení v Simulinku

Simulační model sedadla řidiče doplníme funkčním blokem Fcn realizujícím analytické řešení diferenciální rovnice (obr. 7-22 a 7-23). Praktická shoda obou průběhů je prokázána na obr. 7-24 jejich vzájemným překrytím v jednom grafu. Další možností je zobrazení průběhů ve dvou paralelních grafech. V bloku zobrazovače je třeba nastavit v okně parametrů bloku v záložce General položku Number of Axes na hodnotu 2.

Obr. 7-22: Analytické řešení v Simulinku

Obr. 7-23: Zápis analytického řešení v bloku Fcn

Page 124: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

124

Obr. 7-24: Porovnání analytického řešení se simulací

7.2.5 Dynamický systém na mezi periodicity

Hledáme minimální hodnotu tlumení k, při které se ještě neobjevují kmitavé složky průběhu. Kořeny charakteristické rovnice jsou reálné násobné. Uvažujeme obraz řešení diferenciální rovnice za stejných okolností s jinými hodnotami konstrukčních parametrů

sskscm

scsksmsY

)8010(8

8000100

spec.8001)( 222 +⋅+

====⋅

++= −

charakteristická rovnice a její kořeny

08010 22 =+⋅+ − sks ; 2

8041010 422

2,1⋅−⋅±⋅−

=−− kk

s

a pro dvojnásobný kořen

080410 42 =⋅−⋅ −k

1089,1710804 24 ⋅≈⋅⋅= +k Ns/m

94,82

101089,17 22

2,1 −≈⋅⋅−

=−

s

Obraz řešení v tomto případě je

94,8)94,8()94,8(8

)8010(8)( 2222 +

++

+=+

=+⋅+

= − sC

sB

sA

sssskssY

1,0)94,8(

8lim)(lim 200=

+==

→→ sssYA

ss

89,08lim)94,8()(lim94,8

2

94,8−≈=+=

−→−→ sssYB

ss

Page 125: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

125

1,08lim8ddlim)94,8()(

dd

!11lim 294,894,8

2

94,8−≈

−==+⋅=

−→−→−→ sssssY

sC

sss

V případě vícenásobných pólů obrazu by se koeficienty parciálních zlomků s klesající mocninou kořenového činitele počítaly jako limita ze stejně rostoucí derivace vynásobené faktoriálním koeficientem 1 / n!, kde n je řád derivace. Poznamenejme, že uvedené limity jsou v regulárních bodech, takže se i zde jedná jen o pouhé dosazení hodnot.

V tomto případě jsou rezidua obrazu Y(s) pouze koeficienty A a C, tedy –B není reziduum. I zde samozřejmě platí, že součet reziduí je roven nule, tj. A + C = 0. Hledané řešení je

)94,8(0,1

)94,8(0,890,1)( 2 +

−+

−=sss

sY

)()e0,1e0,890,1()( -8,94-8,94 ttty tt η−−=

7.2.6 Kmitavý dynamický systém

Uvažujme kmitavý dynamický systém s vlastními harmonickými složkami pohybu. Kořeny charakteristické rovnice jsou v tomto případě komplexní. Předpokládejme hodnoty parametrů m = 100 kg, k = 400 Ns/m, c = 8 ⋅ 103 N/m.

sssckm

scsksmsY

)804(8

8000400100

8001)( 22 ++=

===

=⋅++

=

Charakteristická rovnice a její kořeny

08042 =++ ss ; 72,8j22

80444 2

2,1 ±−≈⋅−±−

=s

Kořeny charakteristické rovnice jsou komplexní, dynamický systém má vlastní kmity s frekvencí 8,72 rad/s a s exponenciálním tlumením e–2t (určeno imaginární a reálnou částí kořenů).

Rozklad na parciální zlomky předpokládáme z důvodu komplexních kořenů ve tvaru

804)804(8)( 22 ++

++=

++=

ssCsB

sA

ssssY

Koeficient A určíme nejlépe reziduálním výpočtem, koeficienty B a C metodou neurčitých koeficientů

1,0804

8lim)(lim 200=

++==

→→ ssssYA

ss

ssssssCsBs

ssCB

ssY

)804(8

)804(8)4,0(0,1)(

804s0,1)( 22

2

2 ++=

++++++

=++

++=

Page 126: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

126

⎭⎬⎫

=+=+

04,0010,

CB

B = – 0,1; C = – 0,4

8044,01,00,1)( 2 ++

+−=

sss

ssY

Následuje důležitá úprava druhé části rozkladu Y(s) (parciálního zlomku odpovídajícího dvojici komplexně sdružených kořenů) do tvaru podle posledních dvou korespondencí uvedených ve slovníku v příloze A.

76)2(76

762,0

76)2()2(1,00,1

76)2(2,0)2(1,00,1

76)2(4,01,00,1)(

22

22

++⋅−

+++

−=

=++++

−=++

+−=

sss

s

ss

sss

ssY

Dále už jen jednoduše převedeme obraz podle slovníku L-transformace do předmětu

)()]72,8sin(02,0)72,8cos(1,0[1,0

)()76sin762076cos1,01,0()(

2

22

ttte

tte,tety

t

tt

η

η

+−=

=−−=

−−

Obr. 7-25: Stanovení ϕ a ψ

Výsledek lze také v souladu s obr. 7-25 upravit do tvaru

)()]72,8cos(1,01,0[)()]72,8sin(1,01,0[)( 22 ttettety tt ηψηϕ −−=+−= −−

J i n ý z p ů s o b ř e š e n í

Předpokládejme stejnou situaci, stejnou diferenciální rovnici, ukažme si však jinou variantu přechodu od obrazu k řešení v časové oblasti. Předpokládáme stejné hodnoty parametrů m = 100 kg, k = 400 Ns/m, c = 8 ⋅ 103 N/m.

sssckm

scsksmsY

)804(8

8000400100

8001)( 22 ++=

===

=⋅++

=

1,002,01,0 22 ≈+

37,102,01,0arctg ≈=ϕ

2,01,002,0arctg ≈=ψ

ψ

ϕ

0 0,02

0,1

Page 127: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

127

Stejná je samozřejmě i charakteristická rovnice a její kořeny

08042 =++ ss ; 72,8j22

80444 2

2,1 ±−≈⋅−±−

=s

Rozklad na parciální zlomky však předpokládáme ve tvaru s komplexními koeficienty

)72,8j2()72,8j2()804(8)( 2 ++

+−+

+=++

=s

Cs

BsA

ssssY

Všechny koeficienty rozkladu A, B i C jsou v tomto případě rezidua obrazu v jeho pólech a určíme je

1,0804

8lim)(lim 200=

++==

→→ ssssYA

ss

01,0j05,0)72,8j2(

8lim)72,8j2()(lim72,8j272,8j2

+−≈=++

=−+=+−→+−→

Lss

ssYBss

01,0j05,0)72,8j2(

8lim)72,8j2()(limC72,8j272,8j2

−−≈=−+

=++=−−→−−→

Lss

ssYss

Koeficienty B a C musejí být nutně komplexně sdružené, nebylo proto ani třeba C znovu počítat. Zde jsou všechny tři koeficienty parciálních zlomků rezidua obrazu Y(s) v jeho pólech, proto také platí A + B + C = 0.

)72,8j2(01,0j05,0

)72,8j2(01,0j05,00,1

)804(8)( 2 ++

−−+

−++−

+=++

=ssssss

sY

Obr. 7-26: Časová závislost pohybu sedadla řidiče

Page 128: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modelové příklady

128

Pomocí slovníku (příloha A) jednoduše nalezneme předmět

=−−++−+= −−+− )(]e)01,0j05,0(e)01,0j05,0(0,1[)( )72,8j2()72,8j2( tty tt η +++−+= − )72,8sinj72,8(cos)01,0j05,0[(e0,1 2 ttt =−−−+ )(])72,8sinj72,8(cos)01,0j05,0( ttt η )()]72,8sin(02,0)72,8cos(1,0sin[1,0 2 ttte t η+−== −L

Samozřejmě, že výsledek je naprosto totožný jako v předchozí variantě řešení. Obě varianty se liší jen přístupem ke zpětné Laplaceově transformaci. První přístup, bez nutnosti práce v komplexní oblasti, se zdá být poněkud jednodušší a příjemnější. Průběh polohy sedadla v závislosti na čase je uveden na obr. 7-26.

Probraná témata

diferenciální popis sedadla, odvození jeho diferenciální rovnice, řešení lineární diferenciální rovnice v Simulinku, metoda snižování řádu derivace, změna parametrů simulace a budicích funkcí, zobrazení výsledků, matematická analýza pohybu sedadla, aplikace Laplaceovy integrální transformace,

limitní korespondence, nalezení analytického řešení diferenciální rovnice, zpětná Laplaceova transformace,

rozklad na parciální zlomky a metoda neurčitých koeficientů, ověření nalezeného řešení v Simulinku,

matematický rozbor dynamického systému na mezi periodicity (tj. násobné reálné kořeny charakteristické rovnice),

matematický rozbor kmitavého dynamického systému s vlastními harmonickými složkami pohybu (tj. komplexní kořeny charakteristické rovnice).

Stručné shrnutí

při sestavování diferenciální rovnice vycházíme z d’Alembertova principu rovnováhy sil zjednodušeného modelu sedačky řidiče,

k sestavení simulačního modelu, v případě, že na pravé straně diferenciální rovnice není derivace, používáme metodu snižování řádu derivace, jinými slovy postačuje vyjádřit nejvyšší derivaci polohy sedačky,

výsledný simulační model může být buzen nejrůznějšími typy vstupních funkcí, změna parametrů modelu je velmi jednoduchá,

jednotlivé části simulačního schématu můžeme zahrnout z důvodu přehlednosti do subsystému, zvolená část modelu je pak reprezentována jedním blokem se vstupy a výstupy,

efektivním prostředkem pro řešení lineárních diferenciálních rovnic s konstantními koeficienty je Laplaceova transformace, která umožňuje převést diferenciální rovnici na rovnici algebraickou, v tomto tvaru pak nalézt její řešení, resp. jeho obraz a ten převést zpět do časové oblasti,

limitní hodnoty na počátku a po odeznění přechodového děje lze stanovit pomocí limitních korespondencí mezi obrazem a předmětem,

Page 129: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dynamika sedadla řidiče

129

řešení popisující pohyb sedadla v reálném čase získáme zpětnou Laplaceovou transformací, v popisovaném příkladu je nejprve ale nutné provést rozklad obrazu řešení na parciální zlomky, které pak postupně podle slovníku korespondencí převedeme do hledaného předmětu,

koeficienty rozkladu lze vypočítat pomocí limit (resp. reziduálním výpočtem), další možností je metoda neurčitých koeficientů.

Kontrolní otázky a úkoly

Simulujte chování sedadla pro různé hodnoty parametrů. Co jednotlivé parametry ovlivňují? Jak by se chovalo sedadlo s nulovým tlumením? Konfrontujte vždy váš fyzikální náhled s výsledky simulace.

Experimentálně určete při jakém tlumení tlumiče k se začíná projevovat kmitavý pohyb sedadla.

Přiložené soubory

soubory modelu: model_sedadla_1.mdl, model_sedadla_2.mdl a model_sedadla_3.mdl

Page 130: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

130

8 Příklady z oblasti modelování systémů

V následujících odstavcích jsou na několika řešených příkladech procvičovány základní techniky modelování dynamických systémů. Všechny příklady jsou řešeny v prostředí MATLAB – Simulink, teoretický rozbor je omezen na nezbytně nutnou míru. Příklady jsou orientované především na prohloubení dovedností, které jsou potřebné při realizaci modelů v grafickém prostředí Simulink. Oproti kapitole 7 jsou zde již vytvářeny modely složitější – modelovány jsou nelineární systémy a vybrané elektromechanické systémy.

8.1 Vývoj výšky hladiny v nádrži Úkolem je simulovat vývoj hladiny v nádrži na obr. 8-1, do které napouštíme vodu

definovanou rychlostí a která má u dna otvor. Uvažujeme ideální kapalinu a homogenní gravitační zrychlení.

Obr. 8-1: Nádrž s výtokovým otvorem u dna

Definujme základní veličiny

t [s] – čas Q1, Q2 [m3 s–1] – přítok do nádrže, odtok z nádrže otvorem v1, v2 [m s–1] – rychlost přitékající a rychlost odtékající kapaliny S1, S2 [m2] – plocha půdorysu nádrže a plocha výtokového otvoru m [kg] – hmotnost kapaliny V [m3] – objem kapaliny g [m s–2] – gravitační zrychlení, g = 9,81 m s–2

h(t) [m] – výška hladiny v čase t

Ze zákona o zachování energie nejprve odvodíme výtokovou rychlost v2. Tato rychlost samozřejmě nemůže být konstantní, neboť závisí na aktuálním množství vody v nádrži. Uvažujeme-li malý element kapaliny o hmotnosti dm, který má na hladině nulovou rychlost a na dně při výtoku má nulovou potenciální energii, platí, že

)(d)(d21 2

2 thgmtvm =

h(t)dm

Q1, v1

S2

Q2, v2

S1

Page 131: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vývoj výšky hladiny v nádrži

131

a tedy

)(2)(2 thgtv =

Celkový objemový tok při změně výšky hladiny je

tVtQtQtQ

dd)()()( 21 =−=

Platí-li dále, že

)(d

)(dd 11 thStthSV ′==

)()( 222 tvStQ =

lze po dosazení do rovnice pro objemový tok psát

)()()( 2211 tvStQthS −=′

Dosadíme-li do uvedené rovnice dále za rychlost v2, obdržíme po jednoduché úpravě výslednou diferenciální rovnici

])(2)([1)( 211

thgStQS

th −=′

Simulaci provedeme pro tyto hodnoty: Q1 = 0,01 m3 s–1, S1 = 0,2 m2 a S2 = 0,005 m2. Příslušný simulační model je na obr. 8-2. Při simulaci je možné zvolit počáteční výšku hladiny a libovolný přítok, případně ponechat přítok vypnutý a sledovat průběh vypouštění nádrže.

Obr. 8-2: Simulace vývoje výšky hladiny v nádrži

Výsledky simulace při počáteční výšce hladiny h0 = 0,1 m a přítoku, který je nejprve nulový a v čase t = 10 s je skokově změněn na Q1= 0,01 m3 s–1 jsou na obr. 5.16-3. V grafu je zobrazen mimo průběhu simulované výšky hladiny h(t) také popisovaný průběh přítoku Q1(t).

Page 132: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

132

Obr. 8-3: Závislost výšky hladiny na čase

Pro kontrolu správnosti výsledku simulace je vhodné výpočtem stanovit ustálenou výšku hladiny h(∞) při konstantním přítoku Q1. V tomto případě by se měl přítok rovnat odtoku, tedy pro t → ∞, h′(∞) → 0

2039,0005,001,0

81,921)(

21)(

22

2

1 =⎟⎠

⎞⎜⎝

⎛⋅

=⎟⎟⎠

⎞⎜⎜⎝

⎛ ∞=∞

SQ

gh m

V grafu na obr. 8-3 se snadno přesvědčíme, že ustálená hodnota výšky hladiny je v souladu s hodnotou h(∞) vypočtenou výše. Ustálená hodnota není závislá na ploše půdorysu nádrže S1, na velikosti této plochy závisí pouze rychlost ustálení. V modelu je uvažováno, že kapalina vytéká vždy celou plochou S2, přestože nemusí být při úplném vypouštění v nádrži dostatečné množství kapaliny. Hladina nádrže se v tomto případě ustálí na kladné hodnotě blízko nuly, model není v tomto ohledu zcela dokonalý.

Modifikujme nyní úlohu tak, že namísto otvorem u dna bude nádrž vypouštěna pomocí hadice, viz obr. 8-4. Konec hadice, který je uvnitř nádrže, je ve výšce h1 od dna, hadice je ohnuta ve výšce h2 a druhý konec hadice, kterým kapalina vytéká, je na úrovni dna.

Obr. 8-4: Vypouštění nádrže hadicí

h(t)

Q1, v1

S2

Q2, v2

S1

h1

h2

Page 133: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vývoj výšky hladiny v nádrži

133

Vzhledem k okolnosti, že kapalina vytéká z hadice na úrovni dna nádrže, není nutné měnit vzorec pro výtokové rychlosti v2. Musíme ale v rámci modelu ošetřit stavy, kdy kapalina vytéká a kdy ne. Stanovme následující pravidla:

kapalina začne vytékat v okamžiku, kdy výška hladiny překročí výšku h2, kapalina vytékat přestane v okamžiku, kdy výška hladiny klesne pod úroveň h1.

Zápis uvedených podmínek pomocí logické proměnné L(t) může být např. podle [16] následující

])(2)()([1)( 211

thgStLtQS

th −=

h(t) > h2 → L(t) = 1

h(t) > h1 → L(t) = 0

Simulační schéma na obr. 8-2 musíme upravit tak, aby zpětnovazební smyčka byla aktivní pouze tehdy, když kapalina vytéká hadicí z nádrže. Nejjednodušší je zřejmě použití bloku Relay. V bloku je nutné nastavit hodnoty, při kterých dochází k sepnutí (h2) a vypnutí (h1) a hodnotu při sepnutém (1) resp. vypnutém stavu (0). Upravené simulační schéma je na obr. 8-5.

Obr. 8-5: Upravené simulační schéma

S modelem je možné značně experimentovat, lze měnit např. přítok Q1(t), výšky h1 a h2. Mohou nastat následující základní tři eventuality:

h1 ≤ h(∞) < h2, tj. situace na obr. 8-4 – v okamžiku, kdy se nádrž se naplní nad úroveň h2, začne kapalina vytékat a ustálí se na hodnotě h(∞), viz obr. 8-6,

h(∞) > h2 – nádrž se naplní nad úroveň h2 a výška hladiny zůstane nad touto úrovní, kapalina bude neustále vytékat, viz obr. 8-7,

h(∞) > h1 – jestliže se nádrž naplní nad úroveň h2, začne kapalina vytékat až do okamžiku, kdy hladina klesne pod h1, v tom okamžiku se nádrž přestane vypouštět a hladina začne stoupat opět až na úroveň h2 a následně začne opět klesat, tento jev se bude periodicky opakovat a hladina se nikdy neustálí, viz obr. 8-8.

Page 134: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

134

Obr. 8-6: Průběh h(t) při Q1 = 0,01 m3 s–1

Obr. 8-7: Průběh h(t) při Q1 = 0,0167 m3 s–1

Obr. 8-8: Průběh h(t) při Q1 = 0,0054 m3 s–1

Page 135: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Vývoj výšky hladin dvou spojených nádrží

135

8.2 Vývoj výšky hladin dvou spojených nádrží Uvažujme dvě navzájem spojené nádrže, viz obr. 8-9. Každá nádrž má příslušné

rozměry (navzájem odlišné) a svůj vlastní přítok. Voda z první nádrže může vytékat do nádrže druhé, voda z druhé nádrže může téci zpět do první nádrže nebo odtékat ven. Ztráty ve vedeních zanedbáme. Zajímá nás vývoj výšky hladiny v obou nádržích.

Obr. 8-9: Spojené nádrže

Definujme základní veličiny

t [s] – čas Q1, Q3 [m3 s–1] – přítok do první nádrže a odtok ven z nádrže otvorem Q2, Q4 [m3 s–1] – přítok do druhé nádrže a odtok ven z nádrže otvorem v1, v2, v3, v4 [m s–1] – rychlosti přitékající a rychlosti odtékající kapaliny S1, S3 [m2] – plocha půdorysu první nádrže a jejího výtokového otvoru S2, S4 [m2] – plocha půdorysu druhé nádrže a jejího výtokového otvoru m [kg] – hmotnost kapaliny V1, V2 [m3] – objem kapaliny v první resp. druhé nádrži g [m s–2] – gravitační zrychlení, g = 9,81 m s–2 h1(t) [m] – výška hladiny v první nádrži v čase t h2(t) [m] – výška hladiny v druhé nádrži v čase t

Jelikož se jedná o dva navzájem propojené systémy, musíme jejich chování popsat pomocí dvou diferenciálních rovnic. Uvažujeme-li, že přítok (resp. odtok) lze vyjádřit jako derivaci objemu podle času, obdržíme následující dvě rovnice

)()()()()(d

)(d3313111

1 tvStQtQtQthSttV

−=−=′=

)()()()()()()(d

)(d4433243222

2 tvStvStQtQtQtQthSttV

−+=−+=′=

Rychlost v4(t) odvodíme ze zákona o zachování energie (viz také příklad 8.1)

)(2)( 24 thgtv =

Je zřejmé, že rychlost v3(t) je ovlivněna rozdílem tlaků u dna nádob a je tedy možné psát

h1(t)dm

Q1

S3

Q3

S1

S4

Q4

S2

Q2

h2(t)

Page 136: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

136

)]()([d)(d21

213 ththgmtvm −=

)]()([2)( 213 ththgtv −=

V okamžiku, kdy ve druhé nádrži bude vyšší hladina než v nádrži první, objeví se pod odmocninou ve výše uvedeném vztahu pro výpočet rychlosti záporné číslo. Tuto situaci je nutné ošetřit. Odmocninu lze počítat z absolutní hodnoty rozdílu ⎪h1(t) – h2(t)⎪ a výsledek pak vynásobit funkcí signum

)]()([sign)()(2)( 21213 ththththgtv −⋅−=

Výsledné diferenciální rovnice získáme dosazením za rychlosti v3(t) a v4(t) do základních rovnic

)]()([sign)()(2)()(1)( 21213111

1 ththththgStQtQS

th −⋅−−=−=′

)(2)]()([sign)()(2)(1)( 242121322

2 thgSththththgStQS

th −−⋅−+=′

Simulaci provedeme pro tyto hodnoty: Q1 = 0,01 m3 s–1, Q2 = 0,02 m3 s–1, S1 = 0,2 m2, S2 = 0,3 m2, S3 = 0,005 m2 a S4 = 0,01 m2. Jedna z možných realizací simulačního modelu je na obr. 8-2. Pro výpočet průtoku Q3(t) resp. Q4(t) jsou použity bloky Fcn. Vztah je také možné sestavit ze standardních bloků Simulinku; pro výpočet absolutní hodnoty použijeme blok Abs, odmocninu vypočteme pomocí bloku Math Function (zvolíme v něm odmocninu, tedy sqrt), signum pak pomocí bloku Sign.

Obr. 8-10: Simulace vývoje výšky hladin dvou spojených nádrží

Řešení diferenciálních rovnic lze také realizovat v bloku MATLAB Function. V rámci tohoto bloku vypočítáváme derivace obou výšek hladin, tj. ),(1 th′ )(2 th′ a za blok zařadíme

Page 137: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Navíjecí zařízení

137

integrátor, viz obr. 8-11. Zápis rovnic pro výpočet ),(1 th′ )(2 th′ je uveden na obr. 8-12, příklad možného skriptu pro řízení výpočtu, v jehož rámci jsou zadávány konkrétní hodnoty, je spouštěna simulace a jsou zobrazeny i výsledky, je na obr. 8-13.

Obr. 8-11: Realizace pomocí MATLAB Function

Při zápisu funkce (obr. 8-12) je na prvním řádku m-souboru vždy deklarace funkce, která musí obsahovat slovo function. Vstupní proměnné (zde pouze h) obsahují data předaná funkci a výstupní proměnné (zde hdot) obsahují data funkcí vrácená. Všechny další řádky funkce tvoří tělo funkce. Tělo obsahuje příkazy MATLABu, které zpracovávají vstupní argumenty a výsledky ukládají do výstupních argumentů funkce. Běh funkce končí poté, co je zpracována poslední řádka m-souboru.

Obr. 8-12: Definování funkce

Jakákoliv funkce definovaná v m-souboru pracuje s proměnnými v přiděleném lokálním prostoru, který je vždy oddělen od prostoru jiné funkce a také od základního prostoru MATLABu. Funkce mohou ale sdílet proměnné s jinými funkcemi, základním pracovním prostorem a rekurzivně volanými funkcemi přes proměnné, které jsou deklarovány jako globální. Je nutné, aby sdílená proměnná byla definována v každém požadovaném pracovním prostoru. Při deklaraci se globální proměnné uvozují slovem global. Deklarace se provede obvykle na začátku skriptu. Na obr. 8-12 jsou takto definovány proměnné g, S1, S2, S3 a S4. Deklaraci je nutné provést nejen přímo ve vytvářené funkci, ale také i v řídicím skriptu (viz obr. 8-14), kde jsou proměnné inicializovány (tj. jsou jim přiřazeny konkrétní hodnoty).

Page 138: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

138

Obr. 8-13: Příklad řídicího skriptu

Jak již bylo řečeno, výstupním argumentem popisované funkce je proměnná hdot, tedy vektor derivací výšek hladin obou nádrží. Po integraci je nutné zavést tento vektor zpět na vstup bloku MATLAB Function. V bloku je třeba také definovat kromě názvu funkce, tedy nadrze_fun.m, také v položce Output Dimensions rozměr výstupu, v našem případě 2.

Ve funkci přistupujeme k prvkům vstupního vektoru (proměnná h) běžným způsobem, tj. pomocí kulatých závorek. Podrobněji je práce s funkcemi vysvětlena v [8]. Simulaci spustíme přímo ve skriptu pomocí příkazu sim. Obdržené výsledky lze samozřejmě v rámci řídicího skriptu také přehledně zobrazit, viz obr. 8-14.

Obr. 8-14: Zobrazení výsledků simulace

8.3 Navíjecí zařízení Předpokládáme, že mechanická soustava (obr. 8-15) s rotačním pohybem se skládá

ze stejnosměrného motoru s hnacím momentem MM, který pohání naviják s momentem setrvačnosti Jm. Navíjecí zařízení zvedá pomocí lana těleso o hmotnosti m. Cílem úlohy

Page 139: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Navíjecí zařízení

139

je simulovat chování navijáku, tj. zobrazit závislosti úhlové rychlosti a úhlu natočení navíjecího válce na čase při zadaných parametrech J, b a zatěžovacím momentu MZ.

Obr. 8-15: Schéma poháněného navijáku

Definujme základní veličiny

m [kg] – hmotnost tělesa r [m] – poloměr navíjecího válce g [m s–2] – gravitační zrychlení, g = 9,81 m s–2

Jm [kg m2] – moment setrvačnosti navíjecího válce vzhledem k jeho ose J [kg m2] – celkový moment setrvačnosti navíjecího válce ϕ [rad] – úhel natočení válce ω = dϕ / dt [rad s–1] – úhlová rychlost pohybu MM, MZ, Mb [Nm] – hnací moment motoru, zatěžovací a tlumicí moment br [Nm s] – koeficient rotačního tlumení

Pohybovou rovnici sestavíme na základě momentové rovnováhy. Podle obr. 5.18-1 uvažujeme následující momenty:

hnací moment motoru MM ,

tlumicí moment )(d

)(drrb tb

ttbM ωϕ== ,

zatěžovací moment rgmM =Z ,

setrvačný moment 2

2

J d)(d

d)(d

tt

ttM ϕω== .

Protože hmota m je zvedána vertikálním pohybem mimo osu rotace navíjecího válce, je podle tzv. Steinerovy věty celkový moment setrvačnosti soustavy roven

J = Jm + m r2

kde J je moment setrvačnosti navíjecího válce vzhledem k ose procházející jeho těžištěm a r je vzdálenost osy v těžišti od osy rotace.

Rovnice momentové rovnováhy má tedy tvar

bZMJ MMMM −−=

po dosazení jednotlivých momentů

m

J

rMM

M

Mb

Page 140: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

140

ttbMM

tt

d)(d

d)(d

rZM2

2 ϕϕ−−=

Po úpravě dostaneme

ZMr2

2

d)(d

d)(d MM

ttb

ttJ −=+

ϕϕ

Předpokládáme-li nulové počáteční podmínky, lze v Laplaceově transformaci odvodit obrazový přenos dynamického systému, který je definován jako poměr Laplaceova obrazu výstupu ku Laplaceově obrazu vstupu, viz také kapitola 7.2. S využitím základních pravidel transformace (příloha A) lze postupně psát

)()()()( ZMr2 ssssbsJs MM −=+ ΦΦ

)()(][)( ZMr ssbJsss MM −=+Φ

)()()()( ZM

rbJsssss

+−

=MMΦ

)]()([)1(

)]()([1

1

)( ZMZM

r

r ssTssKss

sbJs

bs MMMM −+

=−

⎟⎟⎠

⎞⎜⎜⎝

⎛+

Ve výše uvedené rovnici lze označit K = 1 / br jako zesílení dynamického systému a T = J / br jako jeho časovou konstantu. Na základě obdržené rovnice lze sestavit blokové schéma (obr. 8-16), které je obvyklé v teorii řízení.

Obr. 8-16: Blokové schéma modelu rotační soustavy navijáku

Simulaci provedeme pro hodnoty: m = 20 kg, Jm = 1,75 kg m2, r = 0,25 m, br = 2 Nm s a MM = 59,05 Nm. Ze zadaných hodnot vypočteme zesílení systému K = 1 / br = 1 / 2 = 0,5, celkový moment setrvačnosti dle Steinerovy věty J = Jm + m r 2 = 1,75 + 20 ⋅ 0,252 = 3 kg m2 a časovou konstantu systému T = J / br = 3 / 2 = 1,5 s. Simulační model, který byl vytvořen v prostředí Simulink je na obr. 8-17. Závislosti úhlové rychlosti a úhlu natočení navijáku na čase jsou na obr. 8-18.

Z hlediska teorie řízení je popisovaná rotační soustava setrvačným blokem prvního řádu s přenosem

1)(

+=

TsKsG

Do soustavy vstupuje obraz rozdílu momentů M M(s) – M Z(s) a výstupem je ω (s) = s ϕ (s), tedy obraz úhlové rychlosti. Dalším blokem, zapojeným do série, je integrační blok, na

1

1

+sbJ

b

r

r s1

MZ(s)

MM(s) ϕ′ ϕ

Page 141: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Stejnosměrný motor s cizím buzením

141

jehož výstupu je obraz úhlu natočení ϕ (s). Zde se samozřejmě nejedná o regulaci, proto chybí zpětná vazba. Změnou konstanty rotačního tlumení br měníme zesílení K soustavy, změnou br a J pak ovlivňujeme časovou konstantu T.

Obr. 8-17: Simulační model navijáku s břemenem

Obr. 8-18: Průběh úhlové rychlosti a úhlu natočení navijáku v závislosti na čase (zde φ ≡ ϕ )

8.4 Stejnosměrný motor s cizím buzením Stejnosměrné motory s cizím buzením se vyznačují dobrými regulačními vlastnostmi.

Umožňují jednoduché řízení rychlosti změnou napětí kotvy popř. budicího proudu, přitom se otáčky mohou pohybovat v širokém rozsahu, který není nijak vázán na kmitočet sítě. Při řízení napětím kotvy se navíc jedná o v zásadě lineární prvek. Smysl otáčení lze snadno měnit změnou polarity napětí kotvy či budicího proudu. Výhodný je i velký točivý moment, zvláště při nízkých otáčkách. Značným problémem je ale napájení rotoru přes komutátor, v jehož důsledku je stejnosměrný motor relativně méně spolehlivý a s většími nároky na údržbu než např. motor asynchronní.

Page 142: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

142

Obr. 8-19: Náhradní schéma stejnosměrného elektromotoru

s cizím buzením

Stejnosměrný motor s cizím buzením tvoří obvod kotvy, budicí obvod a mechanická část pohonu. Podrobný matematický model, který by zahrnoval všechny elektromagnetické vazby motoru, je složitý. Pro potřeby technické praxe a pro řešení většiny otázek spjatých s návrhem regulace je však dostatečné použití modelu, který vychází z jistých zjednodušení. Obvykle zanedbáváme rozptylový magnetický tok budicího vinutí, vzájemné transformační působení jednotlivých vinutí, vliv vířivých proudů v magnetickém obvodu a úbytek napětí v kartáčcích. Východiskem pro odvození modelu, např. dle [7, 11, 15], je náhradní schéma stejnosměrného motoru s cizím buzením na obr. 8-19.

Definujme základní veličiny

um [V] – napětí na kotvě motoru (svorkové) im [A] – proud kotvy motoru ui [V] – indukované napětí na kotvě motoru Rm [Ω] – celkový odpor všech vinutí v kotvě motoru Lm [H] – celková indukčnost všech vinutí v kotvě motoru ub [V] – napětí budicího obvodu ib [A] – budicí proud motoru Rb [Ω] – celkový odpor budicího obvodu Lb [H] – celková indukčnost budicího obvodu J [kg m2] – celkový moment setrvačnosti vztažený k hřídeli motoru ξ [V s rad–1] – konstrukční konstanta motoru Φ [Wb] – magnetický tok ϕ [rad] – úhel natočení hřídele motoru ω = dϕ / dt [rad s–1] – úhlová rychlost pohybu Mm, MZ [Nm] – elektromagnetický a zatěžovací moment motoru

Elektrické parametry obvodu kotvy motoru jsou charakterizovány celkovým odporem Rm a indukčností Lm vinutí kotvy i dalších vedení a vinutí, která jsou s ním v sérii. Obvod kotvy lze tak popsat napěťovou rovnicí

)(d

)(d)()( im

mmmm tuttiLtiRtu ++=

Indukované napětí na kotvě motoru ui(t) určené magnetickým tokem závislým na budicím proudu je rovno

ω, ϕ

Rm Lm

um

ib Rb

im

M

ub Lb

JMm

MZ

Page 143: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Stejnosměrný motor s cizím buzením

143

)()()( bi tictu ωΦ=

S využitím Laplaceovy transformace můžeme rovnici pro napětí kotvy um (t) převést do přenosového vyjádření

][)()()()()( mmmmmmmim sLRsIsIsLsIRsUsU +=+=−

11

11

)()()()(

m

m

m

m

m

mim

mm +

=+

=+

=−

=sT

K

sRL

RRsLsUsU

sIsGm

kde

mm

1R

K = , m

mm R

LT =

Závislost magnetického tokuΦ na proudu budicího obvodu ib vyjadřuje magnetizační charakteristika motoru Φ = f (ib), která je nelineární. Ve schématu na obr. 8-19 jsou dvě vstupní veličiny: napájecí napětí kotvy um a napájecí napětí budicího obvodu ub. V obecném případě lze obě použít k regulaci. Matematický model je pak třeba doplnit o popis budicího obvodu

ttiiLtiRtu

d)(d)()()( b

bbbbb +=

Obvod buzení lze rovněž pomocí Laplaceovy transformace vyjádřit přenosem

][)()()()( bbbbbbbb sLRsIsIsLsIRsU +=+=

11

11

)()()(

b

b

b

b

b

bb

bb +

=+

=+

==sTK

sRL

RRsLsU

sIsGb

kde

bb

1R

K = , b

bb R

LT =

Mechanická část motoru koná rotační pohyb vyvolaný elektromagnetickým momentem motoru Mm za působení momentu zátěže MZ. Je-li J celkový moment setrvačnosti pohonu, pak úhlová rychlost je určena pohybovou rovnicí

Zmd)(d MM

ttJ −=

ω

kde moment motoru Mm je určen pomocí magnetického toku obecně závislého na budicím proudu podle vztahu

)()( mbm tiicM Φ=

Následující tři rovnice tvoří matematický model stejnosměrného motoru s cizím buzením, jehož simulační schéma je na obr. 8-20.

Page 144: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

144

)]()()()([1d

)(dmmbm

m

m tiRtictuLt

ti−−= ωΦ

)]()([1d

)(dbbb

b

b tiRtuLt

ti−=

])()([1d

)(dZmb Mtiic

Jtt

−= Φω

Simulaci provedeme pro hodnoty: um = 25 V, Rm = 20 Ω, Lm = 2,5 H, J = 10–5 kg m2, ub = 5 V, Rb = 2,5 Ω, Lb = 1,25 H a ξ = cΦ = 0,025 V s rad–1. Moment zátěže MZ se v čase t = 5 s změní z hodnoty 0 Nm na hodnotu 0,015 Nm.

Obr. 8-20: Simulační schéma stejnosměrného motoru s cizím buzením

Závislosti úhlové rychlosti a proudu kotvy na čase jsou na obr. 8-21.

Obr. 8-21: Průběh úhlové rychlosti a proudu kotvy motoru v závislosti na čase

Page 145: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Stejnosměrný motor s buzením permanentními magnety

145

8.5 Stejnosměrný motor s buzením permanentními magnety

Stejnosměrný motor patří mezi nejstarší stejnosměrné stroje. Přitom je ale stejnosměrný motor s cizím buzením ideálně regulovatelný, jelikož lze jeho otáčky plynule měnit změnou napětí přiváděného na kotvu motoru.

Pro servopohony se používají především motory s buzením permanentními magnety na statoru. Pro výrobu permanentních magnetů se používá magnetických tvrdých materiálů na bázi vzácných zemin, dnes nečastěji spékaných materiálů Sm-Co (samárium-kobalt) nebo Fe-Nd-B (železo-neodym-bór).

Definujme základní veličiny

um [V] – napětí na kotvě motoru (svorkové) im [A] – proud kotvy motoru Rm [Ω] – celkový odpor všech vinutí v kotvě motoru Lm [H] – celková indukčnost všech vinutí v kotvě motoru J [kg m2] – celkový moment setrvačnosti vztažený k hřídeli motoru k [Nm A–1] – konstanta motoru Φ [Wb] – magnetický tok ϕ [rad] – úhel natočení hřídele motoru ω = dϕ / dt [rad s–1] – úhlová rychlost pohybu Mm, MZ [Nm] – elektromagnetický a zatěžovací moment motoru

Je-li motor (schéma je na obr. 8-19, kapitola 8.4) řízený pouze změnou napětí kotvy při stálém budicím proudu ib = konst resp. je-li buzen permanentními magnety, lze jej popsat pomocí následujících dvou rovnic

)(d

)(d)()( mmmmm tc

ttiLtiRtu ωΦ++=

)(d

)(dmmZ ticMM

ttJ Φ==+

ω

Magnetický tok je konstantní (zanedbáváme reakci kotvy, resp. přepokládáme, že je kompenzována). Nemusíme tedy uvažovat nelineární funkci Φ = f (ib), viz také kapitola 8.4, a zavedeme konstantu motoru k = cΦ . Indukované napětí kotvy je pak přímo úměrné rychlosti otáčení. Upravíme-li výše uvedené rovnice do tvaru

)]()()([1d

)(dmmm

m

m tiRtktuLt

ti−−= ω

])([1d

)(dZm Mtik

Jtt

−=ω

je možné strukturu modelu realizovat v Simulinku pomocí schéma na obr. 8-22.

Aplikujeme-li dále na uvedené rovnice Laplaceovu transformaci, lze celý model převést do přenosového vyjádření

)()()()( mmmmm sksIsLsIRsU Ω++= )()()( Zm ssIkssJ M−=Ω

Page 146: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti modelování systémů

146

z prvního vztahu vyjádříme proud kotvy a dosadíme do druhého. Po úpravě dostaneme

)(1

1)(1

11)( Zm

2me

e2m

mm

2me

ssTsTT

sTkRsU

sTsTTks M

+++

−++

kde Tm označuje elektromagnetickou a Te elektromechanickou časovou konstantu motoru

m

me R

LT = , k

JRT mm =

Obr. 8-22: Simulační schéma stejnosměrného motoru s buzením permanentními magnety

Napětí kotvy můžeme v tomto případě považovat za akční a zatěžovací moment za poruchovou veličinu. S ohledem na strukturu zpětnovazebního obvodu, jak je znázorněna na obr. 8-22, je možné pro přenos soustavy GS(s) a pro přenos poruchy Gd(s) psát

111)(

m2

meS ++

=sTsTTk

sG

11)(m

2me

e2m

d +++

−=sTsTT

sTkRsG

Obr. 8-23: Blokové schéma modelu stejnosměrného motoru

s buzením permanentními magnety

Page 147: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Stejnosměrný motor s buzením permanentními magnety

147

Z hlediska potlačení vlivu poruchy na průběh regulace rychlosti je jistou nepříjemnou skutečností fakt, že relativní řád přenosu Gd(s) je roven jedné, zatímco přenosu GS(s) dvěma. Rychlost odezvy na změnu poruchy (v tomto případě momentové zátěže) je tak větší než na změnu akční veličiny.

Simulační schéma motoru můžeme samozřejmě nyní realizovat pomocí odvozených přenosů GS(s) a Gd(s), viz obr. 8-23. Struktura modelu se v tomto případě podstatně zjednoduší.

S využitím věty o konečné hodnotě Laplaceovy transformace (limitní korespondence, viz kapitola 7.2.3 a příloha A) můžeme pomocí vtahu pro obraz úhlové rychlosti Ω (s) získat výraz pro ustálenou hodnotu úhlové rychlosti

)()(1)( Z2m

m ∞−∞=∞ MkRU

Ustálená hodnota rychlosti lineárně klesá s rostoucím zatěžovacím momentem motoru MZ. Vlastnosti motoru se z hlediska momentové zatížitelnosti zhoršují s narůstajícím odporem Rm v obvodu kotvy. Ustálenou hodnotu rychlosti ω(∞) snadno ověříme v grafu na obr. 8-24; podle uvedeného výrazu je rovna ω(∞) ≅ 41,7 rad/s.

Při simulaci vyjdeme z parametrů skutečného stejnosměrného motoru: Mn = 13 Nm, nn = 500 min–1, Uan = 56 V, Ian = 18 A, Rm = 0,5 Ω, Lm = 6 mH, J = 0,026 kg m2. Vlastní simulaci provedeme pro napětí um = 30 V a moment zátěže MZ = 0 Nm. Dále musíme také stanovit konstantu motoru k = Mn / Ian = 0,72 Nm A–1.

Obr. 8-24: Průběh úhlové rychlosti a proudu kotvy motoru v závislosti na čase

Page 148: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

148

9 Příklady z oblasti automatického řízení

V následujících kapitolách je uvedeno několik úloh, které jsou orientovány na oblast teorie automatického řízení. V prostředí Simulinku jsou názorným způsobem vytvářeny modely uzavřeného regulačního obvodu. Ten se skládá ze dvou základních částí – regulované soustavy a regulátoru. Pozornost je věnována zejména možnostem realizace spojitého PID regulátoru. Jsou uvedeny i jiné implementace samotného PID algoritmu a některé jeho nejpoužívanější modifikace. Regulovaná soustava je modelována na základě příslušné diferenciální rovnice, jejíž řešení může být realizováno pomocí metody snižování řádu derivace či metody postupné integrace, nebo na základě obrazového přenosu. Modelování dynamických systémů na základě jejich diferenciálního popisu bylo podrobně popsáno již v kapitolách 7.1 a 7.2. Ve stručnosti jsou uvedeny i některé klasické přístupy vedoucí k nazelení optimálních parametrů regulátoru. Dále jsou zařazeny úlohy, ve kterých jsou k regulaci modelovaného technologického procesu použity nespojité (dvoupolohové a třípolohové) resp. číslicové (PSD) regulátory.

V závěru kapitoly jsou na konkrétním příkladě zformulovány a prakticky realizovány základní techniky pro numerickou optimalizaci dynamické funkce určené svými parametry. Je ilustrována jednoduchá, ale přesto velmi užitečná aplikace MATLABu, která umožňuje velmi efektivně podle zvoleného kritéria naleznout např. optimální parametry regulátoru. Jako příklad je uvedena úloha optimalizace parametrů číslicového regulátoru (spojitě popsaný proces je řízen diskrétním regulátorem) se zvoleným kvadratickým kritériem s penalizací akčních zásahů. Úlohu je samozřejmě možné řešit i analyticky. To je však velmi pracné. Iterační simulační výpočet naopak tuto úlohu řeší velmi jednoduše, a to bez použití obtížných matematických postupů, s minimálním teoretickým vybavením. Problémem navíc není ani složitější dynamika regulované soustavy vzhledem k řádu, nelinearitám, omezením nebo komplikovanému kritériu, která by analytické řešení zcela znemožnila.

9.1 Přechodové charakteristiky dynamických systémů 1. řádu

Abychom mohli sestavit model nějakého dynamického systému v Simulinku, je nutné se nejdříve zabývat diferenciálním popisem tohoto systému. Pomocí matematicko-fyzikální analýzy tedy obvykle hledáme diferenciální rovnici, která by vhodně popisovala dynamiku reálného fyzikálního systému.

Obr. 9-1: Dynamický systém

Chování dynamického systému 1. řádu na obr. 9-1 (někdy označovaného jako systém se zpožděním či setrvačností 1. řádu příp. jako setrvačný člen 1. řádu) je popsáno nejčastěji diferenciální rovnicí

GS(s)y(t)u(t)

Page 149: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Přechodové charakteristiky dynamických systémů 1. řádu

149

)()()( tuKtytyT =+′

kde K je zesílení a T časová konstanta systému, příp. pomocí odpovídajícího obrazového přenosu ve tvaru

1)(S +=

TsKsG

Uvedená diferenciální rovnice může popisovat např. lineární elektrický obvod obsahující jediný kapacitor nebo induktor, viz obr. 9-2 a 9-3. Podobné dynamické systémy, ať již elektrické, mechanické, pneumatické nebo hydraulické, se pak označují také jako systémy s jedním akumulátorem energie (kondenzátor s kapacitou C resp. cívka s indukčností L) nebo jako jednokapacitní systémy.

Obr. 9-2: Elektrický obvod – RC článek

Ukažme nyní, jakým způsobem lze odvodit diferenciální rovnici konkrétního systému, v tomto případě jednoduchého elektrického obvodu (RC článku) na obr. 9-2. Vyjdeme ze základních vztahů pro střídavé napětí a proud

iRuR =

tuCi

dd 2=

Podle druhého Kirchhoffova zákona musí v každém okamžiku platit

21 uuu R +=

Postupným dosazováním za napětí uR (z Ohmova zákona) a následně za proud i obdržíme následující diferenciální rovnici

22

1 dd u

tuCRu +=

Tuto rovnici můžeme formálně přepsat do tvaru

)()()( 122 tututuCR =+′

a pomocí Laplaceovy transformace (základní vzorce jsou v příloze A) ji převést na funkci operátoru s

)()()( 122 sUsUsUsCR =+

Přenos dynamického systému je definován jako poměr Laplaceova obrazu výstupní veličiny k Laplaceově obrazu vstupní veličiny při nulových počátečních podmínkách

R

C u1 uC = u2 uR

i

Page 150: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

150

111

)()()(

1

2S +

=+

==Ts

KsCRsU

sUsG

kde K = 1 je zesílení systému a T = R C je jeho časová konstanta.

Obr. 9-3: Elektrický obvod – LR článek

Obdobným způsobem lze odvodit diferenciální rovnici a přenos elektrického obvodu na obr. 6.1-3. Nejprve opět vyjdeme ze základních vztahů pro napětí a proud v obvodu

tiLuL d

d=

Ru

Rui R 2==

Dosazením do rovnice pro napětí v obvodu lze postupně psát

221 dd u

tiLuuu L +=+=

22

1 dd u

tu

RLu +=

Uvedenou diferenciální rovnici můžeme dále formálně přepsat do tvaru

)()()( 122 tututuRL

=+′

Přenos systému lze po provedení Laplaceovy transformace a elementárních úpravách zapsat jako

11

1)()()(

1

2S +

=+

==Ts

K

sRLsU

sUsG

kde K = 1 je zesílení systému a T = L / R je jeho časová konstanta.

Oba elektrické obvody (obr. 9-2 a 9-3) lze popsat prostřednictvím stejné diferenciální rovnice resp. stejného obrazového přenosu. Vlastní dynamika konkrétního systému je určena jeho statickým zesílením K a časovou konstantou T (reálná nenulová čísla), viz také obr. 9-4.

Přechodová charakteristika h(t) dynamického systému je obecně reakce dynamického systému vybuzeného z klidu (nulové počáteční podmínky) jednotkovou skokovou změnou vstupního (budicího) signálu. Její Laplaceův obraz je

L

R u1 uR = u2

uL

i

Page 151: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Přechodové charakteristiky dynamických systémů 1. řádu

151

ssGsH 1)()( S=

a konkrétně pro systém 1. řádu

)1(

11

1)(

TssTK

sTsKsH

+=

+=

Zpětnou Laplaceovou transformací, s využitím slovníku korespondencí v příloze A, získáme její analytické vyjádření v časové oblasti (tzv. přechodovou funkci)

)()e1()( tKth Tt

η−

−=

Možný průběh přechodové funkce je na obr. 9-4. Výše uvedený popis odpovídá nejčastější situaci ryze dynamického statického systému. Je stabilní pro T > 0.

Obr. 9-4: Přechodová charakteristika systému 1. řádu

Naším úkolem je nyní simulovat přechodovou charakteristiku popsaného dynamického systému a sledovat vliv jednotlivých parametrů na její průběh.

Příkladem realizace simulačního modelu systému prvního řádu je simulační schéma na obr. 9-5. Simulační model může sloužit k simulaci libovolné reakce tohoto dynamického systému. Speciálně však pro simulaci přechodové charakteristiky nastavíme nulové počáteční podmínky na integrátoru a za budicí signál u(t) zvolíme jednotkový skok. Parametry systému definujeme pomocí hodnot zesílení příslušných zesilovačů. Pomocí zobrazovače (Scope) můžeme po provedení simulace sledovat průběh přechodové charakteristiky y(t) = h(t).

Obr. 9-5: Simulace přechodové charakteristiky systému 1. řádu

Page 152: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

152

Obr. 9-6: Skript pro řízení simulačního výpočtu

V uvedeném schématu ukládáme časový průběh h(t) a odpovídající čas t pomocí bloku Scope do pracovního prostoru MATLABu. Důvodem je možnost dalšího zpracování numerické informace o průběhu přechodové charakteristiky. Např. lze průběh přechodové funkce zobrazit do grafu a po případné editaci jej přenést do textového editoru.

Obr. 9-7: Simulované přechodové charakteristiky (variace parametrů K a T)

Skript na obr. 9-6 řeší jednoduchým způsobem ovládání výpočtu a vykreslení sítě průběhů přechodových charakteristik odpovídajících měnícímu se parametru systému.

Page 153: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Přechodové charakteristiky dynamických systémů 2. řádu

153

Pro spolupráci skriptu a simulačního modelu musí být oba soubory umístěny v aktuálním adresáři. Struktura skriptu je zřejmá z vepsaných komentářů.

Realizace uvedená na obr. 9-5 není samozřejmě jediná možná. Další možností je simulace tohoto dynamického systému na základě jeho obrazového přenosu. K tomu lze použít blok Transfer Fcn. Simulink umožňuje také i simulaci průběhu přechodové charakteristiky definované pomocí analytické funkce (originálu či předmětu přechodové funkce). Funkci lze zapsat v bloku Fcn, vektor času generujeme pomocí bloku Clock, viz obr. 9-8.

Obr. 9-8: Možnosti simulace přechodové odezvy systému 1. řádu

9.2 Přechodové charakteristiky dynamických systémů 2. řádu

Zabývejme se podrobněji dynamickými systémy 2. řádu. Tyto systémy bývají někdy označovány také jako setrvačné resp. kmitavé členy 2. řádu. Představiteli těchto systémů jsou obvody či zařízení, která obsahují dva akumulátory energie (obecně např. dvojice kapacita-indukčnost nebo hmota-pružina). Příkladem takového systému může být RLC článek na obr. 9-9 nebo sedadlo řidiče, jejíž zjednodušený model byl podrobně popsán v kapitole 7.2.

Obr. 9-9: Příklad systému 2. řádu – RLC článek

Chování dynamického systému 2. řádu lze popsat diferenciální rovnicí ve tvaru

a2 y″(t) + a1 y′(t) + a0 y(t) = b2 u″(t) + b1 u′(t) + b0 u(t)

Z podmínky fyzikální realizovatelnosti systému musí být stupeň nejvyšší derivace výstupní veličiny y(t) větší nebo roven stupni nejvyšší derivace vstupní veličiny u(t). Budeme-li

R

C u1 u2

L

Page 154: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

154

dále uvažovat ryze dynamický proporcionální systém (b2 = b1 = 0), nabude diferenciální rovnice tvaru

a2 y″(t) + a1 y′(t) + a0 y(t) = b0 u(t)

Tuto diferenciální rovnici můžeme při nulových počátečních podmínkách, použitím pravidel Laplaceovy transformace (příloha A), transformovat a následně vyjádřit obrazový přenos systému

012

2

0S )(

asasabsG

++=

Přenos lze dále postupně upravovat

)()(

1212)(1

)(

n

2

n

2

0

12

0

2

0

0

S sqsp

ss

KTsTs

K

saas

aa

ab

sG =

++⎟⎟⎠

⎞⎜⎜⎝

⎛=

++=

++=

ωξ

ω

ξ

kde K = b0 / a0 je statické zesílení systému, ξ je jeho poměrné (relativní) tlumení a ωn = 1 / T je přirozená (vlastní) frekvence netlumeného systému, viz také obr. 9-10.

Laplaceův obraz přechodové charakteristiky systému je obecně roven

ssGsH 1)()( S=

a v případě popisovaného systému 2. řádu pak

ssqsp

sss

KsH 1)()(1

12

)(

n

2

n

=

++⎟⎟⎠

⎞⎜⎜⎝

⎛=

ωξ

ω

Odezva systému je charakterizována kořeny polynomu q(s) ve jmenovateli přenosu H(s), které jsou označovány jako póly přenosu. Poznamenejme, že kořeny polynomu čitatele p(s) se označují jako nuly přenosu; v našem případě je ale v čitateli jen konstanta.

Polynom ve jmenovateli přenosu q(s) se nazývá charakteristický polynom a pokud je q(s) = 0, hovoříme o charakteristické rovnici. Upravíme-li dále přenos systému do tvaru

)()(

2)( 2

nn2

2n

S sqsp

ssKsG =

++=

ωξωω

je pak jeho charakteristická rovnice

02)( 2nn

2 =++= ωξω sssq

Charakteristickou rovnici lze vyjádřit jako součin kořenových činitelů

)()(2 212nn

2 ssssss −−=++ ωξω

Page 155: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Přechodové charakteristiky dynamických systémů 2. řádu

155

a pro relativní tlumení ξ < 1 určit oba kořeny této rovnice

dn2

nn2,1 j1j ωξωξωξω ±−=−±−=s

kde 2nd 1 ξωω −= je tzv. přirozená frekvence tlumeného systému.

Obraz přechodové charakteristiky H(s) můžeme s ohledem na uvedené vyjádřit

)1j()1j()(

2nn

2nn

2n

ξωξωξωξωω

−++−−+=

sssKsH

Je zřejmé, že ke kořenům charakteristické rovnice systému s1 a s2 přibude ještě navíc kořen třetí s3 = 0.

Pomocí zpětné Laplaceovy transformace, s využitím věty o reziduích [10, 12], lze nyní vyjádřit přechodovou funkci v časové oblasti

⎥⎥

⎢⎢

⎟⎟

⎜⎜

−−++

+⎟⎟⎠

⎞⎜⎜⎝

⎛++

=

−−−

−−−=

=

tt

s

s

ss

ssKth

)1(j

1j2

nn

2n

02nn

2

2n

2nn

2nn

ee)1j(

Re2

2)(

ξωξω

ξωξωξωξω

ω

ωξωω

)(1

arctg)1(sine1

11)(2

2n2

n ttKth t ηξξ

ξωξ

ξω

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

⎥⎥⎦

⎢⎢⎣

⎡ −+−

−−= −

Názorná grafická interpretace parametrů kmitavého proporcionálního systému 2. řádu je na obr. 9-10. S ohledem na výše uvedené souvislosti lze přechodovou funkci v závislosti na čase zjednodušeně zapsat

)()](sine1[)( d ttCKth t ηψωα +−= −

kde α je tzv. absolutní tlumení a dále platí, že

d

n

d

1ωω

ω==

TC ; nξωξα ==

T;

T1

n =ω ; 2n

2d 111 ξωξω −=−=

T;

2nr 21 ξωω −= ; ξ

ξξ

αωψ arccos

1arctg

2d =

−==

Na obr. 9-10 jsou zakresleny základní polohy pólů v závislosti na relativním tlumení ξ. Diskutujme nyní vliv jejich polohy na průběh odezvy systému. Budeme předpokládat, že systém je stabilní, tj. že všechny jeho póly leží v levé polorovině komplexní roviny.

Zkoumejme nejprve vliv absolutního tlumení α, někdy také označovaného jako stupeň stability, který vyjadřuje vzdálenost dvojice komplexně sdružených pólů od imaginární osy. Pomocí jednoduchého skriptu (obr. 9-11), pouze s využitím základních příkazů MATLABu, definujeme tři dvojice pólů tak, aby měly vždy stejnou reálnou část (tj. absolutní tlumení) a rozdílnou část komplexní.

Page 156: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

156

Obr. 9-10: Geometrická interpretace parametrů a rozložení pólů dynamického systému 2. řádu

Konkrétní rozložení zvolených pólů je na obr. 9-13. Skript umožňuje jednoduchou změnou parametrů N, ReP, ImP, dImP a K měnit počet dvojic komplexně sdružených pólů, velikost jejich reálné složky, počáteční velikost imaginární složky a krok její změny a i zesílení soustavy. Nejprve je na základě definovaných pólů charakteristické rovnice a zesílení K sestaven odpovídající přenos. Simulace je pak provedena s využitím jednoduchého modelu na obr. 9-11. V bloku Transfer Fcn jsou načítány vektory koeficientů přenosu B a A.

Obr. 9-11: Simulace přechodové odezvy systému

Na obr. 9-13 jsou také uvedeny i příslušné průběhy přechodových funkcí. V grafu je vykreslena navíc obalová křivka této sítě charakteristik, jejíž vyjádření je

⎥⎥

⎢⎢

⎟⎟⎠

⎞⎜⎜⎝

⎛+±= −

2

d

1e1)(ωαα tKtc

ωn

2nd 1 ξωω −=

póly pro ξ = 0

ωn

ωr

Im

Re

ψ

póly pro ξ > 1

póly pro 0 > ξ > 1

dvojnásobný pól pro ξ = 1

α = ξωn

Page 157: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Přechodové charakteristiky dynamických systémů 2. řádu

157

Připomeňme, že absolutní tlumení α je rovno reálné části pólů (ReP) a přirozená frekvence tlumeného systému ωd je rovna části imaginární (ImP), neboť s1, 2 = –α ± jωd.

Obr. 9-12: Skript pro řízení výpočtu

Pomocí skriptu na obr. 9-12 můžeme obdobným způsobem měnit naopak reálnou složku pólů při zachování složky imaginární (neboli při zachování přirozené frekvence tlumeného systému ωd). Změnou parametrů N, ReP, dReP, ImP lze měnit počet dvojic komplexně sdružených pólů, počáteční velikost jejich reálné složky, krok její změny a velikost složky imaginární. Grafické znázornění polohy pólů a příslušné přechodové charakteristiky jsou na obr. 9-14. V tomto případě platí, že vzdálenost dvou sousedních vrcholů kmitů přechodové charakteristiky je vždy stejná, tedy

Page 158: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

158

2nd

k1π2π2ξωω −

==T

Lze samozřejmě stanovit i maximum charakteristiky a jemu odpovídající čas

)e1()e1(2

d 1

ππ

ξ

ωα

−−−

+=+= KKh , 2

ndm

1ππ

ξωω −==t

V případě, kdy např. volíme s1, 2 = –0,4 ± j 5 (na obr. 9-14 dvojice komplexně sdružených pólů zcela vpravo) je maximum tomu odpovídající přechodové charakteristiky hm ≈ 3,56 v čase tm ≈ 0,63 s.

Obr. 9-13: Přechodové charakteristiky systému 2. řádu při stejném absolutním tlumení α

Obr. 9-14: Přechodové charakteristiky systému 2. řádu při stejné frekvenci ωd

Relativní tlumení ξ určuje velikost relativního překmitu κ (obr. 9-16). Konstantní hodnotě relativního tlumení odpovídají dvě polopřímky vedené z počátku souřadného systému, které svírají se zápornou reálnou poloosou úhel ψ (komplexní kořeny vždy vystupují v komplexně sdružených dvojicích).

Page 159: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu

159

Pokud je úhel ψ = 45°, pak kružnice vedená dvojicí navzájem komplexně sdružených pólů (o poloměru ωd) prochází zároveň i počátkem souřadnic. Rezonanční frekvence systému ωr bude v tomto případě nulová. Tato situace nastane, budeme-li komplexně sdružené póly na obr. 9-10 posouvat z výchozí pozice (je zakreslena) směrem od počátku.

Obr. 9-15: Skript pro vykreslení charakteristik při stejném relativním tlumení ξ

Obr. 9-16: Přechodové charakteristiky systému 2. řádu při stejném relativním tlumení ξ

Page 160: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

160

K názorné ilustraci problematiky lze využít skript na obr. 9-15. K simulaci použijeme opět jednoduchý model na obr. 9-11. Ve skriptu lze změnou parametrů N, ReP, ImP, p, mp měnit počet dvojic komplexně sdružených pólů, počáteční velikost jejich reálné a imaginární složky a koeficienty jejich změny. Grafické znázornění polohy pólů a příslušné přechodové charakteristiky jsou uvedeny na obr. 9-16. Je zřejmé, že všechny přechodové charakteristiky mají stejně velký relativní překmit, dochází pouze ke změně časového měřítka.

9.3 Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu

Rozšiřující modul MATLABu Control System Toolbox poskytuje značné množství příkazů pro teorii automatického řízení (více help control). Funkce z oblasti analýzy a návrhu řídicích systémů jsou založeny nejen na klasickém popisu pomocí přenosů, ale i na popisu systémů ve stavovém prostoru. Toolbox zavádí také lineární časově invariantní objekty (LTI), což jsou struktury popisující jednorozměrové i mnoharozměrové lineární systémy.

Z důvodu omezeného rozsahu tohoto textu, není samozřejmě možné popsat všechny dostupné příkazy Control System Toolboxu. Uveďme tedy pouze několik nejdůležitějších příkazů, pomocí kterých lze vytvořit jednoduchý skript pro vykreslování dynamických charakteristik systému libovolného řádu. Za dynamické charakteristiky systému považujeme charakteristiky přechodové, váhové a frekvenční. Konkrétní systém budeme definovat pomocí obrazového přenosu, nejprve zadáním příslušných koeficientů, později definováním pólů a nul.

Dynamický systém n-tého řádu je obvykle popsán lineární diferenciální rovnicí s konstantními koeficienty, obecně ve tvaru

an y(n) (t) + an–1 y(n–1) + ... + a1 y′(t) + a0 y(t) = bm u(m) (t) + ... + b1 u′(t) + b0 u(t)

Z podmínky fyzikální realizovatelnosti systému musí být m ≤ n, tj. stupeň nejvyšší derivace výstupní veličiny musí být větší nebo roven stupni nejvyšší derivace vstupní veličiny. Obrazový přenos systému je definován jako poměr Laplaceova obrazu výstupní veličiny k Laplaceově obrazu vstupní veličiny při nulových počátečních podmínkách. Jak již bylo řečeno v kapitole 7.2, diferenciální rovnici můžeme použitím pravidel Laplaceovy transformace při splnění výše uvedených podmínek transformovat do tvaru

[an s n + an–1 s n–1 + ... + a1 s + a0] Y(s) = [bm s(m) + ... + b1 s + b0] U(s)

Obrazový přenos systému je tedy

01

01S ...

...)()()(

asasabsbsb

sUsYsG n

n

mm

++++++

==

Přenos systému lze v MATLABu definovat pomocí příkazu tf. Označme dále polynom čitatele přenosu B(s) a polynom jmenovatele (charakteristický) A(s). Příkaz zapíšeme ve tvaru Gs = tf (B, A).

Pokud polynomy B(s) a A(s) rozložíme na kořenové činitele, lze přenos systému zapsat ve tvaru

Page 161: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu

161

)(...))(()(...))(()(

21

21S

anaan

bmbbm

ssssssassssssbsG

−−−−−−

=

kde sb1, sb2, ..., sbm jsou kořeny čitatele (nuly) a sa1, sa2, ..., san jsou kořeny jmenovatele (póly). Zesílení systému je dáno poměrem bm / an.

Obr. 9-17: Skript pro vykreslení dynamických charakteristik systému

Obr. 9-18: Definice přenosu systému

Pro sestavení obrazového přenosu ze zadaných nul (zeros), pólů (poles) a zesílení (gain) lze v MATLABu použít příkaz zpk. Příkaz zapíšeme ve tvaru Gs = zpk (Z, P, K). Přenos vytvořený příkazem zpk je možné převést na přenos s polynomy v čitateli a ve jmenovateli. Pomocí příkazu [B, A] = tfdata (Gs,′v′) nejprve tyto polynomy vypočteme

Page 162: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

162

a pomocí příkazu tf z nich následně vytvoříme obrazový přenos. Ve skriptu na obr. 9-17 jsou takto postupně definovány dva dynamické systémy, jejichž přenosy jsou uvedeny na obr. 9-18.

Obr. 9-19: Rozložení pólů a nul

Obr. 9-20: Přechodové charakteristiky

Page 163: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu

163

Obr. 9-21: Váhové (impulsní) charakteristiky

Přechodové charakteristiky (obr. 9-20) obou systémů získáme zadáním příkazu step (Gs), charakteristiky váhové (obr. 9-21) pak zadáním impulse (Gs). Vytvářený skript doplníme o zobrazení frekvenčních charakteristik v Gaussově komplexní rovině a v logaritmických souřadnicích (obr. 9-22 až 9-23).

Obr. 9-22: Frekvenční charakteristiky v komplexní rovině

(včetně větví pro záporné frekvence)

Page 164: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

164

Frekvenční charakteristiku dynamického systému v komplexní rovině získáme zadáním příkazu nyquist (Gs) případně nyquist (Gs, Wmin, Wmax), chceme-li definovat rozsah frekvencí (v rad/s). Charakteristika je vykreslena včetně větve pro záporné frekvence, která je souměrná podle reálné osy s větví pro frekvence kladné, viz obr. 9-22.

Obr. 9-23: Frekvenční charakteristiky v komplexní rovině

Obr. 9-24: Amplitudové a fázové frekvenční charakteristiky

v logaritmických souřadnicích

Page 165: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

165

Obdobně vykreslíme i frekvenční charakteristiky v logaritmických souřadnicích uvedené na obr. 9-24, tj. amplitudovou a fázovou, které bývají často označovány jako BODEho charakteristiky. K jejich zobrazení použijeme příkaz bode (Gs), nebo chceme-li definovat také frekvenční rozsah příkaz bode (Gs, Wmin, Wmax).

Obr. 9-25: Editor vlastností grafu

Prostřednictvím plovoucího menu, které je přístupné po stisku pravého tlačítka myši nad plochou grafu, můžeme měnit vzhled všech popisovaných charakteristik. Pokud např. nechceme zobrazit sdruženou část frekvenční charakteristiky v komplexní rovině (obr. 9-22), odznačíme položku plovoucího menu Show → Negative Frequencies. Výsledný průběh je uveden na obr. 9-23. V dialogovém okně (obr. 9-25), které je přístupné zvolíme-li položku Properties..., lze měnit popisky, rozsahy os, použité jednotky (v tomto případě rad/s nebo Hz), fonty apod.

Na závěr poznamenejme, že druhý definovaný systém, na obr. 9-18 vlevo (je označen indexem 2), je tzv. systém s neminimální fází. Tento systém má nestabilní nulu (kořen čitatele), tj. nulu v pravé polorovině komplexní roviny, viz obr. 9-19. Charakter systému je patrný i z přechodové charakteristiky (je na obr. 9.20), z frekvenční charakteristiky v komplexní rovině (obr. 9-23) a zejména pak z fázové frekvenční charakteristiky (obr. 9-24). Fáze se zde pro nízké frekvence blíží ke 180°, není tedy minimální (záporná).

9.4 Frekvenční charakteristiky dynamických systémů 2. řádu

V teorii automatického řízení se k posouzení vlastností regulačních obvodů i jejich jednotlivých členů někdy používají tzv. frekvenční charakteristiky. Pokud na vstup systému zavedeme harmonické kmity u(t) o určité frekvenci, tak po určité době nutné k utlumení přechodového děje vniknou na výstupu tohoto systému harmonické kmity y(t) se stejnou frekvencí, ale obecně s jinou amplitudou a s fázovým posunem. Utlumení přechodového děje nastane vždy, pokud je systém stabilní.

Jelikož lze harmonický pohyb znázornit v komplexní rovině vektorem s konstantní amplitudou, který se otáčí v kladném smyslu (ve směru hodinových ručiček) úhlovou rychlostí ω, lze rovnici vstupních kmitů zapsat ve tvaru

tu ωj0 e=u

a rovnici výstupních kmitů )(j

0 e ϕω += tyy

Page 166: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

166

kde u0 a y0 jsou amplitudy vstupních a výstupních kmitů a ϕ je fázový posuv výstupních kmitů vůči vstupním. S výjimkou derivačních členů (systémů s neminimální fází) je ϕ < 0, tj. výstupní kmity jsou zpožděny za vstupními.

Vytvoříme-li poměr výstupních kmitů ke vstupním, dostáváme

ϕω j

0

0 e)j(uyG ==

uy

Komplexní funkce G(jω) udává, jak se mění výstupní kmity y(t) co do amplitudy a fáze v závislosti na frekvenci, udržujeme-li amplitudu vstupních kmitů konstantní. Modulem funkce G(jω) je poměr amplitud vstupních a výstupních kmitů

)()j(0

0 ωω A

uyG ==

a jejím argumentem je fázový posuv

)()]j([arg ωϕω =G

Funkce G(jω) se nazývá frekvenční přenos. Frekvenční přenos získáme také z přenosu obrazového dosazením za s = jω, tedy

01

01

)j()j()j()j()j(

aaabbbG n

n

mm

++++++

=ωωωωω

K

K

Výrazy v čitateli a ve jmenovateli přenosu G(jω) rozdělíme na reálnou a imaginární část, takže bude

)(j)()(j)()j(

ωdcωfeG

++

=ωωω

kde

K

K

K

K

−+−=

−+−=

−+−=

−+−=

55

331

44

220

55

331

44

220

)(

)(

)(

)(

ωωωω

ωωω

ωωωω

ωωω

bbbf

bbbe

aaad

aaac

Jestliže čitatele i jmenovatele přenosu G(jω) vynásobíme [c(ω) – j d(ω)], tedy výrazem komplexně sdruženým (konjugovaným) ke jmenovateli přenosu, můžeme G(jω) zapsat přímo jako komplexní číslo – ve složkovém popř. v exponenciálním tvaru

)(e)()(j)()j( ωϕωωωω AQPG =+=

Z výše uvedeného dále plyne, že

)()(arctg)(

)()()(

)(sin)()()(cos)()(

22

ωωωϕ

ωωω

ωϕωωωϕωω

PQ

QPA

AQAP

=

+=

==

Page 167: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

167

Pro jednotlivé složky přenosu G(jω) zavádíme tyto názvy:

P(ω) – reálná část frekvenční charakteristiky, Q(ω) – imaginární část frekvenční charakteristiky, A(ω) – amplitudová frekvenční charakteristika, ϕ (ω) – fázová frekvenční charakteristika.

Jak vlastní funkci G(jω), tak i funkce A(ω) a ϕ (ω) lze znázornit graficky a nazýváme je frekvenční charakteristiky. Frekvenční charakteristika systému v komplexní rovině je geometrické místo, které opíše koncový bod vektoru G(jω) v komplexní rovině při změně frekvence vstupního harmonického signálu v rozsahu –∞ ≤ ω ≤ +∞. Uvedená charakteristika se někdy označuje jako amplitudo-fázová a je též grafickým zobrazením přenosu G(jω) v komplexní rovině. Větev charakteristiky pro záporné frekvence je souměrná podle reálné osy s větví pro frekvence kladné a zpravidla se vůbec neuvádí. (V MATLABu je ovšem tato větev implicitně vždy vykreslována.)

Amplitudovou A(ω) a fázovou ϕ (ω) frekvenční charakteristiku je vhodné znázorňovat v logaritmických souřadnicích. Z toho důvodu jsou často tyto charakteristiky označovány jako logaritmické frekvenční charakteristiky. U amplitudové charakteristiky bývá zvykem vynášet absolutní hodnotu (modul) velikosti přenosu v decibelech. Hodnotu nějaké veličiny v decibelech [dB] vypočteme jako dvacetinásobek dekadického logaritmu této veličiny. Na logaritmické stupnici pro frekvenci ω nazýváme interval mezi určitou frekvencí a jejím desetinásobkem dekádou. V praxi se velmi často přesné charakteristiky nahrazují asymptotami. U asymptot pak hovoříme o poklesu resp. vzrůstu vztaženém právě na dekádu.

V dalším textu se omezíme na stabilní kmitavé systémy 2. řádu. Budeme uvažovat přenos ve tvaru

2nn

2

2n

S j2)j()j(

ωωξωωωω

++= KG

který získáme z obrazového přenosu uvedeného v kapitole 9.2 dosazením za s = jω. Přenos lze dále upravit

ξϖϖωξωωωωω

2j)1(1

2j)()j( 2

n22

n

2n

S +−=

+−= KKG

kde ϖ = ω /ωn je tzv. normalizovaná frekvence.

Z uvedeného přenosu vypočteme amplitudo-fázovou frekvenční charakteristiku

22222222

2

S 4)1(2j

4)1(1)j(

ϖξϖξϖ

ϖξϖϖω

+−−

+−−

= KKG

a logaritmickou amplitudovou charakteristiku

]4)1[(log10log20

4)1(log20log20)(log202222

2222

ϖξϖ

ϖξϖω

+−−=

=+−−=

K

KA

Přesný průběh charakteristiky nahradíme asymptotami. Rovnice první asymptoty pro ω → 0 je

Page 168: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

168

KKA log201log10log20)(log20 =−≈ω

Rovnice druhé asymptoty pro ω → ∞, kdy zřejmě ]4)1[( 2222 ϖξϖ +− → 4ϖ , je

ϖϖω log40log20log10log20)(log20 4 −=−≈ KKA

Pro zakreslení přesných charakteristik je nutné znát chybu, které se dopouštíme při náhradě asymptotami. Chyba je závislá na koeficientu ξ. Podle [2] u dynamických systémů, u kterých ξ leží v intervalu ⟨0,4; 0,7⟩ chyba nepřesáhne hodnotu 3 dB.

Zbývá určit fázovou charakteristiku. Ta je dána vztahem

22

12arctg]2j)1[(arg)(ϖξϖξϖϖωϕ−

−=+−−=

Uvedený postup je poměrně složitý. Pokud ale k zobrazení frekvenčních charakteristik využijeme MATLAB resp. jeho Control System Toolbox, situace se velmi zjednoduší. Zcela odpadne např. konstrukce asymptot u amplitudové charakteristiky.

Obr. 9-26: Skript pro vykreslení frekvenčních charakteristik

Na obr. 9-26 je uveden jednoduchý skript, který vykreslí frekvenční charakteristiky v komplexní rovině (obr. 9.27) a frekvenční charakteristiky v logaritmických souřadnicích (obr. 9.28). Parametrem jednotlivých křivek je relativní tlumení ξ, které je postupně měněno v intervalu ⟨0; 1⟩. Zesílení systému je K = 10. Je možné měnit vektor hodnot tlumení ξ, pro které mají být charakteristiky vykresleny. Ve skriptu jsou použity příkazy nyquist a bode Control System Toolboxu, které byly podrobněji popsány již v kapitole 9.3.

Sledujme nyní vliv polohy pólů přenosu systému na průběh frekvenčních charakteristik. Podobně jako v kapitole 9.2 budeme nejprve uvažovat komplexně sdružené póly, které mají stejnou reálnou část (tj. absolutní tlumení) a rozdílnou imaginární. Grafické znázornění jejich možné polohy v komplexní rovině a tomu odpovídající přechodové charakteristiky byly již uvedeny na obr. 9-13. S využitím Control System Toolboxu můžeme vytvořit jednoduchý skript pro vykreslení frekvenčních charakteristik takto definovaných stabilních kmitavých systémů 2. řádu, viz obr. 9-29. Pro sestavení obrazového přenosu ze zadaných

Page 169: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

169

pólů a zesílení byl použit příkaz zpk. Frekvenční charakteristiky při shodném zesílení K = 10 a při zachování stejného absolutního tlumení α jsou na obr. 9-30 a 9-31.

Obr. 9-27: Frekvenční charakteristiky systému v komplexní rovině

pro různé hodnoty relativního tlumení ξ

Obr. 9-28: Amplitudové a fázové frekvenční charakteristiky v logaritmických

souřadnicích pro různé hodnoty relativního tlumení ξ

Page 170: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

170

Obr. 9-29: Editor vlastností grafu

Pomocí skriptu na obr. 9.32 můžeme obdobným způsobem měnit reálnou složku pólů při zachování složky imaginární (tj. při zachování přirozené frekvence tlumeného systému ωd). Grafické znázornění možné polohy pólů v komplexní rovině a odpovídající přechodové charakteristiky jsou uvedeny na obr. 9-14. Frekvenční charakteristiky při shodném zesílení systému K = 10 a při stejné přirozené frekvenci tlumeného systému ωd jsou na obr. 9-33 a 9-34.

Obr. 9-30: Frekvenční charakteristiky systému v komplexní rovině

při stejném absolutním tlumení α

Poslední variantou rozložení pólů přenosu kmitavého systému 2. řádu, kterou budeme simulovat, je rozložení pólů v komplexní rovině tak, aby výsledné systémy měly vždy

Page 171: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

171

stejné relativní tlumení ξ. Připomeňme, že konstantní hodnotě relativního tlumení odpovídají dvě polopřímky vedené z počátku souřadného systému, viz obr. 9-10. Grafické znázornění možné polohy pólů v komplexní rovině a odpovídající přechodové charakteristiky jsou na obr. 9-16. K vykreslení frekvenčních charakteristik použijeme skript na obr. 9-37.

Obr. 9-31: Amplitudové a fázové frekvenční charakteristiky v logaritmických

souřadnicích při stejném absolutním tlumení α

Obr. 9-32: Skript pro vykreslení frekvenčních charakteristik systému

při stejné přirozené frekvenci ωd

Page 172: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

172

Obr. 9-33: Frekvenční charakteristiky systému v komplexní rovině

při stejné přirozené frekvenci ωd

Obr. 9-34: Amplitudové a fázové frekvenční charakteristiky v logaritmických

souřadnicích při stejné přirozené frekvenci ωd

Při stejném relativním tlumení mají všechny definované systémy totožné frekvenční charakteristiky v komplexní rovině (obr. 9-35). Na amplitudových a fázových frekvenčních charakteristikách (obr. 9-36) je patrný jejich vzájemný posun při zachování tvaru křivek.

Page 173: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

173

Obr. 9-35: Frekvenční charakteristiky systému v komplexní rovině

při stejném relativním tlumení ξ

Obr. 9-36: Amplitudové a fázové frekvenční charakteristiky v logaritmických

souřadnicích při stejném relativním tlumení ξ

Page 174: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

174

Obr. 9-37: Skript pro vykreslení frekvenčních charakteristik systému

při stejném relativním tlumení ξ

9.5 Přechodové charakteristiky PID regulátoru Regulátor je ve své podstatě uměle vytvořený dynamický prvek zařazený do zpětné

vazby k regulované soustavě (k technologickému procesu, který se snažíme řídit). Změna parametrů regulátoru nám umožňuje ovlivňovat dynamické vlastnosti celého uzavřeného regulačního obvodu, viz obr. 9-38.

Obr. 9-38: Blokové schéma regulačního obvodu

Vstupem do regulátoru je regulační odchylka e(t) vyjádřená rozdílem e(t) = w(t) – y(t), kde y(t) představuje regulovanou a w(t) řídicí veličinu.

Obr. 9-39: Blok regulátoru

Vlastnosti regulátoru typu PID mohou být poněkud zjednodušeně popsány vztahem

tterertertu

t

d)(dd)()()(

0210 ∫ ++= ττ

GR(s)u(t)e(t)

GS(s)

e(t)

y(t)u(t)

w(t)GR(s)

Page 175: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

175

Přenos regulátoru je

srsrrsG 21

0R )( ++=

Derivační složku lze u reálných průmyslových regulátorů realizovat pouze přibližně s dynamickým zpožděním prvního (nebo někdy i vyššího) řádu. Obrazový přenos reálného regulátoru nabývá pak poněkud komplikovanějšího tvaru (zde pro zpoždění 1. řádu)

1)(

v

210R +

++=sT

srsrrsG

kde Tv je časová konstanta zpožďovacího členu. Takto modifikovaný regulátor se pak často označuje jako PID regulátor s aproximovanou derivací. Parametry r0, r1 a r2 jsou stavitelné parametry regulátoru – po řadě jeho proporcionální, integrační a derivační složky.

Obr. 9-40: Realizace PID regulátoru v Simulinku

Přechodová charakteristika h(t) je obecně reakce dynamického systému vybuzeného z klidu (nulové počáteční podmínky) jednotkovou skokovou změnou vstupního budicího signálu. Úkolem je simulovat konkrétně přechodovou charakteristiku regulátoru a sledovat vliv jednotlivých parametrů na její průběh. Příkladem simulačního modelu regulátoru v prostředí Simulink může být např. model na obr. 9-40. Zvolíme-li jako budicí signál jednotkový skok a parametry PID regulátoru prostřednictvím hodnot zesílení příslušných zesilovačů, můžeme pomocí zobrazovače (Scope) sledovat po provedené simulaci průběh přechodové charakteristiky. V uvedeném modelu ukládáme průběh h(t) do pracovního prostoru (také pomocí Scope). Můžeme ho pak následně např. vykreslit do grafu, editovat a pro další účely přenést do textového editoru nebo jiným způsobem ve formě pole dále zpracovat.

Pro účely vykreslení sítě přechodových charakteristik odpovídajících měnícímu se parametru do jednoho obrázku byl vytvořen jednoduchý skript (obr. 9-41), kterým lze řídit výpočet opakované simulace. Struktura i ovládání tohoto skriptu jsou zřejmé z vepsaných komentářů. Přechodové charakteristiky PID regulátoru při variaci parametrů r0, r1, r2 a Tv jsou na obr. 9-42 až 9-45.

Page 176: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

176

Obr. 9-41: Skript pro řízení simulačního výpočtu

Obr. 9-42: Variace parametru r0

Page 177: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Frekvenční charakteristiky dynamických systémů 2. řádu

177

Obr. 9-43: Variace parametru r1

Obr. 9-44: Variace parametru r2

Obr. 9-45: Variace parametru Tv

Page 178: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

178

Vliv jednotlivých parametrů regulátoru lze pomocí uvedeného skriptu vyšetřovat i na jednodušších strukturách P (r1 = r2 = 0), I (r0 = r2 = 0), D (r0 = r1 = 0) a PI (r2 = 0) a PD (r1 = 0).

9.6 Regulační obvod se spojitým PID regulátorem Hlavní funkcí regulátoru s přenosem GR(s) ve zpětnovazebním regulačním obvodu

na obr. 9-46 je působit na technologický proces (tzv. regulovanou soustavu) s přenosem GS(s) vhodně tak, aby celý uzavřený obvod měl dobré statické i dynamické vlastnosti.

Obr. 9-46: Blokové schéma regulačního obvodu

Regulovaná veličina y(t) musí s přijatelnou přesností reagovat na požadavek změny její hodnoty vyjádřený žádanou hodnotou regulované veličiny w(t) (řídicí veličinou). Kromě této základní funkce ještě regulátor eliminuje i vliv většinou nežádoucích vlivů, tzv. poruch, které také vstupují do obvodu. Vstupem do regulátoru je regulační odchylka e(t) vyjádřená rozdílem e(t) = w(t) – y(t).

Obr. 9-47: Regulační obvod s poruchami

V blokovém schéma na obr. 9-47 jsou vyznačeny dva nejčastější typy poruch. Porucha na vstupu do regulované soustavy d1(t), někdy označovaná jako porucha na akční veličině u(t), a na jejím výstupu d2(t).

Chování regulačního obvodu můžeme ovlivnit parametry regulátoru GR(s). V technické praxi jsou nejčastěji používány spojité regulátory typu PID (Proporcionálně Integračně Derivační), jejichž diferenciální rovnice je obvykle ve tvaru

tterertertu

t

d)(dd)()()(

0210 ∫ ++= ττ

kde r0, r1 a r2 představují proporcionální, integrační resp. derivační zesílení regulátoru, nebo případně ve tvaru

]d

)(dd)(1)([)(0

di

0 tteTe

Ttertu

t

∫ ++= ττ

GS(s)d1(t)

e(t)

y(t)

u(t) w(t)GR(s)

d2(t)

GS(s)

e(t)

y(t)u(t)

w(t)GR(s)

Page 179: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Regulační obvod se spojitým PID regulátorem

179

Vzájemný vztah mezi konstantami obou uvedených variant regulátoru je r1 = I = r0 / Ti a r2 = D = r0 Td, kde Ti je integrační a Td derivační časová konstanta.

Nastavením parametrů regulátoru r0, r1, r2 resp. r0, Ti, Td můžeme ovlivnit chování celého regulačního obvodu, nevhodným nastavením může však dojít i k jeho špatné funkci nebo dokonce k jeho nestabilitě.

Pro určení vhodné kombinace hodnot parametrů regulátoru (tzv. optimální seřízení regulátoru) existuje několik metod a přístupů lišících se zejména tím, jak posuzují kvalitu dynamického chování celého uzavřeného regulačního obvodu.

Sestavme nyní simulační model regulačního obvodu složeného z regulované soustavy třetího řádu popsané diferenciální rovnicí

)(6)(6)(11)(6)( tutytytyty =+′+′′+′′′

resp. obrazovým přenosem

61166)( 23S +++

=sss

sG

a regulátoru typu PID. Ověřte jeho statické i dynamické chování pro různé hodnoty parametrů regulátoru (mohou být i nulové) a různé poruchy d1(t), d2(t) a změny w(t).

Model regulačního obvodu lze realizovat různými způsoby. Regulovaná soustava může být modelována na základě příslušné diferenciální rovnice, jejíž řešení může být např. realizováno pomocí metody snižování řádu derivace (obr. 9-48) či metody postupné integrace (obr. 9-49). Další možností je realizace pomocí obrazového přenosu (obr. 9-50). K realizaci regulátoru je možné použít standardní bloky Simulinku, případně přímo blok PID Controller (knihovna Simulink Extras / Additional Linear).

Obr. 9-48: Realizace regulačního obvodu v Simulinku – metoda snižování řádu derivace

Page 180: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

180

Obr. 9-49: Realizace regulačního obvodu v Simulinku – metoda postupné integrace

Blok PID Controller přestavuje běžnou spojitou variantu PID regulátoru s přenosem v paralelním tvaru GR(s) = P + I / s + D s, ve kterém konstanty P, I a D regulátoru odpovídají zesílením r0, r1 a r2 používaným ve výše uvedených modelech. Tyto konstanty definujeme přímo prostřednictvím okna parametrů bloku, které je uvedeno na obr. 9-51. Nevýhodou použití bloku PID regulátoru je ale nemožnost modifikace struktury PID algoritmu a ztráta možnosti názorné ilustrace jeho realizace.

Obr. 9-50: Realizace regulačního obvodu v Simulinku – obrazový

přenos, použití bloku PID Controller

Na obr. 9-52 je implementován odlišný PID algoritmus. Jedná se o tzv. ideální paralelní tvar s interakcí konstant (také standardní či ISA tvar), který je podle [13] v praxi používán

Page 181: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Regulační obvod se spojitým PID regulátorem

181

v cca 31 % průmyslových PID regulátorů, zatímco PID algoritmus realizovaný na obr. 9-48 až obr. 9-50 je používán v cca 22 % regulátorů. Konstanty regulátoru na obr. 9-52 byly přepočteny podle vztahů, které lze odvodit porovnáním obou tvarů rovnic PID regulátoru, tedy r0 = 4,8, Ti = r0 / r1 = 4,8 / 2,4 = 2 s a Td = r2 / r0 = 1,2 / 4,8 = 0,25 s.

Obr. 9-51: Zadání konstant PID regulátoru

Obr. 9-52: Realizace regulačního obvodu v Simulinku – obrazový

přenos, jiná implementace PID algoritmu

Provedeme-li simulaci chování regulačních obvodů na obr. 9-48 až 9-50 a obr. 9-52, obdržíme naprosto identické průběhy, viz obr. 9-53. Všechny použité metody modelování, ať již samotné dynamické soustavy nebo PID regulátoru, jsou navzájem ekvivalentní. Seřízení regulátoru není samozřejmě optimální, regulační pochod je relativně kmitavý. Jednoduchou změnou parametrů v blocích w, d1 a d2 můžeme sledovat vliv vstupujících poruch na průběh regulace. Odezva systému při poruše na jeho výstupu (d2 = η(t)) je na obr. 9-54.

Dalším možným tvarem rovnic PID regulátoru je tzv. sériový (také klasický) tvar, jehož obrazové vyjádření je

Page 182: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

182

)()1(11)( dsis

0s sEsTsT

rsU +⎟⎟⎠

⎞⎜⎜⎝

⎛+=

Obr. 9-53: Průběh regulované veličiny a akční veličiny regulátoru při w = η (t) a d1 = d2 = 0

Obr. 9-54: Průběh regulované veličiny a akční veličiny regulátoru při w = d1 = 0 a d2 = η (t)

Tento tvar se v průmyslových PID používá nejčastěji, cca ve 47 % regulátorů. Konstanty regulátoru lze samozřejmě opět přepočítat na konstanty ideálního paralelního tvaru. Vztahy pro přepočet odvodíme vzájemným porovnáním obou tvarů rovnic regulátoru

sTrsT

rTTrrsT

sTrsTr

sTrrsT

sTr ds0s

is

0s

is

ds0s0sds

is0sd0

i

00d

i0 )1(1111 +++=+⎟⎟

⎞⎜⎜⎝

⎛+=++=⎟⎟

⎞⎜⎜⎝

⎛++

Porovnáme-li nyní členy s odpovídající mocninou operátoru s, pak

⎟⎟⎠

⎞⎜⎜⎝

⎛+=

is

ds0s0 1

TTrr

is

s0

i

0

Tr

Tr= ⇒ dsis

0s

is

is

ds0s

0s

is0i 1 TT

rT

TTr

rTrT +=⎟⎟

⎞⎜⎜⎝

⎛+==

Page 183: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Regulační obvod se spojitým PID regulátorem

183

dss0d0 TrTr = ⇒ dsis

dsis

is

ds0s

ds0s

0

ds0sd

1TT

TT

TTr

TrrTrT

+=

⎟⎟⎠

⎞⎜⎜⎝

⎛+

==

Převod parametrů regulátoru v sériovém tvaru r0s, Tis, Tds na parametry regulátoru ve tvaru paralelním r0, Ti, Td je tedy triviální. Opačný přepočet ovšem není vždy možný, neboť sériový tvar odpovídá regulátoru s interakcí a určité kombinace hodnot Ti, Td neumožňuje nastavit vůbec. Ze samotného faktu, že sériový tvar představoval po desetiletí jediný prakticky používaný typ PID algoritmu, je ale zároveň zřejmé, že tyto kombinace nebývají zapotřebí příliš často.

Obr. 9-55: Průmyslové procesní regulátory KS 90-1 a KS 92-1 firmy PMA

Obr. 9-56: K pásmu proporcionality (w = 55 %,

pp = 40 %, r0 = 2,5)

pp

0 20 40 60 80 100 y [%]

u [%]

100

80

60

40

20

Page 184: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

184

Většina v současnosti vyráběných procesních regulátoru používá PID algoritmus založený na sériovém tvaru rovnic. Např. regulátory KS 90-1 a KS 92-1 (obr. 9-55) německé firmy PMA mají také implementován sériový tvar rovnic, pouze s tím rozdílem, že na místo proporcionálního zesílení r0 (proportional gain) je velikost proporcionální složky regulátoru udávána tzv. pásmem proporcionality (proportional band).

V přístrojové technice mají všechny veličiny určitý rozsah, proto je tedy obvyklé je vyjadřovat jejich poměrnou hodnotou v rámci tohoto rozsahu. Budeme-li např. podle [19] uvažovat pouze proporcionální P regulátor, můžeme rovnici regulátoru zapsat obecně ve tvaru

u – u0 = r0 (w – y) = r0 e

kde u0 představuje referenční hodnotu akční veličiny u. Tento vztah lze graficky znázornit podle obr. 9-56. Skutečně proporcionální funkci má uvedený regulátor jen v části svého rozsahu, v tzv. pásmu proporcionality, které se obvykle označuje δ či pp. Při poměrném vyjádření veličin w, u a y je zřejmě splněn následující vztah mezi proporcionálním zesílením r0 a pásmem proporcionality

1001

0rpp ==δ [%]

Přestavováním žádané hodnoty dochází k posunu celé charakteristiky. Na obr. 9-56 je uvedena charakteristika regulátoru pro w = 55 %.

Obr. 9-57: Realizace sériového tvaru rovnic PID regulátoru

Realizace PID regulátoru v sériové struktuře v prostředí Simulink je na obr. 9-57. Regulovaná soustava je opět modelována pomocí obrazového přenosu, regulátor je sestaven ze základních bloků Simulinku. Navrženy byly tyto konstanty regulátoru: r0s = 1,2, Tis = 0,8 s a Tds = 0,2 s. Pásmo proporcionality regulátoru je pp = 100 / r0s = 100 / 1,2 ≈ 83 %. Přepočet na koeficienty regulátoru v paralelní struktuře (ideální paralelní tvar) je pak podle výše uvedených vztahů následující

5,18,02,012,11

is

ds0s0 =⎟

⎞⎜⎝

⎛ +=⎟⎟⎠

⎞⎜⎜⎝

⎛+=

TTrr

Page 185: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse

185

12,08,0dsisi =+=+= TTT s

16,02,08,02,08,0

dsis

dsisd =

+⋅

=+

=TT

TTT s

Výsledky simulace chování uzavřeného regulačního obvodu s regulátorem v sériové struktuře (obr. 9-57) při buzení jednotkovým skokem w(t) = η(t) jsou na obr. 9-58.

Obr. 9-58: Průběh regulované veličiny a akční veličiny regulátoru PID v sériové struktuře

při w = η (t) a d1 = d2 = 0

9.7 Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse

Derivační složka PID regulátoru reaguje na rychlé změny žádané hodnoty regulované veličiny (v běžném provozu se často vyskytují i náhlé skokové změny požadavku) ostrými derivačními špičkami akční veličiny, jež mají negativní vliv na chování celého regulačního obvodu. Tomuto negativnímu jevu jednoduše zabrání velmi často používaná modifikace algoritmu regulátoru. Derivační složka regulátoru je odvozena pouze od změn regulované veličiny y(t) a negativní vliv rychlých změn žádané hodnoty w(t) je tak eliminován. Diferenciální rovnice upraveného PID regulátoru je pak ve tvaru

ttyrertertu

t

d)(dd)()()(

0210 ∫ −+= ττ

nebo případně ve tvaru

]d

)(dd)(1)([)(0

di

0 ttyTe

Ttertu

t

∫ −+= ττ

Budeme uvažovat regulační obvod na obr. 9-59 s poruchou na vstupu do regulovaného systému du(t), která je někdy označována jako porucha na akční veličině u(t).

Page 186: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

186

Obr. 9-59: Regulační obvod s poruchou na vstupu systému

Simulační model regulačního obvodu složeného ze systému třetího řádu popsaného obrazovým přenosem

61166)( 23S +++

=sss

sG

a modifikovaného regulátoru typu PID s aproximovanou derivací je na obr. 9-60. Model systému je realizován pomocí bloku Transfer Fcn. Nejprve budeme uvažovat, že na systém nepůsobí porucha, tj. du(t) = 0. Koeficienty regulátoru převezmeme z příkladu 9.6.

Obr. 9-60: Regulační obvod s modifikovaným PID regulátorem

Na obr. 9-61 jsou uvedeny průběhy odezvy systému (při w(t) = η(t)) a akční veličiny klasického PID regulátoru s aproximovanou derivací (je podrobněji popsán v kapitole 9.5). Na průběhu akční veličiny je patrná ostrá špička způsobená derivační složkou regulátoru. Na obr. 9-62 jsou pak průběhy získané při použití modifikovaného regulátoru. Odezva systému v tomto případě vykazuje co do velikosti menší kmity, ustálení systému je celkově pomalejší. Akční veličina regulátoru již nevykazuje zmiňovanou špičku, neboť derivační složka regulátoru je v tomto případě odvozena pouze od změn regulované veličiny.

Další variantou regulátoru, kterou budeme realizovat je PID s vážením žádané hodnoty. Struktura tohoto regulátoru je již poněkud složitější a umožňuje odvozovat proporcionální a derivační složku od regulované veličiny (nikoliv od regulační odchylky jako u klasického PID regulátoru). Akční veličina regulátoru je vytvářena následujícím způsobem

GS(s)du(t)

e(t)

y(t)

u(t) w(t)GR(s)

Page 187: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse

187

]))()((ddd)(1)()([)(

0dd

ip0 ∫ −++−=

t

tytwFt

TeT

tytwFrtu ττ

Obr. 9-61: Průběh regulované veličiny a akční veličiny klasického PID regulátoru

s aproximovanou derivací při w = η (t) a du = 0

Obr. 9-62: Průběh regulované veličiny a akční veličiny modifikovaného PID regulátoru

s aproximovanou derivací při w = η (t) a du = 0

Je-li regulátor nastaven především s ohledem na dobré vyregulování poruchy a odezva na skokovou změnu žádané hodnoty je proto příliš kmitavá, uvedená modifikace způsobí zpomalení náběhu na žádanou hodnotu a zmenšení překmitů. Simulační model regulačního obvodu s modifikovaným regulátorem je na obr. 9-63. Koeficienty (váhy) Fp a Fd bývají běžně voleny rovny buď jedné či nule, obecně lze ovšem uvažovat celý interval ⟨0; 1⟩.

Zajímavé jistě bude porovnání klasického a modifikovaného PID regulátoru. Přenos regulovaného systému může být např.

)1()1()1(1)(

321S +++

=sTsTsT

sG

s časovými konstantami T1 = 2 s, T2 = 0,8 s a T3 = 0,2 s. Přenos systému můžeme převést do obvyklé podoby s polynomy v čitateli a ve jmenovateli a poté modelovat standardním způsobem pomocí bloku Transfer Function.

Page 188: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

188

Obr. 9-63: Regulační obvod s PID regulátorem s vážením žádané hodnoty

Dále je nutné definovat také hodnoty konstant PID regulátoru. Na základě průběhu odezvy uzavřeného regulačního obvodu můžeme provést např. ruční seřízení regulátoru či využít některou z mnoha metod. V našem případě byly konstanty regulátoru navrženy na základě metody kritického zesílení Zieglera-Nicholse. Pro tyto účely byl vytvořen speciální skript, který je na obr. 9-66.

Pravidla Zieglera a Nicholse jsou např. v [7] uváděna ve dvou variantách. Obě tyto varianty vycházejí z velmi zjednodušeného popisu regulovaného systému. V prvním případě se vychází z tzv. kritické frekvence systému (tj. frekvence, při níž je fázové zpoždění rovné 180°) resp. z odpovídající kritické periody Tk a ze zesílení systému při této frekvenci.

K nalezení obou parametrů se používá jednoduchý experiment v uzavřeném regulačním obvodu s P regulátorem (vyřadíme složky I a D), jehož zesílení se postupně zvyšuje až do okamžiku, kdy se obvod dostane na mez stability a objeví se netlumené kmity. Frekvence těchto kmitů je rovna kritické frekvenci a zesílení P regulátoru (tzv. kritické zesílení rk) je převrácenou hodnotou zesílení systému. Na základě výsledků tohoto experimentu jsou pak podle pravidel uvedených v tab. 9-1 určeny hodnoty parametrů regulátoru.

Tab. 9-1: Pravidla Zieglera-Nicholse, metoda ustálených kmitů

Regulátor r0 Ti Td P 0,5 rk – – PI 0,45 rk 0,85 Tk –

PID 0,6 rk 0,5 Tk 0,125 Tk

Tab. 9-2: Pravidla Zieglera-Nicholse, metoda ustálených kmitů

Regulátor r0 Ti Td P 1 / (K Θ) – – PI 0,9 / (K Θ) 3 Tu –

PID 1,2 / (K Θ) 2 Tu 0,5 Tu

Page 189: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse

189

Uvedení systému na mez stability může být ovšem mnohdy z technologických nebo provozních důvodů nepřípustné. Pak lze použít druhou metodu založenou na vyhodnocení přechodové charakteristiky regulovaného systému v okolí pracovního bodu. Na základě doby průtahu Tu, doby náběhu Tn (resp. normalizovaného dopravního zpoždění Θ = Tu / Tn ) a statického zesílení K (viz obr. 9-64) pak lze nastavit regulátor podle pravidel uvedených v tab. 9-2.

Obr. 9-64: Základní parametry přechodové odezvy statického

nekmitavého systému

Ve skriptu je nejprve přenos systému převeden do podoby s polynomy v čitateli a ve jmenovateli (je využit příkaz conv); přenos systému je pak vytvořen příkazem tf. Dále je vypočtena přechodová a váhová (impulsní) odezva tohoto systému, viz obr. 9-65.

Obr. 9-65: K nalezení doby průtahu a doby náběhu systému

Pro seřízení regulátoru byla použita druhá varianta pravidel Zieglera-Nicholse – metoda přechodové odezvy. Chceme-li určit z průběhu přechodové funkce dobu průtahu Tu a dobu náběhu Td, potřebujeme zkonstruovat tečnu v inflexním bodě funkce (obr. 9-65). Inflexní bod odpovídá maximu derivace přechodové funkce h(t), tj. maximu funkce váhové g(t). K jeho nalezení lze použít příkaz impulse, který váhovou charakteristiku systému

Tu Tn

ti

yi

y(∞)

t [s]

y(t)

Θ

1

0

y

Page 190: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

190

vypočte, případně příkaz diff k numerickému výpočtu derivace funkce h(t). Konstrukce tečny je již jednoduchá. Dobu průtahu resp. náběhu lze pak určit s využitím příkazu find.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% PID regulator s vazenim zadane hodnoty, metoda Zieglera- Nicholse %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all, close all, clc, format compact %system G(s)=K/[(2s+1)*(0.8s+1)*(0.2s+1)] K=1; B=K; A=conv(conv([2 1],[0.8 1]),[0.2 1]); Gs=tf(B,A); Tm=15; n=1e4; t=linspace(0,Tm,n); y=step(Gs,t); %vypocet jednotlivych bodu h(t) dy=impulse(Gs,t); %vypocet g(t), tj. derivace funkce h(t) %dt=Tm/(n-1); %vypocet kroku %dy=diff(y)/dt; dy=dy'; dy=[dy dy(end)]; %alternativni vypocet derivace [k i]=max(dy); %nalezeni maxima na prubehu derivace a jeho index ti=t(i); %vyber z vektoru hodnot casu t tecna=k*(t-ti)+y(i); %vypocet tecny - rovnice primky kx+q %(prochazi bodem s indexem i, tj. [ti,yi]) figure, plot(t,dy,'LineWidth',2), grid on figure, plot(t,y,t,tecna,'LineWidth',2), grid on, axis([0 Tm -0.2 1.2]) I=find(tecna>=0); Tu=t(I(1)), clear I %doba prutahu I=find(tecna>=K); Tn=t(I(1))-Tu, clear I %doba nabehu %kriticke hodnoty theta=Tu/Tn; %rk=sqrt(((pi*Tn)/(2*Tu))^2+1)/K; Tk=4*Tu; %model v Simulinku Tmax=ceil(Tm/10)*20; w=1; tdu=Tmax/2; du=1; %serizeni PID podle metody Z- N %r0=0.6*rk; Ti=0.5*Tk; Td=0.125*Tk; r0=1/theta; Ti=2*Tu; Td=0.5*Tu; Fp=1; Fd=1; sim modifikovany_PID_2; y1=v.signals(1).values(:,1); w1=v.signals(1).values(:,2); u1=v.signals(2).values; t1=t; figure, plot(t1,y1,'k--','LineWidth',2), hold on xlabel('t [s]'), ylabel('y(t)') %modifikace Z- N (40x snizen koeficient u r0 - bez prekmitu) %r0=0.015*rk; Ti=0.5*Tk; Td=0.33*Tk; r0=1/theta/40; Ti=2*Tu; Td=0.5*Tu; sim modifikovany_PID_2; y2=v.signals(1).values(:,1); w2=v.signals(1).values(:,2); u2=v.signals(2).values; t2=t; plot(t2,y2,'b','LineWidth',2), grid on xlabel('t [s]'), ylabel('y(t)') legend('serizeni podle Z-N','aperiodicky prubeh',4) %serizeni PID podle metody Z- N, vazeni zadane hodnoty %r0=0.6*rk; Ti=0.5*Tk; Td=0.125*Tk; r0=1/theta; Ti=2*Tu; Td=0.5*Tu; Fp=0; Fd=0; sim modifikovany_PID_2; y3=v.signals(1).values(:,1); w3=v.signals(1).values(:,2); u3=v.signals(2).values; t3=t; figure; plot(t1,y1,'k--',t3,y3,'b','LineWidth',2), grid on xlabel('t [s]'), ylabel('y(t)') legend('serizeni podle Z-N','modifikovany PID',4) figure; plot(t1,u1,'r--',t3,u3,'g','LineWidth',2), grid on xlabel('t [s]'), ylabel('u(t)') legend('serizeni podle Z-N','modifikovany PID',4)

Obr. 9-66: Skript pro porovnání různých variant návrhu PID regulátoru (modifikovany_PID_ZN.m)

Page 191: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse

191

Obr. 9-67: Odezva při seřízení regulátoru metodou Zieglera-Nicholse

a její porovnání s aperiodickým průběhem

Ve skriptu jsou dále z nalezených hodnot Tu a Tn resp. ze zpoždění Θ = Tu / Tn vypočteny podle pravidel Zieglera-Nicholse optimální hodnoty koeficientů regulátoru. Konkrétně je použita metoda přechodové odezvy (tab. 9-1), alternativně je uvedeno také řešení pomocí metody ustálených kmitů (tab. 9-2). Průběh obdržené odezvy při w(t) = η(t) a poruše du(t) vstupující v čase t = 20 s je zobrazen na obr. 9-67. Pro porovnání je uveden také aperiodický průběh odezvy dosažený snížením velikosti proporcionálního zesílení regulátoru.

Obr. 9-68: Odezva při použití PID regulátoru s vážením žádané hodnoty

Page 192: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

192

Obr. 9-69: Průběh akční veličiny při použití PID regulátoru

s vážením žádané hodnoty

Pravidla pro nalezení vhodných konstant regulátoru jsou u metody Zieglera-Nicholse optimalizována z hlediska dobrého potlačení poruch a pro sledování skokových změn žádané hodnoty jsou nevhodná a prakticky nepoužitelná. V regulátoru s vážením žádané hodnoty zvolíme váhy u proporcionální a derivační složky Fp = Fd = 0 a tím zajistíme jejich odvození od regulované veličiny y(t) (nikoliv od regulační odchylky e(t) jako u integrační složky). Názorné zobrazení obou odezev uzavřeného obvodu v jednom grafu, tedy odezvy při použití klasického PID regulátoru (Fp = Fd = 1) seřízeného metodou Zieglera-Nicholse a regulátoru modifikovaného (Fp = Fd = 0), je na obr. 9-68. Na obr. 9-69 jsou odpovídající průběhy akční veličiny regulátoru v těchto dvou případech. Jak vidíme, tak shora uvedená hypotéza se potvrdila, neboť modifikovaný PID regulátor podstatně lépe vyreguluje změnu žádané hodnoty při zachování dobrého potlačení poruchy.

9.8 Oblast stability regulačního obvodu Oblastí stability regulačního obvodu (obr. 9-70) rozumíme oblast vymezující takové

možné kombinace stavitelných parametrů regulátoru GR(s), aby uzavřený regulační obvod byl s těmito kombinacemi parametrů stabilní. Stabilita je základní vlastností, kterou od regulačního obvodu očekáváme. U jednodušších regulačních obvodů lze oblast stability vyšetřit analytickými prostředky.

Obr. 9-70: Blokové schéma regulačního obvodu

GS(s)

e(t)

y(t)u(t)

w(t)GR(s)

Page 193: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Oblast stability regulačního obvodu

193

Vlastnosti regulátoru typu PID jsou popsány diferenciální rovnicí

tterertertu

t

d)(dd)()()(

0210 ∫ ++= ττ

Přenos regulátoru je

srsrrsG 21

0R )( ++=

Vyšetřeme nyní a simulačně ověřme oblast stability jednoduchého regulačního obvodu s PI regulátorem a regulovanou soustavou popsanou diferenciální rovnicí

)(6)(6)(11)(6)( tutytytyty =+′+′′+′′′

resp. přenosem

61166)( 23S +++

=sss

sG

Obrazový přenos PI regulátoru je

srsr

srrsG 101

0R )( +=+=

Přenos uzavřeného regulačního obvodu na obr. 9-70, např. tzv. přenos řízení Gyw(s) je

)()(1)()(

)()()(

SR

SRyw sGsG

sGsGsWsYsG

+==

Dosadíme-li za přenos regulátoru GR(s) a soustavy GS(s), pak

10234

10

2310

2310

uw 6)1(611666

611661

61166

)(rrssss

rsr

ssssrsr

ssssrsr

sG+++++

+==

++++

+

++++

= L

Kořeny charakteristické rovnice uzavřeného regulačního obvodu, kterou získáme tak, že charakteristický polynom ve jmenovateli přenosu položíme roven nule, rozhodují o jeho stabilitě. Charakteristická rovnice uvažovaného obvodu je

06)1(6116 10234 =+++++ rrssss

Jsou-li všechny její kořeny v levé polorovině Gaussovy roviny (buď reálné záporné nebo komplexní se zápornou reálnou částí), regulační obvod je stabilní, jestliže alespoň jeden kořen tuto podmínku nesplňuje, obvod stabilní není.

Protože se jedná o charakteristickou rovnici uzavřené regulační smyčky, lze ji získat i z libovolné jiné dynamické závislosti, např. z přenosů

)()(1)(

)()()(

SR

Ryw sGsG

sGsWsUsG

+== ,

)()(11

)()()(

SRew sGsGsW

sEsG+

==

Page 194: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

194

nebo také podle vztahu

0)()(1)(1 SRo =+=+ sGsGsG

kde Go je přenos otevřeného regulačního obvodu, který lze vyjádřit

)()()()()( SRo sGsG

sEsYsG ==

Změny parametrů regulátoru r0 a r1 ovlivňují nejen koeficienty charakteristické rovnice, ale samozřejmě i její kořeny. Mohou tedy nastat situace, že uzavřený regulační obvod bude vlivem seřízení regulátoru stabilní nebo i nestabilní. Vyšetření kořenů rovnice analytickými prostředky v případě vyšších řádů není možné. Jsme potom nuceni použít některé z kritérií stability. Často používané je kritérium Hurwitzovo, které patří mezi algebraická kritéria stability. Tato kritéria vycházejí z charakteristické rovnice uzavřeného regulačního obvodu a nelze je tedy použít při vyšetřování stability obvodů s dopravním zpožděním.

Nutnou podmínkou pro stabilitu obvodu je, aby všechny koeficienty charakteristické rovnice měly stejná znaménka (zde kladná)

1, 6, 11 > 0 ; 6 (1 + r0) > 0 ⇒ r0 > –1 ; 6 r1 > 0 ⇒ r1 > 0

Postačující podmínkou je, aby všechny Hurwitzovy subdeterminanty Hi (hlavní rohové minory) Hurwitzovy matice

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

−−

−−

−−−

02

2

31

42

531

0000000000000

aaaaaaaaaaaa

nn

nn

nnn

nnn

H

byly také kladné. Rozměr Hurwitzovy matice je dán stupněm charakteristického polynomu.V našem případě nabývá Hurwitzova matice tvaru

⎥⎥⎥⎥

⎢⎢⎢⎢

+

+

=

1

0

1

0

611100)1(6600611100)1(66

rr

rr

H

a pro její jednotlivé subdeterminanty pak platí

061 >=H

0)10(6)1(61116111

)1(66det 00

02 >+=+⋅−⋅=⎥

⎤⎢⎣

⎡ += rr

rH ⇒ 100 <r

102

0102

0

0010

0

1

0

3

61090)6109(36

)1(61)1(6666)1(6116)1(660

61110)1(66

det

rrrrrr

rrrrr

rr

>++−⇒>−++−=

=+⋅⋅+−⋅⋅−+⋅⋅=⎥⎥⎥

⎢⎢⎢

+

+=H

Page 195: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Oblast stability regulačního obvodu

195

06 314 >= HH r

Soustava výše uvedených podtržených nerovností definuje podmínky pro stabilitu uzavřeného regulačního obvodu (oblast stability). Povšimněme si, že jsme určili podmínky stability, aniž bychom znali kořeny charakteristické rovnice. Potřebu analýzy jejích kořenů jsme tak vhodně obešli použitím kritéria stability. Grafické vyjádření oblasti stability je na obr. 9-71.

Obr. 9-71: Oblast stability regulačního obvodu

Oblast stability téhož obvodu s regulátorem typu P by byla vyjádřena zřejmě úsečkou 1 < r0 < 10 (situace pro r1 = 0), pro regulátor typu I úsečka 0 < r1 < 1,67 (řez oblastí pro r0 = 0). Vyšetřená oblast na obr. 9-71 je řezem složitější 3D oblasti stability regulátoru typu PID při nulové derivační složce.

Správnost teoreticky vyšetřené oblasti stability můžeme ověřit simulací (schéma je na obr. 9-72) a zároveň také sledovat charakter možných průběhů stabilních i nestabilních regulačních pochodů.

Obr. 9-72: Uzavřený regulační obvod s PI regulátorem

Průběh regulačního pochodu při parametrech r0 = 2 a r1 = 1,4 je na obr. 9.73. Je zřejmé, že tyto hodnoty koeficientů regulátoru byly zvoleny tak, aby se nacházely ve stabilní oblasti na obr. 9-71. Nulová hodnota Hurwitzova subdeterminantu H3 = 0 (všude na parabolické části hranice oblasti) indikuje existenci ryze imaginárních kořenů charakteristické rovnice (ostatní kořeny jsou v levé polorovině). Situace při r0 = 4,5 a r1 = 5,04 (vrchol paraboly) je na obr. 9-74. Regulační obvod je na mezi stability, dochází k netlumeným kmitům.

r0 0

r1

5 2,5 10 7,5–1

1,67

–2,5

5,04 2,5

5

4,5

Page 196: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

196

Povšimněme si, že oblast stability zasahuje svou levou částí do záporných hodnot r0. To ovšem znamená slabou kladnou zpětnou vazbu proporcionální složky. Dramaticky se tato skutečnost projeví je-li r1 = 0, takovéto seřízení ale nelze doporučit. Důvodem je zejména fakt, že reálné průmyslové regulátory záporné hodnoty koeficientů ani neumožňují nastavit.

Obr. 9-73: Průběh regulačního pochodu při r0 = 2 a r1 = 1,4

Obr. 9-74: Průběh regulačního pochodu při r0 = 4,5 a r1 = 5,04

Page 197: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dvoupolohová a třípolohová regulace

197

9.9 Dvoupolohová a třípolohová regulace S regulačními obvody s nespojitým regulátorem ve zpětné vazbě jsme se zcela jistě

již mnohokrát setkali. Používají se velmi často – všude tam, kde neklademe příliš vysoké nároky na kvalitu regulačních pochodů. Výhodou je jejich jednoduchost, spolehlivost a zpravidla i nízká cena. Setkáváme se s nimi v řadě případů u domácích spotřebičů, např. u žehliček, ale i v průmyslových aplikacích. Schéma regulačního obvodu s nespojitým regulátorem je na obr. 9-75.

Obr. 9-75: Blokové schéma regulačního obvodu

s nespojitým regulátorem

Výstupní veličina ústředního členu regulátoru (akční veličina u) nabývá obvykle jen dvou či tří hodnot – zapnuto/vypnuto, přidat/ubrat/zastavit. Nejjednodušší typy nespojitých regulátorů bez vnitřní zpětné vazby mají jen statický přepínací charakter. Akční veličina u(t) je odvozena od hodnoty regulační odchylky e(t) podle zvolené přepínací charakteristiky regulátoru. Nejčastější situace jsou na obr. 9-76 a 9-77.

Obr. 9-76: Přepínací charakteristiky dvoupolohového regulátoru a) nesymetrické b) symetrické s hysterezí h

Obr. 9-77: Symetrické přepínací charakteristiky třípolohového regulátoru

s hysterezí h a s pásmem necitlivosti n

GS(s)

e(t)

y(t)u(t)

w(t)

u1 u a)

0 eu2

h

u1

u

0 e

– u1

b)

n

u1

u

0 e

h

– u1

Page 198: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

198

Zavedení hystereze h do přepínací charakteristiky regulátoru zamezuje extrémně rychlému přepínání akční veličiny u mezi jejími krajními hodnotami (tím i namáhání a opotřebení regulátoru a akčního členu) v případě regulované soustavy 1. řádu nebo soustavy s malými časovými konstantami. Zlepšení regulačního pochodu je na úkor přesnosti regulace, je nutné proto při volbě h vždy volit vhodný kompromis. Maximální hodnoty hystereze, které lze nastavit na průmyslově vyráběných regulátorech se pohybují řádově v desetinách až jednotkách procent rozsahu regulované veličiny (na uvedených obrázcích je tento parametr záměrně nadsazen).

V případě, že regulátor může aktivně působit na regulovanou veličinu v obou směrech, např. spínat běh motoru servomechanizmu v jednom či druhém směru, je vhodné zavedení pásma necitlivosti n, které nám umožní zastavení motoru jestliže | e | < n / 2. V opačném případě by musel motor stále běžet buď jedním nebo druhým směrem, docházelo by tak k nežádoucímu kmitání regulačního pochodu a neúměrnému zatěžování akčního členu i regulátoru. I v tomto případě je však nutné hledat vhodný kompromis mezi průběhem regulace a její kvalitou.

Obr. 9-78: Porovnání regulačních pochodů s dvoupolohovým

a třípolohovým regulátorem

Naším úkolem bude simulovat regulační pochody s různými typy nespojitých regulátorů, s uvažováním jejich různých parametrů a s regulovanými soustavami s různou dynamikou. Zaměříme se na vliv parametrů regulátoru a na přesnost a kvalitu regulace. Jednou z možností realizace modelu je simulační schéma na obr. 9-78, které je sestaveno tak, abychom mohli sledovat a srovnávat současně několik různých regulačních pochodů.

První dva simulované případy (ve schématu nahoře) představují dva regulační obvody s různou dynamikou soustav. V druhém případě (ve schématu dole) je porovnáván pochod

Page 199: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dvoupolohová a třípolohová regulace

199

s dvoupolohovým a třípolohovým regulátorem. Regulovaná soustava je v tomto případě astatická (řád astatismu je 1). Přenosy soustav jsou

5S1 )1(2)(+

=s

sG , 12

2)( 2S2 ++=

sssG ,

sssG

22)( 2S3 +

=

Je zřejmé, že regulované soustavy se navzájem značně liší svojí dynamikou. Odpovídající přechodové charakteristiky všech tří systémů jsou na obr. 9-79.

Obr. 9-79: Přechodové charakteristiky regulovaných soustav

Obr. 9-80: Zadání parametrů bloku Relay

Dvoupolohový regulátor v Simulinku vytvoříme pomocí bloku Relay. V bloku zadáme hodnoty pro přepínání akční veličiny (Output when on a Output when off) a velikost hystereze h (resp. h / 2, Switch on point a Switch off point), viz obr. 9-80. Třípolohový regulátor není v Simulinku přímo k dispozici – musíme jej vytvořit pomocí dvou bloků Relay (obr. 9-81). Nový blok můžeme zahrnout do subsystému a pomocí maskování zajistit, aby se při jeho vybrání otevřelo okno, ve kterém lze přímo zadat příslušné parametry. Postup při maskování subsystému je podrobně vysvětlen v [8]. Jakmile je

Page 200: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

200

subsystém zamaskován, není již možný obvyklý přístup k jeho vnitřnímu schématu. Úprava takto zamaskovaného systému je ale možná, např. volbou z plovoucího menu Look Under Mask případně pomocí kombinace kláves Ctrl + U. Ikonu bloku lze také doplnit např. o přepínací charakteristiky regulátoru (podobně jako u bloku Relay).

Obr. 9-81: Okno parametrů a vnitřní schéma bloku Tripolohovy regulator

Obr. 9-82: Schéma pro zobrazení přepínacích (statických)

charakteristik třípolohového regulátoru

Obr. 9-83: Přepínací charakteristiky třípolohového regulátoru

Dynamika regulované soustavy má samozřejmě vliv na průběh regulačního pochodu. Výsledky simulace regulačního pochodu při použití dvoupolohového regulátoru pro soustavy GS1 a GS2 jsou na obr. 9-84.

Page 201: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Dvoupolohová a třípolohová regulace

201

Obr. 9-84: Porovnání regulačních pochodů s dvoupolohovým regulátorem pro soustavy GS1 a GS2

Na obrázku 9-85 jsou pro porovnání uvedeny regulační pochody s dvoupolohovým a třípolohovým regulátorem. Regulovaná soustava je v obou případech stejná (výše byla označena jako GS3) a je astatická.

Zobrazení výsledků je realizováno pomocí speciálního skriptu na obr. 9-86. Ukládání jednotlivých veličin, v tomto případě u(t) a y(t) je prováděno v blocích zobrazovačů (Scope). Data jsou ukládána do struktury. Princip jejich následného zpracování a zobrazení v grafech je zřejmý přímo z uvedeného skriptu.

Uvedený model regulačního obvodu s nespojitými regulátory umožňuje ověřovat vliv i jiných typů regulovaných soustav. Modifikovat můžeme jejich řád, statické zesílení, časové konstanty a lze uvažovat i systémy s dopravním zpožděním. Dopravní zpoždění modelujeme pomocí bloku Transport Delay, který zařadíme např. za blok soustavy. Vždy sledujeme přesnost regulace a frekvenci přepínání akční veličiny.

Obr. 9-85: Porovnání regulačních pochodů s dvoupolohovým regulátorem a třípolohovým

regulátorem pro soustavu GS3

Sledovat můžeme i vliv snižující se hystereze h, např. v případě regulované soustavy 1. řádu. Hodnota hystereze v uvedeném modelu regulátoru musí být h ≠ 0. Na modelu lze demonstrovat důvody uměle zaváděné hystereze.

Page 202: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

202

Obr. 9-86: Skript pro vykreslení výsledků simulace

Za jistých okolností může pásmo necitlivosti n třípolohového regulátoru způsobit ustálení regulačního pochodu. Na modelu lze ukázat, v jakých případech k tomuto jevu dochází a kdy tomu tak není. Zajímavé je také sledování vlivu pásma necitlivosti na ustálenou hodnotu regulační odchylky e(∞), viz obr. 9-85

9.10 Číslicové řízení, regulátor PSD V současné době překotného rozvoje výpočetní techniky a informačních technologií

se stále více prosazují v regulační technice specializované počítače a celé počítačové systémy. Plní převážně funkci regulátoru, ale současně zajišťují mnohdy i další funkce – ochranné, signalizační, vizualizační apod. Výhodou těchto řešení je relativně nízká cena, spolehlivost, možnost propojení do průmyslových počítačových sítí, komunikace prakticky bez zkreslení informace i na velké vzdálenosti, téměř neomezená složitost řídicích algoritmů a možnost velmi rychlé změny jejich parametrů.

Obr. 9-87: Blokové schéma regulačního obvodu s řídicím počítačem

Proces

e(k)

y(t)u(t)

w(k)

A/Č

Algoritmusřízení

Č/A y(k)

u(k)

Řídicí počítač

Page 203: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Číslicové řízení, regulátor PSD

203

Číslicový počítač pracuje s informací ve formě čísel, kterou mu poskytuje analogově- -číslicový převodník A/Č (A/D), viz obr. 9-87, který snímá momentální hodnotu spojitého průběhu regulované veličiny y(t). Pracuje na stejném principu jako např. digitální voltmetr, který převádí spojitý průběh měřeného napětí do číselného tvaru. Snímání probíhá obvykle v pravidelných časových okamžicích s tzv. periodou vzorkování T. Řídicí počítač dostává informaci o spojitém průběhu y(t) ve formě číselné posloupnosti y(k). Vhodnou hodnotu periody vzorkování získáme jednoduše tak, že dobu praktického ustálení přechodové charakteristiky regulované soustavy (regulovaného technologického procesu) rozdělíme na určitý počet dílků. Pokud je však regulovaná soustava např. kmitavá (tj. má vlastní přirozené frekvence) nebo je regulovaná veličina y(t) zatížena nežádoucím šumem, volíme frekvenci vzorkování alespoň dvojnásobnou než je nejvyšší frekvence, kterou chceme vzorkováním zachytit (tzv. Shannonův či Shannon-Kotělnikovův teorém).

Obr. 9-88: Možné průběhy signálů v regulačním obvodu

Numerická hodnota regulované veličiny y(k) se porovnává s hodnotou řídicí veličiny w(k) (také v numerickém tvaru). Regulační odchylka e(k) je přirozenou mírou nesouladu mezi požadavkem a skutečnou hodnotou y(t) v aktuálním okamžiku a je postupně po krocích ukládána do registru počítače, ve kterém je vždy několik starších hodnot e(k). Algoritmus řízení je realizován vhodným programem, který z aktuální a minulých hodnot e(k) vypočítává aktuální hodnotu řídicí veličiny u(k). Ta je pomocí číslicově-analogového převodníku Č/A (D/A) převedena na akční veličinu u(t). Vše, se děje opakovaně, v pravidelném taktu daném periodou vzorkování T (někdy též hovoříme o periodě nebo kroku řízení). Z logiky věci vyplývá, že akční veličina u(t) je tzv. schodová (po úsecích konstantní) funkce; mění svoji hodnotu vždy v okamžiku nového výpočtu u(k) a zůstává konstantní až do dalšího okamžiku vzorkování, viz obr. 9-88.

Regulátor PSD (Proporcionálně – Sumačně – Diferenční) je diskrétní (numerickou) variantou spojitého PID regulátoru. Spojitý řídicí algoritmus PID regulátoru

tterertertu

t

d)(dd)()()(

0210 ∫ ++= ττ

je přibližně nahrazen diskrétním výpočtem v k-tém regulačním kroku v čase t = k T.

t [s]

y(t)

y(k) 0 T 2T 3T 4T 5T

t [s]0 T 2T 3T 4T 5T

u(k)

t [s] 0 T 2T3T 4T

5T

u(t)

t [s] 0 T 2T3T 4T

5T

Page 204: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

204

Jestliže

TTkeTker

tter ])1[()(

d)(d

22−−

∑∫−

=

=−++++≈1

011

01 )(])1[()2()()0(d)(

k

i

t

TieTrTTkeTTeTTeTerer Lττ

pak

TTkeTkerTieTrTkerTku

k

i

])1[()()()()( 2

1

010

−−++= ∑

=

Nevýhodou takovéhoto řídicího algoritmu je nutnost si pamatovat celou historii vývoje regulační odchylky e(i T). Velmi elegantně lze tuto nevýhodu obejít výpočtem tzv. akčního zásahu, změny (diference) akční veličiny u(k T) v aktuálním k-tém regulačním kroku.

Obr. 9-89: K diskrétní náhradě regulátoru

Vypočtěme diferenci

])2[(])1[()(

])2[(2])1[()(

])2[(])1[(1)()(

])1[()(1)()(

])1[()()(

210

2201

20

2

2

010

2

1

010

TkebTkebTkebTrTke

TrrTrTke

TrrTke

TkeTkeT

rTieTrTker

TkeTkeT

rTieTrTker

TkuTkuTku

k

i

k

i

−+−+=

=−+⎥⎦⎤

⎢⎣⎡ −−−+⎥⎦

⎤⎢⎣⎡ +=

=−−−−−−

−−−++=

=−−=∇

∑−

=

=

kde

Trrb 2

00 += , TrrTrb 2

0112

−−= , Trb 2

2 =

Následným přičtením vypočtené diference k minulé hodnotě akční veličiny u [(k – 1)T] získáme její aktuální hodnotu

)()()1[()( kuTkuTkuTku =∇+−=

Takto vytvořený rekurzivní algoritmus potřebuje k výpočtu akční veličiny u(k T) pouze současnou a dvě starší hodnoty regulační odchylky e(k T), e[(k–1)T] a e[(k–2)T]. Výpočet je velmi rychlý, bez nároků na paměť počítače. Známe-li seřízení spojitého

t [s]

e(t)

0

T 2T 3T (k – 1)T k T (k + 1)T

Page 205: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Číslicové řízení, regulátor PSD

205

PID regulátoru, lze velmi snadno nalézt při daném regulačním kroku jeho PSD diskrétní ekvivalent podle uvedených vztahů. Poznamenejme, že existují i jiné metody numerické integrace, než kterou jsme použili výše pro náhradu spojitého integrálu. Zvolíme-li jinou metodu (např. lichoběžníkovou aproximaci), přepočetní vztahy se poněkud modifikují.

Nalezněme nyní číslicovou PS variantu spojitého PI regulátoru regulačního obvodu podle obr. 6.10-4. Uvažujme regulovanou soustavu popsanou přenosem

61166)( 23S +++

=sss

sG

Koeficienty PI regulátoru jsou r0 = 0,9 a r1 = 1.

Obr. 9-90: Blokové schéma regulačního obvodu

Pro volbu periody vzorkování T vycházíme z doby praktického ustálení přechodové charakteristiky regulované soustavy (obr. 9-91, zde ca 8 s), zvolme T = 8 / 80 = 0,1 s. Vzorkovací frekvence ωv = 2π / T = 2π / 0,1 = 20 π ≈ 62,83 rad s–1 ~ 10 Hz.

Obr. 9-91: Přechodová odezva regulované soustavy

Podle Shannonova teorému tímto vzorkováním zachytíme frekvence jen maximálně dvakrát pomalejší, tedy 5 Hz a nižší. Pokud bychom chtěli zachytit frekvence vyšší, musíme volit periodu vzorkování kratší.

Podle výše odvozených vztahů vypočteme koeficienty numerického algoritmu řízení s tím, že v případě regulátoru PI derivační složka chybí, tedy r2 = 0

9,0200 =+=

Trrb ; 8,09,01,012 2

011 −=−⋅=−−=TrrTrb ; 02

2 ==Trb

])1[(8,0)(9,0])2[(])1[()()( 210 TkeTkeTkebTkebTkebTku −−=−+−+=∇

)(])1[()( TkuTkuTku ∇+−=

h(∞)

t [s]

h(t)1

0

h

2 4 6 8 doba praktického ustálení

GS(s)

e(t)

y(t)u(t)

w(t)GR(s)

Page 206: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

206

Obr. 9-92: Regulační obvod s PSD regulátorem

Obr. 9-93: Porovnání průběhů regulované veličiny

Pro výpočet akční veličiny u(k T) v aktuálním čase t = k T je třeba znalost pouze aktuální hodnoty regulační odchylky e(k T) a její hodnoty v předcházejícím kroku e [(k–1)T], kterou si musíme vždy pamatovat. Algoritmus je velmi jednoduchý, odpovídající simulační schéma

Page 207: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Numerická optimalizace parametrů regulátoru

207

v programu Simulink je na obr. 9-92. Je porovnáváno chování spojitého PI regulátoru a diskrétního PS regulátoru.

Simulační blok Unit Delay (1 / z) realizuje diskrétní zpoždění informace o jeden krok, blok Zero-Order Hold plní funkci A/Č a Č/A převodníků (vzorkovač, tvarovač). U obou diskrétních bloků je nutné nastavit periodu vzorkování T = 0,1 s.

Obr. 9-94: Porovnání průběhů akční veličiny

Regulační obvod se spojitým PI i číslicovým PS regulátorem vykazuje velmi podobné chování odpovídající přibližné náhradě spojitého regulátoru, viz obr. 9-93 a 9-94.

9.11 Numerická optimalizace parametrů regulátoru Pokud chceme rozhodnout o tom, zda je něco lepší než něco jiného, musíme mít vždy

jasné měřítko, podle kterého kvalitu posuzujeme. V případě regulačních obvodů může být měřítkem kvality např. čas ustálení regulačního pochodu, rychlost náběhu, velikost překyvu či cena spotřebované energie. Častým požadavkem bývá, aby pochody byly bez kmitavých složek (rozjíždění výtahu, brzdění vagonu metra, apod.). Většinou záleží na charakteru řízeného procesu a na tom, co od regulace očekáváme. Často bývají požadavky protichůdné a je potřeba hledat vhodný kompromis. Důležitou roli mnohdy hraje technický cit a pouhé subjektivní posouzení průběhu expertem.

Velmi rozšířenými, klasickými kritérii v regulační technice jsou integrální kritéria. Nejčastěji posuzují průběh regulační odchylky e(t) a akční veličiny u(t). Regulační odchylka je přirozenou kriteriální veličinou, která vyjadřuje rozdíl mezi požadavkem a skutečnou momentální hodnotou veličiny, kterou regulujeme. Posuzujeme-li kvalitu regulace podle integrálu regulační odchylky v průběhu celého regulačního pochodu, teoreticky od nuly (od okamžiku vstupu předpokládané poruchy) až do nekonečna (je to plocha sevřená průběhem e(t) a časovou osou), mluvíme o tzv. lineární regulační ploše. Pokud je kriterálním zhodnocením integrál z kvadrátu regulační odchylky, jedná se o tzv. kvadratickou regulační plochu. Kvadratická regulační plocha, na rozdíl od lineární, obsahuje explicitně i podmínky stability, její minimalizací zajistíme vždy stabilitu obvodu.

Page 208: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

208

Rozšířením kritéria o integrál akční veličiny u(t) zvažujeme i energii potřebnou k realizaci celého regulačního pochodu. Zvyšováním váhy na akční veličinu regulační pochod zpomalujeme a zklidňujeme.

Vyjádření kvadratického funkcionálu v lineárních případech (Parcevalův integrál) není příliš obtížné a existují i analytické prostředky pro jeho optimalizaci. To je i jeden z důvodů velké obliby a rozšíření integrálních kritérií. Nicméně, ve složitějších případech (vyšší řád, rozvětvená struktura regulačního obvodu) se stává optimalizační úloha, byť matematicky velmi zajímavá, bohužel velmi komplikovanou a pracnou. Alternativou je numerický přístup, tedy iterační způsob optimalizace kritéria. Je to velmi účinný a univerzální nástroj, který umožňuje nalézt optimální řešení i velmi složitých regulačních úloh s prakticky libovolným kritériem. Je použitelný bez větších problémů i v případě nelineárních obvodů, kdy dříve uvedené analytické přístupy zcela selhávají.

Numerická iterační optimalizace je univerzálním nástrojem, který se uplatní nejen při optimalizaci regulačních obvodů, ale v různých variantách i v široké škále technických aplikací. Všude tam, kde je třeba hledat vhodnou kombinaci volitelných parametrů tak, aby výsledné řešení odpovídalo co nejlépe zvolené podmínce. Metoda je založena na opakovaném (iteračním) výpočtu zadané úlohy s různými parametry a výběrem jejich nejlepší kombinace. Jedná se tak ve své podstatě o úlohu hledání extrému funkce více proměnných, pro kterou existuje v oboru numerické matematiky řada účinných metod (simplexová, Newtonova, metody gradientní, atd.) a přirozeně je jimi MATLAB jako standardními procedurami vybaven.

Přestože není iterační princip vázán na konkrétní program nebo programovací jazyk, ukážeme si jeho aplikaci na konkrétním příkladě v prostředí MATLAB – Simulink. Mějme za úkol naleznout optimální kombinaci parametrů číslicového PS regulátoru tak, abychom minimalizovali hodnotu rozšířeného kvadratického kritéria J s penalizací akčních zásahů.

Obr. 9-95: Blokové schéma regulačního obvodu

Regulovaná soustava (obr. 9-95) je definována přenosem

61166)( 23S +++

=sss

sG

Algoritmus vytváření akční veličiny PS regulátorem (byl popsán již v kapitole 9.10) je

])1[()()( 10 TkebTkebTku −+=∇

)(])1[()( TkuTkuTku ∇+−=

e(k)

y(t)u(t)

w(k)

A/Č

RegulátorPS

Č/A y(k)

u(k)

GS(s)

Page 209: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Numerická optimalizace parametrů regulátoru

209

Rozšířené kvadratické kritérium s penalizací akčních zásahů je vyjádřeno vztahem

min),()()( 102

0

2h

→=∇+=∑=

bbJTkuTkeJK

k

κ

kde Kh představuje počet kroků regulačního pochodu, ve kterých kritérium posuzujeme (tzv. kriteriální horizont) a κ váhu zásahů ∇u v kritériu.

V našem případě volíme Kh = 100 (tak, aby během Kh kroků došlo k ustálení regulačního pochodu) a κ = 1 (velké, regulace bude pomalejší). Počáteční nastavení regulátoru na začátku iteračního výpočtu volíme b0 = 4,5 a b1 = –4,215 (ekvivalent seřízení Ziegler- -Nicholsovou metodou kritického zesílení regulátoru, tedy silná zpětná vazba, rychlý kmitavý regulační pochod).

Optimalizační proces je založen na spolupráci tří programů, které musí být umístěny v aktuálním adresáři MATLABu. Model regulačního obvodu (obr. 9-96) opt_PS_m.mdl rozšířený o výpočet kriteriálního funkcionálu J je opakovaně spouštěn v prostředí MATLAB – Simulink s různými parametry regulátoru. Celý proces je řízen hlavním programem opt_PS.m (obr. 9-97), který využívá standardní proceduru MATLABu pro hledání extrému funkcí více proměnných. Optimalizovaná funkce je definována ve skriptu opt_krit.m (obr. 9-98).

Obr. 9-96: Model regulačního obvodu

V bloku To Workspace je nutné nastavit parametr Limit data points to last na 1, v bloku Unit Delay a ve vzorkovači a tvarovači pak nastavit periodu vzorkování T = 0,1 s.

Výsledné regulační pochody, průběhy regulované a akční veličiny, jsou na obr. 9-99. Byly obdrženy po provedení 10 iterací (kroků optimalizace). Pro porovnání jsou vykresleny i průběhy při počátečních hodnotách parametrů regulátoru b0 = 4,5 a b1 = –4,215.

Page 210: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

210

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% opt_PS Optimalizace parametru PS regulatoru %% %% Kvadraticke kriterium s penalizaci akcnich zasahu %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all, close all, clc, format long, format compact disp(' ') disp('*****************************************************************') disp('* Minimalizace kvadratickeho kriteria *') disp('* Kvadraticke kriterium s penalizaci akcnich zasahu *') disp('*****************************************************************') disp(' ') global b0 b1 Tmax kappa Th=10; % zadana doba simulace (kriterialni horizont) dT=0.001; % pevne zadany simulacni krok pro opt_PS_m.mdl kappa=1; % vaha akcnich zasahu v kriteriu % (pro male kappa rychlé reg. pochody a naopak) w=1; du=0; % reakce na zmenu zadane hodnoty %w=0; du=1; % reakce pri poruse na akcni velicine (na vstupu) b0=4.5; b1=-4.215; % parametry regulatoru na zacatku optimalizace x0=[b0 b1]; % volba vektoru optimalizovanych parametru sim('opt_PS_m'); % spousti simulaci (soubor je v akt. adresari) disp('Vychozi situace:') disp(' ') b0, b1, J disp(' ') disp('(b0, b1 ... parametry PS regulatoru, J ... hodnota funkcionalu)') disp(' ') opt_PS_m % otevre okno se simulacnim schematem figure(1); % otevre okno a vykresli reg. pochod s poc. nast. plot(t,v(:,2),'k','LineWidth',2), grid on, hold on figure(2); % otevre okno a vykresli prubeh akcni veliciny plot(t,v(:,3),'k','LineWidth',2), grid on, hold on disp('Pokracuj stiskem libovolne klavesy'), pause disp(' ') disp('*****************************************************************') disp('Zacatek iterace ...') disp(' ') % HLAVNI CAST OPTIMALIZACNIHO VYPOCTU % OPTIONS - parametry optimalizace (par. MaxIter udava max. pocet kroku) OPTIONS=optimset('LargeScale','off','MaxIter',20,'Display','iter'); %OPTIONS=optimset('LargeScale','off','MaxIter',200,'Display','iter',... % 'TolFun',1e-10,'TolX',1e-10); x=fminsearch('opt_krit',x0,OPTIONS); % optimalizace simplexovou metodou %(1. par. je minimalizovana ucelova funkce definovana funkci opt_krit.m %x = fminunc('opt_krit',x0,OPTIONS); % optimalizace gradientni metodou disp(' ') disp('Konec iterace') disp('*****************************************************************') disp(' ') b0opt=x(1); b1opt=x(2); b0=b0opt; b1=b1opt; sim('opt_PS_m') disp('Vysledek optimalizace:') disp(' ') b0opt, b1opt, J disp(' ') disp('(b0opt, b1opt ... nalezene optimalni parametry PS regulatoru)') disp(' ')

Obr. 9-97: Skript řídicí výpočet (opt_PS.m)

Page 211: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Numerická optimalizace parametrů regulátoru

211

figure(1), plot(t,v(:,2),'r','LineWidth',2) %vykresli opt. reg. pochod xlabel('t [s]'), ylabel('y(t)') figure(2), plot(t,v(:,3),'r','LineWidth',2) %vykresli prubeh akcni vel. xlabel('t [s]'), ylabel('u(t)') disp('*****************************************************************') disp('* Konec optimalizace kvadratickeho funkcionalu *') disp('*****************************************************************') disp(' ')

Obr. 9-97: pokračování

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % opt_krit Konstrukce minimalizovane ucelove funkce % % vektorovy parametr x funkce obsahuje koeficienty regulatoru % % f je hodnota kriterialniho ohodnoceni J % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function f=opt_krit(x) global b0 b1 Th kappa b0=x(1); b1=x(2); % naplneni vektoru x koeficienty regulatoru %simulace reg. obvodu s aktualnimi koeficienty regulatoru sim('opt_PS_m',Th) % spousti opt_PS_m.mdl f=J; % vraci krit. ohodnoceni vypoctene opt_PS_m.mdl

Obr. 9-98: Funkce pro výpočet hodnoty kritéria (opt_krit.m)

Obr. 9-99: Průběh regulačního pochodu při w = η (t) a du = 0 na počátku a po 10 iteracích

Po ukončení výpočtu byl jako optimální vybrán řídicí algoritmus minimalizující zadané kritérium

])1[(241,1)(343,1)( TkeTkeTku −−=∇ )(])1[()( TkuTkuTku ∇+−=

V průběhu optimalizace došlo k vývoji parametrů PS regulátoru a kritéria jakosti

b0 = 4,5 → 1,343 ; b1 = –4,215 → –1,241 ; J = 5,518 → 1,158

Na obr. 9-102 jsou uvedeny také průběhy regulačního pochodu při působení poruchy na vstupu soustavy (akční veličině). V tomto případě byla zvýšena váha zásahů ∇u v kritériu na κ = 10.

Page 212: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příklady z oblasti automatického řízení

212

***************************************************************** * Minimalizace kvadratickeho kriteria * * Kvadraticke kriterium s penalizaci akcnich zasahu * ***************************************************************** Vychozi situace: b0 = 4.50000000000000 b1 = -4.21500000000000 J = 5.51754703414972 (b0, b1 ... parametry PS regulatoru, J ... hodnota funkcionalu) Pokracuj stiskem libovolne klavesy ***************************************************************** Zacatek iterace ... Iteration Func-count min f(x) Procedure 0 1 5.51755 1 3 3.55176 initial simplex 2 5 3.37381 contract outside 3 7 3.37381 contract inside 4 9 3.37381 contract inside 5 11 3.37381 contract inside 6 13 3.30405 reflect 7 15 3.30405 contract inside 8 17 3.27281 expand 9 19 3.10336 expand 10 21 3.04325 expand 11 23 2.61162 expand 12 24 2.61162 reflect 13 26 1.9294 expand 14 27 1.9294 reflect 15 29 1.34946 expand 16 31 1.22409 reflect 17 33 1.16306 contract outside 18 35 1.16306 contract outside 19 37 1.16306 contract inside 20 39 1.15837 contract inside Exiting: Maximum number of iterations has been exceeded - increase MaxIter option. Current function value: 1.158374 Konec iterace ***************************************************************** Vysledek optimalizace: b0opt = 1.34289493560781 b1opt = -1.24081651210787 J = 1.15837446305066 (b0opt, b1opt ... nalezene optimalni parametry PS regulatoru) ***************************************************************** * Konec optimalizace kvadratickeho funkcionalu * ***************************************************************** >> ⎪

Obr. 9-100: Výpis průběhu optimalizačního výpočtu

Page 213: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Numerická optimalizace parametrů regulátoru

213

Obr. 9-101: Průběh regulačního pochodu w = η (t) a du = 0 na počátku a po 20 iteracích

Obr. 9-102: Průběh regulačního pochodu při w = 0 a du = η (t) na počátku a po 45 iteracích

Page 214: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 215: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

215

Literatura

[1] Balátě, J.: Automatické řízení. 2. vyd. Praha: BEN – technická literatura, 2004. ISBN 80-7300-148-9.

[2] Balda, M., Bošek, B., Dráb, Z.: Základy automatizace I. 1. vyd. Praha: SNTL, 1968.

[3] Dušek, F.: Matlab a Simulink: řešené příklady. 1. vyd. Pardubice: Univerzita Pardubice, 2000. ISBN 80-7194-273-1.

[4] Dušek, F.: Úvod do používání Matlab. Pardubice: Univerzita Pardubice, 1997.

[5] Heringová, B., Hora, P.: MATLAB díl I.: práce s programem. [Studijní materiál online.] Plzeň, 1995. [cit. leden 2007.] Dostupné na URL: www.cdm.cas.cz/czech/hora/vyuka/mvs/tutorial.pdf

[6] Heringová, B., Hora, P.: MATLAB díl II.: popis funkcí. [Studijní materiál online.] Plzeň, 1995. [cit. leden 2007.] Dostupné na URL: www.cdm.cas.cz/czech/hora/vyuka/mvs/reference.pdf

[7] Hlava, J.: Prostředky automatického řízení II: analogové a číslicové regulátory, elektrické pohony, průmyslové komunikační systémy. 1. vyd. Praha: ČVUT, 2000. ISBN 80-01-02221-8.

[8] Kupka, L.: Matlab & Simulink: úvod do použití. 1. vyd. Lanškroun: TG tisk a SOŠ a SOU, 2007. ISBN 978-80-239-8871-0.

[9] Kupka, L. Janeček, J.: Matlab & Simulink: řešené příklady. 1. vyd. Lanškroun: TG Tisk a SOŠ a SOU, 2007. ISBN 978-80-239-9532-9. 224 s.

[10] Nagrath, I. J., Gopal, M.: Control System Engineering. 2. vyd. New York (USA): John Wiley & Sons, 1982. ISBN 0-471-09814-0.

[11] Noskievič, P.: Modelování a identifikace systémů. 1. vyd. Ostrava: Montanex, 1999. ISBN 80-7225-030-2.

[12] Pírko, Z., Veit, J.: Laplaceova transformace: základy teorie a užití v elektrotechnice. 1. vyd. Praha: SNTL, 1970.

[13] Techmation: Applications Manual. [Online.] Tempe (USA), 1999. [cit. květen 2007.] Dostupné na URL: http://www.protuner.com/appman.pdf

[14] The MathWorks Inc.: Using MATLAB. [Uživatelská příručka online.] Natick (USA), 2006. [cit. leden 2007.] Dostupné na URL: http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html

[15] Topčejev, J. I., Cypljakov, A. P.: Sbírka příkladů z teorie automatického řízení. 1. vyd. Praha: SNTL, 1983.

[16] Tůma, L., Kašše, J.: Modelování a simulace: úloha 3 – nádrž. [Studijní text online.] Liberec: TU, 2007. [cit. červen 2008.] Dostupné na URL: http://e-learning.vslib.cz/cgi-bin/elearning/elearning.fcgi?ID_tema=71&ID_obsah= 1356&stranka=publ_tema&akce=polozka_vstup

[17] Vítečková, M., Víteček, A.: Základy automatické regulace. 1. vyd. Ostrava: VŠB – TU, 2006. ISBN 80-248-1068-9.

Page 216: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Literatura

216

[18] Zaplatílek, K., Doňar, B.: Matlab pro začátečníky. 2. vyd. Praha: BEN – technická literatura, 2005. ISBN 80-7300-175-6.

[19] Zítek, P., Hofreiter, M, Hlava, J.: Automatické řízení. 2. vyd. Praha: ČVUT, 2001. ISBN 80-01-02044-4.

Page 217: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příloha A

217

PŘÍLOHA A: Laplaceova integrální transformace Na obr. A-1 je uvedeno schéma řešení úlohy pomocí Laplaceovy transformace. Úloha

(technický problém) je obvykle popsána diferenciálními rovnicemi, jejichž klasické řešení je obtížné. S využitím transformace převedeme diferenciální rovnice na rovnice algebraické, jež jsou snadno řešitelné. Obraz výsledku následně převedeme zpět do časové oblasti.

Obr. A-1: Schéma řešení úlohy pomocí Laplaceovy transformace

Současně odpadá potřeba určování hodnot integračních konstant z počátečních podmínek. Počáteční podmínky jsou již ve výsledcích v obraze obsaženy. Odpadají rovněž problémy s nespojitostmi při derivacích na pravé straně.

Laplaceova integrální transformace je definována vztahem

)(de)()(0

sFttftf ts == ∫∞

−L

Aby integrál existoval (tedy aby byl integrabilní ve smyslu Cauchyově-Riemanově), musí být funkce f (t) jednoznačná a po částech spojitá v každém konečném intervalu proměnné t, a to pro všechna t > 0, a aby konvergoval, musí být f (t) exponenciálního řádu pro lim t = ∞. Podmínka této konvergence vyžaduje u většiny funkcí, aby f (t) = 0 pro t < 0. Funkci f (t) nazýváme originálem (předmětem), funkci F(s) obrazem tohoto originálu. Transformaci značíme symbolicky L . Některé nejběžnější originály a příslušné obrazy jsou uvedeny ve slovníku korespondencí v tab. A-2.

Lineární časově invariantní systém (jeho vlastnosti se v čase nemění) s jednou vstupní a jednou výstupní veličinou je obvykle popsán lineární diferenciální rovnicí s konstantními koeficienty. Obecná závislost mezi vstupním signálem f1 (t) a výstupním signálem f2 (t) je dána rovnicí

prostor originálů

obtíž

né ře

šení

úloha v originále

přímá transformace

L

úloha v obraze

řešení v originále

výsledek v originále

řešení v obraze

výsledek v obraze

zpětná transformace

L –1

prostor obrazů

snad

né ře

šení

Page 218: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příloha A

218

)()()()(

)()()()(

1011)1(

11)(

1

2021)1(

21)(

2

tfbtfbtfbtfb

tfatfatfatfam

mm

m

nn

nn

+′+++=

=+′+++−

−−

L

L

kde ai, bi jsou konstantní koeficienty. Z podmínky fyzikální realizovatelnosti systému musí být m ≤ n, tj. stupeň nejvyšší derivace výstupní veličiny musí být větší nebo roven stupni nejvyšší derivace vstupní veličiny.

Obraz derivace funkce závisí též na počátečních podmínkách vzatých jako limita zprava, a to podle vztahu

)0()(d

)(d

+−=⎭⎬⎫

⎩⎨⎧ fsFs

ttf

L

kde označení 0+ znamená hodnotu funkce nebo její derivace pro t blížící se t = 0 zprava. Podobně pro libovolnou vyšší derivaci obdržíme vztah

)]0()0()0()0([)(d

)(d )1()2(21

++++++′++−=⎭⎬⎫

⎩⎨⎧ −−−− nnnnn

n

n

ffsfsfssFst

tfLL

U regulačních obvodů obvykle předpokládáme, že až do okamžiku vstupu poruchy (tj. pro t < 0) byl obvod a tedy i všechny jeho členy v klidu. Pak lze provést transformaci rovnice obecné závislosti mezi vstupním a výstupním signálem člen po členu (s ohledem na linearitu transformace). Např. pro člen a0 f2(t) bude

∫∫∞

−∞

− ==0

200

2020 de)(de)()( ttfattfatfa tstsL

kde však výraz ∫∞

02 de)( ttf ts je podle definice obrazem funkce f2(t), a tedy

)()( 2020 sFatfa =L

Pro člen )(21 tfa ′ bude

∫∫∞

−∞

− ==′0

21

0

2121 de

d)(dde

d)(d)( t

ttfat

ttfatfa tstsL

kde integrál představuje obraz derivace funkce f2(t) a má při nulové počáteční podmínce hodnotu s F2(s), bude tedy

)()( 2121 sFsatfa =′L

a obdobně pro vyšší derivace.

Transformujeme-li takto postupně všechny členy, dostaneme

[an s n + an–1 s n–1 + ... + a1 s + a0] F2(s) = [bm s(m) + bm–1 s m–1 + ... + b1 s + b0] F1(s)

Poměr

)(......

)()(

01)1(

1

01)1(

1

1

2 sFasasasabsbsbsb

sFsF

nn

nn

mm

mm =

++++++++

= −−

−−

Page 219: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příloha A

219

je tzv. obrazový přenos, který je tedy vlastně roven

)()()(

1

2

tftfsF

L

L=

Přenos systému (soustavy) je definován jako poměr Laplaceova obrazu výstupního signálu f2(t) k Laplaceově obrazu vstupního signálu f1(t) při nulových počátečních podmínkách f2(0) = f2′(0) = ... = f2

(n–1)(0) = 0 a f1(0) = f1′(0) = ... = f1(m–1)(0) = 0.

Zpětná transformace (přechod od obrazu k originálu) je definována integrálem

)(de)(jπ2

1)(j

j

1 tfssFsFc

c

ts == ∫∞+

∞−

− L

kde c je úsečka absolutní konvergence (musí být větší, než jsou reálné části všech singularit obrazu F(s)).

Pro úplnost uveďme bez důkazu několik pravidel platných v Laplaceově transformaci, která jsou důležitá pro řešení úloh v teorii automatického řízení. Přehled těchto pravidel je uveden v tab. A-1. Předpokládáme, že originál f (t) je funkce po částech spojitá v intervalu ⟨0, +∞⟩, exponenciálního řádu s indexem růstu α.

Tab. A-1: Přehled základních vzorců Laplaceovy transformace

Název Vzorec

1 Definice přímé transformace )(de)()(

0

sFttftf ts == ∫∞

−L

(regulární pro Re [s] > α )

2 Linearita )()()()(

1211

211

tfctfctgftfc

LL

L

±==±

(platí obdobně pro libovolný počet členů)

3 Posun v originále (translace, časové zpoždění)

)()( sFeatf sa−=−L a ≥ 0, f (t) = 0 pro t < 0

4 Posun v obraze (substituce) )()( asFtfe ta −=L

5 Konvoluce )()(d)()( 2120

1 sFsFftft

=⎭⎬⎫

⎩⎨⎧

−∫ τττL

6 Změna měřítka ⎟⎠⎞

⎜⎝⎛=

ksF

ktkf 1)(L , )( ksFk

ktf =⎭⎬⎫

⎩⎨⎧

⎟⎠⎞

⎜⎝⎛

L

(platí pro k > 0)

7 Věta o počáteční hodnotě )(lim)(lim0

sFstfst ∞→+→

=

8 Věta o konečné hodnotě )(lim)(lim

0sFstf

st →∞→=

(platí pouze tehdy, jestliže limita existuje)

Page 220: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příloha A

220

Tab. A-1: pokračování

Název Vzorec

9 Derivace obrazu )()( sFtft ′−=L

10 Integrál obrazu qqFttf

s

d)()(∫∞

=⎭⎬⎫

⎩⎨⎧

L

11 Obraz derivace )0()()( +−=′ fsFstfL

)]0()0()0()0([)()(

)1()2(

21)(

+++++

++′++−=−−

−−

nn

nnnn

ffsfsfssFstf

L

L

12 Obraz integrálu )(1d)(0

sFs

ft

=⎭⎬⎫

⎩⎨⎧∫ ττL

13 Obraz periodické funkce (s periodou T)

Ts

Tts ttf

tf −

−=∫

e1

de)()( 0L

14 Definice zpětné transformace )(de)(jπ2

1)(j

j

1 tfssFsFc

c

ts == ∫∞+

∞−

− L

15 Zpětná transformace

pomocí vzorce a pomocí reziduí

]e)()[(dd

)!1(1lim)( 1

1

1

tsrir

rp

i iss

sFsssr

tf i

i

i

i

−−

= −

=→∑

])([res)(1∑=

==

p

i

ts

ssesFtf

i

pro)()()(

sQsPsF = , p pólů ri - násobných

Tab. A-2: Slovník základních korespondencí Laplaceovy transformace

Obraz F(s) Originál f (t)

1 1 )(tδ

(jednotkový impuls, Diracova funkce)

2 s1 ⎩

⎨⎧

≥<

=0pro10pro0

)(tt

(jednotkový skok, Heavisideova funkce)

3 21s

t

4 ns1 K,3,2,1pro

)!1(

1

=−

nnt n

5 as +

1 ta−e

Page 221: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příloha A

221

Tab. A-2: pokračování

Obraz F(s) Originál f (t)

6 2)(1as +

tat −e

7 nas )(1+

K,3,2,1proe)!1(

1

=−

−−

nnt ta

n

8 )(1

ass + )e(11 ta

a−−

9 )(1

2 ass + )e1(1

2tata

a−+−

10 2)( ass+

tata −− e)1(

11 2)(1

ass + ]e)1(1[1

2tata

a−+−

12 )()(1

bsas ++ )ee(1 tbta

ab−− −

13 )()( bsass

++ )ee(1 tatb ab

ab−− −

14 )()(1

bsass ++ ⎥⎦

⎤⎢⎣⎡ −

−+ −− )ee(111 tbta ab

baba

15 22 ωω+s

tωcos

16 22 ω+ss

tta ωsine−

17 22)( ωω++ as

tta ωcose−

18 22)( ω+++

asas

[ ]tt )1(sine

11 2

n2n ξω

ξξω −

−−

(pro ξ < 1)

19 22

2

2 nn

n

ss ωξωω

++

[ ]ψξωξ

ξω −−−

− − tt )1(sine1

1 2n2

n

ξξ

ψ21

arctg−

= , ξ < 1

Page 222: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Příloha A

222

Tab. A-2: pokračování

Obraz F(s) Originál f (t)

20 22 2 nnsss

ωξω ++

[ ]ψξωξ

ξω −−−

− − tt )1(sine1

1 2n2

n

ξξ

ψ21

arctg−

= , ξ < 1

21 )2( 22

2

nn

n

sss ωξωω

++

[ ]ψξωξ

ξω +−−

− − tt )1(sine1

11 2n2

n

ξξ

ψ21

arctg−

= , ξ < 1

Page 223: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)
Page 224: Matlab & Simulink studijní materiály pro předmět Základy kybernetiky (CZ)

Ing. Libor Kupka

MATLAB & SIMULINK studijní materiály pro předmět Základy Kybernetiky

Fakulta mechatroniky a mezioborových inženýrských studií, Technická univerzita v Liberci

224 stran

Vydání první, v červnu 2008