Engenharia Mecânica Automação e Sistemas COMPARAÇÃO DE UM SISTEMA CONTROLADO ATRAVÉS DE REDES NEURAIS ARTIFICIAIS EM RELAÇÃO AO CONTROLE CONVENCIONAL - PDF
Engenharia Mecânica Automação e Sistemas COMPARAÇÃO DE UM SISTEMA CONTROLADO ATRAVÉS DE REDES NEURAIS ARTIFICIAIS EM RELAÇÃO AO CONTROLE CONVENCIONAL
Download "Engenharia Mecânica Automação e Sistemas COMPARAÇÃO DE UM SISTEMA CONTROLADO ATRAVÉS DE REDES NEURAIS ARTIFICIAIS EM RELAÇÃO AO CONTROLE CONVENCIONAL"
Kléber do Amaral Capistrano
1 Engenharia Mecânica Automação e Sistemas COMPARAÇÃO DE UM SISTEMA CONTROLADO ATRAVÉS DE REDES NEURAIS ARTIFICIAIS EM RELAÇÃO AO CONTROLE CONVENCIONAL Fabrício Grisolia Cezarini Itatiba São Paulo Brasil Dezembro de 2009
2 ii Engenharia Mecânica Automação e Sistemas COMPARAÇÃO DE UM SISTEMA CONTROLADO ATRAVÉS DE REDES NEURAIS ARTIFICIAIS EM RELAÇÃO AO CONTROLE CONVENCIONAL Fabrício Grisolia Cezarini Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do Curso de Engenharia mecânica da Universidade São Francisco, sob a orientação do Prof. Ms. Paulo Eduardo Silveira, como exigência parcial para conclusão do curso de graduação. Orientador: Prof. Ms. Paulo Eduardo Silveira Itatiba São Paulo Brasil Dezembro de 2009
3 iii COMPARAÇÃO DE UM SISTEMA CONTROLADO ATRAVÉS DE REDES NEURAIS ARTIFICIAIS EM RELAÇÃO AO CONTROLE CONVENCIONAL Fabrício Grisolia Cezarini Monografia defendida e aprovada em 09 de Dezembro de 2009 pela Banca Examinadora assim constituída: Prof. Ms. Paulo Eduardo Silveira (Orientador) USF Universidade São Francisco Itatiba SP. Prof. Dr. Fernando César Gentili USF Universidade São Francisco Itatiba SP. Prof. Eng. Michel de Almeida Lopes (Membro da banca) USF Universidade São Francisco Itatiba SP.
4 iv A imaginação é mais importante que a ciência, porque a ciência é limitada, ao passo que a imaginação abrange o mundo inteiro. (Albert Einstein)
5 v A meus pais Gerson e Fátima sem os quais não chegaria até aqui. A minha irmã Gelissa e minha namorada Aline por suportar os momentos difíceis na realização deste trabalho. Pai, saiba que você continua sendo o meu Super- Herói... A todos os meus amigos e colegas de sala que durante esses anos foram essenciais na minha graduação. Sou eternamente grato a todos.
6 vi Agradecimentos Agradeço primeiramente ao Professor Paulo Eduardo Silveira, meu orientador, que acreditou em mim e incentivou-me para a conclusão deste trabalho, face aos inúmeros percalços do trajeto. Agradeço também ao todos os Professores que participaram de minha formação acadêmica e pessoal, devido a sua paciência, conhecimento e amizade que todos demonstraram durante estes anos. Agradeço também a T&S Equipamentos pelo empréstimo do sistema de aquisição de dados que sem ele meu trabalho seria impraticável. Eu agradeço fraternalmente a todos.
7 vii Sumário 1 INTRODUÇÃO Objetivo Justificativa REVISÃO BIBLIOGRÁFICA Sistemas de Controle História dos Sistemas de Controle Sistemas de Malha Fechada e Malha Aberta Sistemas de Controle de Malha Aberta Sistemas de Controle de Malha Fechada Estratégias de Controle Controle Proporcional (P) Controle Proporcional Integral (PI) Controlador Proporcional Derivativo (PD) Controlador Proporcional Integral Derivativo (PID) Inteligência Artificial Redes Neurais Artificiais O Cérebro biológico Neurônios Artificiais: Modelo MCP Algoritmos de Aprendizado Controladores Neurais Lógica Fuzzy História da Lógica Fuzzy Sistemas de Controle Fuzzy Variáveis linguísticas Funções de pertinência Relações Fuzzy Sistema de Inferência Fuzzy Software Matlab Software Simulink METODOLOGIA Etapas Análise da Planta Didática Controladora de Nível Planta Didática Bomba Centrífuga Inversor de Frequência Sensor de nível Construção do Controlador PID no Simulink Construção do Controlador Fuzzy Construção do Controlador de Rede Neural Implementação dos controles na Planta Didática RESULTADOS E DISCUSSõES... 37
8 viii 5 CONCLUSÃO REFERÊNCIAS BIBLIOGRÁFICAS... 40
9 ix Lista de Figuras FIGURA 2.1 SISTEMA DE CONTROLE EM MALHA ABERTA... 3 FIGURA 2.2 SISTEMA DE CONTROLE EM MALHA FECHADA [1]... 4 FIGURA 2.3 CONTROLADOR PID [2]... 6 FIGURA 2.4 NEURÔNIO BIOLÓGICO [4]... 8 FIGURA 2.5 MODELO DE NEURÔNIO MCP [4]... 9 FIGURA 2.6 SISTEMA DE UM CONTROLADOR NEURAL [4] FIGURA 2.7 TAXONOMIA DA COMPUTAÇÃO EVOLUTIVA [6] FIGURA 2.8 FUNÇÕES DE PERTINÊNCIA PARA A VARIÁVEL TEMPERATURA[8] FIGURA 2.9 FUNÇÕES DE PERTINÊNCIA PARA A VARIÁVEL ESTATURA[8] FIGURA 2.10 SISTEMA DE INFERÊNCIA FUZZY [8] FIGURA 3.1 PLANTA DIDÁTICA CONTROLADORA DE NÍVEL [9] FIGURA 3.3 CURVAS CARACTERÍSTICAS DA BOMBA MARK GRUNDFOS SR-5-25 [9] FIGURA 3.4 INVERSOR DE FREQÜÊNCIA CFW08 [9] FIGURA 3.5 SENSOR DE PRESSÃO MPX5010DP (MOTOROLA) FIGURA 3.6 PARTE PROPORCIONAL FIGURA 3.7 PARTE INTEGRAL FIGURA 3.8 PARTE DERIVATIVA FIGURA 3.9 CONTROLADOR PID EM BLOCO NO SIMULINK FIGURA 3.10 EDITOR DE SISTEMA DE INFERÊNCIA FUZZY FIGURA 3.11 EDITOR DE FUNÇÃO PERTINÊNCIA FIGURA 3.12 PERFIL DAS FUNÇÕES DE PERTINÊNCIAS DA ENTRADA DE ERRO FIGURA 3.13 PERFIL DAS FUNÇÕES DE PERTINÊNCIAS DA ENTRADA VELOCIDADE DO ERRO FIGURA 3.14 PERFIL DAS FUNÇÕES DE PERTINÊNCIAS DE SAÍDA FIGURA 3.15 EDITOR DE REGRAS FIGURA 3.16 RULE VIEWER COM AS REGRAS DE INFERÊNCIA FIGURA 3.17 SUPERFÍCIE DE RESPOSTAS PARA AS DUAS ENTRADAS FIGURA 3.18 CONTROLADOR FUZZY NO SIMULINK FIGURA 3.19 SISTEMA PARA CRIAÇÃO DOS DADOS DE TREINAMENTO FIGURA 3.20 NNTOOL COM AS VARIÁVEIS DE ENTRADA E SAÍDA... 31
10 x FIGURA 3.21 CRIAÇÃO DA REDE NEURAL FIGURA 3.22 PROCESSO DE TREINAMENTO DA REDE NEURAL FIGURA 3.23 TESTE DE PERFORMANCE DO TREINAMENTO FIGURA 3.24 DESVIO-MÉDIO NA ÉPOCA DE NÚMERO FIGURA 3.25 REPRESENTAÇÃO DO CONTROLADOR DE REDE NEURAL NO SIMULINK FIGURA 3.26 DAQ DA NATIONAL INSTRUMENTS MODELO USB FIGURA 3.27 MODELO DO CONTROLE PID X NEURO-FUZZY FIGURA 3.28 NÍVEL D ÁGUA DE REFERÊNCIA... 35
11 xi Resumo A proposta desta monografia surgiu a partir da busca de novas técnicas de realizar o controle em equipamentos, tendo opções de controles mais fáceis de serem configuráveis ou até mesmo configurações automáticas de forma adaptativa. Vendo que os controles tradicionais necessitavam de uma análise matemática profunda e que em sistemas mais complexos esta análise tornava-se muito trabalhosa, controles como o Fuzzy ou os de Redes Neurais tornam uma alternativa para se evitar erros analíticos ou implementar controles em sistemas onde não se conhece de uma forma segura todos os parâmetros e variáveis do processo. O controle Fuzzy foi escolhido por se tratar de um método de fácil configuração, onde através do conhecimento de um especialista do processo ele pode de maneira intuitiva criar o controle. E o controle por Redes Neurais responde pela alternativa aonde o processo sobre várias intervenções não previstas e assim consegui se adaptar para melhorar o resultado. Sendo assim foram criados e simulados utilizando o Software Matlab e Simulink os controles Fuzzy e de Redes Neurais para realizar uma comparação entre o controle tradicional PID, tendo como processo de teste uma Planta Didática Controladora de Nível com o intuito de coletar os resultados comparativos. PALAVRAS-CHAVE: Controlador PID, Fuzzy, Redes Neurais, Matlab, Simulink, Controlador de Nível.
12 1 INTRODUÇÃO Cada vez mais são usuais sistemas que imitam a inteligência através de decisões programadas. Em sistemas controlados onde o controlador recebe informações do ambiente que está sendo estudado para, a partir desta análise, alterar sua atuação, o número de variáveis aumenta conforme o sistema se torna mais inteligente e automatizado. Em diversas situações um número elevado de itens devem ser analisados para tornar possível o seu controle preciso, e sua estimativa prevista adequadamente. Isto significa uma programação tradicional complexa. A Inteligência Artificial com Redes Neurais Artificiais, que trabalha baseada no funcionamento do cérebro, ou seja, um sistema paralelo e generalista atua de uma forma diferente para controlar estes sistemas com muitas variáveis. A capacidade de generalização e a possibilidade de lidar com situações diversas por meio do aprendizado a torna mais rápida e útil nesses casos. 1.1 Objetivo Realizar uma comparação entre os métodos de sistemas controlados com base na inteligência artificial com redes neurais artificiais e fuzzy e os sistemas microcontrolados pela computação tradicional através do método PID. Os testes serão aplicados em uma planta controladora de nível de água 1.2 Justificativa Os sistemas controlados por uma inteligência artificial têm um diferencial em lidar com situações diversas utilizando o modelo de generalização. Este estudo prático é útil para mostrar os aspectos deste ramo da Inteligência Artificial, servindo como base para projetos que visam sistemas cada vez mais capazes de adaptação e também aqueles em que a modelagem matemática torna complexa, não sendo preciso o conhecimento de todos os efeitos físicos pelo operador do sistema de controle.
13 2 2 REVISÃO BIBLIOGRÁFICA O controle automático tem desempenhado um papel fundamental no avanço da engenharia e da ciência. Além da extrema importância de sistemas de veículos espaciais, sistemas de direcionamento de mísseis, sistemas robóticos e similares, o controle automático tem se tornado de grande importância e parte integrante dos modernos processos industriais e de produção. O controle automático é essencial no controle numérico de máquinas-ferramenta nas indústrias manufatureiras, no projeto de sistemas de piloto automático na indústria aeroespacial e no projeto de carros e caminhões na indústria automotiva. [1] Os avanços no controle automático, na teoria e na prática, vêm produzindo meios para aperfeiçoar o desempenho dos sistemas dinâmicos, melhorar a produtividade, diminuir o trabalho árduo de várias rotinas de operações manuais repetitivas, entre outros.[1] 2.1 Sistemas de Controle O termo sistema é usado para descrever uma série de componentes que interagem em torno de uma condição limite imaginária, e somente a entrada e a saída são de interesse. [2] Um sistema pode tanto ser uma usina inteira como somente um motor elétrico. Embora possam ser complexos o conjunto de componentes e suas interações dentro do sistema, podemos apenas considerar que todos esses componentes fazem parte de um bloco, e o que realmente interessa são as entradas e as saídas desse bloco. [2] História dos Sistemas de Controle O primeiro trabalho significativo de controle automático foi o regulador centrífugo construído por James Watt para o controle de velocidade de uma máquina a vapor, no século XVIII. Outros trabalhos importantes nos primeiros estágios do desenvolvimento de teoria de controle se devem a Minorsky, Hazen e Nyquist, entre muitos outros. Em 1922, Minorsky trabalhou em controladores automáticos para pilotagem de embarcações e demonstrou como a estabilidade poderia ser determinada a partir de equações diferenciais que descrevem o sistema. Em 1932, Nyquist desenvolveu um procedimento relativamente simples para a determinação da estabilidade de sistemas de malha fechada com base na resposta de malha
14 3 aberta a excitações senoidais estacionárias. Em 1934, Hazen, que introduziu o termo servomecanismos para sistemas de controle de posição, discutiu o projeto de servomecanismos a relé, capaz de acompanhar de perto uma variação de entrada. [1] Durante a década de 40, métodos de resposta em freqüência tornaram possível aos engenheiros projetar sistemas de controle linear de malha fechada que satisfizessem o desempenho requerido. Do final da década de 40 ao início da de 50, o método de lugar das raízes, graças a Evans, foi plenamente desenvolvido sendo utilizado até hoje. [1] Sistemas de Malha Fechada e Malha Aberta Os sistemas de controle podem ser divididos em dois grupos dependendo da forma que o controle age, sendo de malha aberta ou malha fechada Sistemas de Controle de Malha Aberta São aqueles em que o sinal de saída não exerce nenhuma ação de controle no sistema. Na presença de distúrbios, um sistema de controle de malha aberta não vai executar a tarefa desejada. [1] Figura 2.1 Sistema de controle em malha aberta Sistemas de Controle de Malha Fechada Um sistema que estabeleça uma relação de comparação entre a saída e a entrada de referências, utilizando a diferença como meio de controle, é denominado sistema de controle de malha fechada. Os sistemas de controle com realimentação não estão limitados à engenharia, podendo ser encontrados no corpo humano, por exemplo no sistema do equilíbrio do corpo, sendo um sistema extremamente desenvolvido. Em sistemas de controle e malha fechada, o erro atuante realimenta o controlador, de modo que minimize o erro e acerte a saída do sistema ao valor desejado.[1]
15 4 Figura 2.2 Sistema de controle em malha fechada [1] Estratégias de Controle Existem algumas formas de o elemento de controle reagir a um sinal de erro. Para um sistema em malha aberta, o tipo de controle mais conveniente é o on-off, ações temporizadas ou sequencia de chaveamento temporizados. Para o controle em malha fechada os controles são do tipo on-off com controle proporcional combinado, neste controle a saída do controlador é um sinal que é proporcional ao erro.[2] Controle Proporcional (P) Em alguns processos simples a ação proporcional é suficiente para fazer o controle do sistema Neste caso a ação proporcional é dado por: Equação 2.1 Quanto maior o valor de K menor é a banda proporcional, e quanto maior o ganho K menor será o valor do erro em regime permanente, mas nunca será nulo Controle Proporcional Integral (PI) A principal função da ação integral no sistema é tornar o erro nulo, mas a ação integral aplicada isoladamente tende a piorar a estabilidade relativa do sistema, por isso para contrabalançar este efeito combina-se um controlador proporcional constituindo-se o controlador PI, sendo o sinal dado por:
16 5 Equação Controlador Proporcional Derivativo (PD) A saída do processo segue certa inércia com relação a modificações na variável de entrada e/ou o controle pode estar em atraso para corrigir o erro. Com isso o processo se comporta com transitórios de grande amplitude e período de oscilação, podendo em casos extremos ficar instáveis. A ação derivativa combinada com a proporcional tem a função de antecipar a ação de controle a ser aplicado. A estrutura do controlador PD é dada por: Equação Controlador Proporcional Integral Derivativo (PID) O Controlador Proporcional Integral Derivativo combina as vantagens do controlador PI e PD. A ação integral está diretamente ligada à precisão do sistema sendo responsável pelo erro nulo em regime permanente. O efeito desestabilizador do controlador PI é contrabalançado pela ação derivativa que tende a aumentar a estabilidade relativa do sistema ao mesmo tempo em que torna a resposta do sistema mais rápida devido ao seu efeito antecipatório. [2] O sinal de controle gerado é dado como: Equação 2.4 Na Figura 2.3 tem-se um diagrama de bloco representando um Controlador PID, a planta onde o controle está atuando e a resposta do sistema através do erro.
17 6 Controle PID referência erro Figura 2.3 Controlador PID [2] 2.2 Inteligência Artificial Existem duas linhas principais de pesquisa para a construção de sistemas inteligentes: a linha conexionista e a linha simbólica. A linha conexionista visa a modelagem da inteligência humana através da simulação dos componentes do cérebro, isto é, de seus neurônios, e de suas interligações. Esta proposta foi formalizada inicialmente em 1943, quando o neuropsicólogo McCulloch e o lógico Pitts propuseram um primeiro modelo matemático para um neurônio. Um primeiro modelo de rede neuronal, isto é, um conjunto de neurônios interligados, foi proposto por Rosenblatt em Este modelo, chamado Perceptron, teve suas limitações demonstradas por Minsky e Papert em livro onde as propriedades matemáticas de redes artificiais de neurônios são analisadas. Durante um longo período essa linha de pesquisa não foi muito ativa, mas o advento dos microprocessadores, pequenos e baratos, tornou praticável a implementação de máquinas de conexão compostas de milhares de microprocessadores, o que, aliado à solução de alguns problemas teóricos importantes, deu um novo impulso às pesquisas na área. O modelo conexionista deu origem à área de redes neuronais artificiais. [3] A linha simbólica ficou conhecida nas décadas de 60 e 70 pela aparição de sistemas baseados em conhecimento através da memória, nesta época um dos grandes desafios da inteligência artificial simbólica eram os jogos de xadrez. A quantidade requerida de conhecimento para estes sistemas terem um efeito inteligente fez-se necessário a criação de micromundos onde as soluções eram simplificadas em uma amostra limitada de entrada.
18 7 Com isso estes sistemas tornaram difíceis de serem construídos para os controles mais simples ou até mesmo aqueles onde os seres humanos fazem de forma tão rotineira Redes Neurais Artificiais O final da década de 80 marcou o ressurgimento da área de Redes Neurais Artificiais (RNAs), também conhecida como conexionismo ou sistemas de processamento paralelo e distribuído. Esta forma de computação não-algorítmica é caracterizada por sistemas que, em algum nível, relembram a estrutura do cérebro humano. Por não ser baseada em regras ou programas, a computação neural se constitui uma alternativa à computação algorítmica convencional, aquela em que o programador escreve o código do programa a ser executado e prevê todas as variâncias do mesmo. [4] RNAs são sistemas paralelos distribuídos compostos por unidades de processamento simples que calculam determinadas funções matemáticas (normalmente não-lineares). Tais unidades são dispostas em uma ou mais camadas e interligadas por um grande número de conexões, geralmente unidirecionais. Na maioria dos modelos estas conexões estão associadas a pesos, os quais armazenam o conhecimento representado no modelo e servem para ponderar a entrada recebida por cada neurônio da rede. O funcionamento destas redes é inspirado no cérebro biológico. [4] A capacidade de aprender através de exemplos e de generalizar a informação aprendida é o atrativo principal da solução de problemas através de RNAs. A generalização, que está associada à capacidade de a rede aprender através de um conjunto reduzido de exemplos e posteriormente dar respostas coerentes para dados não-conhecidos, é uma demonstração de que a capacidade das RNAs vai muito além do que simplesmente mapear relações de entrada e saída. As RNAs são capazes de extrair informações não-apresentadas de forma explícita através dos exemplos. As RNAs não capazes de atuar como mapeadores universais de funções multivariáveis, com custo computacional que cresce apenas linearmente com o número de variáveis. Outra característica importante é a capacidade de autoorganização e de processamento temporal. Estas características fazem das RNAs uma ferramenta computacional extremamente poderosa e atrativa para a solução de problemas complexos. [4]
19 O Cérebro biológico O cérebro humano contém em torno de neurônios, sua célula fundamental. Cada um destes neurônios processa informações sinápticas e se comunica com milhares de outros continuamente e em paralelo. A estrutura individual dos nodos (conexões de neurônios), a topologia de suas conexões e o comportamento conjunto destes nodos naturais forma a base para o estudo das RNAs. [4] A Figura 2.4 mostra a estrutura de um neurônio biológico onde são identificados os dentritos, estruturas que recebem os sinais sinápticos (pulsos eletro-químicos), o corpo celular, onde é feito o controle dos pulsos e se o neurônio vai ser ativado ou não, e o axônio, estrutura responsável pela transmissão da informação para as dentritos de outros neurônios. Figura 2.4 Neurônio biológico [4] As RNAs tentam reproduzir as funções das redes biológicas, buscando implementar seu comportamento básico e sua dinâmica. No entanto, do ponto de vista físico, no momento as redes artificiais se diferem bastante das redes biológicas. É importante, contudo, observar as similaridades entre estes dois tipos de sistemas. Acredita-se que o futuro da neurocomputação possa se beneficiar ainda mais do desenvolvimento de modelos que tenham biológico. Estruturas encontradas nos sistemas biológicos podem inspirar o espera-se que a Biologia e as Ciências Cognitivas possam se beneficiar do desenvolvimento dos modelos da neurocomputação.
20 Neurônios Artificiais: Modelo MCP O modelo de neurônio proposto por McCulloch e Pitts é uma simplificação do que se sabia então a respeito do neurônio biológico. Sua descrição matemática resultou em um modelo com n terminais de entrada x1, x2,...,xn (que representam os dentritos) e apenas um terminal de saída y (representando o axônio). Para emular o comportamento das sinapses, os terminais de entrada do neurônio têm pesos acoplados w1,w2,...wn cujos valores podem ser positivos ou negativos, dependendo de as sinapses correspondentes serem inibitórias ou excitatórias.[4] Um neurônio biológico dispara quando a soma dos impulsos que ele recebe ultrapassa o seu limiar de excitação. O corpo do neurônio, por sua vez, é emulado por um mecanismo simples que faz a soma dos valores xiwi recebidos pelo neurônio (soma ponderada) e decide se o neurônio deve ou não disparar (saída igual a 1 ou a 0) comparando a soma obtida ao limiar do neurônio. A ativação do neurônio artificial é obtida através da aplicação de uma função de ativação, que ativa ou não a saída, dependendo do valor da soma ponderada das suas entradas. Na descrição original do modelo MCP, a função de ativação é dada pela função de limiar descrita na Equação 1.1. O nodo MCP terá então sua saída ativa quando: Equação 2.5 onde n é o número de entradas do neurônio, wi é o peso associado à entrada xi e é o limiar do neurônio. [4] Na Figura 2.5 é mostrado o diagrama representativo do neurônio artificial. Figura 2.5 Modelo de neurônio MCP [4]
21 Algoritmos de Aprendizado Redes Neurais Artificiais possuem a capacidade de aprender por exemplos e fazer interpolações e extrapolações do que aprenderam. No aprendizado conexionista, não se procura obter regras como na abordagem simbólica da Inteligência Artificial, mas sim determinar a intensidade de conexões entre neurônios. Um conjunto de procedimentos bemdefinidos para adaptar os parâmetros de uma RNA para que a mesmo possa aprender uma determinada função é chamado de algoritmo de aprendizado. [4] A utilização de uma RNA na solução de uma tarefa passa inicialmente por uma fase de aprendizagem, quando a rede extrai informações relevantes de padrões de informação apresentados para ela, criando assim uma representação própria para o problema. A etapa de aprendizagem consiste em um processo iterativo de ajuste de parâmetros da rede, os pesos das conexões entre as unidades de processamento, que guardam, ao final do processo, o conhecimento que a rede adquiriu do ambiente em que está operando. [4] Controladores Neurais Controladores clássicos trabalham visando a minimização do erro entre a entrada desejada e a resposta da planta ao sinal de controle. Controladores neurais partem normalmente de um processo prévio de identificação da inversa da planta para então prover os sinais de controle para os atuadores. A capacidade de adaptação e aprendizado on-line das RNAs é muitas vezes utilizada para corrigir ações de controle de controladores clássicos présintonizados atuando em sistemas com parâmetros variáveis. Eventuais mudanças no ponto de operação do sistema são corrigidas pela atuação das RNAs.[4] Figura 2.6 Sistema de um controlador neural [4]
22 Lógica Fuzzy Aristóteles, filósofo grego ( a.c.), foi o fundador da ciência da lógica, e estabeleceu um conjunto de regras rígidas para que conclusões pudessem ser aceitas como logicamente válidas. O emprego da lógica de Aristóteles levava a uma linha de raciocínio lógico baseado em premissas e conclusões. Como um exemplo: se é observado que "todo ser vivo é mortal" (premissa 1), a seguir é constatado que "Sarah é um ser vivo" (premissa 2), como conclusão, temos que "Sarah é mortal". Desde então, a lógica Ocidental, assim chamada, tem sido binária, isto é, uma declaração é falsa ou verdadeira, não podendo ser ao mesmo tempo parcialmente verdadeira e parcialmente falsa. Esta suposição e o princípio da não contradição cobrem todas as possibilidades, formam a base do Pensamento Lógico Ocidental. A Lógica Fuzzy (Lógica Nebulosa) viola estas suposições. Um sim ou um não como resposta a estas questões é, na maioria das vezes, incompleta. Na verdade, entre a certeza de ser e a certeza de não ser, existem infinitos graus de incerteza. Esta imperfeição intrínseca à informação representada numa linguagem natural tem sido tratada matematicamente no passado com o uso da teoria das probabilidades. Contudo, a Lógica Fuzzy (Nebulosa), com base na teoria dos Conjuntos Fuzzy (Nebulosos), tem se mostrado mais adequada para tratar imperfeições da informação do que a teoria das probabilidades. A Lógica Fuzzy encontra-se entre as técnicas mais recentes de Inteligência Artificial, também conhecida como Conjuntos Fuzzy. Este termo, a princípio, nos convida a pensar em algo confuso (nebuloso), porém, atualmente, é bastante utilizado e definido. [5] A Lógica Fuzzy consiste em aproximar a decisão computacional da decisão humana, tornando as máquinas mais capacitadas a seu trabalho. Isto é feito de forma que a decisão de uma máquina não se resuma apenas a um "sim" ou um "não", mas também tenha decisões "abstratas", do tipo "um pouco mais", "talvez sim", e outras tantas variáveis que representem as decisões humanas. É um modo de interligar inerentemente processos analógicos que deslocam-se através de uma faixa contínua para um computador digital que podem ver coisas com valores numéricos bem definidos (valores discretos). Uma das principais potencialidades da Lógica Fuzzy, quando comparada com outros esquemas que tratam com dados imprecisos como redes neurais, é que suas bases de conhecimento, as quais estão no formato de regras de produção, são fáceis de examinar e entender. Este formato de regra também torna fácil a manutenção e a atualização da base de conhecimento. [5]
23 História da Lógica Fuzzy O conceito de Conjunto Fuzzy foi introduzido, em 1965, por Lotfi A. Zadeh (Universidade da Califórnia, Berkeley). A ele é atribuído o reconhecimento como grande colaborador do Controle Moderno. Em meados da década de 60, Zadeh observou que os recursos tecnológicos disponíveis eram incapazes de automatizar as atividades relacionadas a problemas de natureza industrial, biológica ou química, que compreendessem situações ambíguas, não passíveis de processamento através da lógica computacional fundamentada na lógica booleana. Procurando solucionar esses problemas o Prof. Zadeh publicou em 1965 um artigo resumindo os conceitos dos Conjuntos Fuzzy, revolucionando o assunto com a criação de Sistemas Fuzzy. Em 1974, o Prof. Mamdani, do Queen Mary College, Universidade de Londres, após inúmeras tentativas frustradas em controlar uma máquina a vapor com tipos distintos de controladores, incluindo o PID, somente conseguiu fazê-lo através da aplicação do raciocínio Fuzzy. [5] Figura 2.7 Taxonomia da Computação Evolutiva [6] Sistemas de Controle Fuzzy Um sistema de controle fuzzy usa um processo de fuzzificação, gerador de entradas para um mecanismo de inferência, que é uma base de conhecimento das ações a serem tomadas. O processo inverso, defuzzificação, gera os valores reais, que serão aplicados na máquina ou processo sobre controle. A chave para desenvolver um sistema de controle fuzzy é iterativamente construir uma base de regras que suporte a resposta desejada, construindo
24 13 essas regras a partir do conhecimento do problema. Em muitos casos isso é muito intuitivo e proporciona um controle robusto em um pequeno espaço de tempo. [6] Variáveis linguísticas Uma variável linguística é uma variável cujos valores são nomes de conjuntos fuzzy. Por exemplo, a temperatura de um determinado processo pode ser uma variável linguística assumindo valores baixa, média, e alta. Estes valores são descritos por intermédio de conjuntos fuzzy, representados por funções de pertinência, conforme mostrado na Figura 2.8. Figura 2.8 Funções de pertinência para a variável temperatura[8] Generalizando, os valores de uma variável linguística podem ser sentenças em uma linguagem especificada, construídas a partir de termos primários (alto, baixo, pequeno, médio, grande, zero, por exemplo), de conectivos lógicos (negação não, conectivos e ou), de modificadores (muito, pouco, levemente, extremamente) e de delimitadores (como parênteses). [8] Funções de pertinência As funções de pertinência podem ter diferentes formas, dependendo do conceito que se deseja representar e do contexto em que serão utilizadas. Para exemplificar o quanto o contexto é relevante na definição de funções de pertinência e de sua distribuição ao longo de um dado universo, considere-se a variável linguística estatura (de pessoas), constituída dos seguintes termos: T(estatura) = {baixa, média, alta}. A esses faz-se corresponder conjuntos fuzzy A, B e C, respectivamente), definidos por suas funções de pertinência. Uma escolha possível de funções de pertinência seria:
25 14 Figura 2.9 Funções de pertinência para a variável estatura[8] Na definição acima, estaturas de até 1,5 metros apresentam grau de pertinência igual a 1 no conjunto A; o grau de pertinência neste conjunto decresce à medida que a estatura aumenta. Considera-se que uma estatura de 1,75 metros é "totalmente compatível" com o conjunto B, ao passo que estaturas acima de 1,8 metros (aproximadamente) apresentam grau de pertinência diferente de zero em C. Pessoas com estatura acima de 2 metros são "definitivamente" altas. Observe-se que, nesta definição das funções de pertinência, estaturas em torno de 1,75 metros têm grau de pertinência diferente de zero somente no conjunto B, o que poderia parecer inadequado para alguns observadores. Estes prefeririam que as funções de pertinência de A e B se interceptassem em 1,75 metros (com graus de pertinência nulos, a exemplo daquelas da Figura 1), por exemplo. [8] Além disso, diferentes pessoas, ou grupos de pessoas, podem ter noções distintas a respeito das estaturas de seus semelhantes. Um escandinavo provavelmente utilizaria funções de pertinência diferentes daquelas escolhidas por um representante de uma tribo de pigmeus, ou as distribuiria de outra forma ao longo do universo. Ou seja, o contexto é particularmente relevante quando da definição de funções de pertinência. [8] Funções de pertinência podem ser definidas a partir da experiência e da perspectiva do usuário mas é comum fazer-se uso de funções de pertinência padrão, como, por exemplo, as de forma triangular, trapezoidal e Gaussiana. Em aplicações práticas as formas escolhidas inicialmente podem sofrer ajustes em função dos resultados observados. Funções de pertinência contínuas podem ser definidas por intermédio de funções analíticas. Por exemplo, a seguinte função geral pode ser usada para definir as funções de pertinência associadas aos conjuntos fuzzy correspondentes aos termos pequeno, médio e grande: Equação 2.6
26 15 A forma de (x) A µ pode ser modificada através da manipulação dos três parâmetros a, b e c. Por exemplo: Funções de pertinência descontínuas são compostas de segmentos contínuos lineares, resultando em formas triangulares ou trapezoidais. Funções de pertinência discretizadas consistem de conjuntos de valores discretos correspondendo a elementos discretos do universo. [8] Relações Fuzzy No caso de conjuntos ordinários, uma relação exprime a presença ou a ausência de uma associação (ou interação) entre elementos de dois ou mais conjuntos. Formalmente, dados dois universos X e Y, a relação R definida em X Y é um subconjunto do produto cartesiano de dois universos, de tal forma que R: X Y {0,1}. Ou seja, se algum x X e y Y estiverem relacionados, R(x, y) =1; caso contrário, R(x, y) = 0. Isto pode ser expresso pela seguinte função característica (ou função de pertinência bivalente): Equação 2.7 As relações podem ser expressas de forma analítica (para universos infinitos, por exemplo), ou de forma tabular, muito utilizada no caso de universos finitos (e discretos). Esta última forma recebe o nome de matriz relacional, cujos elementos são ou zero ou um. Relações fuzzy generalizam o conceito de relações e representam o grau da associação entre elementos de dois ou mais conjuntos fuzzy. Exemplos de caráter linguístico seriam: x é muito maior do que y, x está próximo de y. Formalmente, dados dois universos X e Y, a relação fuzzy R é um
27 16 conjunto fuzzy em X Y, caracterizada por uma função de pertinência (x, y) [0,1], onde x X e y Y. [8] A interseção e a união de relações fuzzy são definidas de forma similar às mesmas operações com conjuntos fuzzy. Considerando-se duas relações fuzzy R e S definidas em um mesmo espaço X Y, as funções de pertinência resultantes são: Equação 2.8 Equação Sistema de Inferência Fuzzy Um Sistema de Inferência Fuzzy é mostrado na Figura 2.10, onde estão identificadas as funções de cada bloco. Figura 2.10 Sistema de Inferência Fuzzy [8] Neste Sistema de Inferência Fuzzy, consideram-se entradas não-fuzzy, ou precisas resultantes de medições ou observações (conjuntos de dados, por exemplo), que é o caso da
28 17 grande maioria das aplicações práticas. Em virtude disto, é necessário efetuar-se um mapeamento destes dados precisos para os conjuntos fuzzy (de entrada) relevantes, o que é realizado no estágio de fuzzificação. Neste estágio ocorre também a ativação das regras relevantes para uma dada situação. Uma vez obtido o conjunto fuzzy de saída através do processo de inferência, no estágio de defuzzificação é efetuada uma interpretação dessa informação. Isto se faz necessário pois, em aplicações práticas, geralmente são requeridas saídas precisas. [8] No caso de um sistema de controle, por exemplo, em que o controle é efetuado por um sistema de inferência fuzzy (ou controlador fuzzy), este deve fornecer à planta dados ou sinais precisos, já que a "apresentação" de um conjunto fuzzy à entrada da planta não teria significado algum. Existem vários métodos de defuzzificação na literatura; dois dos mais empregados são o centro de gravidade e a média dos máximos. Neste, a saída precisa é obtida tomando-se a média entre os dois elementos extremos no universo que correspondem aos maiores valores da função de pertinência do consequente. Com o centro de gravidade, a saída é o valor no universo que divide a área sob a curva da função de pertinência em duas partes iguais. [8] As regras podem ser fornecidas por especialistas, em forma de sentenças linguísticas, e se constituem em um aspecto fundamental no desempenho de um sistema de inferência fuzzy. Novamente tomando o exemplo de um controlador fuzzy, este só terá um bom desempenho se as regras que definem a estratégia de controle forem consistentes. Extrair regras de especialistas na forma de sentenças do tipo se... então pode não ser uma tarefa fácil, por mais conhecedores que eles sejam do problema em questão. Alternativamente ao uso de especialistas para a definição da base de regras, existem métodos de extração de regras de dados numéricos. Estes métodos são particularmente úteis em problemas de classificação e previsão de séries temporais. No estágio de inferência ocorrem as operações com conjuntos fuzzy propriamente ditas: combinação dos antecedentes das regras, implicação e modus ponens generalizado. Os conjuntos fuzzy de entrada, relativos aos antecedentes das regras, e o de saída, referente ao consequente, podem ser definidos previamente ou, alternativamente, gerados automaticamente a partir dos dados. [8] Um aspecto importante é a definição dos conjuntos fuzzy correspondentes às variáveis de entrada (antecedentes) e à(s) de saída (consequente(s)), pois o desempenho do sistema de inferência dependerá do número de conjuntos e de sua forma. Pode-se efetuar uma sintonia "manual" das funções de pertinência dos conjuntos, mas é mais comum empregarem-se métodos automáticos. A integração entre sistemas de inferência fuzzy e redes neurais
29 18 originando os sistemas neuro-fuzzy ou algoritmos genéticos tem se mostrado adequada para a sintonia de funções de pertinência, assim como para a geração automática de regras. 2.3 Software Matlab O MATLAB (MATrix LABoratory) é um software interativo de alta performance voltado para o cálculo numérico. O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional. Sendo um sistema interativo cujo elemento básico de informação é uma matriz que não requer dimensionamento, esse sistema permite a resolução de muitos problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um programa semelhante em linguagem Fortran, Basic ou C. Além disso, as soluções dos problemas são expressas quase exatamente como elas são escritas matematicamente. [7] 2.4 Software Simulink O Simulink, desenvolvido pela companhia The MathWorks, é uma ferramenta para modelagem, simulação e análise de sistemas dinâmicos. Sua interface primária é uma ferramenta de diagramação gráfica por blocos e bibliotecas customizáveis de blocos. O software oferece alta integração com o resto do ambiente MATLAB. Simulink é amplamente usado em teoria de controle e processamento digital de sinais para projeto e simulação multidomínios.
30 19 3 METODOLOGIA 3.1 Etapas O presente Trabalho de Conclusão de Curso foi dividido em cinco etapas, sendo a primeira etapa a análise da Planta Didática Controladora de Nível que foi utilizada para o experimento, a segundo etapa foi a construção do controlador PID simulado no Software Simulink através da construção em blocos do sistema, a terceira a criação do Controlador Fuzzy utilizando o Fuzzy Logic Toolbox do Matlab, a quarta etapa o desenvolvimento do Controlador de Rede Neural por meio do Neural Network Toolbox também do Matlab e a quinta etapa a implementação desses controles na Planta Didática Controladora de Nível onde foram realizados os testes práticos, tendo como objetivo manter o nível de água igual ao de referência escolhido pelo operador do controle. 3.2 Análise da Planta Didática Controladora de Nível Para a aplicação deste trabalho foi utilizada uma Planta Didática Controladora de Nível criada para o Trabalho de Conclusão de Curso do aluno Diego Rodrigo Carraro da Universidade São Francisco, oferecida pela faculdade no laboratório de Controles Térmicos como mostra a Figura 3.1. Figura 3.1 Planta Didática Controladora de Nível [9]
31 Planta Didática A planta foi constituída de estrutura metálica e utilizaram-se também duas bases de madeira, uma superior e uma inferior, para o alojamento dos componentes da planta. O reservatório superior tem dimensões retangulares e uma capacidade útil de 30 litros, a altura máxima do líquido é de 500 mm. Detalhes construtivos da planta podem ser vistos na referência [9] Bomba Centrífuga Para fazer o bombeamento da água do tanque inferior para o superior é utilizada uma bomba centrífuga MARK GRUNDFOS modelo SR Figura 3.2 Bomba Centrífuga MARK GRUNDFOS SR-5-25 [9] As condições de funcionamento da bomba são fornecidas pelo fabricante e através da vazão é possível determinar a capacidade manométrica, o NPSH requerido e a potência. Na Figura 3.3 [9] podem-se verificar os gráficos dos itens falados anteriormente.
32 21 Figura 3.3 Curvas características da bomba MARK GRUNDFOS SR-5-25 [9] Inversor de Frequência A Planta utiliza um inversor de freqüência VFD (Variable Frequêncy Driver) com o objetivo de controlar a tensão da rede de forma que a rotação da bomba seja controlada. Na Figura 3.4 [9] pode ser visualizado o modelo de inversor de freqüência CFW08.
33 22 Figura 3.4 Inversor de freqüência CFW08 [9] A voltagem máxima regulada para a entrada do inversor de freqüência foi de 5V Sensor de nível O elemento de medição do nível d água é um sensor diferencial de pressão modelo MPX5010DP da Motorola cujas características nominais são: Tensão de alimentação: 5Vcc Tensão de saída: 0,2Vcc à 4,93Vcc Diferencial de pressão: 0 à 10kPa Figura 3.5 Sensor de Pressão MPX5010DP (Motorola)
34 Construção do Controlador PID no Simulink Foi utilizado para fazer a construção do controlador PID o Software Simulink, este sendo um módulo auxiliar do Matlab. Usou-se então um bloco de Ganho de Referência para adequar o sinal de entrada deste controlador. Para a sintonização foi utilizado o métodos das raízes. Para a ação Proporcional do controlador PID foi utilizado um bloco de Ganho com fator K igual a 1,2 conforme Figura 3.6. Figura 3.6 Parte Proporcional Um Integrador configurado com limite de saturação de valor 50 e Tempo Integral igual 0,7 conforme Figura 3.7. Figura 3.7 Parte Integral Na ação derivativa utilizou-se um bloco derivativo de Tempo Diferencial igual a 1,2 conforme 3.8. Figura 3.8 Parte Derivativa Na Figura 3.9 pode-se ver o controlador PID completo montado em estrutura de blocos no Simulink.
35 24 Figura 3.9 Controlador PID em bloco no Simulink 3.4 Construção do Controlador Fuzzy Utilizando o Fuzzy Logic Toolbox (Figura 3.10) foi criado, no editor de inferência fuzzy, um controle fuzzy do tipo Mamdani e o método de defuzzificação por centro de gravidade. Foram utilizados como entradas para o controlador fuzzy o erro de nível e a velocidade do erro de nível (derivada do erro). Figura 3.10 Editor de sistema de inferência fuzzy
36 25 A função de pertinência para as duas entradas foram escolhidas como sendo do tipo Gauss por melhor se adaptar na prática de um sensor de nível. O domínio da grandeza para as funções pertinência do erro de nível foi de -0,3 até 0,3 e para as funções de pertinência da velocidade do erro foi de -0,1 até 0,1, estes valores foram baseados em estudos práticos feitos no laboratório. Na Figura 3.11 pode-se visualizar o editor de função pertinência. Figura 3.11 Editor de função pertinência O perfil das funções de pertinência da entrada de erro é demonstrado na Figura 3.12 e o perfil das funções de pertinência da entrada velocidade do erro na Figura 3.13.