EFEKTIVNÍ NÁVRH FUZZY SYSTÉMŮ V PROSTŘEDÍ FUZZYDESIGNER, MATLAB A SIMULINK. Renata Pytelková, Jan Kolínský, Petr Horáček. ProTyS a.s.



Podobné dokumenty
ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

TÉMATICKÝ OKRUH Softwarové inženýrství

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Softwarové komponenty a Internet

Úvod do Web Services

TÉMATICKÝ OKRUH Softwarové inženýrství

Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace

MBI - technologická realizace modelu

PERTINAX6 NÁSTROJ PRO PROGRAMOVÁNÍ ŘÍDICÍCH STANIC ZAT

Aplikace. Hlásič SMS

Reliance. Komunikační driver Johnson Controls verze 1.5.4

SEMESTRÁLNÍ PROJEKT Y38PRO

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Profilová část maturitní zkoušky 2017/2018

Vstupní požadavky, doporučení a metodické pokyny

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Profilová část maturitní zkoušky 2013/2014

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

TECHNICKÁ UNIVERZITA V LIBERCI

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Reliance 3 design OBSAH

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

VISUAL BASIC. Přehled témat

MST - sběr dat pomocí mobilních terminálů on-line/off-line

1 Strukturované programování

Fuzzy regulátory Mamdaniho a Takagi-Sugenova typu. Návrh fuzzy regulátorů: F-I-A-D v regulátorech Mamdaniho typu. Fuzzifikace. Inference. Viz. obr.

Možnosti aplikace: Copyright 2001, COM PLUS CZ, Praha

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

java remote method invocation Kateřina Fricková, Matouš Jandek

TIA na dosah Advanced Engineering System. SIMATIC PCS 7 Verze 8.01

Copyright 2001, COM PLUS CZ a.s., Praha

Nové jazykové brány do Caché. Daniel Kutáč

1. Dostupné řešení CRM

Datové typy a struktury

ČÁST 1. Základy 32bitového programování ve Windows

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Demoprojekt Damocles 2404

Seznámení s prostředím dot.net Framework

Wonderware Information Server 4.0 Co je nového

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Průmyslové roboty a manipulátory, průmyslové počítače, PLC, řídicí systémy a operátorské panely

Zabezpečení proti SQL injection

InTouch Příklady architektur

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Controlweb. Úvod. Specifikace systému

Programovatelné automaty SIMATIC S7 a S5

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

APS 400 ipanel. Online informační a ovládací panel pro systém APS 400. Uživatelská příručka

Modul IRZ návod k použití

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Hospodářská informatika

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

DOPRAVA V POHYBU PRODUKT KERBERUS

Návod ke cvičení předmětu BPGA SLC 500

DF FA Novinky v Simotion Scout

PŘÍLOHA C Požadavky na Dokumentaci

Návod ke cvičení předmětu BPGA ControlLogix

SIMATIC S GPRS. Micro Automation. Promoters Meeting October Aplikace pro GPRS. Vzdálená stanice. Server SINAUT MICRO SC.

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Prostředky automatického řízení Úloha č.5 Zapojení PLC do hvězdy

Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Vytvoření.NET komponenty (DLL) ve Visual Studiu

EXTRAKT z technické normy ISO

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Pro tvorbu samostatně spustitelných aplikací je k dispozici Matlab library.

Business Intelligence

OPC server systému REXYGEN. Uživatelská příručka

Zadejte ručně název první kapitoly. Manuál. Rozhraní pro program ETABS

I.CA RemoteSeal. Ing. Filip Michl První certifikační autorita, a.s

Zabezpečení proti SQL injection

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

QTREE-DUMX4 Vícekanálový multiplexer pro připojení měřidel Mitutoyo na USB port PC Uživatelská příručka. Řízení jakosti podle norem ISO 9000

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

SEKVENČNÍ LOGICKÉ OBVODY

Virtuální přístroje. Matlab a Instrument Control Toolbox. J.Tomek, A.Platil

Compatibility List. GORDIC spol. s r. o. Verze

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

MS Excel makra a VBA

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

Digitalizace s TIA Portal V15 S OPC UA. Siemens AG 2018

Common Object Request Broker Architecture

CZ.1.07/1.1.30/

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

DUM 06 téma: Tvorba makra pomocí VBA

dovolují dělení velkých úloh na menší = dekompozice

U Úvod do modelování a simulace systémů

Středoškolská technika SCI-Lab

Alcatel-Lucent. NMS OmniVista Účtování a zprávy. Ing.Martin Lenko listopad 2012

Transkript:

EFEKTIVNÍ NÁVRH FUZZY SYSTÉMŮ V PROSTŘEDÍ FUZZYDESIGNER, MATLAB A SIMULINK Renata Pytelková, Jan Kolínský, Petr Horáček ProTyS a.s. Abstrakt: FuzzyDesigner je nový programový balík určený pro návrh a implementaci fuzzy systémů. Přináší nový přístup, kterým se odlišuje od jiných programových prostředí určených pro návrh fuzzy systémů. Tento přístup je založen na blokově orientované struktuře fuzzy systému, díky které je možné sestavit libovolný fuzzy systém šitý přímo na míru dané úlohy. FuzzyDesigner je otevřený aplikační program propojitelný s dalšími řídicími, vizualizačními a informačními systémy nebo průmyslovými programovatelnými automaty. Umožňuje uživateli vygenerovat navržený fuzzy systém jako kód v různých programovacích jazycích a použít jej ve své aplikaci. FuzzyDesigner generuje ANSI C, C#, Java, a několik typů funkcí pro programové prostředí Matlab a Simulink. Příspěvek ukazuje různé možnosti propojení fuzzy systému navrženého ve FuzzyDesigneru s programovým prostředím Matlab a Simulink. Jedná se o přímé vygenerování fuzzy systému pro jeho další využití v Matlabu nebo Simulinku, a to jak v programovém jazyce Matlabu, tak jako C-MEX funkce. K vlastnímu výpočtu (vyhodnocení) fuzzy systému v tomto případě dochází v Matlabu. Další možností je vygenerování S-funkcí, zabezpečujících DDE nebo OPC komunikaci Matlabu s FuzzyDesignerem. V tomto případě je fuzzy systém vyhodnocen ve FuzzyDesigneru a mezi Matlabem a FuzzyDesignerem dochází pouze k výměně vstupních a výstupních dat. Poslední možností je využití tzv. funkčních komponent typu dynamicky linkovaných knihoven DLL nebo COM poskytovaných FuzzyDesignerem. Úvod Při návrhu řídicího systému se setkáváme se situacemi, ve kterých lze s výhodou využít řešení ve formě pravidel: Jestliže... potom..., tedy fuzzy systémy, které umožňují převod vágně popsané znalosti v jazykové formě pomocí implikačních pravidel na matematická zobrazení. Typickým příkladem takových znalostí je jazykový popis závislostí mezi veličinami určitého systému, popis řídicí strategie či klasifikace objektů a situací do tříd, supervize stávajícího řídicího systému nebo beznárazové přepínání mezi několika řídicími strategiemi. Návrh a realizaci těchto systémů umožňuje nový programový balík FuzzyDesigner verze 1.01, vyvinutý firmou ProTyS, a.s. Základní otázkou, kterou si jistě položí každý uživatel, je zda a jakým způsobem je možné navržený fuzzy systém integrovat do již existujícího řídicího systému nebo libovolné aplikace. Těmito aplikacemi mohou být typicky programy typu MS Excel, Matlab, Visual Basic, průmyslové řídicí a vizualizační systémy typu SCADA/HMI, systémy s funkcemi softplc apod. Příspěvek stručně seznamuje s vlastním prostředím aplikace FuzzyDesigner a dále ukazuje možnosti jeho integrace do programového prostředí Matlab a Simulink. FuzzyDesigner FuzzyDesigner je softwarový produkt, určený pro návrh fuzzy systémů. Obsahuje knihovnu komponent, které uživateli umožňují návrh komplexních hierarchických systémů. Knihovna obsahuje následující komponenty: Vstupní port Výstupní port definuje vstupy fuzzy systému, umožňuje předem zpracovat signál s použitím filtru definuje výstupy fuzzy systému

Vstupní jazyková proměnná Pravidlový blok Vnitřní jazyková proměnná Výstupní jazyková proměnná Výstupní Takagi-Sugeno proměnná slouží k návrhu funkcí příslušnosti pro vstupní proměnné fuzzy systému, probíhá zde fuzzifikace vstupního signálu proměnné slouží k návrhu pravidel a počítá aktivace fuzzy termů výstupních proměnných ze závěrů pravidel na základě vstupních proměnných z předpokladů pravidel je určena pro spojování pravidlových bloků v hierarchických systémech je určena k návrhu fuzzy množin výstupních proměnných, do komponenty vstupují aktivace jednotlivých fuzzy množin z jednotlivých pravidlových bloků, pomocí definované defuzifikace se vypočítají ostré výstupní hodnoty je určena pro návrh Takagi-Sugeno fuzzy systémů. Obsahuje parametry lineárních funkcí v závěrech pravidel Takagi- Sugeno systémů a na základě vstupních aktivací jednotlivých funkcí vypočítává hodnotu výstupu komponenty. PID regulátor průmyslové verze PID regulátoru. Možnost rozložení celého fuzzy systému do jednotlivých komponent dovoluje uživateli sestavit si libovolný fuzzy systém přesně podle svých potřeb. Díky této stavebnicové koncepci je možné vytvářet fuzzy systémy s hierarchickou vnitřní strukturou pravidel. Složitý fuzzy systém je tak rozložen na menší a jednodušší části, které se snáze navrhují a ladí. Snižuje se celkový počet pravidel a zvyšuje přehlednost fuzzy systému jako celku. FuzzyDesigner umožňuje čtení i zápis jak ostrých vstupních a výstupních hodnot, tak i fuzzy množin ve formě seznamu zlomových bodů po částech lineárních funkcí příslušnosti. Funkce příslušnosti definované pro jednotlivé jazykové proměnné mohou být následujícího typu: lichoběžník, inverzní lichoběžník, S-křivka, inverzní S-křivka a singleton. FuzzyDesigner podporuje dvě inferenční metody Mamdaniho inference a inference s fuzzy aritmetikou, dvě t-normy minimum a součin a 5 defuzzifikačních metod dvě varianty metody těžiště a tři vycházející z maxima funkcí příslušnosti výstupních fuzzy množin. Výsledný fuzzy je možné downloadovat do průmyslových automatů řady Logix5000, SLC 500, PLC-5 a SoftLogix5 od firmy Rockwell Automation, propojit pomocí průmyslového OPC nebo DDE protokolu s jinými aplikacemi, vygenerovat fuzzy systém v jazyce C, C#, Java nebo kód pro Matlab. FuzzyDesigner též poskytuje uživateli samostatné komponenty typu DLL/COM a.net assembly, které může použít ve svých aplikacích. FuzzyDesigner nabízí také několik možností analýzy navrženého fuzzy systému. Jednou z možností je sledování okamžitých hodnot všech parametrů (hodnoty vstupů a výstupů, aktivace jednotlivých funkcí příslušnosti, aktivace pravidel, apod.) celého systému již během jeho návrhu. To uživateli umožňuje snadnějších návrh i okamžitou kontrolu chování nejen celého fuzzy systému, ale také jeho jednotlivých částí. Závislost jednotlivých proměnných je možné graficky znázornit pomocí 2D a 3D grafu. Grafy obsahují širokou paletu volitelných funkcí a parametrů. Dále je možné přepnout do tzv. simulačního režimu, ve kterém může uživatel sledovat vliv změny jednotlivých proměnných na ostatní. Běžící fuzzy systém ve FuzzyDesigneru je možné též on-line monitorovat a ukládat do souboru hodnoty uživatelem vybraných proměnných.

Fuzzy systém jako kód pro Matlab Jedna z možností, jak fuzzy systém navržený ve FuzzyDesigneru integrovat do programového prostředí Matlab, je jeho vygenerování přímo jako kód v jazyce Matlab (syntaxe odpovídá verzi Matlab 5.x). V tomto případě FuzzyDesigner vygeneruje celkem 3 různé soubory: evalfuz.m soubor, který je nezávislý na aktuálním generovaném fuzzy systému, slouží k vlastnímu výpočtu (vyhodnocení) fuzzy systému projekt.m soubor obsahující parametry a informace o struktuře fuzzy systému, slouží k vytvoření fuzzy systému v Matlabu projekt_s.m soubor odpovídající aktuálnímu fuzzy systému pro použití v Simulinku Funkce evalfuz.m obsahuje následující parametry: function [vystup, novystav] = evalfuz(fuzzysystem, vvstup, stav) Význam jednotlivých parametrů je následující: fuzzysystem vlastní fuzzy systém vstup vektor vstupních hodnot, počet prvků musí být shodný s počtem vstupních portů fuzzy systému stav vektor vnitřních stavů, parametr se používá pouze v případě dynamických fuzzy systémů vystup vektor výstupních hodnot, počet prvků musí být shodný s počtem výstupních portů fuzzy systému novystav vektor nových vnitřních stavů po vyhodnocení fuzzy systému Příklad volání statického fuzzy systému: fs = projekt() vstup = [0.1 0.4 0.5] vystup = evalfuz(fs, vstup) % vytvoření fuzzy systému jako proměnné typu structure % zadaní vstupních hodnot % vyhodnocení fuzzy systému (výpočet výstupních hodnot) Příklad volání dynamického fuzzy systému: fs = projekt() % vytvoření fuzzy systému jako proměnné typu structure vstup = [0.1 0.4 0.5; ;0.2 0.1 0.4] % zadaní vstupních hodnot stav = []; % inicializace interních stavů for k = 1:N % N je počet řádků matice vstup [vystup, stav] = evalfuz(fs,vstup(k,:),stav) % vyhodnocení fuzzy systému end V případě zakomponování fuzzy systému do simulinkového modelu je možné přímo použít funkci projekt_s.m, která v sobě již obsahuje předchozí příkazy. Fuzzy systém jako C-MEX funkce FuzzyDesigner umožňuje generovat navržený fuzzy systém také jako C-MEX funkci pro Matlab. V tomto případě FuzzyDesigner vygeneruje následující soubory: fuzcore.h soubor, který je nezávislý na aktuálním generovaném fuzzy systému, slouží k definici konstant a struktur fuzcore.c soubor, který je nezávislý na aktuálním generovaném fuzzy systému, slouží k vlastnímu výpočtu (vyhodnocení) fuzzy systému projekt_c.c soubor obsahující parametry a informace o struktuře fuzzy systému

projekt_c.h soubor obsahující deklarace funkcí nabízených uživateli projekt.c soubor, který obsahuje definici C-MEX funkce projekt_mexs.m s-funkce pro Simulink volající C-MEX funkci Postup použití takto vygenerovaných souborů v Matlabu je potřeba zkompilovat soubor projekt.c do MEX funkce pomocí příkazu v Matlabu mex. Tím bude vytvořen soubor projekt.dll, který se může dál využít v Matlabu. Příklad použití C-MEX funkce pro Matlab: mex projekt.c vstup = [0.1 0.4 0.5] vystup = projekt(vstup) % vytvoření souboru projekt.dll % zadaní vstupních hodnot % vyhodnocení fuzzy systému V případě, že se jedná o dynamický fuzzy systém, dochází před prvním zavoláním k inicializaci vnitřních stavů. Pokud je z nějakého důvodu potřeba vnitřní stavy vynulovat, je potřeba MEX funkci odstranit z paměti pomocí příkazu clear. clear projekt % odstranění MEX funkce z paměti DDE komunikace mezi FuzzyDesignerem a Matlabem DDE (Dynamic Data Exchange) protokol je již poměrně starý, ale průmyslovými aplikacemi stále podporovaný. FuzzyDesigner se chová jako DDE server, který umožňuje ostatním aplikacím, v tomto případě Matlabu, připojení a přístup (čtení i zápis) na vstupní a výstupní porty fuzzy systémů. V okamžiku, kdy klientská aplikace zapíše hodnoty na vstupní porty, je daný fuzzy systém automaticky vyhodnocen a vypočítané výstupní hodnoty jsou zpřístupněny pro čtení z výstupních portů. Pro navázání komunikace klient nejprve specifikuje jméno aplikace a tzv. topic. V případě FuzzyDesigneru má jméno aplikace hodnotu FuzzyDesigner a hodnota topic je jméno aktuálního fuzzy systému. Po navázání komunikace lze provádět základní operace typu zápis a čtení, při kterých je potřeba specifikovat datový zdroj (pro čtení) a datovou jímku (pro zápis) názvem tzv. DDE item. Struktury objektů typu topic a item definují tzv. jmenný prostor DDE serveru. Každý port fuzzy systému má odpovídající objekt item ve jmenném prostoru. Formát zasílaných dat musí být v případě FuzzyDesigneru typu TEXT (ASCII nebo UNICODE). Aplikace FuzzyDesigner umožňuje zápis i čtení jak ostrých čísel tak fuzzy množin ve formě seznamu zlomových bodů po částech lineárních fuzzy množin. FuzzyDesigner umožňuje uživateli vygenerování s-funkce pro použití v Simulinku, která zajišťuje DDE komunikaci mezi Matlabem a FuzzyDesignerem. V této funkci je zajištěno navázání komunikace specifikováno jméno aplikace a tzv. topic, odeslání aktuálních vstupních hodnot fuzzy systémů do FuzzyDesigneru a dále přečtení výstupních hodnot fuzzy systému z FuzzyDesigneru. Nutné kroky pro vytvoření DDE komunikace mezi FuzzyDesignerem a Matlabem: 1. Otevření ve FuzzyDesigneru fuzzy systému, který chceme použít v Matlabu. 2. Vygenerování z FuzzyDesigneru (Menu Tools Code Generators MATLAB DDE S- Function) s-funkce pro zajištění DDE komunikace. 3. Vložení této funkce do simulinkového schématu. 4. Spuštění simulace. V případě spuštění již dříve vytvořeného simulinkového schématu je vždy před spuštěním simulace potřeba otevřít fuzzy systém ve FuzzyDesigneru. OPC komunikace mezi FuzzyDesignerem a Matlabem OPC (OLE for Process Control) je otevřený protokol definovaný skupinou OPC Foundation a v současnosti je nejrozšířenějším standardem pro komunikaci průmyslových informačních systémů. Protokol je založen na technologii OLE (Object Linking and Embedding) a COM/DCOM (Distributed Component Object Model) firmy Microsoft. Protokol COM definuje standard pro vývoj objektových

softwarových komponent a jejich interakci na binární úrovni v rámci jednoho procesu. Protokol DCOM, postavený na mechanismu vzdáleného volání procedur RPC (Remote Procedure Call), je pak jeho rozšířením pro komunikace mezi procesy v rámci jednoho počítače i sítě. Pro výměnu dat reálného času je určen standard Data Access Custom Interface Standard. Programová komponenta implementující tento interface se nazývá OPC DA server. Tato architektura umožňuje jednotný přístup k aplikačním a procesním datům systémů různých výrobců (Obr. 1). Klientské programy mohou provádět synchronní operace čtení dat, kdy server okamžitě poskytuje aktuální data podle požadavku z bufferu nebo zařízení. Při synchronním zápisu jsou přenesená data okamžitě aplikována. Klient má možnost být pomocí událostí informován o změnách hodnot vybraných dat a pro tento případ může uvést pásmo necitlivost v %. Asynchronní operací čtení je možno zaslat požadavek k získání aktuálních dat, jakmile jsou data k dispozici jsou zpětně zaslána klientovi formou události. Ten tak není blokován po dobu vyřizování požadavku. Podobně při operaci asynchronního zápisu není klient blokován v průběhu aplikování zapsaných dat, ale je zpětně informován o úspěšném či neúspěšném provedení akce. Aplikace (SCADA/HMI) Aplikace (Excel,...) OPC interface OPC interface OPC server OPC interface Aplikace SCADA HW driver Fyzické zařízení (I/O) HW driver Fyzické zařízení (I/O) Obr. 1 OPC klient/server interface. Data poskytovaná serverem jsou k dispozici v hierarchické stromové struktuře nazývané jmenný (adresní) prostor serveru (Obr. 2). Klienti mají možnost tuto strukturu procházet. Listy tohoto stromu jsou tzv. OPCItem objekty poskytující základní funkcionalitu pro čtení a zápis dat. OPC klient po připojení k serveru vytvoří objekt OPCGroup, do kterého poté vkládá OPCItem objekty specifikované jednoznačným jménem (ItemID) definovaným ve jmenném prostoru serveru. Přenos dat mezi objekty se uskutečňuje na základě strukturovaného datového typu VARIANT (string, int, float,...), jehož konkrétní hodnota může být klientem volitelně měněna. OPC klient komponenta OPC Data Access Server OPCGroup OPCServer OPCGroup OPCItem OPCItem OPCItem jmenný prostor (místnost) větev1 kořen_stromu (hala) větev2 item1 item2 item3 item4 (templota) (vlhkost) (teplota) (vlhkost) Obr. 2 Vztah jmenného prostoru a hierarchie objektů OPC serveru. Součástí aplikace FuzzyDesigner je OPC server poskytující operace pro otevírání fuzzy systémů z disku, čtení a zápis hodnot portů fuzzy systému a jeho automatické vyhodnocení po operaci zápisu. Jmenný prostor serveru poskytuje OPCItem objekty pro jednotlivé porty aktuálně otevřených fuzzy systémů (Obr. 3). Pro každý port je též k dispozici OPCItem pro čtení a zápis po částech lineárních fuzzy množin.

Obr. 3 Jmenný prostor aplikace FuzzyDesigner. Stejně jako v případě DDE komunikace FuzzyDesigner umožňuje uživateli také vygenerování s- funkce pro použití v Simulinku, která zajišťuje OPC komunikaci mezi Matlabem a FuzzyDesignerem. V tomto případě opět vlastní vyhodnocení fuzzy systémů probíhá ve FuzzyDesigneru na základě vstupních dat získaných z Matlabu. V této funkci je zajištěno navázání komunikace připojení k FuzzyDesigneru OPC serveru a otevření projektu, odeslání aktuálních vstupních hodnot fuzzy systémů do FuzzyDesigneru a dále přečtení výstupních hodnot fuzzy systému z FuzzyDesigneru. Základní výhodou OPC protokolu je jeho stabilita, rychlost a bezpečnost v meziprocesní komunikaci v rámci jednoho počítače i lokální sítě. Nutné kroky pro vytvoření OPC komunikace mezi FuzzyDesignerem a Matlabem: 1. Otevření ve FuzzyDesigneru fuzzy systému, který chceme použít v Matlabu. 2. Vygenerování z FuzzyDesigneru (Menu Tools Code Generators MATLAB OPC S- Function) s-funkce pro zajištění OPC komunikace. 3. Vložení této funkce do simulinkového schématu. 4. Spuštění simulace. V případě OPC komunikace je možné nastavit při spuštění simulace již dříve vytvořeného simulinkového schématu automatické otevření fuzzy systému ve FuzzyDesigneru. Příslušná část kódu je v generované s-funkci již připravena jako komentář. Pro automatické otevření je nutno vymazat úvodní symbol komentáře %, popřípadě nastavit správnou cestu k souboru s daným fuzzy systémem. Viz. následující výpis. %===== enables openning and closing projects: ==================== %global OPC_close_ball %global OPC_ball_path %OPC_ball_path = [cd '\ball.fsp']; % specify project path Fuzzy modul jako samostatná komponenta Řada vývojových prostředí umožňuje integraci funkčních komponent typu dynamicky linkovaných knihoven DLL nebo COM(ActiveX). Tyto komponenty jsou pak mapovány do adresního prostoru volajícího procesu. FuzzyDesigner poskytuje uživateli komponenty, které mu umožňují nahrání a vyhodnocení fuzzy systémů aniž by musel instalovat a pouštět vlastní aplikaci FuzzyDesigner. Samostatná komponenta.net assembly a COM V podadresáři NET aplikace FuzzyDesigner se nachází.net assembly FuzzyDesignerNET.dll, která je také zaregistrována jako COM komponenta

FuzzyDesignerNET.FuzzySystem, dále FDesignerOPC_NETMonitor.dll, která umožňuje on-line monitorování běžícího fuzzy systému a dále Interop.FDesignerOPC_NETMonitorLib.dll která má zaručuje propojení mezi.net a COM serverem. Jestliže chce uživatel tyto komponenty použít na počítači, kde není nainstalován FuzzyDesigner, stačí tyto komponenty jednoduše zkopírovat na tento počítač a zaregistrovat je pomocí souboru REGMonitorServer.bat. Je nutné, aby na tomto počítači byl instalován Microsoft.NET Framework. Komponenta FuzzyDesignerNET.dll může být též volitelně registrována jako komponenta typu COM (typová knihovna FuzzyDesignerNET.tlb ). Komponenta poskytuje uživateli následující funkce: nahrání a vymazání fuzzy systému do/z paměti, získání počtu vstupních a výstupních portů fuzzy systému, zápis hodnot ( ostrých čísel i fuzzy množin) do vstupních portů, čtení hodnot z výstupních portů, nulování vnitřních stavů a vyhodnocení fuzzy systému. Ukázky volání jednotlivých funkcí je v následujícím přehledu. FuzzyDesignerCOM_Server = actxserver('fuzzydesignernet.fuzzysystem') invoke(fuzzydesignercom_server, 'StartMonitoringServer') invoke(fuzzydesignercom_server,'loadsystem',[cd '\coupleddrives.fsp']) m = invoke(fuzzydesignercom_server,'inputscount') vytvoření COM objektu propojeného s.net komponentou spuštění OPC serveru pro monitorování načtení fuzzy systému do paměti získání počtu vstupních portů n = invoke(fuzzydesignercom_server,'outputscount') získání počtu výstupních portů for i=1:length(u) res = invoke(fuzzydesignercom_server, 'SetInput',i-1,u(i)); end invoke(fuzzydesignercom_server,'evaluatesystem') y = invoke(fuzzydesignercom_server, 'GetOutput',0) invoke(fuzzydesignercom_server,'resetstate') invoke(fuzzydesignercom_server,'unloadsystem') invoke(fuzzydesignercom_server, 'TerminateMonitoringServer') release(fuzzydesignercom_server) zápis hodnot do vstupních portů vyhodnocení fuzzy systému přečtení hodnot z výstupních portů vynulování vnitřních stavů vymazání fuzzy systému z paměti ukončení OPC serveru pro monitorování uvolnění paměti Samostatná komponenta DLL a COM FuzzyDesigner poskytuje také samostatné komponenty nezávislé na Microsoft.NET Framework. V podadresáři DLL_COM aplikace FuzzyDesigner se nachází COM komponenta FuzzyDesignerCOM.dll, která je zaregistrována jako FuzzyDesignerCOM.CFuzzySystem. Komponenta obsahuje interní OPC server, který umožňuje on-line monitorování a ladění z prostředí FuzzyDesigner. Jestliže chce uživatel tyto komponenty použít na počítači, kde není nainstalován FuzzyDesigner, opět stačí tyto komponenty jednoduše zkopírovat na tento počítač a zaregistrovat je pomocí souboru REGFuzzyDesignerCOM.bat. Volání jednotlivých funkcí je stejné, jako v předchozím případě, rozdíl je ve vytvoření COM objektu: FuzzyDesignerCOM_Server = actxserver('fuzzydesignercom.fuzzysystem') vytvoření COM objektu Závěr Příspěvek ukázal možnosti integrace fuzzy systémů navržených v aplikaci FuzzyDesigner do programového prostředí Matlab a Simulink. FuzzyDesigner umožňuje uživateli přímé vygenerování navrženého fuzzy systému v kódu pro Matlab (m-file, s-funkce, C-MEX funkce). V tomto případě dochází k vlastnímu vyhodnocení fuzzy systému přímo v Matlabu a není závislé na aplikaci

FuzzyDesigner. Druhá možnost je založena na komunikaci mezi FuzzyDesignerem a Matlabem pomocí DDE nebo OPC serveru, popřípadě mezi funkční komponentou poskytovanou FuzzyDesignerem a Matlabem. V tomto případě dochází k vyhodnocování fuzzy systému ve FuzzyDesigneru (popřípadě funkční komponentě). Tyto komunikační možnosti dovolují propojit aplikaci FuzzyDesigner nejenom s programovým prostředím Matlab, ale i s dalšími řídicími, vizualizačními a informačními systémy nebo průmyslovými programovatelnými automaty. Kontakt: ProTyS, a.s., Na kopečku 1, 180 00 Praha 8 Tel: 224 917 207-8, Fax: 224 917 209 www: http://www.protys.cz, e-mail: FuzzyDesigner@protys.cz