Proceedings of the Conference "Modern Safety Technologies in Transportation - MOSATT 2005"
129
FUZZY ALGORITMUS PRO ŘÍZENÍ SVĚTELNÉ KŘIŽOVATKY FUZZY ALGORITHM FOR THE CONTROL OF TRAFFIC LIGHTS Miloš HERNYCH1 - Jiřina KRÁLOVCOVÁ2 - Jiří BAŽANT3 Abstract: This contribution describes practical experience with the realization of fuzzy algorithm in the PLC’s Tecomat and demonstration of its functionality for the control of traffic lights on 3D graphical model of complicated crossroad “Šalda square” in town Liberec. Keywords: fuzzy algorithm, logic control, virtual model
1 ÚVOD Současným trendem v automatizaci procesů je masivní zavádění malých průmyslových řídících systémů, takzvaných programovatelných logických automatů, často označovaných zkratkou PLC (Programmable Logic Controller). Již dávno se ale nejedná o zařízení, která by dokázala pouze řešit jednoduché logické problémy. S rozvojem výpočetní techniky jsou v PLC používány čím dál tím výkonnější procesory a větší paměti, dovolující programátorům implementovat i poměrně složité algoritmy řízení, včetně adaptivních nebo fuzzy regulátorů. Protože na Katedře řídicí techniky probíhá výuka programování logických automatů v učebně, která je vybavena zejména programovatelnými automaty Tecomat řady 500 a 600 kolínské firmy Teco, a.s., jsou i výzkumné a aplikační aktivity, stejně tak jako práce studentů v rámci projektů a diplomových prací směrovány k řešení poměrně širokého spektra problémů řízení procesů pomocí těchto PLC. Jedním z problémů je i využití fuzzy algoritmů při řízení procesů pomocí PLC. PLC Tecomat patří k poměrně jednoduchým a levným zařízením, nasazovaným zejména při řízení v energetice (výměníkové stanice, klimatizace, rozvody tepla apod.). Proto je u nich implementace složitějších a výpočetně i paměťově náročnějších algoritmů poněkud problematickou záležitostí. Také samotný princip fungování programů pro PLC v uzavřené smyčce s omezenými možnostmi při programování cyklů, odskoků či rekurencí vytváření složitějších programů znepříjemňuje. Dalším diskutovaným problémem je použití vhodných modelů, na kterých je možné jednoduché i složitější algoritmy testovat a cvičit. Protože je nabídka fyzikálních modelů pro logické řízení poměrně omezená, ceny nejsou z nejnižších a také údržba a provoz je poměrně drahou záležitostí, rozhodli jsme se ve větší míře používat virtuální modely. Jedná se o počítačové programy, reprezentující a simulující skutečné fyzikální systémy, které není možné v laboratorních podmínkách instalovat a provozovat. Aby bylo dosaženo co největší názornosti těchto modelů, jsou realizovány jako pokud možno graficky věrné trojrozměrné prezentace. Pro ověřování algoritmů je také třeba zajistit, aby se svému fyzikálnímu modelu blížily i svým chováním. Jsou proto „osazeny“ virtuálními senzory a aktuátory, které se svými parametry blíží těm skutečným. Neméně podstatnou záležitostí je i interakce virtuálních modelů s okolím, v tomto případě zejména řídícím systémem. Protože jsme si jako podmínku od začátku kladli nutnost použití stávajících PLC pro řízení těchto modelů, bylo nutné vyřešit otázku komunikace mezi řídícím systémem a virtuálním modelem. Abychom se vyhnuli použití drahých V/V převodníkových karet v počítačích, které by mezi počítačem a PLC přenášely informace o stavech jednotlivých logických vstupů a výstupů, využili jsme s výhodou možnost přímých zásahů do paměti programovatelných automatů Tecomat přes sériovou linku RS232. Tyto automaty totiž umožňují poměrně jednoduše pracovat s libovolnou oblastí své paměti, tedy i čtení 1
Ing., Katedra řídicí techniky, Technická univerzita v Liberci, Hálkova 6, CZ46117 Liberec, +420 485 353 288,
[email protected] 2 Ing., PhD., Katedra softvarového inženýrství, Technická univerzita v Liberci, Hálkova 6, CZ46117 Liberec, +420 485 353 522,
[email protected] 3 Ing., Katedra měření, Technická univerzita v Liberci, Hálkova 6, CZ46117 Liberec, +420 485 353 343,
[email protected]
130
Proceedings of the Conference "Modern Safety Technologies in Transportation - MOSATT 2005"
z oblasti, kde je uložena informace o stavu výstupů a za určitých podmínek i zápis do oblasti obrazu vstupů. Komunikační rozhraní virtuálního modelu tedy zajišťuje čtení stavu výstupů PLC, přičemž tato informace slouží pro obsluhu virtuálních aktuátorů, a také přenos stavu senzorů modelu na vstupy PLC. Z hlediska programování a práce PLC je tak zajištěno, že virtuální model je ekvivalentní fyzikálnímu systému - PLC „nepozná“, že neřídí fyzikální systém a ani psaní programů se nijak neliší. Během posledních let vzniklo na naší fakultě několik virtuální modelů z různých oblastí. Jedním z těchto modelů je virtuální křižovatka, simulující provoz na Šaldově náměstí v Liberci. Toto náměstí je nejkomplikovanějším dopravním uzlem města, protože se zde kříží 2 tranzitní silnice I.třídy s významnými městskými komunikacemi, po kterých je vedena většina linek MHD včetně páteřní tramvajové trati Lidové Sady – Horní Hanychov. Tomu odpovídá i složitost světelné signalizace, která je rozmístěna nejen na vjezdech, ale i uvnitř křižovatky. Virtuální model je tedy kopií náměstí i světelné signalizace, po křižovatce se pohybují modely osobních automobilů, autobusů MHD a tramvají. Logika jejich pohybu je zjednodušená, reagují pouze na světelnou signalizaci, obsluhovanou z PLC, případné hrozící srážce s jinými vozidly se nesnaží (tak jak by to učinila většina řidičů…) zabránit. Důvod je prostý – okamžitě je vidět, že v řídícím algoritmu není něco v pořádku.
Obrázek 1
Virtuální model světelné křižovatky na Šaldově náměstí
2 IMPLEMENTACE FUZZY ALGORITMU DO PLC TECOMAT Při řešení konkrétního problému řízení světelné signalizace složité dopravní křižovatky pomocí fuzzy logiky bylo nutné nejprve zvolit a implementovat vhodný algoritmus s možností konfigurace parametrů ve formě podprogramu tak, aby jej šlo využít obecněji. Navržený a realizovaný algoritmus pro fuzzy logiku umožňuje použití libovolného počtu vstupních resp. lingvistických proměnných. Stejně tak je možno definovat různý počet výstupů resp. ostrých výstupních veličin. Zadávání průběhů funkcí příslušnosti i báze pravidel je prováděno modifikací konstant v deklarační části zdrojového textu programu a lze jej tedy použít velmi obecně, neboť není nutné zasahovat do programové části zdrojového kódu. BA=CA
1
BΠ
CΠ
BL
Π-funkce
A-funkce
L-funkce
0 AA
AΠ
DA
Obrázek 2
AL
Průběhy funkcí
DΠ
CL=DL
Průběh každé funkce příslušnosti je definován čtyřmi parametry {A,B,C,D}, viz obr.2. Variací těchto parametrů lze dosáhnout všech běžně používaných funkcí, které jsou složeny z lineárních částí.
Proceedings of the Conference "Modern Safety Technologies in Transportation - MOSATT 2005"
131
Na obr.2 je uvedena A-funkce, L-funkce a Π-funkce. Samotný zápis ve zdrojovém textu se provádí do tabulky v definiční části programu. Tabulka obsahuje čtyři sloupce, které odpovídají parametrům A B C D. Každý řádek pak definuje jednu funkci bez ohledu na to, kterému vstupu resp. lingvistické proměnné náleží. Podobně třeba zapsat i bázi pravidel a inferenční pravidla. Nalezení výstupní množiny realizovaný algoritmus provádí pomocí Mamdaniho implikace. Nalezení ostré výstupní veličiny (defuzzyfikace) je prováděna metodou „Center of gravity“. Vzhledem k tomu, že se jedná o tu nejobtížnější kombinaci, je modifikace programu na jinou metodu nebo implikaci velmi snadná. Je nutné ještě uvést, že defuzzyfikace neodpovídá metodě „Center of gravity“ zcela přesně. Těžiště výstupní množiny je vypočteno jako vážený průměr těžišť jednotlivých elementů a vahou je jejich plocha. 1 KM
0 1
50 KM
1
KV
KS
Vstup 1
100
KM
20
0
45
Vstup 1 KM KS KV
Obrázek 3
45
95
Vstup 2
100
KV
KS
30
55
50
Vstup 2
0
KV
KS
55
KM
KS
KV
KM KM KS
KM KS KV
KS KS KV
95
50
Výstup
100
Příklad průběhu funkcí příslušnosti dvou lingvistických proměnných
Při použití Mamdaniho implikace je plocha pod funkcí příslušnosti oříznuta na úroveň stupně příslušnosti. Při standardním výpočtu metodou „Center of gravity“ je hodnota ostré výstupní veličiny rovna x-ové souřadnici těžiště výstupní množiny. Tento způsob by byl ovšem příliš náročný pro PLC, proto je vypočteno těžiště pro každý term zvlášť. Hodnota výstupní veličiny se proto muže mírně lišit od hodnoty vyčíslené skutečnou metodou „Center of gravity“. Na obr.3 jsou uvedeny průběhy funkcí příslušnosti dvou lingvistických proměnných (vstupů), jednoho výstupu a báze pravidel a na obr.4 jsou vykresleny charakteristické plochy pro danou bázi pravidel pomocí FIS Editoru v MATLABu a pomocí tohoto algoritmu. v obou případech byla použita Mamdaniho implikace, metoda „Center of gravity“ a fuzzy součin mezi oběma množinami. Zároveň je zde vykreslena rozdílová plocha, která udává odchylku ostré výstupní veličiny získané výpočtem v Tecomatu od hodnoty z FuzzyLogic ToolBox MATLABu, což je důsledek výše zmíněné metody. X-ová osa vlevo odpovídá vstupní veličině č. 1, osa Y vpravo odpovídá vstupu č.2 a na ose Z je vynesena hodnota výstupní veličiny.
100
100
80
80
60
60
40
40
20
20
5 4 3 2 1 0 -1
0 100
0 100
100
100 50
60 0
0
20
80
50
60
40 0
0
20
40
80
-2 100 100 80
50
60 40 0
Obrázek 4
0
20
Srovnání výsledků (vpravo Matlab, uprostřed Tecomat, vlevo rozdíl)
3 POUŽITÍ ALGORITMU PRO ŘÍZENÍ VIRTUÁLNÍHO MODELU KŘIŽOVATKY Na obr.5 je zobrazeno schéma výše diskutované křižovatky. Vzhledem k její složitosti se mohou při jejím řízení přednosti fuzzy logiky projevit.
132
Proceedings of the Conference "Modern Safety Technologies in Transportation - MOSATT 2005"
2 1 6
9 8
7
3 5
4 Obrázek 5
Schéma křižovatky
Křižovatka má 5 příjezdových silnic (na obrázku označené čísly 1-5), po kterých mohou přijíždět automobily. Křižovatku protíná obousměrný tramvajový pás – na obrázku je označen číslem 6. Řidič vjíždějící vozidlem do křižovatky nemůže zcela libovolně volit směr své jízdy, ale je omezen následujícími pravidly, vyplývajícími z jejího dopravního řešení: - přijede-li po silnici 1 může opustit křižovatku po silnici 3 (přes řadící pruh 9) nebo 5 (přes 8), - přijede-li po silnici 2 může opustit křižovatku po silnici 3 (přes 9) nebo 5 (přes 8), - přijede-li po silnici 3 může opustit křižovatku po silnici 1, 2 (přes 7) nebo 5, - přijede-li po silnici 4 může opustit křižovatku po silnici 5, - přijede-li po silnici 5 může opustit křižovatku po silnici 1, 2 (přes 7) nebo 3. Křižovatka ve vybavena 9 klasickými semafory se třemi světly, 8 párovými semafory pro chodce se dvěma světly, 2 tramvajovými semafory (jeden z nich je párový) se čtyřmi světly a 4 přídavnými semafory s jedním světlem. Pro plné řízení křižovatky je tedy nutno periodicky nastavovat celkem 55 binárních signálů (každý signál ovládá jedno světlo). Pro běžné řízení není třeba žádných dodatečných informací (tj. výstupů modelu). Pro účely aplikace sofistikovanějších algoritmů byl model doplněn tak, aby mohl poskytovat informace o frontách aut v jednotlivých příjezdových směrech, přičemž model nabízí 2 různé tvary výstupů, a to buď informace o aktuálním počtu aut v jednotlivých příjezdových směrech, nebo hodnoty inkrementálních čidel – 2 čidla pro každý příjezdový směr indikující přítomnost objektu v určitém místě.
4 ŘÍZENÍ KŘIŽOVATKY FUZZY ALGORITMEM Aby bylo možno chování světelné signalizace aktivně ovlivňovat, je nutné znát momentální zatížení řízené křižovatky. Pro řízení je možné použít buď informaci o délce kolon v jednotlivých směrech nebo informaci o počtu aut, z těchto směrů přijíždějících a to 2 snímačů pro každý směr. Jeden snímač je umístěn přímo před semaforem v příjezdovém směru, druhý je zhruba ve vzdálenosti délky kolony čítající deset vozidel. Pro řízení je vhodnější použít informaci ze dvou snímačů, protože délka kolony v okamžiku, kdy svítí zelená nevypovídá dostatečně věrohodně o skutečné hustotě provozu. Signály z inkrementálních snímačů jsou zpracovány standardním způsobem. s každou náběžnou hranou signálu ze snímače umístěného na začátku sledovaného úseku je inkrementován obsah odpovídajícího registru, naopak s každou sestupnou hranou ze snímače před semaforem je jeho obsah dekrementován, hodnota registru je využívaná pouze k řízení uzavřených směrů. v případě otevřených směrů, kde není žádna stojící kolona, ale vozy volně projíždí, je využíván pouze signál ze snímače před semaforem, který poskytuje informaci o průjezdnosti resp. o době mezi průjezdy následujících vozů.
Proceedings of the Conference "Modern Safety Technologies in Transportation - MOSATT 2005"
133
Z těchto údajů je vypočtena priorita každého směru. Samotné rozhodování o tom, který směr bude otevřen nebo uzavřen je prováděno na základě hodnoty této priority. Daný směr je otevřený v případě, že zde není žádný takový, který by s ním byl v kolizi a měl vyšší hodnotu priority, z tohoto důvodu je rovněž zapotřebí splnit určité požadavky na vývoj priority v čase. V případě uzavřeného směru by priorita měla s časem narůstat, což může být sice splněno narůstající délkou stojící kolony, ale je zapotřebí aby tato hodnota rostla i v případě, že délka kolony je konstantní. v případě uzavřeného směru je naopak nutné, aby hodnota priority byla na počátku po určitou dobu mnohem vyšší než priorita jakéhokoli otevřeného směru, což zajistí stabilní řízení, při kterém zůstane každý směr otevřený alespoň na určitou minimální dobu. V opačném případě by mohlo dojít ke zmatečnému a velmi rychlému otevírání a uzavírání. Na základě předchozích požadavků byl pro výpočet priority uzavřených směrů použit fuzzy PI regulátor. Vstupními veličinami (lingvistickými proměnnými) v případě běžného fuzzy PI regulátoru jsou proporcionální a diferenční složka. Diskrétní integrátor je připojen na výstup (ostrou výstupní hodnotu), neboť integrační složka může růst neomezeně, zatímco rozsahy lingvistických proměnných jsou omezeny. To v tomto případě ovšem nebylo možné dodržet, neboť vzhledem k charakteru proporcionální složky, což je délka stojící kolony, není možné diferenční složku použít jako vstupní lingvistickou proměnnou. Diferenční složka by nabývala pouze dvou hodnot. Nulovou v případě, kdy neprojíždí žádné vozidlo, nenulovou v případě detekované náběžné hrany signálu ze snímače na začátku sledovaného úseku. Z tohoto důvodu byly jako vstupní veličiny zvoleny proporcionální a integrační složka. Skutečnost, že integrační složka může narůstat do vysokých hodnot musela být ošetřena vhodnou volbou průběhů funkcí příslušnosti viz obr.6. 1
KD
KS
Proporcionální
KM
Integrační M S V VV
6 12 Počet automobilů ve frontě
0 1M
S V
0
PM 1
VV
1000 2000 3000 4000 Integrace délky kolony
Obrázek 6
KM
KS
KD
PM PS PVV PVV
PM PS PV PVV
PV PV PV PVV
PS
PVV
PV
5000
0
1000
2000
3000 4000 Priorita
5000
Konkrétní volby funkcí příslušnosti
Je zde naznačeno nastavení programu pro fuzzy logiku, který provádí výpočet priority uzavřených směrů. Jako vstupní veličiny byly použity jednak informace o délce stojící kolony ve sledovaném úseku před křižovatku a integrační složka délky kolony. Integrační (sumační) složka je vypočtena pomocí časovače PLC TECOMAT. Během každého průběhu nekonečné smyčky programu je k hodnotě registru reprezentujícímu integrační složku přičten přírůstek časovače vynásobený aktuálním počtem vozidel ve sledovaném úseku. Funkce příslušnosti pro veličinu integrační složka byly definovány na dostatečně velkém rozsahu, nad který by hodnota integrační složky neměla při běžném provozu nikdy narůst. Volba průběhů funkcí příslušnosti výstupní veličiny priorita, byla provedena s ohledem na metodu „Center of gravity“ použitou při defuzzyfikaci. Při použití jiné metody, např. „Left of maximum“ by v žádném případě nebyla tato volba použitelná. Hodnota ostré výstupní veličiny by se měnila skokově v oblastech, kde není žádná funkce příslušnosti definována. Lingvistické hodnoty (termy) jsou následující: Délka kolony (KM – kolona malá, KS – kolona střední, KD – kolona dlouhá) Integrace délky kolony (M – malá, S – střední, V – velká, VV – velmi velká)
134
Proceedings of the Conference "Modern Safety Technologies in Transportation - MOSATT 2005"
Priorita (PM – priorita malá, PS – priorita střední, PV – velká, PVV – velmi velká) Volba báze pravidel byla provedena podle následujících požadavků, viz obr. 6. Je-li integrační složka malá a délka kolony malá nebo střední, pak priorita má být rovněž malá. Směr není třeba otevírat, pokud ve sledovaném úseku stojí malé množství vozů, nebo zde vozy stojí pouze velmi krátkou dobu. Je-li délka kolony velká, pak priorita má být rovněž velká. v případě dlouhé kolony není možné již počet vozů přesně určit, neboť se mohou nacházet mimo sledovaný úsek, proto je vhodné směr co nejdříve otevřít. v ostatních případech by měla velikost priority odpovídat velikosti integrační složky vyjma situace, kdy integrační složka je velká a délka kolony malá. Znamená to, že vozy stojí v daném směru velmi dlouhou dobu, protože k naintegrování vysoké hodnoty při malé proporcionální složce je zapotřebí dlouhá doba. Směr je proto nutné co nejdříve otevřít. Volba tohoto pravidla je důsledkem nemonotónnosti charakteristické plochy báze pravidel viz. obr.6. Veškeré aspekty těchto požadavků lze pozorovat na obr.6 a 7.
Obrázek 7
Výsledná plocha báze pravidel
5 ZÁVĚR Implementace zvoleného fuzzy algoritmu do programovatelného automatu Tecomat byla při řízení virtuálního modelu složité křižovatky shledána jako funkční a použitelná pro nasazení v reálných aplikacích. Určitým omezením je snížení rychlosti výpočtu, přesáhne-li počet vstupních proměnných hodnoty 7, což je dáno zejména relativně málo výkonnými procesory, které jsou používány ve verzích programovatelných automatů Tecomat, na kterých byl algoritmus testován. Příspěvek vznikl za podpory grantu Min.školství, mládeže a tělovýchovy ČR.FRVŠ č.3332/2005.
LITERATURA 1. KRÁLOVCOVÁ Jiřina – HERNYCH Miloš: Employment of Virtual Models in Education of Logic Control, In Proceedings the 13th International Conference Process Control’01, Štrbské Pleso, Slovak Republic, 11-14 June 2001. Bratislava, Slovak Republic: Slovak University of Technology, 2001, p.156. 2. KRÁLOVCOVÁ Jiřina – HERNYCH Miloš: Some Aspects of Crossroad Model Construction, In Proceedings the 5th International Scientific-Technical Conference Process Control’02, Kouty nad Desnou, Czech Republic, 9-12 June 2002. Pardubice, Czech Republic: University of Pardubice, 2002, p.102. 3. BAŽANT Jiří: Řízení virtuálních modelů. Závěrečná zpráva ročníkového projektu, Liberec, Technická Univerzita v Liberci, 2002. Recenzent: Doc. Ing.Petr Tůma, CSc., Technická univerzita v Liberci, Hálkova 6, Liberec, +420 485 353 183,
[email protected]