Multiagentní systém pro řízení bioprocesů Biogenes II
V článku je popsán současný stav vývoje znalostního řídicího systému pro řízení biotechnologických procesů Biogenes II a jeho multiagentní struktura. Uvedené řešení umožňuje vzájemnou spolupráci mnoha samostatných úloh klasifikace metabolických stavů a řízení bioprocesů využívajících různé typy a reprezentace znalostí. Komunikace, koordinace a kooperace agentů jsou v systému Biogenes II řešeny přes centrální databázi reálného času IndustrialSQL Server, která tak slouží jako tabule.
1. Úvod
Biotechnologické procesy (bioprocesy) jsou známy svou komplexní povahou, vyplývající z využívání populací živých mikroorganismů. V důsledku růstu populací a aktivace různých metabolických cest během kultivace se bioprocesy vyznačují nelineárním chováním a časově proměnnými vlastnostmi i strukturou. Zavádění moderních metod automatizace této třídy systémů brání také ne zcela pochopená dynamika a nedostatek průmyslových čidel pro měření on-line klíčových proměnných. Naproti tomu existuje množství kvalitativních mikrobiologických a fyziologických znalostí, které lze při řízení bioprocesů využít. Z uvedených důvodů trvá v oboru řízení bioprocesů relativně dlouhá tradice aplikace technik a prostředků umělé inteligence. Přední úlohu přitom hrají znalostní řídicí systémy pracující s různými typy a reprezentacemi znalostí [1], [2]. Jedním z klíčových problémů při realizaci takového znalostního řídicího systému je návrh jeho architektury umožňující efektivně spravovat a využívat všechny různé prvky dostupných kvantitativních a kvalitativních znalostí o daném procesu. Možným řešením je řídicí systém s multiagentní strukturou. Systémy s touto strukturou jsou v oblasti biotechnologií zkoušeny zejména při řízení čistíren odpadních vod, které se typicky vyznačují velkým množstvím provozních a nenormálních stavů a používáním heuristických znalostí k jejich řízení [3], [4].
2. Struktura znalostního systému
Multiagentní přístup byl použit i při návrhu a realizaci znalostního řídicího systému Biogenes II. Zadání výzkumného projektu, v jehož rámci byl systém vyvíjen, vyžadovalo vytvoření systému, který by umožňoval a podporoval řízení několika různých biotechnologických produkčních a biodegradačních procesů vyžadujících odlišné způsoby řízení. Současně měl být schopen k jejich řízení efektivně využívat různé znalosti dostupné na různých úrovních procesu, např. buněčné, fyziologické a provozní. Předpokládalo se dále, že systém bude otevřený, a tedy snadno použitelný i s jinými procesy a pro jiné znalosti, jiné typy modelů a jiné způsoby řízení.
Těmto požadavkům vyhovuje zvolená architektura multiagentního systému, jež využívá postupy distribuované umělé inteligence s komunikací jednotlivých agentů prostřednictvím centrální databáze. Za jádro systému byla zvolena relační databáze pracující v reálném čase IndustrialSQL (InSQL) Server verze 8 z rodiny programových produktů FactorySuite 2000 firmy Wonderware. Všechny provozní údaje a parametry jsou do databáze ukládány při použití komunikačního standardu OPC. InSQL Server využívá speciální kompresi a optimalizaci dat, které zaručují jejich efektivní archivaci i po dlouhá časová období bez ztráty rozlišení. Tento server pracuje v prostředí relační databáze Microsoft SQL (MS SQL) Server, vyznačující se otevřeným univerzálním přístupem k uloženým datům z libovolných programů, a to díky podpoře komunikace prostřednictvím jazyka SQL ve standardu ODBC (Open Database Connectivity) i dalších možností komunikace.
Stejně jako mnoho podobných řídicích systémů je i Biogenes II tvořen dvěma úrovněmi. Na základní úrovni jsou v programovatelném automatu (Programmable Logic Controller – PLC) jako řídicí stanici realizovány všechny úlohy řízení vyžadující běh v reálném čase, přičemž ke komunikaci s operátorem systému je použit počítač PC. Na nadřazené dohlížecí neboli znalostní úrovni se nacházejí jednotlivé samostatné moduly pro klasifikaci stavu procesu a znalostní řízení vytvořené v různých programovacích prostředích. Obě úrovně jsou spojeny s databází reálného času, do níž zapisují a z níž vybírají všechny potřebné údaje.
Obr. 1. Architektura znalostního řídicího systému Biogenes II (agenty: BIOCLIPS – bioaplikace expertního systému CLIPS, tj. C Language Integrated Production System; FT – Fuzzy decision Tree; MBPC – Model Based Predictive Control; FNN – Fuzzy logic and Neural Nets; K – kritérium optimálního konce fermentace; HPLC – High Performance Liquid Chromatography)
Struktura systému Biogenes II je ukázána na obr. 1. Operátorské rozhraní systému, zobrazené v levé části obrázku, je vytvořeno v programech InTouch v. 8 a ActiveFactory v. 8, rovněž ze souboru programů FactorySuite 2000. Obsahuje hierarchicky uspořádanou skupinu několika desítek uživatelských zobrazení určených pro sledování procesu a ovládání jednotlivých funkcí systému. Pro sledování časových průběhů veličin přitom byly využity objekty ActiveFactory Trend, a to jednak jako objekty vnořené do uživatelských zobrazení, jednak jako samostatné objekty pro obecné pohledy do databáze InSQL. Na pravé straně obrázku je zobrazena znalostní úroveň řídicího systému, tvořená v současnosti šesti samostatnými agenty, jejichž funkce bude popsána v navazujícím článku [5].
3. Centrální databáze
Do řídicího systému Biogenes II mohou být připojeny agenty vzniklé nezávisle v různých programovacích prostředích. Příklady takových agentů jsou pravidlově orientované agenty v expertním systému CLIPS nebo výpočetně orientované agenty v programu Matlab. Agenty komunikují nepřímo prostřednictvím centrální databáze, která tak představuje tzv. tabuli. Je to jeden z obecně používaných způsobů komunikace mezi agenty. Pro připojení k databázi agenty přednostně používají protokol ODBC, ale mohou rovněž využít protokol ADO anebo nativní rozhraní SQL serveru.
Kód agentů přitom může běžet na libovolném počítači v počítačové síti. Jediným požadavkem kladeným na tuto síť je zajistit připojení agentů k centrálnímu SQL serveru zvoleným protokolem. Tímto způsobem lze efektivně rozkládat zátěž, neboť výpočetně náročný agent může běžet na vyhrazeném počítači a současně jsou izolovány možné chyby (výpadek jednoho agentu nezpůsobí výpadek jiného agentu, popř. serveru).
V systému Biogenes II jsou do databáze InSQL ukládány veličiny ze čtyř různých zdrojů:
měřené a počítané veličiny z procesu, včetně konstant a parametrů týkajících se regulátorů a přístrojového vybavení, definované v PLC (OPCLink|PLC!),
proměnné definované v aplikaci InTouch a zadávané operátorem v uživatelském rozhraní, např. směrnice časových průběhů žádaných hodnot regulovaných veličin (VIEW|TagName!),
proměnné odvozované jednotlivými agenty a předávané do InSQL pomocí příkazů SQL; údaje tedy nejsou jako v předchozích dvou případech do databáze ukládány automaticky při změně hodnoty, ale pouze vynuceným zápisem (InSQL_MDAS|MDAS!),
vnitřní proměnné systému InSQL, které jsou generovány automaticky a jsou k dispozici pro aplikace (SysDrv|System!).
Aktuální hodnoty všech těchto proměnných jsou přístupné v databázové tabulce Live, jejíž obsah je uchováván v paměti serveru a aktualizován při každé změně některé proměnné. Hodnoty proměnných jsou současně ukládány na pevný disk do tabulky History která slouží k archivaci dat. Dále je v systému využívána tabulka Annotation, určená pro záznam poznámek operátora k jednotlivým archivovaným proměnným. Značky poznámek se pak u časového údaje doby, kdy byla poznámka vložena, objevují v zobrazení časových průběhů u příslušné proměnné. Tento mechanismus poznámek umožňuje zaznamenávat podrobný komentář k průběhu pokusu či výroby.
Tabulky Live a History jsou tabulky v InSQL Serveru, tabulka Annotation se nalézá v MS SQL Serveru. Při vývoji řídicího systému byly kromě toho v MS SQL Serveru nadefinovány tyto tři tabulky:
BP_Parameters, tabulka vytvořená pro ukládání konstant a parametrů vztahujících se k přístrojovému vybavení bioreaktoru a ke kultivačním podmínkám (obsahuje např. použité kalibrační konstanty a konstanty číslicových regulátorů základní úrovně).
BP_ExpertParameters jako tabulka určená k ukládání proměnných souvisejících se znalostní úrovní řídicího systému. Agenty v této tabulce mohou volně vytvářet, měnit a mazat proměnné, které však musí označovat přiděleným identifikátorem agentu (AgentID). Každý agent sem ukládá své parametry a mezivýsledky své činnosti. Spolupracující agenty si prostřednictvím této tabulky vyměňují informace potřebné pro svou práci. Parametry agentů v tabulce mohou být též nastavovány operátorem z uživatelských zobrazení.
BP_HistParMap, tabulka používaná pro řízení archivace proměnných zapisovaných agenty či operátorem do tabulky BP_ExpertParameters, neboť tyto proměnné se primárně nearchivují. Tabulka proto obsahuje přiřazení vybraných proměnných z tabulky BP_ExpertParameters k historickým proměnným v InSQL Serveru (InSQL_MDAS|MDAS!).
Použitý způsob archivace parametrů umožňuje uchovávat všechny potřebné informace o práci agentů během experimentu, zejména pro potřeby ladění jednotlivých agentů, aniž by byl na agentech nějakým způsobem závislý.
4. Komunikace a koordinace činnosti agentů
Agenty mají přístup k aktuálním (tabulka Live) i historickým datům (tabulka History) v InSQL Serveru. Aktuální data se získávají zadáním příkazu
SELECT Value FROM Live WHERE
TagName = ’_Proměnná-’
Pro přístup k historickým datům je třeba použít poněkud složitější příkaz
SELECT Value FROM History
WHERE TagName = ’_Proměnná’
AND <_Časová_podmínka> AND
<_Podmínka_pro_výběrový_režim>
Užití časové podmínky v příkazu je povinné, neboť je třeba omezit časový úsek, ve kterém jsou požadována data. Pro výběr hodnot za posledních deset minut vypadá časová podmínka takto
DateTime > GETDATE() - ‘0:10‘.
Podmínka pro výběrový režim určuje, zda jsou pro vybraný časový úsek vráceeny všechny zaznamenané změny hodnoty dané proměnné, nebo zda jsou pro zvolený časový úsek vráceny všechny hodnoty proměnné se zadanou periodou.
Pro archivaci svých výsledků mají agenty přiděleny historické proměnné (InSQL_MDAS|MDAS!). K zápisu se opět využívá databáze pomocí SQL příkazu
INSERT Live (DateTime, Tagname,
Value) VALUES (GETDATE(),
’_Proměnná’, _Hodnota)
Při čtení se k těmto proměnným přistupuje stejně jako k proměnným ukládaným automaticky (např. z OPCLink|PLC!), tedy prostřednictvím SQL příkazů s využitím tabulek Live a History.
Pro koordinaci práce agentů a detekci selhání některého z nich, např. z důvodu havárie operačního systému počítače, na kterém agent běží, byl vytvořen mechanismus využívající čas od začátku kultivace. Tento čas si agent pokaždé přečte současně s daty použitými k výpočtům v daném běhu. Před koncem svého běhu agent zapíše tento nijak nezměněný čas do tabulky BP_ExpertParameters do proměnné pojmenované Last a označené identifikátorem agentu AgentID. Jestliže se uvedená hodnota v tabulce liší od aktuálního času kultivace o více než periodu spouštění daného agentu, je zřejmé, že tento agent neběží. Perioda spouštění jednotlivých agentů je různá, ale je vždy celým násobkem jedné minuty. To je vzhledem k dynamice chování bioprocesů dostačující. V aplikaci InTouch je dále implementován algoritmus, který u spuštěných agentů sleduje hodnotu jejich proměnné Last a v případě problému s některým z nich informuje operátora o tom, že agent neběží. Současně je možné z proměnné Last získat i časovou známku posledních výsledků odvozených daným agentem. Popsaným mechanismem bylo dosaženo koordinace agentů při vzájemném předávání výsledků a současně umožněno jejich autonomní chování.
Obr. 2. Postup práce agentu FNN pro klasifikaci metabolického stavu biomasy vytvořeného v programovém prostředí Matlab a způsob jeho komunikace s databází MS SQL prostřednictvím rozhraní ODBC
Pro ilustraci uvedených principů je na obr. 2 schematicky znázorněna práce agentu FNN, který je určen ke klasifikaci metabolického stavu biomasy. Z obrázku je patrný postup komunikace tohoto agentu, vytvořeného v programovacím prostředí Matlab, s centrální databází řídicího systému. Agent si nejdříve načte vstupní hodnoty a parametry z tabulek BP_ExpertParameters, Live a History, jednotlivé klasifikátory FNN1 až FNN6 provedou klasifikaci, agent FNN určí výsledný odvozený nejpravděpodobnější metabolický stav a zapíše výstupní hodnoty a parametry do tabulek BP_ExpertParameters a Live.
Ke komunikaci s agenty bylo uživatelské rozhraní systému Biogenes II rozšířeno o zobrazení pro jednotlivé bioprocesy, k jejichž řízení jsou využívány různé skupiny agentů, a o zobrazení určená pro práci s těmito agenty. Zobrazení prvního typu umožňují operátorovi spouštět a zastavovat práci agentů a také sledovat, zda agenty, které jsou umístěny na vzdáleném počítači, skutečně běží. V zobrazeních určených ke sledování činnosti jednotlivých agentů jsou pro daný agent navíc uváděny odvozené aktuální hodnoty proměnných, popř. hodnoty proměnných používaných agentem k odvozování. Operátor může ze zmíněných zobrazení také měnit hodnoty některých jeho parametrů. Uvedená zobrazení jsou aplikačně orientovaná, tj. vytvořená pro konkrétní proces či agent. Časové průběhy hodnot proměnných odvozovaných agenty je možné sledovat zcela stejně jako průběhy hodnot měřených nebo vypočítávaných veličin ukládaných do databáze, tj. prostřednictvím grafů časových průběhů z ActiveFactory.
5. Závěr
V článku je popsán znalostní řídicí systém s multiagentní strukturou, jenž je vhodný pro oblast řízení bioprocesů s názvem Biogenes II. Jde o otevřený systém integrovaný do síťového prostředí, využívající současné komunikační a vývojové standardy. Architektura systému s centrální databází reálného času a použité metody komunikace a koordinace umožňují spolupráci skupiny autonomních agentů reaktivního typu při řešení úloh řízení bioprocesů s využitím specifických znalostí a metod. Systém prošel experimentálními testy a vykazuje všechny užitečné vlastnosti očekávané od distribuovaného multiagentního řešení, např. modularitu, snadnou údržbu a modifikaci a zvýšenou bezpečnost a stabilitu.
Jeho konkrétní použití k řízení referenčního procesu kultivace pekařského droždí v laboratorním bioreaktoru v laboratoři řízení bioprocesů ústavu počítačové a řídicí techniky VŠCHT Praha, přehled implementovaných agentů, získané poznatky a směry budoucího rozvoje systému jsou tématem připravovaného článku [5].
Poděkování
Práce vznikla za podpory grantu 5. rámcového programu Evropské komise Enhanced, Intelligent Processing of Food and Related Wastes using Thermophilic Populations, QLK3-CT-1999-00004, a Výzkumným záměrem MŠMT ČR MSM 223400007.
Literatura:
[1] HRNČIŘÍK, P. – NÁHLÍK, J. – VOVSÍK, J.: The BIOGENES system for knowledge-based bioprocess control. Expert Systems with Applications, 2002, 23, s. 145–153.
[2] MONTAGUE, G.: Monitoring and Control of Fermenters. IChem, Rugby, 1997.
[3] BAEZA, J. – GABRIEL, D. – LAFUENTE, J.: An expert supervisory system for a pilot WWTP. Environmental Modelling & Software, 1999, 14, s. 383–390.
[4] PARASKEVAS, P. A. – PANTELAKIS, I. S. – LEKKAS, T. D.: An advanced integrated expert system for wastewater treatment plants control. Knowledge-Based Systems, 1999, 12, s. 355–361.
[5] NÁHLÍK, J. – VOVSÍK, J. – ŠINDELÁŘ, J.: Použití multiagentního systému pro řízení bioprocesů Biogenes II. Automa, 2004, roč. 10, v tisku.
doc. Ing. Jan Náhlík, CSc.,
Ing. Jaroslav Vovsík,
Ing. Jan Šindelář, Ph.D.,
ústav počítačové a řídicí techniky,
Vysoká škola chemicko-technologická v Praze
(nahlikj@vscht.cz)
|