3. Analyse og drøfting
3.1 Hvordan opplever barn potensielt skremmende nyheter?
Neste capítulo mostramos a fundamentação teórica de Redes Neurais, Sistemas Mul- tiagente e Redes Industriais. Além disso, mostramos também dois tipos de trabalhos cuja a filosofia irá se aplicar na arquitetura que será proposta por esta tese. O primeiro deles se refere a redes neurais aplicadas a sensores de software de redes industriais.
Observamos que em um ambiente foundation fieldbus podem ser aplicadas diversas configurações de redes neurais que contemplam soluções para vários tipos de problemas
6Uma ontologia é uma especificação de uma conceituação, isto é, uma descrição de conceitos e relações
que existem em um domínio de interesse. Basicamente, uma ontologia consiste desses conceitos e relações, e suas definições, propriedades e restrições, descritas na forma de axiomas. [Gruber 1993]
tais como: filtragem de ruído, auto-calibração, detecção de falhas, etc. Todos este trabal- hos têm resultados que mostram a viabilidade deste tipo de aplicação.
No segundo tipo de trabalho apresentado anteriormente temos o uso de agente em ambientes industriais. O que podemos perceber nessas implementações cujas caracterís- ticas principais são mostradas na Tabela 2.3 é que as arquiteturas possuem uma divisão de agentes com tarefas bem definidas, o que ajuda no desenvolvimento e manutenção dos agentes. Além disso, percebemos que o uso de agente em ambientes industriais é uma idéia que, apesar de nova, mostra uma grande aplicabilidade na solução de problemas encontrados nestes ambientes. Podemos perceber também que a maioria destes trabalhos alocam os agentes no nível de supervisão. E mesmo aqueles que alocam estes agentes nos dispositivos de campo fazem com que haja uma dependência de funcionamento com aqueles alocados no supervisório.
Tabela 2.3: Tabela comparativa de trabalhos de agentes em ambientes industriais
Trabalho Comunicação Funções dos
Agentes Nível deAtuação CoordenadorAgente Implementação [Wagner 2002] Direta Distintas Supervisório
e Campo
Sim -
[Macerauskas & Teresius 2004]
Direta Distintas Supervisório Sim - [Pirttioja et al. 2005] Indireta Distintas Supervisório Não Ontologias
[Frey 2008] Indireta Distintas Supervisório e Campo
Não S.O.M [Stefano &
Santoro 2009]
Indireta Distintas Supervisório e Campo
Sim Heurísticas
No próximo capítulo apresentaremos nossa arquitetura mostrando que, assim como os trabalhos aqui relacionados, usamos um conjunto de agentes com tarefas específicas (dis- tintas), comunicação direta e com nível de atuação nos nível de campo sem a necessidade de um agente coordenador. Contudo, será apresentado, como diferencial dos trabalhos relacionados, a implementação de agentes nos próprios dispositivos de campo, de forma independente de implementações no nível de supervisão e utilizando as técnicas de redes neurais alocadas nos blocos funcionais.
Arquitetura Multiagente em Blocos
Funcionais
Este capítulo irá mostrar os componentes e o funcionamento da arquitetura multia- gente proposta. Esta arquitetura envolve quatro componentes que serão explicados com maiores detalhe mais adiante. O primeiro componente é a Alocação Dinâmica de Blo- cos Funcionais que na verdade é uma estratégia para poder alocar e desalocar blocos funcionais (BF) dos dispositivos de campo e, conseqüentemente, a partir dessa alocação instanciar aplicações diferentes. O segundo componente são as redes neurais artificiais (RNA). São essas redes, alocadas nos BFs, que servirão como aplicações, ou seja, depen- dendo do treinamento da rede e de sua arquitetura, a rede age como um software diferente. Outro componente que será discutido neste capítulo é a Camada LABVIEW/FIPA, re- sponsável basicamente pela comunicação dos agentes e pelo tráfego e armazenamento de informação da arquitetura. Por fim, os agentes compõem o quarto componente. Assim como os trabalhos mostrados na sessão anterior, eles são divididos em tipos que repre- sentam suas tarefas (observação, diagnóstico e execução). Os agentes aqui apresentados são redes neurais instanciados nos blocos funcionais dos dispositivos de campo. Eles percebem o ambiente (fieldbus) através de sensores e agem neste ambiente através de at- uadores (dispositivos), ou seja, são capazes de interagir com o meio em questão (Camada LABVIEW/FIPA), tomando decisões (aprendidos no treinamento da rede neural) que irão auxiliar a alcançar seu objetivo (resolução de problemas).
3.1
Alocação Dinâmica de Blocos Funcionais
Para alocar e desalocar os agentes nos blocos funcionais dos dispositivos de campo é necessário mudar dinamicamente a configuração desses blocos. Ou seja, mudar em tempo de execução a forma de como eles estão interconectados alterando assim o com- portamento da aplicação instanciada nos dispositivos. Para isso, deve-se alterar os links (conexões) existentes entre blocos funcionais instanciados nos dispositivos de controle para que, em seguida, outros blocos que estão inutilizados nos dispositivos possam as- sumir suas tarefas [Ramalho 2009].
Como podemos ver na Figura 3.1, a estratégia de reconfiguração é baseada em 4 etapas.
1. Parametrização do novo bloco funcional, assim como a conexão de suas entradas; 2. Migração dos dados do bloco em execução;
3. Criação de novos links com as saídas do novo bloco funcional e 4. Exclusão do bloco inutilizado da aplicação.
1 2 3 4
Figura 3.1: Exemplo de reconfiguração dos blocos funcionais [Ramalho 2009] Uma das alternativas para realizar reconfigurações está associada à manipulação do macro-ciclo de execução da rede. Nesse caso, durante a faixa de atuação de tarefas assín- cronas, em que a rede não realiza ações de nível crítico em relação ao tempo de execução, pretendia-se instanciar os novos blocos funcionais para diferentes atividades. Porém, dev- ido às limitações e restrições de segurança do Foundation Fieldbus e do padrão OPC, não é possível interferir no macro-ciclo de execução da rede para incorporar outras atividades que não estejam estruturadas através do algoritmo gerado pelo software de configuração Syscon1. Só é possível ajustar alguns parâmetros que permitem escrita contínua durante o tempo de execução. A inserção de novos links lógicos exige uma parada no modo de operação dos instrumentos.
Diante da impossibilidade de realizar uma realocação de uma aplicação baseada em blocos funcionais diferentes daqueles que foram pré-instanciados, assim como para alterar o macro-ciclo de execução, adotou-se uma outra alternativa. A partir de uma aplicação pré-alocada na rede, torna-se possível instanciar diferentes aplicações com base em alguns artifícios usados nos blocos funcionais padrões.
Nossa estratégia é criar uma grande (macro) configuração de blocos funcionais e a par- tir dela derivar outras configurações [Machado et al. 2008b]. Ou seja, mudando os valores passados de um bloco a outro, podemos mudar as aplicações instanciadas no dispositivos de campo. Na Figura 3.2 podemos ver a conexão de dois blocos funcionais aritméticos. O valor de saída processado pelo bloco da esquerda é passado para a entrada do bloco da direita. Pode-se observar que o valor de saída do sub-bloco interno ALGORITHM LOGIC é multiplicada pelo valor GAIN. Colocando este valor em 0 (zero), zeramos também o valor passado de um bloco para o outro, anulando assim essa conexão. Ou seja, o valor passado pelo bloco da esquerda (zero) não irá ter influência no cálculo do valor de saída do bloco da direita.
1Ferramenta de software para configurar e operar um sistema de controle de processo industrial baseado
* *
Figura 3.2: Exemplo de conexão de blocos funcionais artiméticos
Observa-se também que existem três valores de ganho (GAIN_IN_1,GAIN_IN_2 e GAIN_IN_3) associados a cada entrada, que podem ser manipulados. Zerando esses val- ores também anularemos as entradas associadas. Um exemplo dessa estratégia é apresen- tado em [Machado et al. 2009a]. As figuras 3.3 e 3.4 apresentam a implementação de duas redes neurais baseadas em blocos funcionais no Syscon correspondentes as funções seno e exponencial, respectivamente. Ressalta-se que cada fabricante possui seu software de configuração próprio, portanto a forma de como a configuração é apresentada pode variar dependendo de qual software está sendo utilizado.
Neur1 Neur2 Neur3 FuncAtiv1 FuncAtiv2 FuncAtiv3 Neur4 Neur5 Input Output 3.0364 0.00497 1.3942 0.15561 -0.50772 -2.6871 0 0 0 3.4881 0 -2.6824 0 -0.44385 -0.50824
Figura 3.3: Rede Neural 1-3-1 generalizando a função seno
Neur1 Neur2 Neur3 FuncAtiv1 FuncAtiv2 FuncAtiv3 Neur4 Neur5 Input Output 39.1251 -29.54 -1.891 2.5343 1.3942 3.3284 20.9291 20.7939 6.805 5.1492 0 6.8975 37.45 -3.47 -24.91 13.82 0.1944 3.2169
Figura 3.4: Rede Neural 1-3-2-1 simulando a função exponencial
Estas implementações são realizadas a partir de uma mesma arquitetura, levando em consideração blocos funcionais já alocados nos dispositivos (pré-instanciados). Contudo, observamos que, a partir da manipulação dos links lógicos (conexões entre os blocos) e parâmetros internos dos blocos, é possível obter duas arquiteturas distintas. A Figura 3.3, por exemplo, corresponde a uma rede neural do tipo 1-3-1 (uma entrada, três neurônios na camada intermediária e uma saída). Já a Figura 3.4 corresponde a uma rede neural
cuja arquitetura é 1-3-2-1 (uma entrada, três neurônios na primeira camada intermediária, dois neurônios na segunda e uma saída). Assim, mudando os links (conexões) dos blo- cos podemos ter várias configurações de redes neurais (Figura 3.5) que podem atender diferentes situações. É importante ressaltar que os blocos funcionais, não precisam nec- essariamente estar no mesmo dispositivo. As interconexões (links) dos BFs podem estar em dispositivos diferentes, o que dá a característica de processamento distribuído a ar- quitetura.
Configuração 1 Configuração 2
Configuração 3 Configuração 4
Figura 3.5: Mudanças de arquitetura de redes neurais