ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka
´ RSK ˇ ´ PRACE ´ BAKALA A V´ yukov´ y model regulovan´ e soustavy se syst´ emy PLC a SCADA
Praha, 2009
Autor: Martin Kopal
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou bakal´aˇrskou pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady ( literaturu, projekty, SW atd.) uveden´e v pˇriloˇzen´em seznamu.
V Praze dne podpis
i
Abstrakt Na ˇcesk´ ych technick´ ych vysok´ ych ˇskol´ach se jiˇz nˇekolik let v oblasti ˇr´ıdic´ı techniky ve velk´e m´ıˇre vyuˇz´ıv´a produkt Simulink, umoˇzn ˇuj´ıc´ı simulaci a anal´ yzu dynamick´ ych syst´em˚ u. Tento program by jistˇe naˇsel uplatnˇen´ı i na elektrotechnick´ ych stˇredn´ıch ˇskol´ach, jenˇze takzvan´a ”College”licence Matlabu plat´ı pouze pro vysok´e ˇskoly. C´ılem m´e pr´ace tedy je vytvoˇrit jednoduch´e modely soustav s vizualizac´ı umoˇzn ˇuj´ıc´ı simulaci, anal´ yzu syst´emu ˇci moˇznost n´avrhu a ladˇen´ı regul´ator˚ u. Tyto modely s ˇr´ızen´ım jsou ˇreˇseny programem bˇeˇz´ıc´ım na simulovan´em PLC produktu Mosaic, kter´ y je v z´akladn´ı verzi k dispozici zdarma a je tedy jednou z alternativ pro stˇredn´ı ˇskoly.
ii
Abstract At the Czech technical universities the product Simulink enabling simulation and analysis of dynamic systems has been used there for several years in a large excent in the sphere of control engineering. This programme could surely find its exercise also on the electrotechnical secondary schools, but so called ”College”Matlab licence is valid only for universities. The aim of my work is to construct simple models with visualization enabling simulation and analysis of system or an opportunity for controllers design and tuning. This models with regulation have been solved with a programme runnig on a simulated PLC product Mosaic that is gratis in the basic model and therefore is one of the options for the secondary schools.
iii
iv
Obsah Seznam obr´ azk˚ u
vii
´ 1 Uvod
1
1.1
PLC Tecomat Foxtrot . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.1
Struktura syst´emu . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.2
V´ ykon syst´emu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1.3
Komunikace syst´emu . . . . . . . . . . . . . . . . . . . . . . . . .
2
Mosaic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.1
Dod´avka programu . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.2
Programov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.3
N´astroje programu . . . . . . . . . . . . . . . . . . . . . . . . . .
4
SCADA/HMI Reliance . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.1
Funkce programu . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.2
Modul´arn´ı struktura syst´emu . . . . . . . . . . . . . . . . . . . .
5
1.3.3
V´ yvojov´e prostˇred´ı . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Standard IEC EN-61131-3 . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.4.1
Spoleˇcn´e prvky . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.4.2
Programovac´ı jazyky . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.2
1.3
1.4
2 Modely 2.1
Model soustavy 1. ˇr´adu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.1.1
9
Matematick´ y model soustavy . . . . . . . . . . . . . . . . . . . . 2.1.1.1
Neline´arn´ı model . . . . . . . . . . . . . . . . . . . . . .
10
2.1.1.2
Linearizace . . . . . . . . . . . . . . . . . . . . . . . . .
11
Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Model soustavy 2. ˇr´adu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2.1
13
2.1.2 2.2
9
Matematick´ y model soustavy . . . . . . . . . . . . . . . . . . . . v
2.2.2
2.2.1.1
Neline´arn´ı model . . . . . . . . . . . . . . . . . . . . . .
14
2.2.1.2
Linearizace . . . . . . . . . . . . . . . . . . . . . . . . .
15
Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3 Regulace 3.1
18
PID regul´ator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.1.1
P sloˇzka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.1.2
I sloˇzka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.1.3
D sloˇzka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.1.4
Anti-Windup . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.2
Dvoustavov´ y regul´ator . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3
N´avrhy regul´ator˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3.1
Regul´ator pro soustavu 1. ˇr´adu . . . . . . . . . . . . . . . . . . .
21
3.3.2
Regul´ator pro soustavu 2. ˇr´adu . . . . . . . . . . . . . . . . . . .
22
4 Vizualizace
23
4.1
Komunikace s PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4.2
Grafick´ y n´avrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.3
Logick´ y n´avrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.3.1
27
Pouˇzit´e komponenty . . . . . . . . . . . . . . . . . . . . . . . . .
5 Z´ avˇ er
28
A Zdrojov´ e k´ ody
I
A.0.1 Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I
A.0.2 Soustava 1. ˇr´adu . . . . . . . . . . . . . . . . . . . . . . . . . . .
IV
A.0.3 Soustava 2. ˇr´adu . . . . . . . . . . . . . . . . . . . . . . . . . . .
VI
A.0.4 PID regul´ator . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VII
A.0.5 Dvoustavov´ y regul´ator . . . . . . . . . . . . . . . . . . . . . . . .
IX
B Obsah pˇ riloˇ zen´ eho CD
XI
vi
Seznam obr´ azk˚ u 1.1
PLC Tecomat Foxtrot . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
V´ yvojov´e prostˇred´ı Mosaic . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.1
Model soustavy prvn´ıho ˇr´adu . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2
Pˇrechodov´a charakteristika linearizovan´eho syst´emu . . . . . . . . . . . .
12
2.3
Model soustavy druh´eho ˇr´adu . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4
Pˇrechodov´a charakteristika linearizovan´eho syst´emu druh´eho ˇra´du . . . .
16
3.1
Princip dvoustavov´eho regul´atoru . . . . . . . . . . . . . . . . . . . . . .
20
3.2
Srovn´an´ı reakc´ı simulinkov´eho modelu a modelu navrˇzen´em v prostˇred´ı Mosaic na referenci skoku pˇri pouˇzit´ı PI regul´atoru . . . . . . . . . . . .
3.3
21
Srovn´an´ı reakc´ı simulinkov´eho modelu a modelu navrˇzen´em v prostˇred´ı Mosaic na referenci skoku pˇri pouˇzit´ı PI regul´atoru . . . . . . . . . . . .
22
4.1
Model prvn´ıho ˇr´adu s ˇr´ızen´ım ve vizualizaˇcn´ım prostˇred´ı . . . . . . . . .
24
4.2
Model druh´eho ˇr´adu s ˇr´ızen´ım ve vizualizaˇcn´ım prostˇred´ı . . . . . . . . .
25
vii
Kapitola 1 ´ Uvod 1.1
PLC Tecomat Foxtrot
PLC (Programmable Logic Controller), neboli programovateln´ y logick´ y automat je elektronick´ y syst´em urˇcen´ y k ˇr´ızen´ı pr˚ umyslov´ ych proces˚ u. Periferie PLC automatu jsou pˇrizp˚ usobeny pro napojen´ı na technologick´e procesy a tˇemito PLC pˇred´av´a a z´ısk´av´a informace do a z ˇr´ızen´eho procesu. ˇ ıdic´ı algoritmus je zaps´an v pamˇeti uˇzivatelsk´eho programu jako posloupnost inR´ strukc´ı, kter´e jsou cyklicky vykon´av´any. Po vykon´an´ı vˇsech instrukc´ı jednoho cyklu programu provede centr´aln´ı jednotka aktualizaci v´ ystupn´ıch promˇenn´ ych a aktualizaci stav˚ u ze vstupn´ıch modul˚ u do pamˇeti. Tento postup zabraˇ nuje vzniku hazardn´ıch stav˚ u pˇri bˇehu programu.
1.1.1
Struktura syst´ emu
Tecomat Foxtrot je mal´ y modul´arn´ı syst´em firmy Teco a. s. navrˇzen´ y pro snadnou instalaci do rozvadˇeˇce s mont´aˇz´ı na U-liˇstu. Moduly ˇr´ıd´ıc´ıho syst´emu jsou propojeny sbˇernic´ı TCL2, kter´a je tvoˇrena linkou RS-485. Pomoc´ı t´eto sbˇernice lze k centr´aln´ımu modulu pˇripojit aˇz deset rozˇsiˇruj´ıc´ıch I/0 modul˚ u. Moduly dovoluj´ı pˇripojen´ı analogov´ ych ˇci bin´arn´ıch sign´al˚ u ve standardn´ıch rozsaz´ıch. Z´akladn´ı modul obsahuje 8 bin´arn´ıch vstup˚ u a 4 analogov´e vstupy.
1
´ KAPITOLA 1. UVOD
1.1.2
2
V´ ykon syst´ emu
V´ ypoˇcetn´ı v´ ykon syst´emu je zajiˇstˇen 32bitov´ ym procesorem RISC s frekvenc´ı 166 MHz. Pamˇet’ pro program je 192 kB pro program samotn´ y a 64 kB pro tabulky. Pamˇet’ programu i tabulek je z´alohohov´ana lithium-iontov´ ym akumul´atorem. Pro ukl´ad´an´ı dat je moˇzn´e vyuˇz´ıt pˇr´ıdavn´e pamˇeti Databox. Poprv´e u syst´em˚ u Tecomat je tak´e moˇzn´e PLC osadit kartou MMC/SD.
1.1.3
Komunikace syst´ emu
Centr´aln´ı jednotka obsahuje dva s´eriov´e kan´aly a jedno rozhran´ı Ethernet. Jeden ze s´eriov´ ych kan´al˚ u m´a pevn´e rozhran´ı RS-232, druh´ y umoˇzn ˇuje volbu rozhran´ı osazen´ım pˇr´ısluˇsn´eho submodulu do z´akladn´ıho modulu. S´eriov´a rozhran´ı jsou urˇcena pro pˇripojen´ı inteligentn´ıch sn´ımaˇc˚ u nebo napˇr. oper´atorsk´ ych panel˚ u. Tecomat Foxtrot podporuje komunikaci standardn´ımi protokoly, jako je Profibus-DP nebo CAN. Obsahuje integrovan´ y webov´ y server kter´ y d´av´a moˇznost vytvoˇrit pro kaˇzd´ y modul webovou str´anku v jazyce XML, pˇres kterou lze proces sledovat i ˇr´ıdit z internetu.
Obr´ azek 1.1: PLC Tecomat Foxtrot
´ KAPITOLA 1. UVOD
1.2
3
Mosaic
Mosaic je v´ yvojov´e prostˇred´ı pro tvorbu a ladˇen´ı program˚ u pro programovateln´e logick´e automaty od firmy Teco a. s. Kol´ın. Prostˇred´ı bylo vyvinuto tak, aby vyhovovalo normˇe IEC EN-61131-3, kter´a definuje strukturu programu a programovac´ı jazyky pro PLC.
Obr´ azek 1.2: V´ yvojov´e prostˇred´ı Mosaic
1.2.1
Dod´ avka programu
Instalace programu Mosaic obsahuje vˇsechny n´astroje, kter´e jsou v dan´ y ˇcas k dispozici. Pokud pˇri instalaci programu nen´ı pˇr´ıtomen HW kl´ıˇc, funguje program Mosaic v tzv. Lite verzi. I ve verzi Lite jsou pouˇzitlen´e vsechny n´astroje a jejich fuknce nen´ı nijak omezena. WH kl´ıˇc je potˇreba, pokud chceme programovat vetˇs´ı typy PLC a je nutn´e deklarovat velk´e mnoˇzstv´ı I/O modul˚ u. K dispozici je ˇcesk´a, anglick´a, nˇemeck´a a rusk´a verze jazyka programovac´ıho prostˇred´ı.
1.2.2
Programov´ an´ı
Mosaic dovoluje programovat vˇsechny typy PLC dod´avan´e firmou Teco. Program psan´ y v jazyce podle normy IEC EN-61131-3 se skl´ad´a s ˇc´ast´ı naz´ yvan´ ych POU (Program Organisation Unit). Tˇemito programov´ ymi organizaˇcn´ımi jednotkami jsou funkce, funkˇcn´ı bloky a samotn´ y program.
´ KAPITOLA 1. UVOD
4
Programovat je moˇzn´e jak v textov´ ych, tak v grafick´ ych jazyc´ıch. Pˇri pouˇzit´ı grafick´eho jazyka se jednotliv´e bloky vyb´ıraj´ı z n´astrojov´e liˇsty a umist’uj´ı na plochu. Pˇri pouˇzit´ı textov´ ych jazyk˚ u je moˇzn´e vyuˇz´ıt podporu programov´an´ı. Napˇr´ıklad v jazyce strukturovan´eho textu ST lze pˇri psan´ı vyuˇz´ıt asistenta, kter´ y nab´ız´ı automatick´e doplnˇen´ı rozepsan´eho pˇr´ıkazu. V programu je moˇzn´e jazyky kombinovat, je tedy moˇzn´e programovat kazdou POU v jin´em jazyku. Mosaic tak´e dovoluje vytv´aˇret a vyuˇz´ıvat knihovn´ı bloky.
1.2.3
N´ astroje programu
Souˇc´ast´ı programu Mosaic jsou i n´astroje, pomoc´ı kter´ ych lze zjednoduˇsit programov´an´ı nebo analyzovat ˇcinnost programu. • Inspektor POU Umoˇzn ˇuje sledovat chov´an´ı jednotliv´ ych POU. U zobrazen´e POU jsou zobrazeny stavy vstupn´ıch a v´ ystupn´ıch promˇenn´ ych. U grafick´ ych editor˚ u je barevnˇe oznaˇcena aktivn´ı linie a zobrazeny hodnoty promˇenn´ ych u vstup˚ u a v´ ystup˚ u jednotliv´ ych blok˚ u. • SimPLC Umoˇzn ˇuje ladit programy bez nutnosti pˇripojen´ı re´aln´eho PLC. Tento n´astroj dovoluje simulovat vˇsechny vyr´abˇen´e typy PLC Tecomat. Unik´atn´ı je moˇznost komunikace mezi prostˇred´ım Mosaic a vizualizaˇcn´ım syst´emem. Lze tedy ladit nejen program pro PLC, ale i vizualizaci a jejich vz´ajemnou interakci, pˇriˇcemˇz oba programy mohou bˇeˇzet na jednom poˇc´ıtaˇci. • GraphMaker N´astroj se chov´a jako osciloskop se ˇsestn´acti kan´aly. Dovoluje sledovat pr˚ ubˇehy vˇsech typ˚ u promˇenn´ ych v re´aln´em ˇcase. Pr˚ ubˇehy je n´aslednˇe moˇzn´e pˇr´ımo analyzovat, uloˇzit na disk, pˇr´ıpadnˇe exportovat do jin´ ych program˚ u. N´astroj GraphMaker obsahuje vˇse potˇrebn´e k anal´ yze pr˚ ubˇeh˚ u jako jsou kurzory ˇci lupa. • PIDMaker N´astroj je urˇcen k snadn´e implementaci a ladˇen´ı regulaˇcn´ıch algoritm˚ u. N´astroj automaticky generuje k´od algoritmu kter´ y je zaˇrazen do programu uˇzivatele. Dok´aˇze
´ KAPITOLA 1. UVOD
5
tak´e simulovat jednoduch´e procesy bez nutnosti jejich implemetace v programu uˇzivatele. V nab´ıdce n´astroje jsou line´an´ı soustavy do tˇret´ıho ˇra´du s moˇznost´ı pˇrid´an´ı dopravn´ıho zpoˇzdˇen´ı.
1.3
SCADA/HMI Reliance
Reliance je ˇcesk´ y vizualizaˇcn´ı syst´em SCADA/HMI(Supervisory Control and Data Acquisition/ Human-Machine Interface) pro ˇr´ızen´ı a monitoring proces˚ u v re´aln´em ˇcase.
1.3.1
Funkce programu
• Monitorov´an´ı proces˚ u v re´aln´em ˇcase • Ovl´ad´an´ı proces˚ u v re´aln´em ˇcase • Zobrazov´an´ı graf˚ u pr˚ ubˇeh˚ u veliˇcin • Zobrazov´an´ı a archivace alarm˚ u • Podpora multim´edi´ı • Podpora v´ıcemonitorov´ ych syst´em˚ u
1.3.2
Modul´ arn´ı struktura syst´ emu
• V´ yvojov´e prostˇred´ı Reliance Design Reliance Design je program pro tvorbu vizualizaˇcn´ıch projekt˚ u. Existuje ve verz´ıch Desktop a Enterprise, pˇriˇcemˇz verze Enterprise dovoluje vytv´aˇret s´ıt’ov´e aplikace s libovoln´ ym mnoˇzstv´ım ovl´adac´ıch pracoviˇst. • Run-time moduly Reliance Runtime a Server Run-time modul je program, kter´ y zajiˇst’uje bˇeh vizualizace na poˇc´ıtaˇci koncov´eho uˇzivatele. • Webov´ y klient Reliance J
´ KAPITOLA 1. UVOD
6
Webov´ y klient Reliance J je applet napsan´ y v jazyce java, kter´ y umoˇzn ˇuje spustit projekt ve webov´em prohl´ıˇzeˇci. • Komunikaˇcn´ı ovladaˇce Komunikaˇcn´ı ovladaˇce zajiˇst’uj´ı pˇrenos dat ze stanic do vizualizaˇcn´ıho syst´emu a pˇrenos povel˚ u opaˇcn´ ym smˇerem.
1.3.3
V´ yvojov´ e prostˇ red´ı
Reliance poskytuje v´ ykonn´e v´ yvojov´e prostˇred´ı RAD (Rapid Application Development). Po zaloˇzen´ı projektu je nutn´e definovat stanice (PLC), kter´e budou s vizualizac´ı komunikovat a importovat promˇenn´e kter´e se budou vyuˇz´ıvat. Grafick´e rozhran´ı je tvoˇreno okny, do kter´ ych se vkl´adaj´ı jednotliv´e komponenty (napˇr. displeje, tlaˇc´ıtka, obr´azky). Kaˇzd´e komponentˇe lze pˇriˇradit jin´e vlastnosti. Komponenty se del´ı na statick´e a dynamick´e. Dynamick´e komponenty mohou b´ yt v´az´any na promˇennou a s jej´ı zmˇenou mohou mˇenit sv´e parametry. Statickou komponentou je napˇr. obr´azek. Dynamickou komponentou je napˇr. displej. Pro spr´avu objekt˚ u slouˇz´ı tzv. spr´avci, kteˇr´ı umoˇzn ˇuj´ı pˇrehledn´e uspoˇr´ad´an´ı objekt˚ u ˇci hromadnou zmˇenu vlastnost´ı. Pro z´akladn´ı funkce nen´ı potˇreba ps´at ˇza´dn´ y k´od, ˇc´ımˇz se omezuje riziko vzniku chyb. Pokud je potˇreba vytvoˇrit sloˇzitˇejˇs´ı funkci, je moˇzn´e vytvoˇrit skript v jazyce VB Script.
1.4
Standard IEC EN-61131-3
Norma IEC EN-61131 pro programovateln´e ˇr´ıd´ıc´ı syst´emy se dˇel´ı na pˇet ˇca´st´ı, kter´e jsou vˇenov´any jak technick´emu, tak programov´emu vybaven´ı tˇechto syst´em˚ u. Tˇret´ı ˇc´ast t´eto normy se zab´ yv´a programovac´ımi jazyky. Norma IEC EN-61131-3 je v´ ysledkem pr´ace nˇekolika mezin´arodn´ıch spoleˇcnost´ı z oboru pr˚ umyslov´e automatizace a byla pˇrijata jako smˇernice u vˇetˇsiny v´ yznamn´ ych v´ yrobc˚ u PLC. Dˇel´ı se na dvˇe z´akladn´ı ˇca´sti: • Spoleˇcn´e prvky • Programovac´ı jazyky
´ KAPITOLA 1. UVOD
1.4.1
7
Spoleˇ cn´ e prvky
Typy dat Definov´an´ı datov´ ych typ˚ u omezuje riziko vzniku chyb. Bˇeˇzn´e datov´e typy jsou BOOL, INT, REAL, STRING atd. Promˇ enn´ e Dˇel´ı se na lok´aln´ı a glob´aln´ı. Oblast p˚ usobnosti lok´aln´ıch promˇenn´ ych je omezena na POU kde byly definov´any. Jejich jm´ena pot´e mohou b´ yt pouˇzita v jin´ ych ˇc´astech programu. Pokud definujeme promˇennou jako glob´aln´ı, m´a platnost v cel´em projektu. Promˇenn´ ym m˚ uˇze b´ yt pˇriˇrazena poˇca´teˇcn´ı hodnota pˇri startu. Konfigurace V r´amci konfigurace m˚ uˇzeme definovat jedno nebo v´ıce zaˇr´ızen´ı vykon´avaj´ıc´ı IEC programy (Resource). Uvnitˇr zdroje m˚ uˇzeme definovat jednu nebo v´ıce u ´loh (Task). Programov´ e oraganizaˇ cn´ı jednotky V r´amci normy IEC EN-61131 jsou jako programov´e organizaˇcn´ı jednotky naz´ yv´any spoleˇcnˇe funkce, funkˇcn´ı bloky a programy. Funkce Norma definuje standardn´ı a uˇzivatelem definovan´e funkce. Funkce mohou b´ yt v programu pouˇz´ıv´any opakovanˇe. Funkˇ cn´ı bloky Obsahuj´ı algoritmy i data, mohou tedy uchov´avat informaci z minulosti. Maj´ı definovan´e rozhran´ı a skryt´e vnitˇrn´ı promˇenn´e. Funkˇcn´ı bloky mohou b´ yt v programu pouˇz´ıv´any opakovanˇe. Programy Program je s´ıt´ı funkc´ı a funkˇcn´ıch blok˚ u.
´ KAPITOLA 1. UVOD
1.4.2
8
Programovac´ı jazyky
V normˇe jsou definov´any ˇctyˇri programovac´ı jazyky. LD - Ladder Diagram Jazyk pˇr´ıˇckov´eho diagramu. Je zaloˇzen na grafick´e reprezentaci rel´eov´e logiky. S´ıt’ v jazyku LD je zleva i zprava ohraniˇcena svisl´ ymi ˇcarami, kter´e se naz´ yvaj´ı lev´a a prav´a nap´ajec´ı sbˇernice. Mezi nimi je tzv. pˇr´ıˇcka, kter´a m˚ uˇze b´ yt rozvˇetvena. Do pˇr´ıˇcek mohou b´ yt vloˇzeny kontakty, funkce ˇci funkˇcn´ı bloky. FBD - Function Block Diagram Jazyk funkˇcn´ıho blokov´eho sch´ematu. Vyjadˇruje chov´an´ı funkc´ı, funkˇcn´ıch blok˚ u a program˚ u jako sadu prov´azan´ ych grafick´ ych blok˚ u. ST - Structured Text Jazyk struktuovan´eho textu. Jedn´a se o vyˇsˇs´ı programovac´ı jazyk, kter´ y obsahuje prvky jako jsou smyˇcky ˇci vˇetven´ı. IL - Instruction List Jazyk seznamu instrukc´ı. POU je sloˇzena ze sekvence instrukc´ı.
Kapitola 2 Modely Pˇri tvorbˇe modelu soustavy tepeln´e techniky budov jsem vych´azel z pˇredpokladu, ˇze tepelnou techniku budov lze modelovat tak´e jako soustavu spojen´ ych n´adob. V tepeln´e technice budov se m˚ uˇzeme ˇcasto setkat s v´ yrazn´ ymi nelinearitami, kter´e se vyskytuj´ı tak´e u modelu spojen´ ych n´adob. Pr´ace by mˇela b´ yt vyuˇzita jako v´ yukov´ y model, proto jsem se rozhodl vytvoˇrit model s takov´ ymi parametry, aby ˇcasov´e konstanty byly mnohem menˇs´ı neˇz v tepeln´e technice budov. V pr´aci jsem ze zab´ yval n´avrhem dvou typ˚ u soustav a to soustavy 1. ˇr´adu a soustavy 2. ˇra´du.
2.1
Model soustavy 1. ˇ r´ adu
Jako model soustavy prvn´ıho ˇra´du jsem zvolil n´adobu s pˇr´ıtokem shora s jedn´ım uzav´ırateln´ ym ventilem, kter´ ym kapalina odt´ek´a. Tento model by se dal v tepeln´e technice budov pˇrirovnat napˇr. k m´ıstnosti vyt´apˇen´e pˇr´ımotopem ve kter´e doch´az´ı ke ztr´at´am tepla.
2.1.1
Matematick´ y model soustavy
Parametry modelu: • Plocha pr˚ uˇrezu v´alce St = 3.10−3 m2 • Konstanta ˇcepradla kp = 1.10−3 • Plocha pr˚ uˇrezu v´ ystupn´ıho potrub´ı Sout = 25.10−4 m2 9
KAPITOLA 2. MODELY
10
Obr´ azek 2.1: Model soustavy prvn´ıho ˇr´adu
2.1.1.1
Neline´ arn´ı model
Model soustavy jedn´e n´adoby s pˇr´ıtokem shora a s jedn´ım odtokov´ ym potrub´ım, kter´e je moˇzn´e uzav´ırat lze popsat diferenci´aln´ı rovnic´ı dh 1 (qin − qout ) = dt St
(2.1)
kde h [m] je v´ yˇska hladiny ve v´alci, St [m2 ] pr˚ uˇrez v´alce, qin [m3 s−1 ] oznaˇcuje pˇr´ıtok do v´alce a qout [m3 s−1 ] odtok z v´alce. Tuto rovnici lze d´ale upravit na tvar p dh 1 = (ukp − Sout 2gh) (2.2) dt St Tento popis soustavy pˇredpokl´ad´a nulovou d´elku odtokov´eho potrub´ı k ventilu, n´adoba je um´ıstˇena na zemi a ˇze pouˇzitou kapalinou je voda. Zanedb´av´a tak´e viskozitu kapaliny a r˚ uzn´a tˇren´ı. Diferenci´aln´ı rovnici √ dh ukp Sout 2g p = − h(t) dt St St m˚ uˇzeme zjednoduˇsit pomoc´ı konstant k0 = kb =
kp St √ Sout 2g St
KAPITOLA 2. MODELY
11
kde k0 je vstupn´ı konstanta a kb konstanta v´ ystupn´ı. V´ ysledn´ y tvar diferenci´aln´ı rovnice pro neline´arn´ı syst´em je tedy p dh = k0 u − kb h(t) dt
(2.3)
p dh = 0.333qin − 0.369 h(t) dt
(2.4)
po dosazen´ı ˇc´ıseln´ ych hodnot
Stavov´ y popis modelu: x=h u = qin y=h √ [x] ˙ = [k0 u − kb x]
(2.5)
[y] = [1] [x] + [0] [u] 2.1.1.2
Linearizace
Model soustavy je neline´arn´ı, je tedy nutn´e jej pro z´ısk´an´ı pˇrenosu linearizovat v pracovn´ım bodˇe. Vyuˇzil jsem stavov´ y popis neline´arn´ı soustavy a upravil ho pomoc´ı parci´aln´ıch derivac´ı na tvar h [x] ˙ = − 12
kb √ x
i
[∆x] + [k0 ] [∆u]
[y] = [1] [∆x] + [0] [∆u] Jako pracovn´ı bod jsem zvolil rovnov´aˇzn´ y stav, kdy u = 0,7 a h = 0,4m. V´ ysledn´ y stavov´ y popis syst´emu v pracovn´ım bodˇe po dosazen´ı hodnot [x] ˙ = [−0.2917] u=0.7 [∆x] + [0.333] u=0.7 [∆u] x=0.4
x=0.4
[y] = [1] u=0.7 [∆x] + [0] u=0.7 [∆u] x=0.4
(2.6)
x=0.4
Pˇrenos syst´emu v pracovn´ım bodˇe G(s) =
0.333 s + 0.2917
(2.7)
KAPITOLA 2. MODELY
12
Obr´ azek 2.2: Pˇrechodov´a charakteristika linearizovan´eho syst´emu
2.1.2
Implementace
Soustavu jsem se rozhodl implmentovat v jazyce ST (Structured text) jako samostatn´ y funkˇcn´ı blok. P˚ uvodn´ı myˇslenkou bylo realizovat soustavu linearizovanou v pracovn´ım bodˇe, tedy jako line´arn´ı syst´em dan´ y pˇrenosem. Toto ˇreˇsen´ı by ale nedovolovalo mˇenit za bˇehu programu nˇekter´e parametry soustavy, jako napˇr. m´ıru otevˇren´ı ventil˚ u. Proto jsem se rozhodl realizovat soustavu neline´arn´ı. Toto ˇreˇsen´ı nav´ıc umoˇzn ˇuje l´epe vidˇet problematiku regulace neline´arn´ıch soustav a je podle mne jako uˇcebn´ı pom˚ ucka n´azornˇejˇs´ı. V okol´ı v´ yˇse definovan´eho pracovn´ıho bodu plat´ı pro pˇrenos soustavy rovnice (2.7) a je tedy moˇzn´e program vyuˇz´ıt pˇri n´avrhu regul´ator˚ u. Vstupy bloku jsou vstup do soustavy a hodnota koeficientu kb . V´ ystup bloku odpov´ıd´a v´ ystupu soustavy, tedy hladinˇe h. Protoˇze je soustava diskr´etn´ı, je tˇreba jako vstup do bloku pˇridat jeˇstˇe hodinov´e pulzy. Jako metodu pro diskretizaci jsem zvolil metodu zpˇetn´e diference. Rovnice (2.4) se tedy zmˇen´ı na p y(k) − y(k − 1) = k0 u − kb y(k) h Tato rovnice je ale pro y(k) neˇreˇsiteln´a, protoˇze v´ ysledn´a rovnice je nekauz´aln´ı. Roz-
KAPITOLA 2. MODELY
13
hodl jsem se tedy nahradit hodnotu v´ ystupu y(k) pod odmocninou hodnotou v´ ystupu v minul´em kroku, tedy hodnotou y(k − 1), protoˇze tato u ´prava zmˇen´ı chov´an´ı soustavy pouze m´alo. V´ ysledn´a rovnice tedy odpov´ıd´a p y(k) − y(k − 1) = k0 u − kb y(k − 1) h
(2.8)
p y(k) = y(k − 1) + k0 uh − kb h x(k − 1)
(2.9)
z n´ı
Funkˇcn´ı blok realizuje v´ ypoˇcet v´ ystupn´ı hodnoty podle rovnice (2.9). Koeficient kb je d´an jedn´ım ze vstup˚ u bloku, stejnˇe tak i vstup soustavy. Koeficient k0 je pevnˇe dan´ y. Vzorkovac´ı perioda h odpov´ıd´a periodˇe pulz˚ u na vstupu bloku, tedy 0,1s. V´ ystupem bloku je v´ yˇska hladiny v n´adobˇe v metrech.
2.2
Model soustavy 2. ˇ r´ adu
Jako model soustavy druh´eho ˇr´adu jsem zvolil dvˇe n´adoby propojen´e uzav´ırateln´ ym ventilem. Tekutina pˇrit´ek´a shora do prvn´ı n´adrˇze, z druh´e n´adrˇze odt´ek´a tak´e pˇres uzav´ırateln´ y ventil. Tento model by se dal v tepeln´e technice budov pˇrirovnat napˇr. ke dvˇema m´ıstnostem, kde je prvn´ı m´ıstnost vyt´apˇen´a pˇr´ımotopem a doch´az´ı k pˇrenosu tepla do druh´e m´ıstnosti napˇr. dveˇrmi. V druh´e m´ıstnosti pot´e doch´az´ı k tepeln´ ym ztr´at´am.
2.2.1
Matematick´ y model soustavy
Parametry modelu: • Plocha pr˚ uˇrezu v´alc˚ u St = 3.10−3 m2 • Konstanta ˇcepradla kp = 1.10−3 • Plocha pr˚ uˇrezu spojovac´ıho potrub´ı S12 = 25.10−4 m2 • Plocha pr˚ uˇrezu v´ ystupn´ıho potrub´ı Sout = 25.10−4 m2
KAPITOLA 2. MODELY
14
Obr´ azek 2.3: Model soustavy druh´eho ˇr´adu
2.2.1.1
Neline´ arn´ı model
Model soustavy dvou spojen´ ych n´adob s pˇr´ıtokem shora do prvn´ı n´adoby a s jedn´ım odtokov´ ym potrub´ım z n´adoby druh´e je pops´an diferenci´aln´ımi rovnicemi dh1 dt dh2 dt
= =
1 St 1 St
(qin − q12 )
(2.10)
(q12 − qout )
kde h1 [m] je v´ yˇska hladiny v prvn´ım v´alci, h2 [m] je v´ yˇska hladiny v druh´em v´alci, St [m2 ] pr˚ uˇrez v´alc˚ u, qin [m3 s−1 ] oznaˇcuje pˇr´ıtok do prvn´ıho v´alce, q12 [m3 s−1 ] pr˚ utok mezi v´alci a qout [m3 s−1 ] odtok z druh´eho v´alce. Tuto rovnici lze d´ale upravit na tvar Diferenci´aln´ı rovnice dh1 dt dh2 dt
= =
√ ukp S12 2g √ − h1 − h2 St √ St √ √ S12 2g Sout 2g h − h − 1 2 St St
√
h2
(2.11)
m˚ uˇzeme zjednoduˇsit pomoc´ı konstant kp St √ Sout 2g kb = St √ k12 = S12St 2g
k0 =
kde k0 je vstupn´ı konstanta, k12 konstanta pr˚ uchodu mezi v´alci a kb konstanta v´ ystupn´ı. V´ ysledn´ y tvar diferenci´aln´ıch rovnic pro neline´arn´ı syst´em je tedy dh1 dt dh2 dt
√ = uk0 − k12 h1 − h2 √ √ = k12 h1 − h2 − kb h2
(2.12)
KAPITOLA 2. MODELY
15
po dosazen´ı ˇc´ıseln´ ych hodnot √ = 0.333k0 − 0.369 h1 − h2 √ √ = 0.369 h1 − h2 − 0.369 h2
dh1 dt dh2 dt
(2.13)
Stavov´ y popis modelu: x1 = h1 x2 = h2 u = qin y = h2 √ x˙ 1 = 0.333u − 0.369 x1 − x2 √ √ x˙ 2 = 0.369 x1 − x2 − 0.369 x2 # √ uk0 − km x1 − x2 = √ √ x˙ 2 km x1 − x2 − kb x2 " # " #" # " # y1 1 0 x1 0 = + [u] y2 0 1 x2 0 "
2.2.1.2
x˙ 1
#
"
(2.14)
Linearizace
Vyuˇzil jsem stavov´ y popis neline´arn´ı soustavy a upravil ho pomoc´ı parci´aln´ıch derivac´ı na tvar "
x˙ 1
#
y1
− 12
√ km x1 −x2 1 √ km 2 x# 1 −x "2
=
x˙ 2 "
"
#
" =
y2
1 √ km 2 x1 −x2 − 21 √xk1m−x2 − 12 √kxb2 # " #
1 0
∆x1
0 1
∆x2
+
0
#"
∆x1
#
∆x2
" +
k0 0
# [∆u]
[∆u]
0
Jako pracovn´ı bod jsem zvolil rovnov´aˇzn´ y stav, kdy u = 0,7, h1 = 0,8m a h2 = 0,4m. V´ ysledn´ y stavov´ y popis syst´emu v pracovn´ım bodˇe po dosazen´ı hodnot
"
x˙ 1
# =
x˙ 2 "
y1 y2
"
# =
−0.2917
0.2917
#
"
∆x1
#
0.333
+ −0.5834 u=0.7 ∆x2 0 x1=0.8 " #x2=0.4 " # ∆x1 0 + [∆u] ∆x2 0 u=0.7 u=0.7
0.2917 " # 1 0 0 1
"
x1=0.8 x2=0.4
x1=0.8 x2=0.4
# [∆u] u=0.7 x1=0.8 x2=0.4
(2.15)
KAPITOLA 2. MODELY
16
Pˇrenos syst´emu v pracovn´ım bodˇe G(s) =
s2
0.09722 + 0.8741s + 0.0848
(2.16)
Obr´ azek 2.4: Pˇrechodov´ a charakteristika linearizovan´eho syst´emu druh´eho ˇr´ adu
2.2.2
Implementace
Tak´e tuto soustavu jsem se rozhodl implmentovat jako nelin´arn´ı ve formˇe samostatn´eho funkˇcn´ıho bloku. V okol´ı v´ yˇse definovan´eho pracovn´ıho bodu plat´ı pro pˇrenos soustavy rovnice (2.16). Vstupy bloku jsou vstup do soustavy, hodnota koeficientu kb a hodnota koeficientu k12 . V´ ystupy bloku odpov´ıdaj´ı v´ ystup˚ um soustavy, tedy hladin´am h1 a h2 . Protoˇze je soustava diskr´etn´ı, je tˇreba jako vstup do bloku pˇridat jeˇstˇe hodinov´e pulzy. Jako metodu pro diskretizaci jsem zvolil metodu zpˇetn´e diference. Rovnice (2.12) se tedy zmˇen´ı na y1 (k)−y1 (k−1) h y2 (k)−y2 (k−1) h
p = k0 u − k12 y2 (k) − y1 (k) p p = k12 y2 (k) − y1 (k) − kb y2 (k)
KAPITOLA 2. MODELY
17
Tyto rovnice jsou ale pro y1 (k) a y2 (k) neˇreˇsiteln´e. Rozhodl jsem se tedy nahradit hodnoty v´ ystup˚ u y1 (k) a y2 (k) pod odmocninami hodnotami v´ ystup˚ u v minul´em kroku, tedy hodnotami y1 (k − 1) a y2 (k − 1). V´ ysledn´e rovnice tedy odpov´ıdaj´ı y1 (k)−y1 (k−1) h y2 (k)−y2 (k−1) h
p = k0 u − k12 y2 (k − 1) − y1 (k − 1) p p = k12 y2 (k − 1) − y1 (k − 1) − kb y2 (k − 1)
(2.17)
p y1 (k) = y1 (k − 1) + k0 uh − k12 y2 (k − 1) − y1 (k − 1) p p y2 (k) = y2 (k − 1) + k12 y2 (k − 1) − y1 (k − 1) − kb h y2 (k − 1)
(2.18)
z nich
Funkˇcn´ı blok realizuje v´ ypoˇcet v´ ystupn´ıch hodnot podle rovnic (2.18). Koeficient kb je d´an jedn´ım ze vstup˚ u bloku, stejnˇe tak i koeficient k12 a vstup soustavy. Koeficient k0 je pevnˇe dan´ y. vzorkovac´ı perioda h odpov´ıd´a periodˇe pulz˚ u na vstupu bloku, tedy 0,1s. V´ ystupy bloku odpov´ıdaj´ı v´ yˇsk´am hladin v n´adob´ach v metrech.
Kapitola 3 Regulace V programu jsem se rozhodl implementovat dva typy regul´ator˚ u a to typ PID a typ dvoustavov´ y.
3.1
PID regul´ ator
Prosˇred´ı Mosaic obsahuje n´astroj PIDMaker, kter´ y dovoluje automaticky implementovat regulaˇcn´ı algoritmus, kter´ y lze pot´e zaˇradit do programu uˇzivatele. Rozhodl jsem se vˇsak, ˇze PID regul´ator navrhnu jako samostatn´ y funkˇcn´ı blok. Blok realizuje funkci diskr´etn´ı verze PID regul´atoru popsan´eho rovnic´ı u(t) = K e(t) +
1 Ti
Zt e(τ )dτ + Td
de(t) dt
(3.1)
0
K pˇrevodu do diskr´etn´ıho tvaru jsem vyuˇzil zpˇetn´ ych diferenc´ı, kter´ ymi jsem nahradil derivace. Vstupem bloku je vstup do regul´atoru, tedy regulaˇcn´ı odchylka, d´ale zes´ılen´ı regul´atoru K a ˇcasov´e konstanty Ti a Td . V´ ystupem bloku je v´ ystup regul´atoru, tedy akˇcn´ı z´asah. PID regul´ator se skl´ad´a ze tˇr´ı sloˇzek a to ze sloˇzky proporci´aln´ı (P), integraˇcn´ı (I) a sloˇzky derivaˇcn´ı (D). Sloˇzka proporci´aln´ı realizuje potˇrebn´e zes´ılen´ı, sloˇzka integraˇcn´ı nulovou regulaˇcn´ı odchylku na skok ˇr´ıdic´ı veliˇciny a sloˇzka derivaˇcn´ı omezuje velikost pˇrekmitu zp˚ usoben´em sloˇzkou integraˇcn´ı.
18
KAPITOLA 3. REGULACE
3.1.1
19
P sloˇ zka
Diskr´etn´ı realizace zes´ılen´ı je pomˇernˇe snadn´a, jde o pouh´e vyn´asoben´ı souˇcasn´e hodnoty vstupu konstanou K (zes´ılen´ı). P (tk ) = Ke(tk )
3.1.2
(3.2)
I sloˇ zka
V´ yraz K TI
Zt e(τ )dτ 0
jsme upravil na tvar dI K = e dt Ti Derivaci ve v´ yrazu jsem nahradil zpˇetnou diferenc´ı K I(tk ) − I(tk−1 ) = e(tk ) h Ti
(3.3)
Z v´ yrazu po u ´pravˇe dostaneme hodnotu integraˇcn´ı sloˇzky v ˇcase tk I(tk ) =
3.1.3
Kh e(tk ) + I(tk−1 ) Ti
(3.4)
D sloˇ zka
Derivaˇcn´ı sloˇzku PID regul´atoru jsem navrhl s filtrac´ı, protoˇze ide´aln´ı derivace pˇr´ıliˇs zesiluje vysokofrekvenˇcn´ı ˇsumy. Pˇrenos derivaˇcn´ı sloˇzky s filtrac´ı je d´an vztahem Y (s) U (s)
=
Y (s)(1
sKTd sT 1+ Nd + s TNd
(3.5) ) = sTd U (s)
Vztah jsem pomoc´ı zpˇetn´e diference upravil na y(tk ) +
Td [y(tk ) − y(tk−1 )] = KTd [u(tk ) − u(tk−1 )] N
(3.6)
Po u ´prav´ach a pˇrejmenov´an´ı dostaneme v´ ysledn´ y vztah pro hodnotu derivaˇcn´ı sloˇzky v ˇcase tk D(tk ) =
[D(tk−1 ) + (KN e(tk )) − (KN e(tk−1 ))] Td + N h
(3.7)
KAPITOLA 3. REGULACE
3.1.4
20
Anti-Windup
Kaˇzd´ y akˇcn´ı ˇclen m´a omezen´ y rozsah, napˇr. ˇcerpadlo v m´em programu m´a rozsah 0 aˇz 1. Kdyˇz dojde k saturaci, ˇr´ıdic´ı sign´al neroste/nekles´a, smyˇcka je v podstatˇe otevˇren´a. V´ ystup integraˇcn´ıho ˇclenu regul´atoru st´ale zvyˇsuje svou hodnotu, ale zbyteˇcnˇe. Kdyˇz se zmˇen´ı znam´enko regulaˇcn´ı odchylky, zaˇcne v´ ystup klesat, ale dlouho trv´a neˇz se dostane pod u ´roveˇ n saturace. ˇ sen´ım je Anti-Windup, kter´ Reˇ y po dosaˇzen´ı saturace nastav´ı integr´aln´ı akci rovnou nule. Tuto funkci jsem vyˇreˇsil pomoc´ı IF-ELSE funkc´ı.
3.2
Dvoustavov´ y regul´ ator
Dvoustavov´ y regul´ator jsem navrhl jako blok se tˇremi vstupy a jedn´ım v´ ystupem. Dva ze vstup˚ u dovoluj´ı zadat poˇzadovanou hodnotu v´ ystupu a velikost hysterze, tˇret´ı vstup slouˇz´ı jako vstup do regul´atoru. V´ ystupem bloku je akˇcn´ı z´asah regul´atoru, tedy 0 nebo 1. Funkci regul´atoru jsem implmentoval pomoc´ı if-else funkc´ı.
Obr´ azek 3.1: Princip dvoustavov´eho regul´atoru
KAPITOLA 3. REGULACE
3.3
21
N´ avrhy regul´ ator˚ u
Soustavy jsou v pracovn´ım bodˇe a jeho okol´ı pops´any pˇrenosem, lze tedy pro tento bod navrhnout regul´atory, kter´e dok´aˇzou ˇr´ıdit soustavu.
3.3.1
Regul´ ator pro soustavu 1. ˇ r´ adu
Rozhodl jsem se pro regul´ator typu PI (proporci´alnˇe-integraˇcn´ı). Tento regul´ator zajist´ı dostateˇcnou rychlost reakce a nulovou regulaˇcn´ı odchylku na skok ˇr´ıdic´ı veliˇciny. Regul´ator jsem navrhl tak, aby pˇrekmit regulovan´e veliˇciny nepˇres´ahl 10%. N´avrh jsem provedl v MATLBu pomoc´ı metody geometrick´eho m´ısta koˇren˚ u (GMK). Pˇrenos regul´atoru C(s) = 0.8 +
0.571 s
(3.8)
z nˇej K = 0.8 TI = 1.4
Obr´ azek 3.2: Srovn´ an´ı reakc´ı simulinkov´eho modelu a modelu navrˇzen´em v prostˇred´ı Mosaic na referenci skoku pˇri pouˇzit´ı PI regul´atoru
(3.9)
KAPITOLA 3. REGULACE
22
Z obr. (3.2) je vidˇet, ˇze se v´ ystup regulovan´e soustavy simulovan´e v MATLABu od v´ ystupu soustavy simulovan´e v m´em programu pˇr´ıliˇs neliˇs´ı. Odchylka m˚ uˇze b´ yt zp˚ usobena drobnou odliˇsnost´ı n´avrhu soustav.
3.3.2
Regul´ ator pro soustavu 2. ˇ r´ adu
Tak´e u soustavy druh´eho ˇr´adu jsem se rozhodl pro regul´ator typu PI (proporci´alnˇeintegraˇcn´ı). Regul´ator jsem opˇet navrhl tak, aby pˇrekmit regulovan´e veliˇciny nepˇres´ahl 10%. N´avrh jsem provedl v MATLBu pomoc´ı metody geometrick´eho m´ısta koˇren˚ u (GMK). Pˇrenos regul´atoru C(s) = 1.8 +
0.312 s
(3.10)
z nˇej K = 1.8 TI = 5.9
Obr´ azek 3.3: Srovn´ an´ı reakc´ı simulinkov´eho modelu a modelu navrˇzen´em v prostˇred´ı Mosaic na referenci skoku pˇri pouˇzit´ı PI regul´atoru
(3.11)
Kapitola 4 Vizualizace Vizualizaci soustav a jejich ˇr´ızen´ı jsem navrhl v prostˇred´ı SCADA/HMI Reliance. Tento vizualizaˇcn´ı syst´em je k dispozici ve verzi Lite zdarma s omezen´ım maxim´alnˇe pˇetadvaceti datov´ ych bod˚ u. T´ımto poˇctem jsem tedy byl ve sv´e pr´aci limitov´an.
4.1
Komunikace s PLC
Kaˇzd´a stanice (PLC) m´a svoji unik´atn´ı IP adresu pomoc´ı kter´e je v s´ıti jednoznaˇcnˇe identifikovateln´a. V nastaven´ı projektu vizualizace je tˇreba urˇcit c´ılovou stanici, tedy zadat jej´ı IP adresu. V´ yvojov´e prostˇred´ı Mosaic umoˇzn ˇuje pracovat s tzv. simulovan´ ym PLC, kdy k poˇc´ıtaˇci nen´ı pˇripojeno fyzick´e PLC, ale jeho chod je v PC simulov´an. Volbu simulovan´eho PLC jsem se rozhodl ve sv´e pr´aci vyuˇz´ıt. Volba Mosaic PLC v nastaven´ı projektu prostˇred´ı Mosaic povoluje moˇznost pˇripojen´ı vizualizace pˇr´ımo k simul´atoru v Mosaicu pˇres Ethernet. Je-li vizualizace spuˇstˇena ve stejn´em poˇc´ıtaˇci, pak adresa simul´atoru je na intern´ı adrese IP 127.0.0.1. Po spuˇstˇen´ı vizualizace by mˇelo doj´ıt k atomatick´emu spojen´ı se stanic´ı. Pokud se spojen´ı z nˇejak´eho d˚ uvodu nezdaˇr´ı, zobraz´ı se varovn´e hl´aˇsen´ı. V m´e pr´aci vyj´ımeˇcnˇe dojde k situaci kdy vizualizaˇcn´ı program hl´as´ı po spuˇstˇen´ı chybu spojen´ı aˇckoli je simulovan´e PLC pˇripojeno a program v nˇem bˇeˇz´ı. Po restartov´an´ı komunikace PLC se vˇsak spojen´ı nav´aˇze. Bohuˇzel se mi nepodaˇrilo nal´ezt a vyˇreˇsit pˇr´ıˇcinu tohoto probl´emu.
23
KAPITOLA 4. VIZUALIZACE
4.2
24
Grafick´ y n´ avrh
Obr´ azek 4.1: Model prvn´ıho ˇr´adu s ˇr´ızen´ım ve vizualizaˇcn´ım prostˇred´ı
Modely soustav jsou vytvoˇreny v jednom vizualizaˇcn´ım projektu. Vizualizace soustav jsou vyˇreˇseny v samostatn´ ych oknech mezi kter´ ymi lze pˇrep´ınat. V´ ybˇ er typu soustavy V´ ybˇer typu soustavy lze prov´est pomoc´ı tlaˇc´ıtek (1) v obr. (4.2). Lze zvolit mezi soustavou prvn´ıho nebo soustavou druh´eho ˇra´du. Zad´ an´ı vstupu V pˇr´ıpadˇe manu´aln´ıho reˇzimu ˇr´ızen´ı je pro zad´an´ı hodnoty vstupu do soustavy urˇceno textov´e pole (2) v obr. (4.2). V pˇr´ıpadˇe, ˇze je soustava ˇr´ızena PID regul´atorem, slouˇz´ı toto pole pro zad´an´ı poˇzadovan´e hodnoty v´ ystupu soustavy. Volba typu ˇ r´ızen´ı Soustavu lze ˇr´ıdit tˇremi typy ˇr´ızen´ı a to manu´alnˇe, tedy bez regul´atoru, pomoc´ı PID regul´atoru ˇci pomoc´ı dvoustavov´eho regul´atoru. V´ ybˇer typu ˇr´ızen´ı lze prov´est v´ ybˇerem pˇr´ısluˇsn´eho r´adiov´eho tlaˇc´ıtka (3) v obr. (4.2).
KAPITOLA 4. VIZUALIZACE
25
Obr´ azek 4.2: Model druh´eho ˇr´adu s ˇr´ızen´ım ve vizualizaˇcn´ım prostˇred´ı
Nastaven´ı PID regul´ atoru Pomoc´ı tˇr´ı posuvn´ık˚ u (4) v obr. (4.2) lze nastavit zes´ılen´ı, hodnotu integraˇcn´ı ˇcasov´e konstaty a hodnotu derivaˇcn´ı ˇcasov´e konstanty PID regul´atoru. Zes´ılen´ı lze nastavit v rozmez´ı 0 aˇz 10, ˇcasov´e konstanty v rozmez´ı 0 aˇz 10s s krokem 0,1s. Nastaven´ı dvoustavov´ eho regul´ atoru Pomoc´ı dvou posuvn´ık˚ u (5) v obr. (4.2) lze nastavit poˇzadovanou v´ yˇsku hladiny a velikost hysterze. Graf pr˚ ubˇ ehu hladin v n´ adrˇ z´ıch a akˇ cn´ı veliˇ ciny Graf (6) v obr. (4.2) zobrazuje velikost akˇcn´ıho z´asahu a v´ yˇsky hladin v n´adrˇz´ıch v rozsaz´ıch 0 aˇz 1 a 0 aˇz 100cm. Tento graf kv˚ uli sv´e velikosti nepod´av´a detailn´ı informace, je urˇcen zejm´ena jako orientaˇcn´ı. Graf pr˚ ubˇ ehu v´ yˇ sky regulovan´ e hladiny Graf (7) v obr. (4.2) zobrazuje v´ yˇsku regulovan´e hladiny v n´adrˇzi v rozsahu 0,3 aˇz 0,5m. Tento graf je urˇcen pro vizualizaci ˇr´ızen´ı hladiny v okol´ı pracovn´ıho bodu 0,4m. Zejm´ena se uplatn´ı pˇri n´avrhu PID regul´ator˚ u pro tento pracovn´ı bod.
KAPITOLA 4. VIZUALIZACE
26
Animace soustavy Vizualizace (8) v obr. (4.2) zn´azorˇ nuje animac´ı aktu´aln´ı v´ yˇsky hladin v n´adrˇz´ıch. Ventil mezi n´ adrˇ zemi Posuvn´ık (9) v obr. (4.2) umoˇzn ˇuje uzav´ırat ventil spojuj´ıc´ı n´adrˇze. V´ ystupn´ı ventil Posuvn´ık (10) v obr. (4.2) umoˇzn ˇuje uzav´ırat v´ ystupn´ı odtokov´ y ventil z druh´e n´adrˇze.
4.3
Logick´ y n´ avrh
Nˇekter´ ym komponent´am vizualizace je nutn´e pˇriˇradit promˇenn´e programu bˇeˇz´ıc´ıho v PCL. Program Mosaic dovoluje oznaˇcit zvolen´e promˇenn´e pˇri deklaraci kl´ıˇcov´ ym slovem PUBLIC. Pˇri pˇrekladu projektu se n´azvy a adresy tˇechto promˇenn´ ych uloˇz´ı do souboru typu .bak. Tento soubor je pot´e moˇzn´e v nastaven´ı projektu Reliance otevˇr´ıt a s naˇcten´ ymi promˇenn´ ymi okamˇzitˇe pracovat. Pokud ovˇsem dojde k u ´pravˇe programu, kter´a m´a vliv na adresy promˇenn´ ych, je nutn´e soubor .bak v nastaven´ı opˇetovnˇe naˇc´ıst. Bez tohoto kroku by komponenty ve vizualizaci odkazovaly na jin´a m´ısta registru neˇz se nach´az´ı c´ılov´e promˇenn´e, coˇz m´a vˇetˇsinou fat´aln´ı n´asledky. U kaˇzd´e promˇenn´e lze nastavit interval aktualizace hodnoty, pˇr´ıpadnˇe jej´ı r˚ uzn´e korekce. Neregistrovan´ y vizualizaˇcn´ı syst´em Reliance, kter´ y jsem pouˇzil pro tvorbu vizualizace, omezuje poˇcet takto naˇcten´ ych promˇenn´ ych na 25. Abych nepˇres´ahl tento limit, byl jsem nucen slouˇcit nekter´e ovl´adac´ı prvky obou typ˚ u soustav. Tˇemito prvky jsou nastaven´ı typu regulace a nastaven´ı dvoustavov´eho regul´atoru. Pokud se tedy napˇr´ıklad v oknˇe soustavy prvn´ıho ˇr´adu zmˇen´ı zp˚ usob regulace na manu´aln´ı, dojde ke zmˇenˇe zp˚ usobu regulace na manu´aln´ı i v oknˇe soustavy druh´eho ˇr´adu. Podobnˇe u nastaven´ı mez´ı dvoustavov´eho regul´atoru dojde pˇri nastaven´ı u jedn´e soustavy k nastaven´ı stejn´ ych hodnot i u soustavy druh´e. Toto omezen´ı je sice nepˇr´ıjemn´e, ale nem´a ˇza´dn´ y vliv na funkci soustav ˇci regulace.
KAPITOLA 4. VIZUALIZACE
4.3.1
27
Pouˇ zit´ e komponenty
K vizualizaci pr˚ ubˇeh˚ u akˇcn´ı veliˇciny a v´ yˇsky hladin v n´adrˇz´ıch jsem pouˇzil komponenty typu Plovouc´ı graf. Tyto komponenty umoˇzn ˇuj´ı snadnou realizaci a spr´avu graf˚ u. Nev´ yhodou graf˚ u je, ˇze zobrazuj´ı aktu´aln´ı hodnotu v re´aln´em ˇcase, pr˚ ubˇeh nelze zastavit ˇci prohl´ıˇzet. K animaci vody v n´adrˇz´ıch jsem pouˇzil komponenty typu Indik´ator pr˚ ubˇehu sv´azan´e s promˇenn´ ymi v´ ystup˚ u soustav v projektu programu Mosaic. K nastavov´an´ı hodnot jsem pouˇzil komponenty typu Posuvn´ık. Nev´ yhodou tˇechto komponent je minim´aln´ı krok 1. Velikost posuvn´ıku jsem proto pˇri zad´av´an´ı desetinn´ ych ˇc´ısel musel desetkr´at zvˇetˇsit a hodnotu promˇenn´e n´aslednˇe v programu deseti dˇelit.
Kapitola 5 Z´ avˇ er V pr´aci jsem navrhl dva typy simulovan´ ych soustav, kter´e odpov´ıdaj´ı soustav´am tepeln´e techniky budov. Soustavy jsem pro z´ısk´an´ı pˇrenosu linearizoval v pracovn´ıch bodech a pro dan´e pˇrenosy navrhl proporci´alnˇe-integraˇcn´ı regul´atory. V jazyce strukturovan´eho textu jsem v prostˇred´ı Mosaic naprogramoval modely tˇechto soustav, diskr´etn´ı verzi PID regul´atoru a dvoustavov´ y regul´ator. Ned´ılnou souˇc´ast´ı pr´ace je vizualizace, kter´a umoˇzn ˇuje anal´ yzu soustav, n´avrh a testov´an´ı PID regul´ator˚ u na soustav´ach, n´avrh a testovan´ı dvoustavov´eho regul´atoru ˇci moˇznost vyzkouˇset ruˇcn´ı ˇr´ızen´ı soustav. Mysl´ım, ˇze tento v´ yukov´ y model splˇ nuje poˇzadavky na jednoduchost ovl´ad´an´ı a z´aroveˇ n nab´ız´ı velk´ y prostor pro experimenty s ˇr´ızen´ım soustav a mohl by tedy b´ yt k v´ yuce na stˇredn´ıch ˇskol´ach re´alnˇe vyuˇzit.
28
Literatura FRANKLIN, Gene F., POWELL, J. David, EMAMI-NAEINI, Abbas. Feedback Control of Dynamic Systems : Fifth Edition. [s.l.] : [s.n.], c2006. 910 s. ISBN 0-13-149930-0. ¨ ¨ ASTOM, K., HAGGLUNT, T. PID Controllers: Theory, Design, and Tuning. [s.l.] : [s.n.], c1995. 343 s. 2.. ISBN 978-1-55617-516-9. ´ CEK, ˇ ˇ HORA Petr. Syst´emy a modely. Praha : Vydavatelstv´ı CVUT, 2001. 232 s. ´ CICVAREK, Martin. Knihovna funkˇcn´ıch blok˚ u pro anal´yzu tvaru a predikci pr˚ ubˇehu ˇ ˇc´ıslicov´ych sign´al˚ u v PLC. [s.l.], 2008. 41 s. CVUT v Praze, Fakulta elektrotechnick´a. Bakal´aˇrsk´a pr´ace. Programov´an´ı PLC podle normy IEC 61 131-3 v prostˇred´ı Mosaic. 10. vyd. [s.l.] : [s.n.], 2007. 101 s. Dostupn´ y z WWW: www.tecomat.cz. Realiance 3 Design. [s.l.] : [s.n.], [200-]. 254 s. Dostupn´ y z WWW: www.tecomat.cz.
29
Pˇ r´ıloha A Zdrojov´ e k´ ody A.0.1
Main
VAR_GLOBAL // nadrze nadrz : tank; nadrze : coupled_tanks; // PID regulatory pid : PIDreg; pid2 : PIDreg; // dvoustavove regulatory dvstav : dvoustavreg; dvstav2 : dvoustavreg; // takt hodin 0.1s pulz AT %S13.0 : BOOL; // definice PUBLIC promennych // soustava 1.rad ins {PUBLIC} : REAL :=0; outs {PUBLIC} : REAL :=0; //PID1 kpid {PUBLIC} : REAL := 10.0;
I
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR kpidvis {PUBLIC} : REAL; tipid {PUBLIC} : REAL :=20.0; tipidvis {PUBLIC} : REAL; tdpid {PUBLIC} : REAL :=0; tdpidvis {PUBLIC} : REAL; inpid : REAL := 0; outreg {PUBLIC} : REAL; kv1 {PUBLIC} : REAL := 369; //dvoustav. reg. yw {PUBLIC} : REAL := 40; hyst {PUBLIC} : REAL := 20; // soustava 2.rad intanks {PUBLIC} : REAL := 0; outh1 {PUBLIC} : REAL; outh2 {PUBLIC} : REAL; //PID2 kpid2 {PUBLIC} : REAL := 10.0; kpid2vis {PUBLIC} : REAL; tipid2 {PUBLIC} : REAL := 20.0; tipid2vis {PUBLIC} : REAL; tdpid2 {PUBLIC} : REAL :=0; tdpid2vis {PUBLIC} : REAL; inpid2 : REAL :=0; outreg2 {PUBLIC} : REAL :=0; kv2 {PUBLIC} : REAL := 369; km {PUBLIC} : REAL := 369; // rizeni soustav: 0-man, 1-PID, 2-dvoustav. reg. rizeni {PUBLIC} : INT := 1; END_VAR PROGRAM Main VAR_INPUT END_VAR
II
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR
III
VAR END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR // 1 valec // PID rizeni IF rizeni = 1 THEN inpid := ins-outs; pid(clock := pulz, input := inpid, K := kpid/10.0, Ti := tipid/10.0, Td := tdpid/10.0, out =>outreg); END_IF; // dvoustavove rizeni IF rizeni = 2 THEN dvstav(clock := pulz, input := outs, yw := yw/100.0, hyst := hyst/100.0, out => outreg); END_IF; // manualni ovladani IF rizeni = 0 THEN outreg := ins; END_IF; // soustava nadrz(vstup := outreg, kv:=(kv1/1000.0), kpidvis := kpid/10.0; tipidvis := tipid/10.0; tdpidvis := tdpid/10.0;
// 2 valce // PID rizeni IF rizeni = 1 THEN
clock := pulz, vystup => outs);
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR
IV
inpid2 := intanks-outh2; pid2(clock := pulz, input := inpid2, K := kpid2/10.0, Ti := tipid2/10.0, Td := tdpid2/10.0, out =>outreg2); END_IF; // dvoustavove rizeni IF rizeni = 2 THEN dvstav2(clock := pulz, input := outh2, yw := yw/100.0, hyst := hyst/100.0, out => outreg2); END_IF; // manualni ovladani IF rizeni = 0 THEN outreg2 := intanks; END_IF; nadrze(vstup := outreg2, clock := pulz, kv:= (kv2/1000.0), km:=(km/1000.0), vystup_h1 => outh1, vystup_h2 => outh2); kpid2vis := kpid2/10.0; tipid2vis := tipid2/10.0; tdpid2vis := tdpid2/10.0; END_PROGRAM
A.0.2
Soustava 1. ˇ r´ adu
FUNCTION_BLOCK tank VAR_INPUT // vstup do soustavy vstup : REAL; // vystupni ventil kv : REAL; // hodinove pulzy clock : BOOL; END_VAR VAR // hodnota minuleho stavu hladiny
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR
V
minuly_vystup : REAL; min_clock : BOOL; vystup_test : REAL; END_VAR VAR_OUTPUT // vystup soustavy, hladina h vystup : REAL; END_VAR // provadeni tela jednou za 0,1s IF min_clock=FALSE AND clock=TRUE THEN IF vstup <0.0 THEN vstup := 0.0; END_IF; // vypocet vystupu soustavy vystup_test:=(minuly_vystup + 0.333*0.1*vstup - (kv*sqrt(minuly_vystup)*0.1)); // omezeni vysky hladiny IF vystup_test < 0.0 THEN vystup := 0.0; ELSE IF vystup_test > 1.0 THEN vystup := 1.0; ELSE // vystup vystup := vystup_test; END_IF; END_IF; // ulozeni hodnoty vystupu minuly_vystup := vystup; END_IF; min_clock := clock; END_FUNCTION_BLOCK
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR
A.0.3
Soustava 2. ˇ r´ adu
FUNCTION_BLOCK coupled_tanks VAR_INPUT //vstup do soustavy vstup : REAL; // vystupni ventil kv : REAL; // propojovaci vantil km : REAL; // hodinova pulzy clock : BOOL; END_VAR VAR //hodnota minulych stavu hladiny h1 minuly_vystup_h1 : REAL; //hodnota minulych stavu hladiny h2 minuly_vystup_h2 : REAL; min_clock : BOOL; vystup_h1_test : REAL; vystup_h2_test : REAL; END_VAR VAR_OUTPUT // hladina h1 vystup_h1 : REAL; // hladina h2 vystup_h2 : REAL; END_VAR // provadeni tela jednou za 0,1s IF min_clock=FALSE AND clock=TRUE THEN IF vstup<0.0 THEN vstup := 0.0; END_IF; // vypocet vystupu vystup_h1_test:=(minuly_vystup_h1 + 0.333*0.1*vstup -
VI
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR (km*sqrt(minuly_vystup_h1-minuly_vystup_h2)*0.1)); vystup_h2_test:=(minuly_vystup_h2 + (km*sqrt(minuly_vystup_h1-minuly_vystup_h2)*0.1) (kv*sqrt(minuly_vystup_h2)*0.1)); // omezeni vysek hladin IF vystup_h1_test < 0.0 THEN vystup_h1 := 0.0; ELSE IF vystup_h1 > 1.0 THEN vystup_h1 := 1.0; ELSE // vystup h1 vystup_h1 := vystup_h1_test; END_IF; END_IF; IF vystup_h2_test < 0.0 THEN vystup_h2 := 0.0; ELSE IF vystup_h2 > 1.0 THEN vystup_h2 := 1.0; ELSE // vystup h2 vystup_h2 := vystup_h2_test; END_IF; END_IF; // ulozeni hodnot vystupu minuly_vystup_h1 := vystup_h1; minuly_vystup_h2 := vystup_h2; END_IF; min_clock:=clock; END_FUNCTION_BLOCK
A.0.4
PID regul´ ator
FUNCTION_BLOCK PIDreg
VII
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR VAR_INPUT clock : BOOL; // vstup input : REAL; // zesileni K : REAL; // integracni casova konstanta Ti : REAL; //derivacni casova konstanta Td : REAL; END_VAR VAR // minule stavy min_clock : BOOL; min_input : REAL; min_out_i : REAL; min_out_d : REAL; // filtrace N : REAL := 10; // perioda vzorkovani h : REAL := 0.1; // vystupy jednotlivych slozek out_p : REAL; out_i : REAL; out_d : REAL; END_VAR VAR_OUTPUT // vystup regulatoru out : REAL; END_VAR // provadeni tela jednou za 0,1s IF clock = TRUE AND min_clock = FALSE THEN // vypocet zesileni out_p := K*input; // vypocet derivacni slozky out_d := Td*(min_out_d+(K*N*input)-(K*N*min_input))/(Td+N*h);
VIII
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR
// anti-windup IF Ti = 0.0 THEN out_i := 0.0; ELSE IF out <= 0.0 OR out >=1.0 THEN out_i := min_out_i; ELSE // vypocet integracni slozky out_i := min_out_i+((K*h/Ti)*input); END_IF; END_IF; // omezeni vystupu regulatoru IF (out_p+out_i+out_d > 1.0) THEN out := 1.0; ELSE // vystup regulatoru out :=
out_p+out_i+out_d;
END_IF; // ulozeni hodnot min_out_i := out_i; min_out_d := out_d; min_input := input; END_IF; min_clock := clock; END_FUNCTION_BLOCK
A.0.5
Dvoustavov´ y regul´ ator
FUNCTION_BLOCK dvoustavreg VAR_INPUT clock : BOOL; // vstup input : REAL; // pozadovana hodnota yw : REAL;
IX
ˇ ´ILOHA A. ZDROJOVE ´ KODY ´ PR // hysterze hyst : REAL; END_VAR VAR // rust/klesani hladiny up : REAL := 0.0; min_clock : BOOL; // minimalni a maximalni pozadovana vyska hladiny hmin : REAL; hmax : REAL; END_VAR VAR_OUTPUT // vystup regulatoru out : REAL; END_VAR // provadeni tela jednou za 0,1s IF clock = TRUE AND min_clock = FALSE THEN //vypocet min. a max. hladiny hmin := yw - hyst/2.0; hmax := yw + hyst/2.0; IF input < hmin THEN out := 1.0; up := 1.0; END_IF; IF input > hmax THEN out := 0.0; up := 0.0; END_IF; IF input > hmin AND input < hmax THEN out := up; END_IF; END_IF; min_clock := clock; END_FUNCTION_BLOCK
X
Pˇ r´ıloha B Obsah pˇ riloˇ zen´ eho CD K t´eto pr´ aci je pˇriloˇzeno CD, na kter´em je uloˇzena elektronick´a podoba t´eto pr´ace, zdrojov´e k´ody a vizualizaˇcn´ı projekt. • Adres´ aˇr 1: MosaicApp • Adres´ aˇr 2: RelianceApp
XI