p) matice A, které splňují podmínku p vrací navíc vektor logických hodnot V, kde značí: [R C V] = find(A>p) 0 – index je nulový 1 – index není nulový I = find(A)
Tab. 3-6: Zjišťování rozměru vektorů a matic
Syntaxe příkazu
S = size(A) [r,c] = size(A) r = size(A,1) c = size(A,2) n = length(A)
30
Popis
vrací řádkový vektor S, jehož první prvek je počet řádek matice A a druhý prvek je počet sloupců A vrací dva skaláry r a c, které obsahují počet řádek a počet sloupců matice A vrací skalár r odpovídající počtu řádek matice A vrací skalár c odpovídající počtu sloupců matice A vrací skalár n odpovídající max(size(A))
Indexovaní vektorů a matic
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). 31
Práce s vektory a maticemi
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 32
Základy práce s mnohočleny
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
33
Práce s vektory a maticemi
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
34
Základy práce s mnohočleny
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.
35
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 37
Základní použití 2D grafiky
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
38
Vykreslení grafu
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,
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 39
Základní použití 2D grafiky
čá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
b g r c m y k
Typ čáry
modrá (blue) zelená (green) červená (red) tyrkysová (cyan) purpurová (magenta) žlutá (yellow) černá (black)
– : –. –– (nic)
plná (solid) tečkovaná (dotted) čerchovaná (dash-dot) čárkovaná (dashed) bez čáry (je-li zadán bod)
Značka bodu
. o x + * s d v ^ < > p h
tečka (point) kroužek (circle) křížek (x-mark) křížek (plus) hvězdička (star) čtverec (square) kosočtverec (diamond) trojúhelník (triangle – down) trojúhelník (triangle – up) trojúhelník (triangle – right) trojúhelník (triangle – left) pětiúhelník (pentagram) š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. 40
Vykreslení grafu
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í 41
Základní použití 2D grafiky
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. 42
Popis grafu Tab. 4-2: Umístění legendy v grafu
Číslo pozice
-1 0 1 2 3 4
Popis umístění
pravý horní roh, mimo graf automatické umístění pravý horní roh (implicitní nastavení) levý horní roh levý dolní roh 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 BackgroundColor LineWidth LineStyle
barva obrysu rámečku výplň rámečku (implicitně žádná – transparentní) šířka čáry rámečku (je-li použit parametr EdgeColor) styl čáry rámečku (je-li použit parametr EdgeColor) zvětší velikost rámečku o zadanou hodnotu v bodech (je-li použit parametr EdgeColor nebo BackgroundColor)
Margin
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. 43
Základní použití 2D grafiky Tab. 4-4: Formátovací příkazy
Formátovací příkaz
Popis
\fontname{fontname}
bude použito písmo fontname
\fontsize{s}
bude použito písmo o velikosti s bodů
\color{color}
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 α β γ δ ε ζ η θ ι κ λ µ ν ξ ο π ρ σ τ υ φ χ ψ ω 44
Formátovací Znak příkaz \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \o \pi \rho \sigma \tau \upsilon \phi \chi \psi \omega
ς ϑ Γ ∆ Θ Λ Ξ Π Σ Υ Φ Ψ Ω ↔ ← → ↑ ↓ ⇔ ⇐ ⇒ ⇑ ⇓ ′
Formátovací příkaz
Znak
Formátovací příkaz
Znak
Formátovací příkaz
\varsigma \vartheta \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \leftrightarrow \leftarrow \rightarrow \uparrow \downarrow \Leftrightarrow \Leftarrow \Rightarrow \Uparrow \Downarrow \prime
〈 〉 ≡ ≠ ≈ ≅ ≤ ≥ ∼ ± × ⋅ ÷ ⊕ ⊗ ∅ ∩ ∪ ⊃ ⊂ ⊇ ⊆ ∈ ∋
\langle \rangle \equiv \neq \approx \cong \leq \geq \sim \pm \times \cdot \div \oplus \otimes \oslash nebo \0 \cap \cup \supset \subset \supseteq \subseteq \in \ni
• ° ℜ ℑ ℵ ℘ ∀ ∃ ¬ ∇ ∂ ∫ √ ∝ ∞ ϖ ∠ … ⏐ ⊥ ♣ ♦ ♥ ♠
\bullet \circ \Re \Im \aleph \wp \forall \exist \neg \nabla \partial \int \surd \propto \infty \varpi \angle \ldots \mid \perp \clubsuit \diamondsuit \heartsuit \spadesuit
Popis grafu
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
45
Základní použití 2D grafiky
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]) v = axis axis auto axis manual axis xy axis ij axis square axis equal axis tight axis vis3d axis normal axis on | off
nastaví meze os aktuálního grafu vrátí vektor jednotlivých mezí os aktuálního grafu nastaví implicitní meze os zmrazí meze os použije kartézský souřadný systém, tj. počátek je vlevo dole použije maticový souřadný systém, tj. počátek je vlevo nahoře nastaví čtvercové osy nastaví na obou osách stejná měřítka nastaví meze os podle rozsahu dat zamezí změně proporcí os při změně pohledu zruší nastavená měřítka a efekty equal, square, tight a vis3d 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 46
Ovládání souřadných os
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 47
Základní použití 2D grafiky
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í. 48
Kreslení více grafů do jednoho obrázku
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. 49
Základní použití 2D grafiky
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
plotyy semilogx semilogy loglog stairs stem hist pie comet 50
Popis
graf, který má dvě různé osy závisle proměnné (dvě osy y) graf s logaritmickou stupnicí na ose x a lineární stupnicí na ose y graf s logaritmickou stupnicí na ose y a lineární stupnicí na ose x graf s logaritmickou stupnicí na obou osách schodový graf graf diskrétních posloupností (tzv. stopkový graf) histogram koláčový graf průběh funkce je vykreslen pohybujícím se bodem
Vybrané speciální typy 2D grafů Tab. 4-7: pokračování
Příkaz
fill area bar barh bar3 bar3h errorbar polar compass feather plotmatrix quiver rose pareto
Popis
vykreslí vyplněný mnohoúhelník vykreslí plošný (vyplněný) graf sloupcový graf sloupcový horizontální graf sloupcový graf, sloupce jsou ve 3D podobě sloupcový horizontální graf, sloupce jsou ve 3D podobě graf chyb graf v polárních souřadnicích graf vektorů zobrazovaných ve formě šipek vycházejících z počátku graf vektorů vycházejících z ekvidistantně rozložených bodů podél horizontální osy graf rozptylu graf vektorového pole úhlový histogram 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). 51
Základní použití 2D grafiky
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. 52
Vybrané speciální typy 2D grafů
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. 53
Základní použití 2D grafiky
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. 54
Vybrané speciální typy 2D grafů
Obr. 4-25: Graf v polárních souřadnicích
55
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ů
57
Práce se soubory a tvorba skriptů
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
58
Práce se soubory a tvorba skriptů
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, 59
Práce se soubory a tvorba skriptů
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. 60
Základy práce se soubory
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 61
Práce se soubory a tvorba skriptů
–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 –double –ascii –tabs –ascii –double –tabs
ASCII standard s přesností čísla na 8 míst, oddělovač je mezera ASCII standard s přesností čísla na 16 míst ASCII standard, oddělovač je tabelátor ASCII standard s přesností čísla na 16 míst, oddělovač je tabelátor
62
Základy práce se soubory
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. 63
Práce se soubory a tvorba skriptů
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
64
Tvorba skriptů
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 65
Práce se soubory a tvorba skriptů
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 66
Tvorba skriptů
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
67
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
69
Základy práce v prostředí Simulink
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
70
Standardní knihovny Simulinku
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 71
Základy práce v prostředí Simulink
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 72
Standardní knihovny Simulinku
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). 73
Základy práce v prostředí Simulink
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 DiscreteTime Integrator, Discrete Transfer Fcn resp. Discrete Filter, Discrete State-Space. 74
Standardní knihovny Simulinku
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 75
Základy práce v prostředí Simulink
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 76
Standardní knihovny Simulinku
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
77
Základy práce v prostředí Simulink
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). 78
Standardní knihovny Simulinku
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 79
Základy práce v prostředí Simulink
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. 80
Vytváření modelu
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
y′′ = −
a1 a b y′ − 0 y + 0 u . a2 a2 a2
a po dvojí integraci pak
y=−
a1 a y− 0 ∫ a2 a2
b0
∫∫ y + a ∫∫ u . 2
Pro zjednodušení zápisu jsou jednotlivé integrály zapsány bez příslušných mezí. Např. integrálu t
∫ y(τ ) dτ 0
odpovídá zápis
∫y.
Výše uvedenou rovnici budeme dále realizovat v Simulinku. 81
Základy práce v prostředí Simulink
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
Obr. 6-22: Kopírování bloků pomocí myši
82
Vytváření modelu
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
83
Základy práce v prostředí Simulink
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. 84
Vytváření modelu
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. 85
Základy práce v prostředí Simulink
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. 86
Vytváření modelu
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. 87
Základy práce v prostředí Simulink
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. 88
Vytváření modelu
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
ode23 (Bogacki-Shampine)
non-stiff
ode113 (Adams) ode15s (stiff/NDF) ode23s (stiff/Mod. Rosenbrock) ode23t (Mod. stiff/trapezoidal)
non-stiff stiff
explicitní Runge-Kutta (implementace Dormand-Prince) explicitní Runge-Kutta (implementace BogackiShampine) Adams-Bashforth-Moultonova NDFs (BDFs)
stiff
Rosenbrockova
moderately stiff
ode23th (stiff/TR–BDF2)
stiff
lichoběžníkové pravidlo 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
89
Základy práce v prostředí Simulink
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í 90
Vytváření modelu
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ě 91
Základy práce v prostředí Simulink
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
92
Vytváření subsystémů 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).
93
Základy práce v prostředí Simulink
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 94
Vytváření subsystémů
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
y′′ = −
a1 a b y′ − 0 y + 0 u a2 a2 a2
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 95
Základy práce v prostředí Simulink
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.
96
Vytváření subsystémů
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
97
Základy práce v prostředí Simulink
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. 98
Volba testovacích signálů
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).
99
Základy práce v prostředí Simulink
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.
100
Volba testovacích signálů
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ů
101
Základy práce v prostředí Simulink
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
102
Volba testovacích signálů
103
Základy práce v prostředí Simulink
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. iR
u1
R uR
iL L
iC C
Obr. 7-1: Schéma zapojení RLC obvodu
104
u2
Rezonanční vlastnosti RLC členu
Ř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 u R = iR R t ⎫ 1 uC = ∫ iC (τ ) dτ ⎪ C0 ⎪ ⎬ u 2 = u L = uC d iL ⎪ uL = L ⎪⎭ dt
iC = C
d uC dt t
1 iL = ∫ u L (τ ) dτ L0
Dosazením do rovnice pro napětí v obvodu
u1 = u R + u 2 = iR R + u 2 = (iL + iC ) R + u 2 ⎛ d u2 1 t ⎞ u1 = ⎜⎜ C + ∫ u L (τ ) dτ ⎟⎟ R + u 2 L0 ⎝ dt ⎠ 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
R u 2 = u1′ L 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. RC u ′2′ + u 2′ +
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 u 2′′ jako lineární kombinaci nižších derivací a buzení (napájecí napětí u1)
u ′2′ = −
1 1 1 u ′2 − u2 + u1′ RC LC RC
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 u2 = −
1 1 u2 − ∫ RC LC
∫∫ u
2
+
1 u1 RC ∫
Z důvodu zjednodušení zápisu se jednotlivé integrály obvykle zapisují bez příslušných mezí. Např. integrálu t
∫u
2
(τ ) dτ
odpovídá zápis
0
∫u
2
a obdobně t t
∫ ∫u 0 0
2
(τ ) dτ 2
odpovídá
∫∫ u
2
105
Modelové příklady
Zavedeme-li označení
a0 =
1 ; LC
a1 =
1 ; RC
b1 =
1 RC
lze psát
u 2 = − a1 ∫ u 2 − a0
∫∫ u
2
+ b1 ∫ u1
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. 106
Rezonanční vlastnosti RLC členu
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. 107
Modelové příklady
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. 108
Rezonanční vlastnosti RLC členu
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 109
Modelové příklady
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í
ω=
1 =1; LC
T=
2π
ω
= 2π
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
u′2′ + a1 u′2 + a0 u2 = b1 u1′ a0 =
1 ; LC
a1 =
1 ; RC
b1 =
1 RC
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 110
Rezonanční vlastnosti RLC členu
[ s 2 U 2 ( s) − s u 2 (0+) − u 2 ' (0+)] + a1 [ s U 2 ( s) − u 2 (0+)] + a0U 2 ( s ) = b1[ s U1 ( s) − u1 (0+)] 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 G ( s) =
U 2 (s) bs = 2 1 U1 ( s ) s + a1s + a0
Frekvenční přenos získáme nahrazením parametru s → jω
G ( jω ) =
b1 jω ( jω ) + a1 jω + a0 2
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. 111
Modelové příklady
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í
112
Dynamika sedadla řidiče
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
113
Modelové příklady
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
G ( s) =
Y ( s ) bm s m + ... + b1 s + b0 = U ( s ) an s n + ... + a1 s + a0
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 114
Dynamika sedadla řidiče
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. F m
y c
k
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. 115
Modelové příklady
F m
y F1
F2
F3
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 2
F3 = m y″ = m d y / d t
… reakce tlumiče 2
… 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. Statická úvaha 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 116
Dynamika sedadla řidiče
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. 117
Modelové příklady
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í
118
Dynamika sedadla řidiče
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 119
Modelové příklady
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í y (∞) = lim y (t ) t→∞
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 Laplaceova transformace 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 120
Dynamika sedadla řidiče
Y (s) =
1 (100 s + 2400) y (0+) + 100 y ′(0+) F (s) + 100 s + 2400 s + 8000 100 s 2 + 2400 s + 8000 2
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 F ( s) =
800 s
Y ( s) =
1 800 8 8 ⋅ = 2 = 100 s + 2400 s + 8000 s ( s + 24 s + 80) s ( s + 4) ( s + 20) s 2
Limitní korespondence 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). y (∞) = lim s Y ( s) = lim s →0
s →0
8 = 0,1 ( s + 4) ( s + 20)
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. y (0+ ) = lim s Y ( s ) = lim s →∞
s →∞
s Y ( s ) − y (0 + ) =
y′(t)
y ′(0+ ) = lim s →∞
8 =0 ( s + 4) ( s + 20)
8 ( s + 4) ( s + 20)
8s =0 ( s + 4) ( s + 20)
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. Zpětná Laplaceova transformace Ř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. Y (s) =
8 A B C = + + s ( s + 4) ( s + 20) s ( s + 4) ( s + 20)
A = lim Y ( s ) s = lim s →0
s →0
8 = 0,1 ( s + 4) ( s + 20) 121
Modelové příklady
B = lim Y ( s ) ( s + 4) = lim s → −4
s → −4
8 1 = − = −0,125 s ( s + 20) 8
C = lim Y ( s ) ( s + 20) = lim s →−20
s →−20
8 1 = = 0,025 s ( s + 4) 40
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ů). Y ( s) = =
A B C A( s + 4) ( s + 20) + Bs ( s + 20) + Cs ( s + 4) = + + = s ( s + 4) ( s + 20 ) s ( s + 4) ( s + 20)
8 s 2 ( A + B + C ) + s (24 A + 20 B + 4C ) + 80 A = s ( s + 4) ( s + 20) s ( s + 4) ( s + 20) A+ B+C = 0 ⎫ ⎪ 24 A + 20 B + 4C = 0 ⎬ 80 A = 8 ⎪⎭
A = 0,1 B = −0,125 C = 0,025
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. Y ( s) =
0,1 − 0,125 0,025 + + s ( s + 4) ( s + 20)
y (t ) = (0,1 − 0,125 e -4t + 0,025 e -20t )η (t )
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. 122
Dynamika sedadla řidiče
Rychlost pohybu sedadla určíme jako derivaci y (t) y ′(t ) = (0,5 e -4t + 0,5 e -20t ) η (t )
Ověřme nyní správnost limitních hodnot řešení na začátku a na konci přechodového děje y (0+ ) = lim y (t ) = lim (0,1 − 0,125 e -4t + 0,025 e -20t ) = 0 t →0 +
t →0 +
y ′(0+ ) = lim y ′(t ) = lim (0,5 e -4t + 0,5 e -20t ) = 0 t →0+
t →0+
y (∞ ) = lim y (t ) = lim (0,1 − 0,125 e -4t + 0,025 e -20t ) = 0,1 t →∞
t →∞
y ′(∞ ) = lim y ′(t ) = lim (0,5 e -4t + 0,5 e -20t ) = 0 t →∞
t →∞
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
123
Modelové příklady
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ů spec. 1 800 8 Y ( s) = ⋅ = m = 100 = 2 2 ms +k s+c s ( s + k ⋅ 10 −2 s + 80) s c = 8000
charakteristická rovnice a její kořeny −2
s + k ⋅ 10 s + 80 = 0 ; 2
s1, 2 =
− k ⋅ 10 −2 ±
k 2 ⋅ 10 −4 − 4 ⋅ 80 2
a pro dvojnásobný kořen
k 2 ⋅ 10 −4 − 4 ⋅ 80 = 0 k = 4 ⋅ 80 ⋅ 10 +4 ≈ 17,89 ⋅ 10 2 Ns/m s1, 2
− 17,89 ⋅ 10 2 ⋅ 10 −2 = ≈ −8,94 2
Obraz řešení v tomto případě je Y (s) =
8 8 A B C = = + + −2 2 2 ( s + k ⋅ 10 s + 80) s ( s + 8,94) s s ( s + 8,94) s + 8,94 2
A = lim Y ( s ) s = lim s →0
s →0
8 = 0,1 ( s + 8,94) 2
8 ≈ −0,89 s → −8, 94 s
B = lim Y ( s ) ( s + 8,94) 2 = lim s → −8, 94
124
Dynamika sedadla řidiče
1 d d 8 −8 ⋅ {Y ( s ) ( s + 8,94) 2 } = lim = lim 2 ≈ − 0,1 s → −8 , 94 1 ! ds s → −8 , 94 ds s s → −8 , 94 s
C = lim
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 Y ( s) =
0,1 0,89 0,1 − − 2 s ( s + 8,94) ( s + 8,94)
y (t ) = (0,1 − 0,89 t e -8,94t − 0,1 e -8,94t )η (t )
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. m = 100 1 800 8 Y (s) = ⋅ = k = 400 = 2 2 ms + k s + c s ( s + 4 s + 80) s c = 8000
Charakteristická rovnice a její kořeny s1, 2 =
s 2 + 4 s + 80 = 0 ;
− 4 ± 4 2 − 4 ⋅ 80 ≈ − 2 ± j 8,72 2
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 Y (s) =
8 A Bs+C = + 2 ( s + 4 s + 80 ) s s s + 4 s + 80 2
Koeficient A určíme nejlépe reziduálním výpočtem, koeficienty B a C metodou neurčitých koeficientů A = lim Y ( s ) s = lim s →0
s →0
8 = 0,1 s + 4 s + 80 2
0,1 Bs + C s 2 ( B + 0,1) + s (C + 0,4) + 8 8 Y (s) = = 2 = + 2 2 s s + 4 s + 80 ( s + 4 s + 80) s ( s + 4 s + 80) s 125
Modelové příklady
B + 0, 1 = 0 C + 0,4 = 0 Y ( s) =
⎫ ⎬ ⎭
B = – 0,1; C = – 0,4
0,1 0,1 s + 0,4 − 2 s s + 4 s + 80
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. Y (s) = =
0,1 0,1 s + 0,4 0,1 0,1 ( s + 2) + 0,2 − = − = 2 s s ( s + 2) + 76 ( s + 2) 2 + 76 0,1 0,1 ( s + 2) 0,2 76 − − ⋅ 2 2 s ( s + 2) + 76 76 ( s + 2) + 76
Dále už jen jednoduše převedeme obraz podle slovníku L-transformace do předmětu 0,2 −2t e sin 76 t ) η (t ) = 76 = {0,1 − e −2t [0,1 cos(8,72 t ) + 0,02 sin(8,72 t )]}η (t )
y (t ) = (0,1 − 0,1 e −2t cos 76 t −
0,1
ψ
ϕ 0
0,12 + 0,02 2 ≈ 0,1 0,1 ϕ = arctg ≈ 1,37 0,02 0,02 ψ = arctg ≈ 0,2 0,1
0,02 Obr. 7-25: Stanovení ϕ a ψ
Výsledek lze také v souladu s obr. 7-25 upravit do tvaru y (t ) = [0,1 − 0,1 e −2t sin(8,72 t + ϕ )]η (t ) = [0,1 − 0,1 e −2t cos(8,72 t − ψ )]η (t ) Jiný způsob řešení 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. m = 100 8 1 800 Y (s) = ⋅ = k = 400 = 2 2 ms +ks+c s ( s + 4 s + 80) s c = 8000
126
Dynamika sedadla řidiče
Stejná je samozřejmě i charakteristická rovnice a její kořeny − 4 ± 4 2 − 4 ⋅ 80 ≈ − 2 ± j 8,72 2 Rozklad na parciální zlomky však předpokládáme ve tvaru s komplexními koeficienty s 2 + 4 s + 80 = 0 ;
Y (s) =
s1, 2 =
8 A B C = + + ( s + 4 s + 80) s s ( s + 2 − j 8,72) ( s + 2 + j 8,72) 2
Všechny koeficienty rozkladu A, B i C jsou v tomto případě rezidua obrazu v jeho pólech a určíme je A = lim Y ( s ) s = lim s →0
s →0
8 = 0,1 s + 4 s + 80 2
8 = L ≈ −0,05 + j 0,01 s →−2+ j8, 72 s →−2+ j8 , 72 s ( s + 2 + j 8,72) 8 C = lim Y ( s ) ( s + 2 + j 8,72) = lim = L ≈ −0,05 − j 0,01 s →−2 − j8, 72 s →−2− j8 , 72 s ( s + 2 − j 8,72) B=
lim
Y ( s ) ( s + 2 − j 8,72) =
lim
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. Y (s) =
8 0,1 − 0,05 + j 0,01 − 0,05 − j 0,01 = + + s ( s + 4 s + 80) s ( s + 2 − j 8,72) ( s + 2 + j 8,72) 2
Obr. 7-26: Časová závislost pohybu sedadla řidiče
127
Modelové příklady
Pomocí slovníku (příloha A) jednoduše nalezneme předmět y (t ) = [0,1 + (−0,05 + j 0,01) e ( −2 + j 8,72 ) t + (−0,05 − j 0,01) e( −2 − j 8,72 ) t ]η (t ) =
= {0,1 + e −2t [(−0,05 + j 0,01) (cos 8,72t + j sin 8,72t ) + + (−0,05 − j 0,01) (cos 8,72 t − j sin 8,72t )]}η (t ) = = L = {0,1 − e −2t sin[0,1 cos(8,72 t ) + 0,02 sin(8,72 t )]}η (t )
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, 128
Dynamika sedadla řidiče
ř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
129
Příklady z oblasti modelování systémů
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í. Q1, v1 S1 dm
h(t)
S2
Q2, v2
Obr. 8-1: Nádrž s výtokovým otvorem u dna
Definujme základní veličiny t [s] Q1, Q2 [m3 s–1] v1, v2 [m s–1] S1, S2 [m2] m [kg] V [m3] g [m s–2] h(t) [m]
– čas – přítok do nádrže, odtok z nádrže otvorem – rychlost přitékající a rychlost odtékající kapaliny – plocha půdorysu nádrže a plocha výtokového otvoru – hmotnost kapaliny – objem kapaliny – gravitační zrychlení, g = 9,81 m s–2 – 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 1 dm v2 (t ) 2 = dm g h(t ) 2 130
Vývoj výšky hladiny v nádrži
a tedy v2 (t ) = 2 g h(t )
Celkový objemový tok při změně výšky hladiny je Q(t ) = Q1 (t ) − Q2 (t ) =
dV dt
Platí-li dále, že dh(t ) = S1 h′(t ) dt Q2 (t ) = S 2 v2 (t ) dV = S1
lze po dosazení do rovnice pro objemový tok psát S1 h′(t ) = Q1 (t ) − S 2 v2 (t )
Dosadíme-li do uvedené rovnice dále za rychlost v2, obdržíme po jednoduché úpravě výslednou diferenciální rovnici h′(t ) =
1 [ Q1 (t ) − S 2 2 g h(t ) ] S1
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). 131
Příklady z oblasti modelování systémů
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 2
2
1 ⎛ Q1 (∞) ⎞ 1 ⎛ 0,01 ⎞ ⎟⎟ = ⎜⎜ h(∞ ) = ⎜ ⎟ = 0,2039 m 2 g ⎝ S2 ⎠ 2 ⋅ 9,81 ⎝ 0,005 ⎠ 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. Q1, v1
S1 h(t)
S2 h2 h1 Q2, v2
Obr. 8-4: Vypouštění nádrže hadicí
132
Vývoj výšky hladiny v nádrži
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í h(t ) =
1 [ Q1 (t ) − L(t ) S 2 2 g h(t ) ] S1
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. 133
Příklady z oblasti modelování systémů
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
134
Vývoj výšky hladin dvou spojených nádrží
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. Q1
Q2 S1 S2 dm
h1(t)
Q3
h2(t) Q4
S3
S4
Obr. 8-9: Spojené nádrže
Definujme základní veličiny t [s] Q1, Q3 [m3 s–1] Q2, Q4 [m3 s–1] v1, v2, v3, v4 [m s–1] S1, S3 [m2] S2, S4 [m2] m [kg] V1, V2 [m3] g [m s–2] h1(t) [m] h2(t) [m]
– čas – přítok do první nádrže a odtok ven z nádrže otvorem – přítok do druhé nádrže a odtok ven z nádrže otvorem – rychlosti přitékající a rychlosti odtékající kapaliny – plocha půdorysu první nádrže a jejího výtokového otvoru – plocha půdorysu druhé nádrže a jejího výtokového otvoru – hmotnost kapaliny – objem kapaliny v první resp. druhé nádrži – gravitační zrychlení, g = 9,81 m s–2 – výška hladiny v první nádrži v čase t – 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 dV1 (t ) = S1 h1′(t ) = Q1 (t ) − Q3 (t ) = Q1 (t ) − S 3 v3 (t ) dt dV2 (t ) = S 2 h2′ (t ) = Q2 (t ) + Q3 (t ) − Q4 (t ) = Q2 (t ) + S 3 v3 (t ) − S 4 v4 (t ) dt Rychlost v4(t) odvodíme ze zákona o zachování energie (viz také příklad 8.1) v4 (t ) = 2 g h2 (t )
Je zřejmé, že rychlost v3(t) je ovlivněna rozdílem tlaků u dna nádob a je tedy možné psát 135
Příklady z oblasti modelování systémů
1 dm v3 (t ) = dm g [h1 (t ) − h2 (t )] 2 v3 (t ) = 2 g [h1 (t ) − h2 (t )]
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 v3 (t ) = 2 g h1 (t ) − h2 (t ) ⋅ sign[h1 (t ) − h2 (t )]
Výsledné diferenciální rovnice získáme dosazením za rychlosti v3(t) a v4(t) do základních rovnic h1′(t ) =
1 {Q1 (t )− = Q1 (t ) − S3 2 g h1 (t ) − h2 (t ) ⋅ sign[h1 (t ) − h2 (t )]} S1
h2′ (t ) =
1 {Q2 (t ) + S3 2 g h1 (t ) − h2 (t ) ⋅ sign[h1 (t ) − h2 (t )] − S 4 2 g h2 (t )} S2
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. h1′(t ), h2′ (t ) a za blok zařadíme 136
Navíjecí zařízení
integrátor, viz obr. 8-11. Zápis rovnic pro výpočet h1′(t ), h2′ (t ) 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). 137
Příklady z oblasti modelování systémů
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 138
Navíjecí zařízení
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. J
MM r
M Mb
m Obr. 8-15: Schéma poháněného navijáku
Definujme základní veličiny m [kg] r [m] g [m s–2] Jm [kg m2] J [kg m2] ϕ [rad] ω = dϕ / dt [rad s–1] MM, MZ, Mb [Nm] br [Nm s]
– hmotnost tělesa – poloměr navíjecího válce – gravitační zrychlení, g = 9,81 m s–2 – moment setrvačnosti navíjecího válce vzhledem k jeho ose – celkový moment setrvačnosti navíjecího válce – úhel natočení válce – úhlová rychlost pohybu – hnací moment motoru, zatěžovací a tlumicí moment – 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 , dϕ (t ) tlumicí moment M b = br = br ω (t ) , dt zatěžovací moment M Z = m g r , setrvačný moment M J =
dω (t ) d 2ϕ (t ) = . dt dt 2
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 = J m + 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 MJ = MM − MZ − Mb po dosazení jednotlivých momentů 139
Příklady z oblasti modelování systémů
d 2ϕ (t ) dϕ (t ) = M M − M Z − br 2 dt dt Po úpravě dostaneme J
d 2ϕ (t ) dϕ (t ) + br = MM − MZ 2 dt dt
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 Js 2Φ ( s) + br s Φ ( s) = M M ( s ) − M Z ( s) s Φ ( s ) [ Js + br ] = M M ( s ) − M Z ( s )
Φ( s) =
Φ( s) =
M M ( s) − M Z (s) s ( Js + br ) 1 br ⎞ ⎛J s ⎜⎜ s + 1⎟⎟ ⎠ ⎝ br
[M M ( s ) − M Z ( s )] =
K [M M ( s ) − M Z ( s )] s (Ts + 1)
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í.
MZ(s) MM(s)
1 br
J s +1 br
ϕ′
1 s
ϕ
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 G ( s) =
K Ts + 1
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 140
Stejnosměrný motor s cizím buzením
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í. 141
Příklady z oblasti modelování systémů
im
Rm
Lm J Mm
um
ω, ϕ
M MZ
ub
ib
Rb
Lb
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] im [A] ui [V] Rm [Ω] Lm [H] ub [V] ib [A] Rb [Ω] Lb [H] J [kg m2] ξ [V s rad–1] Φ [Wb] ϕ [rad] ω = dϕ / dt [rad s–1] Mm, MZ [Nm]
– napětí na kotvě motoru (svorkové) – proud kotvy motoru – indukované napětí na kotvě motoru – celkový odpor všech vinutí v kotvě motoru – celková indukčnost všech vinutí v kotvě motoru – napětí budicího obvodu – budicí proud motoru – celkový odpor budicího obvodu – celková indukčnost budicího obvodu – celkový moment setrvačnosti vztažený k hřídeli motoru – konstrukční konstanta motoru – magnetický tok – úhel natočení hřídele motoru – úhlová rychlost pohybu – 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í u m (t ) = Rm im (t ) + Lm
dim (t ) + ui (t ) dt
Indukované napětí na kotvě motoru ui(t) určené magnetickým tokem závislým na budicím proudu je rovno 142
Stejnosměrný motor s cizím buzením
ui (t ) = c Φ (ib ) ω (t ) 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í U m ( s ) − U i ( s ) = Rm I m ( s ) + Lm s I m ( s ) = I m ( s ) [ Rm + Lm s ]
Gm ( s ) =
1 Rm
1 I m (s) Km = = = U m ( s ) − U i ( s ) Lm s + Rm Lm s + 1 Tm s + 1 Rm
kde Km =
1 , Rm
Tm =
Lm Rm
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 u b (t ) = Rb ib (t ) + Lb (ib )
dib (t ) dt
Obvod buzení lze rovněž pomocí Laplaceovy transformace vyjádřit přenosem U b ( s ) = Rb I b ( s ) + Lb s I b ( s ) = I b ( s ) [ Rb + Lb s ]
Gb ( s ) =
1 Rb
I b ( s) Kb 1 = = = U b ( s ) Lb s + Rb Lb s + 1 Tb s + 1 Rb
kde Kb =
1 , Rb
Tb =
Lb Rb
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í J
dω (t ) = Mm − MZ dt
kde moment motoru Mm je určen pomocí magnetického toku obecně závislého na budicím proudu podle vztahu M m = c Φ (ib ) im (t ) 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. 143
Příklady z oblasti modelování systémů
dim (t ) 1 = [u m (t ) − c Φ (ib ) ω (t ) − Rm im (t )] dt Lm dib (t ) 1 = [u b (t ) − Rb ib (t )] dt Lb dω (t ) 1 = [c Φ (ib ) im (t ) − M Z ] dt J 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
144
Stejnosměrný motor s buzením permanentními magnety
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] im [A] Rm [Ω] Lm [H] J [kg m2] k [Nm A–1] Φ [Wb] ϕ [rad] ω = dϕ / dt [rad s–1] Mm, MZ [Nm]
– napětí na kotvě motoru (svorkové) – proud kotvy motoru – celkový odpor všech vinutí v kotvě motoru – celková indukčnost všech vinutí v kotvě motoru – celkový moment setrvačnosti vztažený k hřídeli motoru – konstanta motoru – magnetický tok – úhel natočení hřídele motoru – úhlová rychlost pohybu – 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 u m (t ) = Rm im (t ) + Lm J
dim (t ) + c Φ ω (t ) dt
dω (t ) + M Z = M m = c Φ im (t ) dt
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 dim (t ) 1 = [um (t ) − k ω (t ) − Rm im (t )] dt Lm dω (t ) 1 = [k im (t ) − M Z ] dt J 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í U m ( s ) = Rm I m ( s ) + Lm s I m ( s ) + k Ω ( s ) J s Ω ( s) = k I m (s) − M Z ( s) 145
Příklady z oblasti modelování systémů
z prvního vztahu vyjádříme proud kotvy a dosadíme do druhého. Po úpravě dostaneme Ω(s) =
Te s + 1 R 1 1 U m ( s ) − m2 M Z ( s) 2 k Te Tm s + Tm s + 1 k Te Tm s 2 + Tm s + 1
kde Tm označuje elektromagnetickou a Te elektromechanickou časovou konstantu motoru Te =
Lm , Rm
Tm =
Rm J k
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 GS ( s ) =
1 1 2 k Te Tm s + Tm s + 1
Gd ( s ) = −
Te s + 1 Rm 2 k Te Tm s 2 + Tm s + 1
Obr. 8-23: Blokové schéma modelu stejnosměrného motoru s buzením permanentními magnety
146
Stejnosměrný motor s buzením permanentními magnety
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 R U m (∞) − m2 M Z (∞) k k
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
147
Příklady z oblasti automatického řízení
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. u(t)
GS(s)
y(t)
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í 148
Přechodové charakteristiky dynamických systémů 1. řádu
Ty′(t ) + y (t ) = K u (t ) kde K je zesílení a T časová konstanta systému, příp. pomocí odpovídajícího obrazového přenosu ve tvaru GS ( s ) =
K Ts + 1
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. R uR
u1
i
C
uC = u2
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 uR = R i
i=C
d u2 dt
Podle druhého Kirchhoffova zákona musí v každém okamžiku platit u1 = u R + u 2
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 u1 = R C
d u2 + u2 dt
Tuto rovnici můžeme formálně přepsat do tvaru R C u 2′ (t ) + u 2 (t ) = u1 (t )
a pomocí Laplaceovy transformace (základní vzorce jsou v příloze A) ji převést na funkci operátoru s R C s U 2 ( s) + U 2 ( s) = U1 ( s)
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 149
Příklady z oblasti automatického řízení
GS ( s ) =
U 2 (s) 1 K = = U1 ( s ) R C s + 1 Ts + 1
kde K = 1 je zesílení systému a T = R C je jeho časová konstanta. L
i
uL u1
R
uR = u2
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 di dt u u i= R = 2 R R
uL = L
Dosazením do rovnice pro napětí v obvodu lze postupně psát u1 = u L + u 2 = L u1 =
di + u2 dt
L d u2 + u2 R dt
Uvedenou diferenciální rovnici můžeme dále formálně přepsat do tvaru L u 2′ (t ) + u 2 (t ) = u1 (t ) R Přenos systému lze po provedení Laplaceovy transformace a elementárních úpravách zapsat jako GS ( s ) =
U 2 (s) 1 K = = U1 ( s ) L s + 1 Ts + 1 R
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 150
Přechodové charakteristiky dynamických systémů 1. řádu
H ( s ) = GS ( s )
1 s
a konkrétně pro systém 1. řádu
H (s) =
1 T
K 1 =K 1 Ts + 1 s s (s + ) T
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) −
t T
h(t ) = K ( 1 − e )η (t ) 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
151
Příklady z oblasti automatického řízení
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. 152
Přechodové charakteristiky dynamických systémů 2. řádu
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.
R u1
L
C
u2
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 153
Příklady z oblasti automatického řízení
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 GS ( s ) =
b0 a2 s + a1 s + a0 2
Přenos lze dále postupně upravovat b0 a0 K = = GS ( s ) = 2 a2 2 a1 + + ξ ( Ts ) 2 Ts 1 ⎛ s s + s +1 ⎜⎜ a0 a0 ⎝ ωn
K 2
⎞ s ⎟⎟ + 2ξ +1 ωn ⎠
=
p( s) q( s)
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 H ( s ) = GS ( s )
1 s
a v případě popisovaného systému 2. řádu pak H ( s) =
K ⎛ s ⎜⎜ ⎝ ωn
2
⎞ s ⎟⎟ + 2ξ +1 ωn ⎠
1 p( s) 1 = s q( s) s
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 GS ( s ) = K
ωn2 p( s) = 2 2 s + 2ξωn s + ω n q( s )
je pak jeho charakteristická rovnice q( s ) = s 2 + 2ξω n s + ω n2 = 0 Charakteristickou rovnici lze vyjádřit jako součin kořenových činitelů s 2 + 2ξωn s + ωn2 = ( s − s1 ) ( s − s2 ) 154
Přechodové charakteristiky dynamických systémů 2. řádu
a pro relativní tlumení ξ < 1 určit oba kořeny této rovnice s1, 2 = −ξωn ± jωn 1 − ξ 2 = −ξωn ± jωd
kde ωd = ωn 1 − ξ 2 je tzv. přirozená frekvence tlumeného systému. Obraz přechodové charakteristiky H(s) můžeme s ohledem na uvedené vyjádřit H (s) = K
ωn2 s ( s + ξωn − jωn 1 − ξ 2 ) ( s + ξωn + jω n 1 − ξ 2 )
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 ⎛ ⎞ ωn2 ⎟ + h(t ) = K ⎜⎜ 2 2 ⎟ ⎝ s + 2ξωn s + ωn ⎠ s =0 ⎡⎛ ⎞ ωn2 ⎟ + 2 Re ⎢⎜ ⎢⎜ s ( s + ξω − jω 1 − ξ 2 ) ⎟ n n ⎠ s = −ξωn − jωn ⎣⎝
e 1−ξ
−ξωn t
e
− j (ωn 1−ξ 2 ) t
2
⎤ ⎥ ⎥ ⎦
⎧⎪ ⎡ 1 − ξ 2 ⎤ ⎫⎪ 1 h(t ) = K ⎨1 − e −ξωnt sin ⎢(ωn 1 − ξ 2 ) t + arctg ⎥ ⎬ η (t ) ξ ⎥⎦ ⎪ 1− ξ 2 ⎢⎣ ⎪⎩ ⎭ 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 h(t ) = K [1 − C e −α t sin (ωd t + ψ )] η (t ) kde α je tzv. absolutní tlumení a dále platí, že C=
1 ω = n ; ω dT ω d
α=
ξ T
= ξωn ;
ωn =
ωr = ω n 1 − 2ξ 2 ; ψ = arctg
1 ; T
ωd =
1 1 − ξ 2 = ωn 1 − ξ 2 ; T
1−ξ 2 ωd = = arccos ξ α ξ
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í. 155
Příklady z oblasti automatického řízení
Im
póly pro 0>ξ >1
ωn ωn dvojnásobný pól pro ξ = 1
ωd = ω n 1 − ξ
ψ
2
ωr Re
α = ξωn póly pro ξ =0 póly pro ξ >1
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 ⎡ ⎛ α ⎞ ⎤⎥ −α t ⎢ c(t ) = K 1 ± e 1 + ⎜⎜ ⎟⎟ ⎢ ⎝ ωd ⎠ ⎥⎦ ⎣
156
Přechodové charakteristiky dynamických systémů 2. řádu
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 157
Příklady z oblasti automatického řízení
Tk =
2π
ωd
=
2π
ωn 1 − ξ 2
Lze samozřejmě stanovit i maximum charakteristiky a jemu odpovídající čas hm = K ( 1 + e
−
πα
ωd
) = K (1 + e
−
πξ 1−ξ 2
),
tm =
π
ωd
=
π
ωn 1 − ξ 2
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). 158
Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu
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í ξ
159
Příklady z oblasti automatického řízení
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 GS ( s ) =
Y ( s ) bm s m + ... + b1 s + b0 = U ( s ) an s n + ... + a1 s + a0
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 160
Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu
GS ( s ) =
bm ( s − sb1 )( s − sb 2 ) ... ( s − sbm ) an ( s − sa1 )( s − sa 2 ) ... ( s − san )
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 161
Příklady z oblasti automatického řízení
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
162
Konstrukce dynamických charakteristik systému s využitím Control System Toolboxu
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)
163
Příklady z oblasti automatického řízení
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
164
Frekvenční charakteristiky dynamických systémů 2. řádu
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
u = u 0 e jω t a rovnici výstupních kmitů
y = y0 e j(ω t +ϕ ) 165
Příklady z oblasti automatického řízení
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 G ( jω ) =
y y0 jϕ = e u u0
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ů G ( jω ) =
y0 = A(ω ) u0
a jejím argumentem je fázový posuv
arg [G ( jω )] = ϕ (ω ) 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 bm ( jω ) m + K + b1 ( jω ) + b0 G ( jω ) = an ( jω ) n + K + a1 ( jω ) + a0 Výrazy v čitateli a ve jmenovateli přenosu G(jω) rozdělíme na reálnou a imaginární část, takže bude G ( jω ) =
e(ω ) + j f (ω) c(ω ) + j d (ω)
kde c(ω ) = a0 − a2 ω 2 + a4 ω 4 − K d (ω ) = a1 ω − a3 ω 3 + a5 ω 5 − K e(ω ) = b0 − b2 ω 2 + b4 ω 4 − K f (ω ) = b1 ω − b3 ω 3 + b5 ω 5 − K 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 G ( jω ) = P(ω ) + j Q(ω ) = A(ω ) eϕ (ω ) Z výše uvedeného dále plyne, že P (ω ) = A(ω ) cos ϕ (ω ) Q(ω ) = A(ω ) sin ϕ (ω ) A(ω ) =
P 2 (ω ) + Q 2 (ω )
ϕ (ω ) = arctg 166
Q(ω ) P(ω )
Frekvenční charakteristiky dynamických systémů 2. řádu
Pro jednotlivé složky přenosu G(jω) zavádíme tyto názvy: P(ω) Q(ω) A(ω) ϕ (ω)
– reálná část frekvenční charakteristiky, – imaginární část frekvenční charakteristiky, – 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 GS ( jω ) = K
ω n2 ( jω ) 2 + 2ξωn jω + ω n2
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 GS ( jω ) = K
ω n2
(ω − ω ) + j 2ξωnω 2 n
2
=K
1 (1 − ϖ ) + j 2ξϖ 2
kde ϖ = ω /ωn je tzv. normalizovaná frekvence. Z uvedeného přenosu vypočteme amplitudo-fázovou frekvenční charakteristiku GS ( jω ) = K
1 −ϖ 2 2ξϖ − jK 2 2 2 2 2 2 (1 − ϖ ) + 4 ξ ϖ (1 − ϖ ) + 4 ξ 2ϖ 2
a logaritmickou amplitudovou charakteristiku 20 log A(ω ) = 20 log K − 20 log (1 − ϖ 2 ) 2 + 4 ξ 2ϖ 2 = = 20 log K − 10 log [(1 − ϖ 2 ) 2 + 4 ξ 2ϖ 2 ] Přesný průběh charakteristiky nahradíme asymptotami. Rovnice první asymptoty pro
ω → 0 je
167
Příklady z oblasti automatického řízení
20 log A(ω ) ≈ 20 log K − 10 log 1 = 20 log K Rovnice druhé asymptoty pro ω → ∞, kdy zřejmě [(1 − ϖ 2 ) 2 + 4 ξ 2ϖ 2 ] →ϖ 4 , je 20 log A(ω ) ≈ 20 log K − 10 log ϖ 4 = 20 log K − 40 log ϖ 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
ϕ (ω ) = − arg [(1 − ϖ 2 ) + j 2ξϖ ] = −arctg
2ξϖ 1 −ϖ 2
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 168
Frekvenční charakteristiky dynamických systémů 2. řádu
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í ξ
169
Příklady z oblasti automatického řízení
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 170
Frekvenční charakteristiky dynamických systémů 2. řádu
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
171
Příklady z oblasti automatického řízení
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. 172
Frekvenční charakteristiky dynamických systémů 2. řádu
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í ξ
173
Příklady z oblasti automatického řízení
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.
u(t)
y( t )
GS(s) GR(s)
e( t )
w(t)
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.
e( t )
GR(s)
u(t)
Obr. 9-39: Blok regulátoru
Vlastnosti regulátoru typu PID mohou být poněkud zjednodušeně popsány vztahem t
u (t ) = r0 e(t ) + r1 ∫ e(τ ) dτ + r2 0
174
de(t ) dt
Frekvenční charakteristiky dynamických systémů 2. řádu
Přenos regulátoru je GR ( s ) = r0 +
r1 + r2 s s
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) GR ( s ) = r0 +
r1 r s + 2 s Tv s + 1
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. 175
Příklady z oblasti automatického řízení
Obr. 9-41: Skript pro řízení simulačního výpočtu
Obr. 9-42: Variace parametru r0
176
Frekvenční charakteristiky dynamických systémů 2. řádu
Obr. 9-43: Variace parametru r1
Obr. 9-44: Variace parametru r2
Obr. 9-45: Variace parametru Tv
177
Příklady z oblasti automatického řízení
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.
u(t)
y( t )
GS(s) GR(s)
e( t )
w(t)
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).
d2(t) d1(t)
GS(s) u(t)
GR(s)
e( t )
y( t )
w(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 t
u (t ) = r0 e(t ) + r1 ∫ e(τ ) dτ + r2 0
de(t ) dt
kde r0, r1 a r2 představují proporcionální, integrační resp. derivační zesílení regulátoru, nebo případně ve tvaru t
1 de(t ) u (t ) = r0 [ e(t ) + ∫ e(τ ) dτ + Td ] Ti 0 dt 178
Regulační obvod se spojitým PID regulátorem
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í
y ′′′(t ) + 6 y ′′(t ) + 11y ′(t ) + 6 y (t ) = 6 u (t ) resp. obrazovým přenosem GS ( s ) =
6 s + 6s + 11s + 6 3
2
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
179
Příklady z oblasti automatického řízení
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 180
Regulační obvod se spojitým PID regulátorem
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 181
Příklady z oblasti automatického řízení
⎛ 1 ⎞ ⎟⎟ (1 + Tds s ) E ( s ) U ( s ) = r0s ⎜⎜1 + ⎝ Tis s ⎠
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 ⎛ ⎞ ⎛ r T r 1 1 ⎞ ⎟⎟ (1 + Tds s ) = r0s + r0s ds + 0s + r0s Tds s r0 ⎜⎜1 + + Td s ⎟⎟ = r0 + 0 + r0 Td s = r0s ⎜⎜1 + Ti s Tis Tis s ⎠ ⎝ Ti s ⎝ Tis s ⎠
Porovnáme-li nyní členy s odpovídající mocninou operátoru s, pak ⎛ T ⎞ r0 = r0s ⎜⎜1 + ds ⎟⎟ ⎝ Tis ⎠
r0 r0s = Ti Tis 182
⇒
Ti = r0
Tis = r0s r0s
⎛ Tds ⎞ Tis ⎟⎟ ⎜⎜1 + = Tis + Tds ⎝ Tis ⎠ r0s
Regulační obvod se spojitým PID regulátorem
r0 Td = r0s Tds
⇒
Td =
r0s Tds = r0
r0s Tds T T = is ds ⎛ T ⎞ Tis + Tds r0s ⎜⎜1 + ds ⎟⎟ ⎝ Tis ⎠
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
u [%]
pp
100 80 60 40 20 0
20 40
60 80 100 y [%]
Obr. 9-56: K pásmu proporcionality (w = 55 %, pp = 40 %, r0 = 2,5)
183
Příklady z oblasti automatického řízení
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
δ = pp =
1 100 [%] r0
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í ⎛ T ⎞ ⎛ 0,2 ⎞ r0 = r0s ⎜⎜1 + ds ⎟⎟ = 1,2 ⎜1 + ⎟ = 1,5 ⎝ 0,8 ⎠ ⎝ Tis ⎠ 184
Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse
Ti = Tis + Tds = 0,8 + 0,2 = 1 s Td =
Tis Tds 0,8 ⋅ 0,2 = = 0,16 s Tis + Tds 0,8 + 0,2
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 t
u (t ) = r0 e(t ) + r1 ∫ e(τ ) dτ − r2 0
dy (t ) dt
nebo případně ve tvaru t
u (t ) = r0 [ e(t ) +
1 dy (t ) ] e(τ ) dτ − Td ∫ dt Ti 0
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). 185
Příklady z oblasti automatického řízení
du(t)
y( t )
GS(s) u(t)
GR(s)
e( t )
w(t)
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 GS ( s ) =
6 s + 6 s + 11s + 6 3
2
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 186
Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse t
1 d u (t ) = r0 [ Fp w(t ) − y (t ) + ∫ e(τ ) dτ + Td ( Fd w(t ) − y (t ))] Ti 0 dt
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ř. GS ( s ) =
1 (T1 s + 1) (T2 s + 1) (T3 s + 1)
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. 187
Příklady z oblasti automatického řízení
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 PI PID
0,5 rk 0,45 rk 0,6 rk
– 0,85 Tk 0,5 Tk
– – 0,125 Tk
Tab. 9-2: Pravidla Zieglera-Nicholse, metoda ustálených kmitů
188
Regulátor
r0
Ti
Td
P PI PID
1 / (K Θ) 0,9 / (K Θ) 1,2 / (K Θ)
– 3 Tu 2 Tu
– – 0,5 Tu
Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse
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.
y Tu
Tn
1
y(t) ti y(∞) yi Θ
0
t [s]
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 189
Příklady z oblasti automatického řízení
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); ti=t(i); tecna=k*(t-ti)+y(i);
%nalezeni maxima %vyber z vektoru %vypocet tecny %(prochazi bodem
na prubehu derivace a jeho index hodnot casu t rovnice primky kx+q 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 I=find(tecna>=K); Tn=t(I(1))-Tu, clear I
%doba prutahu %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)
190
Modifikace PID algoritmu, seřízení regulátoru metodou Zieglera a Nicholse
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
191
Příklady z oblasti automatického řízení
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.
u(t)
y( t )
GS(s) GR(s)
e( t )
w(t)
Obr. 9-70: Blokové schéma regulačního obvodu
192
Oblast stability regulačního obvodu
Vlastnosti regulátoru typu PID jsou popsány diferenciální rovnicí t
u (t ) = r0 e(t ) + r1 ∫ e(τ ) dτ + r2 0
de(t ) dt
Přenos regulátoru je GR ( s ) = r0 +
r1 + r2 s s
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í
y ′′′(t ) + 6 y ′′(t ) + 11y ′(t ) + 6 y (t ) = 6 u (t ) resp. přenosem GS ( s ) =
6 s + 6s + 11s + 6 3
2
Obrazový přenos PI regulátoru je GR ( s ) = r0 +
je
r1 r0 s + r1 = s s
Přenos uzavřeného regulačního obvodu na obr. 9-70, např. tzv. přenos řízení Gyw(s) Gyw ( s ) =
GR ( s ) GS ( s ) Y (s) = W ( s ) 1 + GR ( s ) GS ( s )
Dosadíme-li za přenos regulátoru GR(s) a soustavy GS(s), pak r0 s + r1 6 3 2 6 r0 s + 6 r1 s s + 6s + 11s + 6 = L = Guw ( s ) = 4 3 r0 s + r1 6 s + 6s + 11s 2 + 6s (1 + r0 ) + 6 r1 1+ 3 2 s s + 6s + 11s + 6 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 s 4 + 6s 3 + 11s 2 + 6 s (1 + r0 ) + 6 r1 = 0 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ů Gyw ( s ) =
U (s) GR ( s ) = , W ( s ) 1 + GR ( s ) GS ( s )
Gew ( s ) =
E ( s) 1 = W ( s ) 1 + GR ( s ) GS ( s ) 193
Příklady z oblasti automatického řízení
nebo také podle vztahu 1 + Go ( s ) = 1 + GR ( s ) GS ( s ) = 0 kde Go je přenos otevřeného regulačního obvodu, který lze vyjádřit Go ( s ) =
Y ( s) = GR ( s ) GS ( s ) E ( s)
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á) 6 (1 + r0) > 0 ⇒ r0 > –1 ;
1, 6, 11 > 0 ;
6 r1 > 0 ⇒ r1 > 0
Postačující podmínkou je, aby všechny Hurwitzovy subdeterminanty Hi (hlavní rohové minory) Hurwitzovy matice ⎡an−1 ⎢a ⎢ n H=⎢ 0 ⎢ ⎢ 0 ⎢⎣ 0
a n −3
a n −5
0
an−2
an−4
0
an−1 an
a n −3 an−2
0 0
0
0
a2
0⎤ 0 ⎥⎥ 0⎥ ⎥ 0⎥ a0 ⎥⎦
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 0 0 ⎤ ⎡6 6 (1 + r0 ) ⎢1 11 6 r1 0 ⎥⎥ ⎢ H= ⎢0 6 6 (1 + r0 ) 0 ⎥ ⎥ ⎢ 1 11 6 r1 ⎦ ⎣0
a pro její jednotlivé subdeterminanty pak platí H1 = 6 > 0
⎡6 6 (1 + r0 )⎤ H 2 = det ⎢ = 6 ⋅ 11 − 1 ⋅ 6 (1 + r0 ) = 6 (10 + r0 ) > 0 ⇒ r0 < 10 11 ⎥⎦ ⎣1 0 ⎤ ⎡6 6 (1 + r0 ) ⎢ H 3 = det ⎢1 11 6 r1 ⎥⎥ = 6 ⋅ 11 ⋅ 6 (1 + r0 ) − 6 ⋅ 6 r1 ⋅ 6 − 6 (1 + r0 ) ⋅ 1 ⋅ 6 (1 + r0 ) = ⎢⎣0 6 6 (1 + r0 )⎥⎦ = 36 (−r02 + 9 r0 + 10 − 6 r1 ) > 0 ⇒ − r02 + 9 r0 + 10 > 6 r1 194
Oblast stability regulačního obvodu
H 4 = 6 r1 H 3 > 0 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.
r1 5
5,04
2,5 1,67
4,5
–2,5 –1
0
2,5
5
7,5
10
r0
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. 195
Příklady z oblasti automatického řízení
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
196
Dvoupolohová a třípolohová regulace
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.
u(t)
y( t )
GS(s) e( t )
w(t)
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.
u u1
0 u2
u
a)
b)
u1
e
e
0 – u1 h
Obr. 9-76: Přepínací charakteristiky dvoupolohového regulátoru a) nesymetrické b) symetrické s hysterezí h
u u1 h
0
e
– u1 n Obr. 9-77: Symetrické přepínací charakteristiky třípolohového regulátoru s hysterezí h a s pásmem necitlivosti n
197
Příklady z oblasti automatického řízení
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 198
Dvoupolohová a třípolohová regulace
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 GS1 ( s ) =
2 , ( s + 1) 5
GS2 ( s ) =
2 , s + 2s + 1 2
GS3 ( s ) =
2 s + 2s 2
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 199
Příklady z oblasti automatického řízení
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. 200
Dvoupolohová a třípolohová regulace
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. 201
Příklady z oblasti automatického řízení
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ů.
u(t)
y( t )
Proces
Č/A
A/Č y(k)
u(k)
Algoritmus řízení
e(k)
w(k)
Řídicí počítač Obr. 9-87: Blokové schéma regulačního obvodu s řídicím počítačem
202
Číslicové řízení, regulátor PSD
Čí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).
y( t )
u(t)
3T
0
T
2T
3T
4T
5T t [s]
0
T
2T
5T t [s]
u(k)
y(k)
3T
0
T
4T
2T
3T
4T
5T t [s]
0
T
2T
4T 5T t [s]
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 t
u (t ) = r0 e(t ) + r1 ∫ e(τ ) dτ + r2 0
de(t ) dt
je přibližně nahrazen diskrétním výpočtem v k-tém regulačním kroku v čase t = k T. 203
Příklady z oblasti automatického řízení
Jestliže e(k T ) − e [(k − 1)T ] de(t ) ≈ r2 T dt
r2 t
k −1
0
i =0
r1 ∫ e(τ ) dτ ≈ r1 {e(0) T + e(T ) T + e(2T ) T + L + e [(k − 1)T ] T } = r1 T ∑ e(i T )
pak k −1
u (k T ) = r0 e(k T ) + r1 T ∑ e(i T ) + r2 i =0
e(k T ) − e [(k − 1)T ] T
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.
e( t )
…
0
T
2T
3T
(k – 1)T k T (k + 1)T
t [s]
Obr. 9-89: K diskrétní náhradě regulátoru
Vypočtěme diferenci ∇u (k T ) = u (k T ) − u [(k − 1)T ] = k −1
= r0 e(k T ) + r1 T ∑ e(i T ) + r2 i =0
k −2
− r0 e(k T ) − r1 T ∑ e(i T ) − r2 i =0
1 {e(k T ) − e [(k − 1)T ]} − T 1 {e [(k − 1)T ] − e [(k − 2)T ]} = T
r ⎤ 2r ⎤ r ⎡ ⎡ = e(k T ) ⎢r0 + 2 ⎥ + e [(k − 1)T ] ⎢r1 T − r0 − 2 ⎥ + e [(k − 2)T ] 2 = T⎦ T ⎦ T ⎣ ⎣ = b0 e(k T ) + b1 e [(k − 1)T ] + b2 e [(k − 2)T ]
kde b0 = r0 +
r2 , T
b1 = r1 T − r0 −
2 r2 , T
b2 =
r2 T
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
u (k T ) = u [(k − 1)T + ∇u (k T ) = u (k ) 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 204
Číslicové řízení, regulátor PSD
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 GS ( s ) =
6 s + 6 s + 11s + 6 3
2
Koeficienty PI regulátoru jsou r0 = 0,9 a r1 = 1.
u(t)
y( t )
GS(s) GR(s)
e( t )
w(t)
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.
h
1
h(t) h(∞)
0
2
4
6
8
t [s]
doba praktického ustálení
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 b0 = r0 +
r2 = 0,9 ; T
b1 = r1 T − r0 −
2 r2 = 1 ⋅ 0,1 − 0,9 = −0,8 ; T
b2 =
r2 =0 T
∇u (k T ) = b0 e(k T ) + b1 e [(k − 1)T ] + b2 e [(k − 2)T ] = 0,9 e(k T ) − 0,8 e [(k − 1)T ] u (k T ) = u [(k − 1)T ] + ∇u (k T ) 205
Příklady z oblasti automatického řízení
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 206
Numerická optimalizace parametrů regulátoru
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. 207
Příklady z oblasti automatického řízení
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ů.
u(t)
y( t )
GS(s)
Č/A
A/Č y(k)
u(k)
Regulátor
e(k)
w(k)
PS Obr. 9-95: Blokové schéma regulačního obvodu
Regulovaná soustava (obr. 9-95) je definována přenosem GS ( s ) =
6 s + 6 s + 11s + 6 3
2
Algoritmus vytváření akční veličiny PS regulátorem (byl popsán již v kapitole 9.10) je ∇u (k T ) = b0 e(k T ) + b1 e [(k − 1)T ]
u (k T ) = u [(k − 1)T ] + ∇u (k T ) 208
Numerická optimalizace parametrů regulátoru
Rozšířené kvadratické kritérium s penalizací akčních zásahů je vyjádřeno vztahem Kh
J = ∑ e 2 (k T ) + κ ∇u 2 (k T ) = J (b0 , b1 ) → min k =0
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. 209
Příklady z oblasti automatického řízení %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 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; dT=0.001; kappa=1; w=1; du=0; %w=0; du=1;
% % % % % %
zadana doba simulace (kriterialni horizont) pevne zadany simulacni krok pro opt_PS_m.mdl vaha akcnich zasahu v kriteriu (pro male kappa rychlé reg. pochody a naopak) reakce na zmenu zadane hodnoty reakce pri poruse na akcni velicine (na vstupu)
b0=4.5; b1=-4.215; x0=[b0 b1]; sim('opt_PS_m');
% parametry regulatoru na zacatku optimalizace % volba vektoru optimalizovanych parametru % 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)
210
Numerická optimalizace parametrů regulátoru 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 ∇u (k T ) = 1,343 e(k T ) − 1,241 e [(k − 1)T ]
u (k T ) = u [(k − 1)T ] + ∇u (k T ) 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. 211
Příklady z oblasti automatického řízení ***************************************************************** * 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Func-count 1 3 5 7 9 11 13 15 17 19 21 23 24 26 27 29 31 33 35 37 39
min f(x) 5.51755 3.55176 3.37381 3.37381 3.37381 3.37381 3.30405 3.30405 3.27281 3.10336 3.04325 2.61162 2.61162 1.9294 1.9294 1.34946 1.22409 1.16306 1.16306 1.16306 1.15837
Procedure initial simplex contract outside contract inside contract inside contract inside reflect contract inside expand expand expand expand reflect expand reflect expand reflect contract outside contract outside contract inside 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
212
Numerická optimalizace parametrů regulátoru
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
213
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. 215
Literatura
[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.
216
Příloha A
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.
přímá transformace L
řešení v originále
výsledek v originále
úloha v obraze
řešení v obraze
zpětná transformace L
prostor originálů
–1
snadné řešení
obtížné řešení
úloha v originále
výsledek v obraze
prostor obrazů
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 ∞
L { f (t )} = ∫ f (t ) e − s t dt = F ( s ) 0
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í 217
Příloha A
an f 2( n ) (t ) + an−1 f 2( n−1) (t ) + L + a1 f 2′(t ) + a0 f 2 (t ) = = bm f1( m ) (t ) + bm−1 f1( m−1) (t ) + L + b1 f1′(t ) + b0 f1 (t )
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 ⎧ d f (t ) ⎫ L ⎨ ⎬ = s F ( s ) − f (0+ ) ⎩ dt ⎭ 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 ⎧ d n f (t ) ⎫ n n −1 n−2 ( n−2 ) L ⎨ (0+ ) + f ( n−1) (0+ )] ⎬ = s F ( s ) − [ s f (0+ ) + s f ′(0+) + L + s f n ⎩ dt ⎭
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 ∞
L {a0 f 2 (t )} = ∫ a0 f 2 (t ) e 0
∞
kde však výraz
∫f
2
−s t
∞
dt = a0 ∫ f 2 (t ) e − s t dt 0
(t ) e −s t dt je podle definice obrazem funkce f2(t), a tedy
0
L {a0 f 2 (t )} = a0 F2 ( s ) Pro člen a1 f 2′(t ) bude ∞
L {a1 f 2′(t )} = ∫ a1 0
∞
d f (t ) d f 2 (t ) − s t e dt = a1 ∫ 2 e − s t dt dt dt 0
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 L {a1 f 2′(t )} = a1 s F2 ( s )
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 F2 ( s ) bm s m + bm−1 s ( m−1) + ... + b1 s + b0 = = F (s) F1 ( s ) an s n + an−1 s ( n−1) + ... + a1 s + a0 218
Příloha A
je tzv. obrazový přenos, který je tedy vlastně roven F ( s) =
L { f 2 (t )} L { f1 (t )}
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 c + j∞
L
1 {F ( s )} = F ( s ) e s t ds = f (t ) ∫ 2 π j c − j∞
−1
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
Definice přímé transformace
L { f (t )} = ∫ f (t ) e − s t dt = F ( s )
∞
1
0
(regulární pro Re [s] > α )
L {c1 f1 (t ) ± f 2 g (t )} = 2
Linearita
= c1 L { f1 (t )} ± c2 L { f1 (t )} (platí obdobně pro libovolný počet členů)
3
Posun v originále (translace, časové zpoždění)
L { f (t − a)} = e − a s F ( s ) a ≥ 0, f (t) = 0 pro t < 0
4
Posun v obraze (substituce)
L {e a t f (t )} = F ( s − a)
Konvoluce
⎧t ⎫ L ⎨∫ f1 (t − τ ) f 2 (τ ) dτ ⎬ = F1 ( s ) F2 ( s ) ⎩0 ⎭
5
6
Změna měřítka
7
Věta o počáteční hodnotě
8
Věta o konečné hodnotě
L { f (k t )} =
⎧ ⎛ t ⎞⎫ 1 ⎛s⎞ F ⎜ ⎟ , L ⎨ f ⎜ ⎟⎬ = k F ( s k ) k ⎝k⎠ ⎩ ⎝ k ⎠⎭ (platí pro k > 0)
lim f (t ) = lim s F ( s )
t → 0+
s →∞
lim f (t ) = lim s F ( s ) t →∞
s →0
(platí pouze tehdy, jestliže limita existuje) 219
Příloha A Tab. A-1: pokračování
9
Název
Vzorec
Derivace obrazu
L {t f (t )} = − F ′( s )
Integrál obrazu
⎧ f (t ) ⎫ L ⎨ ⎬ = ∫ F ( q ) dq ⎩ t ⎭ s
∞
10
11
Obraz derivace
L { f ′(t )} = s F ( s ) − f (0+) L { f ( n ) (t )} = s n F ( s ) − [ s n−1 f (0+ ) + s n−2 f ′(0+ ) + + L + s f ( n−2 ) (0+ ) + f ( n−1) (0+ )]
12
⎧t ⎫ 1 L ⎨∫ f (τ ) dτ ⎬ = F ( s ) ⎩0 ⎭ s
Obraz integrálu
T
13
Obraz periodické funkce (s periodou T)
L { f (t )} =
∫ f (t ) e
−s t
dt
0
1 − e −s T c + j∞
14
Definice zpětné transformace
L
1 {F ( s )} = F ( s ) e s t ds = f (t ) ∫ 2 π j c − j∞
−1
1 d ri −1 [( s − si ) ri F ( s ) e s t ] s → si ( r − 1)! ds ri −1 i =1 i p
f (t ) = ∑ lim
15
Zpětná transformace pomocí vzorce a pomocí reziduí
p
f (t ) = ∑ res [ F ( s ) e s t ] i =1
pro F ( s ) =
s = si
P( s) , p pólů ri - násobných Q( s)
Tab. A-2: Slovník základních korespondencí Laplaceovy transformace
Obraz F(s)
Originál f (t)
δ (t )
1
1
2
1 s
⎧0 pro t < 0 ⎩1 pro t ≥ 0 (jednotkový skok, Heavisideova funkce)
3
1 s2
t
4
1 sn
t n−1 pro n = 1, 2, 3, K (n − 1)!
5
1 s+a
e−a t
220
(jednotkový impuls, Diracova funkce)
η (t ) = ⎨
Příloha A
Tab. A-2: pokračování
Obraz F(s)
Originál f (t)
6
1 ( s + a) 2
t e−at
7
1 ( s + a) n
8
1 s ( s + a)
1 (1 − e −a t ) a
9
1 s (s + a)
1 (a t − 1 + e −a t ) 2 a
10
s ( s + a) 2
(1 − a t ) e − a t
11
1 s ( s + a) 2
1 [1 − (1 + a t ) e −a t ] a2
12
1 ( s + a ) ( s + b)
1 ( e − a t − e −b t ) b−a
13
s ( s + a ) ( s + b)
1 (b e −b t − a e −a t ) b−a
14
1 s ( s + a ) ( s + b)
15 16 17
18
t n−1 e −a t (n − 1)!
2
1 ⎡ −a t −b t ⎤ ⎢⎣1 + a − b (b e − a e )⎥⎦
1 ab
ω
cos ω t
s + ω2 2
s s + ω2
e − a t sin ω t
2
ω
e − a t cos ω t
( s + a) 2 + ω 2 s+a ( s + a) 2 + ω 2
1 1−ξ
19
2
[
e −ξω n t sin (ωn 1 − ξ 2 ) t
]
(pro ξ < 1) −1
ωn2 s 2 + 2ξωn s + ωn2
pro n = 1, 2, 3, K
1− ξ
2
[
e −ξωn t sin (ωn 1 − ξ 2 ) t −ψ
ψ = arctg
1−ξ 2
ξ
]
, ξ<1
221
Příloha A Tab. A-2: pokračování
Obraz F(s)
Originál f (t)
−1
20
21
222
1−ξ
s s 2 + 2ξωn s + ωn2
ωn2 s ( s 2 + 2ξωn s + ωn2 )
2
[
e −ξωn t sin (ωn 1 − ξ 2 ) t − ψ
ψ = arctg 1−
1 1−ξ
2
1−ξ 2
ξ
]
, ξ<1
[
e −ξωn t sin (ωn 1 − ξ 2 ) t + ψ
ψ = arctg
1−ξ 2
ξ
, ξ<1
]
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