• No results found

APLIKACE POKROČILÝCH REGULAČNÍCH METOD PRO ŘÍZENÍ SPOJITÝCH SYSTÉMŮ

N/A
N/A
Protected

Academic year: 2022

Share "APLIKACE POKROČILÝCH REGULAČNÍCH METOD PRO ŘÍZENÍ SPOJITÝCH SYSTÉMŮ"

Copied!
77
0
0

Loading.... (view fulltext now)

Full text

(1)

APLIKACE POKROČILÝCH REGULAČNÍCH METOD PRO ŘÍZENÍ SPOJITÝCH SYSTÉMŮ

Diplomová práce

Studijní program: N2612 – Elektrotechnika a informatika Studijní obor: 3906T001 – Mechatronika

Autor práce: Bc. David Černý Vedoucí práce: Ing. Martin Diblík, Ph.D.

Liberec 2014

(2)
(3)
(4)

Prohlášení

Byl jsem seznámen s tím, že na mou diplomovou práci se plně vzta- huje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé diplomové práce pro vnitřní potřebu TUL.

Užiji-li diplomovou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tom- to případě má TUL právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše.

Diplomovou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím mé diplomové práce a konzultantem.

Současně čestně prohlašuji, že tištěná verze práce se shoduje s elek- tronickou verzí, vloženou do IS STAG.

Datum:

Podpis:

(5)

Poděkování

Rád bych poděkoval vedoucímu práce Ing. Martinu Diblíkovi Ph.D.

a konzultantovi Ing. Lukaši Hubkovi Ph.D. za poskytnutí odborných rad, věcné připomínky, ochotu a vstřícný přístup během zpracování této práce. Velké poděkování patří mé rodině a přítelkyni za podporu, trpělivost a pochopení při mém studiu.

(6)

Abstrakt

Práce se zabývá realizací pokročilých metod řízení na PLC firmy B&R pro úlohu regulace otáček motoru spojeného pružnou spojkou s tachodynamem. Úloha demonstruje využití prostředí B&R Automation Studio a doplňku pro Simulink - B&R Target for Simulink. Navržené a realizované regulátory jsou porovnány s regulací pomocí Matlab Real-Time Toolbox a nasimulovanými hodnotami. Ovládání celé úlohy je prováděno pomocí vytvořené vizualizace s možností změny seřízení regulátorů.

Klíčová slova

B&R, Automation studio, Target for Simulink, regulace, spojité systémy, Matlab, Simulink, mechatronika

Abstract

The work deals with the implementation of advanced control methods on B&R PLC and flexible coupled motor with tachogenerator. The work demonstrate use B&R Automation Studio and Simulink addon - B&R Target for Simulink. Designed and implemented controllers are compared with a regulation via Matlab Real-Time Toolbox and simulation. The regulation is controlled by the visualization, which allow the change controllers tuning.

Key words

B&R, Automation studio, Target for Simulink, control, continous dynamics systems, Matlab, Simulink, mechatronics

(7)

7

Obsah

1 Úvod ... 13

2 Software použitý v práci ... 14

2.1Matlab a Simulink ... 16

2.2 B&R Automation Studio ... 16

2.3 B&R Automation Target for Simulink ... 16

2.4 Kompatibilní kompilátor s Matlabem ... 16

3 Instalace softwaru ... 17

3.1 Základní softwarová výbava ... 17

3.2 Příprava instalace ... 17

3.3 Příprava a ověření funkčnosti kompilátoru ... 18

3.4 Instalace doplňku pro Matlab ... 18

4 Příprava a nastavení programů ... 20

4.1 Konfigurace nového projektu – přidání knihoven ... 20

4.2 Nastavení v prostředí Simulinku ... 21

5 B&R Automation Studio Toolbox ... 23

5.1 Blok konfigurace ... 23

5.2 Vstupní a výstupní blok ... 24

5.3 Rozšířený vstup a výstup ... 25

5.4 Nastavení bloku Parameter ... 26

5.6 Ostatní bloky knihovny ... 27

6 Použitý hardware ... 28

6.1 Parametry PLC ... 28

6.2 Model motoru ... 28

6.3 Identifikace celého modelu ... 29

7 Realizace úlohy ... 30

7.1 PID regulace ... 30

7.2 Úprava schématu pro převod na C kód ... 32

7.3 Vytvoření PID regulátoru pomocí diskretizace modelu ... 39

7.4 PID regulátor s modifikovanou strukturou ... 42

7.5 Regulátor s vnitřním modelem ... 44

7.6 Stavový regulátor ... 46

7.7 Vytvoření jediného modelu pro reálné PLC ... 51

8 Výsledky regulace a porovnání regulátorů ... 54

8.1 PID regulátor ... 54

(8)

8

8.2 PID regulátor s Takahashiho modifikací ... 56

8.3 Regulátor s vnitřním modelem ... 57

8.4 Stavový regulátor ... 58

9 Vizualizace a ovládání úlohy ... 60

9.1 Okno klasického PID regulátoru ... 63

9.2 Okno PID regulátoru s Takahashiho modifikací ... 64

9.3 Okno regulátoru s vnitřním modelem ... 65

9.4 Okno stavového regulátoru ... 66

Závěr ... 67

Seznam literatury ... 69

Přílohy ... 71

(9)

9

Seznam obrázků

Obrázek 1.1: Princip převodu modelu na zdrojový kód [B&R 2011] ... 14

Obrázek 1.2: Simulace systému [B&R 2011] ... 14

Obrázek 1.3: Oddělený chod simulace [B&R 2011] ... 15

Obrázek 1.4: Realizace převodu modelu pro reálný systém [B&R 2011] ... 15

Obrázek 1.5: Výpis z programového okna Matlabu ... 18

Obrázek 1.6: Instalace doplňku v prostředí Matlabu ... 19

Obrázek 1.7: B&R Automation Studio toolbox ... 19

Obrázek 2.1: Přidání knihovny brsystem ... 20

Obrázek 2.2: Nastavení modelu v Simulinku ... 21

Obrázek 2.3: Nastavení základních parametrů ... 22

Obrázek 2.4: Configuration View ... 22

Obrázek 3.1: Nastavení konfiguračního bloku ... 23

Obrázek 3.2: Možnosti nastavení vstupního bloku ... 24

Obrázek 3.3: Nastavení rozšířeného vstupu ... 25

Obrázek 3.4: Nastavení rozšířeného výstupu ... 26

Obrázek 3.5: Nastavení bloku parametru ... 27

Obrázek 4.1: PLC B&R X20CP1484-1 ... 28

Obrázek 4.2: Schéma zapojení celého modelu s měřící kartou ... 29

Obrázek 4.3: Simulační schéma PID regulátoru ... 31

Obrázek 4.4: Změna hodnoty délky simulace ... 32

Obrázek 4.5: Záměna vstupních a výstupních bloků v Simulinku ... 33

Obrázek 4.6: Nastavení parametrů pomocí bloků PARAMETER ... 33

Obrázek 4.7: Nový projekt v Automation Studiu ... 34

Obrázek 4.8: Připravené prostředí Automation Studia ... 34

Obrázek 4.9: Nastavení periody vzorkování ... 35

Obrázek 4.10: Nastavení cesty k projektu a konfigurace ... 35

Obrázek 4.11: Zahájení generování kódu ze Simulinku ... 36

Obrázek 4.12: Proces generování zdrojového kódu... 37

Obrázek 4.13: Výstraha před zavedením programu do Automation Studia ... 37

Obrázek 4.14: Potvrzení o úspěšném převodu modelu do Automation Studia .. 37

Obrázek 4.15: Vygenerovaný program v prostředí Automation Studia ... 38

Obrázek 4.16: Vytvoření taskové třídy a přiřazení programu ... 39

Obrázek 4.17: Spojitý model s blokem PID Controller ... 39

Obrázek 4.18: Úprava vstupů modelu... 40

Obrázek 4.19: Prostředí Simulink Model Discretizer ... 40

(10)

10

Obrázek 4.20: Diskretizovaný model PID regulátoru ... 41

Obrázek 4.21: Přiřazení parametrů bloku PID Controller ... 42

Obrázek 4.22: Modifikovaný model PID regulátoru ... 43

Obrázek 4.23: Upravený model modifikovaného PID regulátoru ... 43

Obrázek 4.24: Regulační schéma s vnitřním modelem ... 44

Obrázek 4.25: Upravené schéma s vnitřním modelem ... 44

Obrázek 4.26: Připravené schéma regulátoru s vnitřním modelem ... 45

Obrázek 4.27: Model stavového regulátoru s rozšířenou maticí regulátoru ... 47

Obrázek 4.28: Nastavení stavového regulátoru pomocí vektoru K ... 48

Obrázek 4.29: Upravený model pro reprezentaci vektoru regulátoru ... 49

Obrázek 4.30: Estimátor s reprezentací matic samostatnými bloky ... 50

Obrázek 4.31: Diskrétní stavový regulátor s blokem Estimator ... 51

Obrázek 4.32: Použití Multiport Switch bloku k výběru regulátoru... 52

Obrázek 4.33: Náhrada přenosu za rozšířený vstup a výstup ... 52

Obrázek 4.34: Nastaveni přiřazení vstupů v Physical View ... 53

Obrázek 4.35: Výběr proměnné přiřazené k analogovému vstupu ... 53

Obrázek 5.1: Ukázka tvorby vizualizace v Automation Studiu ... 60

Obrázek 5.2: Úvodní strana vizualizace ... 61

Obrázek 5.3: Okno se samostatným grafem ... 61

Obrázek 5.4: Okno diagnostiky a SDM manageru ... 62

Obrázek 5.5: Okno nastavení vizualizace ... 62

Obrázek 5.6: Okno s vizualizací klasického PID regulátoru ... 63

Obrázek 5.7: Okno PID regulátoru s Takahashiho modifikací ... 64

Obrázek 5.8: Okno regulátoru s vnitřním modelem ... 65

Obrázek 5.9: Okno stavového regulátoru ... 66

Seznam grafů:

Graf 1: naměřené průběhy pro PID regulátor ... 55

Graf 2: průběh regulace PID regulátoru s modifikovanou strukturou ... 56

Graf 3: průběh regulace pomocí regulátoru s vnitřním modelem ... 57

Graf 4: průběh regulace stavového regulátoru ... 58

(11)

11

Seznam zkratek a symbolů

B&R Berneckner + Rainer Industrie-Elektronik Ges.m.b.H.

PLC Programmable Logic Controller ( programovatelný logický automat) RS232 rozhraní sériové linky

PID regulátor s proporcionální, integrační a derivační složkou T perioda vzorkování [s]

w žádaná veličina

y regulační veličina

kT k-násobek periody vzorkování [s]

Rkrit hodnota kritického zesílení při seřízení dle Zieglera a Nicholse Tkrit perioda kritických kmitů při seřízení dle Zieglera a Nicholse kI integrační konstanta u PID regulátoru s Takahashiho modifikací kP proporcionální konstanta u PID regulátoru s Takahashiho modifikací kD derivační konstanta u PID regulátoru s Takahashiho modifikací CPU Central Processing Unit, v prácí myšlen procesor v PLC

F přenos motoru z úlohy

q0, q1, q2 jednotlivé členy pro seřízení diskrétního PID regulátoru r0 zesílení spojitého PID regulátoru

Ti integrační časová konstanta spojitého PID regulátoru TD derivační časová konstanta spojitého PID regulátoru

*.txt koncovka textového souboru

Vyber proměnná zaručující možnost volby jednoho z regulátorů Gs,GD přenosy ze kterých se skládá přenos motoru

Gsm, Gdm přenosy ze kterých se skládá model motoru M matice diskrétních koeficientů stavového popisu

N matice buzení

C matice výstupu

(12)

12

D matice převodu

L matice estimátoru

K matice diskrétního stavového regulátoru

R, Q matice váhových koeficientů, výpočet regulátoru kvadratickým kritériem

P kovarianční matice

(13)

13

1 Úvod

Vývoj a nastavení regulátorů, modelů, systémů a dalších zapojení, probíhá v dnešní době především pomocí programu Matlab a Simulink. V případě nutnosti implementace navrženého modelu pak uživatel často musí přistoupit k tvorbě zcela nového zdrojového kódu, speciálně vytvořeného pro potřeby konkrétního průmyslového automatu či počítače. Potřeba tvorby nového programu je samozřejmě časově náročná a u rozsáhlých modelů může vést na velmi těžko přehledný zdrojový kód. Tento problém s přehledností se často řeší volbou programovacího jazyka, použitím strukturovaného textu, diagramu funkčních bloků či Ladder Diagramu.

Tyto nedostatky elegantně řeší doplněk pro Matlab, který využívá možnosti jednoduchého převodu navrženého modelu v Simulinku na program v jazyce C. Tento program je generován do vývojového prostředí B&R Automation Studio. Tento převod je možné uskutečnit bez znalostí diskretizace či úprav spojitého systému navrženého v Simulinku. Z hlediska návrhu simulačního schématu se dá říci, že uživatel má jednodušší cestu k samotné realizaci modelu, či jeho úpravám. Diplomová práce bude volně navazovat na téma semestrálního projektu a uplatní se v ní dříve nabyté zkušenosti. Hlavním cílem práce by mělo být oživení a propojení laboratorní úlohy regulace otáček motoru spojeného pružnou spojkou s tachodynamem v učebně TK4.

Pro tuto úlohu bude vytvořeno několik typů regulace s vizualizačním rozhraním a možností výběru požadované regulace, samozřejmě s možností změny jejích parametrů. Práce se bude také zabývat popisem a funkčností jednotlivých programů, přípravou celé úlohy a postupem tvorby programu, od návrhu modelu a simulace v Matlabu, přes jeho diskretizaci, následovanou převodem na zdrojový kód. Navržené regulátory pak budou spuštěny na PLC, společně s vizualizačním prostředím pro ovládání úlohy. Funkčnost všech typů regulátorů by pak měla být porovnána s původním modelem v Matlabu a s průběhem regulace pomocí Matlab Real-Time toolboxu, který umožňuje regulaci přímo z prostředí Simulinku přes měřící kartu v PC.

V závěru práce pak bude následovat zhodnocení všech výsledků.

(14)

14

2 Software použitý v práci

Program B&R Automation Studio target for Simulink poskytuje unikátní možnost generování zdrojového kódu z modelu vytvořeného v programu Simulink. Zdrojový kód je přímo generován v jazyce C nebo C++ do připraveného projektu v B&R Automation Studiu, praktický postup je možno vidět na obrázku.

Obrázek 1.1: Princip převodu modelu na zdrojový kód [B&R 2011]

V první řadě je zapotřebí navržený model otestovat. K tomu slouží několik možností, jak celou strukturu uvést do provozu, před tím, než bude PLC připojeno k reálné úloze. Struktura tvorby úlohy umožňuje několik možností jak spustit a simulovat model na reálném PLC. První možností je vytvořit simulaci systému s regulátorem v jediném modelu převedeného na jediný kód programu. Takový kód pracuje na jednom PLC a není možné upravovat zvlášť model a regulátor, a také zasahovat do vnitřní struktury bez nutnosti vygenerování nového kódu a kompilace programu.

Obrázek 1.2: Simulace systému [B&R 2011]

(15)

15 Další možností je vytvoření samostatného kódu pro model a regulátor. Počet vygenerovaných programu pro jediný projekt v Automation Studiu není omezen, stačí dodržet různé pojmenování dílčích programů. Propojení regulátoru a systému je realizováno softwarově v Automation Studiu. Tato možnost simulace především poskytuje větší přehlednost celé úlohy.

Obrázek 1.3: Oddělený chod simulace [B&R 2011]

Poslední možnost je výhodná zvláště pro systémy, u kterých není možnost upravovat současně (rozdílné projekty, nemožnost připojení k jednomu z PLC). Proto je toto propojení realizováno přes vlastní vstupy a výstupy obou PLC, výrobce tuto volbu nazývá Hardware-In-The-Loop řešení.

Jakmile je program a návrh vyzkoušený, je již vcelku jednoduché přejít k reálnému připojení k úloze a program použít v praxi. Nutnost předchozí simulace je na posouzení uživatele, ve školním prostředí, například chybným návrhem regulátoru, nemusí dojít k žádným škodám. Opačným příkladem jsou komerční provozy, u kterých testování na reálné úloze velmi často není možné.

Obrázek 1.4: Realizace převodu modelu pro reálný systém [B&R 2011]

(16)

16 2.1Matlab a Simulink

Pro realizaci úlohy je nutné použít program Matlab respektive Simulink. Ve specifikaci výrobce je požadovaná verze MathWorks relase 2007b, která obsahuje Matlab 7.5, Simulink verzi 7.0.

V semestrálním projektu se autor zabýval především kompatibilitou mezi jednotlivými programy. Na základě těchto zkušeností je autorem doporučována verze Matlabu R2009b a vyšší. Je také důležité uvést, že veškerý software je nainstalován a používán na 64 bitové verzi Windows 7. Na starších verzích Windows nebyla instalace a zprovoznění softwaru vyzkoušena, ale měly by platit stejné požadavky, které budou dále uvedeny v práci. Obecně je vhodné používat nejnovější verzi Matlabu v příslušné verzi k operačnímu systému (64 vs. 32 bit).

V práci je použita 64 bitová verze Matlabu R2011b. Pro tuto verzi Matlabu autor nezaznamenal žádný problém s kompatibilitou s dalším softwarem použitým při práci.

Matlab používá příslušnou verzi Simulinku tedy Simulink 7.8 . 2.2 B&R Automation Studio

Dalším použitým softwarem je B&R Automation Studio 3.0.90.27 SP09. Jedná se oficiální vývojové prostředí pro veškerý hardware firmy B&R. U Automation Studia je doporučeno používat nejnovější dostupné verze programu. Důležité je uvést, že nejnižší podporovaná verze Automation Studia je 3.0.71

2.3 B&R Automation Target for Simulink

Dalším použitým softwarem je doplněk pro prostředí Simulinku, respektive celá knihovna pro Simulink. V práci je použita verze B&R Automation Target for Simulink v4.2. Pro doplněk platí stejná doporučení jako pro Automation Studio, tedy používat nejaktuálnější verzi programu, která je dostupná na webu výrobce. Používat starší verze především 3.x se nedoporučuje, pokud k tomu není specifický důvod (starší verze Automation Studia).

2.4 Kompatibilní kompilátor s Matlabem

Pro správnou funkci doplňku uvedeného v předchozí podkapitole je zapotřebí nainstalovat vhodný kompilátor jazyka C pro Matlab. Vzhledem k tomu, že každá z verzí Matlabu podporuje jinou verzi balíku obsahujícího kompilátor, je zapotřebí

(17)

17 stáhnout příslušný balík odpovídající verzi Matlabu. Jednotlivé verze kompilátorů jsou uvedeny v následujícím odkazu:

http://www.mathworks.com/support/sysreq/previous_releases.html

Zde je možné si vybrat příslušnou verzi Matlabu a v pravém sloupci Suported Compilers zobrazit detaily podporované verze. Pro použitý 64 bitový Matlab R2011b je jako kompatibilní kompilátor doporučován balík Microsoft SDK 7.1.

Důležité je uvést, že příslušný balík je pouze funkční s nainstalovaným Microsoft.NET framework 4.0, což je také uvedeno v tabulce na výše uvedeném odkazu pod příslušnou verzí programu. Bez tohoto balíku neproběhne instalace kompilátoru korektně a poté nelze kompilátor použít v prostředí Matlabu.

3 Instalace softwaru

V této kapitole bude podrobně vysvětlena celá instalace softwaru tak, aby byla zaručena funkčnost jednotlivých dílčích programů. Nedodržení jednotlivých kroků může mít za následek nefunkčnost jednoho nebo více z programů, nebo nefunkčnost některých částí softwaru. Autor důrazně doporučuje u zmíněných programů dodržet pořadí instalace.

3.1 Základní softwarová výbava

Základní softwarovou výbavou je myšleno mít nainstalovaný Matlab příslušné verze k operačnímu systému a mít nainstalované Automation Studio verze 3.0.71. Dále je důležité mít možnost spouštění programů v režimu správce. V současné době vychází kompletní nová verze Automation Studia 4.0.xx, tato verze testována nebyla, ale autor se domnívá, že by v ní neměl být problém s kompatibilitou s ostatním softwarem.

3.2 Příprava instalace

Prvním krokem před instalací softwaru je doporučeno nainstalovat balík Microsoft .NET Framework 4.0. Tento balík mohl být již v systému nainstalován v dřívější době, přesto je doporučeno provést jeho reinstalaci. V rámci semestrálního projektu bylo zjištěno riziko chybné instalace Microsoft SDK studia vlivem neaktuální verze Microsoft .NET Frameworku.

Druhým krokem je instalace vhodného kompilátoru do jazyka C (viz. kapitola 2.4). V případě této práce jde o Microsoft SDK Studio 7.1, v instalátoru je zapotřebí vybrat možnost instalace všech komponent, které jsou dostupné.

(18)

18 3.3 Příprava a ověření funkčnosti kompilátoru

Důležité je ověření, zda se kompilátor korektně nainstaloval a Matlab ho dokáže použít ve svém prostředí. K ověření funkčnosti slouží příkaz mex -setup, který se zadává do příkazového okna Matlabu. Poté je uživatel dotázán, zda má vyhledat instalované kompilátory, svou volbu potvrdí zadáním y. Pokud instalace kompilátoru proběhla v pořádku, objeví se minimálně jedna volba v příkazovém okně. V opačném případě nedošlo ke korektní instalaci kompilátoru, a je nutné tento problém odstranit.

Obrázek 1.5: Výpis z programového okna Matlabu

3.4 Instalace doplňku pro Matlab

Doplněk B&R Automation Studio Target for Simulink je volně stažitelný z webu výrobce. Po stažení je nutné rozbalit celou složku z archivu na vlastní umístění v systému, z kterého bude spuštěna instalace jednotlivých komponent. Výrobce důrazně nedoporučuje rozbalení složky do programových složek Windows tedy C: \Program files a C:\Program files(x86) u 64bit operačního systému. Nejvhodnější je vytvořit samostatnou novou složku na systémovém disku.

Nyní je doplněk připraven k samotné instalaci v Matlabu. Prvním krokem je spuštění Matlabu v režimu správce, defaultně přes pravé tlačítko Spustit jako správce.

Po otevření Matlabu následuje druhý krok, tedy vybrání vhodného kompilátoru.

Postupujeme stejně jako v předchozí podkapitole, ale pokračujeme k výběru kompilátoru, v našem případě zvolíme možnost [1] tedy zadáním 1 do příkazového okna. Matlab se ještě poté zeptá, zda je naše volba ta, kterou jsme chtěli použít, potvrdíme jí napsáním y do příkazového řádku, viz. obrázek 1.2.

(19)

19

Obrázek 1.6: Instalace doplňku v prostředí Matlabu

Následně je nutné vybrat jako pracovní složku tu, kterou jsme si vytvořili na disku s instalací B&R Automation Studio Target for Simulink. Pokud je vše v přádku, uvidíme strukturu adresáře stejnou, jako na obrázku 1.2. Ve složce se nachází soubor install.p, který přes pravé tlačítko volbou Run nebo klávesou F9 spustíme. Proběhne instalace knihoven, která může zabrat několik minut. Na jejím konci instalátor požádá o restartování Matlabu. Pokud vše proběhlo v pořádku, můžeme po restartování programu spustit Simulink. V jeho prohlížeči by se nyní měla nacházet knihovna B&R Automation Studio Toolbox, ve které jsou příslušné bloky.

Obrázek 1.7: B&R Automation Studio toolbox

(20)

20

4 Příprava a nastavení programů

Před samotným použitím programů je zapotřebí provést konfiguraci v jednotlivých programech tak, aby generování zdrojového kódu proběhlo v pořádku. Špatným nastavením programů nedojde k převodu modelu na zdrojový kód. Toto nastavení je zapotřebí provést pokaždé u nového projektu v Automation Studiu, stejně tak u nově vytvořeného modelu v Simulinku.

4.1 Konfigurace nového projektu – přidání knihoven

V prvním kroku si otevřeme Automation studio a vytvoříme nový projekt. V tuto chvíli je jedno, zda jako simulaci nebo rovnou skutečnou HW konfiguraci, pro oba případy je postup stejný. V úvodním okně si zvolíme název projektu, případně vybereme použitý hardware. Po vytvoření projektu je nutné přidat do projektu dvě knihovny, bez kterých by nedošlo k převodu kódu do prostředí Automation Studia.

V záložce Logical View si vybereme pravým tlačítkem složku Libraries a z kontextového menu zvolíme položku Add object…. Ze sloupce Templates vybereme možnost Existing Library a potvrdíme volbu Next. Nyní se nám otevře strom s nabídkou knihoven, kde vybereme knihovnu brsystem a sys_lib. Potvrzením těchto dvou knihoven nás program ještě vyzve k přiřazení knihoven ke všem CPU v projektu nebo pouze k aktivnímu, volbu potvrdíme tlačítkem Finish. Nyní je Automation Studio připraveno k převodu programu z prostředí Simulinku.

Obrázek 2.1: Přidání knihovny brsystem

(21)

21 4.2 Nastavení v prostředí Simulinku

V dalším kroku si vytvoříme nový model v Simulinku. Abychom mohli vyvolat nastavení parametrů pro převod, je zapotřebí do modelu vložit bloček Config z B&R Automation Studio Toolboxu. Popisem jednotlivých bloků se bude práce zabývat v následujících kapitolách. Následně je nutné model uložit tak, aby bylo možné provést nastavení generování kódu. V roletovém menu modelu vybereme položku Simulation a zde Configuration Parameters – klávesová zkratka Ctrl+E. Nyní můžeme vidět stejné okno jako na obrázku 2.2.

Obrázek 2.2: Nastavení modelu v Simulinku

Pokud vše proběhlo správně, jsou vidět ve sloupci Select: položky Solver, B&R Basic Settings, B&R Advanced setting a B&R Information. V první položce, tedy Solver je zapotřebí nastavit v řádku Fixed-step size hodnotu periody vzorkování použité v modelu, tato hodnota se musí shodovat s taskovou třídou v Automation Studiu.

Další položkou je základní nastavení generování kódu, jak je vidět na obrázku 2.3, musíme zde v prvním řádku nastavit cestu k vytvořenému projektu v Automation Studiu, do kterého budeme generovat kód. V následujícím řádku si zvolíme název tasku nebo knihovny, kterou vytvoříme. Výrobce obecně doporučuje volit jednoslovné názvy bez diakritiky v omezeném rozsahu.

(22)

22

Obrázek 2.3: Nastavení základních parametrů

Důležitou položkou jsou také Automation Studio configuration name a Automation Studio PLC name. Do těchto políček vyplníme názvy ze záložky Configation view v Automation Studiu a jméno PLC, které jsme si zvolili. Můžeme také zaškrtnout možnost Add task or library to hardware configuration, která rovnou přiřadí vytvořený task vybrané konfiguraci.

Obrázek 2.4: Configuration View

Další možnosti v základním okně jsou volitelné, ale ve zkratce je popíšeme.

Zaškrtnutím Create zip-file můžeme celý projekt uložit do archivu na cestě nastavené v řádku Zip-file path. V položce Function block name musíme vyplnit jméno funkčního bloku vytvořeného v Simulinku, který je používán ve schématu a musí být převeden do Automation Studia. S touto možností se pojí poslední zaškrtávací políčko Create function block, které zajistí vytvoření funkčního bloku. Poslední položkou v základním nastavení je možnost nastavení taskových tříd a jejich tolerance. Je však doporučeno tyto parametry nastavovat až v samotném prostředí Automation studia, dle jednotlivého hardwaru a typu úlohy.

(23)

23 V položce B&R Advanced Settings není zapotřebí nic nastavovat, přesto však alespoň okrajově budou nastíněny možnosti dalších nastavení, ikdyž nejsou v práci využívány. Do projektu je možné vložit vlastní soubor s definovanými datovými typy, přiložit vlastní zdrojové kódy či celé složky s důležitým obsahem, které mají být součástí projektu. Je zde možné zprovoznit kontinuální převod ze Simulinku do Automation Studia a zpět. Lze nastavit režim kompatibility s nižší verzí Automation studia, či nechat při každé změně automaticky vygenerovat nový kód pro Automation studio. Také je možné vytvořit vlastní soubor s deklarací globálních proměnných a přiložit ho přímo do projektu.

5 B&R Automation Studio Toolbox

Tato kapitola je věnována popisu jednotlivých bloků knihovny B&R Automation studio Toolboxu, která se nachází v prohlížeči knihoven Simulinku. Jednotlivé bloky budou popsány v příslušných kapitolách. Veškeré proměnné a hodnoty musí mít použitý vhodný datový typ, tabulka s datovými typy je uvedena v příloze A. Uživatel má samozřejmě možnost si vytvořit vlastní datový typ, který však musí připojit k projektu a musí vše nastavit dle kapitoly 4.2.

5.1 Blok konfigurace

Konfigurační blok je nejdůležitějším blokem celého toolboxu, protože zaručuje možnost nastavení generování kódu do příslušného jazyka. Zároveň při jeho aktivaci v prostředí Simulinku dojde k inicializaci potřebných položek v okně Configuration parameters viz. kapitola 4.2. V nastavení bloku vybereme C-Code Genereattion (Embedde Real Time Target based), toto nastavení generuje zdrojový kód v jazyce C na základě modelu vytvořeného v Simulinku. Ostatní položky (generování v reálném čase či do jazyka C++) jsou v popisu vynechány a lze je nalézt v manuálu výrobce.

Obrázek 3.1: Nastavení konfiguračního bloku

(24)

24 5.2 Vstupní a výstupní blok

Mezi nejpoužívanější bloky patří vstupní a výstupní blok simulace (Input a Output), kterým nahrazujeme virtuální vstupy a výstupy modelu v Simulinku.

Virtuálními vstupy jsou myšleny takové vstupy, které nejsou použity pro přiřazení ke vstupům nebo výstupům používaného PLC. Vstupy lze ovládat z prostředí Automation Studia, a zároveň v něm monitorovat hodnoty z výstupních bloků, popřípadě je zakreslovat do grafů. K použití reálných hodnot ze vstupů a výstupů PLC se pak používají bloky Extended input a Extended output.

V konfiguraci vstupního (B&R IN) bloku je možné si nastavit jméno vstupní proměnné a její popis v Automation studiu. Dále je možné určit, zda se jedná o lokální nebo globální proměnnou změnou v řádku Variable Scope. Nastavení umožňuje zvolit datový typ, který má proměnná v Automation Studiu používat. V následujících položkách lze určit počáteční hodnotu/y, a zda se jedná o skalární nebo vektorovou veličinu. Poslední volbou je možnost Memory, ve které si může uživatel změnit, zda si nastavenou hodnotu proměnné má PLC pamatovat i po restartu (Retain). Nastavení jména, datového typu a typu proměnné se zobrazí také v popisu bloku přímo v modelu.

Obrázek 3.2: Možnosti nastavení vstupního bloku

(25)

25 Výstupní blok (Output) má totožné nastavení jako blok Input, zde je možné stejně podrobně nastavit parametry jako u vstupního bloku. Blok je odlišný pouze označením a nahrazením výstupu u bločku za vstup do bločku v Simulinku.

5.3 Rozšířený vstup a výstup

Knihovna obsahuje dva velmi užitečné bloky rozšířeného vstupu a výstupu (Extended Input a Extended Output). Tyto bloky nám zaručují vhodné přetypování vstupu a výstupu z Matlabu na reálné vstupy a výstupy PLC. Tato možnost je uživatelsky velice příjemná a odpadá nám nutnost jednotlivé vstupní a výstupní proměnné ručně přetypovávat v prostředí Automation studia.

Obrázek 3.3: Nastavení rozšířeného vstupu

Položky nastavení jména proměnné, jejího popisu, druhu proměnné a jejího rozměru, jsou shodná jako u obyčejného vstupního a výstupního bloku, popsaného v předešlé kapitole. Zaměřme se proto na popis ostatních položek. První položkou je volba datového typu, ve kterém bude vstup reprezentován v Automation Studiu.

Následuje rozsah povolených hodnot, který může proměnná v Automation Studiu nabývat, tento rozsah se obvykle řídí rozsahem hodnot příslušného reálného vstupu na

(26)

26 PLC. Většina vstupních modulů firmy B&R mají stejný rozsah hodnot, který je standardně přednastaven, a je ho možné vidět na obrázku 3.3. Je možné nastavit i počáteční hodnotu na reálném vstupu PLC. V další části nastavíme datový typ, do kterého bude převedena hodnota z reálného vstupu a jeho příslušný rozsah hodnot, kterých má proměnná (výstup) nabývat v Simulinku. Poslední položkou je nastavení ukládání hodnoty do paměti PLC, stejně jako u obyčejných vstupních a výstupních bloků.

Obrázek 3.4: Nastavení rozšířeného výstupu

Z obrázku 3.4 je patrné, že nastavení rozšířeného výstupu je téměř shodné a liší se pouze logickým uspořádáním položek odpovídajících postupu přetypování hodnot ze Simulinku na hodnoty pro Automation Studio.

5.4 Nastavení bloku Parameter

Další z používaných bloků v práci je blok B&R PARAMETER, respektive blok nastavení proměnných parametrů jednotlivých bloků modelu. Tento blok zaručuje možnost měnit hodnoty proměnných nastavených například v blocích Simulinku, jakými jsou Gain, PID Controller a podobné. Díky tomuto bloku, který nemá

(27)

27 v Simulinku žádný vstup a výstup, se nemusí model omezit pouze na konstantní nastavení celého modelu, ale umožňuje parametry bloků měnit za chodu PLC.

Obrázek 3.5: Nastavení bloku parametru

Z obrázku je patrné, že jednotlivé možnosti bloku jsou velmi podobné s předchozími bloky. Nastavení jména, popisu, datového typu, počáteční hodnoty, struktury nebo uložení v paměti je samozřejmostí. Popis jednotlivých možností byl už proveden v kapitole 5.2, a není nutné ho uvádět znovu.

5.6 Ostatní bloky knihovny

Ostatní bloky knihovny nejsou v práci používány, a tudíž bude následovat pouze jejích výčet a jednoduchý popis funkce příslušného bloku. Prvním typem jsou vstupní a výstupní bloky pro případ použití sběrnic v modelu, jedná se o bloky Bus Input a Bus Output, jejich nastavení a práce s Bus Editorem v Simulinku je popsána v manuálu výrobce. Poslední dvojicí nepopsaných bloku jsou Structure Input a Structure Output, které je možné použít ke vstupu a výstupu vlastnoručně vytvořené datové struktury (datového typu). Zavedení této struktury do projektu bylo naznačeno v kapitole 4.2 a je ještě nutné dodržet některá nastavení uvedená v manuálu výrobce. Použití těchto bloků však může být daleko více problematické a je nutné je používat obezřetně především tam, kde tyto bloky budou opravdovým přínosem ke zjednodušení orientace v modelu.

Případně tam kde, nelze použít některý z používaných datových typů.

(28)

28

6 Použitý hardware

Úloha je realizována pomocí PLC firmy B&R a školního modelu motoru spojeného pružnou spojkou s tachodynamem. Celá úloha je napájena stabilizovaným zdrojem ZPA Děčín s výstupním napětím 25 V/10 A.

6.1 Parametry PLC

Pro účely úlohy bylo vybráno PLC B&R X20CP1484-1. Jedná se o PLC založené na platformě Intel Celeron 266, s 2x16 Kb L1 cache a vnitřní pamětí pro proměnné 64kB. Nejkratším cyklus PLC je 800 µs s dobou instrukce 0.007 µs. PLC je vybaveno komunikačními porty RS232, ethernet, POWERLINK, USB s X2X Link.

K výbavě také patří paměť 64 MB SDRAM a 512MB karta typu Compact Flash.

K PLC je připojen modul analogových vstupů X20AI4222, který má rozsah ±10 V a rozlišení 13 bit obsahující čtyři samostatné výstupy. Dále je připojen modul čtyř analogových výstupů X20AO4622, tento modul má vstupní rozsah ±10 V a používá 12 bit rozlišení.

Obrázek 4.1: PLC B&R X20CP1484-1

6.2 Model motoru

Model soustavy se nachází v učebně TK4, jde o soustavu dvou motorů spojených pružnou spojkou, přičemž jeden motor funguje jako pohon a druhý jako tachodynamo.

Jedná se o stejnosměrné motory s permanentními magnety, konkrétně se jedná o typ P2TV369 se jmenovitým napětí 24V a jmenovitými otáčkami 2000 rpm. Řídící napětí celého modelu je upraveno na 0÷10V, stejně tak i výstupní napětí z tachodynama je upraven na stejný rozsah. Schéma celé úlohy je naznačeno na obrázku 4.2.

(29)

29

Obrázek 4.2: Schéma zapojení celého modelu s měřící kartou

Úloha umožňuje přepínání mezi vstupem a výstupem měřící karty na PC a regulací z externího zdroje (PLC). Dále v práci bude autor pracovat pouze se vstupními a výstupními hodnotami napětí 0÷10V které reálně odpovídají 24V na vstupu motoru a 2000 otáčkám na hřídeli motoru.

6.3 Identifikace celého modelu

Pro další práci je zapotřebí identifikovat soustavu, abychom dostali přenos, se kterým můžeme nadále pracovat na návrhu regulátorů a určit jejich prvotní seřízení.

Jelikož cílem práce však nebyla identifikace celé soustavy, která navíc už několikrát proběhla v rámci výuky či jiných závěrečných prací, byla z nich tato data převzata. Celý model je reprezentován přenosem třetího řádu ve tvaru:

(1)

(30)

30

7 Realizace úlohy

Tato kapitola bude zaměřena na samotnou realizaci jednotlivých typů regulátorů. Dle zadání se bude jednat o PID regulátory a dva typy pokročilých regulací, přesněji regulaci s vnitřním modelem a stavovou regulaci. Mechanizmus realizace by šel stručně popsat jako postup začínající návrhem spojité regulace v Matlabu, diskretizací celého modelu, úpravou modelu pomocí B&R Automation Target for Simulink, vytvořením nového projektu v Automation Studiu, generováním kódu v jazyce C do Automation Studia, testováním regulátoru s modelem pomocí simulátoru ArSim v Automation studiu a testováním na reálné úloze. Tento postup platí pro všechny regulátory, v posledním kroku pak bude vytvořena vizualizace a naměřeny hodnoty výsledků, které se porovnají s regulací pomocí Matlab Real-Time toolboxu.

7.1 PID regulace

Pro jednoduchost byla tato regulace navržena čistě jako diskrétní model a přímo vychází z diskrétního tvaru PID regulátoru, který je následující:

(2) Funkce I(kT) a D(kT) jsou funkce nahrazující spojitou integraci a derivaci jejich diskrétním ekvivalentem (Wittenmark 2007). Pro náhradu spojitého tvaru integrace byla použita takzvaná lichoběžníková metoda, která nahrazuje derivaci pomocí následujícího vztahu.

(3) Spojitá derivace je poté nahrazena zpětnou diferencí 1.řádu, kterou popisuje níže uvedený vztah:

(4) V dalším kroku je vhodné přepsat rovnici diskrétního PID regulátoru do přírůstkového (rychlostního) tvaru, ve kterém se v každém okamžiku vzorkování

(31)

31 nepočítá celá hodnota akční veličiny u(kT), ale probíhá výpočet jejího přírůstku vzhledem k minulé hodnotě (Wittenmark 2007).

(5)

(6)

Tento přírůstkový tvar lze zjednodušit zavedením parametrů q0, q1, q2

(Balátě 2003). Tyto parametry lze přímo měnit ve schématu, tudíž jejich nastavení lze upravit dle libovolného optimalizačního postupu při návrhu spojitého PID regulátoru.

Zjednodušení vede na rovnici 7.

(7)

(8) (9) (10)

Dle rovnice 7 a 5 lze poté sestavit diskrétní schéma PID regulátoru v Simulinku a provádět všechna nastavení pouze pomocí zavedených parametrů, regulační schéma vypadá následovně.

Obrázek 4.3: Simulační schéma PID regulátoru

(32)

32 V simulaci bylo provedeno počáteční seřízení pomocí metody Ziegler-Nicholse a následná úprava jednotlivých parametrů. Vypočítané parametry metodou kritického zesílení měly hodnoty: r0=1,1; Ti=0,625; Td=0.43 .

Tyto hodnoty byly následně dosazeny do vzorce 8, 9 a 10 a byly vypočítané jednotlivé hodnoty parametrů q0, q1, q2. Pro vzorkovací periodu T byla zvolena hodnota 10 ms. Tato hodnota byla určena z předchozích prací na přípravku, kdy při menších hodnotách vzorkovací periody už model nebyl schopný zpracovat a vznikaly náhodné chyby v odčítání otáček tachodnymem.

(11)

(12)

(13) 7.2 Úprava schématu pro převod na C kód

Po vyzkoušení a nastavení modelu PID regulátoru bylo přistoupeno k dalšímu kroku, přesněji k úpravě schématu pomocí bloků knihovny B&R Automation studio Target for Simulink. V prvním kroku byla provedena záměna vstupních a výstupních bloků regulátoru. Jedná se o bloky Step a Scope, které byly nahrazeny bloky B&R IN a B&R OUT a samozřejmě byl přidán blok B&R CONFIG, ve kterém byla zvolena první možnost - generování C kódu. Tento blok automaticky přenastavil schéma na Simulink schéma pro generování kódu, tuto změnu lze pozorovat jako změnu hodnoty délky simulace v Simulinku na hodnotu inf.

Obrázek 4.4: Změna hodnoty délky simulace

Jelikož nebylo nutné nastavovat jiný datový typ nežli LREAL a počáteční hodnoty u vstupního i výstupního bloku, bylo možné ponechat výchozí nastavení bloků a pouze pojmenovat vstupní lokální proměnnou w a proměnnou reprezentující výstup y.

(33)

33

Obrázek 4.5: Záměna vstupních a výstupních bloků v Simulinku

Dalším krokem modifikace simulačního schématu je nahrazení všech parametrů ve schématu vlastními proměnnými a bloky B&R PARAMETER. Každý parametr musí mít vlastní samostatný blok. V případě PID regulátoru se jedná o parametry q0, q1, q2.Podrobné nastavení jednotlivých položek bylo již vysvětleno v kapitole 5.4, proto je na obrázku upraveného schématu naznačeno pouze nastavení parametru q0, pro ostatní parametry je nastavení identické a liší se jen v názvu a hodnotě.

Obrázek 4.6: Nastavení parametrů pomocí bloků PARAMETER

(34)

34 Poslední modifikací bylo nahrazení bloku Model za blok s diskrétním přenosem, který byl získán pomocí funkce c2d v Matlabu. Ve schématu je také blok saturace, který zajišťuje požadovaný rozsah hodnot na vstupu modelu motoru.

V dalším kroku je nutné otevřít B&R Automation Studio a založit nový projekt s virtuálním PLC ARsim, tak jak vidět na obrázku 4.7.

Obrázek 4.7: Nový projekt v Automation Studiu

Po založení nového projektu je zapotřebí vložit dvě knihovny, jedná se o knihovny brsystem a sys_lib, jak bylo popsáno v kapitole 4.1. Tyto knihovny je nutné mít vložené v každém projektu, ať už se jedná o simulaci nebo reálnou konfiguraci s daným PLC. V tuto chvíli je prostředí Automation Studia připraveno pro import zdrojového kódu z Matlabu.

Obrázek 4.8: Připravené prostředí Automation Studia

(35)

35 Posledním krokem před generováním kódu, je nastavení příslušných cest v Simulinku, tak jak je popsáno v kapitole 4.2. Což obnáší nastavení cesty k uloženému a připravenému projektu v Automation Studiu a dále nastavení vzorkovací periody T a pojmenování vlastního programu v Automation Studiu společně s názvem vytvořené konfigurace (v tomto případě zatím jen virtuální PLC). Tato hodnota musí být vždy nastavena, jinak nedojde ke spuštění generování kódu a celý proces skončí chybovým hlášením.

Obrázek 4.9: Nastavení periody vzorkování

Obrázek 4.10: Nastavení cesty k projektu a konfigurace

V případě potřeby se nastaví i další položky v záložce B&R Advanced Settings, které jsou popsány v kapitole 4.2. V této konkrétní úloze byl zvolen název dle vytvořeného projektu a task byl pojmenován PID, konfigurace zůstala nastavena dle počáteční hodnoty, tedy Config1. Jelikož v projektu bylo použito pouze jediné virtuální PLC, bylo ponecháno nastavení názvu PLC1. V případě více PLC v jedné konfiguraci, je zapotřebí dbát na správné pojmenování PLC, pro které má být zdrojový kód generován.

(36)

36 Nyní už by mělo být vše připraveno pro převod do zdrojového kódu v jazyce C.

Před samotným generováním kódu je zapotřebí provést kontrolu celého zapojení, především zda model obsahuje diskrétní ekvivalenty spojitých bloků. Pokud by se ve schématu vyskytoval spojitý blok, celý proces by skončil chybovým hlášením, a proto by si měl uživatel před spuštěním odpovědět na následujících šest otázek.

 Je spuštěn Matlab v režimu správce?

 Obsahuje schéma diskrétní ekvivalenty spojitých bloků?

 Je ve schématu blok B&R CONFIG?

Jsou správně nastaveny všechny položky v Configuration parameters?

 Jsou v projektu v Automation Studiu knihovny brsystem a sys_lib?

 Je projekt v Automation Studiu a model v Matlabu uložen?

Pokud uživatel odpoví kladně na všechny dotazy, je možné přistoupit k zahájení generování kódu. Standardně se celý proces spouští v menu Tools, položka Code Generation, následně Build Model nebo klávesovou zkratkou Ctrl+B.

Obrázek 4.11: Zahájení generování kódu ze Simulinku

Nyní by mělo být zahájeno generování kódu. Použiváme-li však zkušební verzi programu B&R Automation Studio Target for Simulink, můžeme se setkat s celkem běžný problémem, při kterém se zobrazí okno se zbývajícím počtem dnů zkušební verze

(37)

37 až za všemi okny Matlabu. Proto se může zdát, že program nepracuje. Potvrdíme zbývající dny zkušební verze tlačítkem Ok a v následujícím okně tlačítkem Licence Later se teprve spustí generování kódu.

Obrázek 4.12: Proces generování zdrojového kódu

Z obrázku je patrné, že při zahájení převodu modelu na zdrojový kód, se v hlavním příkazovém okně Matlabu zaznamená čas spuštění procesu a případně počet zbývajících dní licence. Zároveň je otevřené okno programu, kde je možné kontrolovat vytváření jednotlivých součástí generovaného programu.

Obrázek 4.13: Výstraha před zavedením programu do Automation Studia

V jedné části generování kódu nás program vyzve k vložení knihoven do projektu v Automation Studiu. Tyto knihovny jsou již v projektu jsou vloženy, což výrobce doporučoval u starších verzí programu. Pokud uživatel knihovny zapomněl vložit, nyní má poslední příležitost svojí chybu napravit.

Obrázek 4.14: Potvrzení o úspěšném převodu modelu do Automation Studia

(38)

38 Potvrzením výstrahy dojde k závěrečné části generování kódu a program by měl zobrazit okno s hlášením o úspěšném vytvoření programu z modelu v Simulinku.

Zároveň je možné vidět na obrázku 4.14, že v příkazovém okně Matlabu zůstalo stejné potvrzení s konečným časem a názvem převáděného modelu.

Obrázek 4.15: Vygenerovaný program v prostředí Automation Studia

Z výše uvedeného obrázku je vidět, jak vypadá celá struktura převedeného programu v jazyce C v okně Logical View. V tomto případě se jedná o program PID, u kterého je možné vidět soubory lokálních proměnných, globálních proměnných v *.txt souboru, samotný program, taskové vlastnosti a složku MATLAB_insludes.

Občas se vygenerovaný program nezobrazí v Logical View, poté je zapotřebí obnovit zobrazení (refresh) nebo zavřít a otevřít celý projekt.

Posledním krokem je přiřazení programu do příslušné taskové třídy v Physical View, kde si otevřeme Software Configuration a vytvoříme nebo modifikujeme stávající taskovou třídu dle původního nastavení. V případě této práce se vždy jedná o hodnotu 10 ms. Do vytvořené taskové třídy přiřadíme program, provedeme kompilaci a nahrajeme program do PLC tlačítkem Build. Poté můžeme s programem dále pracovat, například v okně Watch ovládat vstupy a monitorovat výstupní hodnoty nebo přímo pomocí nástroje Trace vykreslovat jednotlivé proměnné do grafu.

(39)

39

Obrázek 4.16: Vytvoření taskové třídy a přiřazení programu

7.3 Vytvoření PID regulátoru pomocí diskretizace modelu

Z předešlých kapitol se může zdát, že je model nutné navrhnout pouze diskrétně, což například v případě PID regulátoru není zcela nutné, a je možné použít diskretizační nástroj v Matlabu. Výjimkou jsou však čistě diskrétní návrhy regulátorů, které ze své podstaty je nutné navrhovat pouze diskrétně, a neodpovídají svým zapojením svému spojitému ekvivalentu. Simulink obsahuje samostatný blok pro PID regulaci, proto můžeme sestavit takovéto jednoduché spojité schéma.

Obrázek 4.17: Spojitý model s blokem PID Controller

(40)

40 Takto nastavený spojitý model nyní upravíme tak, aby obsahoval vstupní a výstupní bloky z knihovny B&R Automation Studio Toolbox. Pro připomenutí jde o bloky B&R CONFIG, INPUT a OUTPUT.

Obrázek 4.18: Úprava vstupů modelu

V tomto bodě lze spustit diskretizační nástroj v Simulinku. Spustitelný je z menu Tools, položka Control Design, kde zvolíme Simulink Model Discretizer. Nyní by se měly červeně zvýraznit spojité bloky v modelu a otevřít okno nástroje, které je možno vidět na obrázku 4.19. Pokud se žádný z bloků nezvýraznil červeně, nemá blok svoji diskrétní náhradu nebo není potřeba ho převádět do diskrétního tvaru.

Obrázek 4.19: Prostředí Simulink Model Discretizer

(41)

41 V diskretizačním nástroji nyní nastavíme všechna potřebná nastavení. Je možné nastavit každý spojitý blok zvlášť, nebo celé schéma, záleží na výběru položky ve stromovém menu Contains countinous blocks. Autor doporučuje měnit nastavení v celém schématu, v opačném případě by se mohlo stát, že by každý blok mohl mít jinou vzorkovací periodu T. Nyní v podokně Discretization settings v položce Transform method můžeme nastavit typ metody diskretizace, jenž bude použit. Na výběr má uživatel Zero-order hold neboli tvarovač nultého řádu, First-order hold (tvarovač prvního řádu), Tustin tedy Tustinovu (bilineární) transformaci, Tustin with prewarping (Tustinova aproximace s převzrokováním) a v poslední řadě Matched pole- zero (metoda sladěných nul a pólů). V dalším řádku Sample time je zapotřebí nastavit vzorkovací periodu T tak, aby souhlasila s taskovou třídou a návrhem modelu.

U položky Replace current selection with lze nastavit, jak se změny spojitých bloků přemění na diskrétní a zobrazí se v modelu. Ve spodní části okna si uživatel může zkontrolovat, kolik spojitých bloků model obsahuje, kolik jich bylo převedeno a kolik jich je vybráno k úpravě. Pokud jsou nastaveny všechny volby, je nutné zahájit převod modelu na diskrétní tlačítkem S->Z.

Obrázek 4.20: Diskretizovaný model PID regulátoru

Na obrázku výše je vidět, jak se model modifikoval použitím Simulink Model Discretizeru. Červené znázorněné jsou upravené bloky, které mají diskrétní náhradu spojitého tvaru, v tomto případě jde o blok PID(z). Modrá barva ve schématu značí diskretizovaný blok, který vychází ze spojitého tvaru. V našem případě se jedná blok Transfer Fcn, jehož vnitřní struktura a vizuální reprezentace zůstala stejná, ale pro výpočet simulace či převod modelu na zdrojový kód se blok chová jako diskretizovaný přenos. Zde konkrétně pomocí tvarovače nultého řádu (ZOH).

(42)

42 Posledním krokem úpravy schématu je vložení bloků B&R PARAMETER tak, aby bylo možné měnit nastavení regulátoru, během spuštěného programu na virtuálním nebo skutečném PLC. Finální úpravu schématu je možné vidět na následujícím obrázku.

Obrázek 4.21: Přiřazení parametrů bloku PID Controller

Nyní je možné spustit převod modelu dle pravidel a dalších nastavení popsaných v předešlé kapitole, které jsou stejné a není je potřeba znovu popisovat.

V některých případech je použití diskretizačního nástroje jednodušší, než úprava jednotlivých bloků, a krok od spojité simulace k připravenému modelu pro převod programu na zdrojový kód je opět o něco jednodušší.

7.4 PID regulátor s modifikovanou strukturou

Jelikož se projevil obecně známý nedostatek návrhu PID regulátoru z kapitoly 7.1, projevující se u malých hodnot vzorkovací periody T. Perioda vzorkování je u parametru q0, q1 a q2 vždy čitatelem v podílu Td/T, dostáváme proto velké hodnoty tohoto podílu s klesající hodnotou vzorkovací frekvence T. Tato skutečnost se prakticky projevuje příliš velkými akčními zásahy při změnách žádané hodnoty. V tomto případě literatura doporučuje použití některého z modifikovaných řídících algoritmů, které tento nedostatek odstraňují (Balátě 2004). Jedním z algoritmů je Takahashiho algoritmus, který pracuje se záměnou regulační odchylky e(kT) ve vzorci 6 za hodnoty regulační veličiny y(kT) v derivační části tohoto algoritmu.

(43)

43

(15)

Na základě Takahashiho algoritmu byla sestavena modifikovaná struktura PID regulátoru, kterou je možné vidět na obrázku 4.22.

Obrázek 4.22: Modifikovaný model PID regulátoru

Seřízení regulátoru bylo provedeno pomocí metody kritického zesílení podle Ziegler-Nicholse. V simulaci bylo určeno kritické zesílení Rkrit=1,9 a perioda kritických kmitů Tkrit=1,28675, z těchto hodnot bylo vypočítáno počáteční nastavení modifikovaného PID regulátoru, konstanty kP,kI a kD.

(16) (17) (18)

Následuje úprava celého modelu regulátoru pomocí B&R Automation Studio Toolboxu. Nahradíme všechny vstupy a výstupy z modelu, přidáme konfigurační blok a nastavíme všechny potřebné parametry modelu. Výsledný model by měl vypadat následovně.

Obrázek 4.23: Upravený model modifikovaného PID regulátoru

(44)

44 7.5 Regulátor s vnitřním modelem

Jedná se o regulační schéma, které při svém návrhu obsahuje vlastní model soustavy a regulátor odvozený z tohoto modelu. Model je realizován pomocí přenosu soustavy a mělo by platit že, regulační odchylka by se měla přibližně shodovat s žádanou hodnotou (ew). Soustavu lze rozdělit na součin GsGD a Model na součin GsmGDm. Přičemž by mělo platit Gs=Gsm a GD=GDm (Vítečková 2009). Aby byl splněn cíl regulace, musí platit GD=1. Z toho přímo vyplívá podmínka pro návrh přenosu regulátoru:

(19)

Obrázek 4.24: Regulační schéma s vnitřním modelem

Jelikož část přenosu Gs je stabilní a invertibilní, je možné provést jeho inverzi.

Tato skutečnost však neznamená, že dostaneme fyzikálně realizovatelný model.

Musíme tedy přidat k tomuto přenosu vhodně navržený filtr Gf, který zaručí fyzikální realizovatelnost invertovaného přenosu, abychom dostali regulační obvod s regulátorem tak, jak ho známe, proto musíme regulační schéma z obrázku 4.24 upravit do následující podoby (Vítečková 2009).

Obrázek 4.25: Upravené schéma s vnitřním modelem

(45)

45 Červená část představuje vlastní regulátor s vnitřním modelem, tuto část je možné sloučit do jednoho bloku, ale pro možné budoucí úpravy byla ponechána v tomto tvaru.

Nyní lze přistoupit k samostatné úpravě regulačního obvodu bloky z B&R Automation Studio Toolboxu. Byly nahrazeny vstupy a výstupy, a první návrhy diskrétních přenosů byly provedeny přes prostředí Matlabu funkcí c2d.

Obrázek 4.26: Připravené schéma regulátoru s vnitřním modelem

Návrh přes prostředí Matlabu se nejdříve ukázal jako problematický, generování zdrojového kódu se vždy přerušilo s výstrahou, že obvod obsahuje algebraickou smyčku a nelze provést jeho převod. V první řadě byla vyzkoušena změna parametrů přenosu filtru, to ale stále vedlo ke stejnému chybovému hlášení. V tuto chvíli se zdál problém jako neřešitelný, nakonec se ukázalo, že má jednoduché řešení v podobě použití nástroje Simulink Model Discretizer. Práce s nástrojem byla popsána v kapitole 7.3, proto byly tímto nástrojem upraveny bloky spojitých přenosů regulátoru, modelu i soustavy a převod proběhnul bez větších obtíží.

Z toho je patrné, jedná-li se o strukturu regulátoru, která je tvořená pouze spojitými přenosy a má stejnou podobu jak v diskrétním tak i spojitém návrhu.

Jednodušší je požít diskretizační nástroj Simulinku a vyhnout se převodům spojitých systému. V tomto případě se tento nástroj velice osvědčil a pro složité modely v Simulinku je jeho použití výhodné.

Posledním krokem je generování kódu pro B&R Automation Studio, vytvoření nového projektu a odpovídající taskové třídy, jehož postup byl naznačen v kapitole 7.2.

Postup se nijak neliší od předešlého, pouze v tomto případě je nastavení regulátoru pevně dané, neboť nelze zasahovat do struktury spojitého přenosu blokem B&R PARAMETER.

(46)

46 7.6 Stavový regulátor

Stavový regulátor pracuje s takzvaným stavovým popisem modelu. Obecně by se dalo tvrdit, že stavový regulátor by měl být nejlepším regulátorem, který používá minulé hodnoty (stavy) systému. Obecný zápis diskrétního stavového modelu je následující:

(20)

(21) Kde x(k) je vektor diskrétních stavových veličin, y(k) je vektor diskrétních výstupních veličin a u(k) je vektor diskrétního buzení. Matice diskrétních koeficientů je M, matice buzení je N, matice výstupu je C a matice převodu má označení D (Modrlák 2003). Jelikož na laboratorní úloze není možné měřit vnitřní stavové veličiny, je nutné navrhnout vhodný estimátor, který má simulovat chování celé dynamické soustavy.

Přesněji má estimátor odhadovat výstup ze soustavy a jednotlivé vnitřní stavové proměnné, aby tyto výstupní hodnoty bylo možné použít jako vstupní signály pro stavový regulátor.

Estimátor je reprezentován maticí L, která má zaručit, aby chyba celého odhadu konvergovala k nule. Pro konkrétní případ této úlohy byl zvolen deterministický návrh estimátoru metodou volby vlastních čísel. Stavový regulátor byl navržen jako regulátor, který je upraven pro trvalé odstranění regulační odchylky. Prakticky tato úprava spočívá v rozšíření matice regulátoru o jeden člen, který by měl odstranit trvalou regulační odchylku. Celé schéma vypadá následovně.

(47)

47

Obrázek 4.27: Model stavového regulátoru s rozšířenou maticí regulátoru

Seřízení celého diskrétního stavového regulátoru bylo provedeno pomocí metody kvadratického kritéria a používá funkci dlqr implementovanou v Matlabu. Předpis regulátoru je následovný.

(22) Kde K je vektor regulátoru, který vychází z kvadratického kritéria dle následujícího vztahu.

(23) U kterého jsou matice R a Q pozitivně definitní matice váhových koeficientů, které se nejčastěji volí jako diagonální matice. Pro systémy s jedním vstupem a výstupem je matice R skalárem. P je kovarianční matice. Funkce dlqr pak řeší výpočet regulátoru dle následujícího upraveného kvadratického kritéria.

(24) Prakticky zápis funkce dlqr v Matlabu vypadá následovně:

[K,S,lb]=dlqr(M,N,Q,R)

Výstupem funkce je vektor regulátoru K, řešení Riccatiho rovnice S a vlastní čísla uzavřeného obvodu lb.

Po určení jednotlivých matic a vektorů pro stavový regulátor, bylo upraveno schéma do níže uvedené podoby. Byly přidány vstupní a výstupní bloky z B&R Automation Studio Toolboxu. Jednotlivé bloky Gain byly upraveny tak, aby reprezentovaly vektory a matice estimátoru a nikoliv násobení konstantou. Byl připravený nový projekt v Automation Studiu a schéma bylo doplněno o blok B&R PARAMETER, který měl umožňovat nastavení vektoru stavového regulátoru K.

(48)

48

Obrázek 4.28: Nastavení stavového regulátoru pomocí vektoru K

Po převedení modelu do zdrojového kódu a následném spuštění na virtuálním PLC regulátor nefungoval. Výstup regulátoru šel mimo rozsah datového typu, kde PLC následně vyhodnotilo chybu a dále nereagovalo. Primárně byla snaha o kontrolu regulačního schématu a celého seřízení stavového regulátoru. Byly vyzkoušeny různé modifikace stavového regulátoru, ale bez výraznějšího posunu k funkčnímu regulátoru.

Proto dalším krokem byla kontrola jednotlivých bloků z B&R Automation Studio Toolboxu, především pak blok parametru B&R PRAMETER, který nejspíš špatně interpretoval zápis vektoru do správné podoby. Jelikož struktura vektoru odpovídá v doplňku B&R Automation Studio Target for Simulink jiné interpretaci, kde proměnná nebo parametr nabývá v čase postupně jednotlivých hodnot celého vektoru, prvek po prvku a v konkrétním čase má tato proměnná pouze jedinou hodnotu. Vznikla proto další struktura, která měla reprezentovat jednotlivé prvky vektoru K jako samostatné konstanty, kde jeden prvek vektoru má vlastní blok parametru, a také je reprezentován jediným blokem Gain ve schématu. Samozřejmě je důležité si uvědomit, zda se jedná o sloupcový nebo řádkový vektor a tomu uzpůsobit zapojení jednotlivých bloků Gain, které by odpovídalo vektorovému násobení signálů. Upravené schéma diskrétního stavového regulátoru je možno vidět na obrázku níže.

(49)

49

Obrázek 4.29: Upravený model pro reprezentaci vektoru regulátoru

Jak se ukázalo v dalším pokusu o zprovoznění regulátoru, byl již vektor K správně reprezentován. Celý model však vykazoval stejné chování jako předtím, bez výraznějšího zlepšení. Bylo nutné opět pátrat kde může být chyba, jedná-li se o chybu návrhu nebo opět o nějaký problém s reprezentací vektoru K.

Po mnoha neúspěšných pokusech, kdy celá struktura vždy fungovala v simulaci v prostředí Simulinku a na virtuálním nebo i reálném PLC nikoliv, se podařilo najít řešení celého problému. K nalezení řešení přispěly mimo jiné internetové stránky výrobce, který k výukovému manuálu poskytuje ke stažení některé modely v Simulinku z úlohy inverzního kyvadla. Tento model výrobce byl popsán pomocí stavového popisu. Záhy bylo zjištěno, že samotný výrobce používá pro každý prvek matice či vektoru vlastní Gain, který reprezentuje jeho hodnotu. Toto platí pro všechny vektorové nebo maticové zápisy v modelu, nejenom pro bloky Gain, které obsahují proměnnou svázanou s blokem B&R PARAMETER, ale také konstantní hodnoty jednotlivých bloků Gain.

Po tomto zjištění byl celý model přepracován do tvaru, který odpovídal výše popsanému zapojení pro reprezentaci vektoru či matice. Bohužel tato úprava celý model diskrétního stavového regulátoru značně znepřehlednila. Pro velikost matice M [3×3] je 18 bloků Gain jen v části estimátoru, společně s dalšími čtyřmi bloky reprezentujícími vektor regulátoru K.

References

Related documents

Jako podpůrný systém této služby slouží recepční a rezervační systém Previo, který obsahuje celý komplex funkcí a umožňuje tak naplnit většinu business procesů,

Bylo potřeba tuto oblast dodržet, neboť parametry regulátoru byly nastaveny pro tuto pracovní oblast a regulace mimo ní se mohla lišit od simulované mnohem více než...

Jak jiţ bylo několikrát zmiňováno o komunikaci se stará OPC server Deltalogic, ke kterému jsou připojeny na jedné straně Matlab a na druhé PLC Siemens.. 6.1

3) Připojit desku Arduino k počítači přes USB kabel (na desce se rozsvítí zelené světlo) 4) Otevřít složku ArduinoIO. 5) Z ní vyjmout složku označenou jako ,,pde”

Chmelař (2015, s. Rozlišuje mezi sebou dálnice, komunikace I., II. “ Ve městech rozlišuje hlavní tahy, významné ulice, soukromé cesty, nezpevněné cesty a ostatní

Pro externí ovládání je nezbytné informovat externí zařízení o poloze plošiny. K těmto účelům budou napěťové signály z optických senzorů pro měření vzdálenosti vyvedeny

 bezpečnost průmyslových a řídících systémů.. b) až e) mají povinnost detekovat kybernetické bezpečnostní události v jejich významné síti, informačním

K ovládání akčních členů, měření teploty digitálními teploměry, výpočtu regulační odchylky a k výpočtu akční veličiny pomocí PID regulátoru byla