Universidade Federal da Paraíba Centro de Tecnologia Programa de Pós-Graduação em Engenharia Mecânica Mestrado - Doutorado CONTROLADOR NEURAL COM CAMADA OCULTA DEFINIDA POR MEIO DE ALGORITMO GENÉTICO APLICADO AO POSICIONAMENTO DE UM MANIPULADOR ROBÓTICO por Thyago Leite de Vasconcelos Lima Dissertação de Mestrado apresentada à Universidade Federal da Paraíba para obtenção do grau de Mestre João Pessoa - Paraíba Março-2012 THYAGO LEITE DE VASCONCELOS LIMA CONTROLADOR NEURAL COM CAMADA OCULTA DEFINIDA POR MEIO DE ALGORITMO GENÉTICO APLICADO AO POSICIONAMENTO DE UM MANIPULADOR ROBÓTICO Dissertação apresentada ao Programa de Pós-Graduação em Engenharia Mecânica da Universidade Federal da Paraíba, em cumprimento às exigências para obtenção do Grau de Mestre. Orientador: Professor Dr. Isaac Soares de Freitas João Pessoa - Paraíba 2012 L732c Lima, Thyago Leite de Vasconcelos. Controlador neural com camada oculta definida por meio de algoritmo genético aplicado ao posicionamento de um manipulador robótico / Thyago Leite de Vasconcelos Lima.-- João Pessoa, 2012. 152f. : il. Orientador: Isaac Soares de Freitas Dissertação (Mestrado) – UFPB/CT 1. Engenharia Mecânica. 2. Manipulador robótico – controle de posição. 3. Redes neurais. 4. Algoritmo genético. UFPB/BC CDU: 621(043) CONTROLADOR NEURAL COM CAMADA OCULTA DEFINIDA POR MEIO DE ALGORITMO GENÉTICO APLICADO AO POSICIONAMENTO DE UM MANIPULADOR ROBÓTICO por THYAGO LEITE DE VASCONCELOS LIMA Dissertação aprovada em 27 de abril de 2012 Período letivo 2011.2 ______________________________________ Prof. Dr. Isaac Soares de Freitas Orientador – UFPB ______________________________________ Prof. Dr. Simplício Arnaud da Silva Examinador Interno – UFPB ______________________________________ Prof. Dr. José Bezerra de Menezes Filho Examinador Externo – IFPB João Pessoa - PB 2012 DEDICATÓRIA Dedico este trabalho a Deus, a meus pais Francisco das Chagas de Vasconcelos Lima e Joseni Leite de Vasconcelos Lima, a minha irmã, Thayane Leite de Vasconcelos Lima, bem como a todas as pessoas que contribuíram de alguma forma para a realização deste trabalho. AGRADECIMENTOS Primeiramente, a Deus, pois sem Sua presença nada seria possível. A minha família, pelo apoio durante toda a trajetória de vida. Ao meu orientador, professor Isaac S. de Freitas, pela atenção, apoio e amizade. Ao professor José Bezerra de Menezes Filho pela dedicação, esforço e paciência que tanto contribuíram para a realização deste projeto. Aos professores Jobson Francisco da Silva e Alberdan Santiago de Aquino, e a Sra. Maria Cléa Cavalcante da Silva, pela contribuição e incentivo no decorrer da montagem experimental desse projeto. Aos amigos Carlos Alberto, Henrique Nóbrega, Bruno Jácome e Júlio Véras por toda a contribuição positiva e dedicação no decorrer deste projeto. A todos os professores e alunos do Programa de Pós Graduação em Engenharia Mecânica por estarem sempre dispostos em ajudar para o desenvolvimento do trabalho. CONTROLADOR NEURAL COM CAMADA OCULTA DEFINIDA POR MEIO DE ALGORITMO GENÉTICO APLICADO AO POSICIONAMENTO DE UM MANIPULADOR ROBÓTICO RESUMO No presente trabalho trata-se do controle de posicionamento de um manipulador robótico com dois graus de liberdade. Tal controle é realizado por meio da aplicação de uma rede neural multicamadas, emulando um controlador do tipo PD2. A escolha do número de neurônios na camada oculta é feita com auxílio de um Algoritmo Genético, cujo papel é gerar populações em que os indivíduos serão o número de neurônios na camada oculta e avaliar o desempenho do sistema de controle quando submetido a diferentes referências. Os dois melhores indivíduos de cada geração darão origem a população da iteração seguinte, observando as probabilidades de cruzamento e mutação, utilizando assim o critério do elitismo como garantia de otimização. A avaliação do desempenho geral do sistema de controle, por sua vez, é feita com base na resposta ao acompanhamento de trajetória (sinais senoidais) e a resposta de posicionamento (sinais do tipo degrau). Palavras chaves – controle de posição, redes neurais, manipulador robótico, algoritmos genéticos. NEURAL CONTROLLER WITH HIDDEN LAYER DEFINED BY MEANS OF GENETIC ALGORITHM APPLIED TO THE POSITIONING OF A ROBOTIC MANIPULATOR ABSTRACT This work presents the position control of a robotic manipulator with two degrees of freedom. Such control is accomplished by applying a multilayer neural network, emulating a PD2 controller. The choice of the number of neurons in the hidden layer is made with the aid of a Genetic Algorithm, whose role is to generate populations where individuals will be the number of neurons in the hidden layer and evaluate the performance of the control system when subjected to different references signals. The two best individuals of each generation will give origin to the population of the next iteration, noting the probabilities of crossover and mutation, using the criterion of elitism as a warranty of optimization. The evaluation of the overall performance of the control system, in turn, is based on trajectory following response (sinusoidal reference signals) and on position response (step reference signals). Keywords – position control, neural networks, robotic manipulator, genetic algorithms. SUMÁRIO CAPÍTULO I ................................................................................................................ 17 APRESENTAÇÃO ....................................................................................................... 17 1.1 INTRODUÇÃO ................................................................................................... 17 1.2 OBJETIVOS E MOTIVAÇÃO DA PESQUISA ............................................... 20 1.3 ORGANIZAÇÃO DA DISSERTAÇÃO ............................................................ 21 CAPÍTULO II ............................................................................................................... 22 REVISÃO BIBLIOGRÁFICA .................................................................................... 22 2.1 INTRODUÇÃO ................................................................................................... 22 2.2 NOTAS HISTÓRICAS SOBRE ROBÔS .......................................................... 22 2.3 DEFINIÇÃO DE ROBÔ ..................................................................................... 26 2.3.1 Elementos de um Manipulador Robótico .............................................................. 26 2.3.2 Classificação dos Robôs ........................................................................................ 29 2.4 ESTRUTURAS DE CONTROLE ...................................................................... 33 2.4.1 Controle Clássico .................................................................................................. 34 2.4.2 Controle Adaptativo .............................................................................................. 35 2.4.3 Lógica Fuzzy .......................................................................................................... 38 2.4.4 Redes Neurais Artificiais ....................................................................................... 39 2.4.5 Algoritmos Genéticos ............................................................................................ 45 2.4.6 Redes Neurais Evolutivas ...................................................................................... 52 CAPÍTULO III DESCRIÇÃO E INSTRUMENTAÇÃO DO MANIPULADOR ROBÓTICO .................................................................................................................. 53 3.1 INTRODUÇÃO ................................................................................................... 53 3.2 MANIPULADOR ROBÓTICO COM DOIS GRAUS DE LIBERDADE ....... 53 3.2.1 Sistema de Acionamento ........................................................................................ 57 3.2.2 Sistema de Comando e Proteção ........................................................................... 62 CAPÍTULO IV IDENTIFICAÇÃO DO SISTEMA E PROJETO DO CONTROLADOR NEURAL ...................................................................................... 64 4.1 INTRODUÇÃO ................................................................................................... 64 4.2 IDENTIFICAÇÃO, PROJETO E SIMULAÇÃO DO SISTEMA DE CONTROLE ................................................................................................................. 64 4.2.1 Identificação Experimental (caixa preta) .............................................................. 65 4.2.2 Aplicação do Algoritmo Genético ......................................................................... 68 4.2.3 Modelo do Controlador Neural ............................................................................. 71 4.2.4 Algoritmo de Retropropagação da Rede Neural ................................................... 75 4.2.5 Simulação do sistema e aquisição dos pesos sinápticos iniciais .......................... 77 4.2.6 Resposta do sistema para simulação dos controladores neurais .......................... 78 CAPÍTULO V ............................................................................................................... 82 UTILIZAÇÃO DO CONTROLADOR NEURAL NO ACIONAMENTO DO MANIPULADOR ROBÓTICO .................................................................................. 82 5.1 INTRODUÇÃO ................................................................................................... 82 5.2 NOTAS SOBRE O SISTEMA ............................................................................ 82 5.3 ENSAIOS DE ACIONAMENTO DO SISTEMA.............................................. 83 5.3.1 Ensaios de Acionamento com Excitações do Tipo Degrau .................................. 83 5.3.2 Ensaios de Acionamento com Excitações do Tipo Seno e Cosseno ..................... 91 CAPÍTULO VI.............................................................................................................. 94 COMENTÁRIOS E CONCLUSÕES FINAIS ........................................................... 94 6.1 COMENTÁRIOS E CONCLUSÕES ................................................................. 94 6.2 PROPOSTAS PARA TRABALHOS FUTUROS ............................................. 95 REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................... 96 APÊNDICE A ............................................................................................................. 109 TESTES COM O ALGORITMO GENÉTICO ........................................................ 109 A.1 INTRODUÇÃO ................................................................................................. 109 A.1.1 Resultados dos testes para o braço ..................................................................... 109 A.1.2 Resultados dos testes para a base ....................................................................... 132 LISTA DE TABELAS Tabela 2.1 - Exemplos de representação do cromossomo .............................................. 47 Tabela 4.1 – Resultados de simulação do AG para o braço do manipulador robótico... 71 Tabela 4.2 – Resultados de simulação do AG para a base do manipulador robótico..... 71 Tabela 4.3 – Valores observados na simulação para referência ao degrau .................... 79 Tabela 4.4 – Valores simulados do controle neural de posição para referências com funções circulares ........................................................................................................... 81 Tabela 5.1 – Índices de desempenho experimentais extraídos das curvas de resposta da base ................................................................................................................................. 86 Tabela 5.2 – Índices de desempenho experimentais extraídos das curvas de resposta do braço ............................................................................................................................... 88 11 LISTA DE FIGURAS Figura 1.1 – Manipulador robótico de seis graus de liberdade (Adaptado de GIRALT, 1997) ............................................................................................................................... 18 Figura 2.1 – Elos (vínculos) e junta de um manipulador robótico (Rosário, 2005) ....... 27 Figura 2.2 – Tipos de juntas dos manipuladores robóticos ............................................ 28 Figura 2.3 – Robô de Coordenadas Cartesianas ............................................................. 29 Figura 2.4 – Robô de Coordenadas Cilíndricas .............................................................. 30 Figura 2.5 – Robô de Coordenadas Esféricas ................................................................. 30 Figura 2.6 – Robô de Articulação Horizontal (“SCARA”) ............................................ 31 Figura 2.7 – Robô Articulado ou Antropomórfico ......................................................... 31 Figura 2.8 – Robô Paralelo ............................................................................................. 32 Figura 2.9 – Sistema de controle .................................................................................... 33 Figura 2.10 – Sistema de controle em malha aberta ....................................................... 34 Figura 2.11 – Sistema de controle em malha fechada .................................................... 34 Figura 2.12 – Controlador PID ....................................................................................... 35 Figura 2.13 – Estrutura de um controlador adaptativo ................................................... 36 Figura 2.14 – Controle adaptativo direto ........................................................................ 37 Figura 2.15 – Controle adaptativo indireto..................................................................... 38 Figura 2.16 – Modelo do neurônio de McCulloch e Pitts .............................................. 40 Figura 2.17 – Funções de ativação ................................................................................. 42 Figura 2.18 – Rede neural de múltiplas camadas ........................................................... 43 Figura 2.19 – Rede neural cíclica ................................................................................... 44 Figura 2.20 – Funcionamento básico do AG (BITTENCOUT, 2007) ........................... 46 Figura 2.21 – Método de seleção por roleta .................................................................. 48 Figura 2.22 – Exemplo de crossover de um ponto ......................................................... 49 Figura 2.23 – Exemplo de crossover de dois pontos ...................................................... 49 Figura 2.24 – Exemplo de crossover uniforme............................................................... 50 12 Figura 2.25 – Exemplo de Mutação................................................................................ 50 Figura 3.1 – Ilustração do manipulador robótico utilizado na pesquisa ......................... 54 Figura 3.2 – Representação do braço mecânico desenvolvido ....................................... 54 Figura 3.3 – Elementos de acionamento do braço mecânico ......................................... 55 Figura 3.4 – Elementos de acionamento da base ............................................................ 56 Figura 3.5 – Sistema montado ........................................................................................ 56 Figura 3.6 – Manipulador robótico utilizado nas pesquisas ........................................... 57 Figura 3.7 – Manipulador robótico e sistema de comando............................................. 57 Figura 3.8 – Diagrama esquemático do sistema ............................................................. 58 Figura 3.9 – Placa de aquisição de dados (NI-DAQ USB 6008) ................................... 59 Figura 3.10 – Transdutor angular (potenciômetro) ........................................................ 59 Figura 3.11 – Transferidor da base ................................................................................. 60 Figura 3.12 – Transferidor do braço ............................................................................... 60 Figura 3.13 – Diagrama de acionamento, comando e proteção do sistema.................... 63 Figura 4.1 – Sinal de excitação e curva de saída experimental da base ......................... 66 Figura 4.2 – Curvas de resposta experimental e simulada do sistema – Base ................ 66 Figura 4.3 – Sinal de excitação e curva de saída experimental do braço ....................... 67 Figura 4.4 – Curvas de resposta experimental e simulada do sistema – Braço .............. 68 Figura 4.5 – Fluxograma do AG utilizado na pesquisa .................................................. 69 Figura 4.6 – Estrutura da rede neural utilizada na pesquisa ........................................... 74 Figura 4.7 – Controlador neural para a base ................................................................... 75 Figura 4.8 – Controlador neural para o braço ................................................................ 75 Figura 4.9 – Curva de resposta da base para uma referência de 100° ............................ 78 Figura 4.10 – Curva de resposta do braço para uma referência de 80° .......................... 79 Figura 4.11 – Resposta à referência cossenoidal - Base ................................................. 80 Figura 4.12 – Resposta à referência senoidal - Braço .................................................... 80 Figura 5.1 - Curvas de resposta e de referência ao Degrau de 100° da base .................. 84 Figura 5.2 - Curva de resposta da variável de controle da base para uma referência do tipo degrau de 100 ° ........................................................................................................ 84 Figura 5.3 – Curvas de resposta e de referência ao Degrau de -100° da base ................ 85 Figura 5.4 – Curva de resposta da variável de controle da base para uma referência do tipo degrau de -100 ° ...................................................................................................... 85 13 Figura 5.5 – Curvas de resposta e de referência ao Degrau de 80° do braço ................. 86 Figura 5.6 – Curva de resposta da variável de controle do braço para uma referência do tipo degrau de 80 ° .......................................................................................................... 87 Figura 5.7 – Curvas de resposta e de referência ao Degrau de -80° do braço ................ 87 Figura 5.8 – Curva de resposta da variável de controle do braço para uma referência do tipo degrau de -80 ° ........................................................................................................ 88 Figura 5.9 – Curvas de resposta e de referência degrau variável do braço .................... 89 Figura 5.10 – Variável de controle para curva de resposta ao degrau variável do braço 89 Figura 5.11 – Curvas de resposta e de referência degrau variável da base .................... 90 Figura 5.12 – Variável de controle para curva de resposta ao degrau variável da base . 90 Figura 5.13 - Acompanhamento de trajetória senoidal – Braço ..................................... 91 Figura 5.14 – Variável de controle para acompanhamento de trajetória senoidal – Braço ........................................................................................................................................ 92 Figura 5.15 – Acompanhamento de trajetória cossenoidal – Base ................................. 92 Figura 5.16 – Variável de controle para acompanhamento de trajetória cossenoidal – Base ................................................................................................................................ 93 14 LISTA DE SÍMBOLOS e(k) Erro de posição no instante de amostragem k e(k-1) Erro de posição armazenado no instante anterior ao tempo k e(k-2) Erro de posição armazenado no instante anterior ao tempo k-1 ess (%) Erro de regime permanente do sinal em porcentagem f Freqüência aplicada ao estator do motor de indução UP % Ultrapassagem Percentual do sinal n Comprimento do vetor erro nr Velocidade de rotação do rotor do motor de indução ns Velocidade de rotação síncrona do campo magnético do estator do motor de indução p Número de pólos do motor de indução s Escorregamento do motor de indução T Período do sinal Ts(s) Tempo de assentamento do sinal em segundos Vcc Tensão de corrente contínua in(i) Sinais de entrada para uma rede neural de multicamadas S Operador da Transformada de Laplade Z Operador da Transformada Z Whid Matriz de pesos sinápticos entre a camada oculta e a camada de saída de uma Rede Neural de Multcamadas Win Matriz de pesos sinápticos entre a camada de entrada e a camada oculta de uma Rede Neural de Multicamadas Vin Matriz do campo induzido na camada oculta da Rede Neural Y Matriz do sinal funcional dos neurônios da Rede Neural vout Campo induzido na camada de saída da Rede Neural out Sinal de saída da Rede Neural out Gradiente local da camada de saída da Rede Neural 15 Δhid Matriz de variação dos elementos de Whid in Gradiente local da camada oculta da Rede Neural Δin Matriz de variação dos elementos de Win η Fator de convergência da Rede Neural 16 CAPÍTULO I APRESENTAÇÃO 1.1 INTRODUÇÃO A necessidade de desenvolvimento e aplicação de ferramentas capazes de auxiliar o homem em suas tarefas cotidianas está presente desde os primórdios de sua origem. No decorrer dos séculos, vários eventos contribuíram para a eventual substituição do homem pela máquina, como o desenvolvimento da máquina a vapor por James Watt, em 1769. No que se refere à sociedade industrial verifica-se que o avanço tecnológico vivenciado nas últimas décadas gerou alterações nas estruturas de organização do processo produtivo, estimulando assim a adoção de variados modelos de produção com o objetivo de minimizar os custos industriais. Neste contexto destacam-se a automação programável, relativa à fabricação em série de pequenos e médios lotes de produtos, e automação flexível, referida à fabricação de lotes variáveis de produtos diversos (ROMANO, 2002). Os robôs industriais desempenham um papel de destaque nos processos de automação programável ou flexível devido a sua capacidade de se adaptar a situações diversas e de serem capazes de realizar inúmeros movimentos programados. Nas décadas de 50 e 60 os robôs industriais foram introduzidos com a finalidade de substituir o homem na execução de tarefas repetitivas e/ou perigosas visando uma melhoria na qualidade, aumento da produtividade e redução dos custos de produção. No final da década de cinquenta foi desenvolvido o que se pode chamar de primeiro robô automático, um conceito de J. K. Devol, chamado Unimate (GIRALT, 1997). O projeto do Unimate utilizava princípios de controle desenvolvidos em 17 máquinas operatrizes com comando numérico para controlar o manipulador, que por sua vez era acionado hidraulicamente, da mesma maneira que o teleoperador “master-slave” (FU et al., 1987). No ano de 1961 esse robô foi instalado no chão-de-fábrica da Ford e, desde então, a robótica continuou a se desenvolver de maneira acelerada, de tal forma que atualmente existem estudos com robôs capazes de imitar movimentos humanos (KOMAGOME et al., 2007) e com robôs para aplicações domésticas (WANG et al., 2010). Na Figura 1.1 está representado o arquétipo do robô manipulador inspirado no braço humano. Através da programação dos três ângulos do braço (α, β, γ), e da aplicação do comando adequado aos motores das três articulações é possível levar o atuador a um dado ponto dentro dos limites espaciais de trabalho. De maneira análoga, pode-se programar os três ângulos (ψ, θ, φ) e comandar os acionadores do pulso para levar o elemento presente na extremidade do braço a tomar a orientação desejada com base na tarefa a ser realizada (GIRALT, 1997). Figura 1.1 – Manipulador robótico de seis graus de liberdade (Adaptado de GIRALT, 1997) Os robôs industriais vêm sendo empregados em tarefas como o transporte e manejo de materiais (ENDO et al., 2008), montagem e manufatura (FEI et al., 2010), soldagem (CHEN et al., 2008), pintura (GAZEAU et al., 2011). Contudo, para assegurar que a presença do robô no processo produtivo seja verdadeiramente proveitosa é preciso que seja aplicada uma boa estratégia de controle. A partir da segunda metade do século passado, com o crescente avanço da automação industrial, têm sido cada vez maiores os 18 esforços direcionados ao controle automático de sistemas dinâmicos. Durante esse período, várias técnicas de controle têm sido estudadas, como controle robusto, controle ótimo, controle adaptativo, controle não-linear, controle inteligente. Como alternativas ao controle convencional são aplicados os controles inteligentes, consistindo basicamente de três abordagens: sistemas especialistas baseados em conhecimento, controle por lógica fuzzy e controle por redes neurais (PARASKEVOPOULOS, 1995). Denomina-se Rede Neural Artificial (RNA) um processador paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para uso (HAYKIN, 2001). Ainda segundo o mesmo autor, a rede neural se assemelha ao cérebro humano nos seguintes aspectos: – O conhecimento é adquirido pela rede a partir de seu ambiente por meio de um processo de aprendizagem; – Forças de conexão entre neurônios, conhecidas como pesos sinápticos, são utilizadas para armazenar o conhecimento adquirido. Na literatura são encontrados inúmeros trabalhos com aplicação de redes neurais, seja na robótica (ZHAO-HUI et al., 2007; ZHAO e CHEAH, 2009), na medicina (YAN et al., 2006) ou no ramo automotivo (ORTEGA e SILVA, 2008). Recentemente, NÓBREGA SOBRINHO (2011) apresentou um acionamento automático de uma mesa de coordenadas X-Y acionada por motores de indução trifásicos utilizando redes neurais artificiais para o seu controle de posição e acompanhamento de trajetória. Existem também sistemas de controle que combinam computação evolutiva e redes neurais. Entre os métodos de computação evolutiva pode-se citar o algoritmo genético. De acordo com CAMPOS & SAITO (2004) os algoritmos genéticos são métodos de busca inspirados nos mecanismos de seleção natural (Teoria da Evolução) e da genética. Estes algoritmos combinam um mecanismo de valorização dos indivíduos, mais adaptados ao objetivo em questão (elitismo), com uma estrutura para combinar e reproduzir, aleatoriamente, estes indivíduos, criando uma nova população. Assim, a cada geração, um conjunto de novos indivíduos é criado utilizando-se informações contidas na geração passada. A cada nova iteração (geração) é gerada uma população 19 que apresenta novas e melhores soluções para o problema em que foi aplicado o algoritmo genético, culminando assim em uma convergência (FERNANDES, 2005). Estes algoritmos foram estudados inicialmente por John Holland, em meados dos anos 70 (HOLLAND, 1975) e podem ser divididos nas seguintes etapas: – Inicialização: gera uma população de respostas em potencial para um problema a ser tratado; – Avaliação: nesta etapa é avaliada a aptidão das soluções, ou indivíduos da população, de forma que se verifica o quão bem essas respostas se adequam ao problema proposto; – Seleção: as soluções são selecionadas para reprodução, de forma que a probabilidade de uma resposta ser selecionada é proporcional à sua aptidão; – Cruzamento: informações pertinentes às soluções escolhidas são recombinadas, gerando assim novos indivíduos; – Mutação: características das soluções que resultaram do processo de reprodução são modificadas, com o objetivo de acrescer variedade à população; – Atualização: os indivíduos criados nesta geração são inseridos na população; – Finalização: nesta etapa se verifica se as condições necessárias para o encerramento da evolução foram satisfeitas. Caso negativo, o processo retorna para a etapa de avaliação. SOUZA (2008) apresentou a aplicação dos algoritmos genéticos na proteção e estimação de harmônicos em sistemas elétricos de potência. COELHO & MARIANI (2006) desenvolveram um sistema híbrido neuro-evolutivo aplicado ao controle de um processo multivariável. 1.2 OBJETIVOS E MOTIVAÇÃO DA PESQUISA O objetivo do presente trabalho é apresentar o desenvolvimento de um manipulador robótico, assim como realizar seu controle de posição e acompanhamento de trajetória por meio da aplicação de redes neurais multicamadas. A estrutura de controle utiliza Redes Neurais Artificiais (RNA) com atualização de pesos sinápticos através do mecanismo de retropropagação e emula um controlador PD2, que é utilizado em sistemas que têm dois pólos dominantes e apresenta comportamento integral (um terceiro pólo igual a 1). 20 O número de neurônios da camada oculta da RNA é determinado pelo algoritmo genético, com base na resposta do sistema de controle quando submetido a variados sinais de referência. Os controladores neurais apresentam capacidade de adaptação frente a eventuais variações da planta e fácil implementação utilizando-se a linguagem C ou ambientes de programação do tipo LabVIEW® ou MATLAB® 1.3 ORGANIZAÇÃO DA DISSERTAÇÃO O trabalho está organizado em seis capítulos, de forma que cada capítulo apresenta os seguintes conteúdos: No Capítulo II apresenta-se uma revisão bibliográfica do conteúdo da pesquisa. Neste são apresentados um breve histórico sobre os robôs, contemplando sua classificação, os elementos inerentes a um manipulador robótico, os tipos de juntas e as definições de graus de liberdade e mobilidade, respectivamente. Além disso, é apresentada uma revisão a respeito das filosofias de controle utilizadas atualmente. No Capítulo III versa-se sobre o projeto, desenvolvimento e instrumentação do manipulador robótico, contemplando sua descrição mecânica, o sistema de acionamento, o sistema de aquisição de dados e, por fim, o sistema de medição de posição. Este capítulo apresenta também uma nota sobre o tipo de motor de indução trifásico utilizado no projeto, além da justificativa de sua seleção, e o principio de funcionamento dos inversores de frequência. No Capítulo IV é apresentado o procedimento de identificação do sistema. Também é descrito o processo de seleção da arquitetura da rede por meio da aplicação de algoritmos genéticos. Por fim, é apresentado o desenvolvimento dos controladores neurais do sistema do manipulador robótico. No Capítulo V são mostrados os resultados experimentais obtidos em testes realizados em laboratório com a estratégia de controle utilizada. Os ensaios apresentados foram obtidos com foco em controle de posição e acompanhamento de trajetória. No capítulo VI, são feitos alguns comentários finais e a conclusão acerca do projeto. Em complemento, são apresentadas algumas propostas para trabalhos futuros. 21 CAPÍTULO II REVISÃO BIBLIOGRÁFICA 2.1 INTRODUÇÃO Neste capítulo é apresentada uma breve revisão bibliográfica a respeito da história da robótica, bem como aspectos construtivos e classificações dos robôs. Com relação às estruturas de controle são apresentadas metodologias de controle clássico, adaptativo, controle por lógica fuzzy, controle por redes neurais, controladores baseados em algoritmos genéticos e controladores híbridos. 2.2 NOTAS HISTÓRICAS SOBRE ROBÔS O termo robô teve sua origem em 1917, derivado da palavra tcheca robata, que significa "trabalho forçado”. Sua primeira aparição foi na obra de ficção científica “Opilek” e três anos depois na peça teatral “Os Robôs Universais de Rossum”, ambas do escritor tcheco Karel Capek. No trabalho artístico, um cientista chamado Rossum, juntamente com seu filho, fabricava humanos artificiais, denominados robôs, cuja existência era destinada à realização de trabalhos escravos. Nos anos que se seguiram os robôs apresentam as mesmas características básicas expostas na obra teatral: a semelhança morfológica com seres humanos e a capacidade de repetir comandos de um operador. Nos países de língua eslava, a palavra robata significa trabalhador, embora nos dias atuais signifique tanto humano quanto mecânico (SNYDER, 1985). 22 Na década de 40, Isaac Asimov e John Campbell tornaram popular o conceito de robô, descrevendo-o como máquinas inteligentes, de aparência humana, não possuidora de sentimentos e de bom comportamento que seguem fielmente as instruções e comandos sugeridos por humanos, de forma a seguirem determinadas regras éticas de conduta. Foram nos trabalhos de Asimov e Campbell que o termo robótica foi aplicado pela primeira vez para designar a ciência que se dedica ao estudo dos robôs e também que as três leis da robótica foram propostas (SCHIAVICCO, SICILIANO, 1995): Primeira lei – Um robô não fará mal a um ser humano, nem por omissão, permitirá que o ser humano seja ferido; Segunda lei – Um robô obedecerá às ordens dadas pelos humanos, exceto se tais ordens conflitarem com a primeira lei; Terceira lei – Um robô protegerá sua própria existência, até o instante em que tal ação conflite com as duas primeiras leis. No meio científico, o surgimento dos robôs foi resultado de constantes evoluções e inovações nas técnicas de manufatura de dispositivos e de resolução de modelos matemáticos. A base tecnológica para os atuais robôs foi desenvolvida a partir de pesquisas iniciadas logo após a Segunda Grande Guerra Mundial (ROMANO, 2002). Os primeiros robôs construídos apresentavam uma constituição que imitava o braço humano possuindo forma serial na união de seus segmentos (FU et al., 1987). Tratavase de robôs teleoperados do tipo “master-slave”, empregados em atividades de manipulação de materiais radioativos. O sistema era formado de um manipulador “master”, manipulado por um operador humano responsável por realizar a sequência de movimentos desejada, e um manipulador “slave” capaz de reproduzir os movimentos realizados pelo “master” de maneira remota (ROMANO, 2002). Entre as décadas de 50 e 60 os robôs foram inseridos nos processos industriais, associados aos objetivos da produção automatizada, a qual visa (BOUTEILLE et al., 1997): – Reduzir custos dos produtos fabricados, por meio de: diminuição do número de pessoas envolvidas na produção, aumento da quantidade de produtos em um dado período (produtividade), melhor utilização de matéria-prima (redução de perdas, otimização do aproveitamento), economia de energia, etc.; 23 – Melhorar a qualidade do produto, por meio do controle mais racional dos parâmetros de produção; – Melhorar as condições de trabalho do ser humano, por meio da eliminação de atividades perigosas ou insalubres de seu contato direto; – Realizar atividades impossíveis de serem controladas manualmente ou intelectualmente, como por exemplo, a montagem de peças em miniatura, a coordenação de movimentos complexos e atividades muito rápidas (deslocamento de materiais). Algumas das atividades mais comuns exercidas pelos robôs são: montagem e manufatura (FEI et al., 2010), soldagem a arco e a ponto (YANPING et al., 2009; CHEN et al., 2008), transporte e manejo de materiais (WARWELA et al., 2010; ENDO et al., 2008), pintura (JARVIS, 1973; ASAKAWA et al., 1997; FUHLBRIGGE et al., 2008; GAZEAU et al., 2011). A partir da instalação do Unimate na linha de produção da Ford, em 1961 (GIRALT, 1997), a robótica continuou seu veloz desenvolvimento (SANTOS, 2004; McKERROW, 1993; GROVER et al., 1986; HUNT, 1983): – Em 1968 foi desenvolvido no Standford Reserach Institute o “Shakey”, um robô móvel dotado de câmera de vídeo e sensores de contato. Esse robô foi desenvolvido com o objetivo de estudar os processos para controle em ambientes complexos; – No ano de 1971 foi desenvolvido pela Universidade de Standford um braço robótico com acionamento elétrico chamado Braço de Standford; – Em 1972 a IBM desenvolveu um robô de coordenadas retangulares para uso interno e possivelmente vendas; – Em 1973 surgiu a primeira linguagem de programação para robôs: WAVE. Também nesse ano o modelo T3 da Cincinnati Milacron tornou-se popular no ambiente industrial. – Introdução do robô PUMA pela Unimation, em 1978, enviado para a GM; – Em 1979 ocorreu o desenvolviemnto do robô SCARA na universidade de Yamanashi; 24 – Desenvolvimento do robô com atuação direta (diret drive) na CMU, em 1981; – Em 1982, tanto a GM e a Fanuc assinaram um acordo para construção de robôs GMFanuc; – Projeto para uma linha de montagem flexível automatizada com aplicação de robôs, em 1983; – Surgimento de muitos sistemas de programação off-line, no ano de 1984; – 1989 – Desenvolvimento de sistemas de reconhecimento de imagens através da visão; – Família de robôs móveis Rocky no Jet Propulsion Laboratory, em 1996; – Anúncio do primeiro robô humanoide que sobe escadas, pela Honda em 1997; – Sistemas de exploração de petróleo por robôs em águas profundas, 2000. Nos últimos anos acompanha-se o desenvolvimento de inúmeros sistemas robóticos para diversos tipos de aplicações, como imitar movimentos humanos (KOMAGOME et al., 2007), robôs cognitivos (WANG et al., 2010), robôs “sociais” instalados em centros comerciais (SHIOMI et al., 2009) , robôs para atuação em resgastes após ocorrência de desastres (SATO, 2008). Os robôs industriais são de grande importância econômica e tecnológica. Até o final de 2007, cerca de 1.25 milhões de robôs foram instalados em todo o mundo, desde sua introdução em 1961 (IFR, 2008). Naquela época, no mínimo 995 mil ainda estavam em operação, a maior parte (65-80%) em indústrias automotivas e de fabricação de metal. Um ponto forte dos robôs industriais é o grau de exatidão que possui para movimentos repetidos, aparentemente de maneira infinita (NIKU,2001), com alturas e cargas variáveis (até 1.000 Kg) (KUKA, 2008). No entanto, aos robôs falta a capacidade para responder em situações de emergência, a menos que a situação seja prevista (NIKU, 2001). Sua força e elevada exatidão de posicionamento e rigidez vêm junto com uma alta relação de massa-carga, 10:1. Apesar de materiais de fibra de carbono estarem sendo empregados (KUKA, 2009), a relação massa-carga ainda é uma ordem de grandeza pior do que a do braço humano. 25 2.3 DEFINIÇÃO DE ROBÔ Por conta de sua constante evolução, muitas definições são possíveis para os robôs. Para a Robotic Industries Association (RIA), um robô industrial é definido como um manipulador reprogramável e multifuncional, projetado para mover e manusear materiais, peças, ferramentas ou dispositivos especiais, capazes de desempenhar uma variedade de tarefas através de movimentos variáveis programados (RIVIN, 1988). A ISO 8373:1994 (ISO, 1994) afirma que um robô industrial é definido como um manipulador programável em três ou mais eixos, controlado automaticamente, reprogramável e multifuncional. Outra definição mais completa é apresentada pela norma ISO 10218-1:2006 (ISO, 2006), cuja definição para robô industrial é: “uma máquina manipuladora com vários graus de liberdade controlada automaticamente, reprogramável, multifuncional, que pode ter base fixa ou móvel para utilização em aplicações de automação industrial”. 2.3.1 Elementos de um Manipulador Robótico Um robô industrial é constituído basicamente pela integração dos seguintes componentes (ROMANO, 2002; RIVIN, 1988, SEERING e SHCEINMAN, 1985; WARNECKE et al., 1985; SCIESZKO, 1988; BORODIN, 1988): a) Manipulador mecânico: refere-se, principalmente, ao aspecto mecânico ou estrutural do robô. Consiste da combinação dos elos conectados entre si através de juntas, sendo o primeiro corpo denominado base e o último o conjunto braço/punho (arm-wrist), onde estará fixo o componente efetuador (garra ou ferramenta). Os robôs manipuladores utilizam, geralmente, as primeiras juntas para posicionar a estrutura constituída pelas juntas seguintes, denominada punho, que é utilizada para orientar o elemento presente no terminal do braço (CARVALHO, 1993). As juntas utilizadas para realizar esse posicionamento formam o braço. O punho apresenta geralmente duas configurações: pitch-yaw-row (Y,Z,X), como o punho humano, ou roll-pitch-roll (Z,Y,Z), também denominado punho esférico. De acordo com ROSÁRIO (2005), os braços mecânicos dos robôs são capazes de se moverem de várias formas, devido as suas juntas ou uniões. O número de juntas pode variar de acordo com o projeto, porém a maioria utiliza entre 3 e 6 juntas. Na Figura 2.1 está ilustrada a junta de um braço mecânico, bem como os elos (vínculos). 26 Figura 2.1 – Elos (vínculos) e junta de um manipulador robótico (Rosário, 2005) As juntas podem ser classificadas em dois grandes grupos: juntas deslizantes ou prismáticas e juntas rotativas. Nas juntas rotacionais (R), a conexão permite movimentos de rotação entre dois vínculos. Nas prismáticas (P), o movimento relativo dos elos é linear. Existe ainda um terceiro tipo de junta, chamada de esférica (S), sendo esta uma combinação de três juntas rotacionais com o mesmo ponto de rotação (SANTO, 2004). Os três tipos de juntas estão ilustrados na Figura 2.2. b) Atuadores: são dispositivos que produzem movimento a uma parte mecânica pelo desenvolvimento de forças baseado em um princípio físico de conversão de energia. O atuador responde a comandos que podem ser manuais ou automáticos. Os atuadores podem ser, em geral, hidráulicos, pneumáticos e eletromagnéticos. Atuadores hidráulicos tornam possível à implementação de um controle contínuo e acurado de velocidade e posicionamento devido à incompressibilidade do óleo hidráulico resultando assim em uma rigidez elevada. A relação entre a potência mecânica transmitida pelo atuador e o seu peso é elevada possibilitando a construção de unidades compactas de alta potência. 27 Figura 2.2 – Tipos de juntas dos manipuladores robóticos Já os atuadores pneumáticos apresentam baixa rigidez devido à compressibilidade do ar tornando-o pouco preciso quanto ao controle de posicionamento entre as posições limite. Atuadores eletromagnéticos apresentam vantagens que os fazem ser os mais aplicados em robôs, como a grande variedade de fabricantes no mercado e a facilidade de se programar seus movimentos. Os atuadores hidráulicos e pneumáticos podem ter a forma de cilindros lineares (movimentos lineares) ou motores (deslocamentos angulares). Como exemplos de atuadores eletromagnéticos podem-se citar o eletroímã, motores de corrente contínua e o motor de passo. c) Sensores: são destinados a fornecer ao controlador informações sobre o comportamento do manipulador, bem como estão ligados à medição do estado interno do robô. Os sensores mais utilizados em manipuladores industriais são os sensores de posição, de velocidade, de proximidade e de extensão. Sensores de posição monitoram a posição das juntas e as informações captadas por eles são utilizadas para determinar a exatidão dos movimentos das juntas. Sensores de extensão medem a distância entre um ponto qualquer e um ponto de referência. Por sua vez, os sensores de velocidade são aplicados na estimação da velocidade com que o manipulador se desloca. Já os sensores de proximidade são utilizados para captar e indicar a presença de algum objeto dentro de um espaço ou distância específica sem a necessidade de contato físico. d) Controlador: responsável por gerar e monitorar as informações que comandarão um ou mais atuadores com base em um algoritmo de controle. É um dispositivo que realiza operações matemáticas sobre o sinal de erro com o objetivo de 28 produzir uma ação corretiva de modo que o sistema satisfaça certos critérios de desempenho. Tais operações matemáticas são chamadas de ações de controle (BAZANELLA et al., 2005). e) Efetuador: é o elemento responsável pela interação do robô com o ambiente ao seu redor. Pode ser do tipo garra ou ferramenta, sendo a garra destinada ao transporte e a manipulação de um determinado objeto. A ferramenta, por sua vez, tem a função de realizar uma ação ou trabalho sobre uma peça sem necessariamente ter de manipulá-la. 2.3.2 Classificação dos Robôs Assim como existem diferentes definições para robôs, também existem diversas classificações que levam em conta os aspectos construtivos, a tecnologia empregada em seu controle, ou até mesmo a geração tecnológica. Quanto à estrutura mecânica, as principais configurações básicas de robôs são (SCHIAVICCO e SOCILIANO, 1995; IFR, 2000, GROOVER; 1988): a) Robôs de Coordenadas Cartesianas: apresentam três juntas prismáticas (PPP), o que resulta em um movimento composto por três translações que coincidem com um sistema de coordenadas cartesianas. Figura 2.3 – Robô de Coordenadas Cartesianas b) Robôs de Coordenadas Cilíndricas: são formados por duas juntas prismáticas e uma de rotação (PPR), permitindo que o robô realize movimentos de duas 29 translações e uma rotação. Para esse tipo de robô, os eixos de movimento podem ser descritos no sistema de coordenadas cilíndricas. Figura 2.4 – Robô de Coordenadas Cilíndricas c) Robôs de Coordenadas esféricas: apresentam duas juntas de rotação e uma junta prismática (PRR), permitindo um movimento de uma translação e duas rotações. Figura 2.5 – Robô de Coordenadas Esféricas c) Robôs de Articulação Horizontal (“SCARA”): possuem duas juntas de revolução dispostas em paralelo e uma junta prismática perpendicular ao plano formado pelas juntas de revolução (RRP). Esse tipo de robô é empregado largamente em montagens de placas de circuitos eletrônicos. d) Robô Articulado ou Antropomórfico: é a configuração que garante a maior mobilidade dentre os tipos de robôs. Robôs articulados apresentam ao menos três juntas de rotação. O eixo de movimento da junta de rotação da base é ortogonal às outras duas juntas de rotação, que são simétricas entre si. 30 Figura 2.6 – Robô de Articulação Horizontal (“SCARA”) Figura 2.7 – Robô Articulado ou Antropomórfico e) Robôs paralelos: apresentam uma configuração do tipo plataforma e mecanismos em forma de cadeia cinemática fechada. Uma outra classificação (RIVIN, 1988; ROSEN, 1985; SANTOS, 2004; ROMANO, 2002) refere-se às gerações tecnológicas dos robôs industriais: a) Robôs da 1ª geração: são denominados robôs de sequência fixa, pois repetem uma sequência pré-programada de instruções para realizar operações como a pintura ou a solda; 31 Figura 2.8 – Robô Paralelo b) Robôs da 2ª geração: possuem recursos computacionais (malhas de controle fechadas) retroalimentados por sensores. Tomam decisões com base nas informações coletadas pelos sensores. São capazes de realizar tarefas como o reconhecimento de uma peça a ser manipulada dentro de um conjunto variado de peças; c) Robôs da 3ª geração: diferem da geração anterior por possuírem um sistema de visão para o processamento de imagens integrado à malha de controle fechada; d) Robôs da 4ª geração: são robôs capazes de reprogramar suas ações com base nas informações captadas pelos sensores (robôs com controle adaptativo); e) Robôs da 5ª geração: são robôs que utilizam técnicas de inteligência artificial para tomar decisões, resolver problemas, se conectar com outros robôs e máquinas, armazenar programas e se comunicar com outros sistemas computacionais. Pode-se também, segundo a JIRA (Japanese Industrial Robot Association), classificar os robôs de acordo com o nível de inteligência do controlador (SCHIRMER, 2005): a) Robôs manipulados: dispositivos com vários graus de liberdade operados por seres humanos; b) Robôs de sequência fixa: dispositivos que desempenham sucessivas tarefas de acordo com uma programação previamente definida e imutável, muito difícil de ser modificada; 32 c) Robôs de sequência variável: dispositivos manipuladores que desempenham tarefas sucessivas que podem ser modificadas facilmente; d) Robôs repetitivos: são dispositivos em que o operador guia o robô a executar uma tarefa fixa; e) Robôs de controle numérico: robôs em que o operador fornece o programa de movimento, ao invés de ensiná-lo manualmente; f) Robôs inteligentes: robôs que percebem e interagem com alterações do ambiente. 2.4 ESTRUTURAS DE CONTROLE Define-se como planta ou processo um sistema a ser controlador, como representado de maneira simplificada pela Figura 2.9. O sinal que é aplicado na entrada é chamado sinal de controle. O sinal de saída do processo é denominado variável de processo, cujo comportamento se deseja controlar. Além disso, geralmente os sistemas estão sujeitos à ação de sinais externos chamados perturbações, em cujos valores não se pode interferir (BAZANELLA, 2005). Figura 2.9 – Sistema de controle Um sistema de controle pode ser classificado em malha aberta e malha fechada. Em um sistema de controle dito de malha aberta, o sinal de saída não é medido nem retroalimentado para efetuar-se uma comparação com o sinal de entrada. Nesse tipo de sistema de controle podem-se utilizar controladores e circuitos de acionamento em série com o processo a ser controlado, de modo que a entrada do processo será tal que sua saída se comporte de maneira desejada (NÓBREGA SOBRINHO, 2011). Na Figura 2.10 está ilustrada a estrutura básica de um sistema de controle em malha aberta. 33 Figura 2.10 – Sistema de controle em malha aberta Em um sistema de controle em malha fechada, a diferença entre o sinal de erro e o sinal retroalimentado é chamada de erro. Esse sinal realimentado pode ser tanto o sinal de saída da planta, como uma função do próprio sinal de saída e suas derivadas. O sinal de erro é introduzido no controlador a fim de ser minimizado, de modo que o valor da saída atinja o valor desejado. Dessa forma, o sinal de controle é determinado de forma a corrigir o desvio entre a saída e o sinal de referência. O sistema em malha aberta apresenta sensibilidade às perturbações e incapacidade de corrigir o efeito de tais perturbações, realidade superada pelo sistema em malha fechada. Na Figura 2.11 é ilustrada a estrutura básica de um sistema de controle em malha fechada. Figura 2.11 – Sistema de controle em malha fechada O dispositivo que utiliza o sinal de erro para determinar ou calcular o sinal de controle a ser aplicado à planta é chamado de controlador ou compensador. O controlador executa operações matemáticas sobre o sinal de erro para garantir que o sinal de controle seja capaz de manter a planta dentro de certos critérios de desempenho (BAZANELLA, 2005). O cálculo do sinal de controle pode ser baseado nas variáveis de estado do sistema ou em sinais do sistema (sinal de referência, de saída da planta, do próprio sinal de controle). 2.4.1 Controle Clássico Diversas técnicas para o controle de sistemas podem ser aplicadas, dentre as quais podem ser citadas técnicas clássicas, como projeto por avanço ou atraso de fase 34 (OGATA, 2003; KIM et al., 1994). Na teoria de controle clássico, o sinal de controle também pode ser calculado de outras formas, dentre as quais podem ser destacadas: a) Cálculo através do posicionamento de pólos (MUNSHI et al., 1989); b) Cálculo através da retroalimentação de estados (PARK et al., 1994); c) Cálculo através da ação proporcional, integral e derivativa (PID) (DORF, 2001; AKYUZ et al., 2011) Controladores ditos clássicos possuem seus parâmetros fixos, sintonizados para um ponto de operação ou região específica de um processo. Por não modificar automaticamente seus parâmetros, a etapa de modelagem do processo torna-se de extrema importância para garantir uma boa sintonia do controlador. Atualmente os controladores de estrutura simplificada e padronizada, como os controladores PID, representam a maioria dos controladores empregados em processos industriais em todo o mundo (BAZANELLA, 2005). De acordo com a necessidade do projeto, uma ou mais ações do controlador podem ser utilizadas. A ação proporcional é geralmente empregada e as quatro configurações utilizadas são, por consequência: P, PD, PI, PID, sendo possível utilizar ações separadas em uma malha ou em diferentes malhas de um mesmo sistema (TAKEGAKI et al., 1981; ARIMOTO et al., 1984; WEN et al., 1990; KELLY, 1993). Para um controlador do tipo PID, o sinal de controle é calculado com base no sinal de erro. Na Figura 2.12 é representada em diagrama de blocos a estrutura de um controlador PID. Figura 2.12 – Controlador PID 2.4.2 Controle Adaptativo Um controlador adaptativo é um controlador com parâmetros ajustáveis e um mecanismo de ajuste destes parâmetros (ASTROM e WITTENMARK, 1995). O projeto 35 de um controlador depende, na maioria das vezes, da planta em uma determinada condição de operação. Porém, a exatidão na modelagem de uma planta ou processo apresenta um grau elevado de dificuldade. Além disso, alguns parâmetros da planta podem ser desconhecidos ou conhecidos com incertezas. Dessa forma, surgiu a necessidade de técnicas de estimação desses parâmetros com o intuito de entender e prever melhor o comportamento do processo. O termo controlador adaptativo foi utilizado pela primeira vez na década de 1940 (ISERMANN, 1992). A motivação da adaptação de um sistema de controle surgiu no início da década de 1950 a partir do desenvolvimento de um piloto automático de alto desempenho. A justificativa de um controle adaptativo aplicado a uma aeronave se deveu ao fato de o mesmo operar em uma grande faixa de velocidade e alturas e ter uma dinâmica não-linear e conceitualmente variante no tempo (IOANNOU et al., 1996). Uma estrutura de controle adaptativo contém, em geral, uma malha de retroalimentação, um estimador de parâmetros e um controlador com ganhos ajustáveis (IOANNOU et al., 1996), como apresentado na Figura 2.13. Figura 2.13 – Estrutura de um controlador adaptativo Ainda segundo IOANNOU (1996), a estimação dos parâmetros pode ser feita de duas formas: a) Off-line: após um determinado intervalo de tempo, os parâmetros são estimados através do processamento de dados armazenados previamente; b) Online: periodicamente os parâmetros são atualizados com base em estimativas anteriores e novos dados coletados, sendo a estimação executada simultaneamente com o sistema. 36 Assim sendo, o controle adaptativo consiste na aplicação de uma técnica de estimação para obtenção dos parâmetros do modelo do processo a ser controlado e de seu meio a partir da medição de sinais de entrada e saída da planta e utilizar esse modelo no projeto de um controlador (ASTROM et al., 1985). Uma estrutura de controle adaptativo pode ser classificada em direta e indireta. No controle adaptativo direto, o modelo da planta é parametrizado em termos dos parâmetros do controlador e os parâmetros do controlador são estimados diretamente, sem cálculos intermediários envolvendo estimativas dos parâmetros da planta (IOANNOU et al., 1996). Na Figura 2.14 encontra-se ilustrada a estrutura de controle adaptativo direto. Figura 2.14 – Controle adaptativo direto No controle adaptativo indireto, os parâmetros da planta são estimados on-line e utilizados para calcular os parâmetros do controlador. Em ambas as estruturas, os cálculos dos parâmetros do controlador seguem leis de adaptação. A estrutura do controle adaptativo indireto é ilustrada na Figura 2.15 37 Figura 2.15 – Controle adaptativo indireto As principais técnicas de controle adaptativo, segundo IOANNOU (1996), são: a) PID adaptativo (KUC e HAN, 1998; TANG et al., 2010); b) Controle por Modelo de Referência (MRAC – Model Reference Adaptive Control) (TSAI e TOMIZUKA, 1989); c) Controle Adaptativo por Posicionamento de Pólos (APPC – Adaptive Pole Placement Control) (TAKAGI e UCHIYAMA, 2005; ESAKI et al., 2000); d) Controlador com Ganhos Ajustáveis (Gain Scheduling) (LIU et al., 2009). CARVALHO (2009) apresentou um controle adaptativo aplicado em um robô manipulador de dois graus de liberdade planar. SOUZA (2010) desenvolveu um controle adaptativo aplicado em dois elos de um robô manipulador eletropneumático cartesiano de três graus de liberdade. 2.4.3 Lógica Fuzzy A teoria de sistemas “fuzzy’ se originou da observação de que quando a complexidade de um sistema aumenta, nossa habilidade para concluir fatos e tomar decisões precisas e significativas tende a diminuir até um limite, a partir do qual exatidão e relevância passam a ser características quase excludentes (ZADEH, 1973). A lógica fuzzy foi desenvoldida por Lofti A. Zadeh durante a década de 1960 (CAMARGOS, 2002). A utilização da lógica fuzzy em controle e automação de 38 processos teve início com MAMDANI (1974), na Inglaterra, em que o mesmo desenvolveu uma aplicação para um gerador de vapor experimental, após inúmeras tentativas frustradas com diversos outros tipos de controladores (REYERO e NÍCOLAS, 1995). O controle fuzzy tenta imitar o operador humano baseando-se em uma representação descritiva e experimental do processo (SHAW e SIMÕES, 2004; NOVÁK, 1989). Desta forma, ele tenta produzir ações de controle desejadas tomando como bases modelos da operação do sistema, ao invés de utilizar modelos do próprio processo como em outras técnicas clássicas de controle (CAMPOS e SAITO, 2004). A lógica fuzzy provê um método de traduzir expressões verbais, vagas, imprecisas e qualitativas, comuns na comunicação humana, em uma forma compreensível para os computadores. Se a informação imprecisa ou mesmo faltante puder ser expressa por um conjunto de regras linguísticas da forma “se/então”, é possível implementar um algoritmo computacional que, utilizando um método de inferência baseado no raciocínio aproximado, forneça saída para o sistema modelado (REZENDE et al., 2005; TAKAGI e SUGENO, 1985; SUGENO e KANG, 1988; MAMDANI, 1974). O controle fuzzy é aplicado no controle de vários sistemas, como sistemas fotovoltaicos (SIMÕES e FRANCESCHETTI, 1999; WEIS e XIAO, 2003); na agricultura (SHEN et al., 2007; BURGOS-ARTIZZU et al., 2007); na fisioterapia (KIRYU et al., 2001); na área biomédica (HELD e ROY, 2000; SKELLY e CHIZECK, 2001); na robótica (WAI et al., 2003; YANG et al., 2005; BAI e WANG, 2010; BIGLARBEGIAN et al., 2010; HUANG et al, 2010). Em 2001, SHHEIBIA (2001) apresentou um sistema inteligente desenvolvido para a manipulação de um braço robótico utilizando lógica fuzzy. KULITZ (2004) propôs uma nova estratégia para a obtenção de controladores fuzzy para sistemas não lineares, em especial para robôs e veículos multi-articulados. RUFINO (2008) desenvolveu o protótipo de um robô móvel autônomo com um sistema de controle fuzzy. JÚLIO (2010) apresentou um projeto de controladores fuzzy para uma mesa de coordenadas X-Y acionada por motores de indução trifásicos. 2.4.4 Redes Neurais Artificiais As Redes Neurais Artificiais (RNA’s), diferentemente de computadores digitais convencionais executam suas operações utilizando simultaneamente um grande 39 número de “processadores” (neurônios) operando de maneira paralela. A representação do conhecimento é distribuída pelas conexões e o aprendizado é feito alterando-se valores associados com as conexões (PAGLIOSA, 2003). As RNA’s são caracterizadas por sistemas que, em algum nível, relembram a estrutura das redes neurais do cérebro humano (TAFNER et al., 1996), imitando as habilidades computacionais do sistema nervoso biológico utilizando para isso um grande número de neurônios artificiais interconectados. Um neurônio artificial é a unidade fundamental de processamento de informação de uma rede neural (HAYKIN, 2001). O primeiro modelo artificial de um neurônio biológico foi proposto por McCULLOCH e PITTS (1943) (Figura 2.16). Os autores constataram alguns fatos básicos que tornaram possível a modelagem matemática do neurônio (BRAGA et al., 2000; AZEVEDO, 1999; AZEVEDO et al., 2000; TAFNER et al., 1996), dentre eles o fato dos neurônios se comportarem como “somadores algébricos” e possuírem uma propriedade de “limiar”, ou seja, quando as entradas integradas excederem o limiar, os neurônios disparam um sinal através do axônio . Assim sendo, o modelo de McCULLOCH e PITTS realiza a soma algébrica ponderada dos sinais de entrada de um neurônio que, por sua vez, servirá como entrada para a função de ativação, determinando a saída da rede (HAYKIN, 2001). Figura 2.16 – Modelo do neurônio de McCulloch e Pitts Podem-se identificar três elementos básicos no modelo exposto na Figura 2.16 (IYODA, 2000): – Um conjunto de sinapses ou conexões de entrada, sendo cada entrada ponderada por um peso sináptico; – Uma junção aditiva, responsável pela combinação aditiva dos sinais de entrada, ponderados pelos respectivos pesos das sinapses do neurônio. 40 – Uma função de ativação, geralmente não-linear, representando um efeito de saturação na ativação de saída do neurônio. Tipicamente a excursão da ativação do neurônio é confinada ao intervalo (0,1) ou (-1,1). Uma RNA é classificada pelo algoritmo de aprendizagem utilizado, pelo tipo ou função do neurônio presente e por sua arquitetura (HAYKIN, 2001; REZENDE, 2005). O algoritmo de aprendizagem é um conjunto de procedimentos bem definidos para adaptar os parâmetros de uma RNA de maneira a se obter o desempenho desejado. A etapa de aprendizagem é um processo iterativo de ajuste de parâmetros da rede, os pesos das conexões entre as unidade de processamento que guardam ao final do processo o conhecimento que rede adquiriu do ambiente em que está operando (PAGLIOSA, 2003). Os métodos de aprendizagem de redes neurais podem ser divididos em dois grupos: aprendizado supervisionado e não supervisionado (TAFNER et al., 1996; BRAGA et al., 2000). O método de aprendizagem supervisionado é caracterizado pela presença de um “professor” externo, responsável por fornecer informações da entrada e da saída desejadas para a rede neural. O objetivo desse método é fazer os ajustes dos parâmetros da rede, de tal maneira que se minimize o erro existente. Como exemplos de algoritmos para aprendizado supervisionado são a regra delta (MÁSSON e WANG, 1990; WIDROW, 1962) e sua generalização para redes de múltiplas camadas, o algoritmo backpropagation (BEALE e JACKSON, 1990; WERBOS, 1974; PARKER, 1982; RUMELHART, 1986). No método de aprendizagem não supervisionado não existe um “professor” para supervisionar o processo de aprendizagem, não existindo nenhuma saída desejada explícita ou avaliação externa da saída produzida para cada dado de entrada. O ajuste de pesos sinápticos nesse tipo de algoritmo de aprendizagem deve recorrer apenas aos dados de entrada, tomados como amostras independentes de uma distribuição de probabilidade desconhecida. Como métodos de aprendizagem não supervisionada podem ser citadas a aprendizagem de Hebbian (HEBB, 1949), o aprendizado competitivo (BARRETO, 2001) e o aprendizado winner-take-all (SUM et al., 1999). A função de ativação determina o comportamento individual interno de cada neurônio. Se todos os neurônios têm o mesmo comportamento, ou seja, tem a mesma função de ativação, a rede é dita homogênea, caso contrário a rede é chamada 41 heterogênea (NÓBREGA SOBRINHO, 2011). Definindo-se o campo induzido Vin para cada neurônio como sendo o produto das entradas pelo seu respectivo peso, tal como é mostrado na Equação (2.1) e o sinal funcional Y de acordo com a Equação (2.2), podem-se citar como funções de ativação f(.): função sigmoide, ilustrada na Figura 2.17(a); função tangente hiperbólica, mostrada na Figura 2.17(b); função degrau, Figura 2.17(c); função sinal, ilustrada na Figura 2.17(d). Vin = Win x In (2.1) Y = f (Vin) (2.2) (a) (b) (c) (d) Figura 2.17 – Funções de ativação As conexões entre as camadas de uma rede neural geram diferentes estruturas. Fazem parte da definição de arquitetura os seguintes parâmetros (PAGLIOSA, 2003): a) Número de camadas da rede: as redes neurais podem apresentar estruturas com uma única camada, ou seja, só existe um nó entre qualquer entrada e qualquer saída da rede. Nas redes de múltiplas camadas existe mais de um neurônio entre alguma 42 entrada e alguma saída da rede. A forma mais simples de redes neurais de camada única consiste de um único neurônio na camada de saída, sendo conhecido como perceptron. A Figura 2.16 é um exemplo de perceptron com três neurônios na camada de entrada e um neurônio na camada de saída. Este tipo de estrutura apresenta limitações importantes e podem ser aplicadas com êxito apenas na resolução de uma classe restrita de problemas (apenas problemas linearmente separáveis) (MINSKY e PAPERT, 1988). Algumas das limitações apresentadas pelo perceptron podem ser superadas com a aplicação de redes neurais de múltiplas camadas, com no mínimo uma camada oculta (camada que não é de entrada, nem de saída), ou perceptron multicamadas (MLP – multilayer perceptron) (Figura 2.18). Uma rede neural de múltiplas camadas pode implementar qualquer função (KOVACS, 1996; YONEYAMA e JUNIOR, 2001). Figura 2.18 – Rede neural de múltiplas camadas b) Conexões dos neurônios: uma rede neural pode ser classificada como feedfoward, sem retroalimentação, ou rede com ciclos, possuindo elos de realimentação (AZEVEDO et al., 2000). Em redes feedfoward ou acíclicas, a saída de um neurônio na i-ésima camada da rede não pode ser utilizada como entrada de neurônios em camadas com índice menor ou igual a i (Figura 2.18). Já em redes cíclicas ou feedback, as saídas de algum neurônio da i-ésima camada da rede podem ser utilizadas como entradas de neurônios em camadas de índice menor ou igual a i (Figura 2.19). O sinal pode ser aplicado para excitar a camada inteira, como também para excitar apenas um neurônio em particular. 43 Figura 2.19 – Rede neural cíclica ARCOS CAMARGO (2002) apresentou um controle da trajetória de um robô manipulador tipo SCARA dentro de um volume de trabalho que é definido pelas equações cinemáticas. A determinação da trajetória dentro do volume de trabalho é obtida com o uso de redes neurais artificiais do tipo perceptron de múltiplas camadas que simulam os movimentos do manipulador entre dois pontos quaisquer dentro deste volume. Em ZHAO-HUI et al. (2007) é proposto um método de controle de rastreamento dinâmico da trajetória de manipuladores industriais, utilizando um controlador PD e uma rede neural feedfoward de múltiplas camadas. Em STOICA et al. (2010) é apresentado um controle por redes neurais para robôs industriais cujo método de treinamento leva em conta informações de aprendizados passados, bem como informações de instantes atuais. ZHANG et al. (2001) desenvolveu uma abordagem com redes neurais de múltiplas camadas em conjunto com um controlador PID para melhoria do desempenho de robôs industriais no rastreamento de trajetórias. Nesse trabalho foi constatada uma melhora na dinâmica de atraso e também a diminuição da interferência do atrito entre as partes, melhorando também a qualidade do produto e a eficiência do processo. CHO et al. (2006) propôs esquemas de modelagem e estratégias de controle para veículos aéreos não-tripulados. Já em RICHTER (2009) foi projetada uma arquitetura neural visando sensoriamento virtual de oxigênio em veículos bicombustíveis. Em VICENTE et al. (2007) foi proposto um controlador neural de marcha lenta para motores de combustão interna. 44 2.4.5 Algoritmos Genéticos A computação evolutiva engloba algoritmos inspirados na teoria da evolução das espécies de Darwin (DARWIN, 1859). Historicamente, três algoritmos para computação evolutiva foram desenvolvidos de maneira independente (BACK, 1996): – Algoritmos genéticos (HOLLAND, 1962; BREMERMANN, 1962; FRASER 1957); – Programação evolutiva (FOGEL, 1962); – Estratégias evolutivas (RECHENBERG, 1965; SCHWEFEL, 1965). Algoritmos genéticos trabalham com uma população na qual cada indivíduo é um candidato em potencial à solução de um dado problema. Trata-se de um algoritmo de busca baseado em mecanismos de seleção natural e genética que empregam uma estratégia de busca paralela e estruturada que, embora aleatória, é direcionada à busca de pontos de alta “aptidão” (REZENDE et al., 2005). Apesar de aleatórios, os AG’s não são mecanismos de busca randômica por todo um espaço de soluções, uma vez que exploram informações históricas para definir novos pontos de busca em que há expectativa de um desempenho mais adaptado do que as soluções anteriores. Comparadas com outras técnicas de buscas convencionais, os AG’s diferem nos seguintes pontos (NAGASHIMA, 2006): – A busca da melhor solução para o problema é feita sobre uma população de pontos e não sobre um único ponto, reduzindo sensivelmente o risco de a solução recair sobre um máximo ou mínimo local; – Os algoritmos genéticos realizam uma busca cega. A única exigência é o conhecimento do valor da função de aptidão (fitness) de cada indivíduo. Não há necessidade de qualquer outra informação ou heurística dependente do problema. – Os AG’s usam operadores estocásticos e não regras determinísticas para guiar uma busca altamente exploratória e estruturada, em que informações acumuladas nas iterações (gerações) anteriores são usadas para direcionar essa busca. Segundo GOLDBERG (1989), apesar da simplicidade, os resultados obtidos com a aplicação desse método permite concluir que os AG’s constituem um método de busca robusto, eficaz e eficiente para solucionar uma grande variedade de problemas. PACHECO (2005) afirma que os algoritmos genéticos são particularmente indicados para solucionar problemas de difícil modelagem matemática, problemas com muitas 45 condições ou restrições ou condições que não podem ser representadas matematicamente ou ainda para tratar problemas complexos de otimização. O funcionamento básico de um algoritmo genético é apresentado na Figura 2.20 (BITTENCOUT, 2007; GOLDBERG, 1989). O passo inicial é a geração de uma população aleatória. Em seguida a aptidão dos indivíduos da população será avaliada e os melhores serão selecionados para se reproduzirem (crossover) e assim gerarem descendentes. Os indivíduos pertencentes a essa nova população são passíveis de sofrer mutação, com o objetivo de diversificar a população. Os indivíduos que compõem a nova população, depois da mutação, são avaliados e o processo continua até que uma solução ótima seja encontrada entre os indivíduos da população. Cada iteração do processo é denominada geração. Figura 2.20 – Funcionamento básico do AG (BITTENCOUT, 2007) Um algoritmo genético é composto geralmente por (HAUPTY e HAUPTY, 2004; WHITLEY, 1994): a) População: a população inicial deve ser criada após a definição da quantidade de indivíduos que irão compor a população. O método mais comum aplicado na criação da população é a inicialização aleatória dos indivíduos. Pode-se também utilizar conhecimento inicial a respeito do problema quando o universo de busca é conhecido (BAYER e WANG; 1991). A população é composta por indivíduos, também chamados de cromossomos, sendo cada um desses indivíduos um candidato à solução de um dado problema. A representação de um cromossomo pode ser feita por meio de números reais, números inteiros, caracteres ou por representação binária (Tabela 2.1). A representação mais utilizada é a binária, na qual a estrutura do cromossomo é um vetor de bits de tamanho 46 fixo. Os indivíduos de uma solução são convertidos em binário e concatenados para formar tal vetor. Por exemplo, se a solução para um dado problema for composta de 2 variáveis inteiras, sendo que seus valores variem de 0 a 15, pode-se representar uma solução por meio de um vetor de 8 bits, em que cada grupo de 4 bits corresponde ao valor de uma variável. Se a solução desse problema fosse (10,7), sua representação binária seria [10100111]. Em um cromossomo binário cada bit é um gene e os alelos são os valores assumidos por cada gene b) Avaliação: nesta etapa é quantificado o grau de aptidão do cromossomo enquanto solução de um problema, determinando o quanto um indivíduo está próximo da solução ótima deste problema. A função ou problema recebe como entrada valores de acordo om os genes do cromossomo e devolve como resposta o grau de adaptação (fitness) do indivíduo. Assim sendo, se o problema a ser resolvido for de maximização de uma função, o indivíduo de melhor fitness será aquele que apresentar o maior valor da função quando aplicado à mesma. A aptidão ou fitness de um indivíduo é uma característica importante para o processo de seleção dos cromossomos que serão submetidos aos operadores de cruzamento e mutação (LACERDA e CARVALHO, 1999). Tabela 2.1 - Exemplos de representação do cromossomo Representação Números Reais Números Inteiros Exemplo Cromossomo = [7,7; -1,5; 3,9] Cromossomo = [15; 20; -1] Caracteres Cromossomo = [G O D] Números Binários Cromossomo = [101010] c) Seleção: A seleção é aplicada na população com o objetivo de gerar uma população intermediária que irá ser submetida ao cruzamento e/ou mutação para assim criar a próxima população. Existem várias técnicas de seleção, como o método utilizado no algoritmo genético clássico que é chamado de método da roleta (roulette wheel) (HOLLAND, 1975; MICHALEWICZ, 1996). No método da roleta é atribuída a cada indivíduo uma probabilidade de passar para a população seguinte. Tal probabilidade é proporcional ao seu fitness em relação à somatória da adaptação de todos os indivíduos, sendo maior a probabilidade dos indivíduos mais adaptados serem sorteados. Na Figura 2.21 é ilustrada a criação de uma roleta a partir dos valores de aptidão dos indivíduos de 47 uma população. Para a seleção dos indivíduos a roleta é girada um determinado número de vezes definido pelo número de indivíduos na população. O indivíduo apontado pela seta é selecionado e inserido na população intermediária. Figura 2.21 – Método de seleção por roleta Como alternativa ao roullete wheel, pode-se escolher como solução o melhor indivíduo encontrado em todas as gerações do algoritmo (IYODA, 2000). Outra opção é simplesmente manter o melhor indivíduo da geração atual na geração seguinte. Tal estratégia é denominada seleção elitista (FOGEL, 1994; MICHALEWICZ, 1996). d) Cruzamento: o cruzamento (crossover) é o operador genético cuja função é gerar novos indivíduos por meio da recombinação de características dos pais selecionados para essa operação (BACK et al., 1997). Ele é considerado o operador genético predominante (REZENDE et al., 2005) e respeita uma probabilidade de aplicação definida previamente, denominada probabilidade de cruzamento. Segundo BAYER e WANG (1991) a probabilidade de cruzamento pode variar entre 50% e 100%. Caso o crossover não seja aplicado, os cromossomos filhos serão idênticos aos pais (LACERDA e CARVALHO, 1999). As maneiras mais utilizadas para o operador de cruzamento são: crossover de um ponto, crossover de múltiplos pontos e crossover uniforme. O crossover de um ponto gera um ponto de maneira aleatória e “corta” os cromossomos pais na altura desse ponto. Cada pai troca a segunda parte do seu cromossomo com o outro, dando origem a dois descendentes que possuem caraterísticas pertencentes aos dois pais, mas que diferem dos mesmos (COSTA e SIMÕES, 2004), como ilustrado na Figura 2.22. 48 Figura 2.22 – Exemplo de crossover de um ponto O crossover de múltiplos pontos é uma generalização do crossover de um ponto, em que vários pontos de cruzamento são utilizados. A Figura 2.23 contém uma ilustração desse operador para o caso de dois pontos. Figura 2.23 – Exemplo de crossover de dois pontos Por fim, o crossover uniforme não utiliza pontos de cruzamento, como nos métodos anteriores, mas sim uma máscara de bits do mesmo tamanho dos cromossomos pais, gerada de maneira aleatória. Cada posição da máscara representa um gene do cromossomo original que determina qual dos pais fornecerá ao filho seu gene (COSTA e SIMÕES, 2004). 49 Figura 2.24 – Exemplo de crossover uniforme No exemplo descrito na Figura 2.24, o procedimento para a geração do primeiro filho segue a seguinte regra: o bit 0 da máscara indica a utilização do gene respectivo do primeiro pai, enquanto o bit 1 indica a utilização do gene do segundo pai. A geração do segundo filho segue o procedimento inverso, em que o bit 0 indica o gene do segundo pai e o bit 1 indica o gene do primeiro pai. e) Mutação: faz com que indivíduos da nova geração passem por pequenas alterações, permitindo ao AG explorar locais do universo de busca menos prováveis de serem alcançados. A mutação repõe ou acrescenta um material genético inexistente na população atual, seja por ter sido perdido ou nunca ter existido anteriormente. Este operador genético ocorre com menos frequência do que o crossover, uma vez que sua probabilidade varia entre 0,1% e 5% (BACK et al., 1997). Uma taxa de mutação baixa impede que indivíduos de boa aptidão para solução do problema sejam destruídos e também garante a diversidade da população. O processo de mutação inicia-se com a seleção de um ponto aleatório de um indivíduo e, em seguida, é aplicada uma taxa de probabilidade de troca deste ponto (bit) por outro bit (Figura 2.25), caso a representação do cromossomo seja binária (KOZA, 1995). Figura 2.25 – Exemplo de Mutação 50 e) Critérios de parada: são aplicados com a finalidade de evitar esforço computacional desnecessário e/ou elevado. Segundo LACERDA e CARVALHO (1999) os critérios de parada mais comuns levam em conta o número de gerações, o tempo de processamento, o valor de aptidão do melhor indivíduo ou a convergência a um ponto ótimo. Estipular um número de máximo evita um custo computacional elevado, pois o AG é interrompido ainda que o ponto ótimo não tenha sido alcançado. Já o tempo de processamento de um algoritmo em algumas ocasiões em que se precisa da solução em um curto espaço de tempo precisa ser monitorado. Em situações assim, tal característica pode ser aplicada como critério de parada. O processo também pode ser interrompido quando a aptidão de um indivíduo atingir o valor ótimo, desde que o valor ótimo da função de aptidão seja conhecido. Finalmente, se após uma série de gerações seguidas se observar que o valor de aptidão médio da população ou a aptidão dos melhores indivíduos não sofre alteração ou varia dentro de um intervalo de valores muito próximos, pode-se concluir que um valor ótimo ou próximo do ótimo foi obtido como solução do problema. Sendo assim, o AG é interrompido com base no critério da convergência (RIBEIRO FILHO et al., 1994). QINGCHUM et al. (1998) apresentou a aplicação de algoritmos genéticos para o controle dinâmico e o planejamento de trajetória de um robô móvel. Foi proposta uma nova estratégia genética, GASC (algoritmo genético com código simétrico). VARGAS (2005) desenvolveu uma proposta de relé digital de frequência baseado em algoritmos genéticos. DA-LEI e YAN-LI (2010) utilizaram algoritmos genéticos para o controle e planejamento de trajetória de um robô de futebol. Nesse trabalho foi constatado uma melhora significativa nas chances de vitória em uma partida de futebol de robôs, bem como a redução da perda de robôs em competições quando o algoritmo desenvolvido foi aplicado em robôs reais. YUN et al. (2010) apresentam uma visão geral da aplicação de algoritmos genéticos utilizados para detecção de obstáculos e planejamento de trajetórias de robôs móveis, utilizados para coleta remota de dados em ambientes remotos ou potencialmente hostis. 51 2.4.6 Redes Neurais Evolutivas Métodos baseados em computação evolutiva vêm sendo propostos como uma alternativa robusta e eficiente para o projeto de redes neurais artificiais (IYODA, 2000). Com relação aos algoritmos genéticos, estes podem ser utilizados para otimizar a rede neural, seja no treinamento (ajuste de pesos), otimização da topologia da rede (número de neurônios na camada oculta), geração tanto da topologia como dos pesos das conexões. Grande parte dos trabalhos nessa área aborda a aplicação de algoritmos genéticos no treinamento da rede neural (JASON e FRENZEL, 1993; DIAS, 1999; TANOMARU, 1995). CHEN (1998) propôs a utilização de algoritmo genético com codificação binária para o treinamento da rede e também para o ajuste de parâmetros da função de ativação (ganho e inclinação de uma sigmóide). Em WHITHLEY et al. (1990) é proposto um método evolutivo para definição da conectividade de uma rede neural, ou seja, o número de neurônios na camada oculta foi determinado previamente e o AG foi aplicado para determinar as conexões entre esses neurônios. MORIARTY e MIIKKULAINEN (1998) apresentam um algoritmo coevolutivo para determinar os pesos e a arquiterura da rede. O método proposto na pesquisa foi testado com sucesso em um problema de controle robótico. 52 CAPÍTULO III DESCRIÇÃO E INSTRUMENTAÇÃO DO MANIPULADOR ROBÓTICO 3.1 INTRODUÇÃO Neste capitulo é apresentada a descrição e a instrumentação do sistema do manipulador robótico desenvolvido. Na secção 3.2 é detalhada a construção mecânica do robô de dois graus de liberdade apresentando de maneira clara o posicionamento dos elementos mecânicos responsáveis pelo acionamento. Na secção 3.2.2 são abordados o sistema de acionamento e o sistema de aquisição de dados. Por fim, é apresentado na secção 3.2.3 o sistema de medição.. 3.2 MANIPULADOR ROBÓTICO COM DOIS GRAUS DE LIBERDADE Como pode ser observado na Figura 3.1, o manipulador robótico utilizado na pesquisa é composto por um braço mecânico e uma base, sendo estes responsáveis, respectivamente, pelos movimentos de translação e rotação. O braço do manipulador foi confeccionado em perfil de alumínio quadrado, com as seguintes características: 50,8 mm de largura e 586 mm de comprimento. Como contrapeso, foi acoplada uma massa de chumbo de 3,185 Kg na extremidade “A”. Na extremidade “B” do braço mecânico foi inserido um complemento, cujo perfil é idêntico ao perfil do braço mecânico. A ligação entre tais elementos se dá por meio de uma articulação, sendo esta composta por um eixo e dois mancais de rolamentos. Um mecanismo foi desenvolvido para que este complemento permaneça sempre na posição 53 horizontal, independentemente da posição do braço. Tal configuração é ilustrada na Figura 3.1. Figura 3.1 – Ilustração do manipulador robótico utilizado na pesquisa Figura 3.2 – Representação do braço mecânico desenvolvido O acionamento do braço mecânico é realizado por um motor de indução trifásico de 220/380 V, 60 Hz, 0,33 cv e 1720 RPM. Como a velocidade de rotação do motor selecionado para o projeto é elevada, tornou-se necessária a utilização de um redutor de velocidade acoplado ao eixo do motor. O sistema redutor é composto por um parafuso sem fim com uma entrada, que por sua vez é acoplado a uma engrenagem (coroa) com 66 dentes. Esta configuração tornou possível a redução da rotação de 1720 rpm para 26,06 rpm, como pode ser visto na Equação (3.1): rpm saída rpm motor N .E .S . z (3.1) Em que: rpm saída velocidade de rotação da saída do redutor; 54 RPM motor velocidade de rotação do motor; N .E.S . Número de entradas do parafuso sem fim; z Número de dentes da engrenagem (Coroa). Aplicando-se as relações apresentadas anteriormente na Equação (3.1), tem-se: rpm saída 1720 1. 26 ,06 rpm 66 (3.2) O resultado da Equação (3.2) implica que quando o inversor de frequência estiver emitindo uma frequência de 60 Hz ao motor, este estará girando a uma rotação de 26,06 rpm. Além de objetivar a redução da velocidade de rotação, essa configuração também teve a finalidade de amplificar o torque fornecido à carga. Na Figura (3.3) encontra-se ilustrada a disposição dos elementos do braço inseridos no projeto. Figura 3.3 – Elementos de acionamento do braço mecânico Para o acionamento da base do manipulador, também construída de alumínio, utilizou-se um motor trifásico com as mesmas características do motor utilizado para o acionamento do braço. O mesmo sistema de redução de velocidade e ampliação do torque aplicado no braço foi utilizado na base. Na Figura (3.4) encontra-se ilustrada a configuração dos elementos da base. O sentido de giro e a velocidade de rotação de ambos os motores são controlados por meio de sinais de controle enviados aos inversores de frequência. Os deslocamentos totais do braço e da base são, respectivamente, 100° e 120°. Com a 55 finalidade de proteger o sistema foram dispostos sensores fim de curso na estrutura mecânica do manipulador robótico. Figura 3.4 – Elementos de acionamento da base A ilustração do projeto e sua imagem real estão representadas nas Figuras (3.5) e (3.6), respectivamente. Uma estrutura de alumínio foi desenvolvida para proteger os inversores de frequência e todos os outros elementos necessários ao comando da máquina. Na Figura (3.7) pode-se observar uma imagem do projeto completo. Figura 3.5 – Sistema montado 56 Figura 3.6 – Manipulador robótico utilizado na pesquisa Figura 3.7 – Manipulador robótico e sistema de comando 3.2.1 Sistema de Acionamento Na Figura 3.8 encontra-se devidamente ilustrado um diagrama esquemático do manipulador robótico e seus periféricos. Pode-se observar que este está dividido em cinco partes, sendo elas: computador, placa de aquisição de dados, circuito de condicionamento de sinal, motor de indução trifásico e inversor de frequência. Os controladores foram implementados no programa computacional LabView®, cuja interface de comunicação permite que seja inserido um sinal de referência de posição angular a ser alcançada pelo sistema. Uma vez processada, tal 57 informação é convertida em um sinal de tensão proporcional que, por sua vez, é enviado aos inversores de frequência por meio da interface NI-DAQ. Figura 3.8 – Diagrama esquemático do sistema O processo de aquisição de dados para o controle do manipulador robótico foi realizado por uma placa NI-DAQ USB 6008, fabricada pela National Instruments ®. Tal placa é dotada de 10 canais analógicos (8 entradas e 2 saídas), 12 canais de entrada/saída digitais, um conversor de 12 bits, taxa de amostragem de 10kS/s, faixa de tensão de entrada de ± 10 V, faixa de tensão de saída de 0 a 5 Volts, corrente de saída de 5 mA e transferência de dados USB (Figura 3.9). No projeto foram utilizados os canais analógicos de saída AO 0 e AO 1, para o controle da velocidade de rotação dos motores; as entradas analógicas AI 1 e AI 4, para receber os sinais de tensão das leituras de posição angular enviados pelos potenciômetros e, por fim, as saídas digitais PO 0 e PO 1 para indicar o sentido de rotação dos motores. Para a detecção da posição angular do manipulador robótico foi utilizado um sensor de posição angular (potenciômetro). No projeto foram utilizados dois potenciômetros multivoltas, ambos possuindo uma variação angular correspondente a 10 voltas, fornecendo assim sinais de tensão proporcionais à posição do cursor. Os potenciômetros foram acoplados em um sistema de engrenagens, de modo a fornecerem informações do deslocamento angular do braço e da base. 58 Figura 3.9 – Interface de aquisição de dados (NI-DAQ USB 6008) O referido sensor (Figura 3.10) possui uma resistência elétrica de 10 kΩ /± 5% e é de fabricação TRIMMER ® e de especificação WXD3590. Possui três terminais (a, b e c), de forma que “a” e “b” são conectados em 10 V e GND, respectivamente. O terminal “c” corresponde à saída, que varia de acordo com a posição do cursor. Figura 3.10 – Sensor angular (potenciômetro) As Equações (3.3) e (3.4), obtidas a partir de dados coletados em ensaios experimentais, representam uma função linear que possibilita a relação entre os valores de tensão enviados pelos potenciômetros às entradas analógicas da NI (V) e os valores de deslocamento angular do eixo dos motores (θ): base 100 V 132 2,21 (3.3) 59 braço 80 V 126,4 1,83 (3.4) Para verificar o deslocamento real da base e do braço e comparar com os dados fornecidos pelo software de controle, foram inseridos na estrutura mecânica do manipulador robótico dois transferidores, posicionados na base e no braço da máquina, como visto nas Figuras (3.11) e (3.12). Figura 3.11 – Transferidor da base Figura 3.12 – Transferidor do braço Tendo em vista que os níveis de tensão e corrente fornecidos pela interface de aquisição de dados não se mostraram suficientes para o acionamento dos inversores de frequência tornou-se necessário desenvolver de um circuito condicionador de sinal. A comunicação analógica entre a interface de aquisição de dados e os inversores de frequência foi feita de forma direta e a velocidade de rotação foi variada conforme o 60 nível de tensão na saída da placa, de tal forma que a variação de tensão de 0 a 5 Volts correspondesse a uma variação de frequência de 0 a 60 Hz na saída do inversor. Segundo BORDON (2004), os inversores de fequência são os equipamentos mais indicados no controle da velocidade de rotação e do torque de motores de indução. Os inversores fornecem a tensão e a frequência variáveis aos motores que acionam a base e o braço do manipulador robótico controlando a relação entre frequência e tensão por meio da modulação por largura de pulso (PWM). Para partidas suaves e variação de velocidade nos motores de indução trifásicos, responsáveis pelo movimento da máquina, foi usado nos inversores o controle de velocidade tipo Volts/Hertz ou V/f, conhecido como controle escalar. Assim, ao variar-se proporcionalmente a frequência e a amplitude da tensão de alimentação dos motores, o fluxo e o torque permanecem constantes. Para evitar solavancos que desgastam os componentes mecânicos do sistema, principalmente os conjuntos redutores, foi programado um tempo de aceleração/desaceleração de 0,1 s em rampa. Essa parametrização também permitiu um melhor controle, evitando um posicionamento inadequado da base e do braço, bem como a minimização de sobresinais. Quanto a frequência, esta foi parametrizada em 0 Hz como frequência mínima e 40 Hz como frequência máxima, com o objetivo de obter um controle de posição adequado para esse tipo de configuração de sistema. A seleção dos motores de indução trifásicos levou em conta sua comparação com motores de corrente contínua. Por meio de realização de pesquisas verificou-se que motores CC apresentam custo de manutenção elevado, além de seus contatos serem feitos por escovas, o que implica em manutenções periódicas para troca das mesmas. Observou-se também que este tipo de motor mantém um torque melhor e mais eficiente com motores menores, quando comparados com motores CA. Ou seja, para se produzir um mesmo torque com um motor CA, necessita-se adquirir um motor mais robusto ou de maior potência. Contudo, os custos dos motores de indução trifásicos são menores do que os de um motor CC. Além disso, o uso de motores CA em conjunto com o inversor de frequência apresenta outra vantagem quando comparado com o motor CC, visto que inversores de frequência atuais disponibilizam uma série de parâmetros de controle de velocidade, exatidão e leveza no acionamento. Por fim, outro fator que resultou na escolha do motor utilizado no sistema é que este não necessita de uma fonte de alimentação externa para transformar a tensão advinda da concessionária. 61 Durante o funcionamento do motor, o rotor gira em virtude do torque (conjugado) produzido por uma força magnética aplicada ao rotor. As formas de onda aplicadas às bobinas do estator geram um campo magnético resultante girando em torno do eixo central do motor. A variação do fluxo desse campo magnético induz uma tensão no rotor, gerando correntes rotóricas. Estas, por sua vez, sob a ação do campo do estator, originam a força magnética geradora do torque no rotor. Em consequência disto, o rotor gira acompanhando o campo girante, o que diminui a corrente induzida no rotor. O eixo do motor gira a uma frequência próxima da frequência da tensão aplicada definindo-se como escorregamento a diferença existente entre a velocidade de rotação do eixo do motor e a velocidade do campo girante do estator, dada pela Equação (3.5): s ns nr ns (3.5) Em que nr é a velocidade de rotação do rotor em rpm e ns é a velocidade de rotação síncrona do campo magnético em rpm, podendo esta última ser expressa pela Equação (3.6): n( RPM ) 120 f ( 1 s ) p (3.6) Sendo f a frequência aplicada ao estator em Hz e p é o número de pólos da máquina. De acordo com a Equação (3.6), é possível observar que se pode variar a rotação do motor por meio da variação da frequência, uma vez que para variar o número de pólos seria necessário a realização de alterações físicas no motor. 3.2.2 Sistema de Comando e Proteção Para evitar danos ao sistema, por conta de choques mecânicos, foram inseridos sensores mecânicos de fim de curso (FC_1/FC_2 e FC_3/FC_4) nas extremidades do curso de cada uma das articulações (base e braço), impedindo que o manipulador robótico saia de seu curso máximo. Os sensores de fim de curso desabilitam a ligação entre o inversor e o motor por meio de contatores (K1 e K2). Essa configuração de comando foi adotada para que o funcionamento do inversor de frequência não seja interrompido, evitando possíveis paradas frequentes e, consequentemente, o mau uso do dispositivo. Na Figura (3.13) consta o diagrama de acionamento, comando e proteção do sistema. 62 Figura 3.13 – Diagrama de acionamento, comando e proteção do sistema 63 CAPÍTULO IV IDENTIFICAÇÃO DO SISTEMA E PROJETO DO CONTROLADOR NEURAL 4.1 INTRODUÇÃO Neste capítulo é mostrada a implementação dos controladores neurais do manipulador robótico estudado. Na seção 4.2.1 é mostrado o processo de identificação do sistema. Na seção 4.2.2 é apresentada a escolha da arquitetura da rede neural por meio da aplicação de um algoritmo genético. A seção 4.2.3 apresenta o modelamento do controlador neural. Na seção 4.2.4 é mostrado o processo de implementação do controlador neural. Já a seção 4.2.5 mostra a descrição do algoritmo de retropropagação da rede neural e, por fim, na seção 4.2.6 a simulação do sistema e aquisição dos pesos sinápticos iniciais é realizada. 4.2 IDENTIFICAÇÃO, PROJETO E SIMULAÇÃO DO SISTEMA DE CONTROLE O sistema foi simulado em ambiente Matlab ® para a obtenção dos pesos sinápticos iniciais das redes Neurais artificiais. Para tal necessitou-se obter funções de transferência advindas da identificação experimental do sistema. Na identificação de sistemas, conhecida também como modelagem empírica, são usados dados coletados diretamente dos sistemas (AGUIRRE, 2004). Utilizando-se técnicas de identificação de sistemas, não é necessário o conhecimento dos parâmetros físicos do sistema, porque existem várias formas e técnicas para a obtenção de modelos matemáticos, entre elas, a modelagem caixa branca, modelagem caixa preta e a intermediária, denominada caixa cinza. 64 AGUIRRE (2004) classifica os métodos de identificação de sistemas em: 1. Identificação caixa preta – Neste caso, não se tem nenhuma informação sobre o sistema. Apenas os dados de entrada e de saída do sistema são usados durante a identificação. Neste tipo de identificação, não existe nenhuma relação óbvia entre a estrutura e seus parâmetros com aspectos físicos do sistema sendo identificado. 2. Identificação caixa branca – Trata-se da modelagem do sistema, ou seja, da obtenção de um modelo matemático descrito por equações que regem a física do processo. Neste caso, os dados de entrada e de saída do sistema, quando disponíveis são usados apenas para validar o modelo. 3. Identificação caixa cinza – É um procedimento de identificação que não se enquadra nem no modelo caixa preta nem no modelo caixa branca. Neste caso, buscamse combinar as vantagens dos procedimentos de identificação de ambas as abordagens anteriores. Para a presente pesquisa optou-se por utilizar o modelo de identificação caixa preta, visto as vantagens que o mesmo apresenta, bem como sua vasta aplicação em processos de identificação de sistemas. 4.2.1 Identificação Experimental (caixa preta) A identificação do sistema foi realizada a partir de dados de entrada e de saída da planta, coletados de um ensaio em que foram aplicados sinais de excitação do tipo onda quadrada com amplitude e larguras pré-determinadas. Para se obter as funções de transferência do sistema utilizou-se o “Toolbox” de identificação do Matlab®, aplicando-se o modelo BJ (Box Jenkins Model). O processo de identificação foi realizado várias vezes, até a obtenção de um modelo que apresentasse respostas com maior semelhança com os dados experimentais. Na Figura (4.1) estão ilustrados o sinal de excitação da base do manipulador, bem como sua curva de resposta experimental. O modelo escolhido foi validado fazendo uma comparação entre sua resposta simulada e a resposta experimental do sistema, ambos submetidos ao mesmo sinal de excitação, como visto na Figura (4.2) 65 Figura 4.1 – Sinal de excitação e curva de saída experimental da base Figura 4.2 – Curvas de resposta experimental e simulada do sistema – Base 66 De maneira análoga, foi realizado o processo de identificação para o braço do manipulador robótico. Na Figura (4.3) é mostrado o sinal de excitação utilizado no ensaio, bem como o sinal de resposta experimental obtido. Figura 4.3 – Sinal de excitação e curva de saída experimental do braço Como realizado para a base, o modelo escolhido para o braço foi submetido ao mesmo sinal de excitação aplicado anteriormente ao sistema real, para validação do mesmo. A comparação entre a resposta simulada e a resposta experimental do braço é mostrada na Figura (4.4). As Equações (4.1) e (4.2) mostram os modelos na forma de função de transferência no modo discreto do manipulador robótico para a base e o braço, respectivamente. Ambas as equações serão utilizadas nos processos de simulação do sistema. Ybase ( z ) 0.03018 z 2 0.06349 z 0.05471 3 U base ( z ) z 1.321z 2 0.03939 z 0.2818 Ybraço ( z ) U braço ( z ) 0.01147 z 2 0.020891z 0.01141 z 4 2.697 z 3 2.426 z 2 0.729 z (4.1) (4.2) 67 Figura 4.4 – Curvas de resposta experimental e simulada do sistema – Braço 4.2.2 Aplicação do Algoritmo Genético Verifica-se a necessidade de um mecanismo de busca automático que ajude a encontrar a quantidade ideal mínima de neurônios na camada oculta de uma RNA. Treinar inúmeras redes até que estas atinjam um erro final pré-estabelecido para avaliar qual a quantidade mínima de neurônios na camada oculta é um processo complicado e sem muito sentido, visto que se uma rede foi treinada completamente, não há razão para não utilizá-la. A estrutura do algoritmo genético utilizada nessa pesquisa é apresentada na Figura 4.5. O processo de busca pelo número de neurônios na camada oculta realizado por um algoritmo genético avalia um conjunto de indivíduos candidatos à solução (população) por meio do erro apresentado pela rede ao final de um dado período de tempo. Para esta pesquisa foi adotada a representação binária para codificar cada indivíduo pertencente à população, visto que esta modelagem pode representar de maneira fácil qualquer número inteiro, que serão por sua vez utilizados como neurônios na camada oculta da RNA. 68 Figura 4.5 – Fluxograma do AG utilizado na pesquisa A população inicial é gerada aleatoriamente, de forma que possua dez indivíduos que podem assumir valores entre 1 e 15. Tal escolha foi feita com base na análise da resposta de algumas simulações e experimentos, em que a configurações com 16 ou mais neurônios na camada oculta apresentaram sobressinal. Em seguida, cada indivíduo da população inicial é testado como número de neurônios na camada escondida da RNA e avaliado por meio da função de fitness, apresentada na Equação (4.3), em que n é o comprimento do vetor de erro. n fitness e (i ) i 1 (4.3) n A avaliação acontece após a coleta de dados de resposta de saída da rede quando submetida ao mesmo sinal de excitação em um mesmo intervalo de tempo para todos os indivíduos testados. Adotou-se uma padronização dos pesos iniciais da rede, os quais iniciaram com valor zero. Tal consideração é feita com o objetivo de evitar um 69 processo de seleção tendencioso, optando por uma estrutura que iniciou com os valores dos pesos próximo dos valores ideais. Na seleção, os indivíduos são classificados com base no valor do fitness apresentado por cada um, sendo que os indivíduos que apresentarem os menores valores de fitness ficarão no topo da classificação. Os dois melhores indivíduos da população inicial serão selecionados diretamente para a próxima geração (elitismo), para que não se perca a melhor solução encontrada até o momento. Em seguida, à população inicial são aplicados os operadores genéticos de cruzamento e mutação que, segundo LACERDA E CARVALHO (1999), são os principais mecanismos dos AG’s para explorar regiões desconhecida em um espaço de busca em que se deseja encontrar uma solução para um problema. BAYER e LUI WANG (1991) sugere o crossover de 1 ou 2 pontos com probabilidade entre 50 e 100%. Para a estrutura adotada, utilizou-se uma probabilidade de cruzamento de 90%. Uma vez realizado o cruzamento, é realizada a mutação, alterando valores de determinados bits, mudando-os de 1 para 0, ou vice-versa. A mutação assegura a diversidade da população, mas faz isto destruindo a informação contida no cromossomo (BITTENCOUT, 2007). Em LACERDA e CARVALHO (1999) é sugerido que a probabilidade de mutação esteja entre 0,1 e 5%. Para o sistema estudado, adotou-se uma probabilidade de mutação de 5%. A população resultante do cruzamento e mutação também é avaliada, de tal modo que os dois piores indivíduos são descartados. Sendo assim, a nova população é composta pelos oito melhores indivíduos da população em que foram aplicados os operadores genéticos descritos anteriormente, juntamente com os dois indivíduos mais aptos da geração inicial, selecionados pelo critério do elitismo. Por fim, como critério de parada foi adotado o critério da convergência, ou seja, se os valores das novas populações não sofrerem alteração ou variar dentro de um intervalo de valores muito próximos, por várias gerações consecutivas, o processo de busca é interrompido. Foram realizadas simulações para a obtenção do número de neurônios na camada oculta da RNA. A descrição completa dos testes realizados encontra-se no Apêndice A. Nas Tabelas (4.1) e (4.2) são apresentados resumos das simulações realizadas, em que se percebe que o indivíduo 15 figurou mais vezes como o melhor. Observou-se nos testes que esse indivíduo também apresentou um valor médio da função de fitness menor que todos os outros indivíduos testados. 70 Tabela 4.1 – Resultados de simulação do AG para o braço do manipulador robótico Sinal de Entrada Melhor Porcentagem de vezes como Fitness médio Indivíduo melhor indivíduo Degrau 15 59.60% 2.05 Onda Quadrada 15 63.23% 2.85 Senoidal 15 52,68% 1.33 Tabela 4.2 – Resultados de simulação do AG para a base do manipulador robótico Sinal de Entrada Melhor Porcentagem de vezes como Indivíduo melhor indivíduo Degrau 15 81.10% 4.48 Onda Quadrada 15 77.20% 3.45 Senoidal 15 61.50% 1.91 4.2.3 Fitness médio Modelo do Controlador Neural Com a arquitetura da rede neural definida, o passo seguinte é determinar os sinais de entrada da mesma. Na literatura, podem-se encontrar vários exemplos de determinação dos sinais da camada de entrada de uma RNA. MENEZES FILHO (2007) implementou uma Rede Neural Multicamada trabalhando de modo vetorial em um sistema de posicionamento impondo na entrada quatro sinais, sendo eles: 1ª Entrada: Sinal de erro do posicionamento; 2ª e 3ª Entradas: Valores armazenados no instante de amostragem imediatamente anterior e com dois atrasos do sinal do erro, respectivamente; 4ª Entrada: ZERO NASCIMENTO J. (2000), definiu as entradas como sendo o sinal de referência como primeira entrada, como segunda e terceira entradas os valores armazenados no instante de amostragem imediatamente anterior e com dois atrasos, respectivamente, e 71 mais três entradas relacionadas ao erro e aos valores armazenados do erro em dois intervalos de amostragem anteriores. No presente trabalho escolheu-se fazer uma analogia com o controlador PD2 (Proporcional Derivativo Duplo), que é utilizado em sistemas que apresentam comportamento integral (possuem dois ou mais pólos dominantes e apresentam outro pólo igual a 1) (MENEZES FILHO, 2010). A Equação discreta do controlador PD2 é dada por (BUHLER, 1982): u ( k ) k p e( k ) k d [e( k ) e( k 1)] k d 2 [e(k ) 2 e( k 1) e( k 2)] (4.4) em que: u(k): valor da saída discreta do controlador kp: ganho proporcional do controlador kd: ganho aplicado a derivada do sinal de erro kd2 : ganho aplicado a derivada segunda do sinal de erro e(k): erro no instante de amostragem k e(k-1): erro armazenado no instante anterior ao tempo k e(k-2): erro armazenado na amostragem anterior ao tempo k-1 Assim sendo, os sinais da primeira camada são definidos como sendo: in11=e(k); in21=e(k-1); in31=e(k-2); in41=1 A entrada in41 é denominada bias ou entrada de polarização que, juntamente com seu peso correspondente, tem o efeito de transladar a função em torno da origem (transformação afim), fazendo com que a ativação interna do neurônio não seja nula quando todas as demais entradas forem nulas (IYODA, 2000). As entradas definem uma matriz de 4 linhas e uma coluna, expressa na equação 4.5: 72 in11 in 21 In in 31 in 41 (4.5) A segunda camada (camada oculta) da RNMC possui 15 neurônios. Para estes neurônios, é definido o campo induzido Vin como sendo a combinação linear da matriz de entradas In ponderadas pelos elementos da matriz de pesos Win dado pela Equação (4.6). Vin = Win x In (4.6) O Campo induzido de cada neurônio da camada oculta é aplicado em uma função de ativação do tipo Tangente Hiperbólica. A saída de cada função tangente hiperbólica é chamada de Sinal Funcional do neurônio oculto, dado pela Equação (4.7). Y(i x 1) = Tanh(vin(i1)) onde: i = 1, 2, ..., 15; (4.7) Logo, a matriz Y é dada pela equação 4.8: y11 y 21 y 31 y 41 Y y141 y151 (4.8) A camada de saída é dotada de apenas um neurônio. Para este neurônio, definese o Campo Induzido, dado pela Equação (4.9), como a combinação linear das saídas dos sinais funcionais dos neurônios ocultos Y ponderados com os pesos sinápticos de WhidT. 73 vout = WhidT x Y (4.9) A Função de Ativação de cada neurônio da camada de saída, do tipo Tangente Hiperbólica, dada pela Equação (4.10), fornece o sinal de saída out, que é o sinal de controle para o motor ligado a essa rede. A Figura 4.8 mostra a estrutura da rede neural utilizada no trabalho. out = Tanh(v out ) (4.10) Figura 4.6 – Estrutura da rede neural utilizada na pesquisa Nas Figuras (4.7) e (4.8) são mostrados os Controladores Neurais utilizados no acionamento independente para cada base. 74 Figura 4.7 – Controlador neural para a base Figura 4.8 – Controlador neural para o braço 4.2.4 Algoritmo de Retropropagação da Rede Neural Após a propagação direta, que mantém os pesos sinápticos inalterados, é realizada a retropropagação, processo por meio do qual todos os pesos da rede são 75 ajustados. De acordo com BEALE (1990), o algoritmo de retropropagação, ou backpropagation, pode ser visto como uma generalização do método Delta para redes neurais de múltiplas camadas. A regra Delta modifica os pesos de acordo com a variação entre a saída desejada e a observada no treinamento (MÁSSON, 1990), reduzindo o erro continuamente até um determinado valor aceitável. A retropropagação é iniciada pelo gradiente local da camada de saída (out), que é definido como o produto da derivada da função de ativação do neurônio de saída e do erro de posição no instante k (e(k)) com o Jacobiano J, e é dado por: out = e(k) . J . d(tanh(vout)) dk (4.11) O valor do Jacobiano foi considerado igual à matriz identidade de ordem 1 (I1x1), com a finalidade de simplificar o esforço computacional por parte da rede neural. Como os resultados experimentais foram satisfatórios, tal consideração foi mantida. Com o Gradiente local dado pela Equação (4.11), são calculadas as variações dos pesos (whid), que ligam a camada de saída com a camada oculta, dadas pela Equação 4.12: Δhid= η. out . Yix1 (4.12) em que η é o fator de convergência do algoritmo, ou seja, a taxa de aprendizagem da rede neural. Finalmente os pesos sinápticos (whid) são dados pela Equação (4.13): Whid(15x1) = Whid(15x1) + Δhid (4.13) A modificação dos pesos sinápticos entre a primeira camada e a camada oculta é iniciada com o cálculo dos gradientes locais de cada neurônio da camada oculta dado pela Equação (4.14): in =whid(k1). out . (tanh(Y )) yk1 onde: k = 1, 2, ..., 15; (4.14) 76 De acordo com o Gradiente local dado pela Equação (4.14), a variação dos pesos entre a camada de entrada e camada oculta (Win) é calculada de acordo com a Equação (4.15): Δin = η . in . InT (4.15) Por fim, é calculada a modificação dos pesos sinápticos (win), que ligam cada neurônio de entrada com os neurônios da camada oculta, de acordo com a Equação (4.16). Win = Win + Δin (4.16) Após o processo de retropropagação, o processamento para frente é aplicado na RNMC fornecendo os sinais de controle para o posicionamento do manipulador robótico. 4.2.5 Simulação do sistema e aquisição dos pesos sinápticos iniciais Com o objetivo de se obter os pesos sinápticos iniciais a serem fornecidos ao controlador neural foi realizado um treinamento off-line das redes neurais artificiais utilizando as funções de transferência obtidas do processo de identificação mostrado na seção 4.2.1. Para o treinamento off-line das redes neurais foi utilizado um programa de simulação no ambiente LabVIEW®, que implementa o controle do manipulador simulado através do processamento das equações (4.1) e (4.2), de acordo com os diagramas esquemáticos da Figura 4.7 e 4.8. Antes da execução do programa foram determinados, aleatoriamente, no ambiente MATLAB®, os pesos sinápticos whid, que ligam a camada de entrada com a camada oculta e os pesos sinápticos win, que ligam a camada oculta com a camada de saída das redes neurais que controlam a posição do braço e da base do manipulador. O Algoritmo a seguir mostra o fluxo do processo implementado. 77 1º) Executar o programa de geração de pesos whid e win no ambiente MATLAB® . 2º) Executar o programa em ambiente LabVIEW® que simula o controle em malha fechada de posição do braço e da base com os controladores neurais adaptativos. Durante esta etapa são reajustados e armazenados os pesos whid e win a cada período de amostragem. 3º) Observar a forma de onda da variável de saída do braço e da base do programa de simulação. Caso não ocorram erros de regime permanente e se consigam a máxima redução dos sobre-sinais, encerrar o processo de simulação armazenando os pesos sinápticos whid e win. Caso contrário voltar ao passo 2 para novo treinamento dos pesos. 4.2.6 Resposta do sistema para simulação dos controladores neurais Foram utilizados, nesta etapa de simulação, sinais de referência do tipo degrau tanto na base como no braço. Também foram realizadas simulações com acionamentos com funções seno e cosseno para o braço e para a base, respectivamente. Na Figura (4.9) é mostrado o resultado da simulação de referência ao degrau para a base. Figura 4.9 – Curva de resposta da base para uma referência de 100° 78 Nas Figuras (4.10) é mostrado o resultados da simulação para uma referência ao degrau para o braço. Na Tabela (4.3) são mostrados os valores dos índices de desempenho observados na simulação, para a base e para o braço. Figura 4.10 – Curva de resposta do braço para uma referência de 80° Tabela 4.3 – Valores observados na simulação para referência ao degrau Base Braço (100°) (80°) Ts(s) 2 2,2 UP (%) 0 0 ess (%) 0 0 Valor Observado Em seguida a base e o braço foram acionados de modo a fazer com que os atuadores do sistema seguissem uma trajetória pré-determinada. Para a base foi enviado m sinal cossenoidal com amplitude de 50° e período T=160s. Para o braço, foi imposto um sinal senoidal, com amplitude de 40° e período T=160s. Nas Figuras (4.11) e (4.12) são mostradas as curvas de respostas simuladas para uma trajetória imposta para a base e para o braço, respectivamente. 79 Figura 4.11 – Resposta à referência cossenoidal - Base Figura 4.12 – Resposta à referência senoidal - Braço 80 Tabela 4.4 – Valores simulados do controle neural de posição para referências com funções circulares Erro máximo (%) Períodos dos sinais de referência Base Braço Período 180 s 1.02 0.95 Obs: * Resultados para as Figuras 4.11 e 4.12 ** Erro máximo calculado após o regime permanente de trabalho 81 CAPÍTULO V UTILIZAÇÃO DO CONTROLADOR NEURAL NO ACIONAMENTO DO MANIPULADOR ROBÓTICO 5.1 INTRODUÇÃO São mostrados, neste capítulo, os resultados experimentais obtidos no sistema de posicionamento. Na seção 5.2, são apresentadas algumas informações quanto ao funcionamento do manipulador robótico. Na seção 5.3, são analisados os gráficos e alguns valores extraídos a partir deles quanto às imposições de sinais do tipo degrau e degrau variável no acionamento do sistema. Na seção 5.4, avaliam-se os desempenhos dos controladores nos seguimentos de trajetórias de curvas de referência senoidal e cossenoidal. 5.2 NOTAS SOBRE O SISTEMA Nos gráficos a seguir, plotados no programa computacional MATLAB®, os valores das tensões de controle de 0 V a 5 V correspondem aos deslocamentos para direita da base e deslocamento para cima do braço, enquanto que as tensões de controle de 0 V a -5 V resultam em deslocamento para a esquerda da base, e descida para o braço, com referência a um observador em frente ao manipulador robótico. 82 5.3 ENSAIOS DE ACIONAMENTO DO SISTEMA De acordo com RAMESH, R. et al. (2005), os controladores em malha fechada podem trabalhar de duas formas. No primeiro caso trata-se do controle ponto a ponto. Nesse tipo de controle o que importa é a exatidão com que a ferramenta atinge o ponto de referência. O segundo tipo de controlador, em malha-fechada, é denominado sistema de controle de contorno. Esse tipo de controle é muito utilizado em trabalhos de corte, lapidação, pintura, etc, RAMESH, R. et al (2005). 5.3.1 Ensaios de Acionamento com Excitações do Tipo Degrau Com relação à base, primeiramente foi realizado o acionamento, partindo do 0°, com a base posicionada completamente à esquerda, por um degrau de referência com amplitude de 100 ° resultando em um deslocamento para direita. No gráfico da Figura 5.1 encontram-se as curvas de resposta da base e da referência. Na Figura 5.2, observa-se a variável de controle. Em seguida foi realizado o acionamento, partindo da posição 100° (totalmente à direita), por um degrau de referência com amplitude de -100 º resultando em um deslocamento para esquerda. No gráfico da Figura 5.3, encontram-se as curvas de resposta da base da referência. Na Figura 5.4 observa-se a evolução temporal da tensão de controle. Analisando-se as Figuras 5.1 e 5.3, é possível obter os tempos de assentamento em segundos Ts (s), ultrapassagem percentual UP (%) e os erros percentuais de regime permanente ess (%) das curvas de resposta às referências. Esses dados, correspondentes à base do manipulador, estão apresentados na Tabela 5.1. De maneira similar, o braço foi acionado por um sinal do tipo degrau, partindo da posição 0° para a posição de 80° resultando em um deslocamento para cima. No gráfico da Figura 5.5 encontram-se as curvas de resposta do braço e da referência. Na Figura 5.6, é mostrada a curva de resposta da variável de controle. 83 Figura 5.1 - Curvas de resposta e de referência ao Degrau de 100° da base Figura 5.2 - Curva de resposta da variável de controle da base para uma referência do tipo degrau de 100 ° 84 Figura 5.3 – Curvas de resposta e de referência ao Degrau de -100° da base Figura 5.4 – Curva de resposta da variável de controle da base para uma referência do tipo degrau de -100 ° 85 Tabela 5.1 – Índices de desempenho experimentais extraídos das curvas de resposta da base Figura 5.1 Figura 5.3 Sinal de Referência Sinal de Referência 100° -100° Ts (s) 2 2.1 UP (%) 0 0 ess (%) 0.1 0.098 Valor medido Em seguida foi realizado o acionamento, partindo da posição 80° (braço na posição de topo), por um degrau de referência com amplitude de -80 º, resultando em uma descida. No gráfico da Figura (5.7), encontram-se as curvas de resposta do braço e da referência. Na Figura (5.8), pode-se visualizar a variável de controle. Figura 5.5 – Curvas de resposta e de referência ao Degrau de 80° do braço 86 Figura 5.6 – Curva de resposta da variável de controle do braço para uma referência do tipo degrau de 80 ° Figura 5.7 – Curvas de resposta e de referência ao Degrau de -80° do braço 87 Figura 5.8 – Curva de resposta da variável de controle do braço para uma referência do tipo degrau de -80 ° Analisando as Figuras 5.5 e 5.7, é possível obter os tempos de assentamento Ts, ultrapassagem percentual %UP e os erros de regime permanente ess das curvas de resposta às referências impostas ao sistema. Esses dados, correspondentes ao braço, estão apresentados na Tabela 5.2. Tabela 5.2 – Índices de desempenho experimentais extraídos das curvas de resposta do braço Figura 5.5 Figura 5.7 Sinal de Referência Sinal de Referência 80° -80° Ts (s) 1.65 1.5 UP (%) 0 0 ess (%) 0.1125 0.11875 Valor medido Com o objetivo de verificar as respostas do sistema para referências distintas, foi aplicado ao braço um sinal de excitação do tipo degrau variável, partindo-se da posição central do mesmo (40°). Na Figura (5.9) encontram-se as curvas de resposta e da 88 sequência de degraus de referência. A variável de controle, para esta situação pode ser visualizada na Figura (5.9) Figura 5.9 – Curvas de resposta e de referência degrau variável do braço Figura 5.10 – Variável de controle para curva de resposta ao degrau variável do braço Para a base do manipulador robótico também realizou-se um ensaio em que foi imposto como sinal de referência uma excitação do tipo degrau variável, partindo 89 inicialmente da posição 0°. Nas Figuras (5.11) e (5.12) encontram-se ilustradas as resposta da base e da referência imposta e a variável de controle, respectivamente. Figura 5.11 – Curvas de resposta e de referência degrau variável da base Figura 5.12 – Variável de controle para curva de resposta ao degrau variável da base A curva de resposta de posição do sistema para um sinal de excitação do tipo degrau variável apresentou erros de regime permanente de 0.1% para a base e de 0.12% para o braço (maiores valores observados). Para base não houve ultrapassagem percentual, fato também observado para o braço. 90 5.3.2 Ensaios de Acionamento com Excitações do Tipo Seno e Cosseno Com o objetivo de avaliar o controlador neural em situações de acompanhamento de trajetória, foram impostos como referências sinais do tipo senoidal para o braço e cossenoidal para a base do manipulador robótico. Nesse caso, o sistema não sofreu interrupção no seu deslocamento ao atingir uma determinada posição, como no caso anterior, havendo, ao contrário, um movimento permanente, de acordo com a trajetória requerida. Para a base foi imposta uma referência cossenoidal, com amplitude de 50° e um período T=160s. Para o braço do manipulador, o sinal de entrada aplicado foi do tipo senoidal, com amplitude de 40° e um período T=160s. Nas Figuras (5.13) e (5.15) são apresentados os resultados para as condições descritas, em que são comparados os sinais de referência e a saída apresentada pela planta, para o braço e para a base, respectivamente. Nas Figuras (5.14) e (5.16) são observadas as evoluções temporais das variáveis de controle do braço e da base, respectivamente. Figura 5.13 - Acompanhamento de trajetória senoidal – Braço 91 Figura 5.14 – Variável de controle para acompanhamento de trajetória senoidal – Braço Figura 5.15 – Acompanhamento de trajetória cossenoidal – Base 92 Figura 5.16 – Variável de controle para acompanhamento de trajetória cossenoidal – Base Nos gráficos de respostas do sistema à imposição de sinais de entrada do tipo seno e cosseno é possível observar um desempenho adequado nos acompanhamentos das saídas às trajetórias das referências. Para a base, o erro máximo foi de 1,09%, enquanto que para o braço foi de 0,997%. 93 CAPÍTULO VI COMENTÁRIOS E CONCLUSÕES FINAIS 6.1 COMENTÁRIOS E CONCLUSÕES No presente trabalho foi apresentada uma estratégia de acionamento de um manipulador robótico com dois graus de liberdade, acionado por motores de indução trifásicos. O controle foi exercido por controlador implementado em um ambiente computacional que integra programas LabVIEW® e MATLAB® instalados em um microcomputador do tipo PC . Para a determinação das posições angulares do braço e da base do manipulador robótico foram aplicados transdutores potenciométricos. A estratégia de controle apresentada fez uso de redes neurais multicamadas para o controle individual da base e do braço do manipulador. A determinação da arquitetura da rede, mais especificamente do número de neurônios na camada oculta, foi realizada por meio da aplicação de algoritmos genéticos. Vê-se que tal prática contribui para uma melhor escolha deste parâmetro, evitando assim um esforço desnecessário. Para a situação do acionamento em controle de posição, os resultados obtidos nas simulações e experimentalmente com o controlador neural apresentaram um erro de regime permanente de 0.11% para o braço e 0.1% para base, sendo estes os maiores valores observados. A base não apresentou ultrapassagem percentual, assim como verificado para o braço. Para o caso de acompanhamento de trajetórias de referências do tipo senoidais e cossenoidais, o sistema apresentou um desempenho adequado, apresentando um erro máximo de 1.09% para a base e de 0.997% para o braço. 94 Observa-se que a rede neural multicamadas, emulando um controlador do tipo PD2 e com aprendizado realizado através da técnica de retropropagação do erro, respondeu de maneira positiva ao que se esperava de um manipulador robótico acionado por motores de indução trifásicos. 6.2 PROPOSTAS PARA TRABALHOS FUTUROS Propõem-se os seguintes trabalhos como continuação desta pesquisa: Desenvolver controladores neuro-fuzzy para controle do manipulador robótico; Desenvolver controladores que utilizem algoritmos genéticos para a determinação da arquitetura da rede neural e para o treinamento da mesma; Utilizar o método de controle vetorial de posição, cuja atuação seria na saída resultante do funcionamento simultâneo da base e do braço do manipulador; 95 REFERÊNCIAS BIBLIOGRÁFICAS AGUIRRE, L. A., 2000, Introdução à Identificação de Sistemas: Técnicas Lineares e não-Lineares Aplicadas a Sistemas Reais. 2ª Edição Belo Horizonte, MG UFMG. AKYUZ, I. H.; YOLACAN, E.; ERTNUNC, H. M.; BINGUL, Z., 2011. PID and state feedback control of a single-link flexible joint robot manipulator. IEEE International Conference on Mechatronics, pp.: 409 – 414. ARCOS CAMARGO, M. A., 2002, Planejamento de Trajetórias de um Manipulador Robótico Usando Redes Neurais Artificiais. Dissertação de Mestrado, UNICAMP, Campinas, SP, Brasil. ARIMOTO, S.; MIYAZAKI, F., 1984. Stability and robustness of PID feedback control for robot manipulators of sensory capability. Robotics Researches: First International Symposium, M. Brady and R.P. Paul (Eds.), pp.: 783-799, MIT Press. ASAKAWA, N.; TAKEUCHI, Y., 1997, Teachingless spray-painting of sculptured surface by an industrial robot. Proceedings of the IEEE International Conference on Robotics and Automation, Vol. 3, pp.: 1875-1879 ASTROM, K. J. & WITTENMARK, B., 1995. Adaptive Control. 2ª Edição USA,Editora Addison Wesley. AZEVEDO, F. M., 1999. Algoritmos Genéticos em Redes Neurais Artificiais. V Escola de Redes Neurais, São José dos Campos, SP. AZEVEDO, F. M.; BRASIL, L. M.; OLIVEIRA, R. C. L., 2000. Redes Neurais com Aplicações em Controle e em Sistemas Especialistas. Editora Visual Books, 1ª edição. BACK, T., 1996. Evolutionary Algorithms in Theory and Practice. Oxford University press. BACK, T.; HAMMEL, U.; SCHWEFEL, H.-P., 1997. Evolutionary computation: comments on the history and current state. Transactions on Evolutionary Computation, IEEE , vol.1, issue.1, pp.:3-17. 96 BAI, Y.; WANG, D., 2010. Applying Fuzzy Multi-Criteria Decision Making for Optimal Robots and Manipulators Selection. IEEE International Symposium on Industrial Electronics (ISIE), pp.: 1803 – 1808. BARRETO, J. M., 2001. Inteligência Artificial no Limiar do Século XXI. 3ª edição. BAYER, S.E.; WANG, L., 1991. A genetic algorithm programming environment: Splicer. Third International Conference on Tools for Artificial Intelligence, pp.: 138-144. BAZANELLA, A. S., SILVA Jr., J. M. G., 2005. Sistemas de Controle – Princípios e Métodos de Projeto. Editora da UFRGS. BEALE, R.; JACKSON, T., 1990. Neural Computing: an Introduction. Bristol, Adam Hilger. BIGLARBEGIAN, M.; MELEK, W. W.; MENDEL, J. M., 2011. Design of Novel Interval Type-2 Fuzzy Controllers for Modular and Reconfigurable Robots: Theory and Experiments. IEEE Transactions on Industrial Electronics, vol. 58, issue 4, pp.: 1371 – 1384. BITTENCOUT, F. R., 2007. Uso da Análise dos Fatores de Sensibilidade Para Encontrar a Quantidade Ideal Mínima de Neurônios na Camada Oculta de uma RNA Perceptron Multicamadas Através de Algoritmos Genéticos. Dissertação de Mestrado, PUC-MG. BORDON, M.E.,(2004).”Controlador Nebuloso de Arquitetura Simplificada. Estudo de Caso: Acionamento de Motor de Indução Trifásico”.Tese de Doutorado, Universidade Estadual de Campinas, Brasil. BORODIN, N., 1988. Machine Design. 1 ed., MIR Publishers, Moscow. BOUTEILLE, D., BOUTEILLE, N., CHANTREUIL,S., et al., 1997, Les Automatismes Programables. Cépaduès-éditions, 2 ed., Toulouse. BRAGA, A. P.; CARVALHO, A. P. de L. F.; LUDERNIR, T. B., 2000. Fundamentos de Redes Neurais Artificiais. Editora LTC, 1ª edição. BREMERMANN, H.J., 1962. Optimization through evolution and recombination. M.C. Yovits, G.T. Jacobi & G.D. Goldstine (eds.) Self-Organizing Systems, pp.: 93-106, Spartan Books. BUHLER, HANSRUEDI, 1982, Réglages échantillonnés, 1ª.Edição. Lausanne e Suisse Presses Polytechniques romandes. BURGOS-ARTIZZU, X. P., RIBEIRO, A., SANTOS, M., 2007. Controlador Borroso 97 Multivariable para el Ajuste de Tratamientos en Agricultura de Precisión. Revista Iberoamericana de Automática e Informática Industrial, v. 4, n. 2, pp. 6471. CAMARGOS, Fernando Laudares, 2002, “Lógica Nebulosa: uma abordagem filosófica e aplicada”, Artigo Publicado pela Universidade Federal de Santa Catarina (UFSC), Brasil. CAMBOIM, W. L. L., 2008, Aplicações de Técnicas de Controle Fuzzy para Sistemas de Abastecimento de Água. Dissertação de M.Sc., UFPB, João Pessoa, PB, Brasil. CAMPOS, M. M., SAITO, K., 2004, Sistemas Inteligentes em Controle e Automação de Processos, Rio de Janeiro, RJ, Brasil, Editora Ciência Moderna. CARVALHO, G. C., 1993. Desenvolvimento dos três primeiros graus de liberdade de um manipulador robótico axial. Brasília. UNB. CARVALHO, J. S. F., 2009, Controle Adaptativo Aplicado em um Robô Manipulador de Dois Graus de Liberdade Planar. Tese de D. Sc., UFPB, João Pessoa, PB, Brasil. CHEN, C. –H., 1998. Automatic Design of Neural Networks Based on Genetic Algorithms. Proceedings of the 1998 International Computer Symposium – Workshop on Artificial Intelligence, pp.: 8-13. CHEN, H.B.; LIN, T.; CHEN, S. B.; WANG, J. F.; Jia, J. Q.; ZHANG, H. 2008. Adaptive control on wire feeding in robot arc welding system. IEEE Conference on Robotics, Automation and Mechatronics, pp.: 119-122. CHO, J., PRINCIPE, J. C., ERDOGMUS, D., MOTTER M. A., 2006, Modeling and Inverse Controller Design for an Unmanned Aerial Vehicle Based on the Selforganizing Map. IEEE Transactions on Neural Net-works, vol. 17, nº. 2, pp. 445460. CHRISTALLER, T.; DECKER, M.; GILSBACH, J.-M.; HIRZINGER, G.;LAUTERBACH, K.; SCHWEIGHOFER, E.; SCHWEITZER, G.; STURMA, D., 2001. Robotik Perspektivenfürmenschliches Handeln inder zukünftigen Gesellschaft Springer, Berlin. COELHO, L. S., & MARIANI V. C., 2006, Sistema Híbrido Neuro-Evolutivo Aplicado ao Controle de um Processo Multivariável. Revista Controle & Automação/Vol. 17, nº 1. COSTA, E.; SIMOES, A., 2004. Inteligência Artificial Fundamentos e Aplicações. 98 FCA, Rio de Janeiro. DA-LEI, S. & YAN-LI, L., 2010. Na Obstacle-Avoidance Path-Planing in Robot Soccer Based on Refined Genetic Algorithms. 2nd International Conference on Information, Science and Engineering (ICISE), pp.: 4941 – 4944. DARWIN, C., 1859. The Origin of Species. John Murray, (Penguin Classics, 1985). DIAS, J., 1999. Treinamento Híbrido de Redes Neurais para Processamento de Informações Biomédicas. Tese de Doutorado, Universidade Federal de Santa Catarina, UFSC, Brasil. DORF, R. C., 2001, Sistemas de Controle Moderno. São Paulo, SP. Brasil. Livraria LTC ENDO, M.; HIROSE, K.; HIRATA, Y.; KOSUGE, K.; KAN BAYASHI, T.; OOMOTO, M.; AKUNE, K.; ARAI, H.; SHINODUKA, H.; SUZUKI, K. 2008. A car trans-portation system by multiple mobile robots – iCART. IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.: 2795-2801. ESAKI, S.; UCHIYAMA, N.; TAKAGI, S., 2000. Robust Vibration Control for SCARA Robots Using Adaptive Polo Placement, 26th Annual Conference of the IEEE Industrial Electronics Society (IECON) vol I, pp: 440 – 445. FEI, M.; HAIOU, Z.; GUILAN, W. 2010. Application of Industrial robot in rapid prototype manufacturing technology. 2nd International Conference on Industrial Mechatronics and Automation, vol. 1, pp.: 218-220. FERNANDES, A. M. R. 2005. Inteligência Artificial: noções gerais. 2ª impressão, Visual Books. FOGEL, D. B., 1994. An Introduction to Simulated Evolutionary Computation. IEEE Transactions on Neural Networks, vol. 5, issue 1, pp.: 3-14. FOGEL, L.J., 1962. Autonomous automata. Industrial Research, vol. 4, pp.: 14-19. FRASER, A.S., 1957. Simulation of genetic systems by automatic digital computers: I. Introduction. Austral. J. Biol. Sci., vol. 10, pp.: 484-491. FU, K.S., GONZALES, R.C., LEE, C.S.G. 1987. Robotics - Control, Sensing, Vision and Intelligence. McGraw-Hill Book Inc., International Edition, 1 ed., New York. FUHLBRIGGE, T.; CHEN, H.; LI, X., 2008. Automated industrial robot path planning for spray painting process: A review. IEEE International Conference on Automation Science and Engineering, pp.: 522-527. GAZEAU, J.-P.; EON, A.; ZEGHLOUL, S.; ARSICAULT, M. 2011. New Printing 99 Robot for High-Resolution Pictures on Three-Dimensional Wide Surfaces. IEEE Transactions on Industrial Electronics, vol. 58, issue 2, pp.: 384-391 GIRALT, G. 1997. A robótica. Biblioteca Básica de Ciência e Cultura, Instituto Piaget, Lisboa-Portugal. GOLDBERG, D.E., 1989. Genetic Algorithms in Search, Optmization, and Machine Learning. Addison-Wesley Publishing Company, Inc., Reading, Massachussets. GROOVER, M.P., 1988. Robótica: tecnologia e programação. McGraw-Hill, São Paulo. GROVER, M.P;. et al., 1986. Industrial Robotics: Technology, Programming and Applications. Editora McGraw-Hill. HAUPTY, R.L.; HAUPTY, S.E., 2004. Practical genetic algorithm. A John Wiley & Sons, Inc., Publications, 2º ed. HAYKIN, S., 2001, Redes Neurais, Princípios e Prática, Tradução de Paulo Martins Engel. 2ª Edição, Porto Alegre, RS - Brasil. Ed. Bookman. HEBB, D., 1949. Organization of Behavior. New York, John Wiley & Sons. HELD, C. M., ROY, R. J., 2000. Hemodynamic Management of Congestive Heart Failure by Means of a Multiple Mode Rule-Based Control System Using Fuzzy Logic. IEEE Transactions on Biomedical Engineering, v. 47, n. 1, pp. 115-123. HOLLAND, J. 1975. Adaptation in natural and artificial systems. Ann Arbor: Univ. of Michigan Press. HOLLAND, J. H., 1975. Adaptation in Natural and Artificial Systems. University of Michigan Press. HUANG, H.-P.; YAN, J.-L.; CHENG, T.-H., 2010. Development and Fuzzy Control of a Pipe Inspection Robot. IEEE Transactions on Industrial Electronics, vol. 57, issue 3, pp.: 1088 – 1095. HUNT, V., 1983. Industrial Robotics Handbook. Editora Industrial Press. IFR, 2000. International Federation of Robotics. http://www.ifr.org. IFR, 2008. World Robotics 2008 – Statistics, Market Analysis, Forecasts, Case Studies and Profitability of Robot Investment. Published by International Federation of Robotics (IFR) Statical Departament hosted by VDMA Robotics + Automation, Frankfurt, Germany. IOANNOU, P. A.; SUN, J., 1996. Robust Adaptive Control. Prentice Hall. ISERMANN, R., & LACHMANN, K, 1992 , Adaptive Control System. 100 Prentice Hall International. ISO Standard 10218:2006. Robots for industrial environments -- Safety requirements Part 1: Robot. ISO Standard 8373:1994. Manipulating Industrial Robots. IYODA, E. M., 2000. Inteligência Computacional no Projeto Automático de Redes Neurais Híbridas e Redes Neurofuzzy Heterogêneas. Tese de Mestrado, Faculdade de Engenharia Elétrica e de Computação, UNICAMP. JARVIS, D. E., 1973. The case for the spray painting robot. Production Engineer, IET Journals; Vol. 52, issue 5, pp.: 171-174. JASON, D.J. and FRENZEL, J.F., 1993. Training product unit neural networks with genetic algorithms. IEEE Expert, vol.1, issue 1, pp.: 26 – 33. JÚLIO, E. F. X., 2010. Controlador Fuzzy Aplicado a um Sistema de Controle de Posição Acionado por Motores de Indução Trifásicos. Dissertação de Mestrado, UFPB, Brasil. KELLY, R., 1993. Comments on adaptive PD controller for robot manipulator. IEEE Trans. Robotics Automation., vol. 9,pp.: 117–119. KIM, D. I.; KANG, J. H.; KIM, S., 1994. Full digital joint motion controller of permanent magnet AC servo motor for industrial robot and CNC machine tool. 20th International Conference on Industrial Electronics, Control and Instrumentation, vol. 2, pp.: 1015 – 1021. KIRYU, T., SASAKI, I, SHIBAI, K., et al., 2001. Providing Appropriate Exercise Levels for the Elderly. IEEE Engineering in Medicine and Biology, v. 20, n. 6, pp.: 116-124. KOMAGOME, D.; SUZUKI, M.; ONO, T.; YAMADA, S. 2007. RobotMeme – A proposal of Human-Robot Mimetic Mutual Adaptation. The 16th IEEE International Symposium on Robot and Human interactive Communication, pp.: 427-432. KOVÁCS, Z. L ,1996, Redes Neurais Artificiais: fundamentos e Aplicações, São Paulo, Brasil, Editora Acadêmica. KOZA, J.R., 1995. Survey of genetic algorithms and genetic programming. Proceedings Of Wescon 95, IEEE Press, pp.: 589-594. KUC, T.-Y., HAN, W.-G, 1998. Adaptive PID Learning of Periodic Robot Motion. Proccedings of the 37th IEEE on Decision and Control, vol 1, pp.: 86-91. KUKA, 2008. Kuka Kr 1000 titan, Power meets perfection. Product Brochure Kuka 101 Roboter GmbH, FLYI1205/0407, UK. KUKA, 2009 .Kuka Robotics Products Overview. Disponível em http://www.kukarobotics.com/en/products, visitado pela última vez em 10 de dezembro de 2011. KULITZ, H. R., 2004. Modelagem e Controle Fuzzy de Robôs e Veículos MultiArticulados. Tese de Doutorado, UFES, Brasil LACERDA, E. G. M.; CARVALHO, A. C. P. L. F., 1999. Anais do XIX Congresso Nacional da Sociedade Brasileira de Computação. Rio de Janeiro. LIU, Q.; CHAI, T.; ZHAO, L.; ZHAN, Y; ZHANG, S. Modeling and Gain Scheduling Adaptive Control of Tension Control System for Continuous Annealing Process. Proceedings of the 48th IEEE Conference on Decision and Control, pp: 55985603, 2009. MAMDANI, E. H., ASSILIAN, S., 1974. An Experiment in Linguistic Synthesis with a Fuzzy Logic Controller. International Journal of Man-Machine Studies, v. 7, pp.: 1-13 MAMDANI, E. H., ASSILIAN, S., 1974. Application of Fuzzy Algorithm for Control of Simple Dynamic Plant. Proceedings of IEEE Control and Science, pp.: 1585 – 1588. MÁSSON, E.; Wang, Y.-J., 1990. Introduction to Computation and Learning in Artificial Neural Networks. European Journal of Operational Research, NorthHoland, vol. 47, pp.: 1 - 28. MCCULLOCH, W. S. e PITTS, W. (1943). A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, vol. 5, pp. 115-133. McKERROW, P., 1993. Introductions to Robotics. Editora Addison-Wesley. MENEZES FILHO, J. B. de, 2010. Controlador vetorial neural para mesa de coordenadas XY. Revista Controle e Automação, SBA, 2010. MENEZES FILHO, J. B., 2007, Controlador Neural Adaptativo para Mesa de Coordenadas. Tese de D.Sc., UFPB, João Pessoa, PB, Brasil. MICHALEWICZ, Z., 1996. Genetic Algorithms + Data Structures = Evolution Programs. 3ª edição, Springer. MINSKY, M. L. & PAPERT, S. A., 1988. Perceptrons: an Introductions to Computational Geometry. The MIT Press, 3ª ed., Impressão modificada do original de 1969. MORIARTY, D. E. & MIIKKULAINEN, R., 1998. Hierarchical Evolution of Neural 102 Networks. Proceedings of the 1998 Conference on Evolutionary Computation, pp.: 428 – 433. MUNSHI, C. J.; MAHALANABIS, A. K.; LEE, K. Y., 1989. Stochastic Pole Placement Control Of Robot Manipulators. American Control Conference, pp.: 2336 – 2336. NAGASHIMA, R., 2006. Treinamento de uma Rede Neural de Base Radial Usando Computação Evolutiva: Implementação e Aplicações. Dissertação de Mestrado, Universidade Estadual Paulista. NASCIMENTO J, C. L., YONEYAMA, T. 2000 , Inteligência Artificial em Controle e Automação. São Paulo, Brasil. Editora Edgard Blucher. NIKU, B. S., 2001. Introduction to Robotics: Analysis, systems, applications. New Jersey, Prentice Hall. NÓBREGA SOBRINHO, C. A. 2011. Controlador Neural Aplicado a um Sistema Posicionador Acionado por motores de Indução Trifásicos. Dissertação de Mestrado, UFPB, Brasil. NOVÁK, V., 1989. Fuzzy sets and their application. Adam Hilger, USA. OGATA, K., 2003 , Engenharia de Controle Moderno. Tradução de Bernardo Severo São Paulo Brasil Editora LTC. ORTEGA, A. V., SILVA, I. N., 2008, Neural Network Model for Designing Automotive Devices Using SMD LED. International Journal of Automotive Technology), vol. 9, nº. 2, pp. 203-210. PACHECO, M., A., C., 2005. Algoritmos Genéticos: Princípios e Aplicações, Curso de Introdução aos Algoritmos Genéticos, Notas de Aula. ICA – Laboratório de Computação Aplicada, PUC-Rio. PAGLIOSA, A.L., 2003. “Obtenção das Funções de Pertinência de um Sistema Neurofuzzy Modificado pela Rede de Kohonen”. Dissertação de Mestrado, UDESC. PARASKEVOPOULOS, P.N., 1995, Digital Control Systems. First Edition, Prentice Hall, USA. PARK, M. H.; LEE, D. C.; SUL, S. K., 1994. High performance current regulator for a field-oriented controlled induction motor drive. IEEE Transactions on Industry Applications, vol. 30, issue 5, pp.: 1247 – 1257. PARKER, D., 1982. Learning Logic. Invention Report, Stanford University, File 1, Office of Technology Licensing, USA. 103 QINGCHUM, M.; HONGLIAN, S.; CHANGJIU, Z.; HONGBO, J.; HAO, D., 1998. Intelligent Control Based on Genetic Algorithms – Case Study on Mobile Robot. Proceedings of the IEEE International Joint Symposia on Intelligence and Systems, pp.: 252 – 256. R.RAMESH, M.A.MANNAN,A.N.POO, 2005, . “Tracking and contour error Control in CNC Servo Systems”. International Journal of Machine Tools and Manufacture pp 301– 326. RECHENBERG, I., 1965. Cybernetic solution path of an experimental problem. Royal Aircraft Establishment, Library Translation no. 1122. REYERO, R., NICOLÁS, C. F., 1995. Sistemas de Control Basados em Lógica Borrosa: Fuzzy Control. Omron Eletronics S.A., Espanha. REZENDE, S. O., et al., 2005. Sistemas Inteligentes: Fundamentos e Aplicações. Editora Manole, Barueri, Sp. RIBEIRO FILHO, J.L.; TRELEAVEN, P.C.; ALIPPI, C., 1994. Genetic-algorithm programming environments. Computer, vol.27, issue.6, pp.: 28-43. RICHTER, T., 2009, Arquitetura de Sistema Inteligente Para Sensoriamento Virtual de Oxigênio em Veículos Bicombustíveis. Dissertação de Mestrado, EESC/USP, São Carlos, SP, Brasil. RIVIN, E., 1988. Mechanical Design of Robots. 1ª ed., McGraw-Hill Inc., New York. ROMANO, V. R. 2002. Robótica Industrial. 1ª ed. São Paulo: Ed. Edgard Blücher LTDA. ROSÁRIO, J.M., 2005. Princípios de Mecatrônica. PRENTICE HALL, São Paulo. ROSEN, C.A., 1985. Robots and Machine Intelligence. Handbook of Industrial Robotics, 1 ed., chapter 3, New York, John Wiley & Sons. RUFINO, F. A. O., 2008. Desenvolvimento de um Robô Móvel Autônomo com Controle Fuzzy. Tese de Doutorado, UFPB, João Pessoa, PB, Brasil. RUMELHART, D.; McCLELLAND, J., 1986. Parallel distributed processing – explorations in the microstructure of cognition, ed. David E. Rumelhart and James l. McClelland, MIT Press Cambridge, MASS, vol 1. SANTOS, V. M. F., 2004. Robótica Industrial. Departamento de Engenharia Mecânica, Universidade de Aveiro. SATO, N.; KON, K.; FUKUSHIMA, H.; MATSUNO, F., 2008. Map-based Navigation Interface for Multiple Rescue Robots. SSRR, IEEE International 104 Workshop on Safety, Security and Rescue Robotics, pp.: 152-157. SCHIAVICCO, L., SICILIANO, B. 1995, Robotica Industriale - Modellistica e Controllo di Manipolatori. 1ª Ed., McGraw-Hill Inc., Milano. SCHIRMER, L., 2005. Modelagem do Robothron – Um Manipulador de Barras Paralelas. Dissertação de Mestrado, UDESC, Santa Catarina. SCHWEFEL, H.-P., 1965. Kybernetische Evolution als Strategie der experimentellen Forschung in der Strömungstechnik, Diplomarbeit. Hermann Föttinger Institut für Strömungstechnik, Technische Universität, Berlin. SCIESZKO, J.L., 1988. Projeto de Robôs. Notas de aula curso de graduação em Engenharia Mecânica EE-UFRJ, Rio de Janeiro. SEERING, W. P., SCHEINMAN, V., 1985. Mechanical Design of an Industrial Robot. Handbook of Industrial Robotics, 1 ed., chapter 4, New York, John Wiley & Sons. SHAW, I. S., SIMÕES, M. G., 2004. Controle e Modelagem Fuzzy. São Paulo, SP, Brasil, Editora Edgard Blucher Ltda. SHEN, Y., ZHONGXIANG, Z., ENRONG, M., 2007. Double-Fuzzy Kalman Filter Based on GPS/IMU/MV Sensor Fusion for Tractor Autonomous Guidance. IEEE International Conference on Automation and Logistics, pp.: 61-65. SHHEIBIA, T. A. A., 2001. Controle de um Braço Robótico Utilizando uma Abordagem de Agente Inteligente. Dissertação de Mestrado., UFPB, Campina Grande, PB, Brasil. SHIOMI, M.; KANDA, T.; GLAS, D.F.; SATAKE, S.; ISHIGURO, H.; HAGITA, N., 2009. Field trial of networked social robots in a shopping mall. IEEE/RSJ International Conference on Intelligent Robots and systems, pp.: 2846-2853. SIMOES, M. G., FRANCESCHETTI, N. N., 1999. Fuzzy Optimisation Based Control of a Solar Array System. IEEE Proceedings on Electric Power Applications, v. 146, issue. 5, pp.: 552-558. SKELLY, M. M., CHIZECK, H. J., 2001. Real-time Gait Event Detection for Paraplegic FES Walking. IEEE Transactions on Neural Systems and Rehabilitation Engineering, vol. 9, issue 1, pp.: 59-68. SNYDER, W. E., 1985, Industrial Robots: Computer Interfacing and Control. Prentice - Hall Inc., New Jersey. SOUZA, O. B., 2010, Controle Adaptativo Aplicado em Dois Elos de um Robô 105 Manipulador Eletropneumático de Três Graus de Liberdade Cartesiano. Dissertação de M. Sc., UFPB, João Pessoa, PB, Brasil. SOUZA, S. A., 2008, Algoritmos Genéticos Aplicados à Proteção e Estimação de Harmônicos em Sistemas Elétricos de Potência. Tese de Doutorado, EESC/USP, São Carlos, SP, Brasil. STOICA, M.; CALANGIU, G. A.; SISAK, F.; SARKANY, I., 2010. A Method Proposed for Training na Artificial Neural Network Used for Industrial Robot Programming by Demonstration. 12th International Conference on Optimization of Electrical and Electronic Equipment (OPTIM), pp.: 831 – 836. SUGENO, M. & KANG, T., 1988. Structure Identification of a Fuzzy Model. Fuzzy Sets and Systems, pp.: 15-33. SUM, J. P. F.; LEUNG, C.-S.; TAM, P. K. S.; YOUNG, G. H.; KAN, W. K.; CHAN, L.-W., 1999. Analysis for a Class of Winner-Take-All model. IEEE Transactions on Neural Networks, vol. 10, issue 1, pp.: 64-71. TAFNER, M. A.; XEREZ, M.; FILHO, I. W. R., 1996. Redes Neurais Artificiais – Introdução e Princípios de Neurocomputação. Editora Eko, 1ª edição. TAFNER, M. A; XEREZ, M.; FILHO, I. W. R., 1996. Redes Neurais Artificiais – Introdução e Princípios de Neurocomputação. Editora Eko, 1ª edição. TAKAGI, S.; UCHIYAMA, N., 2005. Robust Control System Design for SCARA Robots Using Adaptive Pole Placement. IEEE Transactions on Industrial Electronics, vol. 52, issue 3, pp.: 915-921 TAKAGI, T., SUGENO, M., 1985. Fuzzy Identification of Systems and Its Application to Modelling and Control. IEEE Trans. Syst. Man Cybern., v. SMC-15, n. 1, pp. 116-132. TAKEGAKI, M.; ARIMOTO S., 1981. A new feedback method for dynamic control of manipulators. J. Dyn.Sys.Meas. ControlTransaction, ASME, issue 103, pp.: 119125. TANG, Z.; YANG, M.; PEI, Z., 2010. Self-Adaptive_PID Control Strategy Based on RBF Neural Network for Robot Manipulation. First International Conference on Pervasive Computing, Signal Processing and Applications (PCSPA), pp.: 932935 TANOMARU, J., 1999. Motivação, fundamentos e aplicações de algoritmos genéticos. Proc. do II Congresso Brasileiro de Redes Neurais, vol.1, nº 3, Curitiba, Brasil, 106 pp.: 331 - 411. TSAI, M.-C.; TOMIZUKA, M., 1989. Model Reference Adaptive Control and Repetitive Control for Robot Manipulators. Proceedings of IEEE Internation Coference on Robotics and Automation, vol. 3, pp.: 1650-1655 VARGAS, E. T., 2005, Uma Proposta de Relé Digital de Frequência Baseado em Algoritmos Genéticos. Dissertação de Mestrado, EESC/USP, São Carlos, SP, Brasil. VICENTE, B. G. L. Z., CEZARE, M. J., SILVA, I. N., 2007, Controlador Neural de Marcha Lenta Para Motores de Combustão Interna. Anais do VIII Simpósio Brasileiro de Automação Inteligente, Florianópolis, CD-ROM (paper Nº. 30909). WAI, R. J., DUAN, R. Y., WANG, W. H., et al., 2003. Implementation of Artificial Intelligent Control in Single-Link Flexible Robot Arm. Proceedings of the IEEE International Symposium on Computational Intelligence in Robotics and Automation, vol. 3, pp.: 1270-1275. WANG, D.; LEUNG, J.; KURIAN, A. P.; KIM, H.-J.; YOON, H. 2010. A Deconvolutive Neural Net-work for Speech Classification With Applications to Home Service Robot. IEEE Transactions on Instrumentation and Measurement, vol. 59, issue 12, pp.: 3237-3243. WARNECKE, H. J., SCHRAFT, R. D., WANNER M. C., 1985. Mechanical Design of Robot System. Handbook of Industrial Robotics, 1 ed., chapter 5, New York, John Wiley & Sons. WAWERLA, J.; VAUGHAN, R. T., 2010, A fast and frugal method for team-task allocation in a multi-robot transportation system. IEEE International Conference on Robotics and Automation (ICRA), pp.: 1432-1437. WEIS, H., XIAO, J., 2003. Fuzzy System Control for Combined Wind and Solar Power Distributed Generation Unit. IEEE International Conference on Industrial Technology, v. 2, pp.: 1160-1165. WEN, J. T.; MURPHY, S., 1990. Stability analysis of position and force control problems for robot arms. IEEE International Conference on Robotics and Automation, vol. 1, pp.: 252-257. WERBOS, P., 1974. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Ph.D. Thesis, Harvad University, Cambridge, Massachussets. WHITLEY, D., 1994. A genetic algorithm tutorial. Springer Science + Business Media 107 B.V., Formerly Kluwer Academic. pp.: 65-85. WHITLEY, D., STARKWEATHER, T. & BOGART, C., 1990. Genetic Algorithms and Neural Networks: Optimizing Connections and Connectivity. Parallel Computing, vol. 14, pp.: 347 – 361. WIDROW, B., 1962. Generation and Information Storage in Networks of Adaline Neurons. Self-Organization Systems, Spartan Books, Washington DC, pp.: 435 – 461. YAN, H., JIANG, Y., ZHENG, J., PENG, C., LI, Q., 2006, A Multilayer Perceptronbased Medical Decision Support System for Heart Disease Diagnosis. Expert Systems with Applications, vol. 30, nº. 2, pp. 272-281. YANG, X.; MOALLEM, M.; PATEL, R.V., 2005. Motion planning for mobile robots using a fuzzy layered goal-oriented approach. Proceedings of the IEEE Conference on Control Applications, pp.: 78-83. YANPING, L; HAIJIANG, L., 2009, Welding multi-robot task allocation for BIW based on hill climbing genetic algorithm. Technology and Innovation Conference (ITIC), International, pp.: 1-8. YONEYAMA, T.; JUNIOR, C. L. N., 2000. Inteligência Artificial em Controle e Automação. Editora Edgard Blucher Ltda, 1ª edição. YUN, S. C.; GANAPATHY, V.; CHONG, L. O., 2010. Improved Genetic Algorithms Based Optimum Path Planning for Mobile Robot. 11th International Conference on Control, Automation, Robotics & Vision (ICARCV), pp.: 1565 – 1570. ZADEH, L. A., 1973, “Outline of a New Approach to the Analysis of Complex Systems and Decision Process”, IEEE Trans. on Systems, Man and Cybernetcs, v. 3, pp. 28-44. ZHANG, T.; NAKAMURA, M.; Kyura, N., 2001. High-precision Contour Control of Industrial Robot Arm by Neural Network Compensation with Learning Uncertainties. Proceedings on IEEE International Symposium on Electronics (ISIE), vol. 3, pp.: 1650 – 1655. ZHAO, Y.; CHEAH, C. C. 2009. Neural Network Control of Multifingered Robot Hands Using Visual Feedback. IEEE International Transactions on Neural Networks, vol. 20, issue 5. 2, pp. 758-767 ZHAO-HUI, J. and ISHIDA, T. 2007. Trajectory Tracking Control of Industrial Robot Manipulators Using a Neural Network Controller. IEEE International Conference on Systems, Man and Cybernetics, pp. 2390-2395. 108 APÊNDICE A TESTES COM O ALGORITMO GENÉTICO A.1 INTRODUÇÃO Para se efetuar a escolha do número de neurônios na camada oculta da RNA utilizada no presente trabalho foram realizadas diversas simulações com o objetivo de verificar qual indivíduo apresentaria melhor fitness quando a planta fosse submetida a variadas referências. Todos os testes mantiveram as mesmas características, ou seja, os pesos iniciais da rede neural foram iniciados em zero para todas as situações. No total, foram realizadas 15 simulações para a base e 15 simulações para o braço do manipulador robótico, sendo 5 simulações com referência do tipo degrau, 5 simulações com referência do tipo onda quadrada e 5 simulações com referências do tipo função circular, tanto para a base como para o braço. A.1.1 Resultados dos testes para o braço Inicialmente, o braço foi submetido a uma entrada do tipo degrau com amplitude de 80º. Os resultados a seguir demonstram a evolução do algoritmo genético até a convergência para um valor ótimo para o número de indivíduos na camada oculta da rede neural utilizada como controlador no presente trabalho. 109 1º teste População Inicial [10 3 5 6 5 13 6 9 2 11] População Final [15 15 15 14 15 15 13 14 15 15] Quantidade de Gerações: 9 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 13 2.2731 10 2.4135 10 2.4543 13 2.2420 2ª Geração 13 2.2544 13 2.2359 13 2.2567 13 2.2720 3ª Geração 13 2.2346 13 2.2187 15 2.0079 14 2.1349 4ª Geração 13 2.2724 15 2.0873 15 2.0168 14 2.1797 5ª Geração 15 2.0771 13 2.2063 13 2.2756 15 2.0166 6ª Geração 15 2.0160 15 2.0511 15 2.0679 12 2.2915 7ª Geração 15 2.0745 15 2.0348 15 2.0992 12 2.2920 8ª Geração 15 2.0234 15 2.0327 15 2.0182 110 14 2.1343 9ª Geração 15 2.0747 15 2.0939 15 2.0565 15 2.0690 Resumo da simulação Indivíduo 10 12 13 14 15 Quantidade de vezes como melhor 2 2 11 3 18 Fitness médio 2.4339 2.2918 2.2492 2.1496 2.0510 2º teste População Inicial [1 2 3 1 5 14 1 7 15 2] População Final [15 15 15 14 14 15 15 15 15 14] Quantidade de Gerações: 7 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 15 2.0593 14 2.1534 15 2.0528 7 2.6797 2ª Geração 14 2.1165 15 2.0171 14 2.1863 15 2.0849 3ª Geração 14 2.1192 15 2.0849 15 2.0251 15 2.0838 4ª Geração 15 2.0913 15 2.0440 14 2.1984 15 2.0333 5ª Geração 15 2.0501 111 15 15 15 2.0513 2.0313 2.0519 6ª Geração 15 2.0863 15 2.0159 15 2.0178 14 2.1431 7ª Geração 14 2.1794 14 2.1238 15 2.0473 15 2.0789 Resumo da simulação: Indivíduo 7 14 15 Quantidade de vezes como melhor 1 8 19 Fitness médio 2.6797 2.1525 2.0530 3º teste População Inicial [1 9 6 1 5 7 1 1 2 11] População Final [15 15 15 15 15 15 15 13 15 15] Quantidade de Gerações: 20 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 9 2.1882 7 2.7271 9 2.1582 8 2.4156 2ª Geração 9 2.1863 8 2.4966 8 2.3853 8 2.4656 3ª Geração 9 2.2233 8 2.4775 9 2.0876 8 2.4063 4ª Geração 9 2.1412 112 9 11 9 2.2467 1.8769 2.1897 5ª Geração 11 1.7740 9 2.1018 10 1.9995 9 2.1258 6ª Geração 11 1.8710 9 2.1524 13 1.5386 9 2.2266 7ª Geração 13 1.5552 10 1.9669 9 2.1872 9 2.2178 8ª Geração 13 1.5262 10 1.9151 10 2.0031 9 2.1036 9ª Geração 13 1.4966 13 1.5474 13 1.5137 13 1.5246 10ª Geração 13 1.5219 13 1.5489 13 1.5478 13 1.5790 11ª Geração 13 1.4857 13 1.4923 15 1.3480 13 1.5298 12ª Geração 15 1.3177 13 1.5141 13 1.5432 13 1.5459 13ª Geração 15 1.3495 13 1.5475 15 1.3346 13 1.5135 14ª Geração 15 1.3017 113 15 1.3348 15 1.3646 15 1.3750 15ª Geração 15 1.3322 15 1.3588 15 1.3302 15 1.3794 16ª Geração 15 1.3442 15 1.3477 15 1.3115 15 1.3202 17ª Geração 15 1.3182 15 1.3497 15 1.3123 15 1.3233 18ª Geração 15 1.3360 15 1.3403 15 1.3038 15 1.3586 19ª Geração 15 1.3083 15 1.3340 15 1.3168 15 1.3528 20ª Geração 15 1.3015 15 1.3065 15 1.3203 15 1.3741 Resumo da simulação: Indivíduo 8 9 11 12 13 14 15 Quantidade de vezes como melhor 1 7 16 1 6 4 45 Fitness médio 2.5932 2.4648 2.3435 2.2920 2.2581 2.1662 2.0494 114 4º teste População Inicial [2 3 1 4 7 15 1 2 14 9] População Final [15 14 15 15 15 14 14 15 15 14] Quantidade de Gerações: 8 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 15 2.0728 14 2.1729 14 2.1709 14 2.1560 2ª Geração 15 2.0348 14 2.1784 15 2.0129 14 2.1464 3ª Geração 15 2.0888 14 2.1382 15 2.0248 15 2.0370 4ª Geração 15 2.0492 13 2.2462 15 2.0439 14 2.1632 5ª Geração 13 2.2999 14 2.1469 15 2.0196 15 2.0928 6ª Geração 15 2.0597 13 2.2605 14 2.1932 15 2.0709 7ª Geração 14 2.1635 15 2.0083 15 2.0592 15 2.0105 8ª Geração 15 2.0374 15 2.0463 15 2.0859 115 15 2.0108 Resumo da simulação: Indivíduo 13 14 15 Quantidade de vezes como melhor 3 10 19 Fitness médio 2.2689 2.1630 2.0456 5º teste População Inicial [1 8 6 7 1 4 14 1 12 11] População Final [14 15 15 15 15 14 15 14 14 15] Quantidade de Gerações: 8 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 14 2.1443 12 2.2979 14 2.1778 10 2.3888 2ª Geração 12 2.2980 14 2.1798 14 2.1557 13 2.2187 3ª Geração 15 2.0641 13 2.2362 14 2.1979 14 2.1333 4ª Geração 14 2.1936 15 2.0457 14 2.1155 15 2.0294 5ª Geração 15 2.0766 15 2.0522 14 2.1261 15 2.0602 6ª Geração 15 2.0350 15 2.0560 15 2.0359 116 14 2.1435 7ª Geração 15 2.0947 15 2.0344 15 2.0768 15 2.0906 8ª Geração 15 2.0093 15 2.0138 15 2.0285 15 2.0172 Resumo da simulação Indivíduo 10 12 13 14 15 Quantidade de vezes como melhor 1 2 2 10 17 Fitness médio 2.3888 2.2980 2.2275 2.1567 2.0483 Em seguida, o braço foi submetido a uma referência do tipo onda quadrada com amplitude de 40º e período de 40 segundos. 1º teste População Inicial [1 9 7 8 8 1 8 11 3 5] População Final [15 15 15 14 15 15 14 15 14 15] Quantidade de Gerações: 8 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 11 3.1779 9 3.3257 11 3.1335 9 3.4281 2ª Geração 11 3.1843 11 3.1196 10 3.2111 11 3.1020 3ª Geração 11 3.1653 117 11 11 10 3.1841 3.1668 3.2317 4ª Geração 11 3.1230 11 3.1456 14 2.9624 11 3.1691 5ª Geração 14 2.9842 11 3.1855 15 2.8495 10 3.2370 6ª Geração 15 2.8299 14 2.9099 12 3.0221 15 2.8706 7ª Geração 15 2.8807 12 3.0174 15 2.8512 15 2.8879 8ª Geração 15 2.8685 15 2.8313 15 2.8676 15 2.8493 9ª Geração 15 2.8301 15 2.8461 15 2.8291 15 2.8576 10ª Geração 15 2.8535 14 2.9689 15 2.8202 15 2.8683 11ª Geração 15 2.8343 14 2.9609 15 2.8668 15 2.8955 118 Resumo da simulação: Indivíduo 9 10 11 12 14 15 Quantidade de vezes como melhor 2 3 12 2 5 20 Fitness médio 3.3769 3.2266 3.1547 3.0198 2.9573 2.8544 2º teste População Inicial [7 7 7 2 2 2 3 9 15 4] População Final [15 15 14 15 15 15 15 15 15 15] Quantidade de Gerações: 8 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 15 2.8672 9 3.4354 14 2.9465 7 3.9456 2ª Geração 15 2.8699 14 2.9609 15 2.8800 15 2.8521 3ª Geração 15 2.8309 15 2.8526 15 2.8417 15 2.8371 4ª Geração 15 2.8385 15 2.8461 15 2.8527 15 2.8205 5ª Geração 14 2.9849 15 2.8782 15 2.8202 15 2.8656 6ª Geração 15 2.8366 15 2.8251 15 2.8788 119 15 2.8883 7ª Geração 15 2.8397 15 2.8656 14 2.9862 15 2.8692 8ª Geração 15 2.8387 15 2.8536 15 2.8428 15 2.8525 Resumo da simulação: Indivíduo 7 9 14 15 Quantidade de vezes como melhor 1 1 4 26 Fitness médio 3.9456 3.4354 2.9696 2.8517 3º teste População Inicial [10 4 3 11 1 9 9 11 6 8] População Final [15 15 15 15 15 15 14 14 15 12] Quantidade de Gerações: 16 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 11 3.1106 10 3.2861 11 3.1294 11 3.1328 2ª Geração 11 3.1515 11 3.1312 11 3.1067 11 3.1161 3ª Geração 11 3.1749 11 3.1879 11 3.1404 11 3.1598 4ª Geração 11 3.1818 11 3.1374 120 15 11 2.8813 3.1865 5ª Geração 15 2.8467 11 3.1877 15 2.8794 11 3.1201 6ª Geração 15 2.8839 15 2.8335 15 2.8215 13 3.0366 7ª Geração 15 2.8296 15 2.8310 15 2.8227 13 3.0243 8ª Geração 15 2.8259 15 2.8521 15 2.8457 15 2.8855 9ª Geração 15 2.8666 15 2.8880 15 2.8681 15 2.8316 10ª Geração 15 2.8228 15 2.8551 15 2.8862 15 2.8112 11ª Geração 13 3.0082 15 2.8237 15 2.8618 14 2.9586 12ª Geração 15 2.8321 15 2.8457 15 2.8355 15 2.8367 13ª Geração 14 2.9584 15 2.8739 15 2.8652 15 2.8871 14ª Geração 15 2.8877 15 2.8682 121 15 2.8503 15 2.8638 15ª Geração 15 2.8757 15 2.8540 15 2.8366 15 2.8514 16ª Geração 15 2.8280 15 2.8475 15 2.8712 15 2.8366 Resumo da simulação: Indivíduo 10 11 13 14 15 Quantidade de vezes como melhor 1 16 3 2 42 Fitness médio 3.2861 3.1472 3.0230 2.9585 2.8524 4º teste População Inicial [1 14 2 8 2 2 11 6 5 12] População Final [15 14 15 15 15 15 14 14 15 14] Quantidade de Gerações: 8 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 11 3.1370 14 2.9545 15 2.8451 15 2.8559 2ª Geração 15 2.8600 15 2.8684 14 2.9862 14 2.9893 3ª Geração 15 2.8368 15 2.8281 14 2.9367 14 2.9555 4ª Geração 122 15 15 15 15 2.8399 2.8409 2.8290 2.8605 5ª Geração 15 2.8520 15 2.8871 14 2.9310 15 2.8218 6ª Geração 15 2.8285 14 2.9566 15 2.8699 15 2.8766 7ª Geração 15 2.8678 14 2.9769 15 2.8470 15 2.8392 8ª Geração 14 2.9172 15 2.8281 14 2.9492 15 2.8677 Resumo da simulação: Indivíduo 11 14 15 Quantidade de vezes como melhor 1 10 21 Fitness médio 3.1370 2.9553 2.8500 5º teste População Inicial [4 1 3 5 14 3 1 3 7 11] População Final [15 15 15 15 15 14 14 15 15 15] Quantidade de Gerações: 6 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 14 2.9675 11 3.1133 15 2.8347 9 3.4140 2ª Geração 123 15 14 14 11 2.8504 2.9609 2.9374 3.1455 3ª Geração 15 2.8406 15 2.8824 15 2.8940 14 2.9378 4ª Geração 15 2.8861 14 2.9936 14 2.9137 15 2.8581 5ª Geração 15 2.8532 15 2.8304 15 2.8844 15 2.8609 6ª Geração 15 2.8422 15 2.8396 15 2.8628 15 2.8828 Resumo da simulação: Indivíduo 9 11 14 15 Quantidade de vezes como melhor 1 2 6 15 Fitness médio 3.4140 3.1294 2.9518 2.8602 Por fim, o braço foi submetido a uma entrada senoidal, com amplitude de 40 º e um período de 160 segundos. 1º Teste População Inicial [7 1 9 3 7 1 1 6 6 8] População Final [15 15 15 15 15 13 13 15 15 15] Quantidade de Gerações: 20 Melhores indivíduos por geração: 124 Indivíduos Fitness 1ª Geração 9 2.1882 7 2.7271 9 2.1582 8 2.4156 2ª Geração 9 2.1863 8 2.4966 8 2.3853 8 2.4656 3ª Geração 9 2.2233 8 2.4775 9 2.0876 8 2.4063 4ª Geração 9 2.1412 9 2.2467 11 1.8769 9 2.1897 5ª Geração 11 1.7740 9 2.1018 10 1.9995 9 2.1258 6ª Geração 11 1.8710 9 2.1524 13 1.5386 9 2.2266 7ª Geração 13 1.5552 10 1.9669 9 2.1872 9 2.2178 8ª Geração 13 1.5262 10 1.9151 10 2.0031 9 2.1036 9ª Geração 13 1.4966 13 1.5474 13 1.5137 13 1.5246 10ª Geração 13 1.5219 13 1.5489 13 1.5478 125 13 1.5790 11ª Geração 13 1.4857 13 1.4923 15 1.3480 13 1.5298 12ª Geração 15 1.3177 13 1.5141 13 1.5432 13 1.5459 13ª Geração 15 1.3495 13 1.5475 15 1.3346 13 1.5135 14ª Geração 15 1.3017 15 1.3348 15 1.3646 15 1.3750 15ª Geração 15 1.3322 15 1.3588 15 1.3302 15 1.3794 16ª Geração 15 1.3442 15 1.3477 15 1.3115 15 1.3202 17ª Geração 15 1.3182 15 1.3497 15 1.3123 15 1.3233 18ª Geração 15 1.3360 15 1.3403 15 1.3038 15 1.3586 19ª Geração 15 1.3083 15 1.3340 15 1.3168 15 1.3528 20ª Geração 15 1.3015 15 1.3065 15 1.3203 126 15 1.3741 Resumo da simulação: Indivíduo 7 8 9 10 11 13 15 Quantidade de vezes como melhor 1 6 15 4 3 19 32 Fitness médio 2.7271 2.4412 2.1691 1.9712 1.8406 1.5301 1.3346 2º teste População Inicial [4 10 1 1 6 8 1 4 8 14] População Final [15 15 15 15 15 15 14 15 15 15] Quantidade de Gerações: 16 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 14 1.4578 8 2.4199 13 1.5689 10 1.9452 2ª Geração 14 1.4650 13 1.5466 10 1.9958 12 1.6768 3ª Geração 14 1.4532 10 1.9929 12 1.6365 14 1.4437 4ª Geração 14 1.4474 14 1.4520 14 1.4062 10 1.9883 5ª Geração 14 1.4245 14 1.4556 14 1.3972 13 1.5616 127 6ª Geração 1.4411 1.4420 1.4076 1.4215 7ª Geração 14 1.4544 14 1.4664 15 1.3734 12 1.6641 8ª Geração 15 1.3272 14 1.4128 15 1.3614 14 1.3866 9ª Geração 15 1.3599 14 1.3918 15 1.3498 14 1.4309 10ª Geração 15 1.3410 15 1.3433 15 1.3513 13 1.5448 11ª Geração 15 1.2845 15 1.3128 15 1.3705 14 1.4132 12ª Geração 15 1.3310 15 1.3396 15 1.3335 15 1.3394 13ª Geração 15 1.3242 15 1.3769 15 1.3211 15 1.3289 14ª Geração 15 1.2948 15 1.3173 15 1.3197 15 1.3291 15ª Geração 15 1.3244 15 1.3307 15 1.3221 15 1.3342 14 14 14 14 128 16ª Geração 15 1.3265 15 1.3359 15 1.3245 15 1.3396 Resumo das simulações: Indivíduo 8 10 12 13 14 15 Quantidade de vezes como melhor 1 4 3 4 21 31 Fitness médio 2.4199 1.9806 1.6591 1.5555 1.4319 1.3345 3º teste População Inicial [8 2 7 9 11 12 1 2 1 1] População Final [15 15 15 15 15 14 13 15 15 15] Quantidade de Gerações: 9 Melhores indivíduos por geração: Indivíduos Fitness 1ª Geração 11 1.8014 12 1.6420 13 1.5774 8 2.4263 2ª Geração 12 1.6202 11 1.7769 15 1.2891 14 1.4513 3ª Geração 15 1.3685 11 1.7875 11 1.7914 10 1.9396 4ª Geração 15 1.2910 15 1.3444 15 1.3213 14 1.4464 5ª Geração 15 1.3015 129 15 15 13 1.3470 1.3555 1.5466 6ª Geração 15 1.3088 15 1.3541 15 1.3071 15 1.3102 7ª Geração 15 1.3023 15 1.3180 15 1.2811 15 1.3050 8ª Geração 15 1.3276 15 1.3305 15 1.3510 15 1.3577 9ª Geração 15 1.3029 15 1.3247 15 1.3280 15 1.3478 Resumo da simulação: Indivíduo 8 10 11 12 13 14 15 Quantidade de vezes como melhor 1 1 4 2 2 2 24 Fitness médio 2.4263 1.9396 1.7893 1.6311 1.5620 1.4489 1.3240 4º teste População Inicial [11 5 4 1 2 6 15 5 14 11] População Final [15 15 15 15 15 14 15 15 15 14] Quantidade de Gerações: 6 Melhores indivíduos por geração: 130 Indivíduos Fitness 1ª Geração 15 1.3459 14 1.4340 15 1.2987 13 1.5478 2ª Geração 15 1.3210 14 1.4727 15 1.3636 10 1.9844 3ª Geração 15 1.3338 14 1.4170 14 1.3948 14 1.4330 4ª Geração 15 1.3675 14 1.3905 15 1.3306 15 1.3433 5ª Geração 15 1.2810 15 1.3534 15 1.3010 15 1.3579 6ª Geração 15 1.3173 15 1.3323 15 1.3694 15 1.3709 Resumo da simulação: Indivíduo 10 13 14 15 Quantidade de vezes como melhor 1 1 6 16 Fitness médio 1.9844 1.5478 1.4237 1.3367 5º teste População Inicial [10 15 14 14 7 1 10 10 7 1] População Final [15 15 15 15 15 14 12 15 14 14] Quantidade de Gerações: 5 Melhores indivíduos por geração: 131 Indivíduos Fitness 1ª Geração 14 1.4496 10 1.9570 15 1.3650 11 1.6995 2ª Geração 15 1.3272 15 1.3392 15 1.3245 10 2.0135 3ª Geração 15 1.3360 15 1.3521 15 1.3299 14 1.4218 4ª Geração 15 1.3417 15 1.3422 15 1.3142 15 1.3347 5ª Geração 15 1.3018 15 1.3388 15 1.3244 15 1.3366 Resumo da simulação: Indivíduo 10 11 14 15 Quantidade de vezes como melhor 2 1 2 15 Fitness médio 1.9853 1.6995 1.4357 1.3339 A.1.2 Resultados dos testes para a base De maneira análoga ao que foi feito para o braço, a base do manipulador robótico também foi submetida, inicialmente, a uma referência do tipo degrau com amplitude de 100°. 132 1º teste População Inicial [2 9 1 1 15 13 15 10 10 1] População Final [15 15 15 15 15 15 15 15 15 12] Quantidade de Gerações: 8 Melhores por geração: Indivíduos Fitness 1ª Geração 15 4.5229 15 4.6382 14 4.7361 14 4.7385 2ª Geração 15 4.4883 15 4.5983 15 4.5128 15 4.6247 3ª Geração 15 4.4474 15 4.5642 15 4.4151 15 4.6600 4ª Geração 15 4.5262 15 4.5814 15 4.4967 15 4.5145 5ª Geração 15 4.4224 15 4.4820 15 4.4859 15 4.5801 6ª Geração 15 4.4768 15 4.5046 15 4.5001 15 4.5987 7ª Geração 15 4.5585 15 4.6208 15 4.4628 15 4.4827 8ª Geração 133 15 15 15 15 4.4650 4.4897 4.5096 4.5831 Resumo das simulações: Indivíduo 14 15 Quantidade de vezes como melhor 2 30 Fitness médio 4.7373 4.5271 2º teste População Inicial [1 14 13 14 11 2 1 4 8 13] População Final [15 15 15 15 14 15 15 15 13 12] Quantidade de Gerações: 9 Melhores por geração: Indivíduos Fitness 1ª Geração 14 4.6761 14 4.6862 13 4.8735 12 4.9540 2ª Geração 14 4.6685 13 4.7618 14 4.6834 14 4.6262 3ª Geração 14 4.6445 14 4.6481 15 4.4182 14 4.6807 4ª Geração 15 4.4856 14 4.5640 15 4.4983 12 4.9248 5ª Geração 15 4.4147 15 4.4273 15 4.4559 14 4.6929 6ª Geração 15 4.4358 134 15 14 15 4.4745 4.5964 4.4891 7ª Geração 15 4.4533 15 4.4659 14 4.6698 15 4.4493 8ª Geração 15 4.4342 15 4.4853 15 4.4268 15 4.4848 9ª Geração 15 4.4135 15 4.4301 15 4.3411 15 4.3776 Resumo da simulação: Indivíduo 12 13 14 15 Quantidade de vezes como melhor 2 2 12 20 Fitness médio 4.9394 4.8177 4.6531 4.4431 3º teste População Inicial [15 15 8 10 10 8 9 4 7 11] População Final [15 15 15 15 15 15 15 14 13 13 Quantidade de Gerações: 6 Melhores por geração: Indivíduos Fitness 1ª Geração 15 4.3912 15 4.4873 15 4.5079 11 5.2635 2ª Geração 15 4.4951 15 4.4410 15 4.4189 15 4.4738 3ª Geração 135 15 15 15 15 4.4250 4.4427 4.4356 4.4826 4ª Geração 15 4.4747 15 4.4949 15 4.4642 15 4.4549 5ª Geração 15 4.4191 15 4.4554 15 4.4160 15 4.4496 6ª Geração 15 4.4855 15 4.4370 15 4.4753 15 4.4225 Resumo da simulação Indivíduo 11 15 Quantidade de vezes como melhor 1 23 Fitness médio 5.2635 4.4544 4º teste População Inicial [9 6 7 12 3 7 11 11 1 4] População Final [15 15 15 15 14 15 15 15 15 13] Quantidade de Gerações: 8 Melhores por geração: Indivíduos Fitness 1ª Geração 12 5.1740 11 5.2120 15 4.4786 11 5.2065 2ª Geração 15 4.4456 11 5.2172 14 4.5365 15 4.4536 136 3ª Geração 4.4584 4.4927 4.4694 4.5879 4ª Geração 15 4.4875 15 4.4070 15 4.4879 15 4.4989 5ª Geração 15 4.4659 15 4.4612 15 4.4645 15 4.4879 6ª Geração 15 4.4146 15 4.4935 15 4.4814 15 4.4866 7ª Geração 15 4.4544 15 4.4664 15 4.4447 15 4.4957 8ª Geração 15 4.4862 15 4.4885 15 4.4599 15 4.4687 15 15 15 14 Resumo da simulação: Indivíduo 11 12 14 15 Quantidade de vezes como melhor 3 1 2 26 Fitness médio 5.2119 5.1740 4.5622 4.4692 5º teste População Inicial [5 6 3 1 15 6 4 12 10 10] População Final [15 15 15 15 15 15 14 14 13 15] Quantidade de Gerações: 10 Melhores por geração: 137 Indivíduos Fitness 1ª Geração 15 4.4596 12 5.1973 15 4.5700 14 4.6333 2ª Geração 15 4.4103 15 4.4143 15 4.4094 10 5.2172 3ª Geração 15 4.4237 15 4.4510 15 4.4131 14 4.7207 4ª Geração 15 4.4961 15 4.4266 15 4.4504 15 4.4632 5ª Geração 15 4.4844 15 4.4281 15 4.4612 15 4.4537 6ª Geração 15 4.4794 15 4.4897 15 4.4256 15 4.4631 7ª Geração 15 4.4589 15 4.4186 15 4.4538 15 4.4795 8ª Geração 15 4.4580 15 4.4855 15 4.4691 14 4.6429 9ª Geração 15 4.4779 15 4.4844 15 4.4349 15 4.4345 138 10ª Geração 15 4.4500 15 4.4541 14 4.6021 15 4.4552 Resumo da simulação: Indivíduo 10 12 14 15 Quantidade de vezes como melhor 1 1 4 34 Fitness médio 5.2172 5.1973 4.6498 4.4555 Em um segundo instante, a base foi submetida a uma entrada do tipo onda quadrada, com amplitude de 50° e um período de 40 segundos. 1º teste População Inicial [15 10 3 2 6 8 13 8 6 9] População Final [15 14 15 15 15 15 14 15 12 13] Quantidade de Gerações: 8 Melhores por geração: Indivíduos Fitness 1ª Geração 15 3.4704 13 3.7697 11 4.0373 10 4.0824 2ª Geração 15 3.4616 13 3.7680 15 3.4706 12 3.8738 3ª Geração 15 3.4616 15 3.4618 14 3.6178 13 3.7542 4ª Geração 15 3.4148 139 15 14 15 3.4504 3.5481 3.4547 5ª Geração 15 3.4253 15 3.4598 14 3.5896 14 3.5914 6ª Geração 15 3.4720 15 3.4143 15 3.4719 15 3.4778 7ª Geração 15 3.4971 14 3.5282 15 3.4988 15 3.4835 8ª Geração 15 3.4213 15 3.4210 15 3.4244 15 3.4616 Resumo da simulação: Indivíduo 10 11 12 13 14 15 Quantidade de vezes como melhor 1 1 1 3 5 21 Fitness médio 4.0824 4.0373 3.8738 3.7640 3.5750 3.4559 2º teste População Inicial [12 11 7 1 13 5 2 11 14 13] População Final [15 14 15 15 15 15 14 13 15 13] Quantidade de Gerações: 4 Melhores por geração: Indivíduos Fitness 1ª Geração 14 3.6263 13 3.6654 15 3.4434 140 15 3.4525 2ª Geração 15 3.4520 14 3.6170 14 3.6763 15 3.4920 3ª Geração 15 3.4606 15 3.4591 14 3.5247 15 3.4631 4ª Geração 15 3.3359 15 3.5074 15 3.4950 15 3.4751 Resumo da simulação: Indivíduo 13 14 15 Quantidade de vezes como melhor 1 4 11 Fitness médio 3.6654 3.6111 3.4578 3º Teste População inicial [15 15 14 15 4 4 7 11 4 12] População final [15 15 15 15 15 15 15 15 13 14] Quantidade de Gerações: 10 Melhores por geração Indivíduos Fitness 1ª Geração 15 3.4994 15 3.4774 14 3.6324 15 3.4631 2ª Geração 15 3.4977 15 3.4982 15 3.4398 12 3.8368 3ª Geração 15 3.4742 15 3.4553 15 3.4520 141 15 3.4475 4ª Geração 15 3.4657 15 3.4343 15 3.4244 15 3.4286 5ª Geração 15 3.3719 15 3.4690 15 3.4216 1 4.5286 6ª Geração 15 3.4745 15 3.4468 15 3.4332 15 3.4713 7ª Geração 15 3.4749 15 3.4293 15 3.4511 15 3.4555 8ª Geração 15 3.4707 14 3.5265 15 3.4999 15 3.4226 9ª Geração 15 3.4681 15 3.4213 15 3.4617 15 3.4983 10ª Geração 15 3.3822 15 3.4769 15 3.3473 15 3.4298 Resumo da simulação: Indivíduo 1 12 14 15 Quantidade de vezes como melhor 1 1 2 36 Fitness médio 4.5286 3.8368 3.5795 3.4510 4º Teste População Inicial [7 8 7 4 13 2 5 1 4 15] 142 População Final [14 15 15 15 15 15 15 13 14 12] Quantidade de Gerações: 7 Melhores por geração: Indivíduos Fitness 1ª Geração 15 3.4339 13 3.7689 14 3.6159 13 3.7926 2ª Geração 14 3.6068 15 3.4531 15 3.4776 15 3.4264 3ª Geração 15 3.4808 15 3.4835 15 3.4981 14 3.6394 4ª Geração 15 3.4619 14 3.5470 15 3.4113 15 3.4281 5ª Geração 15 3.4488 15 3.4742 14 3.5883 15 3.4791 6ª Geração 15 3.4688 15 3.4783 14 3.6386 15 3.4762 7ª Geração 15 3.4385 15 3.4397 15 3.4292 15 3.4208 Resumo da simulação Indivíduo 13 14 15 Quantidade de vezes como melhor 2 6 20 Fitness médio 3.7808 3.6060 3.4554 143 5º teste População Inicial [1 12 15 10 13 11 3 12 14 9] População Final [15 15 15 15 15 15 15 14 14 13] Quantidade de Gerações: 5 Melhores por geração: Indivíduos Fitness 1ª Geração 15 3.4748 15 3.4377 15 3.4097 14 3.6111 2ª Geração 15 3.4996 15 3.4845 14 3.5780 15 3.4981 3ª Geração 15 3.4033 15 3.4724 15 3.4130 14 3.5392 4ª Geração 15 3.4304 15 3.4917 15 3.4941 15 3.4213 5ª Geração 15 3.4661 15 3.4759 15 3.4347 15 3.4551 Resumo da simulação: Indivíduo 14 15 Quantidade de vezes como melhor 3 17 Fitness médio 3.5761 3.4566 Por fim, à base foi imposta uma referência do tipo cossenoidal, com amplitude de 50° e um período de 160 segundos. 144 1º Teste População Inicial [3 13 10 1 5 15 9 9 12 14] População Final [15 15 15 15 15 14 15 15 14 13] Quantidade de gerações: 7 Melhores por geração Indivíduo Fitness 1ª Geração 15 1.9089 14 2.0453 15 1.9038 13 2.2531 2ª Geração 15 1.8998 13 2.1399 14 2.0315 14 2.0344 3ª Geração 14 2.0269 13 2.2726 15 1.9723 13 2.0574 4ª Geração 15 1.9166 14 2.0686 15 1.8947 15 1.8955 5ª Geração 15 1.8815 15 1.9568 15 1.9314 15 1.9736 6ª Geração 15 1.8851 15 1.8969 15 1.8771 15 1.9210 7ª Geração 15 1.8736 15 1.9069 15 1.8455 15 1.9217 145 Resumo da simulação: Indivíduo 13 14 15 Quantidade de vezes como melhor 3 6 19 Fitness médio 2.2219 2.0440 1.9086 2º Teste População Inicial [14 1 15 14 1 5 13 1 4 3] População Final [15 15 15 15 15 15 14 15 15 15] Quantidade de gerações: 14 Melhores por geração: Indivíduos Fitness 1ª Geração 14 2.1248 13 2.2454 14 2.0124 13 2.2111 2ª Geração 14 2.0594 13 2.1838 15 1.9226 13 2.2303 3ª Geração 14 2.0569 14 2.1229 13 2.2065 13 2.2490 4ª Geração 14 2.0217 14 2.0753 14 2.0468 13 2.1940 5ª Geração 14 2.0664 14 2.0931 14 2.0125 14 2.0327 6ª Geração 14 2.0999 14 2.0671 146 15 13 1.8649 2.2341 7ª Geração 14 2.0020 14 2.0508 15 1.9225 14 2.0561 8ª Geração 15 1.9852 14 2.0076 15 1.9216 14 2.0223 9ª Geração 15 1.9188 14 2.0906 15 1.9483 14 2.0276 10ª Geração 15 1.8796 15 1.9146 15 1.9408 15 1.9763 11ª Geração 15 1.8734 15 1.8961 15 1.8701 15 1.9306 12ª Geração 15 1.8553 15 1.8789 15 1.8692 15 1.8930 13ª Geração 15 1.8694 15 1.8972 15 1.9107 15 1.9406 14ª Geração 15 1.8838 15 1.8911 15 1.8915 15 1.8945 Resumo da simulação: Indivíduo 13 14 15 Quantidade de vezes como melhor 8 21 27 Fitness médio 2.2193 2.0547 1.9052 147 3º Teste População Inicial [6 6 8 15 11 14 4 12 1 15] População Final [15 15 15 14 14 15 15 15 15 13] Quantidade de gerações: 4 Melhores por geração Indivíduos Fitness 1ª Geração 15 1.8683 15 1.9571 11 2.5091 10 2.7424 2ª Geração 15 1.9193 15 1.9935 14 2.0485 12 2.4175 3ª Geração 15 1.8885 15 1.9552 15 1.9721 14 2.0355 4ª Geração 15 1.8811 15 1.9387 15 1.8876 15 1.8985 Resumo da simulação: Indivíduo 10 11 12 14 15 Quantidade de vezes como melhor 1 1 1 2 11 Fitness médio 2.7424 2.5091 2.4175 2.0420 1.9236 4º Teste População Inicial [2 14 8 4 1 5 8 8 4 6] 148 População Final [15 15 15 15 15 15 14 15 15 13] Quantidade de gerações: 14 Melhores por geração: Indivíduos Fitness 1ª Geração 14 2.0691 8 3.4312 9 2.9902 8 3.5681 2ª Geração 15 1.9328 13 2.1725 14 2.0197 13 2.1567 3ª Geração 15 1.9599 14 2.0142 15 1.8833 15 1.9488 4ª Geração 15 1.9192 15 1.9227 15 1.9125 12 2.3756 5ª Geração 15 1.8829 15 1.9216 15 1.9016 15 1.9348 6ª Geração 15 1.8881 15 1.9275 15 1.9310 15 1.9695 7ª Geração 15 1.9271 15 1.9472 15 1.9138 15 1.9238 8ª Geração 15 1.8761 15 1.9162 15 1.8851 15 1.9145 9ª Geração 15 1.8548 15 1.9044 149 13 2.2430 12 2.3099 10ª Geração 15 1.9251 15 1.9622 15 1.9011 14 2.0484 11ª Geração 15 1.9414 15 1.9703 15 1.9022 15 1.9183 12ª Geração 15 1.9019 15 1.9075 15 1.8820 15 1.8950 13ª Geração 15 1.8919 15 1.8958 15 1.8840 15 1.9158 14ª Geração 15 1.9093 15 1.9095 15 1.8443 15 1.9327 Resumo da simulação: Indivíduo 8 9 12 13 14 15 Quantidade de vezes como melhor 2 1 2 3 4 44 Fitness médio 3.4996 2.9902 2.3427 2.1907 2.0379 1.9134 5º Teste População Inicial [3 1 1 13 2 2 12 6 11 8] População Final [15 15 15 15 14 14 15 15 15 14] Quantidade de gerações: 11 Melhores por geração: Indivíduos Fitness 150 1ª Geração 2.2488 2.3556 2.0476 2.1298 2ª Geração 14 2.0129 13 2.2230 15 1.9109 12 2.3707 3ª Geração 14 2.0855 12 2.3399 12 2.3747 12 2.4066 4ª Geração 14 2.0629 12 2.3705 14 2.0750 12 2.3718 5ª Geração 15 1.9403 14 2.0529 14 2.0633 14 2.0638 6ª Geração 15 1.8785 14 2.0013 15 1.8867 15 1.9119 7ª Geração 15 1.9462 14 2.0257 15 1.9068 14 2.0423 8ª Geração 15 1.9252 15 1.9307 15 1.8766 15 1.9215 9ª Geração 15 1.9177 15 1.9451 15 1.8999 15 1.9043 10ª Geração 15 1.9256 15 1.9964 15 1.9131 15 1.9314 13 12 14 13 151 11ª Geração 15 1.8917 15 1.8995 15 1.9187 14 2.0487 Resumo da simulação: Indivíduo 12 13 14 15 Quantidade de vezes como melhor 7 3 12 22 Fitness médio 2.3700 2.2005 2.0485 1.9172 Ao se observar os resultados das simulações, verifica-se que o indivíduo [15] figurou mais vezes entre os melhores indivíduos, bem como apresentou sempre um menor valor de fitness médio se comparado com outros indivíduos. Por essas razões, escolheu-se um número de 15 neurônios na camada oculta, tanto para a base como para o braço. 152