universidade federal do parÁ departamento de …‡Ão - igor pinto... · universidade federal do...
TRANSCRIPT
UNIVERSIDADE FEDERAL DO PARÁ
DEPARTAMENTO DE ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
IGOR PINTO SIMÕES
UM SISTEMA MULTI-AGENTE PARA MONITORAMENTO DE
GERADORES DE ENERGIA ELÉTRICA
DM 07 / 2008
BELÉM
2008
1
IGOR PINTO SIMÕES
UM SISTEMA MULTI-AGENTE PARA MONITORAMENTO DE
GERADORES DE ENERGIA ELÉTRICA
Dissertação apresentada ao Programa de Pós-
Graduação em Engenharia Elétrica da
Universidade Federal do Pará como requisito
parcial para a obtenção do título de Mestre.
Orientador: Prof. Dr. Walter Barra Junior
BELÉM
2008
2
IGOR PINTO SIMÕES
UM SISTEMA MULTI-AGENTE PARA MONITORAMENTO DE
GERADORES DE ENERGIA ELÉTRICA
Dissertação apresentada ao Programa de Pós-
Graduação em Engenharia Elétrica da Universidade
Federal do Pará como requisito parcial para a
obtenção do título de Mestre.
Banca Examinadora:
_______________________________ - Orientador
Prof. Dr. Walter Barra Junior -UFPa
_______________________________ - 1º Membro
Prof. Dr. José Augusto Lima Barreiros - UFPa
_______________________________ - 2º Membro
Prof. Dr. Carlos Tavares da Costa Júnior - UFPa
_______________________________ - 3º Membro
Prof. Dr. Roberto Célio Limão de Oliveira - UFPa
_______________________________ - 4º Membro Prof. Dr. Orlando Fonseca Silva - UFPa
_______________________________ - 5º Membro Prof. Dr. José Augusto Furtado Real – UNAMA / IESAM
Julgado em: _____/_____/_____
Conceito: __________________
Visto:
Prof. Dr. ...........................................
(COORDENADOR DO PPGEE/ITEC/UFPA)
UFPA / ITEC / PPGEE
3
Dedico este trabalho aos meus pais que me
deram a oportunidade de estudar e me
apoiaram em todos os momentos que precisei,
me fornecendo assim, toda tranqüilidade e
confiança para desenvolver minhas atividades.
4
AGRADECIMENTOS
A todos os professores da graduação e pós-graduação que me propiciaram uma
excelente formação acadêmica e me deram incondicional apoio sempre que precisei.
A todos os colegas de curso em especial: André Nasser, Claudomir Junior, Patrícia
Endo e Luís Fernando pela convivência, aprendizado e amizade tão importantes em minha
formação enquanto profissional e ser humano.
Aos funcionários e amigos dos diversos laboratórios da UFPa, em especial do LACOS
e NESC, que me forneceram toda a infra-estrutura que precisei para desenvolver este projeto.
Aos amigos e familiares que sempre estiveram comigo me apoiando e incentivando.
Aos meus pais pelo apoio e incentivo dados desde o início de meus estudos.
Aos amigos Engenheiros Fabrício Gonzáles e Bruno Leal pelo desenvolvimento do
sistema de aquisição de dados e medição do desgaste das escovas.
Ao meu Orientador Prof. Dr. Walter Barra Junior pela dedicação incondicional sempre
que precisei, tanto como professor, Orientador PIBIC, Orientador de TCC e orientador de
mestrado. Em todos os momentos da graduação nunca me faltou e sempre correspondeu às
minhas expectativas, me dando suporte para desenvolver minhas atividades com o máximo de
excelência.
O autor e seu orientador agradecem ao suporte recebido das Centrais Elétricas do
Brasil (ELETRONORTE), através do projeto de pesquisa e desenvolvimento “
Desenvolvimento de um Sistema baseado em Agentes Inteligentes para o monitoramento de
Unidades Geradoras na UHE de Tucuruí ”, código 450005249, no desenvolvimento desta
pesquisa.
5
A sedução da distância e da dificuldade é
ilusória. A grande oportunidade está onde você
se encontra.
John Borroughs
6
RESUMO
De forma a obter um sistema apropriado que forneça funcionalidades importantes acerca da
operação e manutenção de um sistema de potência, faz-se necessário considerar alguns
aspectos sobre alarmes de faltas e monitoração. Quando se têm informações sobre o
relacionamento dos dados de entrada e fenômenos gerados por eles (estímulo-resposta), usam-
se normalmente algoritmos inteligentes de interpretação, tais como sistemas fuzzy e
mineração de dados. Mas se essas informações não estiverem disponíveis, uma abordagem
alternativa seria utilizar um sistema dinâmico de monitoração capaz de determinar o
comportamento esperado e normal de uma planta industrial. Esse trabalho descreve como a
tecnologia de sistemas multi-agente pode ser usada para construir um sistema desse tipo. Isso
é demonstrado através de um sistema multi-agente de alarme de anomalias aplicado a um
sistema de potencia.
Palavras-chave: Sistema de potência. Operação.
ABSTRACT
In order to have a more appropriate system that supplies important functions about operation
and maintenance of a power plant, it’s necessary to consider an alarm and on line condition
monitoring issues. When there is knowledge of the relationships between the raw data and the
underlying phenomena within the plant item, typical intelligent system-based interpretation
algorithms can be implemented, such as fuzzy systems and data mining. But if these
information are not present, an alternative approach might be used. The health data is
captured without any underlying knowledge concerning the link between the data and their
relationship to physical and electrical phenomena within the plant item. This leads to the
requirement for dynamic and learning condition monitoring systems that are able to determine
the expected and normal plant behavior over time. This paper describes how multi-agent
system technology can be used as the underpinning platform for such condition monitoring
systems. This is demonstrated through a multi-agent anomaly detection system applied to a
power system.
Key-words: Power plant. Operation. Condition monitoring.
8
LISTA DE TABELAS
Tabela 1 - Descrição geral do documento ....................................................................... 72
Tabela 2 – Benefícios do produto .................................................................................... 73
Tabela 3 – Matérias de referência .................................................................................... 73
Tabela 4 – Definições e siglas .......................................................................................... 74
Tabela 5 – Interfaces de usuário ...................................................................................... 76
Tabela 6 – Modos de operação ........................................................................................ 76
Tabela 7 – Funções do produto ........................................................................................ 77
Tabela 8 – Usuários do sistema ........................................................................................ 77
Tabela 9 – Informações acerca dos usuários .................................................................... 77
Tabela 10 – Restrições do sistema ................................................................................... 77
Tabela 11 – Hipóteses de trabalho ................................................................................... 77
9
LISTA DE FIGURAS
Figura 1: Modelo de agente reativo ............................................................................. 24
Figura 2: Modelo de agente cognitivo ......................................................................... 25
Figura 3: Representação conceitual de um agente definido por Ferber ....................... 26
Figura 4: Modelo de agente definido por Bussmann e Demazeau .............................. 27
Figura 5: Modelo de agente definido por Hayes-Roth ................................................ 28
Figura 6: Modelo de agente ARCHON definido por Jennings e Wittig ...................... 29
Figura 7: Modelo de agente definido por Hägg e Ygge .............................................. 31
Figura 8: Modelo de agente largamente utilizado ....................................................... 32
Figura 9: Protocolo de Interação de Agente, mostrando as interações para o
protocolo Contract Net. ................................................................................
38
Figura 10: Exemplo de um diagrama de pacotes ........................................................... 40
Figura 11: Exemplo da especificação de um template............................................. 41
Figura 12: Formato básico para comunicação de agente ............................................... 43
Figura 13: Transmissão simultânea de mensagens ........................................................ 43
Figura 14: Múltiplas técnicas para representar comunicação simultânea entre agentes,
utilizando múltiplos papéis ...........................................................................
44
Figura 15: Um exemplo de um diagrama de colaboração mostrando uma interação
entre agentes com papéis múltiplos ..............................................................
45
Figura 16: Diagrama de seqüência ................................................................................. 46
Figura 17: Um diagrama de atividade baseado em um caso de uso do sistema de
monitoração...................................................................................................
47
Figura 18: Um diagrama de estados indicando os estados e transições de uma conta
corrente .........................................................................................................
48
Figura 19: Um diagrama de atividade que especifica e ordena o comportamento do
processo para um agente ..............................................................................
49
Figura 20: Diagrama de estados que especifica processo interno do agente unidade
móvel ............................................................................................................
50
Figura 21: Modelos de sistemas ponto-a-ponto ............................................................. 53
Figura 22: Modelo de comunicação e relacionamentos ................................................ 55
Figura 23: Arquitetura global ........................................................................................ 60
Figura 24: Unidade geradora UGH1, na Casa de Força da 1ª Etapa da UHE de
Tucuruí .........................................................................................................
61
Figura 25: Diagrama simplificado da ponte retificadora tiristorizada ........................... 62
Figura 26(a): Armários de Tiristores da ponte retificadora .......................................... 63
10
Figura 26(b): Ventilador Exaustor do armário de Tiristores da ponte retificadora A ........ 63
Figura 26(c): Detalhe da gaveta de tiristores de um dos braços de condução da ponte
retificadora A ..........................................................................................
63
Figura 26(d): Sistema trocador de calor da ponte retificadora A .................................. 63
Figura 27: Diagrama esquemático ilustrando o subsistema de retificação em um dos
armários da ponte de tiristores do sistema de excitação de campo ..............
64
Figura 28: Sistemas de Escovas e de Anéis deslizantes, para aplicação da corrente
produzida pela ponte retificadora ao enrolamento de campo da máquina
síncrona ........................................................................................................
65
Figura 29: Quadro de sinalização de defeitos em um dos armários da ponte
retificadora ...................................................................................................
66
Figura 30: Sistema de aquisição dos sinais provenientes dos armários de tiristores ..... 68
Figura 31: Diagrama esquemático do sistema de aquisição de dados, incluindo a
medição remota do desgaste das escovas do gerador ...................................
69
Figura 32: Sistema de aquisição intermediária em Labview .......................................... 69
Figura 33: Diagrama do Sistema para Testes ................................................................ 71
Figura 34: Diagrama de contexto ................................................................................... 75
Figura 35: Interfaces do usuário .................................................................................... 79
Figura 36: Arquitetura do sistema multi-agente (sma) .................................................. 79
Figura 37: Estrutura de casos de uso ............................................................................. 82
Figura 38: Caso de uso orientado ao operador .............................................................. 83
Figura 39: Caso de uso orientado ao administrador ...................................................... 84
Figura 40: Diagrama de atividade – Inicializar sistema ................................................ 85
Figura 41: Diagrama de atividade – Agente supervisor ................................................ 86
Figura 42: Diagrama de atividade – Disparar comportamento alarme .......................... 87
Figura 43: Diagrama de atividade – Conectar ............................................................... 88
Figura 44: Diagrama de atividade – Enviar requisição .................................................. 89
Figura 45: Diagrama de atividade – Agente de banco de dados .................................... 90
Figura 46: Diagrama de atividade – Agente de banco de dados / Agente de aquisição .. 91
Figura 47: Diagrama de atividade – Agente de banco de dados / Agentes de detecção .. 91
Figura 48: Diagrama de atividade – Agente de banco de dados / agentes de
monitoração ..................................................................................................
92
Figura 49: Diagrama de atividade – Finalizar sistema .................................................. 93
Figura 50: Diagrama de atividade – Monitoração específica ........................................ 93
Figura 51: Diagrama de atividade – Monitoração em tempo real individual ................ 94
Figura 52: Diagrama de atividade – Iniciar Monitoração individual ............................. 95
11
Figura 53: Diagrama de atividade – Monitoração geral ................................................ 96
Figura 54: Diagrama de atividade – Iniciar monitoração geral ..................................... 96
Figura 55: Diagrama de atividade – Habilitar alarmes instantâneos ............................. 97
Figura 56: Diagrama de atividade – Agentes de detecção ............................................. 98
Figura 57: Diagrama de seqüência – Aquisição ............................................................ 99
Figura 58: Diagrama de seqüência – Detecção de anomalias ........................................ 100
Figura 59: Diagrama de seqüência – Monitoração ........................................................ 101
Figura 60: Autenticação inicial ...................................................................................... 103
Figura 61: Interface principal – operação ...................................................................... 104
Figura 62: Interface principal – administração .............................................................. 105
Figura 63: Monitoração individual – passo 1 ................................................................ 106
Figura 64: Monitoração individual – passo 2 ................................................................ 106
Figura 65: Monitoração individual – passo 3 ................................................................ 107
Figura 66: Monitoração individual – passo 4 ................................................................ 107
Figura 67: Monitoração geral – passo 1 ......................................................................... 108
Figura 68: Monitoração geral – passo 2 ......................................................................... 108
Figura 69: Alarme instantâneo ...................................................................................... 109
Figura 70: Desabilitar Alarmes instantâneos ................................................................. 109
Figura 71: RMA (Remote Management Agent) ............................................................. 110
Figura 72: SNIFFER ...................................................................................................... 111
Figura 73: Administração do sistema – Tela principal .................................................. 112
Figura 74: Cadastro de máquinas – passo 2 ................................................................... 112
Figura 75: Cadastro de máquinas – passo 3 ................................................................... 112
Figura 76: Atualização de máquinas – passo 1 .............................................................. 113
Figura 77: Atualização de máquinas – passo 2 .............................................................. 113
Figura 78: Exclusão de máquinas – passo 1 .................................................................. 114
Figura 79: Exclusão de máquinas – passo 2 .................................................................. 114
Figura 80: Cadastro de usuários – passo 1 .................................................................... 115
Figura 81: Cadastro de usuários – passo 2 .................................................................... 115
Figura 82: Atualização de usuários – passo 1 ................................................................ 116
Figura 83: Atualização de usuários – passo 2 ................................................................ 116
Figura 84: Exclusão de usuários – passo 1 .................................................................... 117
Figura 85: Exclusão de usuários – passo 2 .................................................................... 117
12
SUMÁRIO
1 INTRODUÇÃO ........................................................................................................... 15
1.1 DISPOSIÇÕES DO TRABALHO ............................................................................. 16
2 CONCEITOS FUNDAMENTAIS SOBRE A TEORIA DE AGENTES 18
2.1 CARACTERÍSTICAS DE UM AGENTE ................................................................ 19
2.2 SISTEMAS ABERTOS ............................................................................................. 20
2.3 SISTEMAS MULTI-AGENTE ................................................................................. 22
2.4 ARQUITETURA REATIVA PARA AGENTES ...................................................... 23
2.5 ARQUITETURA COGNITIVA PARA AGENTES ................................................. 25
2.6 MODELO DE AGENTE ........................................................................................... 26
2.6.1 Representação conceitual de um agente .............................................................. 26
2.6.2 Interação via troca de mensagens ........................................................................ 29
2.6.3 Componentes do modelo de um agente ............................................................... 32
3 ENGENHARIA DE SOFTWARE APLICADA AO DESENVOLVIMENTO DE
AGENTES ....................................................................................................................
34
3.1 METODOLOGIAS .................................................................................................... 34
3.1.1 UML ....................................................................................................................... 35
3.1.2 AUML .................................................................................................................... 37
3.2 UTILIZAÇÃO DE PADRÕES – NÍVEL 1 .............................................................. 39
3.2.1 Pacotes .................................................................................................................... 40
3.2.2 Templates ................................................................................................................ 41
3.3 INTERAÇÕES ENTRE AGENTES – NÍVEL 2 ....................................................... 42
3.3.1 Diagramas de Seqüência ....................................................................................... 42
3.3.2 Diagramas de Colaboração .................................................................................. 45
3.3.3 Diagramas de atividades ....................................................................................... 46
3.3.4 Diagrama de Estados ............................................................................................ 47
3.4 REPRESENTAÇÃO DE PROCESSOS INTERNOS DE AGENTES – NÍVEL 3....... 48
3.4.1 Diagramas de atividade ........................................................................................ 48
3.4.2 Diagramas de estado ............................................................................................. 49
4 AMBIENTE PARA DESENVOLVIMENTO DE AGENTES (JADE) ................. 51
4.1 INTRODUÇÃO ......................................................................................................... 51
4.2 JADE EM TERMOS GERAIS .................................................................................. 51
13
4.3 REFERÊNCIAS TECNOLÓGICAS ......................................................................... 51
4.3.1 O modelo ponto-a-ponto ....................................................................................... 51
4.3.2 O paradigma de agentes ....................................................................................... 53
4.4 O JADE EM TERMOS ESPECÍFICOS .................................................................... 56
4.4.1 O modelo de arquitetura ...................................................................................... 56
4.4.2 O modelo funcional ............................................................................................... 57
5 DESENVOLVIMENTO DE UM SISTEMA BASEADO EM AGENTES PARA
MONITORAÇÃO E DETECÇÃO DE FALTAS EM UM GERADOR ................
59
5.1 INTRODUÇÃO ......................................................................................................... 59
5.2 ARQUITETURA GLOBAL DO SISTEMA ............................................................. 60
5.2.1 Aquisição primária ............................................................................................... 60
5.2.2 Aquisição secundária ............................................................................................ 60
5.2.3 Monitoração e detecção ........................................................................................ 61
5.3 CARACTERÍSTICAS DO SISTEMA A SER MONITORADO: sistema de excita-
ção de campo da unidade hidrogeradora UGH1 ........................................................
61
5.3.1 Descrição dos subsistemas que compõem o sistema de excitação de campo,
com suas respectivas funções ...............................................................................
62
5.3.2 Sistema de alarmes e de tratamento de defeitos em cada armário da ponte
de titistores .............................................................................................................
66
5.4 PROJETO E DESENVOLVIMENTO DO SISTEMA DE AQUISIÇÃO DE
DADOS ......................................................................................................................
67
5.4.1 Configuração e arquitetura do sistema de aquisição de dados e monito-
ramento ..................................................................................................................
68
5.5 DESENVOLVIMENTO E IMPLEMENTAÇÃO DO SOFTWARE DO SISTEMA
DE MONITORAMENTO BASEADO EM AGENTES ...........................................
70
5.6 ANÁLISE E PROJETO DO SISTEMA BASEADO EM AGENTES INTELI-
GENTES ....................................................................................................................
71
5.6.1 Visão geral do Sistema .......................................................................................... 71
5.6.2 Levantamento de requisitos ................................................................................. 72
5.6.3 Arquitetura do Sistema Multi-agente (SMA) ..................................................... 79
5.6.4 Modelagem UML do Sistema Multi-agente (SMA) ........................................... 81
6 RESULTADOS OBTIDOS ........................................................................................ 103
6.1 DESCRIÇÃO DAS FUNCIONALIDADES DO SISTEMA .................................... 103
14
6.2 APRESENTAÇÃO INICIAL DO SISTEMA ........................................................... 103
6.3 FUNCIONALIDADES DO SISTEMA ..................................................................... 105
6.3.1 Monitoração on-line e individual de variáveis do sistema ................................. 106
6.3.2 Monitoração do Quadro geral das 5 variáveis de interesse do projeto pelo
Sistema. (Temperaturas dos 4 Armários e o desgaste das escovas) .................
108
6.3.3 Alarmes instantâneos ............................................................................................ 109
6.3.4 Monitorar Agentes (RMA) ................................................................................... 110
6.4 FUNCIONALIDADES ADMINISTRATIVAS ........................................................ 111
6.4.1 Cadastro e alteração de máquinas ....................................................................... 111
6.4.2 Exclusão de Máquinas .......................................................................................... 113
6.4.3 Cadastro e alteração de Armários, Tiristores e variáveis ................................. 114
6.4.4 Cadastro e Alteração de Usuários ....................................................................... 114
7 CONSIDERAÇÕES FINAIS ..................................................................................... 118
REFERÊNCIAS ............................................................................................................. 119
APÊNDICE ..................................................................................................................... 121
15
1 INTRODUÇÃO
O emprego de técnicas computacionais em auxílio ao monitoramento e alarme de
faltas em sistemas elétricos pode trazer benefícios tangíveis para as empresas do setor
elétrico, os quais podem ser expressos pela qualidade de operação da planta. No caso
específico de usinas de geração de energia elétrica, isto significa em reduções no tempo de
paradas não-programadas, ampliando-se, dessa forma, a disponibilidade das unidades
geradoras. Dessa forma, o retorno econômico do investimento realizado em pesquisa e
desenvolvimento neste campo poderá ser estimado quando se compara o custo da pesquisa
com os elevados prejuízos que poderiam advir da indisponibilidade temporária (ou
permanente) de uma unidade geradora, ocasionada por falha destrutiva que evoluiu a partir de
faltas incipientes que não foram percebidas pelos operadores pela falta de um sistema
automático de monitoramento e alarme de faltas.
Este tipo de problema ocorre principalmente devido à operação do equipamento sob
condição de intenso estresse, provocando, dessa forma, paradas que não foram programadas
antecipadamente. Com o uso de avançadas técnicas de monitoramento, as paradas não
programadas podem ser evitadas (ou pelo menos previstas) se os equipamentos estiverem
equipados com sistemas de monitoramento eficientes, capazes de informar precocemente a
ocorrência e evolução incipiente de faltas na operação dos equipamentos do sistema,
contribuindo assim para o aumento da disponibilidade das unidades e da confiabilidade da
planta.
Os modernos sistemas elétricos de potência devem atender a elevados índices de
desempenho e qualidade de operação, sendo a disponibilidade do serviço um dos mais
importantes índices de desempenho e de qualidade da operação. Para atender a esses critérios,
os sistemas estão se tornando cada vez mais complexos, pois além dos sistemas
eletromecânicos que naturalmente já compõem a planta propriamente dita, os sistemas de
potência modernos incorporam também avançadas e sofisticadas técnicas de automação e de
controle digital, realizando o processamento e análise de um elevado número de grandezas
medidas na planta, incluindo: temperatura, pressão, e grandezas elétricas diversas.
Assim sendo, com a elevada complexidade e a exigência de operação cada vez mais
rígidas, os sistemas de monitoramento modernos devem possuir um certo grau de autonomia e
de inteligência, em relação a tarefas que podem ser automatizadas, liberando o operador para
tarefas de mais elevado grau no sistema. Além disso, o sistema deve ainda assistir o operador,
16
realizando a detecção automática de faltas e auxiliando o operador no diagnóstico das
condições do sistema, sugerindo as melhores ações a serem executadas em cada caso.
Neste sentido, o debate acerca de técnicas de monitoração vem crescendo cada vez
mais, uma vez que as indústrias percebem o quanto o conhecimento sobre a “saúde” das
máquinas permite uma melhora significativa em relação à operação e manutenção dessas
máquinas. As técnicas atuais mais utilizadas são as ditas inteligentes, como lógica fuzzy e
mineração de dados. A primeira se aplica a casos onde se têm informações acerca da relação
entre os dados da planta e o fenômenos observados, de forma que seja possível classificar os
dados monitorados em classes especificas e fornecer informações mais inteligíveis aos
operadores. A segunda se aplica a situações em que existe uma massa de dados disponível
para que se possa encontrar relações entre os dados, de forma a identificar e classificar os
fenômenos de acordo com os dados de entrada. Entretanto, existem sistemas que podem ser
implementados com um conjunto reduzido de informações sobre o sistema como um todo.
Este trabalho, bem como os trabalhos de (STEPHEN; CAMPBELL, MCDONALD;
MCFADYEN), se enquadra exatamente e tão-somente nessa categoria e tem como objetivos
principais detectar anomalias em uma planta industrial de potência a partir de parâmetros pré-
concebidos em um sistema multi-agente, e agrupar uma massa de dados para que futuramente
um trabalho de mineração possa ser feito e com isso se tenha informações mais precisas
acerca da relação entre dados e fenômenos por eles causados.
1.1 ORGANIZAÇÃO DO TRABALHO
O capítulo 2 aborda os conceitos de sistemas baseados em agentes que são utilizados
neste trabalho. As características dos agentes, suas principais funcionalidades e a maneira de
como eles trabalham a partir de seus objetivos. Algumas arquiteturas interessantes de agentes
também são mostradas e uma análise acerca de sistemas multi-agente também é feita.
O capítulo 3 faz uma análise da engenharia de software aplicada a sistemas multi-
agente. Nesse capítulo são mostradas as principais técnicas de engenharia de software, mais
especificamente de linguagem de modelagem uml, aplicadas à tecnologia de agentes.
Mais adiante, no capítulo 4, é feita uma abordagem acerca do framework de
desenvolvimento de agentes: JADE. As principais características dessa importante ferramenta
são mostradas e analisadas. Conceitos como os de plataforma e cointainer são explicados de
17
forma a garantir um melhor entendimento acerca do funcionamento prático de um sistema
multi-agente.
Nos capítulos 5 e 6 é onde estão as principais contribuições deste trabalho. No capítulo
5 é detalhada toda a problemática acerca de um sistema de monitoração e detecção de faltas e
a forma proposta para uma solução baseada em agentes. Primeiramente é feita uma análise
acerca da planta industrial e após isso as soluções adotadas são abordadas. É feita uma análise
global e outra mais detalhada contendo os diagramas uml que detalham o funcionamento dos
agentes do sistema.
O capítulo 6 apresenta e discute os resultados obtidos com o sistema multi-agente em
testes realizados em laboratório. As interfaces gráficas em funcionamento são exibidas para
que se tenha uma perfeita noção acerca da aplicação prática do sistema. Esse capítulo
funciona inclusive como um tutorial de utilização do sistema dentro do contexto de
monitoração e detecção de faltas.
Por fim, tem-se o capítulo 7, que faz uma conclusão do trabalho, mostrando em linhas
gerais o que foi realizado e os objetivos que foram alcançados, além de possíveis trabalhos
futuros a partir do que já foi produzido.
18
2 CONCEITOS FUNDAMENTAIS SOBRE A TEORIA DE AGENTES
Um dos ramos da inteligência computacional estuda sociedades de agentes de software
para trabalhar em conjunto na solução de problemas de natureza distribuída, ou seja,
problemas complexos que não podem ser resolvidos por um único programa. Ainda não há na
literatura especializada uma única definição amplamente aceita para o conceito de agente. Na
literatura encontram-se conceitos distintos dependendo da especialidade do autor. Contudo,
tais definições não são antagônicas. Elas colaboram mutuamente para um entendimento mais
amplo da concepção de um agente. Um agente é um software persistente que permite a
interoperabilidade entre sistemas computacionais de organizações distintas. Tipicamente
devem possuir capacidade adaptativa entre os ambientes heterogêneos das organizações,
caracterizando a necessidade de sistemas abertos (GENESERETH; KETCHPEL, 1994).
De acordo com Smith et al. (1994), um Agente é uma entidade de software persistente
dedicada a um propósito específico. A capacidade de persistência do software distingue
agentes de sub-rotinas: um agente tem suas próprias concepções de como efetuar tarefas,
percepção das condições dinâmicas do ambiente, ação para modificar as condições no
ambiente e raciocínio para interpretar percepções, resolver problemas, fazer inferências e
determinar ações, ou seja, um agente pode agir sobre ele mesmo ou sobre o ambiente.
Um agente pode agir autonomamente, de maneira racional ou intencional, para
cumprir um conjunto de objetivos. Um agente de interface, por exemplo, pode ser definido
como um personagem desempenhado pelo computador para representar o usuário em um
ambiente virtual. Ao "pensar" e comunicar comportamentos, os agentes de interfaces
baseiam-se em metáforas de organismos vivos em termos de acessibilidade cognitiva e estilo
de comunicação (LAUREL, 1990; SYCARA et al., 1996; MAES, 1994b). Um agente ainda
pode ser mantenedor de informações ou responsável por tarefas simples, cujo principal intuito
é a filtragem da informação para reduzir a sobrecarga cognitiva do usuário (WOOLDRIDGE;
JENNINGS, 1995; MAES, 1994a; MITCHELL et al, 1994). Na comunidade de inteligência
artificial, os agentes são constantemente entendidos como entidades autônomas.
Segundo (RUSSEL; NORVIG, 1995; FRANKLIN; GRAESSER, 1997; MAES, 1995)
um agente pode ser visto como algo que observa o ambiente através de sensores e age nesse
ambiente através de atuadores, compondo sistemas computacionais que habitam algum
ambiente dinâmico complexo, percebem e agem de forma autônoma nesse ambiente e,
fazendo isto, realizam um conjunto de metas e tarefas para as quais foram projetados. Estes
19
agentes percebem o ambiente que estão inseridos e atuam continuamente para atender a seus
objetivos.
Olhando para o contexto da inteligência artificial, pode-se afirmar que a inteligência
artificial distribuída baseia-se no comportamento social, considerando sociedades de agentes
inteligentes, autônomas e dotadas de capacidades cognitivas. Os agentes especialistas nas
atividades que desempenham não trabalham isolados. De forma cooperativa eles tentam
resolver um problema da melhor forma possível, caracterizando uma área da inteligência
artificial distribuída, denominada sistemas multi-agente (DEMAZEAU, 1995).
Partindo deste pressuposto, começa-se a colocar a visão do agente como parte de um
contexto. Wayer e Cheong (1995) afirmam que um agente encontra-se imerso em uma
sociedade de agentes. Nesta sociedade, a interação e a coordenação das metas e dos planos de
ações destes agentes têm como objetivo a resolução cooperativa de uma determinada tarefa.
2.1 CARACTERÍSTICAS DE UM AGENTE
Um agente possui um conjunto de propriedades que ajudam em sua interação com o
ambiente em que está inserido. Desta forma, um agente pode ser ainda um sistema
computacional com habilidade de autonomia, capacidade social, reatividade e pró-atividade
(WOOLDRIDGE; JENNINGS, 1995). As propriedades ou habilidades dos agentes
diferenciam a atuação de um agente com relação a outro. Abaixo estão apresentadas algumas
das características que poderão ser encontradas em um agente:
Reatividade: propriedade que permite que os agentes percebam seu ambiente e responda
adequadamente às mudanças nele ocorrida. O ambiente aqui referido pode ser o mundo
físico, uma interface gráfica, uma coleção de outros agentes, a Internet ou ainda um
contexto que pode ser definido com a combinação de mais de um desses elementos.
Autonomia: capacidade de tomar iniciativa e ter um controle sobre as suas próprias ações
ou ainda a capacidade de tomar ações para realizar algumas tarefas e objetivos, sem a
interferência do usuário final. Deve haver um elemento de independência no agente, ou
seja, os agentes operam sem a intervenção direta de seres humanos ou outros agentes.
Habilidade social: habilidade que os agentes possuem de interagir com os outros agentes
ou pessoas no momento adequado, para concluir suas tarefas ou ajudar outros agentes.
20
Confiabilidade: Os agentes devem demonstrar “veracidade” e “benevolência”, ou seja, os
usuários precisam ter certeza de que os agentes serão confiáveis nas ações e informações e
que irão agir em seu benefício.
Comportamento adaptativo: Capacidade do agente de modificar seu comportamento em
função de experiências anteriores. Um agente deve possuir capacidade para executar uma
tarefa com maior eficiência do que em execuções anteriores.
Mobilidade: Capacidade do agente de transportar-se de uma máquina à outra, ou ainda,
habilidade do agente movimentar-se em uma rede.
Flexibilidade: Habilidade dos agentes de escolher dinamicamente as ações e a seqüência
de execução das mesmas, em resposta a um estado do ambiente.
Comunicabilidade: Capacidade dos agentes de comunicar através de troca de mensagens
em uma expressiva e específica linguagem para conversação
Pró-atividade: Capacidade manifestada pelo agente de exibir um comportamento
direcionado a objetivos. Desta forma, o agente não age simplesmente em resposta ao
ambiente, mas de acordo com um propósito. Para tanto, deve exibir um comportamento
oportunista, voltado para a realização de seus objetivos.
Racionalidade: Os agentes devem ter racionalidade para agir de forma lógica. A
capacidade de raciocínio é talvez o aspecto mais importante que distingue um agente
inteligente dos outros agentes. Dizer que um agente inteligente tem raciocínio significa
dizer que ele tem a habilidade de inferir e extrapolar, baseado no conhecimento atual e nas
experiências, de uma maneira racional e reprodutível.
Um agente não deve necessariamente possuir todas as habilidades descritas. As
habilidades do agente dependerão do contexto a que o mesmo está inserido e do papel que está
representando. Um agente sempre estará interagindo com o meio externo. Desta forma, o agente
deverá estar inserido em um contexto previamente definido, onde a troca de dados, informações
ou conhecimento ocorram através de um protocolo conhecido (PARAISO, 1996).
2.2 SISTEMAS ABERTOS
A integração dinâmica de agentes implica na capacidade de aprendizagem do agente sobre
tarefas em que estão envolvidos. Este conceito é usado em várias áreas da ciência da computação:
21
a) interconexão entre arquiteturas de diferentes máquinas (modelo OSI);
b) ligação dinâmica entre cliente e servidor (modelo CORBA);
c) reconfiguração dinâmica e seleção mútua (modelo Contract-Net) e
d) integração dinâmica de um agente em um contexto de trabalho (modelo
agente). A complexidade e a dinâmica dos sistemas levam a uma nova situação
onde saber como projetar sistemas computacionais eficientes, confiáveis e
corretos não é mais suficiente (FERBER, 1995, p. 87).
Ferber (1995) argumenta que os novos softwares devem facilitar adaptações, em
particular às mudanças no contexto do trabalho, tais como:
a) mudança do sistema operacional;
b) mudança do sistema gerenciador de banco de dados;
c) mudança da interface gráfica e
d) inserção de um novo software.
O novo sistema computacional deve ter capacidade que envolva situações como:
a) inclusão de novas funcionalidades;
b) alteração do modo de funcionamento do software;
c) integração do novo software. Neste sentido, pode-se dizer que sistemas abertos são
fortemente adaptativos.
Sistemas multi-agentes são candidatos promissores para implementação de
arquiteturas distribuídas, heterogêneas, flexíveis e abertas, capazes de oferecer uma grande
quantidade de serviço em ambientes de trabalho coletivo sem uma estrutura prévia definida.
Os sistemas multi-agentes podem ser classificados de acordo com a arquitetura, o grau de
autonomia de cada agente e o tipo de protocolo usado para comunicação, alem da sua
complexidade. A principal distinção está relacionada aos agentes autônomos. Os agentes
reativos são muito simples sem qualquer representação do seu ambiente. Eles interagem com
um tipo de comportamento estímulo-resposta (FERBER; DROGOUL, 1992). Assim,
comportamentos inteligentes podem emergir de uma população de numerosos agentes
(BROOKS, 1991; SCALABRIN, 1996; BEER, 1992; DEMAZEAU, 1990;
CASTELFRANCHI, 1990; WOOLDRIDGE; JENNINGS, 1994).
Uma condição essencial para o desenvolvimento de um sistema aberto é que o ambiente
permita gerir a adição e a supressão de um agente de uma aplicação sem a necessidade de parar e
reinicializar o sistema. Porque, quando um novo serviço é adicionado, a necessidade de
recompilar todos os programas em todas as máquinas da rede é claramente inaceitável.
Um ponto comum entre todas as arquiteturas baseadas no modelo cliente-servidor é a
presença de uma entidade mediadora entre o requisitante e o fornecedor de um serviço. As
abordagens se distinguem pelo nível de conhecimentos modelados sobre os objetos servidores
22
ou agentes de serviços. Em certos casos, essas entidades intermediárias recobrem
perfeitamente a noção de agente autônomo. Com relação ao modelo cliente-servidor, o
modelo de coordenação para agentes assíncronos é mais complexo. Porque os agentes são:
de um lado independentes para levar em conta ou rejeitar uma solicitação e,
de outro, obrigados (eles mesmos) a gerir as interações com os outros agentes
fornecedores de serviços. Os agentes autônomos utilizam o serviço de uma entidade
intermediária somente para o transporte das mensagens, sendo eles mesmos os próprios
responsáveis pela negociação de um serviço e pela gestão de suas relações com os demais
agentes (SCALABRIN, 1996).
2.3 SISTEMAS MULTI-AGENTE
A área de sistemas multi-agente estuda o comportamento de um grupo organizado de
agentes autônomos que cooperam na resolução de problemas que vão além das capacidades
de resolução de cada um individualmente (DURFEE et al., 1994). Duas propriedades,
aparentemente contraditórias, são fundamentais para os sistemas multi-agente: a autonomia
dos agentes e sua organização. Conforme já mencionado neste trabalho, o termo autônomo
significa a capacidade de tomar iniciativa e ter um controle sobre as suas próprias ações ou
ainda a capacidade de tomar ações para realizar algumas tarefas e objetivos, ou seja, para
funcionar, um agente não precisa de outros agentes, mesmo que para alcançar seus objetivos
ele eventualmente precise da ajuda de outros. Por outro lado, a organização coloca restrições
aos comportamentos dos agentes, procurando estabelecer um comportamento de grupo coeso
(JENNINGS; WOOLDRIDGE, 1998; WOOLDRIDGE, 2002).
Um sistema multi-agente surge em um cenário de entidades diversificadas onde cada
uma possui uma tarefa dedicada, ou seja, a necessidade de cumprir seus objetivos é suficiente
para tomar boa parte de seu tempo e processamento. Dada esta situação, a abordagem
destinada ao sistema multi-agente traz as seguintes características:
os agentes são concebidos independentemente de um problema particular;
a interação entre os agentes não é projetada anteriormente, busca-se definir
protocolos que possam ser utilizados em situações genéricas;
a decomposição de tarefas para solucionar um dado problema pode ser feita pelos
próprios agentes;
não existe um controle centralizado da resolução de um problema (HUBNER,
2003, p. 54).
23
As propriedades dos sistemas multi-agente apresentam algumas vantagens:
viabilizar sistemas adaptativos e evolutivos: um sistema multi-agente tem capacidade de
adaptação a novas situações, tanto pela eliminação e/ou pela inclusão de novos agentes ao
sistema quanto pela mudança da sua organização (HUBNER, 2003).
modelar sistemas complexos e distribuídos: em muitas situações, o conhecimento está
distribuído, o controle é distribuído, os recursos estão distribuídos. E, quanto à
modelagem do sistema, a decomposição de um problema e a atribuição dos sub-problemas
a agentes permite um alto nível de abstração e independência entre as partes do sistema
(JENNINGS; WOOLDRIDGE, 1998);
tirar proveito de ambientes heterogêneos e distribuídos: agentes com arquiteturas
diferentes, que funcionam em plataformas diferentes, distribuídas em uma rede de
computadores, podem cooperar na resolução de problemas. Isto permite o uso das
potencialidades particulares de cada arquitetura e, pela distribuição, melhora o
desempenho do sistema;
permitir a concepção de sistemas abertos: os agentes podem migrar entre sociedades, isto
é, agentes podem sair e entrar em sociedades, mesmo que desenvolvidos por projetistas e
objetivos distintos.
2.4 ARQUITETURA REATIVA PARA AGENTES
O modelo reativo não apresenta pré-definições, não apresenta nenhum modelo interno
do mundo exterior, possui apenas mapeamentos de situações e respectivas respostas
associadas, responde ao que lhe é questionado através de conhecimento obtido pelas situações
que já vivenciou e não usa argumentos simbólicos complexos. Assim, quando uma mudança
no ambiente ocorre, o agente executa a ação correspondente (FRANKLIN; GRAESSER,
1997; HEILMANN, 1995; RUSSEL; NORVIG, 1995; HOLLAND, 1975).
Os sistemas de agentes reativos são constituídos por um grande número de agentes,
bastante simples, sem inteligência e sem representação de seu ambiente. Eles podem modelar,
por exemplo, uma sociedade de formigas, ou ainda os clientes e os servidores na abordagem
OMG CORBA. Estes agentes são fortemente acoplados. Eles interagem utilizando um
comportamento do tipo estímulo/resposta (FERBER; DROGOUL, 1992).
24
Um comportamento inteligente emerge a partir das interações entre esses agentes e seu
ambiente (MINSKY, 1986). Ou seja, os agentes não são individualmente inteligentes, mas seu
comportamento global é inteligente.
Na figura 1 é apresentada a arquitetura definida por Russel e Norvig (1995) para o
modelo reativo de agente. A percepção do ambiente e um conjunto de regras são o que
determinam o comportamento de um agente. Um agente reativo por definição percebe um
estímulo e executa uma tarefa, pelo fato que a primeira é responsável pela ação do agente para
resolver à segunda. Neste caso, o agente normalmente age por ter recebido no ambiente uma
interação que o fez agir de tal maneira.
Figura 1: Modelo de agente reativo.
Fonte: Russel; Norvig (1995)
Na literatura, as aplicações mais freqüentes ainda são na área de robótica. Por
exemplo, o comportamento complexo de um robô pode ser decomposto em comportamentos
individuais simples. Esses comportamentos são colocados em contato com o mundo real; o
robô capta continuamente informações sobre o ambiente que o cerca. Deste modo, o robô faz
parte do ambiente e reage baseado em um comportamento simples, ditado pelos
estímulos/respostas que recebe (SCALABRIN, 1996). Dentre os trabalhos sobre os agentes
reativos, pode-se citar Brooks (1986), que realizou os primeiros estudos sobre os agentes
reativos, onde, a idéia central é que a concepção de um robô inteligente e autônomo recai na
criação de um conjunto de camadas que agem como pequenos robôs reativos. Ferber e
Jacopin (1990), Ferber e Drogoul (1992) utilizam a eco resolução, uma abordagem particular
de resolução distribuída de problemas. Eles consideram que a resolução distribuída de um
problema é uma série de interações bastante simples dentro de uma população de agentes. A
solução do problema emerge das interações entre os agentes. Steels (1989) tentou resolver o
problema da coleta de minério por robôs em ambiente desconhecido.
25
2.5 ARQUITETURA COGNITIVA PARA AGENTES
Também chamados de agentes cognitivos, estes agentes possuem um modelo do
mundo, que possivelmente os inclui também. Este modelo é de certa forma pré-concebido,
porém seu estado pode ser alterado através da comunicação com os demais agentes da rede e
através da percepção do ambiente realizada pelos sensores do agente. O agente estima que
ações serão necessárias para alcançar um determinado objetivo através da interpretação deste
modelo, e então executa ações que levarão à sua realização. (FRANKLIN; GRAESSER,
1997; HEILMANN, 1995; RUSSEL; NORVIG, 1995).
Figura 2: Modelo de agente cognitivo.
Fonte: Beer (1992).
Em Hubner (2003) encontra-se o modelo cognitivo, que apresenta na figura 2 a
arquitetura proposta por Beer, (1992): o conhecimento que o agente possui é formado a partir
da sua percepção do ambiente e da comunicação com outros agentes, ou seja, o conhecimento
é atribuído ao agente através de seus relacionamentos, seja com o ambiente ou com os demais
agentes da rede. Dado este conhecimento e uma meta, o agente gera um conjunto de possíveis
planos que atingem esta meta. Desta forma, o agente utiliza o conhecimento para rotear as
possíveis soluções para o problema que o mesmo foi incumbido de resolver. Dadas estas
possibilidades ou soluções, o agente analisa qual a melhor solução a ser executada. Neste
caso, pode-se afirmar que o agente tomou uma determinada ação porque esta ação faz parte
do processo que leva o agente a cumprir uma determinada tarefa. Obviamente, esta diferença
entre as arquiteturas somente pode ser percebida olhando-se “dentro” dos agentes. Somente
26
pela observação do comportamento externo não se pode dizer se um agente é reativo ou
cognitivo.
2.6 MODELO DE AGENTE
2.6.1 Representação conceitual de um agente
A figura 3 mostra as principais propriedades que devem existir em um agente
(percepção, comunicação, ações, etc.). Todavia, a maior parte dos modelos encontrados na
literatura são modelos que utilizam a percepção e a ação para as atividades de interações ou a
comunicação direta entre os agentes.
Figura 3: Representação conceitual de um agente definido por Ferber.
Fonte: Ferber (1995).
Uma importante classe de sistemas computacionais é conhecida como agentes
inteligentes, cujas tarefas requerem uma interação com as entidades dinâmicas do ambiente e
um raciocínio baseado em conhecimentos. Esse tipo de agente executa tarefas complexas.
Essas tarefas existem em vários domínios: controle de processos, monitoramento de
27
tratamentos intensivos, dentre outros. As pesquisas privilegiaram as comunicações indiretas
(através do ambiente) entre os agentes.
A busca pela criação de agentes autônomos capazes de viver em um ambiente real
requer a construção de modelos bastante complexos de interações com o ambiente (percepção,
cognição, ação). As Figura 4 e 5 mostram dois modelos de agentes que foram especificamente
desenvolvidos para tais situações. Nestes modelos, os conhecimentos representados são
essencialmente:
os estados mentais internos de um agente (planos, ações); e
o ambiente.
Os mecanismos implementados são:
o raciocínio ou a inferência;
o planejamento;
a execução de um plano;
a integração de um novo evento no mecanismo de raciocínio; e
a adaptação do plano.
Figura 4: Modelo de agente definido por Bussmann e Demazeau.
Fonte: Bussmann e Demazeau (1994).
28
Figura 5: Modelo de agente definido por Hayes-Roth.
Fonte: Hayes-Roth (1990).
As Figuras 4 e 5 representam modelos de agentes que estabelecem a integração de
modelos reativos e cognitivos a fim de realizar sistemas do tipo percepção/cognição/ação.
Eles concernem à organização dos processos internos de um agente e especificam as
interações entre os modelos que, no contexto de uma implementação real, devem assegurar
um comportamento tanto reativo quando cognitivo.
A tarefa principal do modelo de um agente é descrever como os dados de entrada são
tratados a fim de produzir uma saída tal como: sensor de entrada e ações (Figura 4). Com esse
mesmo princípio, a percepção e a execução fazem referência ao processo necessário para
interagir com o ambiente. Na Figura 4, o núcleo do agente é o modelo do mundo, o qual
compreende conhecimentos sobre o ambiente, o estado mental dos outros agentes (não é dito
como o agente que recupera o estado mental dos outros), e seu próprio estado mental. Este
último inclui em particular os planos que devem ser executados. Finalmente, para assegurar a
reatividade do agente, um processo de avaliação examina de modo contínuo o modelo do
mundo, detectando assim as situações que um agente deve reagir, bem como avaliar e decidir
as ações a executar (SCALABRIN, 1996).
Pode-se observar que, mesmo nestes modelos específicos (a uma classe de problemas),
existem certas diferenças, uma delas é o encadeamento dos módulos no interior dos modelos.
Ou seja, o laço que leva em conta os eventos internos e externos, bem como a adaptação do
29
comportamento de um agente em função desses eventos não é a mesma. Na Figura 4, um
evento externo é levado em conta primeiramente pelo módulo executor e somente na
seqüência pelos módulos planejamento e programador, o que não é o caso na Figura 5.
2.6.2 Interação via troca de mensagens
Tome-se como ponto de partida o modelo da Figura 6, que representa o sistema
ARCHON descrito em Jennings e Wittig (1992). Este é um dos primeiros modelos de agentes
utilizado no meio industrial. Este modelo é interessante porque ele separa claramente a
aplicação do sistema de serviços que correspondem respectivamente aos blocos inferior e
superior da Figura 6.
O sistema de serviços corresponde ao conjunto de mecanismos da arquitetura que não faz
parte de nenhum domínio de aplicação. Ele fornece facilidades de comunicação, tais como:
o endereçamento de mensagens;
a filtragem; e
a difusão de informações dirigida por interesses (Publish/Subscribe).
Figura 6: Modelo de agente ARCHON definido por Jennings e Wittig.
Fonte: Jennings e Wittig (1992)
30
Foram incluídos também certos modelos de representação e de interação:
a representação de si próprio;
a representação dos demais agentes ("acquaintances"); e
a interação via protocolo cliente-servidor ou redes contratuais (Contract-Net).
A representação dos demais agentes contém modelos para efetuar a comunicação em
termos de competências e de interesses. Esses modelos são pré-requisitos para todas as
atividades de coordenação entre agentes. Os serviços de difusão de informações utilizam esses
modelos para encontrar os agentes interessados em um determinado resultado. Da mesma
maneira, o modelo de si próprio representa, de um modo abstrato, o domínio do agente ou da
aplicação. A aplicação contém, antes de tudo, informações sobre o estado corrente do sistema
(tarefas em execução). Ela encapsula também os planos pré-compilados para a parte reativa
do controle.
Esses planos são acessíveis pelo monitor, que é responsável pelo controle da aplicação
e das trocas de informações entre as partes. O subsistema de planejamento e coordenação
representa a principal parte reflexiva do sistema de serviços. Se uma exceção ocorre, é tarefa
desse subsistema raciocinar e encontrar uma solução. Sua influência sobre o monitor ocorre
principalmente através do comportamento armazenado no modelo de si. Este contém também
partes reativas a respeitar no momento da inicialização da cooperação. Por exemplo, o agente
detecta a necessidade de cooperação e determina qual tarefa ele deve confiar aos outros
agentes. Deve-se frisar que a seleção do protocolo de cooperação a utilizar é feita em função
da carga de trabalho do sistema de raciocínio. O processo é o mesmo quando um agente
recebe uma demanda de cooperação da parte de um outro agente (SCALABRIN, 1996).
A figura 7 ilustra uma arquitetura similar à arquitetura ARCHON, exceto que a
separação entre o sistema de serviços e a aplicação é realizada pelo módulo de comunicação.
No entanto, a modelagem inclui um conjunto de modelos bastante completo em relação às
outras arquiteturas. Ou seja, ela possui uma base de dados onde são armazenados:
estados internos;
representação externa;
metas (parecidas com "scripts");
biblioteca de planos; e
modelo de intenções.
31
Ela gerencia uma biblioteca de planos, os quais podem ser: privados, não privados e a
especificar o executor. Cada plano contém um campo onde é inserido o nome do executor do
plano. Assim, se o valor desse campo é:
self, trata-se de um plano privado;
uma constante (nome de um outro agente), trata-se de um plano não privado;
uma variável, trata-se de um plano em que se deve determinar o seu executor.
Figura 7: Modelo de agente definido por Hägg e Ygge.
Fonte: Hägg; Ygge (1994)
Como visto, um modelo de agente pode ser concebido com uma divisão operacional
de uma estrutura capaz de suportar uma base de conhecimento, uma camada de comunicação,
uma memória externa, uma memória interna e uma central de processamento. A maioria dos
modelos conhecidos, já citados anteriormente, utiliza uma divisão parecida, pois a
necessidade de operação de um agente é sempre a mesma. Ou seja, sempre um agente deverá
interpretar as mensagens que recebe e formatar as mensagens que envia, deverá processar as
solicitações recebidas pelas mensagens e consultando a uma base de conhecimentos, pois um
agente existe para uma determinada função e poderá armazenar informações sobre si mesmo e
informações sobre a rede ou sociedade em que está envolvido. Desta forma, todas as
propostas de arquitetura de agente não fogem muito deste modelo, pois o funcionamento de
um agente depende no mínimo destes quesitos.
O modelo de agente da Figura 8 é baseado nos modelos apresentados anteriormente e
traz o modelo escolhido para o desenvolvimento da maioria dos sistemas de agentes já
concebidos.
32
Figura 8: Modelo de agente largamente utilizado.
Fonte: Fonte: Hägg; Ygge (1994).
2.6.3 Componentes do modelo de um agente
Interface com o Usuário: Responsável pelo recebimento das solicitações do usuário.
Após a recepção, as solicitações devem ser encaminhadas ao módulo de processamento para,
depois, apresentar os resultados ao usuário. Uma de suas funcionalidades é prover meios que
permitam ao usuário atualizar os objetivos e os conhecimentos do agente.
Módulo de Processamento: Está constantemente ligado à base de conhecimento do agente.
É o módulo responsável por responder todas as solicitações da camada de comunicação e
da interface com o usuário. Dentro de seu trabalho está a necessidade de avaliar as
diferentes alternativas de solução e selecionar a melhor opção. Pode, com base nas
mensagens recebidas de outros agentes e através de sua capacidade de percepção das
variáveis ambientais, atualizar sua base de conhecimento. O comportamento reflete todos
os estados possíveis na interação entre agentes.
Objetivos: Todo agente possui um objetivo definido. Este objetivo traz a responsabilidade
que possui dentro da sociedade em que está envolvido.
Base de Conhecimentos: Todo conhecimento do agente está armazenado em sua base de
conhecimento. É de onde o módulo de processamento tirará apoio para apresentar as
soluções exigidas pela sociedade.
33
Módulo de Codificação e Decodificação de Mensagens: Todas as mensagens recebidas e
enviadas pelos agentes estarão em um determinado formato, dependendo de qual padrão
ou ferramenta de comunicação a rede está utilizando. Desta forma, o módulo de
codificação e decodificação de mensagens é o módulo responsável por receber e enviar as
mesmas dentro do padrão destinado. As mensagens são trocadas com os demais agentes
da rede.
Módulo de Percepção: Refere-se aos meios disponíveis para o agente monitorar variáveis
do ambiente.
Módulo de Comunicação: Encarrega-se de enviar e receber mensagens de outros agentes
mediante protocolos de transporte (p.e. na Internet, via TCP e HTTP). Este módulo pode
desenvolver-se mediante KAPI (KQML Application Programmer's Interface), que provê
uma interface abstrata entre os protocolos de transporte (TORRES; CONSTANTINO,
1996).
34
3 ENGENHARIA DE SOFTWARE APLICADA AO DESENVOLVIMENTO DE
AGENTES
Sistemas informatizados têm enorme potencial de trazer benefícios. Têm também
enorme potencial de trazer prejuízos, quando feitos de forma errada. O software é a alma dos
sistemas informatizados, e a engenharia de software é a disciplina que ensina a construir
produtos reais a partir dos conceitos fundamentais da informática.
Em relação a sistemas de agentes, os métodos para desenvolvimento de software
dependem de representações e normas que sustentem a análise, especificação e projeto de um
software assim como nas demais aplicações, porém com certas peculiaridades envolvendo os
agentes. O problema ocorre quando percebe-se que as habilidades dos desenvolvedores são
enfocadas mais em metodologia de desenvolvimento que em acompanhamento das técnicas
de agente mais recentes.
A UML(Unified Modeling Language) é a linguagem amplamente aceita para a
concepção de software orientado a objeto. O princípio básico da linguagem proposta para
agentes é acomodar os requisitos dos agentes dentro da UML. Estarão sendo apresentadas
neste capítulo as abordagens necessárias para adaptar os modelos da UML a uma metodologia
que tratará da modelagem de um sistema de agentes.
3.1 METODOLOGIAS
A AUML (Agent UML) sintetiza alguns elementos importantes de uma metodologia
baseada em agentes. A comunidade de pesquisa e desenvolvimento de agente está interessada
em métodos e ferramentas representacionais para apoiar os softwares desenvolvidos com a
utilização de agentes. Este tema pode ser consultado em Burmeister (1996), Iglesias (1998),
Garijo (1999), Parunak (1998), Kinny (1996a), Kinny (1996b), Bryson (1998), Martin e Odell
(1998); Nodline et al. (1998); Wooldridge et al., (2000). Vários grupos têm divulgado
metodologias para projetar agentes, baseados sempre em mecanismos representacionais. O
paralelo que é realizado entre as metodologias de projeto para agentes e para objetos é
compartilhado por vários autores, por exemplo, Burmeister (1996), Bryson (1998). A
metodologia aplicada por Wooldridge et al. (2000) inclui recomendações específicas para
35
especificações que sustentam o resumo de um protocolo de alto nível, como uma unidade
atômica, uma especificação é refletida nesta metodologia. O programa em andamento na
Universidade Livre de Amsterdã em metodologias composicionais para requisitos Herlea
(1999), projeto Brazier (1998), e verificação Jonker (1997) usa representações gráficas com
vínculos fortes para diagramas de colaboração da UML. A discussão da composição de
protocolos é antecipada no trabalho de Burmeister et al. (1993). Os gráficos de Dooley
facilitam a identificação de um agente desempenhando um papel específico Parunak (1996),
Singh (1998a).
Esta larga atividade é um sinal saudável de que sistemas baseados em agentes estão
tendo uma evolução significativa. Esta demanda por metodologias e softwares reflete a
importância industrial crescente desta tecnologia. O objetivo não é competir com quaisquer
destes esforços, mas estender e aplicar um formalismo de modelagem extensamente aceito e
representacional.
3.1.1 UML
Durante os anos setenta, a programação estruturada era a abordagem dominante para
desenvolvimento de software. Junto com isto, tecnologias de engenharia de software eram
desenvolvidas a fim de aliviar e formalizar o desenvolvimento de sistemas conforme um ciclo
de vida definido: planejamento, análise e projeto, e finalmente a construção de um sistema,
teste e manutenção. Na década de oitenta, as linguagens orientadas a objetos surgiram,
trazendo com elas novos conceitos, como encapsulamento de dados, herança, mensagens,
polimorfismo e outros. Ao final dos anos oitenta e início dos anos noventa, uma grande
quantidade de abordagens de modelagem surgiu e passou a sustentar a esfera comercial de
softwares orientados a objetos. Para unificar estas várias abordagens, uma força tarefa de
Análise e Projeto era estabelecida em 29 de junho 1995 dentro do OMG. Por volta de
novembro de 1997, um padrão era adotado pela OMG, chamada pelos seus membros de
Linguagem de Modelagem Unificada (UML).
A UML unifica e formaliza os métodos de muitas abordagens para o ciclo de vida de
desenvolvimento de software orientado a objetos, inclusive para Booch, Rumbaugh (OMT),
Jacobson e (ODELL, 1999; BAUER, 1999). A UML suporta os seguintes tipos de modelos:
36
Diagramas Estruturais: existem para visualizar, especificar, construir e documentar os
aspectos estáticos de um sistema. Considerem-se os aspectos estáticos como uma
representação de seu esqueleto relativamente estáveis. Assim como os aspectos estáticos de
uma casa incluem a existência e a colocação de itens como paredes, portas, janelas, canos,
fios e outros, também os aspectos estáticos de um sistema de software abrangem a existência
e a colocação de itens como classes, interfaces, colaborações, componentes e nós. Os
diagramas estáticos da UML são organizados em função dos principais grupos de itens
encontrados na modelagem de um sistema.
1. Diagrama de classe: mostra um conjunto de classes, interfaces e colaborações e seus
relacionamentos. Os diagramas de classes são os diagramas mais encontrados em sistema
de orientação a objetos;
2. Diagrama de objetos: mostra um conjunto de Objetos e seus relacionamentos. Usa-se este
diagrama para ilustrar as estruturas de dados, registros estáticos de instâncias dos itens
encontrados no diagrama de classes;
3. Diagrama de componentes: mostra um conjunto de componentes e seus relacionamentos.
Usa-se este diagrama para representar a visão estática da implementação de um sistema;
4. Diagrama de implantação: mostra um conjunto de nós e seus relacionamentos. Usa-se
este diagrama para ilustrar a visão estática da implantação de uma arquitetura
(RUMBAUGH; JACOBSON; BOOCK, 1999).
Diagramas Comportamentais: Os cinco diagramas comportamentais da UML são utilizados
para visualizar, especificar, construir e documentar os aspectos dinâmicos de um sistema.
Considerem-se os aspectos dinâmicos de um sistema como uma representação de suas partes
que sofrem alterações. Assim como os aspectos dinâmicos de uma casa abrangem a circulação
de ar e a passagem de pessoas pelos cômodos da casa, também os aspectos dinâmicos de um
sistema de software envolvem itens como o fluxo de mensagens ao longo do tempo e a
movimentação física de componentes em uma rede. Os diagramas comportamentais são
basicamente organizados a partir das principais maneiras disponíveis para se fazer a
modelagem da dinâmica de um sistema.
1. Diagrama de caso de uso: mostra um conjunto de casos de uso, atores e seus
relacionamentos. Aplica-se este diagrama para ilustrar a visão estática do caso de uso de
um sistema;
2. Diagrama de seqüência: é um diagrama de interação que dá ênfase à ordenação temporal
das mensagens. Um diagrama de seqüência mostra o conjunto de objetos e as mensagens
enviadas e recebidas por estes objetos.
37
3. Diagrama de colaboração: é um diagrama de interação que dá ênfase à organização
estrutural dos objetos que enviam e recebem mensagem. Um diagrama de colaboração
mostra um conjunto de objetos, as ligações existentes entre estes objetos e as mensagens
enviadas e recebidas pelos objetos.
4. Diagrama de Estados: mostra uma máquina de estados, que consiste de estados,
transições, eventos e atividades. Usa-se o diagrama de estados para ilustrar a visão
dinâmica de um sistema.
5. Diagrama de atividades: mostra o fluxo de uma atividade para outra em um objeto. Um
diagrama de atividade mostra um conjunto de atividades, o fluxo seqüencial ou ramificado
de uma atividade para outra e os objetos que realizam ou sofrem ações (RUMBAUGH;
JACOBSON; BOOCK, 1999).
A proposta aqui é uma extensão baseada em UML para representar agentes com os
seguintes produtos: pacotes, templates, diagrama de seqüência, diagramas de colaboração,
diagramas de atividade e diagrama de estados (BRAZIER, 1998; HERLEA, 1999; JONKER,
1997; KINNY, 1996A; KINNY, 1996B; WOOLDRIDGE et al., 2000).
3.1.2 AUML
Comparados à abordagem tradicional de objetos, agentes são autônomos e interativos.
Baseados em estados internos, suas atividades incluem planos e condições que guiam à
execução de tarefas definidas. Enquanto as necessidades dos objetos são atendidas pelos seus
métodos, os agentes percebem as condições e planejam suas ações, tratando suas necessidades
com maior responsabilidade. Além disso, agentes podem agir só e com outros agentes. Os
sistemas multi-agente podem se assemelhar a uma comunidade social de membros
interdependentes que agem individualmente. Porém, ainda não existe nenhum formalismo
para especificar o desenvolvimento deste tipo de sistema. Para empregar a programação
baseada em agente, deve haver uma técnica de especificação que sustente o processo de
engenharia de software inteiro, desde o planejamento, análise, projeto, construção,
implantação e manutenção. A FIPA e o OMG Agent Work Group estão explorando o uso e
recomendando extensões da UML (BAUER, 1999; ODELL, 1999). Depke et al. (2000)
discute transformações de gráficos e papéis em uma base para modelagem UML de agente.
38
Nesta proposta, a UML pode ser usada como um Protocolo de Interação de Agente (AIP),
como mostra a Figura 9.
Este subconjunto foi escolhido porque protocolos de interação são complexos o
suficiente para ilustrar o uso de AUML. Os protocolos de interação de agente são um bom
exemplo de padrões de software em um contexto prático. Uma especificação de um protocolo
de interação de agente provê um exemplo ou analogia para resolução de problemas em análise
de sistema e projeto. A AUML é uma técnica para especificação de protocolo de interação de
agente com a semântica formal e intuitiva e uma anotação gráfica. A semântica permite uma
definição precisa, que também é utilizável no processo de engenharia de software. A anotação
gráfica provê uma linguagem comum para comunicação de protocolo de interação de agente.
Um protocolo de interação de agente descreve um padrão de comunicação como uma
seqüência permitida de mensagens entre agentes e as restrições no conteúdo destas mensagens
(ODELL, 1999).
Figura 9: Protocolo de Interação de Agente, mostrando as interações para o protocolo Contract Net.
Fonte: Odell (1999).
A Figura 9 mostra um protocolo expresso como em diagrama de seqüência AUML
para o Contract Net Protocol. Quando invocado, um agente Iniciador envia a proposta para
um agente que está disposto a participar e prover uma proposta. O agente Participante pode
então escolher o que responder para o Iniciador antes de um prazo final: recusando,
submetendo uma proposta, ou indicando que não entendeu. (O símbolo de diamante indica
uma decisão que pode resultar em zero ou mais comunicações). O “x” dentro do diamante
39
indica que deverá existir apenas uma resposta. Se uma proposta é oferecida, o Iniciador tem a
escolha de aceitar ou rejeitar a proposta. Quando o Participante receber uma aceitação de
proposta, informará o Iniciador sobre a execução da proposta. Adicionalmente, o Iniciador
pode cancelar a execução da proposta em qualquer hora.
A Figura 9 também expressa mais dois conceitos representados no nível superior do
quadro. Primeiro, o protocolo como um todo é tratado como uma entidade. A pasta de
anotação na parte superior indica que o protocolo é um pacote, uma agregação conceitual de
interação. Segundo, o pacote protocolo pode ser tratado como um padrão que pode ser
customizado para domínios de problemas análogos. A caixa no canto superior direito expressa
este padrão como uma especificação de template que identifica as entidades dentro do pacote
que precisam estar descritas quando o template estiver sendo instanciado. Em UML, o
protocolo de interação de agente serve como pacote e template. Um template é um módulo
parametrizado que pode ser instanciado por outro produto em uma outra relação de tempo. Na
Figura 9, a caixa pontilhada no lado superior direito indica que o pacote é um template. Os
parâmetros desconectados na caixa são divididos pelas linhas horizontais em três categorias:
parâmetros de papel, restrições e atos de comunicação.
3.2 UTILIZAÇÃO DE PADRÕES – NÍVEL 1
Padrões são idéias reaproveitadas em um contexto prático e que podem provavelmente
ser utilizadas em outros. Como tal, fornecem exemplos ou analogias que podem ser usadas
como soluções para problemas em análise de sistema e projeto. Protocolos de interação agente
são, então, projetados como soluções reutilizáveis que podem ser aplicadas aos vários tipos de
seqüência de mensagem que são encontradas entre os agentes. Existem duas técnicas de UML
que melhor expressam as soluções de reuso: Pacotes e Templates (RUMBAUGH;
JACOBSON; BOOCK, 1999).
40
3.2.1 Pacotes
Protocolos de interação são padrões. A UML descreve dois modos de expressar
agregação, que para a orientação a objetos, estrutura o comportamento dos objetos:
Componentes e Pacotes. Os componentes são agregações físicas que compõem classes para
propósitos de implementação. Pacotes são elementos da modelagem que agregam conjuntos
conceituais. Aqui, classes podem estar conceitualmente agrupadas para qualquer propósito
arbitrário.
Protocolos de interação agente podem ser classificados como padrões e tornam-se
módulos reutilizáveis.
Protocolos de interação são padrões. A UML descreve dois modos de expressar
agregação, que para a orientação a objetos, estrutura o comportamento dos objetos:
Componentes e Pacotes. Os componentes são agregações físicas que compõem classes para
propósitos de implementação. Pacotes são elementos da modelagem que agregam conjuntos
conceituais. Aqui, classes podem estar conceitualmente agrupadas para qualquer propósito
arbitrário.
Protocolos de interação agente podem ser classificados como padrões e tornam-se
módulos reutilizáveis.
Figura 10: Exemplo de um diagrama de pacotes.
Fonte: Elaborada pelo autor (2007).
41
3.2.2 Templates
Templates são padrões utilizados em situações práticas, onde algumas características
do padrão são especificadas para determinado caso concreto. Por exemplo, na figura 11 o
padrão de interação definido pelo protocolo Contract net é especializado para uma função do
sistema multi-agente utilizado nesse trabalho.
Figura 11: Exemplo da especificação de um template
Fonte: Elaborada pelo autor (2007).
3.3 INTERAÇÕES ENTRE AGENTES – NÍVEL 2
Os modelos dinâmicos da UML são úteis para expressar interações de agentes. Os
diagramas de interação capturam os padrões estruturais de interações de objetos. Os
diagramas de seqüência e os diagramas de colaboração fazem parte do modelo dinâmico. Os
dois diagramas contêm as mesmas informações. O plano gráfico do diagrama de seqüência
enfatiza a seqüência cronológica de comunicações, enquanto o plano gráfico do diagrama de
42
colaboração enfatiza as associações entre os agentes. Os diagramas de atividade e de estado
capturam o fluxo de processo na comunidade de agente.
3.3.1 Diagramas de Seqüência
O diagrama de seqüência definido para a AUML apresenta algumas evoluções com
relação ao diagrama definido pela UML (para uma discussão mais detalhada de diagramas de
seqüência, veja Rumbaugh; Jacobson, Boock (1999). Nesta seção, serão discutidas estas
extensões possíveis para UML, que também podem modelar protocolos de interação de
agente. A Figura 12 mostra alguns elementos básicos para comunicação de agente. O
retângulo pode expressar agentes individuais ou fixar papéis e classes de agentes. Por
exemplo, um agente individual poderia ser denominado como Bob/Cliente. Aqui, Bob é uma
instância de agente que representa o papel do cliente. Bob poderia também representar o papel
de provedor, empregado e proprietário. Para indicar que Bob é uma Pessoa (independente de
qualquer papel que ele tenha), Bob poderia ser expresso como Bob:Pessoa. O formato básico
para a etiqueta é nomedoagente/papel:classe. Então, podem-se expressar todas as várias
situações para Bob, como Bob/Cliente:Pessoa e Bob/Empregado:Pessoa.
A caixa retangular também pode indicar um conjunto geral de agentes desempenhando
um papel específico. Aqui, apenas a palavra cliente ou provedor apareceriam. Para especificar
que o papel é para ser protagonizado por uma classe específica de agente, o nome de classe
seria anexada (por exemplo, Empregado:Pessoa). Em outras palavras, o nomedoagente/papel:
classe é a sintaxe usada para especificar o nome do agente individual.
A sintaxe nomedoagente/papel:classe já é herdada da UML (a sintaxe da UML indica
um nome de objeto em vez de um agente). A Figura 12 estende a UML, denominando a seta
com um ato de comunicação agente (CA), em vez de uma mensagem.
43
Figura 12: Formato básico para comunicação de agente.
Fonte: Elaborada pelo autor (2007).
Outra recomendação que a extensão UML sustenta são as linhas simultâneas de
interação. A Figura 13 mostra três modos de expressar linhas múltiplas. A Figura 13(a) indica
que todas as linhas CA-1 para CA-n são concorrentemente enviadas. Na Figura 13(b) foi
incluída uma caixa de decisão indicando que deverá haver uma decisão antes do envio das
CA’s, zero ou mais, neste caso. Se mais de uma CA é enviada, a comunicação é simultânea. A
Figura 13(c) indica um “ou” exclusivo, de forma que exatamente uma CA será enviada. Desta
forma, a Figura 13(a) indica um “e” na comunicação.
Figura 13: Transmissão simultânea de mensagens.
Fonte: Elaborada pelo autor (2007).
A Figura 14 ilustra uma maneira de usar as linhas simultâneas de interação mostradas
na Figura 13. As Figuras 14(a) e (b) retratam dois modos de expressar linhas simultâneas, do
agente-1 até o agente-2. As múltiplas barras verticais indicam que o agente receptor é um
processo com várias linhas de comunicação concorrente. As barras de ativação da Figura
14(a) são exibidas em paralelo. Na Figura 14(b), as barras de ativação aparecem uma em cima
da outra. Algumas observações podem ser notadas sobre estas duas variações (BAUER, 1999;
ODELL, 1999):
44
O significado semântico é equivalente; a escolha é baseada em facilidade e clareza de
aparência visual.
Cada barra de ativação pode indicar que o agente está usando um papel diferente ou que
meramente está empregando uma linha de processo diferente para sustentar o ato da
comunicação. Se o agente está usando um papel diferente, a barra de ativação pode ser
apropriadamente anotada. Por exemplo, na figura 14(a) e (b), CA-n é manipulada pelo
agente debaixo de seu papel-1.
Estas figuras indicam que um único agente possui múltiplos processos de CA’s
concorrentemente. Porém, as CA’s simultâneas poderiam ser enviadas para agentes diferentes,
por exemplo, CA-1 para agente-2, CA-2 para agente-3, e assim por diante. Tal
comportamento de protocolo já está sustentado pela UML; a anotação na Figura 13, por outro
lado, é uma extensão recomendada para UML (para tratamento mais detalhado destas
extensões para a UML para diagrama de seqüência, veja Bauer (1999)).
Figura 14: Múltiplas técnicas para representar comunicação simultânea entre agentes, utilizando múltiplos papéis.
Fonte: Elaborada pelo autor (2007).
45
3.3.2 Diagramas de Colaboração
A Figura 15 é um exemplo de um diagrama de colaboração. Uma das distinções
primárias do diagrama de colaboração é que os agentes (os retângulos) podem ser dispostos
em qualquer lugar no diagrama; considerando que, em um diagrama de seqüência, os agentes
são colocados em uma camada horizontal na parte superior do diagrama. Semanticamente,
eles são quase equivalentes; graficamente eles são semelhantes. A experiência mostra que no
modelo baseado em agente ambos os diagramas são úteis.
A Figura 15 ilustra um exemplo de diagrama de colaboração.
Figura 15: Um exemplo de um diagrama de colaboração mostrando uma
interação entre agentes com papéis múltiplos.
Fonte: Elaborada pelo autor (2007).
A intuição na terminologia é que um caráter é um agente específico desempenhando
um papel específico. O papel é uma abstração acima de vários personagens com padrões
semelhantes de interação. Inversamente, cada nó é um agente em um papel específico, onde o
"papel" é definido estreitamente.
Em se tendo um papel preciso ou uma definição de papéis, é possível construir um
diagrama de colaboração que tem conteúdo semântico como um gráfico de Dooley. Na Figura
16 é ilustrada uma representação baseada em uma seqüência. O diagrama de seqüência é uma
forma de representação utilizada para explicitar a seqüência das operações, como já foi
mencionado, de certa forma a seqüência estabelecida em uma determinada situação necessita
da participação de vários agentes, o que caracteriza uma colaboração entre eles.
46
Figura 16: Diagrama de seqüência.
Fonte: Elaborada pelo autor (2007).
3.3.3 Diagramas de atividades
Os protocolos de interação agente podem, às vezes, exigir especificações muito claras
sobre semântica do processo. O diagrama de atividade expressa operações e eventos que os
ativam (para um tratamento mais detalhado, veja descrição do Odell de diagramas de
atividade em Martin e Odell, (1998)). O exemplo na Figura 17 mostra um conjunto de
atividades. O diagrama de atividades difere de diagramas de interação porque provê uma linha
explícita de controle. Isto é particularmente útil para protocolos de interação complexos que
envolvem processos simultâneos.
Os diagramas de atividade são semelhantes em redes de natureza Petri de vários
modos. Primeiro, diagramas de atividade provêm uma representação gráfica que possibilita a
visualização de processos simples, facilitando assim o projeto e comunicação dos modelos.
Diagramas de atividade podem representar processos simultâneos assíncronos. Finalmente,
47
eles podem expressar comunicações simultâneas com vários correspondentes. A diferença
primária entre as duas abordagens é aquela em que os diagramas de atividade são
formalmente baseados e estendidos na máquina de estados modelada pela UML
(RUMBAUGH; JACOBSON; BOOCK, 1999). Na formalização de BRIC, Ferber (1999)
estende redes de Petri para sistemas baseados em agentes. Esta proposta estende diagramas de
atividade de UML para o mesmo propósito.
Figura 17: Um diagrama de atividade baseado em um caso de uso do sistema de monitoração
Fonte: Elaborada pelo autor (2007).
3.3.4 Diagrama de Estados
Outro processo relacionado a diagramas da UML é o diagrama de estados. Um
diagrama de estados é um gráfico que representa uma máquina de estados. Os estados são
representados como retângulos com cantos arredondados, enquanto transições estão
geralmente representadas por arcos orientados que interconectam os estados. A Figura 18
mostra um exemplo de um diagrama de estados.
48
O diagrama de estados não é comumente usado para expressar protocolo de interação
porque é uma visão centrada no estado, em lugar de uma visão centrada no agente ou
processo. A visão centrada no agente retratada por diagramas de interação enfatiza o primeiro
e o segundo agente da interação. A visão centrada no processo enfatiza o fluxo do processo
(por agente). A visão centrada no estado enfatiza os estados permissíveis mais proeminentes
que o processo de transição de agente.
Figura 18: Um diagrama de estados indicando os estados e transições de uma conta corrente
Fonte: Elaborada pelo autor (2007).
3.4 REPRESENTAÇÃO DE PROCESSOS INTERNOS DE AGENTES – NÍVEL 3
No nível mais baixo da especificação de um protocolo de agente exige-se que um
processo que acontece dentro de um agente seja detalhado a fim de implementar o protocolo.
O comportamento interno de um agente pode, deste modo, ser descrito usando quaisquer
representações do Nível 2. Além de que diagramas de atividade e estados também podem
especificar o processo interno de agentes, como é ilustrado anteriormente.
3.4.1 Diagramas de atividade
A Figura 19 mostra o processo detalhado que acontece dentro de um agente unidade
móvel. Aqui, um diagrama de seqüência indicou que o processo do agente é ativado por uma
CA e finalizado com um atendimento concluído. O processo interno pela unidade móvel é
49
expresso como um diagrama de atividade, onde a unidade móvel analisa a viabilidade de um
atendimento, realiza o atendimento, encaminha a vítima, entrega a vítima e encerra o
atendimento. As caixas de operação destacadas e indicadas na linha mais abaixo representam
interfaces para os processos executados por agentes externos – como também é ilustrado no
diagrama de seqüência. Por exemplo, o diagrama indica isto quando a unidade móvel está
prestes a realizar um atendimento. Ambos, solicitar orientações e necessidades da vítima são
ações ativadas simultaneamente.
Figura 19: Um diagrama de atividade que especifica e ordena o comportamento do processo para um agente.
Fonte: Elaborada pelo autor (2007).
3.4.2 Diagramas de estado
O processo interno de um agente único também pode ser expresso como diagrama de
estado. A Figura 20 mostra os estados e transições internas da unidade móvel. Este uso do
diagrama de estados da UML dentro do agente sustenta a noção do Singh de esqueletos de
agente Singh (1998b).
50
Figura 20: Diagrama de estados que especifica processo interno do agente unidade móvel.
Fonte: Elaborada pelo autor (2007).
51
4 AMBIENTE PARA DESENVOLVIMENTO DE AGENTES (JADE)
4.1 INTRODUÇÃO
Este capítulo dará uma visão geral da plataforma JADE utilizada neste trabalho,
mostrando sua arquitetura, principais funcionalidades e o modelo conceitual explorado. Os
dois principais aspectos do modelo conceitual são apresentados: a topologia de sistemas
distribuídos com redes ponto-a-ponto, e a arquitetura de componentes de software no paradigma
de agentes. A topologia de rede afeta a maneira como os componentes conversam, enquanto a
arquitetura de componentes especifica o que os componentes devem esperar um dos outros. A
relevância de padrões para a interoperabilidade de softwares, e em particular a harmonização
com o padrão FIPA (Foundation for intelligent physical agents), também é abordada.
4.2 JADE EM TERMOS GERAIS
Jade é uma tecnologia habilitadora, um middleware para o desenvolvimento e
execução de aplicações ponto-a-ponto que são baseadas em agentes e que pode trabalhar e
operar em ambientes com fio e sem fio. Jade é uma tecnologia de uso livre desenvolvida e
distribuída pela Telecom Itália.
4.3 REFERÊNCIAS TECNOLÓGICAS
4.3.1 O modelo ponto-a-ponto
O modelo cliente/servidor é uma referência, bem conhecido e usado em aplicações
distribuídas. O modelo é baseado em uma rígida distinção dos papéis entre os nós clientes e o
nó servidores. O nó servidor fornece os serviços, as capacidades do sistema distribuído, mas
não é capaz de tomar qualquer iniciativa. É totalmente reativo e pode apenas esperar para ser
invocado pelos nós clientes. Nós clientes, opostamente, concentram toda a iniciativa do
sistema: eles acessam e usam os serviços, mas nunca fornecem nenhum tipo de
funcionalidade.
Clientes podem aparecer e desaparecer a qualquer tempo e geralmente possuem
endereços dinâmicos, enquanto servidores tipicamente devem ter uma certa estabilidade e por
isso possuem geralmente endereços fixos, estáticos. Clientes se comunicam com servidores,
52
mas não se comunicam com outros clientes. De outra forma, servidores não podem se
comunicar com clientes, a não ser que estes últimos iniciem a comunicação.
A web é um exemplo típico de uma aplicação cliente/servidor. Os servidores são os
portais, que armazenam toda a aplicação e funcionalidades e os usuários em suas máquinas
pessoais são os clientes.
Entretanto, uma larga família de aplicações distribuídas não se adapta a este modelo e
é ai que entra o modelo ponto-a-ponto. Por exemplo, uma aplicação de chat, assim como uma
aplicação de compartilhamento de arquivos, requer que os nós da rede possuam certas
capacidades de comunicação uns com os outros. Mesmo que nesses casos seja possível
utilizar a arquitetura cliente/servidor, muitas vantagens acerca de praticas de software e
arquiteturas seriam perdidas.
No modelo ponto-a-ponto não há qualquer distinção de papeis e cada ponto tem
capacidades de iniciativa e de prestação de serviços. Cada ponto pode iniciar uma
comunicação, ser sujeito ou objeto de um pedido, ser proativo, fornecer capacidades. A lógica
da aplicação não é mais concentrada em um único ponto (servidor), mas distribuída entre os
pontos da rede. Cada nó é capaz de descobrir outros nós e entrar e sair da rede a qualquer
tempo.
Uma importante conseqüência da diferença entre os dois modelos é a maneira como os
nós são descobertos. No sistema cliente/servidor os clientes devem conhecer o servidor, mas
não precisam saber da existência de outros clientes, pelo menos diretamente. Em sistemas P2P
(peer-to-peer ou ponto-a-ponto) é imperativo que os nós se conheçam diretamente, que
estejam cientes de suas capacidades e funcionalidades. No sentido de implementar esse
conhecimento entre os pontos de uma rede, existem dois modelos básicos de P2P: o modelo
puro (figura 21) e o modelo híbrido (figura 21).
53
Figura 21: Modelos de sistemas ponto-a-ponto.
Fonte: Elaborada pelo autor (2007).
Uma rede P2P pura é totalmente descentralizada e os pontos completamente
autônomos. A inexistência de um nó de referencia (servidor) torna difícil manter a coerência
da rede e a descoberta dos pontos, com uma complexidade e largura de banda que crescem
exponencialmente com o número de nós.
A arquitetura híbrida, ao contrário, é baseada em um nó especial que fornece um
serviço que simplifica o conhecimento entre os nós e a descoberta dos nós ativos da rede e
suas funcionalidades. Estes tipos de rede, usualmente, geram menos trafico e são mais
seguros, na medida em que requerem o registro e autenticação dos pontos. Entretanto, o
funcionamento desta arquitetura depende da disponibilidade de um ponto central, que pode
sofrer ataques e gerar falhas.
4.3.2 O paradigma de agentes
O paradigma de agentes aplica conceitos de inteligência artificial e teoria de ações de
fala à tecnologia de objetos distribuídos. O paradigma é baseado na abstração de agentes, um
componente de software que é autônomo, proativo e social.
Autônomo: agentes possuem um grau de controle sobre suas próprias ações, eles possuem
suas linhas de controle, e em algumas circunstancias podem até tomar decisões.
Proativo: agentes não apenas reagem a em resposta a eventos externos, eles também
podem exibir um comportamento direcionado a objetivos e, quando apropriado, tomam
iniciativa deste comportamento.
54
Social: agentes são capazes e têm necessidade de interagir com outros agentes de forma a
realizar suas tarefas e atingir os objetivos globais do sistema.
Sistemas baseados em agentes são intrinsecamente ponto-a-ponto. Cada agente é um
ponto que necessita potencialmente iniciar uma comunicação com outro agente, assim como pode
fornecer serviços aos demais agentes da rede. O papel da comunicação é muito importante em um
sistema baseado em agentes, e o seu modelo é baseado em três características principais:
1. agentes são entidades ativas, eles podem dizer “não”, e são fracamente acoplados, quer
dizer, bastante independentes. Estas características são a base do modelo de comunicação
assíncrona existente entre os agentes que é totalmente diferente do modelo de chamada de
procedimento remoto utilizado na maioria das aplicações. Um agente querendo se
comunicar com outro, deve apenas enviar uma mensagem a um certo destino. Neste
modelo o agente receptor tem a faculdade de selecionar as mensagens que deseja receber e
servir, assim como a ordem em que elas serão analisadas. O agente que enviou é tão
independente que não precisa esperar que a mensagem seja recebida, uma vez que ela
pode até não ser recebida, para continuar seu processamento. Caso a sua requisição não
seja atendida, ele não fica bloqueado, simplesmente tenta obter ajuda de outro agente da
rede. Outra situação oriunda desta independência ocorre quando verifica-se que o agente
que envia uma requisição não tem noção se o agente de destino está ou não na rede. Pode
acontecer de não estar ou de simplesmente não estar disponível naquele momento.
2. As ações de comunicação dos agentes são vistas como uma espécie do gênero ação.
Realizar ações comunicativas no mesmo nível que ações em geral permite que um agente,
por exemplo, elabore um plano que inclua tanto ações físicas (ex. dobrar a direita) quanto
ações comunicativas (ex. pedir para abrir a porta). De forma a fazer a comunicação como
algo planejável, efeitos e pré-condições de cada possível comunicação precisam ser
claramente definidos.
3. Ações comunicativas carregam um significado semântico. Quando um agente é o objeto
de uma ação comunicativa (quando ele recebe uma mensagem), ele deve ser capaz de
entender propriamente o significado daquela ação e, em particular, porque ela foi
executada (a intenção do agente que enviou a mensagem). Esta propriedade traz a
necessidade de uma semântica universal e consequentemente de um padrão.
Inspirado pela visão que “agentes não passarão de um sonho se a interoperabilidade ponto-
a-ponto entre diferentes fabricantes não for preservada”, a TILAB (organização que concebeu o
JADE) promoveu a criação do FIPA, uma associação internacional de empresas e organizações
que compartilham o desejo de criar especificações padrão para a tecnologia de agentes.
55
Baseado no primeiro conjunto de especificações liberado em 1997, no final de 2002 a
FIPA finalmente liberou um conjunto de padrões. Este conjunto tinha como foco a
interoperabilidade e, por conseqüência, deu ênfase ao comportamento externo dos componentes
do sistema, deixando abertos os detalhes de implementação e a arquitetura interna.
O padrão FIPA adota completamente o paradigma de agentes e, em particular, define o
modelo de referencia de uma plataforma de agentes e um conjunto de serviços que deveriam
ser fornecidos. O conjunto desses serviços e suas interfaces padrão representam as regras
normativas que fazem com que uma sociedade de agentes exista, opere e seja gerenciada.
Uma vez que os agentes são sociais e precisam se comunicar, a linguagem de
comunicação de agentes é um dos principais itens do padrão FIPA. O FIPA ACL (Agentes
comunication language) é baseado na teoria de ações de fala e nas presunções e requisitos do
paradigma de agentes descrito acima. A FIPA padronizou uma biblioteca extensiva de 22
ações de comunicação que permitem a representação de diferentes intenções de comunicação
(como pedidos, propostas, informações, consultas, recusas, etc.). A FIPA também definiu a
estrutura de mensagens que permite representar informações úteis para identificar os agentes
que enviam e recebem mensagens, o conteúdo das mensagens e suas propriedades, e, em
particular, informações úteis para identificar e seguir linhas de conversação entre agentes.
Padrões comuns de conversação também foram definidos pela FIPA, os chamados protocolos
de interação que fornecem aos agentes bibliotecas de padrões para atingir tarefas comuns,
como delegar uma ação, promover uma proposta, etc. A figura 22 representa o modelo de
comunicação definido pela FIPA e os relacionamentos entre seus elementos.
Figura 22: Modelo de comunicação e relacionamentos
Fonte: Elaborada pelo autor (2007).
56
4.4 O JADE EM TERMOS ESPECÍFICOS
JADE é o middleware desenvolvido pela TILAB para o desenvolvimento de
aplicações multi-agentes distribuídas baseadas na arquitetura de comunicação ponto-a-ponto.
A inteligência, a iniciativa, as informações, os recursos e o controle podem ser totalmente
distribuídos em terminais móveis assim como em computadores em uma rede cabeada. O
ambiente pode evoluir dinamicamente com pontos, que no JADE são chamados agentes, que
aparecem e desaparecem no sistema de acordo com as necessidades de requisitos da aplicação
em questão. A comunicação entre os pontos, independentemente se eles estão sendo
executados em ambientes sem fio ou não, é completamente simétrica, sendo que cada ponto
pode desempenhar o papel de servidor e cliente. O JADE é totalmente desenvolvido em java e
é baseado nos seguintes princípios:
Interoperabilidade: o JADE foi projetado de acordo com os padrões FIPA,
consequentemente, os agentes JADE podem operar com outros agentes, uma vez que todos
entendem o padrão.
Uniformidade e Portabilidade: o JADE fornece um conjunto de API’s homogêneo que
é independente da rede e da versão do java. Resumindo, o JADE run-time fornece as mesmas
API’s para a plataforma J2EE, J2ME ou J2SE.
Facilidade de uso: a complexidade do JADE é escondida atrás de um simples e
intuitivo conjunto de API’s.
Uso dirigido: os programadores não precisam conhecer todas as funcionalidades do JADE,
mas sim apenas aquelas relacionadas a sua aplicação.
4.4.1 O modelo de arquitetura
O JADE inclui tanto as bibliotecas necessárias ao desenvolvimento de aplicações
baseadas em agentes, quanto o ambiente run-time que fornece os serviços básicos e que deve
estar ativo no dispositivo antes que os agentes possam ser executados. Cada instancia do run-
time JADE é chamada de container (uma vez que contém agentes). O conjunto de todos os
containers é chamado de plataforma e fornece uma camada homogênea que esconde dos
57
agentes (e por conseqüência dos programadores) a complexidade e a diversidade de aspectos
acerca de hardware, sistemas operacionais, máquina virtual, entre outros.
4.4.2 O modelo funcional
Do ponto de vista funcional, o JADE fornece os serviços básicos necessários para
distribuir aplicações ponto-a-ponto em ambientes fixos e móveis. O JADE permite que cada
agente descubra dinamicamente outros agentes e se comunique com eles. Do ponto de vista da
aplicação, cada agente é identificado por um único nome e fornece um conjunto de serviços.
Ele pode registrar e modificar os serviços registrados e/ou procurar por outros agentes que
fornecem outros serviços, pode controlar seu ciclo de vida e, em particular, se comunicar com
outros pontos (agentes).
Agentes se comunicam através da troca assíncrona de mensagens, um modelo de
comunicação, quase universalmente aceito, de comunicação distribuída e fracamente acoplada
entre entidades heterogêneas que não se conhecem. De forma a iniciar a comunicação, um
agente apenas envia uma mensagem para um determinado destino. Agentes são identificados
por um nome e, como conseqüência, não há qualquer dependência temporal entre os agentes
que estão se comunicando. O agente cliente e o receptor podem não estar disponíveis ao
mesmo tempo. O receptor pode inclusive não existir ou não ser conhecido pelo agente cliente,
que pode simplesmente requisitar um serviço e aqueles agentes que prestam esse serviço
poderão atendê-lo.
Nesse tipo de aplicação a segurança também é um aspecto primordial. Existem
mecanismos de autenticação e verificação de “direitos” associados aos agentes por parte da
plataforma. Quando se faz necessário, portanto, uma aplicação pode verificar a identidade de
um agente cliente e evitar que ações não permitidas sejam executadas (por exemplo, um
agente pode receber mensagens de um outro agente, mas não pode enviar mensagens a ele). A
estrutura das mensagens está de acordo com a linguagem ACL da FIPA e inclui campos como
variáveis indicando o contexto a que uma mensagem se refere, o timeout suportado, entre
outros.
Para facilitar a criação e a manipulação do conteúdo das mensagens, o JADE fornece
suporte para uma conversão automática entre o formato apropriado para a troca de conteúdo,
incluindo XML e RDF, e o formato apropriado ara a manipulação do conteúdo (objetos java).
58
Para aumentar a scalabilidade ou atender as restrições de ambientes com recursos
limitados, o JADE oferece a oportunidade de executar múltiplas tarefas paralelas dentro da
mesma linha de execução.
Em aplicações desktop, o JADE suporta mobilidade de código e de estado de
execução. Ou seja, um agente pode parar de executar em uma máquina, migrar para outra
máquina da rede (sem a necessidade de ter o código do agente presente na máquina destino), e
recomeçar sua execução exatamente de onde parou. Essa funcionalidade permite, por
exemplo, uma distribuição da carga computacional em tempo de execução de acordo com a
situação do ambiente, movendo agentes para máquinas que estão com pouca carga
computacional e liberando máquinas sobrecarregadas.
A plataforma também inclui um serviço de nomeação dos agentes e um serviços de
“páginas amarelas”, onde se pode consultar serviços e os agentes prestadores desses serviços.
Outra característica importantíssima consiste na disponibilidade de um conjunto de
ferramentas gráficas para depurar a aplicação, bem como gerenciar e monitorar fases do ciclo
de vida da aplicação. Através dessas ferramentas, é possível controlar remotamente os
agentes, mesmo que eles estejam sendo executados. Conversas entre agentes podem ser
simuladas, trocas de mensagens podem ser forjadas, tarefas podem ser monitoradas e o ciclo
de vida de um agente pode ser totalmente controlado.
59
5 DESENVOLVIMENTO DE UM SISTEMA BASEADO EM AGENTES PARA
MONITORAÇÃO E DETECÇÃO DE FALTAS EM UM GERADOR
5.1 INTRODUÇÃO
Este trabalho investigou experimentalmente o desempenho de técnicas de inteligência
computacional baseadas em Tecnologia de Agentes, com aplicação ao projeto e
implementação de sistemas inteligentes para monitoramento de hidrogeradores na Usina
Hidrelétrica de Tucuruí, no estado do Pará, a qual é operada pela ELETRONORTE.
Primeiramente foram desenvolvidos estudos de campo que possibilitaram o
levantamento dos requisitos do sistema desenvolvido, através de estudo do sistema
anteriormente implantado na unidade geradora de estudo e também a partir de entrevistas com
técnicos operadores do sistema. Na seqüência, a tecnologia de agentes foi aplicada para o
projeto e implementação modular do software do sistema inteligente de monitoramento. A
vantagem da implementação em módulos é que esta permite maior facilidade e flexibilidade
para desenvolver e atualizar o sistema de monitoramento, o que é uma necessidade constante
durante toda a vida útil do sistema.
Para a aquisição das grandezas monitoradas, foi desenvolvido um sistema distribuído
de aquisição de dados baseado em rede industrial em padrões PROFIBUS e MODBUS. As
grandezas selecionadas para monitoramento foram às temperaturas dos componentes do
armário de tiristores do sistema de excitação de campo da unidade geradora e a desgaste das
escovas em contato com os anéis coletores do enrolamento de campo da máquina síncrona.
Para a medição remota do desgaste das escovas, foi desenvolvido no projeto um novo
instrumento, o qual é baseado em tecnologia embarcada.
Neste capítulo será mostrada a arquitetura global do sistema de monitoração e
detecção de faltas e uma descrição mais detalhada acerca de todas as estruturas. O sistema é
composto de três subsistemas: aquisição primária, aquisição secundária e monitoração e
detecção. A arquitetura foi projetada de forma a manter o máximo de independência entre os
subsistemas, de forma a substituir qualquer um deles sem a necessidade de alteração nos
demais.
60
5.2 ARQUITETURA GLOBAL DO SISTEMA
Figura 23: Arquitetura global.
Fonte: Elaborada pelo autor (2007).
5.2.1 Aquisição primária
Nessa etapa a planta industrial apresenta a seguinte estrutura: 4 armários dentro da
máquina 1. são extraídas 4 temperaturas destes armários e mais uma variável relacionada à
máquina, um sinal que representa o desgaste nas escovas. Como sensores existem 4
termoresistências do tipo pt-100 (4 temperaturas) e um sistema completo baseado no
microcontrolador PIC para obter o sinal de desgaste das escovas. Dos sensores estes dados
vão para um CLP responsável pela coleta das medidas.
5.2.2 Aquisição secundária
Nessa etapa os dados são repassados do CLP para um sistema feito no Labview para
facilitar a aquisição dos dados, uma vez que o Labview possui inúmeras interfaces prontas
para aquisição de dados. Após isso, o aplicativo Labview fica a espera de uma requisição do
sistema multi-agente (SMA) para preparar os dados e envia-los. Esta comunicação entre
61
sistemas diferentes (Labview e SMA) só é permitida pelo uso da tecnologia de socket, onde as
duas aplicações compartilham uma porta e trocam informações por ela.
5.2.3 Monitoração e detecção
Nessa etapa os dados já estão no SMA e serão tratados por ele. As funções dos agentes
são detalhadas no próximo capítulo.
5.3 CARACTERÍSTICAS DO SISTEMA A SER MONITORADO: sistema de excitação de
campo da unidade hidrogeradora UGH1
As máquinas síncronas são usadas nas usinas hidroelétricas para a realização da
conversão da energia mecânica das turbinas em elétrica a ser suprida para o sistema, sendo
composta basicamente de um rotor, que é a parte girante da máquina, e por um estator, que é a
parte fixa. Para que seja induzida tensão alternada nos enrolamentos do estator é necessário
criar um campo magnético girante, o que é feito através de um eletro-imã formado pelo
enrolamento de campo localizado no rotor. Para produzir o campo magnético é necessário
suprir o enrolamento do rotor com uma corrente elétrica contínua de valor consideravelmente
elevado. Abaixo é ilustrada a unidade geradora objeto do estudo.
Figura 24: Unidade geradora UGH1, na Casa de Força da 1ª Etapa da UHE de Tucuruí.
Fonte: Elaborada pelo autor (2007).
62
O sistema de excitação de campo é formado pelos equipamentos responsáveis por
suprir a corrente contínua ao enrolamento de campo. Esse subsistema é de vital importância
para o funcionamento correto do gerador. Uma falha nesse importante subsistema pode não só
provocar a parada não programada da unidade geradora quanto a perda da estabilidade de
operação do sistema de geração.
5.3.1 Descrição dos subsistemas que compõem o sistema de excitação de campo, com
suas respectivas funções
O sistema de excitação de campo da unidade geradora UGH1, da UHE de Tucuruí, é
formado por um sistema redundante composto por quatro retificadores trifásicos ligados em
paralelo para alimentar o enrolamento de campo do gerador, conforme ilustrado no esquema
da figura 25. Cada ponte retificadora está montada em armário individual (figura 26(a)). Para
a retirada do calor que é produzido por efeito Joule, durante a condução dos tiristores (figura
26(b)), cada um dos armários possui um sistema próprio para retirada de calor, o qual é
composto de um ventilador exaustor (figura 26(c)), para forçar a circulação do ar através do
sistema, e de um trocador de calor (figura 26(d)), o qual retira o calor através da troca térmica
mediante circulação de água fria. O esquema completo, detalhando o subsistema presente em
um dos armários de tiristores (armário A), é ilustrado no diagrama esquemático apresentado
na figura 27.
Figura 25: Diagrama simplificado da ponte retificadora tiristorizada.
Fonte: Elaborada pelo autor (2007).
Ventilador
Ponte de Tiristores
Trocador de Calor
63
Figura 26(a) – Armários de Tiristores da ponte
retificadora. Fonte: Elaborada pelo autor (2007).
Figura 26(b) – Ventilador Exaustor do armário de Tiristores
da ponte retificadora A.
Fonte: Elaborada pelo autor (2007).
Figura 26 (c) – Detalhe da gaveta de tiristores de um
dos braços de condução da ponte retificadora A.
Fonte: Elaborada pelo autor (2007).
Figura 26 (d) – Sistema trocador de calor da ponte
retificadora A.
Fonte: Elaborada pelo autor (2007).
Tiristores da ponte retificadora montados em dissipadores em dissipadores de calor
Trocador de calor
Ventilador exaustor
64
Figura 27: Diagrama esquemático ilustrando o subsistema de retificação em um dos armários da ponte de
tiristores do sistema de excitação de campo.
Fonte: Elaborada pelo autor (2007).
A ponte retificadora trifásica completa, incluindo os quatro armários, é composta por
um total de 48 tiristores, sendo que cada armário possui um total 12 tiristores. Estes armários
estão ligados em configuração paralela e, cada um deles possui, em seu interior, um total de
seis braços, sendo que cada braço é formado por dois tiristores ligados em série. Cada seis
braços forma uma ponte retificadora individual, colocada em cada um dos respectivos
armários A, B, C e D. Como existem quatro armários retificadores, existe um total de 24
circuitos idênticos. Quando em funcionamento normal, os armários estão ligados em paralelo
e fornecem a potência de excitação para o enrolamento de campo do gerador, conforme
ilustrado no detalhe apresentado na figura 27.
Em caso de defeito no subsistema de em um armário de tiristores, este pode ser
retirado de serviço por meio de uma chave seccionadora, sendo que os outros três armários
restantes têm suas pontes retificadoras dimensionadas para, em conjunto, suprir a potência
demandada pelo circuito de campo do gerador. Cada dois tiristores (em cada braço) estão em
série com um fusível de ação rápida, o qual protege os tiristores contra sobrecorrente. Este
fusível possui um micro-contato o qual opera quando o fusível abre, fornecendo um sinal
lógico utilizando para indicar alarme da ocorrência. Existe também, em cada tiristor, um
termostato que opera quando a temperatura no tiristor for superior a 80°C. A operação deste
termostato causa o imediato bloqueio dos pulsos de comando dos tiristores do respectivo
armário.
65
Com o funcionamento normal do sistema de excitação, os tiristores produzem energia
térmica que precisa ser removida para evitar o seu superaquecimento. A remoção deste calor é
feita através de um ventilador helicoidal que direciona um fluxo de ar de baixo para cima
(conforme ilustrado na figura 27). Ao passar pela ponte de tiristores, o ar absorve parte da
energia térmica produzida nos tiristores. Em seguida, o ar chega ao teto do armário e, não
tendo por onde escapar, pois o armário é totalmente fechado, desce pelas laterais e circula
pela parte inferior do radiador do trocador de calor. Após isso, já agora no sentido ascendente,
o ar é sugado pelo ventilador. Este processo é chamado de convecção. O trocador de calor
possui uma serpentina onde circula a água fria responsável por retirar o calor do ar quente
vindo dos tiristores.
A etapa final do processo de alimentação do circuito de campo da unidade geradora
consiste em aplicar a corrente continua, produzida pela ponte retificadora dos armários do
sistema de excitação, ao enrolamento de campo da unidade, o qual fica localizado no rotor da
máquina. Isto é feito por meio de contatos elétricos entre um conjunto de escovas, localizada
na parte fixa da máquina, que faz contato elétrico com um conjunto de anéis deslizantes, os
quais giram com a mesma velocidade angular do rotor e estão eletricamente ligados
diretamente aos terminais do enrolamento de campo do gerador (figura 28).
Figura 28: Sistemas de Escovas e de Anéis deslizantes, para aplicação da corrente produzida pela ponte
retificadora ao enrolamento de campo da máquina síncrona. Fonte: Elaborada pelo autor (2007).
Escovas
(fixas)
Anéis deslizantes (girantes)
66
5.3.2 Sistema de alarmes e de tratamento de defeitos em cada armário da ponte de
titistores
O tratamento dos defeitos nos armários de retificação é realizado localmente, em cada
armário, e a nível de reagrupamento nos painéis do comando do gerador, através de bornes de
saída nos armários de retificação. Cada armário possui um conjunto de lâmpadas de
sinalização e botões de rearme de defeito e de teste de lâmpadas. Os defeitos (faltas) na ponte
retificadora e subsistema de arrefecimento dos tiristores são sinalizados através de um painel
com lâmpadas sinalizadoras indicando uma mensagem associada ao defeito (figura 29). Cada
falta corresponde ao fechamento de um contato lógico que ativa a lâmpada sinalizadora do
respectivo alarme. Dentre as faltas sinalizadas estão: defeito no ventilador exaustor, falha de
condução ou de curto-circuito dos tiristores da ponte retificadora, temperatura dos tiristores
acima do limiar, e falta de circulação de água no sistema de trocador de calor.
Figura 29: Quadro de sinalização de defeitos em um dos armários da ponte retificadora.
Fonte: Elaborada pelo autor (2007).
Conforme é possível observar, o sistema de excitação de campo dos geradores da 1a
fase da UHE de Tucuruí é um sistema de elevado grau de complexidade, apresentando um
número considerável de subsistemas susceptíveis à falhas de natureza elétrica ou mecânica ou
térmica. Dessa forma, o número de variáveis passíveis de serem monitoradas pode se tornar
excessivamente grande. No entanto, observa-se que determinados subsistemas são muito mais
críticos ao funcionamento do sistema, pois uma falha em desses elementos implicaria na
necessidade de parada imediata da máquina, para evitar danos maiores aos equipamentos.
67
Dentre as grandezas cuja medição contínua é importante para o monitoramento do sistema
estão:
A temperatura do tiristores.
O fluxo do refrigerante, em cada armário.
Temperatura, valor RMS da corrente, e vibração do ventilador em cada armário.
As formas de ondas e pulsos dos circuitos de disparo.
O valor RMS das correntes nos tiristores.
O desgaste das escovas.
Foi observado, nos levantamentos de campo efetuados, a necessidade de medição das
grandezas, seu condicionamento local e a comunicação dos dados adquiridos até a sala de
controle da unidade geradora. Como o número de pontos de medição pode se tornar
consideravelmente grande, a solução de transmissão no padrão convencional de 4-20ma não é
indicada, pois isso implicaria em um número excessivo de fiação para comunicação dos
dados. Dessa forma, a solução adotada foi desenvolver um sistema remoto para medição
embarcada do desgaste das escovas, o qual se comunica com um computador na sala de
controle através de protocolo MODBUS e a implementação de um sistema de aquisição de
dados utilizando rede de barramento de campo (PROFIBUS), para a aquisição remota dos
dados das grandezas dos armários de tiristores da unidade geradora.
5.4 PROJETO E DESENVOLVIMENTO DO SISTEMA DE AQUISIÇÃO DE DADOS
O sistema de aquisição de dados é composto de sistema distribuído, composto de um
subsistema remoto, para medição das grandezas do armário e de um outro subsistema remoto,
destinado a medir o desgaste das escovas do gerador. Ambos se comunicam com um sistema
de monitoramento baseado em agentes inteligentes, que executa em um computador PC
industrial na sala de controle da unidade geradora. O sistema de medição das grandezas do
armário é composto de sensores e de um controlador, o sistema de monitoramento está
projetado de modo trocar informações com os demais sistemas da UHE.
68
5.4.1 Configuração e arquitetura do sistema de aquisição de dados e monitoramento
As variáveis importantes para aquisição são os valores das grandezas do armário de
tiristores, principalmente as temperaturas e sinais lógicos de alarme, além da medição do nível
do desgaste das escovas em contato com os anéis deslizantes no rotor do gerador. Para
aquisição dos sinais dos armários de tiristores, foi desenvolvido um sistema remoto baseado
em um contrador lógico programável (modelo Siemens S7-200, figura 30), que tem a função
de adquirir as medidas das grandezas nos armários de tiristores (figura 30). Os dados
adquiridos, são transmitidos remotamente para um computador do tipo PC industrial, que se
localiza na sala de controle da unidade geradora. No PC industrial é executado o software
para monitoramento baseado em agentes, desenvolvido neste projeto.
A comunicação entre o CLP de aquisição de dados e o PC industrial e realizada
através do padrão de barramento de campo Profibus DP. A distância entre o CLP e o
computador industrial é de aproximadamente 100 metros, enquanto que a distância
máxima dos sensores ao CLP é na faixa de 15 metros. A razão para a escolha do padrão,
para a transmissão das grandezas dos armários de tiristores, foi em razão da elevada taxa
de comunicação de dados permitida, facilitando a expansão futura do número de variáveis
a serem adquiridas, caso isso seja necessário. As medidas referentes ao desgaste das
escovas são realizadas através de sistema embarcado na cúpula do rotor da UHG1, o qual
foi desenvolvido no projeto para essa finalidade, e que se comunica com o PC industrial
no padrão de comunicação MODBUS sobre RS-485 (figura 31).
Figura 30: Sistema de aquisição dos sinais provenientes dos armários de tiristores.
Fonte: Elaborada pelo autor (2007).
69
Figura 31: Diagrama esquemático do sistema de aquisição de dados, incluindo a medição
remota do desgaste das escovas do gerador.
Fonte: Elaborada pelo autor (2007).
O computador PC industrial, na sala de controle, executa dois sistemas. Primeiramente
é executado em software no Labview(figura 32), o qual tem a função de receber os dados e
prepará-los para serem tratados no sistema multi-agente. A razão da escolha desse sistema foi
a facilidade com que o labview trabalha com aquisição e tratamento de dados e com a
comunicação com outras tecnologias. Abaixo é exibida a interface gráfica criada no sistema
em Labview para validar os dados de entrada.
Figura 32: Sistema de aquisição intermediária em Labview
Fonte: Elaborada pelo autor (2007).
70
Finalmente, têm-se o software desenvolvido no projeto para realizar o monitoramento
inteligente no sistema, o qual é baseado na tecnologia de agentes. O sistema de agentes possui
uma base de dados local e pode se comunicar via tecnologia de socket com o labview para ler
as grandezas monitoradas. A tecnologia de socket consiste em uma forma simples de comunicar
dois sistemas feitos em tecnologias diferentes. A tecnologia permite o compartilhamento e uma
determinada porta no computador, pela qual os sistemas heterogêneos escrevem e lêem. Desta
forma, o sistema em labview escreve os dados que chegam do CLP em uma determinada porta e
o sistema baseado em agentes lê e processa a informação.
Além disso, o sistema de monitoramento está projetado para se integrar, via rede local
intranet da UHE, com outros aplicativos executando nas salas da Engenharia e na Sala do
Sistema de Supervisão da UHE, permitindo assim a atualização das respectivas bases de
dados desses sistemas, incorporando a análise de tendências e histórico de eventos
disponibilizado pelo sistema baseado em agentes. A arquitetura do sistema de monitoramento
baseado em agentes será detalhado mais a frente.
5.5 DESENVOLVIMENTO E IMPLEMENTAÇÃO DO SOFTWARE DO SISTEMA DE
MONITORAMENTO BASEADO EM AGENTES
É no computador industrial que está presente o sistema para a detecção e o diagnóstico
de faltas. Ao receber os dados, o sistema os armazena em um banco de dados, função esta de
um dos agentes do sistema: o agente de banco de dados, que também é responsável por todas
as outras funções relacionadas ao banco de dados como leitura, escrita, alteração e exclusão
de dados. Um outro agente a exercer uma importante função no sistema é o agente de
aquisição de dados, o qual é responsável pelo tratamento dos dados armazenados no banco de
dados. Por isso, esse agente deve interagir com o agente de banco de dados.
Para os testes necessários ao desenvolvimento do sistema, implementou-se, em
laboratório, um arranjo composto por dois computadores PCs (figura 33). O primeiro
computador é usado para simular, em tempo real, o comportamento do sistema, gerando sinais
que simulam medidas remotas, as quais são enviadas ao computador de monitoramento
através da interface RS-232 ou de rede local, utilizando-se o formato do protocolo MODBUS
para o envio dos dados. O sistema de testes facilita o desenvolvimento do sistema de agentes,
permitindo simular defeitos que, embora prováveis, são de rara ocorrência na planta real.
71
Agente de Banco
de Dados
Agente de
Diagnóstico de
Faltas
Agente de
Aquisição de
Dados
Agente de
Processamento
de Sinais
MATLAB
Dinâmica do
Processo
Simular o
Processo
Dinâmico
DDE
C++ ou Java
Sistema Remoto
de Aquisição de
Dados
RS-232 RS-232
Computador Comum Computador Industrial
Rede
Computador da
EmpresaBanco de
Dados da Usina
Agente de
Interface de
UsuárioAgente de
Interface com
Sistema da ELNBanco de
Dados
MODBUS RTU
“CLP”
Aquisição de
Dados
Figura 33: Diagrama do Sistema para Testes.
Fonte: Elaborada pelo autor (2007).
5.6 ANÁLISE E PROJETO DO SISTEMA BASEADO EM AGENTES INTELIGENTES
5.6.1 Visão geral do Sistema
O operador se registrará ao sistema e selecionará qual a máquina a monitorar. O
operador então pode iniciar a análise e verificar as condições relacionadas diretamente à
máquina e seus armários de tiristores e condições do sistema de escovas. Caso queira um
nível de detalhe maior, o sistema de monitoramento disponibilizará visões mais detalhadas. O
operador poderá navegar em um nível de profundidade que julgar adequado para a análise.
Por exemplo, podem ser visualizados os Braços de Tiristores de um determinado armário da
ponte. Em todos estes cenários o operador especifica qual variável que deseja monitorar. As
possibilidades são: Temperatura no braço de determinado Tiristor, Tensão de junção do
Tiristor, Temperatura do armário, Condição de Vazamento do armário, Corrente de campo da
máquina e Tensão de campo da máquina. Os dados são recebidos e atualizados diretamente da
planta em um período de aproximadamente 1 segundo.
O Sistema continuamente atualiza sua base dados em relação as variáveis monitoradas.
Portanto sempre que alguma anomalia for detectada nesses dados, o sistema automaticamente
deve gerar uma notificação ao operador ou setor responsável, descrevendo em detalhes a falta
ocorrida, tempo de ocorrência do evento, o local específico de ocorrência, e sugestões de
possíveis causas e soluções.
72
O sistema continuamente atualiza sua base de dados em relação as variáveis
monitoradas e, além disso, faz análises acerca destes dados tentando identificar padrões.
Certos padrões nos dados podem indicar a ocorrência de falhas incipientes as quais, caso não
diagnosticadas, poderiam implicar em necessidade futura de parada da máquina por falha
destrutiva. A partir da análise destes dados é possível prever e informar o setor ou operador
responsável de possíveis faltas que venham a ocorrer em um determinado equipamento. Como
o sistema possui um controle criterioso de todas as variáveis de interesse, é possível
identificar o local exato da ocorrência da falta e as possíveis causas.
5.6.2 Levantamento de requisitos
Nessa etapa varias reuniões foram feitas junto aos engenheiros e técnicos da UHE de
Tucuruí com o objetivo de levantar os requisitos do sistema a ser implementado. Para
documentar o que foi discutido, foi utilizado o documento de especificação de requisitos de
software oriundo do Processo Institucional de Desenvolvimento de Software (PIDS)
desenvolvido por pesquisadores do Instituto de Ensino Superiores da Amazônia (IESAM).
Abaixo é exibido o referido documento.
- Especificação de requisitos de software
Tabela 1 - Descrição geral do documento
Título: Gerenciamento de informações acerca de determinadas condições em um sistema industrial de geração
de energia elétrica.
Cliente/endereço: Eletronorte
Identificação do item: Nome do Produto/ Serviço:
Característica:
Executante(s): Adolfo Sena, Bárbara Medeiros, Cynthia Leal, Igor Simões, Marcus Pantoja, Walter Barra Jr.
Versão: 1.0
Equipe executante:
Adolfo Sena, Bárbara Medeiros, Cynthia Leal, Igor Simões, Marcus Pantoja.
Descrição resumida do serviço:
O sistema está sendo construído para que os operadores e engenheiros da UHE de Tucuruí possam acompanhar
em tempo real determinadas condições no sistema de geração de energia elétrica. Esta aplicação possibilitará um
conhecimento vasto a partir do registro do histórico dos dados coletados e com isso permitirá análises atuais e
futuras a respeito da “saúde” das máquinas monitoradas.
Norma/instrução técnica utilizada:
Informações Adicionais:
Data da emissão do Documento: 25/09/2006
73
Objetivos deste documento
Definir de uma forma geral e posteriormente especifica o sistema de monitoração proposto.
- Escopo do produto
Nome do produto e de seus componentes principais
O Produto ainda não tem um nome específico. Os principais componentes do sistema são caracterizados por
agentes, que representam módulos do sistema. Cada agente será responsável por determinada função como por
exemplo: Interface com o usuário, Aquisição de dados, Interface com o Banco de dados, etc. A colaboração entre
estes componentes concretizará os objetivos do sistema.
- Missão do produto
Apoio informatizado aos operadores do sistema da UHE de Tucuruí no sentido de aperfeiçoar a detecção de
possíveis problemas que venham a ocorrer no sistema de geração.
- Limites do produto
O Sistema não fará Aquisição de variáveis inerentes ao sistema de troca de calor.
- Benefícios do produto
Tabela 2 – Benefícios do produto
Nº de Ordem Benefício Valor para o cliente
1
2
3
4
5
6
7
Visualização remota dos dados monitorados
Indicações de faltas Incipientes
Indicações de Faltas Instantâneas
Indicações de possíveis causas e soluções para as faltas
Facilidade de visualização das variáveis
Facilidade de Manutenção
Escalabilidade
Essencial
Essencial
Essencial
Essencial
Desejável
Desejável
Essencial
- Materiais de referência
Tabela 3 – Matérias de referência
Nº de Ordem Tipo do material Referência bibliográfica
1 Entrevista Entrevista feita com o coordenador do projeto.
2 Relatório Projeto de especificação do software de monitoração
3 Padrão PIDS - Processo IESAM de Desenvolvimento de Software.
74
- Definições e siglas
Tabela 4 – Definições e siglas
Nº de Ordem Sigla Definição
1 UHE Usina Hidrelétrica de Tucuruí
2 PIDS Processo institucional de desenvolvimento de software
3 SGBD Sistema Gerenciador de Banco de Dados
- Visão geral deste documento
De acordo com o Padrão para Especificação de Requisitos de Software, ou seja:
Parte 2: Descrição geral do produto
Parte 3: Requisitos específicos
Parte 4: Informação de suporte - listagens do Modelo de Análise
- Descrição geral do produto / Perspectiva do produto
MONITORAÇÃO DE UMA VARIÁVEL EM TEMPO REAL
O operador se registrará no sistema e escolherá o Armário que contém a variável a ser
monitorada. Ao escolher o Armário, o operador visualiza os Braços de Tiristores presentes
naquele Armário e o Ventilador que auxilia na troca de calor. Neste momento o operador
especifica qual variável quer monitorar. As possibilidades são: Temperatura no braço de
determinado Tiristor, Disjuntor do Tiristor, Temperatura do armário, Corrente RMS do motor
do Ventilador. Os dados são recebidos e atualizados diretamente da planta em um período de
1 segundo.
SINALIZAÇÃO DE FALHAS INSTANTÂNEAS
O Sistema continuamente atualiza sua base dados em relação as variáveis
monitoradas. Portanto sempre que alguma anomalia é detectada nesses dados o sistema
automaticamente gera uma notificação ao operador ou setor responsável, descrevendo em
detalhes a falta ocorrida, o local específico de ocorrência, possíveis causas e soluções. Isso é o
que se chama comummente de sistema de alarme.
SINALIZAÇÃO DE FALHAS INCIPIENTES
O sistema continuamente atualiza sua base de dados em relação as variáveis
monitoradas e, além disso, faz análises acerca destes dados tentando identificar padrões.
Certos padrões nos dados podem indicar falhas que possam vir a ocorrer em um futuro
próximo ou distante, essas são as chamadas faltas incipientes. A parir da análise destes dados
75
é possível prever e informar o setor ou operador responsável de possíveis faltas que venham a
ocorrer em um determinado equipamento. Como o sistema possui um controle criterioso de
todas as variáveis de interesse, é facilmente identificável o local exato onde as faltas podem
ocorrer e as possíveis causas.
VERIFICAÇÃO DO HISTÓRICO DE FALHAS
O operador pode fazer uma breve consulta para checar o histórico de falhas em uma
determinada máquina, Armário ou mesmo em um único Tisristor ou Ventilador. O Sistema
gera informações acerca das faltas em quaisquer destas estruturas em um período de tempo
determinado pelo operador.
GERAÇÃO DE RELATÓRIOS PERIÓDICOS
O Operador pode visualizar com mais detalhes o que vêem ocorrendo em todas as
estruturas monitoradas do sistema. Desta forma o sistema oferece um relatório completo
gerado em períodos pré-configurados. As informações fornecidas dizem respeito a faltas
instantâneas, faltas incipientes, padrões identificados nos dados, previsões futuras baseadas no
comportamento atual dos dados.
- Diagrama de contexto – Primeiras iterações
Notificação de faltas InstantaneasNotificação de faltas incipientes
Monitoração de Variável
Verificação do Histórico de Falhas
Geração de Relatórios PeriodicosOperador
Notificação de Faltas
Figura 34: Diagrama de contexto.
Fonte: Elaborada pelo autor (2007)..
76
- Interfaces de usuário (tabela 5)
Tabela 5 – Interfaces de usuário
Nº de ordem Nome Ator Caso de uso Descrição
1 Monitoração de
variável
Operador Monitoração de
variável
O Sistema permite que o operador
monitore em tempo real determinada
variável.
2 Verificação do
Histórico de
Faltas
Operador Verificação do
Histórico de
Faltas
O Sistema gera um relatório on-line
informando o histórico de faltas detectadas
durante um período determinado pelo
operador em uma determinada máquina.
3 Geração de
relatórios
periódicos
Operador Geração de
relatórios
periódicos
O Sistema gera automaticamente relatório
periódicos para funções gerenciais. Este
relatório se diferencia do anterior na
medida que contém informações mais
detalhadas acerca das condições de
operação de todas as máquinas
monitoradas. É um relatório voltado a
parte gerencial, em um nível de
formalismo mais adequado.
4 Notificação de
faltas
Operador Notificação de
faltas
O Sistema notifica o operador quando
alguma falta é detectada.
5 Notificação de
faltas
incipientes
Operador Notificação de
faltas incipientes
O Sistema notifica o operador quando
existe padrões nos dados coletados que
indiquem uma possível falta futura em
determinada máquina.
6 Notificação de
faltas
Instantâneas
Operador Notificação de
faltas Instantâneas
O Sistema notifica o operador quando
ocorrem faltas instantâneas denotadas
através dos dados coletados.
- Modos de operação (tabela 6)
Tabela 6 – Modos de operação
Nº de Ordem Tipo de
operação
Descrição da
operação
Detalhes de Operação
1 Operação Analisar o
comportamento
das variáveis do
sistema.
Nessa etapa o operador analisa em tempo real as variáveis
do sistema, bem como é notificado de faltas que vierem a
ocorrer.
2 Administração Cadastrar/alterar
entidades,
variáveis e
usuários.
Nessa etapa o administrador informa o sistema dos
usuários, das variáveis analisadas e das entidades que
contém essas variáveis.
77
- Funções do produto (tabela 7)
OBS: Os casos de uso serão detalhados em seção própria.
Tabela 7 – Funções do produto
Nº de Ordem Caso de uso Descrição
XXXX XXXX XXXX
- Usuários e sistemas externos (tabela 8)
Tabela 8 – Usuários do sistema
Nº de Ordem Ator Definição
1 Operador Usuário nomeado pela Eletronorte para monitorar as variáveis, diagnosticar
falhas, causas, soluções e tomar medidas a partir disso.
2 Administrador Funcionário da Eletronorte responsável por cadastrar e controlar os usuários
do sistema, bem como as entidades e variáveis relacionadas do sistema.
3 Gerente Usuário responsável por análises de alto nível acerca do comportamento do
sistema de excitação.
- Características dos usuários (tabela 9)
Obs: Essas informações não foram fornecidas pela empresa.
Tabela 9 – Informações acerca dos usuários
Nº de
Ordem
Ator Freqüência de
uso
Nível de
instrução
Proficiência na
aplicação
Proficiência em
informática
XXXX XXXX XXXX XXXX XXXX XXXX
- Restrições (tabela 10)
Tabela 10 – Restrições do sistema
Nº de Ordem Restrição Descrição
1 Segurança O produto deverá restringir o acesso através de senhas individuais para cada usuário.
2 Escalabilidade O sistema deve ser informado acerca de cada nova variável a ser monitorada
para que a mesma possa ser analisada.
- Hipóteses de trabalho (tabela 11)
Tabela 11 – Hipóteses de trabalho
Nº de Ordem Hipótese De quem depende
1 Pode ser utilizado o SGBD Oracle para otimizar a
performance no acesso aos dados e permitir um número
maior de operações acerca dos dados.
Coordenação do Projeto
2 Pode ser utilizada a ferramenta Jbuilder para
desenvolver o Sistema propriamente dito.
Coordenação do Projeto
3 Pode ser utilizado framework JADE para
desenvolvimento da plataforma de agentes
Estudos entre as possíveis alternativas
de frameworks de agentes.
78
- Requisitos de interface externa
INTERFACES DE USUÁRIO
Interface de usuário << nome da interface >>
Layout sugerido (figura 35)
Figura 35: Interfaces do usuário.
Fonte: Elaborada pelo autor (2007).
- Requisitos funcionais
DIAGRAMAS DE CASOS DE USO
Os diagramas de casos de uso serão detalhados mais adiante.
Diagrama de estado / Diagrama de atividade
O sistema possui um número vasto de diagramas de atividade. Esses diagramas serão
analisados detalhadamente em seção própria.
Diagramas de seqüência
Os diagramas de seqüência também serão detalhados adiante.
- Requisitos não funcionais
REQUISITOS DE DESEMPENHO
Requisito de desempenho << nome do requisito >>
O sistema deve monitorar as variáveis de forma periódica. Este período não pode ultrapassar 1 segundo. De
acordo com a natureza das variáveis (temperatura e desgaste nas escovas) esse período é bastante aceitável.
79
5.6.3 Arquitetura do Sistema Multi-agente (SMA)
Figura 36: Arquitetura do sistema multi-agente (sma).
Fonte: Elaborada pelo autor (2007).
A Figura 36 exibe a arquitetura do sistema multi-agente, em que são expostos os
agentes que fazem parte do sistema global. Cada agente possui uma função específica e a
partir da cooperação entre eles os objetivos globais do sistema são atingidos. Os agentes
foram projetados de forma bastante modular e independente, de forma que a alteração em um
não afeta os demais. A seguir é feita uma explanação mais detalhada acerca de cada agente.
- Agente Supervisor
Agente responsável pela supervisão do sistema quando ele é iniciado. Suas tarefas são:
Se comunicar com o Labview para que este inicie o processo de aquisição e envio dos
dados.
Criar a interface gráfica principal do sistema que irá permitir a criação dos demais agentes
do sistema.
Criar o agente de Aquisição e deixá-lo pronto para receber as mensagens vindas do
Labview.
Criar o agente de banco de dados para que o mesmo esteja apto a receber as informações
e armazená-las no banco.
Habilitar ou desabilitar os agentes de detecção para que eles registrem ou deixem de
registrar informações acerca das anomalias.
80
Desconectar do Labview.
Finalizar o envio das informações. Nessa situação o Labview apenas deixa de enviar as
informações, porém os dois sistemas permanecem conectados.
Desconectar do sistema Labview, o que faz com que os dois sistemas deixem de se
comunicar.
- Agente de Aquisição
Agente responsável por “pegar” os dados oriundos do Labview através da tecnologia
de socket, colocá-los no formato adequado e enviá-los ao agente de banco de dados para que
o mesmo salve os dados.
- Agentes de detecção
Agentes responsáveis por detectar anomalias nos dados recebidos e registrar as
informações acerca das mesmas.
Suas principais funções são:
Enviar uma mensagem ao agente de banco de dados requisitando os dados que ainda não
foram checados.
Receber esta mensagem e checar se os dados estão dentro dos limiares aceitos.
Caso haja alguma anomalia, o agente migra para a máquina do operador responsável pela
variável que apresenta a anomalia e nesta nova máquina registra em um arquivo de texto
todas as informações acerca do problema, tais como: nome da variável, entidade a que
pertence (máquina, armário ou tiristor), selo de tempo, valor detectado. Essa é uma das
partes mais interessantes do sistema, uma vez que utiliza um dos principais atrativos da
tecnologia de agentes, a mobilidade transparente a qualquer máquina da rede.
- Agente de Interface em Tempo Real
O Agente de interface é responsável por exibir os dados em tempo real de
determinada(s) variável (eis). Suas principais funções são:
Criar uma interface gráfica que permita o operador iniciar o procedimento de análise.
81
Enviar uma mensagem ao agente de banco de dados requisitando as informações mais
atuais acerca de determinada (s) variável (eis).
Receber esta mensagem com as informações e se comunicar com a interface gráfica para
exibi-las.
Finalizar o processo a partir da interface gráfica.
- Agente de banco de dados
O agente de banco de dados é o principal agente do sistema. Ele é o único agente
capaz de acessar o banco de dados, por isso é o agente que mais recebe requisições e mais
coopera com outros agentes para que os mesmos possam atingir seus objetivos locais. Suas
principais funções são:
Inserir os dados em banco, quando isso for requisitado pelo agente de aquisição.
Enviar informações acerca das variáveis do sistema para os agentes de detecção, quando
isso for requisitado por eles.
Enviar informações para o agente de interface em tempo real, quando isso for requisitado
por ele.
Deletar automaticamente do banco de dados informações antigas acerca das variáveis.
5.6.4 Modelagem UML do Sistema Multi-agente (SMA)
- Modelagem de casos de uso
O primeiro passo do processo de modelagem é elaborar os diagramas de casos de uso.
Tais diagramas fazem parte da notação uml e representam a base de todo o processo de
modelagem que vem a seguir, uma vez que diagramas de atividades, seqüência e colaboração
derivam dele.
Os diagramas de casos de uso mostram como os valores são processados, sem
preocupações com: ordenamento (seqüência) das ações, decisões ou estruturas dos
objetos.
82
Os diagramas de casos de uso são muito utilizados pelo papel que exercem na análise
de sistemas, uma vez que são os principais diagramas a serem usados no diálogo com o
usuário na descoberta e validação de requisitos, alem de estruturarem todas as etapas do
processo de software.
Os principais elementos de um caso de uso são mostrados na Figura 37 abaixo:
Figura 37: Estrutura de casos de uso.
Fonte: Elaborada pelo autor (2007).
Existem várias formas de se organizar um diagrama de casos de uso. Neste trabalho
será utilizada uma modelagem orientada a usuário. Desta forma, como o sistema agrupa
apenas dois tipos de usuário (operador e administrador), serão montados dois cenários.
83
PRIMEIRO CENÁRIO: uma análise orientada ao operador
Figura 38: Caso de uso orientado ao operador.
Fonte: Elaborada pelo autor (2007).
Na Figura 38 temos o primeiro cenário do sistema multi-agente. Cenário este orientado
ao usuário operador, o qual é responsável pela monitoração e detecção das faltas relacionadas
às variáveis do sistema. A descrição detalhada desses casos de uso é feita oportunamente a
partir dos diagramas de atividade mais adiante.
84
SEGUNDO CENÁRIO: uma análise orientada ao administrador
Figura 39: Caso de uso orientado ao administrador.
Fonte: Elaborada pelo autor (2007).
A Figura 39 apresenta os casos de uso do usuário administrador. Esses casos de uso
estão relacionados ao cadastro e alteração das entidades do sistema (máquinas, armários e
tiristores), das variáveis relacionadas a estas entidades e dos usuários do sistema.
85
- Modelagem de diagramas de atividade
Neste momento, o sistema já possui suas funcionalidades delimitadas pelos diagramas
de casos de uso. Entretanto, estes diagramas, como já foi dito, não se preocupam com a
seqüência das ações ou com qualquer aspecto temporal. Desta forma, nesta nova etapa serão
construídos os chamados diagramas de atividade que possuem a função de detalhar o fluxo de
atividades necessárias à consecução dos casos de uso apresentados.
Cada caso de uso será detalhado em várias atividades, que por sua vez podem ser
detalhadas em outras atividades, dependendo da complexidade das mesmas.
Cenário 1: Operadores
Caso de uso Inicializar sistema(figura 40)
Figura 40: Diagrama de atividade – Inicializar sistema.
Fonte: Elaborada pelo autor (2007).
86
Descrição das atividades:
Entrar com os dados de login e senha para autenticar o operador;
Fazer uma consulta ao banco de dados e checar se os dados conferem;
Se não conferirem, permite mais três tentativas;
Caso os dados estejam corretos, cria a plataforma de agentes;
Cria o container principal que vai abrigar os agentes;
Por ultimo cria o agente supervisor.
- Agente supervisor
Ao criar um agente, essa nova entidade passa a agir de forma autônoma dentro do sistema a
partir dos chamados comportamentos, que podem ser alterados de acordo com os objetivos do
agente e dos estímulos recebidos do ambiente externo. Abaixo é detalhada a seqüência de
comportamentos do agente de aquisição(figura 41).
.
Figura 41: Diagrama de atividade – Agente supervisor.
Fonte: Elaborada pelo autor (2007).
87
Descrição das atividades:
Cria a interface gráfica principal que está vinculada ao agente supervisor. Essa interface
possui todas as funcionalidades oferecidas pelo sistema.
Recebe uma determinada ação ou pedido da interface gráfica.
Verifica que tipo de pedido foi feito.
Caso seja para habilitar os alarmes instantâneos, o agente supervisor dispara o
comportamento correspondente.
Caso seja para conectar, o agente supervisor troca para o comportamento responsável pela
conexão.
Caso o sistema já esteja conectado e o pedido seja para enviar requisição, o agente
supervisor alterna para o comportamento responsável pelo envio de requisições ao
labview.
Caso o agente supervisor receba da interface gráfica uma requisição para desconectar ou
finalizar o sistema, também alterna para os comportamentos correspondentes.
- Disparar comportamento alarme (figura 42)
Figura 42: Diagrama de atividade – Disparar comportamento alarme.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
Cria mensagens endereçadas aos agentes de detecção para habilitar ou desabilitar suas
operações.
Identifica os agentes de detecção através de nomenclaturas pré-especificadas.
88
Dependendo do tipo de ação (habilitar ou desabilitar)
Envia mensagem para que os agentes de detecção já criados parem de operar e se retirem
do container.
Se for para habilitar, então cria os agentes de detecção e os coloca em operação.
Obs: As demais atividades do agente supervisor serão explicadas em um momento oportuno
mais adiante.
- Caso de uso conectar (figura 43)
Figura 43: Diagrama de atividade – Conectar.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O operador seleciona a opção de conectar e uma mensagem é enviada da interface gráfica
ao agente supervisor.
O agente supervisor recebe a mensagem.
O agente supervisor envia uma mensagem à aplicação no labview através da tecnologia de
socket, autorizando a conexão entre os dois sistemas que se estabelece a partir daí.
89
- Caso de uso enviar requisição(figura 44)
Figura 44: Diagrama de atividade – Enviar requisição.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O operador seleciona a opção de enviar requisição e uma mensagem é enviada da
interface gráfica ao agente supervisor.
O agente supervisor recebe a mensagem.
O agente supervisor envia uma mensagem à aplicação no labview através da tecnologia de
socket, autorizando o inicio do processo de aquisição e o envio dos dados entre os dois
sistemas.
O agente supervisor cria o agente de banco de dados.
O agente supervisor cria o agente de aquisição.
90
- Agente de Banco de dados (figura 45)
Figura 45: Diagrama de atividade – Agente de banco de dados
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
Cria um container de comportamentos que são executados de forma paralela ou concorrente.
Cria comportamento responsável pela comunicação com o agente de aquisição.
Cria comportamento responsável pela comunicação com o agente de detecção de máquina.
Cria comportamento responsável pela comunicação com o agente de detecção de armário.
Cria comportamento responsável pela comunicação com o agente de detecção de tiristor.
Cria comportamento responsável pela comunicação com o agente de monitoração em
tempo real individual.
Cria comportamento responsável pela comunicação com o agente de monitoração em
tempo real geral.
91
Adciona todos os comportamentos ao container de comportamentos.
Cria e adiciona o comportamento monitorar dados, responsável por excluir do banco de
dados informações antigas e não mais úteis. O principal objetivo deste comportamento é
evitar um número exorbitante de registros no banco.
- Comportamento responsável pela comunicação com o agente de aquisição (figura 46)
Figura 46: Diagrama de atividade – Agente de banco de dados / Agente de aquisição.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
Receber e processar apenas as mensagens oriundas do agente de aquisição.
Analisar a mensagem e obter as informações da variável que está sendo recebida.
A partir das informações acerca da variável, seu valor, selo de tempo, entidade
relacionada, o agente de banco de dados insere as informações no banco de dados.
- Comportamento responsável pela comunicação com os agentes de detecção (figura 47)
Figura 47: Diagrama de atividade – Agente de banco de dados / agentes de detecção.
Fonte: Elaborada pelo autor (2007).
92
Descrição das atividades:
Receber e processar apenas as mensagens oriundas dos agentes de detecção.
Recuperar as informações do banco de dados relacionadas a todas as variáveis das
entidades monitoradas (máquina, armário e tiristor).
Preparar as informações para serem enviadas aos agentes de detecção.
Enviar a mensagem aos agentes de detecção contendo o valor das variáveis monitoradas
para posterior análise.
- Comportamento responsável pela comunicação com os agentes de monitoração em tempo
real individual e geral (figura 48)
Figura 48: Diagrama de atividade – Agente de banco de dados / agentes de monitoração.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
Receber e processar apenas as mensagens oriundas dos agentes de monitoração.
Verificar as informações requeridas pelos agentes de monitoração.
Recuperar as informações do banco de dados relacionadas a todas as variáveis requeridas.
Enviar a mensagem aos agentes de monitoração contendo o valor das variáveis requeridas
para posterior exibição.
93
- Caso de uso finalizar sistema (figura 49)
Figura 49: Diagrama de atividade – Finalizar sistema.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O operador seleciona a opção finalizar sistema e a interface envia uma mensagem ao
agente supervisor.
O agente supervisor recebe a mensagem
O agente supervisor verifica se a conexão está ativa. Caso esteja, o agente supervisor
envia uma mensagem ao labview para que o mesmo finalize o processo de envio dos
dados. Caso contrário, os dois sistemas já não se comunicam mais.
- Caso de uso monitoração especifica (figura 50)
Figura 50: Diagrama de atividade – Monitoração específica.
Fonte: Elaborada pelo autor (2007).
94
Descrição das atividades:
O operador seleciona a entidade a ser monitorada (máquina, armário ou tiristor).
O operador seleciona o elemento especifico (determinada máquina, armário ou tiristor).
O operador seleciona a variável a ser monitorada (temperatura, desgaste nas escovas, etc.).
O sistema cria o agente de monitoração em tempo real individual.
- Agente de monitoração em tempo real individual (figura 51)
Figura 51: Diagrama de atividade – Monitoração em tempo real individual.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O agente de monitoração recebe os dados acerca da entidade a ser monitorada e da
variável especifica.
O agente de monitoração cria a interface de monitoração.
O operador seleciona opção de iniciar ou finalizar a monitoração e a interface envia uma
mensagem ao agente de monitoração.
Caso seja uma mensagem para iniciar a monitoração, o agente executa o comportamento
para iniciar monitoração.
Caso seja uma mensagem parta finalizar, o agente de monitoração finaliza suas ações e se
retira do container.
95
- Comportamento Iniciar Monitoração (figura 52)
Figura 52: Diagrama de atividade – Iniciar Monitoração individual.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O agente de monitoração envia uma mensagem ao agente de banco de dados requisitando
os dados a serem monitorados acerca de uma única variável.
O agente de monitoração fica aguardando uma resposta
Ao receber a mensagem, o agente de monitoração recupera os dados.
O agente de monitoração repassa os dados à interface gráfica.
A interface gráfica exibe os dados em tempo real.
- Caso de uso Monitoração geral (figura 53)
O operador seleciona a opção monitoração geral e o agente de monitoração geral é
criado. Seu comportamento é descrito abaixo.
96
Figura 53: Diagrama de atividade – Monitoração geral.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O agente de monitoração geral cria a interface gráfica que irá exibir os dados.
O operador seleciona uma das opções da interface: Iniciar ou finalizar. E uma mensagem é
enviada ao agente de monitoração.
Caso seja iniciar, o agente de monitoração executa o comportamento Iniciar monitoração.
Caso seja finalizar, o agente de monitoração finaliza suas atividades e se retira do
container.
- Comportamento Iniciar monitoração (figura 54)
Figura 54: Diagrama de atividade – Iniciar monitoração geral.
Fonte: Elaborada pelo autor (2007).
97
Descrição das atividades:
O agente de monitoração envia uma mensagem ao agente de banco de dados requisitando
os dados a serem monitorados acerca das cinco principais variáveis do sistema:
temperaturas dos quatro armários e o desgaste nas escovas da máquina.
O agente de monitoração fica aguardando uma resposta.
Ao receber a mensagem, o agente de monitoração recupera os dados.
O agente de monitoração repassa os dados à interface gráfica.
A interface gráfica exibe os dados em tempo real.
- Caso de uso Habilitar alarmes instantâneos (figura 55)
Figura 55: Diagrama de atividade – Habilitar alarmes instantâneos.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O agente supervisor cria o agente de detecção de máquinas
O agente supervisor cria o agente de detecção de armários
O agente supervisor cria o agente de detecção de Tiristores
- Agentes de detecção
O diagrama a seguir (figura 56) mostra a operação dos agentes de detecção de máquina,
armário e tiristor, uma vez que o funcionamento deles é similar.
98
Figura 56: Diagrama de atividade – Agentes de detecção.
Fonte: Elaborada pelo autor (2007).
Descrição das atividades:
O agente de detecção estabelece o canal de comunicação com o agente de banco de dados.
O agente de detecção envia uma requisição ao agente de banco de dados.
O agente de detecção recebe os dados do agente de banco de dados.
O agente de detecção recupera os limites acerca das variáveis.
O agente de detecção checa se as variáveis estão dentro dos limites.
Caso haja alguma anomalia, o agente de detecção migra para a máquina do operador
responsável pela variável e executa os procedimentos de alarme.
99
- Diagramas de seqüência
- Seqüência de atividades para a aquisição de dados (figura 57)
Figura 57: Diagrama de seqüência – Aquisição.
Fonte: Elaborada pelo autor (2007).
Descrição da seqüência:
O agente supervisor cria a interface gráfica principal
Através da interface o operador manda uma mensagem ao agente supervisor para se
conectar com a aplicação do labview.
O agente supervisor envia uma mensagem ao labview para se conectar.
O labview retorna a conexão.
O operador através da interface envia uma mensagem ao agente supervisor requisitando os
dados.
O agente supervisor envia a requisição ao labview.
O agente supervisor cria o agente de aquisição que fica esperando os dados chegarem da
aplicação do labview.
100
A aplicação do labview envia os dados diretamente ao agente de aquisição.
O agente de aquisição se conecta com agente de banco de dados enviando uma proposta.
O agente de banco de dados envia a resposta concordando e estabelecendo a conexão.
O agente de aquisição envia ao agente de banco de dados às informações a serem inseridas
em banco.
O agente de banco de dados insere as informações e envia uma mensagem ao agente de
aquisição confirmando a transação.
- Seqüência de atividades para a detecção das anomalias(figura 58)
Figura 58: Diagrama de seqüência – Detecção de anomalias.
Fonte: Elaborada pelo autor (2007).
Descrição da seqüência:
O agente de detecção envia uma proposta ao agente de banco de dados para estabelecer
uma conexão.
O agente de banco de dados concorda ou recusa a proposta, estabelecendo ou não a
conexão.
Caso a conexão esteja estabelecida, o agente de banco de dados envia as informações
acerca das variáveis ao agente de detecção.
101
Caso alguma anomalia seja detectada, as informações acerca da anomalia são repassadas à
máquina do operador responsável.
- Seqüência de atividades para a monitoração dos dados (figura 59)
Figura 59: Diagrama de seqüência – Monitoração.
Fonte: Elaborada pelo autor (2007).
Descrição da seqüência:
O operador através da interface gráfica dá inicio ao processo de monitoração, enviando
uma mensagem ao agente de interface de monitoração.
O agente de interface envia uma proposta ao agente de banco de dados para estabelecer a
conexão.
O agente de banco de dados pode concordar ou recusar, estabelecendo ou não a conexão.
102
Caso a conexão esteja estabelecida, o agente de banco de dados repassa as informações a
serem monitoradas ao agente de interface.
O agente de interface repassa as informações à interface de monitoração.
O operador através da interface gráfica finaliza a monitoração, enviando uma mensagem
ao agente de interface.
O agente de interface envia uma mensagem ao agente de banco de dados para finalizar o
envio de informações
O agente de banco de dados confirma o recebimento da mensagem e a finalização do
processo.
103
6 RESULTADOS OBTIDOS
6.1 DESCRIÇÃO DAS FUNCIONALIDADES DO SISTEMA
Monitoração on-line e individual de variáveis do sistema
Monitoração do Quadro geral das 5 variáveis de interesse do projeto pelo Sistema.
(Temperaturas dos 4 Armários e o desgaste das escovas)
Alarmes instantâneos
Monitorar Agentes (RMA)
Cadastro e alteração de máquinas
Cadastro e alteração de armários
Cadastro e alteração de tiristores
Cadastro e alteração de variáveis
Cadastro e alteração de usuários
6.2 APRESENTAÇÃO INICIAL DO SISTEMA
Figura 60: Autenticação inicial.
Fonte: Elaborada pelo autor (2007).
Descrição:
Esta é a tela inicial do sistema (figura 60), onde os operadores autorizados poderão se
autenticar para a partir daí utilizarem o sistema.
104
Figura 61: Interface principal – operação.
Fonte: Elaborada pelo autor (2007).
Descrição:
Após a fase de autenticação o operador é levado a tela inicial da aplicação (figura 61).
Pode-se observar que existem duas “abas” presentes. A aba Operação e a aba Administração.
A primeira é composta dos seguintes Botões:
Conectar: Esse botão permite fazer a conexão com o sistema labview que enviará as
informações acerca das variáveis monitoradas.
Enviar Requisição: Esse botão permite que o Sistema Multi-Agente envie uma requisição
para o sistema implementado no labview indicando que o processo de monitoração pode
ser iniciado.
Finalizar Sistema: Esse botão finaliza o sistema, enviando uma mensagem ao labview
para que o mesmo cesse o processo de Aquisição e envio dos dados.
Monitoração em Tempo Real: Esse botão permite a monitoração on-line das variáveis de
forma individual. É uma das funcionalidades nucleares do sistema e será objeto de um
maior detalhamento mais adiante.
Monitorar Agentes (RMA): Esse botão permite a monitoração dos agentes da Aplicação. É
uma ferramenta independente que deve ser utilizada por quem já está familiarizado com ela.
Desabilitar Alarmes Instantâneos: Esse botão permite desabilitar os alarmes instantâneos
que são disparados automaticamente sempre que alguma variável apresenta uma condição
de anomalia.
Quadro Geral: Esse botão permite uma visualização geral de todas as variáveis propostas
no projeto de maneira bem amigável. É uma funcionalidade que será mais detalhada
adiante.
105
A aba Administração é explicada a seguir.
Figura 62: Interface principal – administração.
Fonte: Elaborada pelo autor (2007).
Descrição:
Na aba administração (figura 62) estão as funções relacionadas aos elementos
trabalhados pelo sistema. Em cada um desses botões o usuário deverá informar os elementos
que serão analisados pelo sistema, tais como as máquinas, armários, Tiristores, variáveis
relacionadas a cada um destes elementos e os usuários que terão acesso ao sistema. Cada
entidade será explicada adiante com mais detalhes.
6.3 FUNCIONALIDADES DO SISTEMA
A partir deste momento o Sistema multi-agente está conectado e recebendo
informações da planta industrial por meio do labview. Sendo assim, pode-se realizar os
procedimentos para monitoração das variáveis. Além disso, serão detalhadas as
funcionalidades de administração do sistema.
106
6.3.1 Monitoração on-line e individual de variáveis do sistema
Passo 1:
Como neste momento o sistema já está conectado, o primeiro passo é acionar o botão
Monitoração em tempo real (figura 63).
Figura 63: Monitoração individual – passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Nesse momento deve-se escolher qual entidade a monitorar. Por exemplo, se deseja-se
monitorar a temperatura de um determinado armário, deve-se acionar o botão Armário como
ilustra a figura 64. Ou ainda, se a intenção for monitorar o desgaste das escovas de uma
determinada máquina, deve-se acionar o botão Máquina.
Figura 64: Monitoração individual – passo 2.
Fonte: Elaborada pelo autor (2007).
107
Passo 3:
Se, por exemplo, deseja-se monitorar a temperatura de um determinado armário,
conforme explicado no passo anterior, então deve-se escolher a Máquina que contém este
armário, o Armário especifico e por fim a variável a ser monitorada (figura 65).
Figura 65: Monitoração individual – passo 3.
Fonte: Elaborada pelo autor (2007).
Passo 4:
Neste momento já se sabe que variável especifica se quer monitorar, portanto basta
acionar o botão Iniciar (figura 66) para que os dados fiquem disponíveis em tempo real
conforme mostrado abaixo. A qualquer tempo o operador pode finalizar o processo acionando
o botão Finalizar.
Figura 66: Monitoração individual – passo 4.
Fonte: Elaborada pelo autor (2007).
108
6.3.2 Monitoração do Quadro geral das 5 variáveis de interesse do projeto pelo Sistema.
(Temperaturas dos 4 Armários e o desgaste das escovas)
Passo 1:
Para fazer uma análise geral das variáveis estudadas pelo projeto, basta acionar o
botão Quadro Geral (figura 67).
Figura 67: Monitoração geral – passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Neste momento o quadro geral é exibido (figura 68) e o operador deve acionar o botão
Iniciar e a qualquer hora o botão Finalizar para terminar o processo de monitoração.
Figura 68: Monitoração geral – passo 2.
Fonte: Elaborada pelo autor (2007).
109
6.3.3 Alarmes instantâneos
Os alarmes instantâneos do sistema de monitoração de responsabilidades dos agentes
de detecção que, ao verificarem alguma anomalia em quaisquer variáveis do sistema,
disparam uma interface gráfica contendo as informações acerca da anomalia e do local de sua
ocorrência (figura 69).
Figura 69: Alarme instantâneo.
Fonte: Elaborada pelo autor (2007).
Entretanto é possível que estes alarmes sejam desativados e reativados a qualquer
tempo, bastando para isso acionar o botão Desabilitar Alarmes Instantâneos (figura 70) que
após essa ação se transforma em Habilitar Alarmes Instantâneos.
Figura 70: Desabilitar Alarmes instantâneos.
Fonte: Elaborada pelo autor (2007).
110
6.3.4 Monitorar Agentes (RMA)
RMA vem de Remote Management Agent, ou seja, Agente de gerenciamento remoto.
Trata-se de uma ferramenta para monitorar os agentes que estão sendo executados no
framework de agentes JADE, utilizado em nosso sistema. É uma ferramenta totalmente
independente de nossa aplicação e pode ser melhor explorada através de vários tutoriais
próprios no site jade.tilab.com.
Abaixo (figura 71) temos a tela inicial do RMA, a qual mostra os agentes em execução.
Figura 71: RMA (Remote Management Agent).
Fonte: Elaborada pelo autor (2007).
Na próxima tela (figura 72) temos uma função muito utilizada do RMA, a função
Sniffer que nos permite monitorar em tempo real através de um diagrama de seqüência a
interação entre os agentes em operação do sistema.
111
Figura 72: SNIFFER.
Fonte: Elaborada pelo autor (2007).
6.4 FUNCIONALIDADES ADMINISTRATIVAS
Toda vez que é feita uma monitoração da temperatura do armário 1 presente na
máquina 1 devemos lembrar que isso só é possível porque o sistema tem em seu banco de
dados as informações acerca da variável temperatura, do armário armário 1 e da máquina
máquina 1, ou seja, deve-se informar o sistema sobre as entidades que serão monitoradas bem
como suas variáveis relacionadas. Para tanto, teremos as funções cadastro de máquinas,
armários, tiristores, dentre outros.
6.4.1 Cadastro e alteração de máquinas
- Cadastro
Passo 1:
Acionar o botão Cadastrar/Alterar Máquinas (Figura 73).
112
Figura 73: Administração do sistema – Tela principal.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Acionar o botão Novo (Figura 74) para limpar os campos de texto e permitir que você
entre com os dados.
Figura 74: Cadastro de máquinas – passo 2.
Fonte: Elaborada pelo autor (2007).
Passo 3:
Preencher os campos de texto e acionar o botão Salvar (Figura 75). Os campos de texto
contém informações a respeito da entidade máquina e de um identificador que se faz
necessário para relacionar as informações obtidas no processo de aquisição com determinada
entidade. (isso vale para todas as entidades, leia-se máquinas, armários e tiristores).
Figura 75: Cadastro de máquinas – passo 3.
Fonte: Elaborada pelo autor (2007).
113
- Atualização
Passo 1:
Para atualizar as informações desta entidade basta selecionar o registro através dos
botões Anterior e Próximo e acionar o botão Editar (Figura 76).
Figura 76: Atualização de máquinas – passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Para salvar as atualizações devemos acionar o botão Salvar (Figura 77).
Figura 77: Atualização de máquinas – passo 2.
Fonte: Elaborada pelo autor (2007).
6.4.2 Exclusão de Máquinas
Passo 1:
Para deletar algum registro primeiro deve-se selecionar o registro através dos botões
Anterior e Próximo e acionar o botão Editar (Figura 78).
114
Figura 78: Exclusão de máquinas – passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Para deletar o registro selecionado basta acionar o botão Excluir (Figura 79).
Figura 79: Exclusão de máquinas – passo 2.
Fonte: Elaborada pelo autor (2007).
6.4.3 Cadastro e alteração de Armários, Tiristores e variáveis
Os procedimentos são os mesmos, portanto não serão explicados aqui.
6.4.4 Cadastro e Alteração de Usuários
- Cadastro
Passo 1:
Acionar o botão Cadastrar/Alterar Usuários (Figura 80).
115
Figura 80: Cadastro de usuários– passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Acionar o botão Novo (Figura 81) para limpar os campos de texto e permitir que você
entre com os dados.
Figura 81: Cadastro de usuários – passo 2.
Fonte: Elaborada pelo autor (2007).
Passo 3:
Preencher os campos de texto e acionar o botão Salvar. Os campos de texto contêm
informações a respeito do usuário. Informações como Atribuição tem a função de nivelar o
acesso ao sistema, ou seja, um usuário com a atribuição de administrador não poderá acessar
as funções de operador.
116
- Atualização
Passo 1:
Para atualizar as informações desta entidade basta selecionar o registro através dos
botões Anterior e Próximo e acionar o botão Editar (Figura 82).
Figura 82: Atualização de usuários – passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Para salvar as atualizações deve-se acionar o botão Salvar (Figura 83).
Figura 83: Atualização de usuários – passo 2.
Fonte: Elaborada pelo autor (2007).
117
- Exclusão
Passo 1:
Para deletar algum registro primeiro é necessário selecionar o registro através dos
botões Anterior e Próximo e acionar o botão Editar (Figura 84).
Figura 84: Exclusão de usuários – passo 1.
Fonte: Elaborada pelo autor (2007).
Passo 2:
Para deletar o registro selecionado basta acionar o botão Excluir (Figura 85).
Figura 85: Exclusão de usuários – passo 2.
Fonte: Elaborada pelo autor (2007).
118
7 CONSIDERAÇÕES FINAIS
Neste trabalho procurou-se demonstrar que uma arquitetura baseada em agentes pode
ser utilizada para aplicações de monitoração e detecção de anomalias em uma planta
industrial. Os objetivos específicos foram:
Projetar agentes reutilizáveis com habilidades de processamento de dados.
Pesquisar e utilizar uma arquitetura de agentes capaz de fornecer as habilidades de
comunicação e cooperação necessárias em sistema multi-agente.
Construir um sistema propriamente dito para monitoração de variáveis e detecção de
anomalias.
Esses objetivos foram atingidos e as oportunidades que surgem a partir daí são
ilimitadas, uma vez que tal sistema possui grande flexibilidade de tal forma a permitir uma
adaptação às mais variadas situações de monitoração, análise, classificação e detecção de
anomalias.
Futuramente o sistema pode ser adaptado para trabalhar com tecnologias como lógica
fuzzy, redes neurais ou mineração de dados, pois já se tem uma base de dados com
informações acerca da relação entre dados de entrada e dados de saída. O sistema poderá
também se enquadrar em um nível mais gerencial, onde gráficos e informações mais
trabalhadas acerca das variáveis podem ser exibidas e analisadas.
119
REFERÊNCIAS
BAUER, B. Extending UML for the specification of interaction protocols. Submitted for
the 6th Call for Proposal of FIPA, 1999.
BEER R.D.; A Dynamical Systems Perspective on Autonomous Agents. In: Special issue of
the AI Journal on Computational Theories of Interaction and Agency, 1992.
BRAZIER, Frances M.T.; CATHOLIJN, M. Jonkers; TREUR, Jan (ed.). Principles of
compositional multi-agent system development. Chapman and Hall, 1998.
BROOKS R.A. A robust layered control system for a mobile robot. In: IEEE Journal of
Robotics and Automation, 2(1), p. 14-33, march, 1986.
______. Intelligence without representation. Vol. 47. Artificial Intelligence, 139-159, 1991.
BRYSON, Joanna; McGONIGLE, Brendan. Agent architecture as object oriented design.
Intelligent agents IV: agent theories, architectures, and languages. Proceedings of ATAL'97.
ed. Springer, Berlin, 1998.
BURMEISTER, Birgit. Models and methodology for agent-oriented analysis and design,
1996.
______; HADDADI; Afsaneh; KURT, Sundermeyer (ed.). Generic Configurable.
Cooperation Protocols for Multi-Agent Systems Springer, Neuchâtel, Switzerland, 1993.
BUSSMAN Demazeau Y.; An agent model combining reactive and cognitive capabilities, In:
IEEE, International Conference on Intelligent Robots and Systems, IROS, 1994.
CASTELFRANCHI C. A pont missed in multi-agent, DAI and HCI. Decentralized AI, Y.
Demazeau; J-P. Müller (Eds), Elsevier Science Publisher B.V. (North- Holland), 49-62,
1990.
______. Guarantees for autonomy in cognitive agent architecture. In: WOOLDRIDGE, M.;
JENNINGS, N. R. editors. Intelligent agents: theories, architectures, and languages, V. 890 ,
1990.
120
CHEONG, F. Internet agents. Indianapolis: New Riders Publishing, 1995.
DEMAZEAU Y.; MÜLLER J.P., From reactive to intentional agents, In: Decentralized
artificial intelligence. Elsevier Science Publishers., North Holland, v. 2, p. 3-10, 1991.
______. From interactions to collective behaviour in agent-based system. Saint Malo:
European Conference on Cognitive Science, 1995.
DEPKE, Ralph; REIKO Heckel; JOCHEN Malte Küster. Requirement specification and
design of agent-based systems with graph transformation. Roles and UML, in this volume,
2000.
DURFEE, E,H.; ROSENSCHEIN, J.S. Distributed problem solving and multi- agent systems:
comparisons and examples. Proceding of The International Workshop on Distributes
Artificial Inteligence, Jul. 1994.
FERBER J. JACOPIN E.; The Framework of Eco-Problem Solving, In: Proceedings of the
second MAAMAW. Saint-Quentin en Yvelines, August, 13-16, 1990.
______; DROGOUL A. Using reactive multi-agent systems in simulation and problem
solving, In : Avouris N.M., Gasser L. eds., Distributed Artificial Intelligence: Theory and
Praxis, Kluwer Academic Publishers, pp. 53-80, 1992.
______. La Kenetique: des systemes multi-agents a une science de linteraction, In: Revue
Internationale de systèmique, v. 8, n. 1, p. 13-27, 1994.
______. Les systemes multi-agents. Interéditions, Paris, 1995.
FRANKLIN, Stan; GRAESSER. Art is it an agent, or just a program?: a taxonomy for
autonomous agents, proceedings of the third international workshop on agent theories,
architectures, and languages. Published as intelligent agents III, p. 21-35, Springer-Verlag,
1997.
GARIJO, Francisco J.; BOMAN, Magnus ed. Multi-agent system engineering: proceedings
of MAAMAW'99. Berlin, Germany: Springer, 1999.
GENESERETH, M.R.; KETCHPEL, S.P. Software agents. Communications of the ACM.
Vol. 37 (7). July 48-53, 1994.
121
HAGG S., YGGE F. An architecture for agent-oriented programming with a programmable
model of interaction. In: Proceedings of the Seventh Annual Conference on AI and
Cognitive Science, September 8-9, 1994.
HAYES-ROTH, B. An arquitecture for adaptive intelligent systems. Artificial intelligence:
special issue on agent and interactivity, v. 72, 1990.
HEILMANN, Kathryn et al. Intelligent agents: a technology and business application
Analysis. 1995. Disponível em: <http://haas.berkeley.edu/~heilmann/agents/index.html>.
Acesso em: 12 jan. 2003.
HERLEA, Daniela E.; CATHOLIJUN, M. Jonker; TREUR, Jan; NIEK, J.E. Wijngaards (ed.).
Specification of behavioural requirements within compositional multi-agent system
design springer. Valencia, Spain, 1999.
HOLLAND, J.H. Adaptation. In: Natural and artificial systems. University of Michigan
Press, Ann Arbor, 1975.
HUBNER, Jomi Fred. Um modelo de reorganização de sistemas multiagentes. Tese
(Doutorado). Escola Politécnica da Universidade de São Paulo, 2003.
IGLESIAS, Carlos A., MERCEDES Garijo; González, José C. ed. A survey of agent-
oriented methodologies university Pierre et Marie curie. Paris: FR, 1998.
Jade.tilab.com. Tutoriais de utilização daplataforma JADE.
JENNINGS N.R., Wittig T.; ARCHON: Theory and Practice, In: Distributed Artificial
Intelligence: theory and praxis (eds. N.M. Avouris and L.Gasser), Kluwer Academic Press,
179-195, 1992.
JENNINGS, N. R.; WOOLDRIDGE, M. J. Agent technology: foundations, applications, and
markets. Springer Verlag, London, 1998.
JONKER, Catholijn M.; Treur, Jan (ed.). Compositional verification of multi-agent
systems: a formal analysis of pro-activeness and reactiveness springer, 1997.
KINNY, David, GEORGEFF, Michael; RAO, Anand. A methodology and modelling
technique for systems of BDI agents, agents breaking away. 7th European Workshop on
Modelling Autonomous Agents in a Multi-Agent World (MAAMAW'96). Walter
VandeVelde and John W. Perram ed., Springer, Berlin, 1996, p. 56-71, 1996.
122
KINNY, David; GEORGEFF, Michael. Modelling and design of multi-agent systems.
Intelligent agents III: proceedings of the third international workshop on agent theories,
architectures, and languages (ATAL'96), ed. Springer, Heidelberg, 1996.
LAUREL, Brenda. The art of human - Computer Interface Design, 1990.
MAES, Pattie. Agents that reduce work and information overload. In: Communications of
the ACM, 37(7), July, 1994a.
______. Social interface agents: acquiring competence by learning from users and ohter
agetns, In: O. Etzioni (eds.) Software agents - papers from the spring symposium (Technical
Report SS-94-03), p. 71-78, AAAI Press, 1994b.
______. Artificial life meets entertainment: life like autonomous agents. In: Communications
of the ACM, V. 38, 1995.
MARTIN, James; Odell, J. Object-oriented methods: a foundation, (UML edition). Prentice
Hall, Englewood Cliffs, NJ, 1998.
MCARTHUR, STEPHEN; BOOTH, CAMPBELL; MCDONALD, J. R.; MCFADYEN,
IAN. An Agent-Based Anomaly Detection Architecture for Condition Monitoring. In: IEEE
transactions on power systems, vol. 20, no. 4, november, 2005
MINSKY M. The society of mind.Simon and Schuster, New York, 1986.
MITCHELL, T. et al. Experience with a learning personal assistant, In: Communications of
the ACM, 37(7), Jul. 1994.
NODINE, Marian H.; UNRUH, Amy. Facilitating open communication in agent systems: the
infosleuth infrastructure. Intelligent Agents IV: agent theories, architectures, and languages.
Munindar P. Singh et al. ed., Springer, Berlin, p. 281-296, 1998.
ODELL, James (ed.). Agent technology. OMG, green paper produced by the OMG Agent
`Working Group, 1999.
PARAISO, Emerson C. MASC – Sistema Multi-Agente para Monitoração e Controle de
Processo. International ICSC Symposium on Engineering of Intelligent Systems - Tenerife,
Espanha, 1996.
123
PARUNAK, H. Van Dyke (ed.). Visualizing agent conversations: using enhanced dooley
graphs for agent design and analysis, 1996.
PARUNAK, H.; VAN DYKE, John Sauter; STEVEN, J. Clark. Toward the specification and
design of industrial synthetic ecosystems. Intelligent agents IV: agent theories, architectures,
and languages. Munindar P. Singh et al. ed., Springer, Berlin, 1998, p. 45-59, 1998.
RUMBAUGH, James; Ivar Jacobson; Grady Booch. The unified modeling language
reference manual. Addison-Wesley, Reading, MA, 1999.
RUSSEL, J. Stuart; NORVIG, P. Artificial intelligence: a modern Approach. Prentice Hall:
EUA, 1995.
SCALABRIN, E.E. Conception et Realisation d’environnement de développement de
systemes d’agents cognitifs. PhD Thesis. Université de Technologie de Compiégne, France,
1996.
SINGH, Munindar P. A Customizable coordination service for autonomous agents.
Intelligent Agents IV: agent theories, architectures, and languages. Munindar P. Singh et al.
ed., Springer, Berlin, p. 93-106, 1998.
SMITH, D. C., CIFRA; J. SPOHER. KidSim: programming agents whithout a programming
language. Communications of the ACM, 1994, v. 37, 1994.
STEELS L.; Cooperation between distributed agents through self-organization. In:
Proceedings of the First MAAMAW. Cambridge, England, August, pp. 16-18, 1989.
SYCARA, K., DECKER, K., WILLIAMSON, M.; PANNU, A. Distributed Intelligent
Agents, In: IEEE Expert, July, 1996.
TORRES M. CONSTANTINO. Polveri da fiuto allucinogene nel Cile precolombiano.
Altrove, Torino, vol. 3, p. 29-39, 1996.
TUTORIAL de administração e programação do JADE. [jade.tilab.com].
WAYER, P. Agents unleashed. USA: AP Professional, 1995.
124
WOOLDRIDGE M. J., JENNINGS N. R. Agent theories, architectures, and languages: a
survey. Workshop on agent theories. architectures and laguages, ECAI94, Amsterdam,
1994.
WOOLDRIDGE M., JENNINGS N. Intelligent agents: theory and practice, In: The
knowledge Engineering Review, V. 10 (2), p. 115-152, 1995.
______; NICHOLAS, R. Jennings; KINNY, David. The gaia methodology for agent-oriented
analysis and design. International Journal of Autonomous Agents and Multi-Agent
Systems, 3: Forthcoming, 2000.
______. An introduction to multiagent systems. John Wiley and Sons, 2002.