• Nenhum resultado encontrado

Comparativo entre controlador PID e redes neurais artificiais no controle de atitude de um quadricóptero

N/A
N/A
Protected

Academic year: 2021

Share "Comparativo entre controlador PID e redes neurais artificiais no controle de atitude de um quadricóptero"

Copied!
97
0
0

Texto

(1)

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA

CURSO DE ENGENHARIA DE COMPUTAÇÃO

MATHEUS MAGNUSSON

COMPARATIVO ENTRE CONTROLADOR PID E REDES NEURAIS ARTIFICIAIS NO CONTROLE DE ATITUDE DE UM QUADRICÓPTERO

TRABALHO DE CONCLUSÃO DE CURSO

PATO BRANCO 2018

(2)

MATHEUS MAGNUSSON

COMPARATIVO ENTRE CONTROLADOR PID E REDES NEURAIS ARTIFICIAIS NO CONTROLE DE ATITUDE DE UM QUADRICÓPTERO

Trabalho de Conclusão de Curso de graduação do Curso Superior de Engenharia de Computação da Universidade Tecnológica Federal do Paraná, Câmpus Pato Branco, como requisito para obtenção do título de bacharel. Orientador: Prof. Dr. Fábio Favarim

PATO BRANCO 2018

(3)
(4)

AGRADECIMENTOS

Gostaria de dedicar este trabalho primeiramente ao meu amado e falecido avô, Armando Sebastião Magnusson, o qual dedicou seus últimos anos em me oferecer condições financeiras, mesmo com sacrifícios, para me manter em minha cidade de estudo até minha volta, assim bem como minha amada avó, Rosalina Aparecida Marques Magnusson, que sempre me ensinou o caminho para a educação e não mediu esforços em manter-me nesse caminho, investindo uma vida para minha criação, desde recursos financeiros, feito também com muitos sacrifícios, até todo o resto que é necessário para se criar alguém, não tenho palavras para descrever o que minha avó para mim representa, minha professora, toda palavra aqui é pouca. Avô e avó que tenho como pais por amor, desde a perda de meus pais biológicos. À minha tia Elaine Aparecida Magnusson, que esteve sempre ao lado de minha avó e também sempre me ajudou financeiramente durante meu caminho de estudo. Aos anjos em minha vida, falecido Sr. Luiz Antonio Scussolino e Sr. Francisco Heitor Penteado, que investiram seus recursos financeiros para minha estadia, ambos amigos de meu avô, mesmo antes de me conhecerem pessoalmente. Dedico também à UTFPR com seu programa de Bolsa Permanência e oportunidades de Estágio remunerados que ajudaram, e muito, na realização deste sonho, em especial ao Jonas Boiarski meu ex-chefe no Departamento Interno de Manutenção e Suporte ao Usuário por dois anos, o qual nos ajudava a conciliar trabalho com estudos, e à professora Beatriz Terezinha Borsoi, a qual me incentivou com palavras, obtenção de bolsa e até recurso de sua própria renda, tenho grande admiração e carinho pela senhora. À 3ª Igreja Presbiteriana de Rio Claro, sob direção do Rev. Clemilton Alves de Melo e sua esposa Débora Nogueira de Melo, cujos membros me ofereceram financiamento inicial para saída de minha cidade natal e ida à cidade de estudo, de modo que pudesse me manter inicialmente, e a Igreja Presbiteriana de Pato Branco, que me acolheu na cidade, sob direção do Rev. Ademir Colpani e sua esposa Sandra Colpani, que abriram durante o período inicial de minha estadia as portas de sua casa, assim como o mesmo o fez sua filha Monique Thaís Colpani e Thiago Schmeing durante outro certo período da minha estadia. Ao meu orientador Fábio Favarim, o qual a mim confiou este trabalho. À meus amados sogros, Taniamara Andreoni Philippsen e Sergio Luis Philippsen, pais que a vida me concedeu, os quais me deram a tranquilidade de um segundo lar durante meus estudos e até hoje, os almoços e jantas foram ótimos. Aos meus amigos que citá-los aqui seria difícil, sou abençoado por tantos nomes, mas vocês sabem quem são, e isso alegra meu coração, fizeram dos meus dias mais

(5)

leves. Ao meu atual chefe profissional, Charles Henrique Schweitzer, o qual sempre me concedeu a oportunidade de estar me dedicando a este trabalho me liberando quando precisei viajar. A Escola Politécnica da USP-São Paulo, que por meio do professor Paulo Sérgio Cugnasca, abriram suas portas da Engenharia Elétrica para mim, fui muito bem recebido por todos, muito obrigado.

Reservei um lugar especial para minha amada Camila Andreoni Philippsen Magnusson, tudo o que eu escrever aqui para você será pouco, você é meu suporte, minha parceira, minha psicóloga, está disposta a ouvir meus conflitos, me dar bons conselhos, e me dar um lugar para chamar de lar onde quer que estejamos, você é a melhor pessoa que já conheci.

Por último mas o mais importante para mim, dedico este trabalho à Deus, o qual me proporcionou vida e mudou minha história, me tirando de uma vida que tinha tudo para dar errado. O Responsável por eu ter todas as pessoas que foram aqui citadas e muitas mais que aqui não foram escritas, postas no meu caminho, bem como todas as coisas que me concede ou me priva para meu próprio bem, sempre me orientando.

(6)

RESUMO

MAGNUSSON, Matheus. Comparativo entre controlador pid e redes neurais artificiais no controle de atitude de um quadricóptero. 2018. 97f. Monografia (Trabalho de Conclusão de Curso 2) - Curso de Engenharia de Computação, Universidade Tecnológica Federal do Paraná, Câmpus Pato Branco. Pato Branco, 2018.

Um quadricóptero é um helicóptero com quatro motores, que faz com que o veículo fique mais estável porém mais complexo para se controlar. Um quadricóptero tem seis graus de liberdade, três deles referentes à posição: altura, movimentos horizontais e verticais; e os outros três relacionados à orientação: arfagem, rolagem e guinada. Este trabalho apresenta um estudo usando Redes Neurais Artificiais e Controle PID aplicados no controle de atitude de um quadricóptero real, através da concepção de quatro Redes Neurais utilizando os algoritmos de treinamento Backpropagation, Levenberg-Marquardt, Bayesian Regularization e Scaled Conjugate Gradient, com aprendizado supervisionado pelo Controlador PD, gerando um sistema de controle aqui chamado de PDNN, a cada um destes sistemas de controle foi somado ainda a parcela Integral do controlador PID tradicional, resultando em quatro controladores híbridos nomeados PDNN+I, dos quais para o caso deste trabalho, a Rede Neural gerada pelo treinamento com o algoritmo Backpropagation, Levenberg-Marquardt e Bayesian Regularization obtiveram um melhor resultado, assemelhando-se aos seus professores.

(7)

ABSTRACT

MAGNUSSON, Matheus. Comparison between PID Controller and Artificial Neural Networks in the Attitude Control of a Quadcopter. 2018. 97f. Monografia (Trabalho de Conclusão de Curso 2) - Curso de Engenharia de Computação, Universidade Tecnológica Federal do Paraná, Câmpus Pato Branco. Pato Branco, 2018.

A quadcopter is a helicopter with four Motors, that make the vehicle more stable but more complex to control. A quadcopter has six degrees of freedom, three of them regarding the position: height, horizontal and vertical motions; and the other three are related to the orientation: pitch, roll and yaw. This work presents a study of using Artificial Neural Networks and PID control applied to the attitude control of a real quadcopter beyond conception of four Neural Networks using algorithms Backpropagation, Levenberg-Marquardt, Bayesian Regularization and Scaled Conjugate Gradient with supervisioned learning by PD control, making a control systems named here as PDNN, for this control systems was summed the Integral parcel of PID traditional control, resulting in four hybrid control systems called PDNN+I, of which for the case of this work, the Neural Network generated by the training with the algorithm Backpropagation, Levenberg-Marquardt and Bayesian Regularization obtained a better result, resembling to its teachers.

(8)

LISTA DE FIGURAS

Figura 1 - Flying Octopus. ... 14

Figura 2 – Mavic Pro da Dji. ... 15

Figura 3 - Estrutura básica do funcionamento de um quadricóptero. ... 18

Figura 4 - Movimentos de um quadricóptero. (a) Repouso (Hovering). (b) Movimento ascendente vertical (Throttle). (c) Movimento de Arfagem (Pitch) . (d) Movimento de Rolagem (Roll). (e) Movimento de Guinada (Yaw). ... 19

Figura 5 - (A) Esquema BLDC inrunner, (B) Esquema BLDC outrunner. ... 21

Figura 6 - Diâmetro e passo da hélice. ... 22

Figura 7 - Terminais de entrada e saída de um ESC genérico. ... 23

Figura 8 - Bateria LiPo da Thunder Power RC. ... 23

Figura 9 - Conjunto de sensores com 10 DOF, MPU6050. ... 24

Figura 10 - Microcontrolador Tiva TM4C123G da Texas Instruments. ... 25

Figura 11 - Fonte chaveada 12V e 50A. ... 26

Figura 12 - Diagrama de blocos em malha fechada de um controlador PID... 27

Figura 13 - Célula neural biológica com a sequência de propagação do sinal. ... 29

Figura 14 - Representação em diagrama em blocos do sistema nervoso. ... 29

Figura 15 - Modelo não-linear de um neurônio. ... 30

Figura 16 - Função de limiar. ... 32

Figura 17 - Funão linear por partes. ... 33

Figura 18 - Função sigmóide para parâmetro de inclinação a variável. ... 33

Figura 19 - Função tangente hiperbólica para parâmetro de inclinação a variável. ... 34

Figura 20 - Representação das entradas e saídas de uma rede Feedfoward. ... 35

Figura 21 - Ilustração das direções de propagação do sinal funcional e do erro. ... 35

Figura 22 - Aproximação de um sistema de controle através de um neurônio não-linear. ... 37

Figura 23 - Diagrama de blocos em malha fechada de um controlador RNA para um quadricóptero ... 38

Figura 24 - Diagrama de blocos para treinamento de uma RNA baseado no Modelo Direto. . 38

Figura 25 - Diagrama de relacionamento entre os componentes... 46

Figura 26 - Estrutura montada para testes. ... 48

Figura 27 - Diagrama de blocos em malha fechada do controlador PID para o quadricóptero. ... 48

Figura 28 - Diagrama de obtenção de dados e treinamento da Rede Neural. ... 50

Figura 29 – Teste de Comportamento do Controlador PID para uma referência alternada. .... 52

Figura 30 – Potenciômetro de 5kΩ acoplado ao eixo de rolamento da base de testes. ... 52

Figura 31 - Teste de Comportamento do Controlador PID para uma referência alternada utilizando um potenciômetro para simular o sensor inercial. ... 53

Figura 32 - Representação das entradas e saídas da Rede Neural PDNN+I... 54

Figura 33 - Diagrama de blocos em malha fechada do controlador PDNN+I para o quadricóptero. ... 55

Figura 34 - Curva de performance de aprendizado da Rede Neural treinada pelo algoritmo Backpropagation, adaptado de Bullinaria (2009). ... 55

Figura 35 - Curva de performance de aprendizado da Rede Neural treinada pelo algoritmo Backpropagation, adaptado de Bullinaria (2009), ampliada. ... 56

Figura 36 - Teste de Regressão obtido durante o treinamento da Rede Neural pelo algoritmo Backpropagation. ... 57

(9)

Figura 37 - Teste de Comportamento do Controlador Neural treinado pelo algoritmo

Backpropagation para uma referência alternada em teste real no quadricóptero. ... 58

Figura 38 – Comparativo de controle de atitude entre o Controlador Neural treinado pelo algoritmo Backpropagation e o Controlador PID. ... 58

Figura 39 - Curva de performance de aprendizado da Rede Neural treinada pelo algoritmo Levenberg Marquardt ... 59

Figura 40 - Teste de Regressão obtido durante o treinamento da Rede Neural pelo algoritmo Levenberg Marquardt ... 60

Figura 41 – Teste de Comportamento do Controlador Neural treinado pelo algoritmo Levenberg Marquardt para uma referência alternada em teste real no quadricóptero. .... 61

Figura 42 - Comparativo de controle de atitude entre o Controlador Neural treinado pelo algoritmo Levenberg Marquardt e o Controlador PID. ... 62

Figura 43 – Curva de performance de aprendizado da Rede treinada pelo algoritmo Bayesian Regularization ... 63

Figura 44 – Teste de Regressão obtido durante o treinamento da Rede Neural pelo algoritmo Bayesian Regularization ... 63

Figura 45 - Teste de Comportamento do Controlador Neural treinado pelo algoritmo Bayesian Regularization para uma referência alternada em teste real no quadricóptero. ... 65

Figura 46 - Comparativo de controle de atitude entre o Controlador Neural treinado pelo algoritmo Bayesian Regularization e o Controlador PID. ... 66

Figura 47 - Curva de performance de aprendizado da Rede treinada pelo algoritmo Scaled Conjugate Gradient. ... 67

Figura 48 - Teste de Regressão obtido durante o treinamento da Rede Neural pelo algoritmo Scaled Conjugate Gradient. ... 68

Figura 49 - Teste de Comportamento do Controlador Neural treinado pelo algoritmo Scaled Conjugate Gradient para uma referência alternada em teste real no quadricóptero. ... 69

Figura 50 - Comparativo de controle de atitude entre o Controlador Neural treinado pelo algoritmo Scaled Conjugate Gradient e o Controlador PID. ... 70

Figura 51 – Comparativo entre Controladores Neurais ... 71

Figura 52 - Comparativo entre Controlador PID e Controladores RNA híbridos. ... 72

Figura 53 – Tela inicial da ferramenta Neural Fitting do Matlab ... 79

Figura 54 - Tela de inserção de dados da ferramenta Neural Fitting do Matlab ... 80

Figura 55 - Tela de quantidade de dados para treinamento, validação e teste da ferramenta Neural Fitting do Matlab ... 80

Figura 56 - Tela para configuração da quantidade de neurônios na Camada Oculta da ferramenta Neural Fitting do Matlab ... 81

Figura 57 - Tela para configuração do altoritmo de treinamento da ferramenta Neural Fitting do Matlab ... 82

Figura 58 - Tela de execução em tempo real da Rede Neural da ferramenta Neural Fitting do Matlab ... 82

Figura 59 - Tela para geração da função da Rede Neural treinada na ferramenta Neural Fitting do Matlab ... 83

(10)

LISTA DE TABELAS

Tabela 1 - Movimentos do quadricóptero... 20 Tabela 2 - Principais características do Tiva TM4C123G. ... 26 Tabela 3 - Bias e pesos da Rede Neural da Camada de Entrada x Camada Oculta encontrados

no treinamento da Rede Neural pelo agoritmo Levenberg Marquardt ... 60 Tabela 4 - Bias e pesos da Camada Oculta x Camada de Saída encontrados no treinamento da

Rede Neural pelo algoritmo Levenberg Marquardt ... 61 Tabela 5 - Bias e pesos da Rede Neural da Camada de Entrada x Camada Oculta encontrados

no treinamento da Rede Neural pelo agoritmo Bayesian Regularization ... 64 Tabela 6 - Bias e pesos da Camada Oculta x Camada de Saída encontrados no treinamento da

Rede Neural pelo algoritmo Bayesian Regularization ... 64 Tabela 7 - Bias e pesos da Rede Neural da Camada de Entrada x Camada Oculta encontrados

no treinamento da Rede Neural pelo agoritmo Scaled Conjugate Gradient. ... 68 Tabela 8 - Bias e pesos da Camada Oculta x Camada de Saída encontrados no treinamento da

Rede Neural pelo algoritmo Scaled Conjugate Gradient... 69 Tabela 9 - Formato de dados provindos do Controlador PD e normalizados para treinamento

(11)

LISTA DE SIGLAS

BLDC Brushless Direct Current (Corrente Contínua Sem Escovas) BP Backpropagation (Retro-propagação)

DOF Degrees Of Freedom (Graus De Liberdade)

ESC Eletronic Speed Controller (Controlador Eletrônico de Velocidade) LiPo Lithium-Polymer (Líthio-Polímero)

LM Levenberg-Marquardt

MEMS Micro-Electro-Mechanical Systems (Sistemas Microeletromecânicos) MIMO Multiple Input Multiple Output (Múltiplas Entradas e Múltiplas Saídas) MSE Mean Squared Error (Erro Quadrático Médio)

PID Proportional Integral and Derivative (Proporcional Integral e Derivativo) PWM Pulse-Width Modulation (Modulação por Largura de Pulso)

RNAs Redes Neurais Artificiais

SISO Simple Input Simple Output (Única Entrada e Única Saída) UAV Unmanned Aerial Vehicle (Veículo Aéreo Não Tripulado) VANT Veículo Aéreo Não Tripulado

(12)

SUMÁRIO 1 INTRODUÇÃO ... 14 1.1 PROBLEMA ... 16 1.2 OBJETIVOS ... 16 1.2.1 Objetivo Geral ... 16 1.2.2 Objetivos Específicos ... 16 1.3 JUSTIFICATIVA ... 17 2 REFERENCIAL TEÓRICO ... 18

2.1 EQUAÇÕES DE MOVIMENTOS DE UM QUADRICÓPTERO ... 18

2.2 COMPONENTES DE UM QUADRICÓPTERO ... 20 2.2.1 Motor Brushless ... 20 2.2.2 Hélices ... 21 2.2.3 ESCs ... 22 2.2.4 Bateria ... 23 2.2.5 Sensores ... 24

2.2.6 Unidade de controle (sistema embarcado) ... 25

2.2.7 Fonte (testes em estrutura fixa) ... 26

2.3 MÉTODOS DE CONTROLE E SISTEMAS INTELIGENTES ... 27

2.3.1 PID ... 27

2.3.2 Redes Neurais Artificiais (RNAs) ... 28

2.3.2.1 Introdução ... 28

2.3.2.2 Características Principais ... 31

2.3.2.3 Função de Ativação do Neurônio ... 32

2.3.2.4 Arquitetura de Rede Direta (Feedfoward) ... 34

2.3.2.4 Algoritmo de Retro-propagação BP ... 35

2.3.3 Controle utilizando RNA ... 36

2.3.3.1 RNA sob o ponto de vista de controle ... 36

2.3.3.2 Controle através de RNA com alimentação Direta ... 37

2.3.3.3 O Algoritmo de Retro-Propagação (BP) ... 40

2.3.3.4 Levenberg-Marquardt (LM) Backpropagation ... 43

2.3.3.5 Método Bayesiano Regularization Backpropagation ... 44

2.3.3.6 Método Scaled Conjugate Gradient Backpropagation ... 44

3 MATERIAIS E MÉTODOS ... 46

3.1 MATERIAIS ... 46

3.2 MÉTODOS ... 47

3.2.1 Revisão da Literatura ... 47

3.2.2 Seleção dos componentes e montagem do quadricóptero ... 47

3.2.3 Confecção de estrutura para testes ... 47

3.2.3 Implementação e testes das técnicas de controle no quadricóptero ... 48

4 EXPERIMENTOS E RESULTADOS ... 51

4.1 CONTROLADOR PID ... 51

4.2 CONTROLADOR RNA ... 53

4.2.1 Algoritmo Backpropagation ... 55

4.2.2 Algoritmo Levenberg Marquardt Backpropagation ... 59

4.2.3 Algoritmo Bayesian Regularization Backpropagation ... 62

(13)

4.3 COMPARATIVO ENTRE CONTROLADORES NEURAIS ... 71 4.4 COMPARATIVO ENTRE CONTROLADOR PID E CONTROLADORES NEURAIS 72 5 CONCLUSÃO ... 73 REFERÊNCIAS ... 74 APÊNDICE A – DADOS PROVINDOS DO CONTROLADOR PD NO CONTROLE DE ATITUDE DO QUADRICÓPTERO UTILIZADO PARA TREINAMENTO DA REDE NEURAL ... 78 APÊNDICE B – FERRAMENTA NEURAL NET FITTING DO MATLAB UTILIZADO PARA TREINAMENTO E GERAÇÃO DAS REDES NEURAIS ... 79 APÊNDICE C – ALGORITMO BACKPROPAGATION ADAPTADO DE JOHN BULLINARIA ... 89 APÊNDICE D – ALGORITMOS NEURAIS: LEVENBERG MARQUARDT, BAYESIAN REGULARIZATION E SCALED CONJUGATE GRADIENT EMBARCADOS NO MICROCONTROLADOR ... 93

(14)

1 INTRODUÇÃO

Os Veículos Aéreos Não Tripulados (VANT) ou Unmanned Aerial Vehicle (UAV), do inglês, estão cada vez mais inseridos em nosso meio, e é comum encontrar imagens capturadas pelos mesmos na indústria cinematográfica e imobiliária, por exemplo. Suas aplicações estão, ainda, no combate às pragas em uma lavoura, detecção de áreas florestais em incêndio, desmatamentos ilegais, operações militares, entre diversos outros. Como seu nome já diz, uma de suas grandes vantagens é a de não ser tripulado.

Mas nem sempre foi tão simples, a Figura 1 mostra um dos primeiros projetos na história que originou os princípios para um futuro tipo de VANT com quatro rotores (que será definido neste trabalho). O chamado de Flying Octopus tinha formato de cruz com quatro rotores nas extremidades e uma hélice com seis pás em cada um, necessitando de uma pessoa a bordo, desenvolvido no ano de 1922 pelo russo Georges Bothezate, que estava a trabalho para o exército dos Estados Unidos, voou com sucesso várias vezes, embora a baixas altitudes e velocidades, porém, por causa de custos elevados, performance insuficiente e o aumento de interesse dos militares em outros assuntos, o projeto foi cancelado (LEISHMAN, 2000).

Outros projetos como o da Figura 1 também foram anteriormente e posteriormente desenvolvidos, porém graças aos avanços tecnológicos que permitiram a redução de componentes eletrônicos aliado à radiofrequência, os mesmos tipos de projeto foram desenvolvidos, mas com tamanhos muito mais reduzidos, e seu controle não necessita mais de Figura 1 - Flying Octopus.

(15)

uma pessoa embarcada na estrutura para realizar o controle da máquina (VANT), o que poderia comprometer a sua segurança.

Em razão a tais avanços tecnológicos como melhoras na relação carga-massa das baterias e graças às tecnologias Micro-Electro-Mechanical Systems (MEMS) que tornaram dispositivos mecânicos e instrumentos de medição em dimensões milimétricas e massa da ordem de miligramas, os VANTs, em destaque, os elétricos, pela sua fácil mecânica, ausência de tanque de combustível (o que confere baixo risco de inflamabilidade) e redução de peso, chamam a atenção (MELO, 2010). Sendo, a plataforma-estudo desse trabalho, um tipo de VANT elétrico denominado “quadricóptero”.

A Figura 2 mostra o exemplo de um quadricóptero lançado em 2018, o "Mavic Pro" da Dji, carregando uma câmera para filmagens aéreas.

Quadricópteros são VANTs compostos por quatro rotores e estrutura em formato de cruz, com um rotor e respectiva hélice acoplados em cada extremidade (também utilizado o termo "multirrotores" para se generalizar a quantidade de rotores) podendo manter-se estaticamente em uma posição no ar, diversificação na tomada de direção e facilidade no quesito de decolagem e pouso por serem do tipo Vertical Take-off and Landing (VTOL), do português, Decolagem e Pouso Vertical.

Os quadricópteros são holonômicos, ou seja, podem se mover em qualquer direção, e sua sustentação no ar e movimentação ocorrem pela força de empuxo gerada por cada rotor, sendo de considerável complexidade seu controle, gerando diversos trabalhos realizados na área (SILVA, 2014).

Figura 2 – Mavic Pro da Dji. Fonte: Dji (2018).

(16)

Tal controle é realizado em resposta aos sensores inerciais e é chamado de controle de atitude. Este trabalho tem como motivação o estudo e comparação entre técnicas de controle de atitude em um quadricóptero, sendo elas a clássica PID (Proporcional Integral e Derivativo) e Redes Neurais Artificiais (RNA).

1.1 PROBLEMA

O sistema de controle de VANTs multirrotores tem se mostrado não trivial, uma vez que além das variáveis dos rotores para sua sustentação no ar e movimentação em todos os sentidos em relação ao seu eixo central os VANTs ainda trabalham em situações com distúrbios externos como o vento ou colisões. Assim, “devido a sua grande complexidade, encontrar um modelo matemático preciso [...], com vários parâmetros para serem ajustados simultaneamente, se mostra uma tarefa desafiadora” (MIRANDA et al., 2013, p. 2).

1.2 OBJETIVOS

A seguir são expostos o objetivo geral e os objetivos específicos deste trabalho.

1.2.1 Objetivo Geral

Realizar comparação do comportamento entre o controlador PID e o controlador baseado em RNAs na aplicação do controle de atitude de um quadricóptero.

1.2.2 Objetivos Específicos

 Definir sistemas de controle baseados em PID e RNAs para um quadricóptero;  Implementar os sistemas de controle em um quadricóptero real;

 Analisar os resultados obtidos na implementação dos controles desenvolvidos para um quadricóptero real de forma individual;

 Analisar os resultados obtidos de forma individual e comparar o desempenho entre a técnica baseada em PID e a técnica baseada em RNA para o controle de atitude em um quadricóptero real.

(17)

1.3 JUSTIFICATIVA

Silva (2014, p. 1) discorre que “o quadrirrotor é um sistema de difícil controle, pois é naturalmente instável, acoplado e subatuado. Numerosos trabalhos já foram publicados sobre seu controle”.

Assim sendo, este trabalho visa a contribuição aos estudos e comunidade acadêmica limitando-se à comparação entre a técnica PID e a proposta de uma implementação utilizando RNAs para o controle de atitude de um quadricóptero, agregando conhecimento não somente à área dos multirrotores mas em geral aos sistemas controlados. Isso porque, uma vez analisadas as técnicas e suas respostas acredita-se que será possível constatar o modelo mais adequado para esse tipo de aplicação, até mesmo sendo possível a sua portabilidade para outro tipo de sistema de controle.

(18)

2 REFERENCIAL TEÓRICO

A seguir, este trabalho explicita sua fundamentação teórica com equações a serem utilizadas, necessárias para o desenvolvimento do controle de atitude de um quadricóptero real.

2.1 EQUAÇÕES DE MOVIMENTOS DE UM QUADRICÓPTERO

A Figura 3 apresenta o princípio de funcionamento dos quadricópteros, sendo mostrado uma estrutura em forma de "+" com uma hélice acoplada em cada rotor, ou podendo ser chamado neste trabalho de propulsor, e juntos fixados em cada extremidade. Na Figura 3, ainda podem ser observados os ângulos de: (1) Rolagem:

𝛷

; (2) Arfagem: 𝛳; e (3) Guinada: 𝛹. Sendo o ângulo de Arfagem que realiza o movimento do quadricóptero para frente e para trás, representado na Figura 3 como o eixo “y”, o ângulo de Rolagem que realiza o movimento do quadricóptero para o lado direito e esquerdo, representado na Figura 3 como “x”, e o ângulo de Guinada que realiza o movimento do quadricóptero em torno do eixo vertical, representado na Figura 3 como eixo “z”, segundo referencial do “BODY-frame”.

Ω Ω

Figura 3 - Estrutura básica do funcionamento de um quadricóptero. Fonte: Adaptado de Meyer et al. (2012).

(19)

Denomina-se atitude a combinação assumida por cada um desses ângulos em um determinado instante (SILVA, 2014) mais a altitude "z", tendo um quadricóptero seis graus de liberdade Degrees Of Freedom (DOF), mas atuando em quatro.

Para que o quadricóptero possa executar tais movimentos descritos anteriormente como rolagem, arfagem, guinada, ascendência vertical e ainda o de repouso, a Figura 4 mostra o sentido dos rotores e uma representação de velocidades de giro necessários.

Φ̈

(b)

(d) (e)

Ascendente Vertical Arfagem

Rolagem Guinada Ψ

̈

(c) ϴ

̈

TRASEIRA DIREITA ESQUERDA FRENTE

Z

X

Y

(a) Repouso

Figura 4 - Movimentos de um quadricóptero. (a) Repouso (Hovering). (b) Movimento ascendente vertical (Throttle). (c) Movimento de Arfagem (Pitch) . (d) Movimento de Rolagem (Roll). (e) Movimento de Guinada (Yaw).

(20)

Conforme a Figura 4 são representados pelas cores em vermelho para maior, preto para médio e azul para baixa velocidade de giro das hélices [rad 𝑠−1]. As velocidades de giro

das hélices de acordo com o movimento a ser realizado pelo quadricóptero são representadas na Tabela 1 por

, e as variáveis positivas

e

são variações de velocidade em torno de

, em que

∆ ≈ ∆

para valores pequenos de

.

FRENTE DIREITA TRASEIRA ESQUERDA

REPOUSO

ASC. VERT.

Ω + ∆

Ω + ∆

Ω + ∆

Ω + ∆

ARFAGEM

Ω − ∆

Ω + ∆

ROLAGEM

Ω − ∆

Ω + ∆

GUINADA

Ω − ∆

Ω + ∆

Ω − ∆

Ω + ∆

Tabela 1 - Movimentos do quadricóptero. Fonte: Autoria própria.

Dadas tais equações demonstradas na Tabela 1, é possível embarcá-las no controle de atitude do quadricóptero.

2.2 COMPONENTES DE UM QUADRICÓPTERO

Nesta seção são apresentados os componentes que normalmente compõem um quadricóptero.

2.2.1 Motor Brushless

Os motores utilizados para aplicações como deste trabalho são os de corrente contínua sem escovas, denominados Brushless Direct Current (BLDC).

Considerados motores síncronos em que os ímãs permanentes polarizados fazem parte do rotor não necessitando de qualquer alimentação, com estator fixo e composto por bobinas que produzem o campo magnético responsável pelo movimento e tendo uma configuração mais popular de 3 fases, os motores BLDC podem ser classificados como inrunner e outrunner (VIEIRA, 2011).

(21)

Conforme a Figura 5 (A), a carcaça contém as bobinas e encontra-se imóvel, e os imãs permanentes juntamente com o eixo do motor realizando o movimento para os modelos inrunner, e segundo a Figura 5 (B), as bobinas encontram-se no centro do motor o qual se encontra imóvel e os imãs permanentes na carcaça realizando o movimento juntamente com o eixo do motor para os modelos outrunner.

Alves (2012, p. 53) destaca que por serem sem escovas, os motores BLDC são ausentes de comutações mecânicas entre um enrolamento e a fonte de tensão, interessantes para o tipo de aeronave deste trabalho já que não produz centelhamento, aumentando assim o rendimento do motor, da bateria e da autonomia de voo, além de terem baixa interferência eletromagnética gerada pelo motor, essencial para nossa aplicação, uma vez que o circuito eletrônico de controle está próximo a eles.

Para a escolha de motor, se faz necessário analisar fatores como velocidade do motor e tamanho da hélice, pois estes influenciam no peso máximo que o quadricóptero deverá ter para que consiga voar.

2.2.2 Hélices

As hélices convertem a energia mecânica gerada pelo motor em movimento de tração ou repulsão, tendo como principais características o diâmetro descrito pelo círculo quando a hélice gira e o passo a distância que a hélice percorre quando esta completa uma volta, notadas por [diâmetro] x [passo] (VIEIRA, 2011), conforme mostra a Figura 6.

Estator Estator

A B

Rotor Rotor

Figura 5 - (A) Esquema BLDC inrunner, (B) Esquema BLDC outrunner. Fonte: VIEIRA (2011, p. 18).

(22)

A escolha do diâmetro das hélices está ligada aos dados fornecidos pelos fabricantes dos motores, e Vieira (2011, p. 23) ainda diz que também está relacionada proporcionalmente ao consumo de energia e inversamente à autonomia.

Como os pares de motores do quadricóptero giram em sentidos opostos, são necessários dois pares de hélices opostas.

A hélice tem três parâmetros básicos: (1) Raio r ; (2) Coeficiente de empuxo 𝑐 e (3) Coeficiente de potência 𝑐 (MCCORMICK, 1979). Podendo assim obter a força de empuxo T e a potência 𝑃 da hélice, definidos pelas equações (35) e (36) respectivamente, em que 𝜔 é a velocidade da hélice e 𝑝 a densidade do ar.

𝑇 = 𝑐 4𝑝 𝑟

𝜋 𝜔 (1)

𝑃 = 𝑐 4𝑝 𝑟

𝜋 𝜔 (2)

2.2.3 ESCs

O Eletronic Speed Controller (ESC), como pode ser visto na Figura 7, é um circuito utilizado para controlar a velocidade dos motores brushless, tendo como entrada um sinal Pulse-Width Modulation (PWM) e alimentado por um Vcc e gnd provenientes de uma bateria Figura 6 - Diâmetro e passo da hélice.

(23)

LiPo que é apresentado na próxima seção, e como saída um sinal trifásico para motores trifásicos os quais são utilizados neste trabalho.

2.2.4 Bateria

As baterias Lithium-Polymer (LiPo) são muito utilizadas em aeromodelismo por sua maior capacidade em relação ao peso, conferindo uma maior autonomia aos VANTs, sendo importantes as características do conjunto de motor e ESC utilizados para determinar sua escolha (VIEIRA, 2011).

Alves (2012, p. 59) diz que “é importante também analisar a corrente consumida pelos motores e a capacidade da bateria [...], quanto maior a capacidade da bateria, maior será a autonomia do quadricóptero".

A Figura 8 mostra a bateria LiPo do fabricante Thunder Power RC, com 2700 mAh e 3 células (3S) de 11.1 V. Vcc ESC gnd sinal X Y Z ENTRADAS SAÍDAS

Figura 7 - Terminais de entrada e saída de um ESC genérico. Fonte: Adaptado de Melo (2010).

Figura 8 - Bateria LiPo da Thunder Power RC. Fonte: Fotografia própria.

(24)

2.2.5 Sensores

Como citado no Capítulo 1, as tecnologias MEMS reduziram muito em dimensões os instrumentos de medição, sendo de grande eficácia para o aeromodelismo o qual, no caso dos quadricópteros, utilizam-se de sensores inerciais como o acelerômetro e giroscópio presentes muitas vezes em somente uma placa integrada.

A função dos acelerômetros é medir forças de aceleração, vibração, colisão, rotação e aceleração da gravidade, e do giroscópio, medir o movimento angular, obtendo os ângulos de arfagem, guinada e rolagem (VIEIRA, 2011).

Como exemplo, pode-se observar um conjunto de sensores com dez graus de liberdade (10 DOF) da Figura 9, o qual contém como dados do fabricante:

 Barômetro HMC5883 fabricado pela Honywell com: (1) Resolução de 10cm; (2) 1𝜇A de consumo; (3) Conversões em 1KHz; (4) Escala de 10 a 1200 mbar; (5) ADC 24-bit.

 Giroscópio MPU-6050 fabricado pela InvenSense com: (1) 3 eixos; (2) 3,6 mA de consumo; (3) Escalas de ±250, ±500, ±1000, ±2000° /s; (4) ADC 16-bit; (5) Filtro digital passa baixa programável.

 Bússola HMC5883 fabricada pela Honywell com: (1) 3 eixos; (2) Resolução de ±8 Gauss com precisão de 1° a 2° graus; (3) Ciclos de conversões a 116Hz; (4) ADC 12-bit.

Figura 9 - Conjunto de sensores com 10 DOF, MPU6050. Fonte: Fotografia própria.

(25)

 Acelerômetro MPU-6050 fabricado pela InvenSense com: (1) escalas de ±2g, ±4g, ±8g, ±16g; (2) 500𝜇A de consumo; (3) ADC 16-bit; (4) interrupções programáveis.

2.2.6 Unidade de controle (sistema embarcado)

A unidade de controle utilizada nos quadricópteros são microcontroladores, com capacidade e estrutura para armazenar o código contendo a lógica, isto é, o controle e capacidade de processamento suficiente para processar os dados que recebe através dos sinais recebidos dos sensores resultando em uma saída enviada aos ESCs, determinando uma atitude ao VANT.

A Figura 10 mostra o microcontrolador do tipo ARM Cortex M4 com unidade de ponto flutuante que aumentam a velocidade para cálculos envolvendo ângulos, como o utilizado neste trabalho para a estabilização do quadricóptero e 16 saídas PWMs, favorável para o controle de motores.

Outras de suas características são dadas pela tabela a seguir. Figura 10 - Microcontrolador Tiva TM4C123G da Texas Instruments. Fonte: Fotografia própria.

(26)

CARACTERÍSTICA DESCRIÇÃO Performance 80 MHz, 100 DMIPS Flash 256 KB EEPROM 2 KB SRAM 32 KB I²C (quantidade) 4 UARTs (quantidade) 8 SSI (quantidade) 4

PWMs (quantidade) 2 Módulos com um total de 16 saídas

Quantidade de Pinos 64 LQFP

Tabela 2 - Principais características do Tiva TM4C123G. Fonte: Fabricante.

2.2.7 Fonte (testes em estrutura fixa)

Para testes na estrutura fixa, foi necessário uma fonte chaveada de 12V e 50A para não se necessitar da bateria e sua constante recarga.

Figura 11 - Fonte chaveada 12V e 50A. Fonte: Fotografia própria.

(27)

2.3 MÉTODOS DE CONTROLE E SISTEMAS INTELIGENTES

Nesta seção serão abordados alguns aspectos teóricos e matemáticos para as técnicas de controle utilizando PID e RNAs. Sendo as RNAs caracterizadas por sistemas inteligentes por sua característica de aprendizagem.

2.3.1 PID

O controlador PID é um clássico em sistemas de controle e é utilizado neste trabalho para o controle de atitude do quadricóptero.

A Figura 12 exemplifica um sistema em malha fechada do controlador PID.

Seu controle em tempo contínuo é definido em (OGATA; MAYA; LEONARDI, 2003) e dado pela equação (3), e em tempo discreto para implementação do PID digital nas equações (4), (5), (6) e (7). Associando a equação (3) à Figura 12 tem-se e(t) como o "Erro" e u(t) sendo o "Controlador PID".

𝑢(𝑡) = 𝐾 𝑒(𝑡) + 𝐾 𝑑𝑒(𝑡)

𝑑𝑡 + 𝐾 𝑒(𝑡)𝑑𝑡 (3)

𝑢 (𝑘) = 𝐾 𝑒(𝑘) (4)

𝑢 (𝑘) = 𝐾 𝑒(𝑘) + 𝑢 (𝑘 − 1) (5)

Figura 12 - Diagrama de blocos em malha fechada de um controlador PID. Fonte: Adaptado de Vieira (2011, p. 57).

+ Controlador

PID SISTEMA ∑

Sensores

Entrada Erro Saída

-

(28)

𝑢 (𝑘) = 𝐾 (𝑒(𝑘) − 𝑒(𝑘 − 1)) (6)

𝑢 = 𝑢 (𝑘) + 𝑢 (𝑘) + 𝑢 (𝑘) (7)

Em que 𝐾 é a constante de ganho proporcional, 𝐾 é a constante de ganho derivativo e 𝐾 a constante de ganho integral.

2.3.2 Redes Neurais Artificiais (RNAs)

A seguir é feita uma apresentação sobre o conceito de Redes Neurais Artificiais, seu treinamento e sua aplicação em sistemas de controle.

2.3.2.1 Introdução

As Redes Neurais Artificiais (RNAs) são máquinas que podem ser implementadas em circuitos eletrônicos ou por programação em um computador digital, assemelhando-se como o cérebro realiza uma tarefa específica, sendo necessário um processo denominado algoritmo de aprendizagem, fazendo conexões entre neurônios denominada “sinapse”, com forças entre tais conexões, chamados de pesos sinápticos, utilizados para memorizar o conhecimento assimilado (HAYKIN, 2001).

A Figura 13 apresenta um exemplo de neurônio biológico – também chamado de “célula nervosa” - cujo qual processa sinais, ou estímulos, oriundos de outros neurônios ou de outros ambientes, ocorrendo assim uma interação (sinapse) entre eles através dos terminais sinápticos (atuadores presentes nas ramificações do axônio) de uma célula e dendritos (receptores) de outra célula, ocorrendo um processamento em seu corpo celular (soma dos estímulos) e gerando uma resposta através de seus terminais sinápticos para outros neurônios e assim sucessivamente (CALVO, 2007).

(29)

Do ponto de vista da engenharia o diagrama de blocos da Figura 14 mostra o sistema nervoso como três estágios, sendo que o fluxo de transmissão de um sinal pode ser para frente (setas da esquerda para a direita) no qual os receptores transformam estímulos do corpo humano ou do ambiente externo em sinais elétricos transmitindo informação para o cérebro (rede neural) e os atuadores convertem esses sinais elétricos em uma resposta para o sistema, ou para trás (setas da direita para a esquerda), indicando uma realimentação (HAYKIN, 2001).

Haykin (2001, p. 32) ainda diz que os eventos neurais são mais lentos em relação aos eventos em um circuito de silício, onde o primeiro ocorre na ordem de milissegundos e o

Estímulo Receptores Rede Neural Atuadores Resposta

Figura 14 - Representação em diagrama em blocos do sistema nervoso. Fonte: Adaptado de Haykin (2001, p. 32).

Figura 13 - Célula neural biológica com a sequência de propagação do sinal. Fonte: Adaptado de Silva (1998, p. 9).

Ramificações terminais Corpo celular

Dendritos

Axônio

Entrada de outros neurônios Saída para outros neurônios

(30)

segundo na ordem de nanossegundos, porém o cérebro compensa tal desvantagem com grande número de neurônios com conexões maciças entre si, sendo o cérebro uma estrutura extremamente eficiente. Pode-se esperar então que uma rede com um número considerável de neurônios forneça-nos um controle mais robusto do que para a mesma aplicação com um número menor de neurônios, pressupondo-se que existam conexões maciças entre os neurônios em ambos os casos.

Analogamente aos neurônios biológicos, o modelo de um neurônio artificial foi pioneiramente proposto por Mcculloch e Pitts em 1943 e introduzido como “perceptron” por Rosenblatt em 1957, o qual propôs um algoritmo para os ajustes dos pesos do perceptron, representado neste trabalho por uma imagem de Haykin (2001, p. 36), como mostrado na Figura 15 cujo modelo é essencial para as RNAs.

Na Figura 15, “𝑥 ” representa os sinais de entrada ou estímulos externos impostos ao neurônio através da sinapse, multiplicado pelo seu respectivo peso sináptico “𝑤 ” (ou memória do neurônio), tendo como índice “k” referente ao neurônio em questão e “j” o terminal de entrada da sinapse ao qual o peso se refere, somando-os e obtendo a equação (8).

𝑢 = 𝑤 ∗ 𝑥 (8) . . . . . . 𝑤 𝑤 𝑤 Sinais de entrada Função de ativação 𝑦 Saída Somatório 𝑏 Bias 𝑥 𝑥 𝑥 𝑣 𝜑(. ) ∑

Figura 15 - Modelo não-linear de um neurônio. Fonte: Adaptado de Haykin (2001, p. 36).

(31)

Logo após soma-se também um Bias “𝑏 ” (parâmetro externo do neurônio artificial) ao resultado da somatória anterior “𝑢 ”, gerando um “𝑣 ”, visto na equação (9).

𝑣 = 𝑢 + 𝑏 (9)

E então,“𝑣 ” será parâmetro de entrada para a “função de ativação” definida na equação (10), cuja função restringe a amplitude da saída de um neurônio a um valor finito.

𝑦 = 𝜑(𝑣 ) (10)

2.3.2.2 Características Principais

Definido o princípio básico de Redes Neurais Artificiais na seção anterior, em que se tem uma célula nervosa denominada neurônio, que recebe um estímulo externo ou de outro neurônio e realiza o processamento dessas informações transmitindo um sinal para outro neurônio (ou um atuador) através de conexões (tanto na recepção quanto na transmissão), em que cada conexão possui um peso associado e que cada neurônio possui uma função de ativação. Será definido a seguir conceitos de: (1) arquitetura, (2) algoritmo de treinamento ou aprendizado e (3) função de ativação.

Segundo Silva (1998, p. 15) o treinamento de RNAs pode ser dividido em dois tópicos, sendo:

 Supervisionado: necessita de um “professor” durante a fase de aprendizagem (antes de executar a rede);

 Não-supervisionado: não necessita de um “professor”, pois faz suas próprias correlações baseado nos dados de entrada.

Este trabalho se deterá ao método por treinamento supervisionado mediante uma arquitetura direta (redes somente com propagação positiva, feedfoward), utilizando o algoritmo de Retro-propagação BP (Backpropagation), por serem os mais utilizados na área de RNAs, segundo Silva (1998, p. 15) e Calvo (2007, p. 22).

Antes de apresentar esse algoritmo, é apresentado o conceito da “função de ativação”, o qual se faz necessário para um melhor entendimento do algoritmo.

(32)

2.3.2.3 Função de Ativação do Neurônio

Tomando alguns conceitos da Seção 2.3.2.1, são identificados quatro tipos básicos de funções de ativação representadas por 𝜑(𝑣), em que “𝑣” é definido por Haykin (2001, p. 37) e utilizado neste trabalho como “potencial de ativação” do neurônio, sendo elas: (1) “função de limiar”, (2) “função linear por partes”, (3) “função sigmóide” e (4) “função tangente hiperbólica”, tendo tipicamente um intervalo unitário fechado [0, 1] ou [-1, 1].

A “função de limiar” ou Heaviside, como é comumente chamada na engenharia (HAYKIN, 2001), é dada pela equação (11) e representada na Figura 16.

𝜑(𝑣) = 1 se 𝑣 ≥ 0

0 se 𝑣 < 0  (11)

A seguir, tem-se descrita a equação (12) da “função linear por partes” representada na Figura 17, e definida como:

𝜑(𝑣) = ⎩ ⎪ ⎨ ⎪ ⎧1, 𝑣 ≥ 𝑣, < 𝑣 < 0, 𝑣 ≤   (12) 𝜑(𝑣) 𝑣 Figura 16 - Função de limiar.

(33)

A “função sigmóide”, dita por Haykin (2001, p. 40) como “de longe a forma mais comum de função de ativação utilizada na construção de redes neurais artificiais”, sendo a função logística da equação (13) um exemplo de função sigmóide, representada na Figura 18.

𝜑(𝑣) = 1

1 + 𝑒 (13)

Ainda tem-se algumas funções como a tangente hiperbólica, representada na Figura 19, semelhante à função sigmóide, porém variando de -1 à 1, e sua equação (14) é dada a seguir. 𝜑(𝑣) 𝑣 𝜑(𝑣) 𝑣 Aumentando a Figura 17 - Funão linear por partes.

Fonte: Adaptado de Haykin (2001, p. 39).

Figura 18 - Função sigmóide para parâmetro de inclinação a variável. Fonte: Adaptado de Haykin (2001, p. 39).

(34)

𝜑(𝑣) = 1 − 𝑒

1 + 𝑒 (14)

2.3.2.4 Arquitetura de Rede Direta (Feedfoward)

A arquitetura de uma RNA é muito importante pois ela define o tipo de problema que pode ser resolvido pela rede (CALVO, 2007). Sua representação pode ser dada através de grafos orientados, nos quais setas indicam o sentido de propagação dos sinais entre os neurônios. Na Figura 20, encontra-se a topologia a ser utilizada neste trabalho, porém com 2 entradas na “Camada de Entrada”, 10 neurônios em somente uma “Camada Oculta” e 1 neurônio na “Camada de Saída”.

𝜑(𝑣)

𝑣

Aumentando a

Figura 19 - Função tangente hiperbólica para parâmetro de inclinação a variável. Fonte: Adaptado de imagem de função sigmóide disponível em Haykin (2001, p. 39).

(35)

2.3.2.4 Algoritmo de Retro-propagação BP

Dois tipos de sinais podem ser identificados na Figura 21: (1) “sinais funcionais”, ou estímulos externos, providos geralmente por sensores representados na Figura 20 por “x”, sendo propagados positivamente (neurônio a neurônio) pela rede gerando um sinal de saída; e (2) “sinal de erro”, os quais podem originar-se na saída e ser retro-propagados (neurônio a neurônio) pela rede (HAYKIN, 2001).

Propagação do sinal funcional Retro-propagação do erro 𝑥 𝑥 𝑥 𝑥 𝑥 Saída

Camada de Entrada Camadas Ocultas Camada de Saída

Figura 21 - Ilustração das direções de propagação do sinal funcional e do erro. Fonte: Adaptado de Silva (1998, p. 22).

Figura 20 - Representação das entradas e saídas de uma rede Feedfoward. Fonte: Adaptado de Haykin (2001, p. 48).

(36)

2.3.3 Controle utilizando RNA

Nesta seção são definidas técnicas de controle utilizando RNAs utilizadas neste trabalho.

2.3.3.1 RNA sob o ponto de vista de controle

Segundo Schnitman (1998, p. 49) alguns aspectos positivos podem ser considerados para o uso das RNA em sistemas de controle:

 Sistemas não lineares: as RNA tem obtido resultados promissores em sistemas não lineares por sua capacidade de mapear funções aleatórias.

 Processamento paralelo distribuído: com uma estrutura e processamento paralelo, as RNA não apresentam dificuldades para execução, sendo o neurônio matemático simples e de fácil realização, facilitando também o desenvolvimento de algoritmos e minimizando erros de procedimento.

 Velocidade de processamento: por ter uma arquitetura paralela e um processamento simples, velocidade é mais um dos destaques das RNA.

 Tolerância a falha: após devidamente treinadas, as RNA podem eliminar uma ou mais unidades de processamento sem comprometer significativamente a saída (CALÔBA, 1997 apud SCHNITMAN, 1998).

 Aprendizado e adaptabilidade: depois de treinadas, validadas e testadas, as RNA podem ainda aprender em tempo real, caracterizando uma adaptabilidade online.

 Sistemas multivariáveis: as RNA são naturalmente um sistema com múltiplas entradas e múltiplas saídas Multiple Input Multiple Output (MIMO).

Adaptando-se a Figura 15 de modo a se aproximar dos sistemas de controle, obtém-se a Figura 22.

(37)

Em algumas arquiteturas de RNA, alguns sinais de entrada da Figura 22 definidos por "x" podem receber, além de dados provindos de outros neurônios, dados também provindos de sua saída 𝑦 , realimentando a rede.

Relacionando a equação (8) e (9) obtém-se a equação (15).

𝑣 = 𝑤 ∗ 𝑥 + 𝑏 (15)

De acordo com (NISE, 2014), sistemas Simple Input Simple Output (SISO), ou seja, com uma entrada e uma saída, uma vez que aplicadas as transformações de Laplace, tem sua função de transferência dada por G(s) (saída/ entrada), definida pela equação (16).

𝐺(𝑠) = 𝑦 (𝑠)

𝑐 (𝑠) (16)

2.3.3.2 Controle através de RNA com alimentação Direta

A partir das definições acima nesta seção, tomando-se a Figura 12 para um controlador PID e adaptando-a para um controlador baseado em RNA para um quadricóptero, define-se, portanto, a Figura 23.

. . . . . . 𝑤 𝑤 𝑤 Sinais de entrada Somatório 𝑏 Bias 𝑥 𝑥 𝑥 𝑣 ∑ Sistema Dinâmico G(s) 𝑐 𝜑(. ) Função de ativação 𝑦 Saída

Figura 22 - Aproximação de um sistema de controle através de um neurônio não-linear. Fonte: Adaptado de Haykin (2001, p. 38).

(38)

Utilizando o Modelo Direto para Redes Neurais baseado no algoritmo de treinamento backpropagation, tem-se a Figura 24, baseada em Schnitman (1998, p. 59).

Modelo Direto Sistema ∑ Algoritmo de Treinamento Saída real y(k) e(k) + - Saída estimada ŷ(k)

Figura 23 - Diagrama de blocos em malha fechada de um controlador RNA para um quadricóptero Fonte: Adaptado de Vieira (2011, p. 57).

+ Controlador RNA ESC MOTOR BLDC ∑ Sensores Entrada Ângulo desejado Ângulo medido Saída Ângulo controlado Erro - Perturbações

Figura 24 - Diagrama de blocos para treinamento de uma RNA baseado no Modelo Direto. Fonte: Adaptado de Schnitman (1998, p. 59).

Entrada u(k)

(39)

A diferença entre a saída real y(k), e a saída estimada ŷ(k), da Figura 24 gera um erro e(k) que é utilizado no processo de treinamento da rede, cujo treinamento consiste num método numérico de estimação de pesos que geralmente depende desse erro, em vista de minimizá-lo, cabendo ainda salientar que a diferença que gera esse erro depende do número de neurônios, camadas e do algoritmo de treinamento empregados, sendo o número de neurônios e o número de camadas ajustados empiricamente (CARRARA, 1997).

Tendo em vista que em uma rede direta as camadas atuais recebem dados de camadas anteriores, define-se neste trabalho "c" como uma representação para camada, e a partir da equação (10), tem-se a equação (17) a seguir.

𝑦 = 𝜑 𝑤 ∗ 𝑥 + 𝑏 (17)

Na qual "c-1" representa a camada anterior. Definindo 𝑊 como a matriz de pesos da camada "c", o vetor de saída desta camada é representado pela equação (18).

𝑦 = 𝜑 (𝑊 ∗ 𝑥 ) (18)

Sendo 𝑦 e a matriz de pesos 𝑊 definidos nas equações (19) e (20) para 𝑏 = 1 e "𝑛 " a representação para a camada do neurônio correspondente.

𝑦 = 𝜑 (𝑢 ) ⋮ 𝜑 (𝑢 ) 1 (19) 𝑊 = ⎣ ⎢ ⎢ ⎢ ⎡𝑤 … 𝑤 𝑏 𝑤 … 𝑤 𝑏 ⋮ 𝑤 ⋮ ⋮ 𝑤 𝑏 ⎥ ⎥ ⎥ ⎤ (20)

(40)

2.3.3.3 O Algoritmo de Retro-Propagação (BP)

As definições para o referencial teórico do algoritmo de retro-propagação desta seção são tomadas de Carrara (1997, p. 22), cujo autor introduz que tal algoritmo "consiste na obtenção da derivada parcial do valor apresentado na saída de um determinado neurônio com relação a um determinado peso de uma camada anterior".

A derivada, dada pela equação (21), da componente k do vetor 𝑦 em relação ao peso j associado a este neurônio, é obtida derivando-se a equação (18).

𝜕𝑦

𝜕𝑤 = 𝜑 (𝑢 ) 𝑥 (21)

Tal derivada, vista em termos vetoriais, resulta na função de ativação definida aqui como 𝐹 , vista na equação (22). Se fosse escolhido uma outra componente do vetor 𝑦 (como m, por exemplo), esta derivada seria nula, uma vez que esta componente não depende do peso 𝑤 . 𝜕𝑦 𝜕𝑤 = 𝐹 ⎣ ⎢ ⎢ ⎢ ⎡ 0 𝑥 ⋮ 0 ⎦ ⎥ ⎥ ⎥ ⎤ (22)

Sendo todas as componentes da última parcela nulas, exceto a k-ésima. 𝐹 é definida na equação (23) como uma matriz diagonal contendo as derivadas da função de ativação.

𝐹 = 𝑑𝜑 (𝑢 ) 𝑑𝑢 = 𝜑 (𝑢 ) ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ 𝜑 (𝑢 ) (23)

A derivada pode ser avaliada em todos os valores de 𝑢 , uma vez que a função de ativação é conhecida e contínua. Definindo uma componente aleatória m com relação ao peso 𝑤 da camada anterior "c-1", obtêm-se a equação (24).

(41)

𝜕𝑦

𝜕𝑤 = 𝜑 (𝑢 ) 𝑤

𝜕𝑦

𝜕𝑤 (24)

Observa-se que a derivada 𝑦 da camada "c-1" é igual à derivada da equação (18), contanto que s seja igual a k, resultando em nula para outros valores de s. Essa relação resulta na equação (25).

𝜕𝑦

𝜕𝑤 = 𝜑 (𝑢 ) 𝑤 𝜑 (𝑢 )𝑥 (25)

A equação (25) representada na forma vetorial, é dada pela equação (26), onde novamente todas as componentes do vetor do segundo membro são nulas, com exceção da k-ésima. 𝜕𝑦 𝜕𝑤 = 𝐹 𝑊 𝐹 ⎣ ⎢ ⎢ ⎢ ⎡ 0 𝑥 ⋮ 0 ⎦ ⎥ ⎥ ⎥ ⎤ (26)

Então, a retro-propagação é caracterizada através das equações anteriores, uma vez que elas estabelecem formas de recorrência. Sendo l supostamente representando a última camada da rede, a derivada de m da camada l com relação ao peso j do neurônio k da camada c, resulta na equação (27), na qual 𝛿 , é obtida de forma recorrente definida na equação (28).

𝜕𝑦

𝜕𝑤 = 𝛿 , 𝑥 (27)

𝛿 , = 𝜑 (𝑢 ) 𝛿 , 𝑤 (28)

(42)

𝛿 , = 𝜑 𝑢 , 𝑠𝑒 𝑘 = 𝑚

0, 𝑠𝑒 𝑖 ≠ 𝑚  (29)

Representada na forma de operações entre matrizes na qual a derivada do vetor de saídas da rede através é dada é dada pela equação (30), e matriz de retro-propagação ∆ pela equação (31), ou na forma recorrente pela equação (32), desde que a, princípio, conheça-se o valor inicial da matriz ∆ , que vale ∆ = 𝐹 para a camada de saída l.

𝜕𝑦 𝜕𝑤 = ∆ ⎣ ⎢ ⎢ ⎢ ⎡ 0 𝑥 ⋮ 0 ⎦ ⎥ ⎥ ⎥ ⎤ (30) ∆ = 𝐹 𝑊 𝐹 𝑊 … 𝐹 𝑊 𝐹 (31) ∆ = ∆ 𝑊 𝐹 (32)

As componentes da matriz de retro-propagação ∆ são dadas pela equação (24), em que a matriz ∆ tem dimensão 𝑛 x 𝑛 , e quando multiplicada pelo erro na saída, esta matriz permite o ajuste dos pesos nas camadas ocultas da rede através da constituição de uma forma de retropropagação do erro.

O uso desse algoritmo é desestimulado pelo fato de apresentar uma série de dificuldades ou deficiências, a lentidão para superfície mais complexas é o seu principal problema, sendo muito comum o algoritmo convergir para mínimos locais.

De acordo com Gonçalves et. al. (2010) os mínimos locais se referem aos pontos na superfície de erro que apresentam uma solução estável, mas que, segundo ele não são a saída correta. Muitas pesquisas tem se voltado para técnicas, afim de, acelerar o algoritmo ou reduzir a incidência de mínimos locais desde a popularização do algoritmo de retropropagação do erro (GONCALVES et. al., 2010). Dentre as técnicas pesquisadas destaca-se o algoritmo de Levenberg-Marquardt (HAGAN e MENHAJ, 1994).

No que tange as redes que não possuem mais do que algumas centenas de conexões ajustadas, o algoritmo de Levenberg-Marquardt se mostra eficiente. Segundo Gonçalves et. al. (2010) a forma de trabalho dele é de evitar o mal-condicionamento de inversão de matrizes.

(43)

Levenberg-Marquardt e método Bayesiano com regularizações são alguns dos algoritmos de treinamento, conforme descrição a seguir. (GONCALVES et. al., 2010).

2.3.3.4 Levenberg-Marquardt (LM) Backpropagation

Considerado o mais rápido dos algoritmos de treinamento retropropagação de erro, o LM requer mais memória computacional do que demais algoritmos. Esse treinamento se trata de uma função que atualiza os pesos e valores dos bias de acordo com a otimização LM (GONCALVES et. al., 2010).

As principais características do algoritmo LM, segundo Lera e Pinzolas (2002), são: As mudanças (∆) nos pesos (W) são obtidas solucionando a seguinte equação, segundo o algoritmo LM,

𝛼∆= −1

2 ∇𝑀𝑆𝐸 (33)

Onde o MSE (Mean Squared Error, ou Erro Quadrático Médio em português) da rede está representado em MSE:

𝑀𝑆𝐸 = 1

𝑁 [𝑦(𝑥 ) − 𝑑 ] ² (34)

Sendo N o número de exemplos (entradas e saídas ensinadas pelo professor),

y(𝑥 )

é a saída da rede correspondente ao exemplo

𝑥

, e

𝑑

(apresentado como ŷ(k) na Figura 24) é a saída desejada para aquele exemplo (LERA, PINZOLAS, 2002).

A matriz

𝛼

é dada pelos elementos:

𝛼 = 1 + 𝜆𝛿 𝜕𝛾 (𝑥 )

𝜕𝑤

𝜕𝑦 (𝑥 )

𝜕𝑤 (35)

Sendo p o número de saídas da rede. Tanto α quanto ∇MSE são calculados resolvendo a equação (33), sendo iniciados com pesos iniciais aleatórios. A época de

(44)

aprendizado LM se dá através da correção para os valores dos pesos pela equação (W⃗ = W⃗ + ∆) . Cada repetição com essas épocas reduz o erro até encontrar um mínimo. O parâmetro que é ajustado a cada época de acordo com a evolução do erro está representado na variável λ na equação (35). Em Hagan e Menhaj (1994) é possível encontrar mais informações a respeito de equacionamento do algoritmo LM (HAGAN e MENHAJ, 1994).

2.3.3.5 Método Bayesiano Regularization Backpropagation

O método Bayesiano com regularizações constitui-se em uma função de atualização dos pesos e valores do bias referente a otimização LM descritas nas equações (33), (34) e (35). Normalmente os algoritmos de treinamento visam reduzir a soma dos erros quadráticos (MSE), entretanto, esse método funciona com a inclusão de um termo a mais no algoritmo. Segundo os autores Mackay, Foresee e Hagan (1997), ela diminui a combinação dos erros quadráticos e os pesos para assim, produzir uma rede generalizada e com respostas mais suaves (MACKAY, 1992; FORESEE e HAGAN, 1997).

A seguinte equação representa a função a ser minimizada segundo Foresee e Hagan (1997):

F= (𝜆

(

SSE) +

𝛿

(SSW)) (36)

Onde λ e δ correspondem aos parâmetros ajustáveis no contexto do método Bayesiano de regularização. O SSE é o somatório dos erros quadráticos e o SSW significa o somatório dos pesos quadráticos (FORESEE e HAGAN, 1997). Para ter a solução e atualização dos dois parâmetros ajustados deve-se aplicar a lei de Bayes (MACKAY, 1992 apud GONCALVES et. al., 2010).

2.3.3.6 Método Scaled Conjugate Gradient Backpropagation

O ajuste dos pesos realizados pelo algoritmo básico backpropagation vai em direção da descida mais íngreme, sendo ela a mais negativa do gradiente, em que esta direção é a qual a função de performance decresce mais rapidamente, porém isso não significa ncessariamente que decrescer mais rapidamente pela negativa do gradiente faz com que produza uma convergência mais rápida (KIŞI; UNCUOĞLU, 2005).

(45)

O algoritmo de aprendizado supervisionado Scaled Conjugate Gradient Backpropagation é membro da classe de métodos de Conjugate Gradient e usa como estratégia de otimização geral informações de segunda ordem para escolha de direção da pesquisa e do tamanho do passo, sendo de forma mais eficaz (BARROS, 2018).

A maioria dos algoritmos de Conjugate Gradient tem seu tamanho de passo ajustado a cada iteração do algoritmo, de modo que com a pesquisa feita ao longo da direção do gradiente conjugado possa-se definir o tamanho do passo que minimizará a função performance, sendo que todos os algoritmos de gradiente conjugado iniciam em sua primeira iteração a busca da direção da descida mais íngreme (KIŞI; UNCUOĞLU, 2005).

Algumas vantagens são encontradas em funções quadráticas comparadas a funções gerais, sendo a aproximação quadrática do algoritmo Scaled Conjugate Gradient (MØLLER, 1993) ao erro E em uma vizinhança de um ponto w dado pela Equação 37.

𝐸 (𝑦) = 𝐸(𝑤) + 𝐸 (𝑤) 𝑦 + 1

2𝑦 𝐸 (𝑤)𝑦 (37)

Segundo MØLLER, os pontos críticos para 𝐸 (𝑦) precisam ser encontrados para determinar o mínimo para 𝐸 (𝑦), em que os pontos críticos são a solução ao sistema linear da equação (38).

𝐸′ (𝑦) = 𝐸 ( )𝑦 + 𝐸 (𝑤) = 0 (38)

E, como conclui Barros (2018), o algoritmo Scaled Conjugate Gradient usa um mecanismo de dimensionamento de tamanho de etapa, evitando uma busca de linha demorada por iteração de aprendizado, se superando em velocidade comparado a algoritmos de segunda ordem (BARROS, 2018)

(46)

3 MATERIAIS E MÉTODOS 3.1 MATERIAIS

A seguir, são apresentados os materiais utilizados neste trabalho para desenvolvimento da plataforma alvo de estudos:

 1 estrutura em forma de “+” da “XFLY”;  4 motores brushless DJI 2212/920KV;  4 hélices;

 4 ESCs 30A 11,1V-14,8V;

 1 bateria LiPo referenciada na seção 2.2.4 pela Figura 8;  1 fonte 12V 50A 600W 110V para testes na estrutura fixa;  1 potenciômetro linear de 5 kΩ;

 1 placa de sensores inerciais referenciada na seção 2.2.5 pela Figura 9;

 1 microcontrolador “Tiva TM4C123G”como unidade de controle, referenciado na seção 2.2.6 pela Figura 10 ;

A Figura 25 define o diagrama de relacionamento entre os componentes.

M1 M2 M3 M4 Microcontrolador ARM Cortex M4 Sensores PC Fonte 12v ESC 1 ESC 2 ESC 3 ESC 4 Alimentação dos Dispositivos I²C Serial PWMs

Figura 25 - Diagrama de relacionamento entre os componentes. Fonte: Autoria própria.

(47)

3.2 MÉTODOS

Esta seção apresenta a metodologia para realização deste trabalho. As subseções a seguir apresentam cada uma das etapas do trabalho.

3.2.1 Revisão da Literatura

Foi realizado um estudo bibliográfico sobre quadricópteros, sobre a técnica PID e sobre Redes Neurais, e suas aplicações em VANTs. Na revisão da literatura buscou-se aprofundar na área da aplicação da técnica PID e também de Redes Neurais no controle de atitude de quadricópteros.

3.2.2 Seleção dos componentes e montagem do quadricóptero

Foram levantados os componentes necessários para a construção de um quadricóptero. Foram utilizados a estrutura do quadricóptero em forma de “+”, os motores brushless, ESCs, hélices e bateria LiPo já disponíveis na UTFPR, uma placa de sensores inerciais MPU6050, uma fonte de 12V e um microcontrolador ARM Cortex M4 Tiva TM4C123G adquiridos pelo autor do trabalho. Após isso, o quadricóptero foi montado.

3.2.3 Confecção de estrutura para testes

Foi construída uma estrutura conforme ilustrado na Figura 26, capaz de suportar o quadricóptero para realizar as devidas implementações e testes em somente um eixo de movimento.

(48)

3.2.3 Implementação e testes das técnicas de controle no quadricóptero

Após a estrutura montada para testes foi desenvolvido e embarcado no microcontrolador o sistema de controle PID conforme Figura 27.

Finalizada a implementação do Controlador PID para controle de atitude do quadricóptero, foi implementado o controlador baseado em Redes Neurais Artificiais. Os dados de entrada/saída para treinamento das Redes Neurais foram baseados no controlador Figura 26 - Estrutura montada para testes.

Fonte: Fotografia própria.

+ Controlador PID ESC MOTOR BLDC ∑ Sensores Entrada Ângulo desejado Ângulo medido Saída Ângulo controlado Erro - Perturbações

Figura 27 - Diagrama de blocos em malha fechada do controlador PID para o quadricóptero. Fonte: Adaptado de Vieira (2011, p. 57).

(49)

PD (professor), pois foi necessário excluir os dados provindos do controlador I para treinamento da Rede, uma vez que o caráter somatório da parte Integral é de difícil entendimento pela rede neural, já que a rede entende padrões de entradas e respectivas saídas e a parcela Integral do Controlador não apresentar um padrão de saída para determinada entrada, podendo ser diferente para a mesma entrada em tempos diferentes conforme explanado no Capítulo 4.2, sendo os dados de entrada o “erro” e “derivada do erro”, utilizados pelo controlador PD, e como dados de saída os valores gerados na saída do controlador PD, conforme Figura 28. Estes valores foram capturados utilizando a interface UART implementada no microcontrolador, que se comunicava diretamente com o computador através de um cabo USB, exibindo os dados através do software Putty, durante execução de tempo de 1 minuto do Controlador PID em ação no controle de atitude do quadricóptero e armazenados de forma tabelada conforme APÊNDICE A. Depois, foi realizada a normalização desses dados no intervalo [-1;1], essa normalização é necessária pois no algoritmo de treinamento a função de ativação é do tipo sigmoidal, conforme a Equação 10.

Após isso, foi adaptado e utilizado o algoritmo backpropagation de Bullinaria (2009) convertido para código em Matlab, em seguida também foi utilizado a ferramenta Neural Net Fitting do Matlab (disponível no APÊNDICE B) para os algoritmos de treinamento Levenberg Marquardt, Bayesian Regularization e Scaled Conjugate Gradient, definições de modelo de Rede Neural, quantidade de neurônios, quantidade de dados para testes durante o treinamento, treinamento e geração da função da Rede Neural, que então foi convertida tal função para a linguagem C de modo a se obter um Controlador RNA que possa ser embarcado no microcontrolador.

Após embarcar o código, separadamente, das quatro Redes Neurais no microcontrolador, foram executados os testes de acordo com as referências geradas no Capítulo 4.2, e quando o resultado não havia sido bom, todo o processo era repetido podendo haver mudanças no: tempo de execução para a coleta de dados do Controlador PD; acuracidade nas casas decimais na coleta dos dados de entrada e saída do Controlador PD; ganhos do Controlador PID; quantidade de neurônios na Camada Oculta; quantidade de dados separados para treinamento e teste; e algoritmo de treinamento.

Os métodos Backpropagation (adaptado de Bullinaria 2009), Levenberg Marquardt, Bayesiano e Scaled Conjugate foram ambos utilizados para os experimentos propostos neste trabalho, e estes três últimos estão disponíveis no software Neural Net Fitting do Matlab.

(50)

+ Controlador PID ESC MOTOR BLDC ∑ Sensores Entrada Ângulo desejado Ângulo medido Saída Ângulo controlado Erro - Perturbações

Figura 28 - Diagrama de obtenção de dados e treinamento da Rede Neural. Fonte: Adaptado de Vieira (2011, p. 57).

Entradas Saídas Derivada do Erro PC Matlab Neural Network Toolbox Controlador RNA Treinamento da RNA

(51)

4 EXPERIMENTOS E RESULTADOS

Neste capítulo são apresentados os controladores baseados em PID e Redes Neurais Artificiais implementados em um quadricóptero real.

4.1 CONTROLADOR PID

Os ganhos do controlador PID foram ajustados empiricamente, de forma a se ajustar primeiramente o ganho do controlador Proporcional, partindo de Kp = 1, zerando os demais, modificando o ganho Kp até que o quadricóptero não apresentasse oscilações descontroladas. Após encontrar um Kp que estabilizasse o quadricóptero próximo à referência desejada, foi adicionado o controlador Derivativo, com ganho Kd = 1, ajustando tal ganho da mesma forma que se fez com o controlador Proporcional. Por último, foi realizado o ajuste no controlador I, partindo do princípio Ki = 1, ajustando-o da mesma forma que feito para o controlador Proporcional e Derivativo. Após as três parcelas do Controlador PID estarem funcionando em conjunto, foi realizado um ajuste fino sob os ganhos Kp e Kd de acordo com a agressividade do quadricóptero e o ganho Ki de acordo com a instabilidade e lentidão adicionada ao controle. Desta forma foram encontrados os valores dos ganhos Kp, Ki e Kd.

Para fim de testes do controle foi gerada uma referência alternada para o Controlador PID iniciando em 0º, 5º, 10º, 15º, 10º, 5º, 0º, -5º, -10º, -15º, -10º, -5º, e finalizando em 0º em um intervalo de tempo de 20 segundos para cada ângulo de referência, de modo a obter a saída em ângulos convertendo-se os dados provindos do sensor MPU6050 no quadricóptero utilizando o controlador PID confrontada com a referência alternada de ângulos imposta ao sistema, e então, uma vez coletados os dados de referência/saída real, foi utilizado o software Matlab em um notebook para apresentar em um gráfico os resultados gerados no teste real com o quadricóptero, disponível na Figura 29.

Referências

Documentos relacionados

Activia funciona para você. Muita gente não vai ao banheiro todos os dias e acha que é normal, mas não é. Devemos ir ao banheiro diariamente. Milhões de pessoas já sabem disso

Eficiência de remoção de coliformes totais, em função da quantidade de bactérias na água bruta, nas diferentes espessuras do meio filtrante nãotecido e do meio filtrante

requisição tendo em conta os seguintes pressupostos: a requisição deve ser efetuada o mais próximo possível do início da atividade para o qual foi requisitado o

«O significado social da louca doméstica no Brasil Império (século XIX) e no Brasil Colonia (Séculos XVII e. XVIII): algumas possibilidades e muitos limites».. ANA ISABEL DE

8.1 A relação dos candidatos aprovados em cada etapa será divulgada no site www.igh.org.br (link transparência, Goiás, Unidade (HMI, HUAPA), Pessoal, Resultado dos

Painel de comandos Touch Control com display digital branco | 4 lâmpadas LED | Três velocidades + uma intensiva | Indicador digital de velocidade selecionada | Programação do tempo

O objetivo desta dissertação é analisar a associação entre autopercepção da imagem corporal e estado nutricional com autoestima corporal em adolescentes, segundo sexo e faixa

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual