controle de estabilidade de aeromodelo tipo quadcopter autômato por lei de controle pid

107
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Programa de Graduação em Engenharia Mecânica (Linha de formação em Mecatrônica) Daniel de Castro Ribeiro Resende Nicolas Ives Roque Pacheco CONTROLE DE ESTABILIDADE DE AEROMODELO TIPO QUADCOPTER AUTÔMATO POR LEI DE CONTROLE PID Belo Horizonte 2014

Upload: daniel-de-castro-ribeiro-resende

Post on 19-Jan-2017

793 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

Programa de Graduação em Engenharia Mecânica (Linha de formação em

Mecatrônica)

Daniel de Castro Ribeiro Resende

Nicolas Ives Roque Pacheco

CONTROLE DE ESTABILIDADE DE AEROMODELO TIPO QUADCOPTER

AUTÔMATO POR LEI DE CONTROLE PID

Belo Horizonte

2014

Page 2: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 3: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

Daniel de Castro Ribeiro Resende

Nicolas Ives Roque Pacheco

CONTROLE DE ESTABILIDADE DE AEROMODELO TIPO QUADCOPTER

AUTÔMATO POR LEI DE CONTROLE PID

Monografia apresentada ao curso de

Engenharia Mecânica (Linha de formação em

Mecatrônica) da Pontifícia Universidade

Católica de Minas Gerais, como requisito

parcial para obtenção do título de Bacharel em

Engenharia Mecânica (Linha de formação em

Mecatrônica)

Orientador: Pedro Américo Almeida Magalhães

Junior

Belo Horizonte

2014

Page 4: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 5: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

Daniel de Castro Ribeiro Resende

Nicolas Ives Roque Pacheco

CONTROLE DE ESTABILIDADE DE AEROMODELO TIPO QUADCOPTER

AUTÔMATO POR LEI DE CONTROLE PID

Monografia apresentada ao curso de

Engenharia Mecânica (Linha de formação em

Mecatrônica) da Pontifícia Universidade

Católica de Minas Gerais, como requisito

parcial para obtenção do título de Bacharel em

Engenharia Mecânica (Linha de formação em

Mecatrônica)

___________________________________

Dr Pedro Américo Almeida Magalhães Junior (Orientador) - PUC Minas

___________________________________

Dr Claysson Bruno Santos Vimieiro - PUC Minas

___________________________________

Dr William de Melo Silva- PUC Minas

Belo Horizonte, de de 2014.

Page 6: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 7: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

AGRADECIMENTOS

Agradecemos ao nosso orientador, Dr Pedro Américo Almeida Magalhães

Júnior, pela prontidão com que se disponibilizou a fazer parte deste trabalho, e, pela

relevância de seu suporte durante a jornada de sua elaboração.

Somos gratos também à Fundação de Amparo à Pesquisa do Estado de

Minas Gerais (FAPEMIG), pelo auxílio cultural e financeiro provido, à fim da

apresentação e publicação deste trabalho na forma de artigo científico no Ibero-Latin

American Congress on Computational Methods in Engineering (CILAMCE 2014).

Page 8: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 9: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

RESUMO

Nos últimos anos, os VANTs (Veículos Aéreos Não Tripulados), do tipo quadrirotor

ou quadcopter, têm tido destaque especial nas pesquisas de sistemas robóticos,

principalmente devido a versatilidade de sua navegação poder ser tanto em

ambientes externos como internos. Para que um aeromodelo impulsionado por

quatro rotores possa se manter em equilíbrio com relativa precisão, mesmo que em

voo pairado (proposta deste trabalho), é necessário um algoritmo de controle que

estabilize o sistema dinamicamente, impedindo que ele colapse devido a uma

perturbação ou devido ao somatório de dinâmicas geradas por seu próprio peso.

Existem várias técnicas de controle para o voo dos quadcopters, para o trabalho

proposto elabora-se uma malha fechada utilizando um algoritmo equacionado pela

lei de controle PID, por tratar-se de um nível de teoria, que está ao alcance das

ementas das disciplinas do curso de graduação em engenharia mecânica linha de

formação mecatrônica. Para o feedback da planta, utiliza-se de um circuito integrado

de mensuramento inercial (IMU), composto de acelerômetro, giroscópio, barômetro e

magnetômetro.Neste monitoramento da orientação angular e translacional do

quadcopter, utiliza-se filtros digitais e fusão de sensores para otimizar essas leituras.

Para o desenvolvimento do presente trabalho realizou-se os estudos de:

equacionamento matemático da dinâmica do sistema, do circuito eletro-eletrônico,

do sensoriamento, do projeto mecânico, da simulação computacional e da

implementação do algoritmo de controle.

Palavras-chave: VANT. UAV. Quadcopter. Controle. PID. IMU. Equacionamento.

Simulação.

Page 10: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 11: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

ABSTRACT

In recent years, UAVs (Unmanned Aerial Vehicles), type quadcopter, have had

special attention in the research of robotic systems, mainly due to the versatility of its

navigation can be either external as internal environments. For a model airplane

propelled by four rotors to can still in balance with relative accuracy, even in hovering

flight (proposal of this work), one control algorithm to stabilize the system dynamically

is necessary, preventing it from collapsing due to a disturbance or due the sum of

dynamics generated by its own weight. There are several techniques to control the

flight of quadcopters for the proposed work we undertake a closed loop using an

algorithm solved by the law of PID control, because it is a level of theory, which is

well within the menus of the disciplines contained in graduation in the degree of

mechanical engineering witch specialization in mechatronics. For feedback plant, it

uses inertial measurement integrated circuits (IMUs), composed of accelerometer,

gyroscope, magnetometer and barometer. In monitoring the angular and translational

orientation of the Quadcopter, are used digital filters, and sensor fusion to optimize

these readings. For the development of this work was carried out studies:

mathematical modeling of the system dynamics, the electro-electronic circuit, the

sensing, the mechanical design, the computer simulation and the implementation of

the control algorithm.

Keywords: VANT. UAV. Quadcopter. Control. PID. IMU. Modeling. Simulation.

Page 12: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 13: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

LISTA DE FIGURAS

Figura 1: Teleautômaton de Tesla ............................................................................. 20

Figura 2: VANT URV das forças armadas dos EUA .................................................. 21

Figura 3: Quadcopter de DeBothezat ........................................................................ 22

Figura 4: Drone AR Parrot ......................................................................................... 23

Figura 5: Gyroplane nº1 ............................................................................................ 27

Figura 6: Draganflyer III ............................................................................................. 28

Figura 7: Modelos notáveis de quadrirotores ............................................................ 29

Figura 8: Graus de liberdade do quadcopter ............................................................. 31

Figura 9: Esquema de rotação .................................................................................. 32

Figura 10: Rolagem ou arfagem ................................................................................ 33

Figura 11: Somatório de momentos (guinada) .......................................................... 34

Figura 12: Esquema de uma malha fechada de controle .......................................... 35

Figura 13: Diagramas PID ......................................................................................... 39

Figura 14: Resultados dos controladores PI, PID e FO[PI] ....................................... 40

Figura 15: Resultados experimentais do controle hierárquico ................................... 42

Figura 16: Coordenadas de múltiplos corpos ............................................................ 43

Figura 17: Ângulos de Euler ...................................................................................... 44

Figura 18: Digrama de blocos representando o MARG de Madgwick ....................... 53

Figura 19: Especificações dos motores ..................................................................... 55

Figura 20: Estrutura de modelamento em um grau de liberdade .............................. 56

Figura 21: Curvas de entrada e saída ....................................................................... 57

Figura 22: Diagrama em um grau de liberdade no Simulink ..................................... 58

Figura 23: Leituras dos sinais do diagrama de blocos .............................................. 59

Figura 24: Diagrama de tratamento de sinal ............................................................. 61

Figura 25: Calibração do magnetômetro ................................................................... 62

Figura 26: Calibração do acelerômetro ..................................................................... 63

Figura 27: Circuito de desenvolvimento .................................................................... 64

Figura 28: Estrutura usinada de fixação do frame ..................................................... 66

Figura 29: Estrutura de vôo ....................................................................................... 66

Figura 30: Plataforma de desenvolvimento para 5 graus de liberdade .................... 67

Figura 31: Montagem executada para as coletas de dados ...................................... 68

Figura 32: Modelo do quadcopter construído no SolidWorks .................................... 72

Page 14: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

Figura 33: Blocos do atuador .................................................................................... 74

Figura 34: Blocos do atuador .................................................................................... 75

Figura 35: Respostas para Z e rotações ................................................................... 76

Figura 36: Reposta dos motores ............................................................................... 76

Page 15: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

LISTA DE SIGLAS

10DOF - 10 Degrees Of Freedom

CC - Corrente Contínua

cP - Coeficiente de potência

cT - Coeficiente de Thrust

cos - Cosseno

ESC - Electronic Speed Controller

FO - Fractional Order

LQ - Least Quadratic

I2C - Inter Integrated Circuits

IMU - Inertial Measurement Unit

MARG -Magnetic, Angular Rate and Gravity

MCS - Magnetic Compass Sensor

MIT - Massachusetts Institute of Technology

MEMS - Micro Electronical Mechanic System

MOSFET - Metal Oxide Semiconductor Field Effect Transistor

p - Taxa de variação angular em x

Φ - Rotação no eixo z

𝑃𝑝 - Potência de propulsão

PID - Proporcional Derivativo e Integrativo

Ψ- Rotação no eixo y

PWM - Pulse-Width Modulation

q - Taxa de variação angular em y

R - Matriz de rotação

r - Raio

r - Taxa de variação angular em z

𝜌 - Densidade do ar

sen - Seno

SFL - Static Feedback Linearization Controller

SMC - Sliding-mode Control

SMC - Surface Mounted Component

STFIS - Self Tunable Fuzzy Interference System

tag - Tangente

Page 16: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

θ- Rotação no eixo x

T – Força de impulso

u - Velocidade do corpo em x

UAV - Unmanned Aerial Vehicle

VANT - Veículo Aéreo Não Tripulado

v - Velocidade do corpo em y

w - Velocidade angular

w - Velocidade do corpo em z

X - Eixo x

Y - Eixo y

Z - Eixo z

Page 17: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

SUMÁRIO

1 INTRODUÇÃO ....................................................................................................... 20 1.1 Objetivo Geral .................................................................................................... 23 1.2 Objetivos específicos........................................................................................ 23 1.3 Justificativa ........................................................................................................ 24

1.4 Escopo ............................................................................................................... 25

2 REFERENCIAL TEÓRICO ..................................................................................... 27 2.1 Revisão Bibliográfica ........................................................................................ 27 2.1.1 Dinâmica do quadcopter ................................................................................ 30 2.1.2 Sensoriamento ............................................................................................... 34

2.1.3 Controle por PID ............................................................................................. 38 2.2 Estado da Arte ................................................................................................... 39

3 REVISÂO TEÓRICA .............................................................................................. 43 3.1 Equacionamento matemático ........................................................................... 43 3.2 Cinemática do quadcopter ............................................................................... 45

3.3 Dinâmica do quadcopter ................................................................................... 46 3.4 Dinâmica dos rotores ........................................................................................ 48

3.5 Algoritmo de fusão de sensores ...................................................................... 49

4 METODOLOGIA .................................................................................................... 54 4.1 Diagramação mecânica..................................................................................... 54 4.2 Implementação para um grau de liberdade ..................................................... 56

4.3 Parametrização do algoritmo de sensoriamento ............................................ 59 4.4 Circuito de desenvolvimento ........................................................................... 63

4.5 Desenvolvimento da estrutura completa ........................................................ 65 4.6 Equalização das curvas de ganhos dos motores ........................................... 67 4.7 Simulação computacional ................................................................................ 72

4.8 Controle .............................................................................................................. 76

5 RESULTADOS ....................................................................................................... 78

6 CONCLUSÃO ........................................................................................................ 80

REFERÊNCIAS ......................................................................................................... 82

ANEXOS ................................................................................................................... 88

Page 18: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID
Page 19: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

20

1 INTRODUÇÃO

VANTs (Veículos Aéreos Não Tripulados), ou do inglês UAVs (Unmanned

Aerial Vehicles), mais conhecidos pelo termo "drone", obtiveram destaque em

operações militares durante as recentes operações de espionagem e bombardeio

dos Estados Unidos no Iraque no ano de 2013.

No Brasil o governo brasileiro vem adquirindo VANTs através da Força

Aérea Brasileira, tendo-se uma estimativa de que durante a Copa do Mundo de

2014, e nas Olimpíadas de 2016 a segurança do espaço aéreo brasileiro contará

com 6 veículos aéreos não tripulados. Estes, terão como finalidade o monitoramento

e vigilância durante as copas das confederações no período de 15 à 30 de julho de

2014 (STOCHERO, 2013).

Os dois exemplos citados anteriormente demonstram que a importância dos

VANTs no cenário mundial tem crescido, e apresenta-se como uma tecnologia que

não só possui potencial para operações militares, como também para aplicações

civis.

Embora os veículos não tripulados, aparentemente serem uma tecnologia

relativamente nova, o conceito deste tipo especial de robô, data de 1898 durante a

guerra Hispano-Americana. Época em que Nicolai Tesla apresentou na Eletrical

Exposition no Madison Square Garden, um torpedo capaz de ser controlado

remotamente por radiofrequência. Este dispositivo foi nomeado pelo seu inventor de

Teleautômaton, ilustrado na figura 1 (NEWCOME, 2004).

Figura 1: Teleautômaton de Tesla

Fonte: NEWCOME, 2004

Page 20: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

21

Inicialmente, as pesquisas de Tesla sobre controle remoto haviam sido

consideradas, como sem aplicação prática, ou, até mesmo como, simples truques

pelo exército americano. Em 1991 a primeira aeronave não tripulada da marinha

americana (figura 2) realizou cerca de 300 missões de reconhecimento, durante as

operações militares na guerra do Golfo, na operação Desert Storm, e novamente,

em 2006 na operação Desert Shield, abrindo o caminho para o desenvolvimento e

pesquisa dos UAVs (DEMPSEY, 2010).

Figura 2: VANT URV das forças armadas dos EUA

Fonte:MCCORMICK, 1995

Embora os VANTs tenham um histórico militar de aplicação, têm-se buscado

utilizar este tipo de robô em aplicações civis, como monitoramento de colheitas,

amostragem da atmosfera e entregas de correspondências, sendo o ultimo já

implementado pela empresa Amazon de compras on-line.

Dentre os VANTs, o modelo que tem alcançado maior interesse, é o

quadcopter, não somente pela sua simplicidade de montagem, mas pelo desafio na

implementação de seu sistema de controle.

O conceito do quadcopter tem existido desde as primeiras décadas do

século XX. Um dos primeiros modelos de um veículo, que usa quatro rotores para

decolar e manter voo que se tem notícia, foi desenvolvido por George DeBothezat

em 1922, ilustrado na figura 3 (BASTA, 2012).

Page 21: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

22

Figura 3: Quadcopter de DeBothezat

Fonte:BASTA,2012

Embora os primeiros modelos tenham sido capazes de decolar e manter

voo, sua performance podia competir com as demais aeronaves existentes na

época,perdia em quesitos de velocidade e quantidade de carga transportável.

Devido a essas limitações o modelo quadcopter permaneceu esquecido até a

década de noventa, quando a evolução dos MEMS (Micro-Electronical Mechanic

Systems) permitiram a implementação de uma plataforma de controle à bordo, feita

por um microcontrolador (JUN, 2013).

Atualmente, o nível de estabilidade e segurança alcançado para o drone, já

permite a comercialização em larga escala, de um modelo de UAV, caracterizado

como brinquedo. O AR Parrot, por exemplo, é comercializado pela Parrot, empresa

líder mundial em equipamentos sem fios para smartphones. O drone da Parrot pode

ser controlado à distância, através de um aplicativo que é instalado em um

smartphone (figura 4).

Page 22: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

23

Figura 4: Drone AR Parrot

Fonte: ARDrone, 2014

A variedade das aplicações dos possíveis aos quadrirotores vem

aumentando ultimamente. Dentre as possíveis formas de emprego, se destacam, o

combate a incêndios, operações de busca policial, manipulação de artefatos

explosivos, planejamento de obras, cobertura jornalística à eventos, filmagens de

filmes, imagens de animais selvagens, acompanhamento de trânsito e acidentes, et

cétera.

1.1 Objetivo Geral

Este trabalho de conclusão de curso objetiva a construção completa de um

protótipo do tipo quadcopter, a implementação de seu sensoriamento e o

equacionamento de seu algoritmo de controle pela técnica PID, tornando este capaz

de manter voo razoavelmente estável, isto é, com mínima variação de seus seis

graus de liberdade.

1.2 Objetivos específicos

Os objetivos específicos deste trabalho são:

Page 23: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

24

a) Levantamento e equacionamento dinâmico do VANT do tipo quadcopter.

b)Construção de uma malha de controle fechada utilizando lei de controle

PID.

c) Construção da estrutura do quadcopter.

d) Aquisição de dados pelos sensores utilizados

e) Simulação utilizando os parâmetros do modelo alcançado.

f) Implementação do algoritmo de controle e aplicação no protótipo

construído.

1.3 Justificativa

O enfoque especial que os quadrirotores tem ganhado em matéria de

sistemas robóticos, estendendo suas aplicações em usos militares, civis, para

observação, e até, mapeamento de ambientes desconhecidos, é claramente

justificável por sua mobilidade aérea.

Para que um robô construído no formato de um quadrirotor possa realizar

tarefas como mapeamento ou reconhecimento de ambiente torna-se então

necessário que se saiba sua posição e orientação no espaço, juntamente com a

capacidade de movimentar-se neste.

Logo, a estabilidade do voo do quadcopter é vital para que ele possa ser

utilizado, impedindo que ele colapse devido a um forte vento, ao seu próprio peso ou

devido à resposta caótica do empuxo resultante entre hélice e fluido. Para evitar tal

acontecimento é necessário que exista um sistema de controle capaz de corrigir as

variações devido às perturbações, restaurando o quadcopter à posição de equilíbrio

com a maior velocidade possível. O controle por PID (Proporcional Derivativo e

Integrativo) apresenta-se como um solução de controle linear, utilizado em várias

aplicações na indústria de automação, sendo as vantagens deste método segundo

Leong (2012), possuir estrutura simples e boa performance.

Baseando-se no que foi exposto, tem-se como justificativa deste trabalho a

verificação da possibilidade da construção de um quadrirotor com componentes

comerciais, e a implementação de um algoritmo de controle baseado na teoria de

sistemas lineares em um sistema dinâmico de estabilidade zero, como o quadrirotor.

Page 24: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

25

1.4 Escopo

Este trabalho de conclusão de curso em engenharia mecatrônica almeja

pesquisar e apresentar respostas relevantes sobre a possibilidade de se aplicar o

nível teórico contido na ementa do curso, para o equacionamento, implementação e

construção de um quadcopter de baixo custo.

Devido à complexidade da dinâmica envolvida no somatório de fenômenos

físicos que variam ao longo do tempo, pode-se perceber que o equacionamento de

voo deste sistema, depende de um controle de múltiplos níveis e não estacionário.

Este tipo de planta, para ter sua solução ótima, demanda da linearização do sistema

e da implementação de um controle robusto.

Alguma literatura recente, cita técnicas de inteligência artificial, como

soluções que poderiam alcançar a adaptabilidade transiente necessária ao controle

de um sistema que varia parâmetros, e equações em relação ao tempo. Técnicas

que recalculam seus parâmetros e técnicas que utilizam o novo feedback como

forma de aprendizado, têm chances consideráveis de alcançar o controle ótimo de

um sistema não estacionário. Este grupo de lógicas de programação pode ser

exemplificado por redes neurais, nebulosas, grafos, genéticos e Fuzzy, como

descrito por este artigo da Universidade do Tehran:

Embora o quadrirotor tenha vantagens em uma construção mecânica fácil

contra o helicóptero tradicional, ainda há questões que impedem que ele

seja amplamente utilizado em muitos dos campos sugeridos de aplicação.

Por exemplo, o controle e orientação do quadrirotor para estabilização, é

uma tarefa difícil, devido ao comportamento dinâmico não linear. Métodos

de controle convencionais usam teoria linear que é adequado apenas para

sistemas lineares. O controle Fuzzy é não-linear, portanto, é adequado para

o controle do sistema não-linear. (ABBASI; MAHJOOB; YAZDANPANAH,

2013).

No entanto, existem formas de se manipular a estrutura PID original, de

forma que esta também possa reagir e se adaptar à mudanças em seu ambiente. A

técnica Feedforward de PID pode ser empregada com este intuito, em um sistema

que seja possível variar o sinal de controle em um tempo menor que o tempo que

um distúrbio leva para afetar a saída, mensurar os distúrbios exógenos e os efeitos

Page 25: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

26

desses distúrbios na resposta. Assim, este trabalho objetiva trabalhar a manipulação

da lei de controle PID de forma a viabilizar o voo.

Page 26: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

27

2 REFERENCIAL TEÓRICO

Apesar da grande quantidade de trabalhos sobre o controle do quadcopter

terem sido desenvolvidos nos últimos 30 anos, seu modelo data de 1907, havendo

uma considerável evolução científica das tecnologias empregadas com sucesso

razoável em sua causa.

2.1 Revisão Bibliográfica

O primeiro quadrirotor conhecido, desenvolvido pelos irmãos Breguet, foi

batizando de Gyroplanenº1, ilustrado na figura 5.Utilizando apenas um motor de

combustão interna com potência de 40 cavalos, e um sistema de transmissão de

correia polia, o modelo de Breguet era capaz decolar, embora conseguisse apenas

obter uma altitude 1,5 metros por um breve período, sendo o voo instável devido ao

fato de não haver controle além de uma válvula que controlava a alimentação de

combustível do motor (LEISHMAN, 2009).

Figura 5: Gyroplane nº1

Fonte: LEISHMAN, 2004

Posteriormente vários modelos de quadcopters foram desenvolvidos no

período durante o período de 1920 a 1956, sendo os de principal destaque

desenvolvido por Etienne Oemichen 1920 e 1923, George DeBothezat em 1921 e

Marc Adam Kaplan em 1956.

Comissionado pela Aeronáutica dos Estados Unidos, George DeBothezat foi

incumbido de desenvolver o projeto de um quadcopter, sendo o resultado desse,

ilustrado na figura 3. Os resultado do modelo final foi uma aeronave capaz de

Page 27: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

28

suportar uma carga de 3 pessoas além do piloto, porém o veículo conseguiu obter a

altitude de 5 metros, muito aquém dos 100 metros calculados.

O controle dos primeiros quadcopters necessitava de rotores adicionais,

localizados na frente ou na traseira do veículo para manter a estabilidade. Em 1956

Marc Adam Kaplan desenvolveu um modelo onde o controle era estabelecido

através da variação de rotação entre os entre os rotores, sendo o primeiro a se

mover horizontalmente depois da decolagem. O modelo de Kaplan é considerado

por Basta(2012) o primeiro helicóptero quadcopter verdadeiro a voar.

Embora se tenha obtido sucesso na implementação do quadcopter, seu

modelo era obsoleto em relação as demais tipos convencionais de aeronave de sua

época, principalmente nos quesitos de velocidade, carga suportada e alcance.

As novas tecnologias obtidas no final dos anos 90, como o desenvolvimento

de sensores inerciais MEMS (Micro Electro Mechanical Systems) ou sistemas micro

eletromecânicos e o desenvolvimento de sistemas embarcados renovaram o

interesse das pessoas para o modelo do quadrirotor. Os primeiros quadrirotores a

serem fabricados foram para entusiastas de aeromodelos, sendo o Draganflyer III,

ilustrado na figura 6, considerado um modelo clássico, que devido a sua

performance extraordinária foi definido para servir de plataforma de testes em

Stanford e no MIT (Massachusetts Institute of Technology) (JIANG, 2013).

Figura 6: Draganflyer III

Fonte: TOURIER, 2006

Posteriormente, alguns grupos de pesquisadores optaram por construir seus

próprios quadrirotores, destaca Jiang (2013), os modelos X-4 Flyer da Universidade

Page 28: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

29

Nacional Australiana, o quadcopter da Universidade do Estado da Pensilvânia, o

Mesicopter da Universidade de Stanford e o OS4 do Instituto Federal de Tecnologia

da Suíça, modelos ilustrados na figura 7.

Figura 7: Modelos notáveis de quadrirotores

Fonte: TOURIER, 2006

Os UAVs citados anteriormente utilizavam um motor CC (corrente contínua)

para movimentar os rotores. Um dos problemas dessa configuração á a necessidade

do acoplamento de um redutor no motor, sendo as engrenagens uma fonte de

vibrações que causavam erros de medição pelo acelerômetro (HOFFMAN, 2007).

Muitos dos projetos de quadrirotores atuais utilizam o motor brushless acionado por

um ESC (Electronic Speed Controller), removendo o problema do redutor.

Apesar de considerar-se a dinâmica do quadcopter linear, esta afirmação só

é verdadeira para baixas velocidades. Para Hoffman (2007) os efeitos

Page 29: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

30

aerodinâmicos que inserem uma dinâmica não linear no sistema quando este se

move a velocidades moderadas são três. O primeiro a ser considerado é a influência

do arraste do ar no impulso total gerado pelos rotores. Os segundo fenômeno é o

bater das lâminas do rotor, que ocorre durante o movimento translacional, quando

uma pás está sobre a influência de uma velocidade efetiva do ar maior do que a

outra. O último fator aerodinâmico que ocorre é o rompimento do fluxo de ar

provocado pelo impacto dos vórtices sobre a fuselagem, implicando em uma

dificuldade maior em realizar o controle de orientação do veículo.Este problema

pode ser significativamente reduzido afastando-se os rotores do centro do

quadrirotor (HOFFMAN, 2007).

Embora, tenha se provado que a construção e implementação do modelo de

aeronave de um quadrirotor em miniatura seja viável, seu controle continua sendo

um objetivo desafiante (BOUABDALLAH, 2004).

2.1.1 Dinâmica do quadcopter

Para que se possa projetar o controle de um sistema é necessário que se

levante um modelo adequado das equações que o governam. No caso do

quadcopter essas equações são relacionadas à sua dinâmica. O quadcopter é um

sistema que apresenta seis graus de liberdade sendo capaz de realizar translação

vertical no eixo Z, horizontal lateral no eixo Y, horizontal longitudinal no eixo X, e

rotações de rolagem ou roll (θ em torno do eixo X), arfagem ou pitch (Φ em torno do

eixo Y) e guinada ou yaw (Ψ em torno do eixo Z) como ilustra a figura 8.

Page 30: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

31

Figura 8: Graus de liberdade do quadcopter

Fonte: Elaborado pelos autores

Nos trabalhos de Bouabdallah (2004) e Jun (2011) encontram-se, em

comum, as seguintes hipóteses para a modelagem do quadcopter:

a) A estrutura do quadcopter é rígida e simétrica.

b) O centro de massa e geométrico do quadcopter coincide com a origem do

sistema de coordenadas inerciais.

c) As forças de propulsão e arraste são proporcionais ao quadrado da

velocidade dos rotores.

Para que o quadcopter possa realizar seu movimento em seus seis graus de

liberdade, ele utiliza de quatro rotores idênticos localizados no fim de cada barra,

sendo estas de comprimentos iguais. Cada um dos rotores fornece a estrutura

impulso e torque, sendo que os localizados nas laterais giram em um sentido e os da

frente e da traseira giram no sentido contrário, assim como ilustrado na figura 9. Esta

configuração causa o cancelamento das reações de torque permitindo que o

quadcopter fique estacionário no ar.

Page 31: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

32

Figura 9: Esquema de rotação

Fonte: Elaborado pelos autores

Segundo Bresciani (2008) a estrutura do quadcopter permite que apenas

quatro dos seis graus de liberdade do quadcopter sejam diretamente controlados

através de um set-point determinado. Para variável controlável tem-se que o

deslocamento total do sistema pode ser construído a partir de quatro movimentos

básicos, sendo eles:

a) Impulso (Z): variando-se a velocidade de rotação dos rotores

simultaneamente na mesma quantidade, o quadcopter move-se na direção Z das

coordenadas.

b) Rolagem (θ): este movimento ocorre quando se aumenta ou diminui-se a

rotação do rotor da esquerda em relação ao da direita ou vice-versa, provocando um

torque na direção do eixo X da figura 10. Como consequência do movimento de

rolagem, uma componente do impulso é projetada sobre o eixo Y provocando um

movimento nesta direção.

Page 32: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

33

Figura 10: Rolagem ou arfagem

Fonte: Elaborado pelos autores

c) Arfagem (Φ): similarmente à rolagem, a arfagem ocorre devido à diferença

de velocidades entre os rotores da frente e da traseira, provocando um torque na

direção do eixo Y da figura 10. A arfagem dera uma componente do impulso na

direção X permitindo o quadcopter a se mover nesta direção.

d) Guinada (Ψ): neste movimento o par de rotores frente e traseira tem a

mesma velocidade de rotação, porém esta é diferente do par esquerda e direita.

Esta diferença de velocidade entre os pares provoca um torque na direção Z da

figura 11, realizando o movimento de guinada. Bresciani (2008) ressalta que as

alterações nas rotações dos rotores não devem ser muito grandes, para evitar o

problema de efeitos aerodinâmicos que inserem uma dinâmica não linear ou

saturam os atuadores do quadcopter.

Page 33: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

34

Figura 11: Somatório de momentos (guinada)

Fonte: Elaborado pelos autores

Embora esta seção esteja apresentando um esboço da cinemática do

quadcopter as suas equações cinemática e dinâmica podem ser encontradas no

capítulo 3 da Revisão Teórica.

2.1.2 Sensoriamento

Para os seis graus de liberdade de um corpo rígido, a realização do controle

de um sistema se torna relativamente simples se o modelo da planta for conhecido e

o controlador deter a capacidade de realizar o comando relativo a este modelo. No

entanto na maioria dos casos o modelo completo não está disponível e o controle de

estruturas mecânicas nunca ocorre com a devida precisão. Para resolver este

problema utiliza-se de sensores, que permitem a obtenção de informações sobre o

estado da planta e das suas vizinhanças, permitindo construir um controle capaz de

compensar estes erros, realizado um o controle por malha fechada cujo esquema

está ilustrado na figura 12.

Page 34: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

35

Figura 12: Esquema de uma malha fechada de controle

Fonte: Elaborado pelos autores

A mensura precisa a orientação do quadcopter é de primordial importância

para o controle deste sistema, pois a dinâmica deste é controlada em maior parte

pelos parâmetros rolagem, arfagem e guinada. Portanto é necessária a elaboração

de um sistema de sensoriamento capaz de determinar estas variáveis observáveis

da malha com a maior precisão possível.

Para determinação da orientação utiliza-se de IMU que contém um circuito

integrado contendo um giroscópio e acelerômetro MEMS, que normalmente são

suficientes para a maioria das aplicações (MADGWICK, 2010), porém a adição das

medidas de um magnetômetro permite a mensura completa de todos os parâmetros

compondo um sistema AHRS (Attitude and Heading Reference Systems).

Apesar de poder-se compensar os erros provenientes da elaboração de um

modelo incompleto através de um sensor, têm-se o problema da incerteza de

medição presente no próprio processo de medida ou na leitura desta medida

fornecida pelo sensor, o que pode gerar um sinal de controle errado, levando a

planta à saturação, ou ainda, à instabilidade.

A natureza do erro medido pode ser divido em duas parcelas, a primeira é o

erro sistemático e afeta a medida de maneira constante e previsível, a segunda é o

erro aleatório que ocorre devido à variabilidade dos processos físicos envolvidos em

um sistema de medição, cujo valor é sempre imprevisível.

Tais erros são inerentes à medição e não podem ser eliminados, porém

podem ser minimizados de modo que a medida se aproxime a uma máxima possível

equivalente à do valor real. Para tal, utiliza-se uma filtragem no sinal de medição. O

filtro permite a atenuação de ruídos ou erros, até que seu valor seja desprezível.

Existem várias técnicas de filtragem de sinais, e a pesquisa às publicações atuais

Page 35: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

36

que antecedeu este projeto, indicou que a otimização deste tratamento de sinal

vincula-se ao uso de mais de um tipo de filtro.

Existem dois tipos principais de filtros que são os filtros digitais e analógicos.

Os filtros analógicos usam circuitos analógicos, que podem ser constituídos de

componentes passivos como resistores, indutores e capacitores ou ativos.Estes

filtros, que também possuem amplificadores operacionais para produzir amplificação

de tensão, também têm como objetivo a realização da filtragem do sinal.

Na filtragem digital os processos de formação do espectro das formas de

onda ocorrem usando componentes digitais na implementação. Em seu trabalho,

Rader (1968), notou que havia uma crescente tendência no aumento da velocidade

e diminuição de custo e tamanho nos CIs digitais, tornando-os uma vertente

crescente na técnica de filtragem de sinal. Rader (1968) explicita ainda as vantagens

da filtragem digital e seu desempenho estável para uma precisão arbitrariamente

alta.A ausência do problema do casamento de impedâncias, e a flexibilidade

presente no qual se pode alterar os parâmetros do filtro para modificar sua resposta,

o que são características intrínsecas à filtragem digital.

Segundo Hernandez (2000) existe um método de cancelamento de ruído

recursivo, adaptativo é aplicado de forma a estimar os sinais elétricos provenientes

de um acelerômetro embutido em um ônibus em um teste de desempenho, por

exemplo. O ruído e/ou as interferências podem corromper o sinal obtido, e torna-se

necessário diminuir o ruído na medição com a aceleração do ônibus. O algoritmo

utilizado tem a vantagem da simplicidade computacional e é bem adequado para

representar o tempo de diferentes características em medições em tempo real da

aceleração. Como o sinal de interesse e o ruído têm muito próxima as bandas de

freqüência, é muito difícil diminuir o ruído usando simples filtros.

Este é o caso que ocorre com o acelerômetro e magnetômetro. No primeiro,

a medição da orientação de um VANT é atrapalhada pela dificuldade de separar a

gravidade e a aceleração linear. Para o segundo, a presença de metais, circuitos

elétricos e fios conduzindo corrente causam distorção magnética na medida do

campo magnético da Terra, logo o acelerômetro e o magnetômetro sozinho não são

fontes confiáveis de dados para determinar a orientação do quadcopter. Para tal

considera-se a implementação do giroscópio no sistema, porém seu bias sofre drift

devido ao movimento contínuo do sistema e às variações de temperatura

(MADGWICK, 2010).

Page 36: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

37

Neste caso, a fusão de sensores entre acelerômetro, magnetômetro e

giroscópio é uma boa opção para leitura angular. A principal intenção, em uma fusão

de sensores, é promover a interação entre as magnitudes medidas por cada sensor

individualmente, e correlacioná-las de forma a manter uma resposta aceitável,

mesmo que ocorram erros em alguma leitura, tornando o sistema menos sensível e

mais preciso (VIEIRA, 2011).

Uma das técnicas mais populares para a realização da filtragem e fusão de

sensores na determinação da orientação de um sistema trata-se do algoritmo do

Filtro de Kalman, e derivados deste. A implementação destes algoritmos

fundamentos na técnica de Kalman comprovam a sua eficiência e precisão.

Madgwick (2010) no entanto, aponta que embora possa ser muito difundida, o Filtro

de Kalman estendido apresenta complicações em sua implementação para a

estimativa da orientação devido as iterações de regressão linear, que exigem altas

taxas de amostragem excedendo a largura de banda do sistema, e a necessidade

de vetores grandes para representar as relações entre os estados através da

cinemática rotacional em um espaço tridimensional.

Outro problema relacionado a mensura da orientação de um sistema é a

representação através das matrizes do espaço ortogonal especial com os ângulos

de Euler. Tal método revela-se muito custoso quando se analisa o poder

computacional necessário para resolver este problema através deste método, pois é

necessário resolver um sistema para nove parâmetros diferentes.

Outro ponto importante é o surgimento de singularidades na matriz calculada,

que diminuem os graus de liberdade do sistema impossibilitando a ação apropriada

do controlador em um determinado estado.

Um dos métodos mais comuns para a resolução do problema da orientação

está na utilização de quaternions, juntamente com a utilização de variações do

algoritmos do filtro de Kalman (MAGNUSSEN, 2013). A técnica da determinação dos

ângulos de guinada, rolagem e arfagem através dos quaternions é superior a dos

ângulos de Euler pelos fatores da simplificação computacional do algoritmo, que

ocorre devido a redução dos nove parâmetros a ser determinados para quatro e a

remoção das singularidades na resolução (SABATINI, 2011).

Tendo em mente as complicações das matrizes de Euler e do Filtro de

Kalman estendido, Madgwick elaborou um algoritmo de fusão de sensores MARG

que contém que tem como base o filtro de Kalman representando os estados do

Page 37: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

38

sistema através de quaternions. A presença de um algoritmo gradiente descendente

que permite uma performance a baixas taxas de amostragem, e compensação on-

line da distorção magnética e do drift do bias do giroscópio.

Para o sistema de orientação do quadcopter escolheu-se a implementação do

algoritmo de Madgwick as suas características adaptativas.

2.1.3 Controle por PID

O controle pela lei PID é o tipo de controlador mais difundido em sistemas

robóticos, sendo os conceitos e equacionamento deste elaborados no capítulo da

revisão teórica.

Para Bresciani (2008) e Leong (2012) a popularidade deste algoritmo para

sistemas controlados deve-se principalmente a três fatores, sendo estes:

a) A estrutura simples;

b) Boa performance em variados processos;

c) A possibilidade de ajustar os parâmetros sem o modelo específico do

sistema.

Ressalta-se o último fator, pois o modelo exato do quadcopter possui um

equacionamento muito complexo para ser levantado matematicamente (LEONG,

2012).

Embora a lei de controle PID possua fácil implementação, Bresciani (2008),

ressalva que ela possui duas desvantagens. A primeira seria a parte derivativa do

controle calculada pelo erro, para alterações muito bruscas deste o valor de resposta

tenderia ao infinito, saturando os atuadores e levando o quadcopter para fora da

zona de comportamento linear. O segundo ponto de desvantagem localiza-se na

ação integrativa do controlador, quando o sinal proveniente deste, desta vez, satura

os atuadores do sistema. Este problema ocorre quando o erro apresenta variações

muito pequenas durante o tempo, provocando um aumento significativo na parcela

integradora do controlador. Quando o sinal do erro muda, demora muito tempo para

que o sistema restaure seu comportamento linear. esta desvantagem é conhecida

como wind-up.

Para diminuir os efeitos dos inconvenientes do controlador pela lei PID,

altera-se o diagrama de bloco original para um aperfeiçoado. Na parcela derivativa

utiliza-se da leitura direta do feedback ao invés do erro como no PID clássico. Essa

Page 38: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

39

solução deve-se ao fato de que o sistema funciona como um filtro impedindo altas

variações no sinal de saída. Para o problema de wind-up utiliza-se um bloco de

saturação após o integrador que irá limitar os valores máximos e mínimos do parcela

integrativa do controlador (BRESCIANI, 2008). A comparação entre o controlador

PID clássico e o modificado pode ser visto na figura 13.

Figura 13: Diagramas PID

Fonte: Elaborado pelos autores

2.2 Estado da Arte

O principal desafio do quadcopter trata-se de construí-lo para que ele seja

dotado de agilidade e capaz de manobras agressivas em um ambiente não

controlado. Esta tendência crescente aumenta o acoplamento dinâmica e as não-

linearidades do sistema, sendo então necessário a implementação de um

controlador mais sofisticado (Mistler, 2001).

Bouabdallah (2004) compara em seu trabalho duas técnicas de controle para

o quadrirotor, a por PID e por LQ (Least Quadratic). Utilizando o modelo derivado do

equacionamento por Euler-Lagrange, nos resultados obtidos o controlador por PID

apresentou melhor performance do que o por LQ, sendo esta diferença atribuída

principalmente à imperfeição do modelo utilizado, que não levou em consideração

atuador. Bouabdallah (2004) observa que embora o controle pela lei PID tenha dado

resultados satisfatórios, a teoria de controle LQ tem potencial em obter resultados

melhores.

Nos controladores baseados nas leis clássicas Han (2013) propõe uma

comparação entre três tipos controladores, dois deles sendo de ordem integral

sendo um baseado na lei de PI (proporcional integral) cujos parâmetros são

Page 39: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

40

calculados baseado na lei de Ziegler-Nichols, outro baseado na lei PID e um novo

tipo de controle de ordem fracionária que utiliza o PI como referência. Para testar os

controladores foi utilizado o quadrirotor Aggie Air, cuja função de transferência da

planta de arfagem foi levantada utilizando um algoritmo de sétima ordem de entrada

exógena auto-regressiva, e depois simplificada para um modelo de primeira ordem

mais atraso. Os resultados da simulação, figura 14, para um sinal de entrada do tipo

degrau indicam que controlador de ordem fracionária FO[PI] apresenta

características superiores em relação ao PID e ao PI desenvolvidos pelo autor. O

sobre-sinal e o sinal de estabilização no tempo obtidos para o controlador de ordem

fracionária, foram menores do que os outros dois, ambos, parâmetros importantes

para o sistema de controle de um quadrirotor.

Figura 14: Resultados dos controladores PI, PID e FO[PI]

Fonte: HAN, 2013

Em uma nova abordagem para desenvolver o controle para o quadrirotor

Bouabdallah (2005) utiliza as técnicas de Backstepping e SMC (Sliding-mode

Control). A implementação do controlador utilizando o primeiro algoritmo apresentou

resultados experimentais satisfatórios, sendo capaz de estabilizar o sistema para

Page 40: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

41

condições inicias críticas com rapidez. O controle por SMC apresentou resultados

inferiores como demora e dificuldade de estabilização, devido a inserção de

vibrações de alta frequência e baixa amplitude provocando ruídos nos sensores.

Bouabdallah (2005) conclui para trabalhos futuros que pretende desenvolver um

quadrirotor completamente autônomo utilizando um controlador melhorado utilizando

Backstepping.

A crescente popularidade da lógica Fuzzy ou Nebulosa, encontrou nos

últimos anos aplicação no desenvolvimento de controladores robustos. Utilizando do

método Takagi-Sugeno de ordem zero para a otimização de um sistema nebuloso

de interferência auto-ajustável de controle ou STFIS (Self-tunable Fuzzy Interference

System), Zemalache (2009) conseguiu simular um controlador robusto. A robustez

foi testada simulando duas ocasiões especiais, a primeira considerava a falha de um

dos rotores enquanto na segunda considera-se a força de arraste produzida pelo

movimento do quadcopter modelo XSF. Os resultados obtidos quando comparados

com um controlador linearizado realimentado estático ou SFL (Static Feedback

Linearization Controller), observa-se a superioridade do controle utilizando o

algoritmo Fuzzy quando entra na dinâmica no sistema da força de arraste. Para o

sistema utilizando o controlador STFIS, observa-se que o erro consegue zerar com a

interferência do vento enquanto que no controlador SFL este cresce

proporcionalmente ao com o quadrado da velocidade do ar.

O sistema de controle hierárquico tem sido utilizado em sistemas

aeronáuticos, onde as dinâmicas de orientação e translação possuem controladores

separados desenvolvidos que levam em consideração a diferença das taxas de

mensura da translação e da orientação. Bertrand (2011) utiliza dos conceitos de

desenvolvimento de leis de controle para sistemas aeronáuticos, onde a dinâmica da

orientação (escala de tempo rápida) deve convergir mais rapidamente do que a

translacional (escala de tempo lenta), para o desenvolvimento de um controlador

hierárquico utilizando a teoria de perturbação singular. Para o controle da dinâmica

de translação, considerou-se que apenas a mensura da posição estavam

disponíveis, utilizando a estratégia de controle com realimentação parcial para lidar

com a lentidão das medições, retirando então a necessidade de um observador.

Para o controle da atitude considerou-se um controlador que fosse um candidato da

função de controle de Lyapunov, resultando em um controlador estável.

Page 41: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

42

Na simulação, Bertrand (2011), mostra que os algoritmos de controle

utilizados para o desenvolvimento de cada controlador, validam a separação das

escalas de tempo, condição considerada para a estratégia de controle. Utilizando um

quadrirotor X4Flyer, que tem como sensores um IMU e uma câmera cujas medidas

são transmitidas através de uma comunicação analógica wireless com a estação de

controle. Embora a Bertrand (2011) considere os resultados satisfatórios observa-se

pela figura 15 a alta oscilação do quadrirotor para as posições desejadas.

Figura 15: Resultados experimentais do controle hierárquico

* Legenda: Tracejado posição desejada; linha cheia posição real.

Fonte: BERTRAND, 2011

Observa-se que os trabalhos pesquisados não indicam nenhum tipo de

controle como o melhor para o sistema do quadrirotor, encontrando-se muitas

divergências sobre o tema. Pode-se de certa forma dizer que o problema de controle

do quadrirotor atualmente encontra somente respostas de engenharia, devido ao

fato de que o modelo do sistema não é exatamente conhecido ou muito complexo

para ser utilizado para o desenvolvimento de um controlador.

Page 42: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

43

3 REVISÂO TEÓRICA

Neste capítulo encontra-se toda a derivação matemática para a dinâmica e

cinemática do quadcopter, assim como os algoritmos de filtragem e fusão de

sensores.

3.1 Equacionamento matemático

O equacionamento da dinâmica de um corpo rígido, mesmo que em voo

pairado, envolve múltiplos níveis de interpretação. Em seus seis graus de liberdade,

um corpo rígido, pode transladar ao longo de seus eixos referenciais e rotacionar em

torno destes mesmos eixos.

Quanto à rotação, uma das formas mais simples de se descrever a posição

de um corpo, é através de três ângulos independentes que fazem referência ao

espaço Euclidiano tridimensional, estes são os ângulos de Euler.

Definindo como origem de um sistema de coordenadas fixo, também

chamado de inercial, um ponto na superfície da Terra (desconsiderando seu

movimento orbital), e, um outro sistema de coordenadas móvel (vehicle frame), que

se desloca em translação junto ao corpo rígido, pode-se obter o vetor posição do

corpo em relação ao sistema inercial. Um terceiro frame acompanha as rotações do

corpo em relação ao sistema móvel, o body frame (figura 16).

Figura 16: Coordenadas de múltiplos corpos

Fonte: Elaborado pelos autores

Page 43: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

44

A relação, entre as coordenadas do sistema móvel e do sistema fixo, é

definida através de transformações lineares de translação e rotação. Como

parâmetros para os eixos de rotação, os ângulos são Φ (em Z), θ (em X) e Ψ(em Y)

(figura 17).

Figura 17: Ângulos de Euler

Fonte: MCCORMICK, 1995

Sendo â um ângulo qualquer dentre os três ângulos de rotação, ρ o vetor

posição e R a matriz de rotação, a equação geral de transformação das rotações é:

ρ' = R(â)ρ (3)

Assim, a e matriz de representação da rotação para Ψ(guinada) fica:

R(Ψ)= cosΨ senΨ 0

−senΨ cosΨ 00 0 1

(4)

A matriz de representação da rotação para θ (arfagem) fica:

R(θ)= cosθ 0 −senθ

0 1 0senθ 0 cosθ

(5)

A matriz de representação da rotação para Φ (rolagem) fica:

Page 44: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

45

R(Φ)= 1 0 00 cosΦ senΦ0 −senΦ cosΦ

(6)

Finalmente, considerando os três eixos, tem-se a relação entre o frame do

corpo e o frame do veículo:

R(Φ, θ, Ψ) = R(Φ)*R(θ)*R(Ψ) (7)

Sendo a matriz de rotação

R Φ, θ, Ψ =

= 𝑐𝑜𝑠θcosΨ 𝑐𝑜𝑠θsenΨ −𝑠𝑒𝑛θ

𝑠𝑒𝑛Φ𝑠𝑒𝑛θcosΨ − cosΦsenΨ 𝑠𝑒𝑛Φ𝑠𝑒𝑛θcosΨ + cosΦsenΨ senΦsenθ𝑐𝑜𝑠Φ𝑠𝑒𝑛θcosΨ + senΦsenΨ 𝑐𝑜𝑠Φ𝑠𝑒𝑛θcosΨ − senΦsenΨ cosΦsenθ

(8)

3.2 Cinemática do quadcopter

A equação 9 descreve a relação cinemática entre os vetores velocidade nas

coordenadas do corpo rígido com 6 graus de liberdade, identificado pelo subscrito

“B”, com a velocidade nas coordenadas inerciais, indicado pelo sobrescrito “E”.

𝑣𝐸 = 𝐽𝛩𝑣𝐵 (9)

Onde:

𝑣𝐸 = 𝑃 𝐸𝛩 𝐸 = [𝑋 𝑌 𝑍 𝜙 𝜃 𝜓 ]𝑇 (10)

𝑣𝐸 = 𝑉𝐵𝜔𝐵 = [𝑢 𝑣 𝑤 𝑝 𝑞 𝑟]𝑇 (11)

𝐽𝛩 = 𝑅𝛩 03𝑥3

03𝑥3 𝑇𝛩

(12)

Page 45: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

46

A matriz 𝐽𝛩 é chamada de Jacobiano, e é composta de 4 submatrizes sendo

elas a matriz de rotação dos eixos 𝑅𝛩 previamente discutida, a matriz de

transferência 𝑇𝛩 e duas matrizes quadradas nulas de ordem 3. Observa-se que a

submatriz (1, 2) é nula pois o centro das coordenadas do quadcopter coincide com o

das coordenadas inerciais. Caso use-se um sistema de coordenas inerciais cujo a

origem não coincidem, deve-se refazer o jacobiano para a submatriz (1, 2).

As matrizes 𝑅𝛩, 𝑇𝛩 e 03𝑥3 são definidas de acordo com as equações 13, 14 e

15 respectivamente como:

𝑅𝛩 =

𝑐𝜓𝑐𝜃 −𝑠𝜃𝑐𝜙 + 𝑐𝜓𝑠𝜃𝑠𝜙 𝑠𝜓𝑠𝜙 + 𝑐𝜓𝑠𝜃𝑐𝜙𝑠𝜓𝑐𝜓 𝑐𝜓𝑐𝜙 + 𝑠𝜓𝑠𝜃𝑠𝜙 −𝑐𝜓𝑠𝜙 + 𝑠𝜓𝑠𝜃𝑐𝜙−𝑠𝜃 𝑐𝜃𝑠𝜙 𝑐𝜃𝑐𝜙

(13)

𝑇𝛩 =

1 𝑡𝜃𝑠𝜙 𝑡𝜃𝑐𝜙0 𝑐𝜙 −𝑠𝜙

0𝑠𝜙

𝑐𝜃 𝑐𝜙

𝑐𝜃

(14)

03𝑥3 = 0 0 00 0 00 0 0

(15)

Para as equações anteriores a notação cn, sn e tn representam cos n, sen n e

tag n, respectivamente.

3.3 Dinâmica do quadcopter

Utilizando a segunda lei de Newton,encontra-se na forma matricial a relação

entre os torque 𝜏𝐵 e as forças 𝐹𝐵 com as acelerações do sistema do quadcoptero

através da equação 16:

𝑀𝐵𝑣 + 𝐶𝐵 𝑣 𝑣 = 𝛵 (16)

Onde:

a) MB é a matriz que representa a inércia do sistema explicitada na

equação 17.

Page 46: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

47

𝑀𝐵=

𝑚 0 00 𝑚 00 0 𝑚

0 0 00 0 00 0 0

0 0 00 0 00 0 0

𝐼𝑋𝑋 0 00 𝐼𝑌𝑌 00 0 𝐼𝑍𝑍

(17)

b) 𝐶𝐵 𝑣 é matriz que depende velocidade do corpo e contém a força

centrípeta e o troque produzido pela forca de Coriolis, representada na equação 18:

𝐶𝐵 𝑣 =

03𝑥3 −𝑚 𝑉𝐵

03𝑥3 −𝐼𝑋𝑋 0 00 𝐼𝑌𝑌 00 0 𝐼𝑍𝑍

𝜔𝐵

=

0 0 00 0 00 0 0

0 𝑚 𝑤 −𝑚 𝑣−𝑚 𝑤 0 𝑚 𝑢𝑚 𝑣 −𝑚 𝑢 0

0 0 00 0 00 0 0

0 𝐼𝑍𝑍 𝑟 −𝐼𝑌𝑌 𝑞−𝐼𝑍𝑍 𝑝 0 𝐼𝑋𝑋 𝑝𝐼𝑌𝑌 𝑞 −𝐼𝑋𝑋 𝑝 0

(18)

c) 𝛵 é o vetor de força e torque resultantes representado por:

𝛵 = 𝐹𝐵

𝜏𝐵 (19)

Para o sistema do quadcopter encontram-se três parcelas que compõe o

vetor 𝛵. A primeira parcela é referente a força da gravidade nas coordenadas do

corpo rígido denominado por 𝐺𝐵.A segunda parcela, 𝑂𝑏 𝑣 , provém dos efeitos

giroscópicos produzidos pela rotação do rotor. A terceira parcela é a contribuição

das forças e torques diretamente produzidos pelo movimento do quadcopter. As três

parcelas são equacionadas respectivamente por 20, 21 e 22.

𝐺𝐵 = 𝐹𝐺

𝐵

03𝑥1 =

𝑅𝛩−1𝐹𝐺

𝐸

03𝑥1 =

𝑚 𝑔 𝑠𝜃−𝑚 𝑔 𝑐𝜃𝑠𝜙−𝑚 𝑔 𝑐𝜃𝑠𝜙

000

(20)

𝑂𝑏 𝑣 =

03𝑥1

− 𝐽𝑇𝑃 𝜔𝐵 × 001 −1 𝑘𝛺𝑘

4

𝑖=1

=

03𝑥1

𝐽𝑇𝑃 −𝑞𝑝1

𝛺

(21)

Page 47: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

48

𝑈𝑏 𝛺 = 𝐸𝐵𝛺2 =

00

𝑏 𝛺12 + 𝛺2

2 + 𝛺32 + 𝛺4

2

𝑏 𝑙 𝛺42 − 𝛺2

2

𝑏 𝑙 𝛺32 − 𝛺1

2

𝑑 𝛺22 + 𝛺4

2 − 𝛺12 − 𝛺2

2

(22)

Onde têm-se que os valores d, b, l, 𝐽𝑇𝑃 , são constantes e representam eles, o

coeficiente de arraste da hélice, o coeficiente de empuxo, o comprimento da haste

que liga o motor ao centro do quadcopter e o momento de inércia da aeronave em

torno do eixo do rotor respectivamente.

Separando as variáveis de interesse em um sistema de equações obtem-se

23:

𝑢 = 𝑣𝑟 − 𝑤𝑞 + 𝑔 sin 𝜃

𝑣 = 𝑤𝑝 − 𝑢𝑟 − 𝑔 cos 𝜃 sin 𝜙

𝑤 = 𝑢𝑞 − 𝑣𝑝 − 𝑔cos 𝜃 sin 𝜙 +𝑏 𝛺1

2 + 𝛺22 + 𝛺3

2 + 𝛺42

𝑚

𝑝 =𝐼𝑌𝑌 − 𝐼𝑍𝑍

𝐼𝑋𝑋𝑞𝑟 −

𝐽𝑇𝑃𝐼𝑋𝑋

𝑞 −𝛺1 + 𝛺2 − 𝛺3 + 𝛺4 +𝑏 𝑙 𝛺4

2 − 𝛺22

𝐼𝑋𝑋

𝑞 =𝐼𝑍𝑍 − 𝐼𝑋𝑋

𝐼𝑌𝑌𝑝𝑟 +

𝐽𝑇𝑃𝐼𝑌𝑌

𝑝 −𝛺1 + 𝛺2 − 𝛺3 + 𝛺4 +𝑏 𝑙 𝛺4

2 − 𝛺22

𝐼𝑌𝑌

𝑟 =𝐼𝑋𝑋 − 𝐼𝑌𝑌

𝐼𝑍𝑍𝑝𝑞 +

𝑑 𝛺22 + 𝛺4

2 − 𝛺12 − 𝛺2

2

𝐼𝑍𝑍

(23)

3.4 Dinâmica dos rotores

Pré requisito ao equilíbrio do conjunto, há a capacidade de sustentabilidade

da altitude do voo. No caso do quadcopter, esta sustentação é alcançada através

das hélices. São equipamentos de propulsão acoplados aos motores que convertem

a energia da rotação em translação, empurrando o fluido à sua volta. As hélices são

formadas por conjuntos de asas, que ao serem rotacionadas geram uma diferença

de pressão entre suas superfícies superior e inferior, segundo explicitam a 3ª lei de

Newton e o princípio de Bernoulli.

O comportamento de uma hélice pode ser baseado em 3 parâmetros; o

coeficiente de Thrust cT, coeficiente de potência cP e raio da hélice r, 𝜌 a densidade

Page 48: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

49

do ar e w a velocidade angular, que permitem calcular as seguintes equações 24 e

25 (RODRIGUES, 1964).

𝑇 =𝑐𝑇4ρ𝑟4𝜔2

𝜋2 (24)

𝑃𝑝 =𝑐𝑃4 ρ𝑟5𝜔3

𝜋3 (25)

Através destas equações é possível observar que 𝑇 (força de impulso) e 𝑃𝑝

(potência de propulsão) aumentam consideravelmente com o aumento do diâmetro,

e por consequência o consumo de energia também, diminuindo a autonomia do

sistema.

3.5 Algoritmo de fusão de sensores

O filtro de Magdwick (2010) usa o sistema de quaternions para representar a

orientação do sistema MARG, usando como base o algoritmo do filtro de Kalman. O

valor do quaternion é atualizado através da equação 26 que utiliza uma integração

para sistemas discretos.

𝑞𝑡 ,𝜔 = 𝑞 𝑒𝑠𝑡 ,𝑡−1 + (

1

2𝑞 𝑒𝑠𝑡 ,𝑡−1𝐸

𝑆𝐸𝑆

𝐸𝑆 × 𝜔𝑡)∆𝑡.

𝑆 (26)

Onde:

a) 𝑞𝑡 ,𝜔𝐸𝑆 : o quaternion que determina a orientação do sistema atualizado

através das medidas do giroscópio

b) 𝑞 𝑒𝑠𝑡 ,𝑡−1𝐸𝑆 : o quaternion estimado a posteriori do tempo t-1.

c) 𝜔𝑡.𝑆 : os valores do obtidos do giróscopio. O sobrescrito S indica que os

valores obtidos são relativos ao frame do sensor.No sistema

quaterniônico o vetor para a rotação é escrito como na equação 27.

𝜔𝑡.𝑆 = 0 𝜔𝑥𝜔𝑦𝜔𝑧 (27)

d) ∆𝑡: período de amostragem do sensor.

Page 49: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

50

Para determinadas aplicações pode-se admitir uma solução incompleta dos

ângulos de Euler, mas uma solução por quaternion requer que todos os três ângulos

sejam computados. Isto pode ser obtido através de um problema de otimização de

função 𝑓( 𝑞 𝐸𝑆 , 𝑑 .

𝐸 , 𝑠) .𝑆 por minimização. A função descrita anteriormente é computada

por 28.

𝑓( 𝑞 𝐸𝑆 , 𝑑 .

𝐸 , 𝑠 ).𝑆 = 𝑞 ∗ ×𝐸

𝑆 𝑑 .𝐸 × 𝑞 𝐸

𝑆 − 𝑠 .𝑆 (28)

Sendo:

a) 𝑞 𝐸𝑆 : quaternion que contém a orientação do quadcopter

𝑞 ∗ = 𝑞1 𝑞2 𝑞3 𝑞4 𝐸𝑆 (29)

b) 𝑞 ∗𝐸𝑆 : é o conjugado do quaternion que contém a orientação do quadcopter:

𝑞 ∗ = 𝑞1 −𝑞2 −𝑞3 −𝑞4 𝐸𝑆 (29)

c) 𝑑 .𝐸 : quaternion que descreve a direção do campo de referência nas

coordenadas inerciais.

𝑑 .𝐸 = 0 𝑑𝑥 𝑑𝑦 𝑑𝑧 (30)

d) 𝑠 .𝑆 : quaternion que descreve a direção da orientação do sensor.

𝑠 .𝑆 = 0 𝑠𝑥 𝑠𝑦 𝑠𝑧 (31)

O algoritmo gradiente descendente apresenta a qualidade de simplicidade de

implementação e computação, logo o quaternion estimado através das variáveis

observáveis do acelerômetro e magnetômetro será dado pela equação 32.

𝑞 ∇,𝑡 = 𝑞 𝑒𝑠𝑡 ,𝑡−1 − 𝜇𝑡

∇𝑓( 𝑞 𝐸𝑆 , 𝑑 .

𝐸 , 𝑠 ).𝑆

∇𝑓( 𝑞 𝐸𝑆 , 𝑑 .

𝐸 , 𝑠 ).𝑆

𝐸𝑆

𝐸𝑆

(32)

O valor do divergente de 𝑓( 𝑞 𝐸𝑆 , 𝑑 .

𝐸 , 𝑠 ).𝑆 é determinado pelo produto de sua

função objetiva pelo seu Jacobiano. Para a gravidade temos as equações 33 e 34.

Page 50: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

51

𝑓( 𝑞 𝐸𝑆 , 𝑎 ).

𝑆 =

2 𝑞2𝑞4 − 𝑞1𝑞3 − 𝑎𝑥

2 𝑞1𝑞2 + 𝑞3𝑞4 − 𝑎𝑥

2 1

2− 𝑞2

2 − 𝑞32 − 𝑎𝑧

(33)

𝐽 𝑞 𝐸

𝑆 =

−2𝑞3 2𝑞4 −2𝑞1

2𝑞2 2𝑞1 2𝑞4

0 −4𝑞2 −4𝑞3

2𝑞2

2𝑞3

0

(34)

Onde 𝑎 .𝑆 é o quaternion com as leituras do acelerômetro e 𝑎𝑥 , 𝑎𝑦 e 𝑎𝑧são as

componentes de seus respectivos eixos.

Para a orientação em relação ao campo magnético da Terra o Jacobiano e a

função objetiva tomam o formato das equações 35 e 36.

𝑓( 𝑞 𝐸𝑆 , 𝑏 .

𝐸 , 𝑚 ).𝑆 =

2𝑏𝑥 0.5 − 𝑞32 − 𝑞4

2 + 2𝑏𝑧 𝑞2𝑞4 − 𝑞1𝑞3 − 𝑚𝑥

2𝑏𝑥 𝑞2𝑞4 − 𝑞1𝑞3 + 2𝑏𝑧 𝑞1𝑞2 + 𝑞3𝑞5 − 𝑚𝑦

2𝑏𝑥 𝑞2𝑞4 + 𝑞1𝑞3 + 2𝑏𝑧 0.5 − 𝑞22 − 𝑞3

2 − 𝑚𝑧

(35)

𝐽 𝑞 𝐸𝑆 , 𝑏 .

𝐸 =

=

−2𝑏𝑧𝑞3 2𝑏𝑧𝑞4 −4𝑏𝑥𝑞3 − 2𝑏𝑧𝑞1

−2𝑏𝑥𝑞4 + 2𝑏𝑧𝑞2 2𝑏𝑥𝑞3 + 2𝑏𝑧𝑞1 2𝑏𝑥𝑞2 + 2𝑏𝑧𝑞4

2𝑏𝑥𝑞3 2𝑏𝑥𝑞4 − 2𝑏𝑧𝑞2 2𝑏𝑥𝑞1 − 4𝑏𝑧𝑞3

−4𝑏𝑥𝑞4 + 2𝑏𝑧𝑞2

−2𝑏𝑥𝑞1 + 2𝑏𝑧𝑞3

2𝑏𝑥𝑞2

(36)

Onde 𝑏 .𝐸 é vetor que contém o campo magnético da Terra que contém

componentes 𝑏𝑥 e 𝑏𝑧 . O vetor 𝑚 .𝑆 é o quaternion com as medidas do magnetômetro

sendo 𝑚𝑥 , 𝑚𝑦 e 𝑚𝑧 as componentes dos respectivos eixos.

Dada as equações 26 e 32 realizamos uma fusão das leituras dos sensores

através de um filtro complementar descrito na equação 37.

𝑞 𝑒𝑠𝑡 ,𝑡𝐸𝑆 = 𝛾𝑡 𝑞 ∇,𝑡𝐸

𝑆 + 1 − 𝛾𝑡 𝑞𝑡,𝜔𝐸𝑆 (37)

Onde 𝛾𝑡 é uma grandeza definida com valores entre 0 e 1. Madgwick (2010)

esclarece que esta grandeza apresenta um valor ótimo quando a taxa de

divergência de 𝑞𝑡 ,𝜔𝐸𝑆 é igualada a taxa de convergência de 𝑞 ∇,𝑡𝐸

𝑆 , determinada por 𝛽.

Sabendo-seque a taxa de convergência 𝑞 ∇,𝑡𝐸𝑆 não possui um limite superior,

ela pode ser assumida como um valor muito grande, logo portanto 𝜇𝑡 também pode

Page 51: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

52

ser considerado como tendo um valor muito grande. Levando em consideração

estas hipóteses simplificamos a equação 37 para a 38.

𝑞 𝑒𝑠𝑡 ,𝑡𝐸

𝑆 = 𝑞 𝑒𝑠𝑡 ,𝑡−1𝐸𝑆 + 𝑞 𝜔 ,𝑡 − 𝛽

∇𝑓

∇𝑓 𝐸𝑆 ∆𝑡

(38)

Levando em conta a distorção magnética presente no sistema do quadcopter,

o filtro de Madgwick propõe uma correção do campo magnético da terra através de

uma variável 𝑕 𝑡𝐸 , descrito na equação 29, que representa este campo no frame da

terra medido em um tempo t.

𝑕 𝑡𝐸 = 0 𝑕𝑥 𝑕𝑦 𝑕𝑧 = 𝑞 𝑒𝑠𝑡 ,𝑡−1𝐸

𝑆 × 𝑚 𝑡𝑆 × 𝑞 𝑒𝑠𝑡 ,𝑡−1

∗𝐸𝑆 (39)

Este novo parâmetro permite que os elementos de erro presentes na mensura

do campo magnético da Terra possam ser corrigidos se 𝑕 𝑡𝐸 e 𝑏 .

𝐸 forem da mesma

inclinação. Logo tem-se que:

𝑏 .

𝐸 = 0 𝑕𝑥2 + 𝑕𝑦

2 0 𝑕𝑧 (40)

Para o drift do offset do giroscópio utiliza-se um quaternion normalizado que

contém o erro estimado na taxa de variação de orientação, determinando o erro

sistemático através de:

𝜔𝜖 ,𝑡𝑆 = 2 𝑞 𝑒𝑠𝑡 ,𝑡−1

∗𝐸𝑆 × 𝑞 𝜖 ,𝑡𝐸

𝑆 (41)

O valor do offset no tempo t pode ser determinado através da integração

discreta de 𝜔𝜖 ,𝑡𝑆 , que pode ser escrita como:

𝜔𝑏 ,𝑡𝑆 = 𝜁 𝜔𝜖 ,𝑡

𝑆

𝑡

∆𝑡 (42)

Baseando-se nas equações 42, 39 e 38 constrói-se um diagrama de blocos

que indica uma malha semelhante à aquela ilustrada na figura 18.

Page 52: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

53

Figura 18: Digrama de blocos representando o MARG de Madgwick

Fonte: Adaptado de Magdwick (2010)

Page 53: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

54

4 METODOLOGIA

Pelo fato deste trabalho tratar de um objetivo que solicita relativa

interdisciplinaridade de conhecimentos, partimos das conceituações teórica,

matemática e computacional, como forma de nortear a sequência de opções mais

adequadas a um bom resultado. Deste ponto em diante, os esforços estão na

transposição das soluções teóricas e virtuais para o sistema real, através das

seguintes etapas:

a) Diagramação mecânica e cinemática da estrutura física do aeromodelo,

suas características sobre capacidade de sustentação e estabilidade;

b) Implementação do algoritmo de controle e sua utilização em plataforma

de um grau de liberdade.

c) Parametrização do algoritmo de interfaceamento sensores-

microcontrolador;

d) Construção do circuito de desenvolvimento agregado ao

microcontrolador, estrutura do aeromodelo com quatro rotores e seus respectivos

ESCs (Electronic Speed Controllers) e da plataforma de teste para sustentação.

e) Complementação da estrutura física para seus quatro rotores no

modelo completo do quadcopter;

f) Simulação em ambiente computacional e otimização das equações

dinâmicas e seus referentes coeficientes de ganho;

g) Simulação em ambiente computacional, otimização do controle, seus

referentes coeficientes de ganho dos controladores;

h) Implementação do algoritmo de controle na plataforma do quadcopter.

i) Análise de resultados e conclusão.

A metodologia empregada em cada etapa será descrita a seguir.

4.1 Diagramação mecânica

Baseando-se na análise feita sobre as equações 24 e 25 da seção 3.4 nota-

se que a análise da melhor configuração para as hélices deve ser baseada em

particularidades do aeromodelo, como, potência e faixa de eficiência dos motores,

tipo de bateria, tempo de resposta e peso. Abaixo, uma estimativa do peso do

conjunto na tabela 1:

Page 54: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

55

Tabela 1: Peso estimado do protótipo

Componentes estruturais: Peso [g]: Quantidade: Conjunto[g]:

Motores 39 4 156

ESCs 34 4 136

Hélices 10 4 40

Spinners 12 4 48

Microcontrolador 35 1 35

Sensores 5 1 5

Hastes 74.3 2 148.6

Junção estrutural (frame) 58 2 116

Junções estruturais (motores) 2.6 4 10.4

Total [g]: 695

Fonte: Elaborado pelos autores

Sendo assim toda a estrutura do protótipo poderá alcançar 695 gramas,

peso adequado à capacidade dos motores CF2822 equipados com hélices de dez

polegadas de diâmetro por Cinco polegadas de passo, segundo recomendações do

fabricante, como visto na figura 19.

Figura 19: Especificações dos motores

Fonte: Yin Yan Model, 2014

Page 55: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

56

Uma análise mais completa das condições de funcionamento do conjunto de

propulsores, tanto para modo de vôo em sustentação quanto para regime de

empuxo máximo, foi feita pelo site eCalc, com índice de incerteza de dez por

cento.Quanto à autonomia, cerca de três a oito minutos de vôo ao aeromodelo,

dependendo do tipo de voo (eCalc, 2014). Eficiência, temperatura, corrente e demais

dados constantes no anexo A.

A estrutura de um quadcopter é baseada em dois eixos cruzados contendo

um propulsor em cada extremidade. Sendo que, seu centro de massa deve estar

coincidente ao seu centro geométrico. O par de rotores de um eixo gira em sentido

contrário ao par do eixo transverso,de forma que os momentos de reação gerados

pelo giro dos motores tendem a se anular e aumentando-se a estabilidade para a

guinada.

4.2 Implementação para um grau de liberdade

Como forma de se iniciar os estudos da cinemática do sistema, uma

estrutura que modela um grau de liberdade, foi estudada de forma a propiciar a

análise das respostas do sistema contendo apenas dois propulsores (figura 20).

Figura 20: Estrutura de modelamento em um grau de liberdade

Fonte: Elaborado pelos autores

Page 56: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

57

Como passo inicial, foi implementado através do ambiente de programação

visual Processing (Processing, 2014), em conjunto com o compilador Arduino,

disponibilizado pela Atmel, um algoritmo de controle PID clássico, à estrutura

composta por apenas dois propulsores. De forma a se obter um sistema pouco

agressivo e capaz de se estabilizar, em seu um grau de liberdade, os coeficientes de

proporcionalidade, integrativo e derivativo, foram de 0,03 (todos os três). Na figura

21, pode-se perceber o set-point de zero grau como a reta horizontal, a resposta

como inclinação variando em torno do set-point, e,a escala de saída em um dos

motores no gráfico mais abaixo.

Figura 21: Curvas de entrada e saída

Fonte: Elaborado pelos autores

Uma resposta melhor veio através da ferramenta computacional Simulink,

contida no software MatLab, após a filtragem mais sintonizada de leitura do sensor e

da equalização dos motores, feita por uma função exponencial em um dos motores,

foi possível o alcance de um sistema rápido, que nos trouxe apenas uma oscilação

após cada entrada degrau. O diagrama no Simulink pode ser visto na figura 22.

Os parâmetros encontrados para o controlador PID foram de 0,065; 0,01 e 0,016

para os ganhos proporcional, integral e derivativo respectivamente.

Page 57: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

58

Figura 22: Diagrama em um grau de liberdade no Simulink

Fonte: Elaborado pelos autores

O que se percebeu sob a influência do ramo integrativo, foi que, mesmo atuando

sob mínimos coeficientes, este gerava um atraso na reposta do sistema.

Page 58: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

59

Figura 23: Leituras dos sinais do diagrama de blocos

Fonte: Elaborado pelos autores

O controle gerado pelo diagrama de blocos pode ser visto nos gráficos da

figura 23. Onde praticamente inutiliza-se o fator integrativo, o que viabilizou um

sistema rápido e robusto, apesar da incerteza gerada quando a inclinação alcançava

ângulos muito próximos de 0 graus. Seu funcionamento pode ser visto através do

link: <http://youtu.be/sysebtA2ioc>.

4.3 Parametrização do algoritmo de sensoriamento

Neste projeto, se optou pelo módulo de vôo 10DOF (Tem Degrees Of

Freedom) modelo GY88, como equipamento de sensoriamento principal. O GY88 é

uma pequena placa de circuito eletrônico SMC (Surface Mounted Components), que

conta com acelerômetro e giroscópio embutidos no circuito integrado MPU6050,

magnetômetro modelo HMC5883l e o barômetro BMP085. Devido à relevante

Page 59: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

60

quantidade de sensores acomodados em uma mesma plataforma, a comunicação

deste equipamento com o MCU (Micro Controller Unit) é feita através do protocolo

I2C (Inter Integrated Circuits). Basicamente, este código trabalha com dois tipos de

sinais entre os CIs, o sinal de clock (gerado pelo CI mestre) que sincroniza a troca

de informações, e o sinal de dados, este bidirecional.

Para estimativas de posicionamento, o sistema deve ser realimentado com

sinais de rotação e translação. Neste caso, a fusão de sensores entre acelerômetro

e giroscópio é uma boa opção para leitura angular. A principal intenção, em uma

fusão de sensores, é promover a iteração entre as magnitudes medidas por cada

sensor individualmente, e correlacioná-las de forma a manter uma resposta

aceitável, mesmo que ocorram erros em alguma leitura, tornando o sistema menos

sensível e mais preciso (VIEIRA, 2011).

Integrado ao módulo de voo há o acelerômetro digital de três eixos

ADXL345, com capacidade para perceber acelerações de -g à +g. Tomando como

premissa que o acelerômetro esteja exatamente ao centro da estrutura, pode-se

dizer que variações de ângulo em torno de seus próprios eixos não seriam

percebidas pelo mesmo. Mas devido ao alto índice de vibrações do sistema, gerado

pelos motores, há medições indesejadas sendo captadas. Considerando então, que

filtros digitais serão aplicados de forma à reduzir as leituras equivocadas, podemos

teorizar sobre um cálculo que descarta estas vibrações.

Sabendo-se que a aceleração da gravidade é de 9,81 m/s2, o somatório das

componentes trigonométricas deste vetor pode estimar a inclinação.

(ax2(t) + az2(t))1/2 = g (43)

O giroscópio (Angular Rate Sensor), modelo L3G4200D, faz medidas da

velocidade de rotação. Devido à necessidade de contínuas integrais no tempo, para

transformar a leitura da velocidade angular em deslocamento angular, pequenos

desvios são incorporados à leitura, o que torna o giroscópio pouco preciso ao longo

do tempo.

θn+1 = θn ∫ (dθ/dt) dt (44)

Page 60: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

61

Como forma de superação de grande parte das fontes de imprecisão

características de cada sensor, a fusão sensorial pode ser entendida com um grau

mínimo de complexidade, como na figura 24:

Figura 24: Diagrama de tratamento de sinal

Fonte: Elaborado pelos autores

Auxiliando o acelerômetro e o giroscópio, temos a bussola digital MCS

(Magnetic Compass Sensor), modelo HMC5883L, pode-se obter o ângulo de

Azimute, pela sua percepção do campo magnético da Terra (equação 16).

Heading = arctag (Yh/Xh) (45)

Como feedback da altitude, pode-se ainda, com o sensor de pressão,

modelo BMP085 (Pressure sensor), estimar a altitude com relativa precisão. Tendo

como off-set a altitude a memória da pressão do ponto de decolagem, é possível

gerar um parâmetro de altitude da aeronave a cada tempo. O algoritmo de fusão de

sensores confeccionado para este projeto pode ser visto no anexo B.

Devido a natureza da fabricação dos sensores MEMS têm-se sempre uma

componente de offset, ou bias, presente que provocam erro nas leituras

provenientes destes. Para que se obtenha os dados corretos das mensuras é

necessário realizar uma calibração do sensor para o valor real medido. Para tal

utilizou-se uma coleta de dados através de uma comunicação serial entre o software

MATLAB e a plataforma de desenvolvimento do Arduino.

A calibração é realizada através da mensura e armazenamento dos dados

dos sensores em várias posições, e então utiliza-se uma biblioteca pré definida para

Page 61: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

62

a criar uma superfície de tendência esferoidal. Os parâmetros de interesse para a

esfera calculada são as coordenadas de seu centro, que representam o offset

inerente as medidas do sensor. Para a calibração do magnetômetro e do

acelerômetro obteve-se as figuras 25 e 26.

Figura 25: Calibração do magnetômetro

Fonte: Elaborado pelos autores

Page 62: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

63

Figura 26: Calibração do acelerômetro

Fonte: Elaborado pelos autores

4.4 Circuito de desenvolvimento

O esquema elétrico-eletrônico de um aeromodelo do tipo quadrirotor, como

na maioria dos sistemas autômatos, é construído basicamente em prol da interface

entre controlador, atuadores, sensores e bateria. O circuito de desenvolvimento

deste protótipo se assemelha a este modelo. A bateria fornece energia ao regulador

de tensão, que alimenta o microcontrolador com 5 volts, este por sua vez, energiza

os sensores. Esta mesma bateria fornece energia aos motores através dos ESCs

(figura 27):

Page 63: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

64

Figura 27: Circuito de desenvolvimento

Fonte: Elaborado pelos autores

Os motores brushless necessitam de uma alimentação caracterizada pela

sobreposição de três ondas senoidais defasadas de 120 graus uma da outra. De

forma que, cada uma destas ondas alimente um grupo diferente de enrolamentos.

Esses motores não possuem sensores que facilitem o monitoramento de sua

posição angular ou velocidade, de forma, que seu alimentação eficiente se torna

uma tarefa bastante complexa.

Os ESCs se encarregam de alimentar os motores, conforme recebem o sinal

de controle do microcontrolador, através do fio chamado data. Este sinal é feito

através do código PWM (Pulse-Width Modulation), que ao ter seu duty-cicle variado,

varia a resposta do ESC.

Os ESCs escolhidos são chamados de Simonk, tiveram seu software

desenvolvido por Simon Kirby. Estes controladores foram otimizados para serem

Page 64: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

65

mais rápidos que ESCs normais e se ajustarem melhor ao funcionamento de

quadcopters.

O microcontrolador usado é um Arduino Mega da Atmel, possui um

processador com interface de 8 bits por ciclo, 16MHz de clock e 256KB de memória

flash. Possui ainda, 54 pinos de comunicação com o exterior, dos quais, 15 podem

ser saídas PWM, e 16 entradas analógicas. Sua comunicação com o módulo de voo,

ou IMU, é feita través do código serial I2C, sendo realizada por apenas dois fios.

Onde, um destes é utilizado para determinação do clock de comunicação, feito pelo

dispositivo master, e o outro é utilizado para troca de comandos e dados. Assim, o

microcontrolador pode determinar os parâmetros de sensoriamento e receber as

magnitudes das leituras sensoriais.

4.5 Desenvolvimento da estrutura completa

Para o desenvolvimento deste trabalho considerou-se a montagem da

estrutura do quadcopter do zero, sendo utilizados os seguintes componentes para

sua construção:

a) 2 Hastes tubulares em alumínio com 980mm de comprimento, diâmetro

externo de 10mm e diâmetro interno de 7mm;

b) 1 Arduino Mega 2560.

c) 1 Módulo de sensoriamento de voo IMU GY88;

d) 4 Controladores eletrônico de velocidade (ESCs) Mistery Simonk de 30A;

e) 4 Motores brushless E-Max CF2822 de 1200Kv, Wmax de 203W, 39g;

f) 1 Estrutura usinada de fixação do frame, em nylon, de 70 x 70mm por

20mm.

g) 4 estruturas fixação dos motores em nylon com diâmetro de 28,5mm.

Como forma de fixação central da estrutura, foram utilizadas duas chapas de

nylon, usinadas de forma que o formato cilíndrico das hastes se encaixassem

transversalmente (figura 28). Assim, a montagem garantiu precisão e resistência

necessárias, sem prejudicar o peso total (figura 29).

Page 65: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

66

Figura 28: Estrutura usinada de fixação do frame

Fonte: Elaborado pelos autores

Figura 29: Estrutura de vôo

Fonte: Elaborado pelos autores

Page 66: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

67

Após o estabelecimento das fases iniciais do projeto, uma estrutura de

desenvolvimento para mais graus de liberdade foi montada. Estágio em que o

algoritmo de controle começa a integrar cálculos de resposta para diversos fatores

dinâmicos simultaneamente. Na figura 30, fios de nylon atravessam as hastes

tubulares, como forma de limitação do movimento em vôo. Como pode ser visto

através do link: <http://youtu.be/0dkFosPuuWw>.

Figura 30: Plataforma de desenvolvimento para 5 graus de liberdade

Fonte: Elaborado pelos autores

4.6 Equalização das curvas de ganhos dos motores

Diferenças físicas mínimas entres os componentes dos grupos atuadores são

resultantes dos processos de fabricação e dos materiais de sua composição. Devido

estas discrepâncias, desempenhos também discrepantes são obtidos destes

equipamentos.

Como forma de viabilizar o controle do aeromodelo, deve-se homogeneizar as

curvas de potência dos motores, de forma que não haja discrepância entre os sinais

de controles e as ações realizadas pelos atuadores.

Page 67: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

68

Para tal realizou-se uma sequência medições das forças exercidas pelos

motores em uma balança digital para determinados valores de PWM, enviados para

o ESC do respectivo.

A realização da coleta dos valores implementou-se a montagem exibida na

figura 31, onde todos os motores permanecem desligados exceto aquele que está

oposto ao que encontra-se apoiado na balança digital, de forma a compor a

dinâmica do momento de inércia real da planta.

Figura 31: Montagem executada para as coletas de dados

Fonte: Elaborado pelos autores

Os valores coletados encontram-se dentro da faixa de PWM utilizada para o

controle do quadcopter. Na tabela 1 estão dispostos os resultados obtidos.

Page 68: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

69

Tabela 1: Relação entre o PWM e a força

PWM Motor traseiro Motor direito Motor esquerdo Motor frontal

40 116 104 124 130 45 142 130 150 158 50 166 156 174 186 55 194 180 200 216 60 220 204 228 242 65 246 228 250 262 70 276 260 274 294 75 306 286 304 328

80 334 312 332 358 85 362 342 370 378 90 388 366 392 404 95 416 396 420 436

100 440 416 448 464 Fonte: Elaborado pelos autores

Implementando uma regressão linear para parametrização de uma função

que determina a relação entre a força de empuxo dos atuadores e o PWM obteve-se

os gráficos 1, 2, 3 e 4 para os motores traseiro, direito, esquerdo e frontal

respectivamente.

No canto inferior direito de cada gráfico encontra-se as equações obtidas e a

relação colinear. Observa-se que esta tem seu valor bem próximo de um, indicando

que a estimativa da relação entre a reta e os pontos obtidos possuem uma

aproximação numérica relevante.

Page 69: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

70

Gráfico 1: Força x PWM para o motor traseiro

Fonte: Elaborado pelos autores

Gráfico 2: Força X PWM para o motor direito

Fonte: Elaborado pelos autores

y = 5,487x - 106,7R² = 0,999

0

50

100

150

200

250

300

350

400

450

500

0 20 40 60 80 100 120

Emp

uxo

no

mo

tor

(gf)

PWM

Motor traseiro

Motor traseiro

y = 5,276x - 109,3R² = 0,999

0

50

100

150

200

250

300

350

400

450

0 20 40 60 80 100 120

Emp

uxo

no

mo

tor

(gf)

PWM

Motor direito

Motor direito

Page 70: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

71

Gráfico 3: Força X PWM para o motor Esquerdo

Fonte: Elaborado pelos autores

Gráfico 4: Força X PWM para o motor Esquerdo

Fonte: Elaborado pelos autores

y = 5,426x - 97,84R² = 0,998

0

50

100

150

200

250

300

350

400

450

500

0 20 40 60 80 100 120

Emp

uxo

no

mo

tor

(gf)

PWM

Motor esquerdo

Motor esquerdo

y = 5,549x - 91,84R² = 0,999

0

50

100

150

200

250

300

350

400

450

500

0 20 40 60 80 100 120

Emp

uxo

do

mo

tor

(gf)

PWM

Motor frontal

Motor frontal

Page 71: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

72

Pela alta elação colinear, há uma linearização das curvas de ganho dos

motores realizada pelo software de controle dos ESCs. O que viabiliza uma

equalização menos complexa dos grupos atuadores.

4.7 Simulação computacional

Para a determinação dos coeficientes dos controladores PID do quadcopter

foi necessário levantar alguns parâmetros da estrutura do quadcopter. Devido a sua

geometria mais trabalhada construiu-se uma réplica da aeronave no software CAD

SolidWorks versão 2012 de 64 bits, podendo essa ser vista na figura 32. O algoritmo

do programa permite o cálculo do tensor de inércia, dado a inserção correta dos

materiais de cada componente.

Figura 32: Modelo do quadcopter construído no SolidWorks

Fonte: Elaborado pelos autores

Para a estrutura do quadcopter obteve-se o tensor em kg.m2 descrito na

matriz da equação 46.

Page 72: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

73

𝐼𝑥𝑥 0 00 𝐼𝑦𝑦 0

0 0 𝐼𝑧𝑧

= 0,02257 0 0

0 0,02257 00 0 0,04457

(46)

Para o parâmetro 𝐽𝑇𝑃 do cálculo dos efeitos giroscópicos basta usar o teorema

dos eixos paralelos, logo têm-se que:

𝐽𝑇𝑃 = 𝐼𝑧𝑧 + 𝑚. 𝑟2 = 0,256797 𝑘𝑔. 𝑚2 (47)

Onde m é a massa do quadcopter e r é a distância do centro do eixo do motor

ao centro de gravidade do quadcopter.

Para a simulação do quadcopter utilizou-se o toolbox incluso no MATLAB, o

Simulink. Os principais setores do diagrama de blocos é discutida e explicada no

texto seguinte.

Dado o levantamento da relação entre o empuxo e a variável de PWM do

microcontrolador, torna-se desnecessário determinar o coeficiente de empuxo das

hélices, permitindo-se modelar os atuadores como descrito no diagrama de blocos

presente na figura 33.

O diagrama anterior representa uma simplificação, do atuador constituído do

ESC e do motor brushless. Dada a própria construção eletrônica do ESC, não há

como o existir valores de empuxo negativo, logo existe uma zona morta para todos

os valores da força exercida pelo motor inferior a zero. Dada as equações dos

gráficos 1, 2, 3 e 4 determinou-se quando a zona morta termina, iniciando então o

controle do quadcopter. Os ganhos presentes no diagrama de blocos são o

coeficiente linear obtidos na linha de tendência.

Page 73: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

74

Figura 33: Blocos do atuador

Fonte: Elaborado pelos autores

Seguindo a equação 23, programou-se um bloco que representa a dinâmica

do quadcopter, que terá como entradas os parâmetros físicos discutidos no capítulo

3. Os ângulos de rolagem, arfagem, guinada, e as forças exercidas por cada motor.

As saídas são um vetor contendo as acelerações lineares e angulares nas

coordenadas do corpo e a matriz de rotação, que realiza a transformação das

coordenas do corpo para as inerciais. O código implementado para simulação pode

ser visto no Anexo D.

Para evitar que o haja translação no eixo X e Y no sistema inercial antes da

decolagem do quadrotor, aproximando-se então do sistema real,implementou-se

uma condição de que até que a aceleração de Z ultrapasse zero pela primeira vez

não haja passagem do sinal calculado das acelerações, permanecendo assim o

quadcopter, estático. Para tal, utilizou-se um detector de valor para a aceleração de

Z, um flip-flop tipo memória e um switch tal como diagramado na figura 34.

Page 74: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

75

Figura 34: Blocos do atuador

Fonte: Elaborado pelos autores

Dado que as velocidades angulares estarão no body frame é necessário

utilizar uma transformação através da matriz T_Θ da equação 13 discutida no

capítulo 3. A integral do vetor de saída desta transformação serão os ângulos de

rolagem arfagem e guinada.

Através da ferramenta Simulink simulou-se o quadcopter calibrando

manualmente os valores dos coeficientes dos PIDs para a altitude e os ângulos de

orientação até que estes estivessem dentro de uma reposta desejada.

Finalmente, a simulação para a estrutura com quatro rotores em voo,

considerando rolagem, arfagem, guinada e altitude, demonstrou a viabilidade das

equações de modelamento e controle. Como pode ser visto nas figuras 35 e 36, o

aeromodelo apresentou guinada estável com um transitório desconsiderável (traço

praticamente reto), pequeno overshoot para altura após a decolagem (traço mais à

cima), um pequeno número de oscilações transitórias para rolagem e arfagem.

Page 75: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

76

Figura 35: Respostas para Z e rotações

Fonte: Elaborado pelos autores

Figura 36: Reposta dos motores (em PWM)

Fonte: Elaborado pelos autores

4.8 Controle

Após estudo do equacionamento dinâmico do modelo e simulação de sua

veracidade, foram definidos os parâmetros de interesse no controle do protótipo.

Passo seguinte, visou-se alcançar razoável capacidade de leitura destas variáveis,

partindo das rotações do corpo.

Mais uma vez, iniciou-se pelo controle de um grau de liberdade, e, fazendo a

leitura da influência das forças dos empuxos sob as angulações, foi possível obter a

Page 76: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

77

faixa ótima de atuação. Assim como do coeficiente proporcional (kp) e derivativo

(kd). Lembrando que, devido à ampla gama de velocidades de rotação dos motores,

isso só foi possível devido à linearização de suas curvas de ganho.

Implementado o código de controle em linguagem C, utilizou-se portas de

leitura e conversão analógico/digital para variar os parâmetros de controle através

de potenciômetros de alta precisão, simultaneamente ao funcionamento do

quadcopter.

Ajustados os coeficientes para equilíbrio em torno do eixo X, o mesmo foi feito

para o eixo Y. Em seguida, a aplicação do controle na rotação em Z, através da

discrepância entre a base de força dos atuadores de uma haste para os de outra.

Para o controle de altitude, foi aplicado um controle que obedeceu uma

sequência de setpoints definida. Sequência feita de forma que a posição

translacional em Z, da aeronave, fosse suficiente para manter o voo por cerca de 10

segundos e pousar de forma autômata. O código de controle pode ser visto no

anexo E deste trabalho.

Page 77: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

78

5 RESULTADOS

À época de início deste trabalho de conclusão de curso, havia razoável

disponibilidade de trabalhos científicos publicados que abordavam o tema

pretendido. No entanto, a aplicação da Lei de Controle PID à malha de um drone

multirotor foi entendida como novidade.

A primeira considerável conquista deste trabalho foi o estabelecimento da

comunicação entre o microcontrolador e um ESC, dado que não há grande

disponibilidade de biografia sobre seus parâmetros. Construído para receber

comandos digitais do receptor de ondas de rádio, o ESC reconhece sequências

específicas de comandos, faixas de modulação de frequência e de duty-cicles.

Outro ponto relevante, foi o refino do PID em um grau de liberdade, através

do ambiente de desenvolvimento Simulink. O microcontrolador propiciou a interface

entre a gangorra e o computador. Um diagrama bem estruturado trouxe respostas

rápidas e precisas.

O firmware desenvolvido em linguagem C, de forma a manter um loop

eficiente e parâmetros de comando acertados para as faixas de atuação, trouxe o

controle PID para o microcontrolador, o que desvinculou o protótipo do ambiente

computacional.

Através da adaptação da biblioteca FreeIMU, e, da implementação do código

de fusão de sensores, foi obtida a capacidade de leitura dos sensores MEMS. O que

permitiu o sensoriamento necessário ao cálculo de posicionamento.

O êxito em calibrar os pesos de referência das leituras do magnetômetro e do

acelerômetro, foi obtido através do código elaborado em ambiente MatLab. O que

possibilitou uma leitura mais fidedigna dos fenômenos físicos.

Após a construção virtual do modelo equacionado para quatro propulsores, na

visualização do nível estabilidade do voo simulado, foi possível enxergar a atuação

dos coeficientes de controle. Além disto, cita-se a interdependência dos parâmetros

dos diferentes controles, como fator de atenção na composição integral do modelo.

O equilíbrio em voo, desconsideradas ainda as translações, veio com a

aplicação de um algoritmo de controle para três graus de liberdade. O que, devido a

interdependência de atuação existente entre os parâmetros de controle da rotação

em Z, e as rotações em X e Y, somente foi possível diante da adequada aplicação

do equacionamento.

Page 78: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

79

Finalmente, o voo autômato foi alcançado, com uma ultima sintonia de seus

coeficientes, offsets e ganhos, e ainda, com a implementação da sequência de

variação de altitudes monitoradas pelo barômetro. Voo este, possível apenas em

ambiente livre de perturbações externas à planta, devido à sua malha de controle de

baixa robustez.

Page 79: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

80

6 CONCLUSÃO

Este trabalho alcançou sua proposta. A aplicação da Lei de Controle Clássica

é viável para um sistema relativamente rápido e complexo.

A linearização e a variação de equações por máquina de estados, podem

permitir soluções de partes discretas para um sistema dinâmico.

Desde a pesquisa, até a aplicação, para todas as fases concretizadas neste

trabalho foram fomentadas por trabalhos acadêmicos da mais alta excelência. Seja

pelas orientações providas por nossos professores, por livros, artigos científicos,

teses de doutorado, teses de mestrado, e, até mesmo trabalhos de conclusão de

curso, o esforço da comunidade científica nos agraciou com a sustentação do bom

planejamento, no caminho escolhido para a aplicação da teoria.

Concluímos que a ao optar por um módulo de voo comercial, limitamos o

alcance do projeto às capacidades de sensoriamento deste. Por se tratar da parte

fundamental do sistema, quando tratamos de hardware. No momento, o protótipo em

fase de ajuste de coeficientes pode ser visto através do link:

<http://youtu.be/0dkFosPuuWw>. Um vídeo de seu funcionamento será publicado

em breve neste mesmo canal do site YouTube.

Pelos resultados alcançados, concluímos ainda, que a utilização da

ferramenta de controle PID é suficiente para o controle de um drone. Desde que

considerados os devidos cuidados em sua elaboração e suas limitações.

Page 80: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

81

Page 81: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

82

REFERÊNCIAS

ABBASI E.; MAHJOOB M. J.; YAZDANPANAH R. Controlling of Quadrirotor UAV

Using a Fuzzy System for Tuning the PID Gains in Hovering Mode. School of

Mechanical Engineering, University of Tehran, Iran, 2013.

ARDrone. Parrot AR Drone 2.0 GPS Edtion. Disponível em:

<http://ardrone2.parrot.com/>. Acesso em: 21 abr. 2014.

BADRI, Abdellatef E.; SINHA, Jyoti K.; ALBARBAR, Alhussein. A typical filter

design to improve the measured signals from MEMS accelerometer.

Measurement, United Kingdom,vol.43, p. 1425-1430, ago. 2010.

BASTA, Peter O. Quad Copter Flight. California State University, Northridge. Thesis

Eletric Engeneering, 2012, p. 60.

BEARD, R. W. Quadrirotor dynamics and control. Brigham Young University,

2008.

BRESCIANI, Tommaso. Modelling, Identification and Control of a Quadrirotor

Helicopter. Universidade de Lund, Thesis Automation Engeneering, 2008, p. 184.

BOUABDALLAH, Samir. Design and Control of Quadrirotors with Application to

Autonomous Flying. École Polytechnique Fédérale de Lausanne. Lausanne, 2007.

BOUAHBDALLAH, Samir; NOTH, André; SEIGWART, Roland. PID vs LQ Control

Techniques Applied Indoor Micro Quadrirotor. In: Proceedings of 2004 IEEE/RSJ

International Conference On Intelligent Robots and Systems. P. 2451-2456,

2004.

BOUAHBDALLAH, Samir; SIEGWART, Roland. Backstepping and Sliding-mode

Techniques Applied to an Indoor Micro Quadrirotor. In: Proceedings of the 2005

IEEE International Conference on Robotics and Automation, 2005, p. 2247-2252.

Page 82: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

83

BROWN, Robert Grover; HWANG, Patrick Y. C. Introduction to random signals

and applied Kalman filtering. 4 ed. New York: Wiley,2012,p. 101-201.

DEMPSEY, Martin E. Eyes of the Army – U.S. Army Roadmap for Unmanned Aircraft

Systems 2010–2035, United States Army, 9 abr. 2010. Disponível em: <http://www-

rucker.army.mil/usaace/uas/US%20Army%20UAS%20

RoadMap%202010%202035.pdf>. Acesso em: 17 fev. 2014.

DORF, Richard C.; BISHOP, Robert H. Modern Control Systems. 12 ed. Upper

Saddle River, 2008, 1056 p.

eCalc. Multicopter Calculator. Disponível em:

<http://www.ecalc.ch/xcoptercalc.php?ecalc&lang=en>. Acesso em: 19 abr. 2014.

FAZARINC, Zvonko. Z-transform and its application to development of scientific

simulation algorithms. Computer applications in engineering education,

California, Wiley, v. 21, p. 75-88, mar. 2013.

Freescale Semiconductor. Data sheet MMA7360. Rev. 2, oct. 2007.Disponível em:

<http://www.freescale.com/files/sensors/doc/data_sheet/MMA7360L.pdf>. Acesso

em: 1 nov. 2013.

HERNÁNDEZ, Wilmar. Improving the response of an accelerometer by using optimal

filtering. Sensors and Actuators, Madrid, v. 88, p. 198-208, out. 2000.

HOFFMAN, Gabriel H.; et al. Quadrirotor Helicopter Flight Dynamics and Control:

Theory and Experiment. Proceedings of the AIAA Guidance, Navigation and

Control Conference. 2007. Disponível em:

<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.77.9015&rep=rep1&type=

pdf>. Acesso em: 23 de mar. 2014.

JIANG, Jun et al. Control Platform Design and Experiment of a Quadrirotor.

Proceedings of the 32nd Chinese Control Conference. 2013. p. 2974-2979.

Page 83: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

84

KOWNACKI, Cezary. Optimization approach to adapt Kalman filters for the real-time

application of accelerometer and gyroscope signals filtering. In: Digital Signal

Processing, Orlando, v. 21, n.1, p. 131-140, jan. 2011.

LEONG, Bernard Tat Meng; LOW, Sew Ming; OOI, Melanie Po-Leen. Low-Cost

Microcontroller-based Hover Control Design of a Quadcopter. Procedia

Engineering. V. 41, p. 458-464, 2012.

LEONG, Bernard Tar Meng; LOW, Seng Ming; OOI, Melanie Po-Leen; STOCHERO,

Tahiane. G1 Brasil. Segurança da Copa 2014 terá drones da FAB e PF. São Paulo,

2013, disponível em: <http://g1.globo.com/brasil/noticia/2013/03/seguranca-da-copa-

2014-tera-drones-da-fab-e-pf-exercito-estuda-compra.html>. Acesso em: 13 de fev.

2014.

LEISHMAN, J. Gordon. The Bréguet-Richet Quad-Rotor Helicopter of 1907. 2004.

Disponível em: <http://aero.umd.edu/~leishman/Aero/Breguet.pdf>. Acesso em: 17

de mar. 2014.

MADGWICK, Sebastian O.H. An efficient orientation filter for inertial and

inertial/magnetic sensor arrays. 2010. Disponível em: <http://www.x-

io.co.uk/res/doc/madgwick_internal_report.pdf>. Acesso em: 22 de out. 2014.

MAGNUSSEN, Øyvind; OTTESTAD, Morten; HOVLAND, Geir. Experimental

Validation of a Quaternion-based Attitude Estimation

with Direct Input to a Quadcopter Control System. In: International Conference on

Unmanned Aircraft Systems (ICUAS), Atlanta, p. 480-485, maio 2013.

MCCORMICK, W. Barnes. Aeronautics and Flight Mechanics. New York, Wiley, 2

ed., 1995.

NEWCOME, Laurence R. Unmanned Aviation: A brief history of unmanned

aerial vehicles. Virginia, America Institute of Aeronautics and Astronautics, 2004.

PRISACARIU, Victor Adrian; REID, Ian. 3D hand tracking for human computer

Page 84: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

85

interaction. Image and Vision Computing, United Kingdom, v. 30, p. 236-250, jan.

2012.

Processing. Processing 2. Disponível em: <http://www.processing.org/>. Acesso

em: 25 abr. 2014.

QISHUANG, Liu Xinbo. Applications of chirp z transform and multiple modulation

zoom spectrum to pulse phase thermography inspection. NDT and E international,

Beijing, v. 54, p. 1-8, mar. 2013.

RADER, Charles M. On Digital Filtering. IEEE Transactions on Audio and

Electroacoustics, v.16, n. 3, p. 303-314, set. 1968.

RODRIGUES, José. Aeromodelismo teórico e prático. Serviço de Publicações da

Mocidade Portuguesa, 1964.

SABATINI, Angelo Maria. Kalman-Filter-Based Orientation Determination

UsingInertial/Magnetic Sensors: Observability Analysis and

Performance Evaluation. In: Sensors, v. 11, p. 9182-9206, 2011.

SHI, Peng; KAYA, C. Yalcin. Robust Kalman filtering for continuous-time systems

with norm-bounded nonlinear uncertainties. IMA Journal of Mathematical Control

and Information, v. 17, n. 4, p. 363-373, set. 1998.

SICILIANO, Bruno; KATHIB, Oussama. Springer Handbook of Robotics. Berlin, p.

1611, 2008.

STOCHERO, Tahiane. G1 Brasil. Segurança da Copa 2014 terá drones da FAB e

PF. São Paulo, 2013. Disponível em:

<http://g1.globo.com/brasil/noticia/2013/03/seguranca-da-copa-2014-tera-drones-da-

fab-e-pf-exercito-estuda-compra.html>. Acesso em: 13 de Fev. 2014.

Page 85: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

86

TAVAKOLI, Mahmoud; MARQUES, Lino; ALMEIDA, Aníbal T. de. 3DCLIMBER:

Climbing and manipulation over 3D structures. Mechatronics, Coimbra, vol. 21, p.

48-62, set. 2010.

YANG, Aiying; LAI, Junsen; SUN, Yu-nan. A chirp Z transform based software

synchronization method for optical performance monitoring. IEEE Photonics

technology letters, Beijing, v. 23, n. 22, p. 1739-1741, nov. 2011.

Yin Yan Model. Manual E-Max CF2822. Disponível em:

<http://www.http://www.yinyanmodel.com/en/ProductView.asp?ID=58>. Acesso em:

20 apr. 2014.

Page 86: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

87

Page 87: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

88

ANEXOS

ANEXO A - CARACTERÍSTICAS DOS PROPULSORES

Page 88: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

89

Page 89: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

90

ANEXO B - CÓDIGO DE FUSÃO DE SENSORES

//Fusão de sensores pela teoria de MADGWICK AHRS

void MadgwickAHRS(float gx, float gy, float gz, float ax, float ay, float az, float mx,

float my, float mz) {

floatrecipNorm;

float s0, s1, s2, s3;

float qDot1, qDot2, qDot3, qDot4;

floathx, hy;

float _2q0mx, _2q0my, _2q0mz, _2q1mx, _2bx, _2bz, _4bx, _4bz, _2q0, _2q1,

_2q2, _2q3, _2q0q2, _2q2q3, q0q0, q0q1, q0q2, q0q3, q1q1, q1q2, q1q3, q2q2,

q2q3, q3q3;

qDot1 = 0.5f * (-q1 * gx - q2 * gy - q3 * gz);

qDot2 = 0.5f * (q0 * gx + q2 * gz - q3 * gy);

qDot3 = 0.5f * (q0 * gy - q1 * gz + q3 * gx);

qDot4 = 0.5f * (q0 * gz + q1 * gy - q2 * gx);

if(!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f))) {

recipNorm = invSqrt(ax * ax + ay * ay + az * az);

ax *= recipNorm;

ay *= recipNorm;

az *= recipNorm;

recipNorm = invSqrt(mx * mx + my * my + mz * mz);

mx *= recipNorm;

my *= recipNorm;

mz *= recipNorm;

_2q0mx = 2.0f * q0 * mx;

_2q0my = 2.0f * q0 * my;

_2q0mz = 2.0f * q0 * mz;

_2q1mx = 2.0f * q1 * mx;

_2q0 = 2.0f * q0;

_2q1 = 2.0f * q1;

_2q2 = 2.0f * q2;

_2q3 = 2.0f * q3;

_2q0q2 = 2.0f * q0 * q2;

Page 90: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

91

_2q2q3 = 2.0f * q2 * q3;

q0q0 = q0 * q0;

q0q1 = q0 * q1;

q0q2 = q0 * q2;

q0q3 = q0 * q3;

q1q1 = q1 * q1;

q1q2 = q1 * q2;

q1q3 = q1 * q3;

q2q2 = q2 * q2;

q2q3 = q2 * q3;

q3q3 = q3 * q3;

hx = mx * q0q0 - _2q0my * q3 + _2q0mz * q2 + mx * q1q1 + _2q1 * my * q2 +

_2q1 * mz * q3 - mx * q2q2 - mx * q3q3;

hy = _2q0mx * q3 + my * q0q0 - _2q0mz * q1 + _2q1mx * q2 - my * q1q1 + my

* q2q2 + _2q2 * mz * q3 - my * q3q3;

_2bx = sqrt(hx * hx + hy * hy);

_2bz = -_2q0mx * q2 + _2q0my * q1 + mz * q0q0 + _2q1mx * q3 - mz * q1q1 +

_2q2 * my * q3 - mz * q2q2 + mz * q3q3;

_4bx = 2.0f * _2bx;

_4bz = 2.0f * _2bz;

s0 = -_2q2 * (2.0f * q1q3 - _2q0q2 - ax) + _2q1 * (2.0f * q0q1 + _2q2q3 - ay) -

_2bz * q2 * (_2bx * (0.5f - q2q2 - q3q3) + _2bz * (q1q3 - q0q2) - mx) + (-_2bx * q3 +

_2bz * q1) * (_2bx * (q1q2 - q0q3) + _2bz * (q0q1 + q2q3) - my) + _2bx * q2 * (_2bx *

(q0q2 + q1q3) + _2bz * (0.5f - q1q1 - q2q2) - mz);

s1 = _2q3 * (2.0f * q1q3 - _2q0q2 - ax) + _2q0 * (2.0f * q0q1 + _2q2q3 - ay) -

4.0f * q1 * (1 - 2.0f * q1q1 - 2.0f * q2q2 - az) + _2bz * q3 * (_2bx * (0.5f - q2q2 - q3q3)

+ _2bz * (q1q3 - q0q2) - mx) + (_2bx * q2 + _2bz * q0) * (_2bx * (q1q2 - q0q3) + _2bz

* (q0q1 + q2q3) - my) + (_2bx * q3 - _4bz * q1) * (_2bx * (q0q2 + q1q3) + _2bz * (0.5f

- q1q1 - q2q2) - mz);

s2 = -_2q0 * (2.0f * q1q3 - _2q0q2 - ax) + _2q3 * (2.0f * q0q1 + _2q2q3 - ay) -

4.0f * q2 * (1 - 2.0f * q1q1 - 2.0f * q2q2 - az) + (-_4bx * q2 - _2bz * q0) * (_2bx * (0.5f -

q2q2 - q3q3) + _2bz * (q1q3 - q0q2) - mx) + (_2bx * q1 + _2bz * q3) * (_2bx * (q1q2 -

q0q3) + _2bz * (q0q1 + q2q3) - my) + (_2bx * q0 - _4bz * q2) * (_2bx * (q0q2 + q1q3)

+ _2bz * (0.5f - q1q1 - q2q2) - mz);

Page 91: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

92

s3 = _2q1 * (2.0f * q1q3 - _2q0q2 - ax) + _2q2 * (2.0f * q0q1 + _2q2q3 - ay) +

(-_4bx * q3 + _2bz * q1) * (_2bx * (0.5f - q2q2 - q3q3) + _2bz * (q1q3 - q0q2) - mx) +

(-_2bx * q0 + _2bz * q2) * (_2bx * (q1q2 - q0q3) + _2bz * (q0q1 + q2q3) - my) + _2bx

* q1 * (_2bx * (q0q2 + q1q3) + _2bz * (0.5f - q1q1 - q2q2) - mz);

recipNorm = invSqrt(s0 * s0 + s1 * s1 + s2 * s2 + s3 * s3);

s0 *= recipNorm;

s1 *= recipNorm;

s2 *= recipNorm;

s3 *= recipNorm;

qDot1 -= beta * s0;

qDot2 -= beta * s1;

qDot3 -= beta * s2;

qDot4 -= beta * s3;

}

q0 += qDot1 * (1.0f / sampleFreq);

q1 += qDot2 * (1.0f / sampleFreq);

q2 += qDot3 * (1.0f / sampleFreq);

q3 += qDot4 * (1.0f / sampleFreq);

recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3);

q0 *= recipNorm;

q1 *= recipNorm;

q2 *= recipNorm;

q3 *= recipNorm;

}

//ALGORITIMO RÁPIDO DE CALCULO DO INVERSO DO MÓDULO

float invSqrt(float x) {

float halfx = 0.5f * x;

float y = x;

long i = *(long*)&y;

i = 0x5f3759df - (i>>1);

y = *(float*)&i;

y = y * (1.5f - (halfx * y * y));

return y;

}

Page 92: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

93

Page 93: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

94

ANEXO C - CÓDIGO DE CALIBRAÇÃO DO IMU

flag=0;

[arduino.s,flag]=serialcomm('COM6',115200)

if flag==1

statusbox=waitbar(0,'Gire o magnetometro em torno de seus

eixos','Name','Calibração');

tic;

t_stop=40;

arduino.mode='M';

i=1;

whiletoc<=t_stop

fprintf(arduino.s,arduino.mode);

magn(i,1)=fscanf(arduino.s,'%f');

magn(i,2)=fscanf(arduino.s,'%f');

magn(i,3)=fscanf(arduino.s,'%f');

accel(i,1)=fscanf(arduino.s,'%f');

accel(i,2)=fscanf(arduino.s,'%f');

accel(i,3)=fscanf(arduino.s,'%f');

subplot(1,2,1);

scatter3(magn(i,1),magn(i,2),magn(i,3));

hold on

axis equal

title('Magnetometro');

subplot(1,2,2);

title('acelerômetro');

scatter3(accel(i,1),accel(i,2),accel(i,3));

hold on

axis equal

i=i+1;

waitbar(toc/t_stop,statusbox);

end

close(statusbox);

closeSerial;

Page 94: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

95

[MC,MR]=ellipsoid_fit([magn(:,1),magn(:,2),magn(:,3)],3);

[AC,AR]=ellipsoid_fit([accel(:,1),accel(:,2),accel(:,3)],3);

[MX,MY,MZ]=ellipsoid(MC(1),MC(2),MC(3),MR(1),MR(2),MR(3));

[AX,AY,AZ]=ellipsoid(AC(1),AC(2),AC(3),AR(1),AR(2),AR(3));

view(3)

subplot(2,2,1)

hold on

title('Magnetometro')

scatter3(magn(:,1),magn(:,2),magn(:,3))

scatter3(MC(1),MC(2),MC(3))

mesh(MX,MY,MZ)

scatter3(MC(1),MC(2),MC(3))

subplot(1,2,2)%

hold on

title('acelerômetro');

scatter3(accel(:,1),accel(:,2),accel(:,3))

mesh(AX,AY,AZ)

scatter3(AC(1),AC(2),AC(3))

end

Page 95: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

96

ANEXO D - CÓDIGO DE SIMULAÇÃO

function [Rbe ,Vb_dot] = calcaccelaration( I,d,l,Jtp,m,U,rpy,Vb )

Vb_dot=zeros([6,1]);

OB=zeros([6,4]);

%Função de calculo das acelerações do quadcoptero no bodyframe

% Retorna as acelerações baseados nas entradas

%rpy = vetor contendo os angulos de roll pitch yaw

%vetor contendo os momentos de inércia

%d = coeficiente de arrasto

%l = comprimento da distância entre o eixo do motor ao CG do quadrotor

%Jtp = momento de inércia em relação ao eixo do motor;

%m = massa do quadcopter

%Vb = vetor com as velocidades angulares e lineares atuais do quadcopter

%U = Variavel de controle que contem as velocidades dos respectivos rotores

%. Matriz inercial do quadcopter

Mb=[m*eye(3) zeros(3);zeros(3) I];

%Matrizes de rotação que relacionam o frame inercial com o do quacopter

Rx=rotx(rpy(1)*180/pi);

Ry=roty(rpy(2)*180/pi);

Rz=rotz(rpy(3)*180/pi);

Rbe=Rz*Ry*Rx;

%.Gravidade

g= 9.80665;

Fg=[Rbe'*[0 0 -m*g]' ;0; 0; 0];

%Força de coriolis

Cv=[zeros(3) -m*skew(Vb(1:3)); zeros(3) -skew(I*Vb(4:6))];

%.Calculo da força exercida pelos rotores do quad

UB=[zeros([2,4]);1 1 1 1;0 -1 0 1;-1 0 1 0;-d d -d d]*U;

%Calcúlo dos efeitos giroscópicos

OB=Jtp*[zeros(3,4);Vb(5) -Vb(5) Vb(5) -Vb(5);-Vb(6) Vb(6) -Vb(6)

Vb(6);zeros(1,4)]*U;

%Calcula as acelerações no body frame

Vb_dot=inv(Mb)*(-Cv*Vb+Fg+UB+OB);

Page 96: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

97

Page 97: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

98

ANEXO E - CÓDIGO DE CONTROLE

//Pontifícia Universidade Católica de Minas Gerais

//Trabalho de Conclusão de Curso em Engenharia Mecatrônica

//Daniel de Castro Ribeiro

//Nicolas Ives Roque Pacheco

//*****************PID_QUADCOPTER********************

// Includes

#include <ADXL345.h>

#include <bma180.h>

#include <HMC58X3.h>

#include <ITG3200.h>

#include <MS561101BA.h>

#include <I2Cdev.h>

#include <MPU60X0.h>

#include <EEPROM.h>

#include <Servo.h>

#include "DebugUtils.h"

#include "CommunicationUtils.h"

#include "FreeIMU.h"

#include <Wire.h>

#include <SPI.h>

// Defines

#define BMP085_ADDRESS 0x77

// Calibration values

int ac1;

int ac2;

int ac3;

unsigned int ac4;

unsigned int ac5;

unsigned int ac6;

int b1;

int b2;

int mb;

Page 98: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

99

int mc;

int md;

//Read variables

int raw_values[9];

float ypr[3];

// yaw = ypr[0], pitch = ypr[1], roll = ypr[2]

float val[9];

long b5;

const unsigned char OSS = 0;

//Set the FreeIMU object

FreeIMU my3IMU = FreeIMU();

//Controll variables

float SetpointR = -4;

float SetpointP = 0;

float SetpointY = 0;

float SetpointZ;

float kp = 0.30;

float kd = 2.50;

float kpY = 0;

float kdY = 0;

float GanhoR = 0.91;

float GanhoP = 0.97;

float GanhoY = 0;

float OffsetR = 5.13;

float OffsetP = 2.70;

int Base = 55;

float Yaw;

float Pitch;

float Roll;

int OutputVec[10];

int OutputRate;

Page 99: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

100

int i, j;

unsigned long tempo;

float erroR, erroP, erroY;

float deltaErroR, deltaErroP, deltaErroY;

float erroAnteriorR, erroAnteriorP, erroAnteriorY;

float PR, IR, DR, PP, IP, DP, PY, IY, DY;

int PIDR, PIDP, PIDY;

float deltaTempo;

float tempoAnterior;

float Alight = 1.50;

float Ground;

const int P8 = A8;

const int P9 = A9;

const int P10 = A10;

const int P11 = A11;

int Potentiometer;

float Temperature, Pressure, Altitude;

Servo servoR;

Servo servoL;

Servo servoF;

Servo servoB;

//***************SETUP*****************

void setup()

{

Serial.begin(115200);

Wire.begin();

ac1 = bmp085ReadInt(0xAA);

ac2 = bmp085ReadInt(0xAC);

ac3 = bmp085ReadInt(0xAE);

ac4 = bmp085ReadInt(0xB0);

ac5 = bmp085ReadInt(0xB2);

ac6 = bmp085ReadInt(0xB4);

b1 = bmp085ReadInt(0xB6);

b2 = bmp085ReadInt(0xB8);

Page 100: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

101

mb = bmp085ReadInt(0xBA);

mc = bmp085ReadInt(0xBC);

md = bmp085ReadInt(0xBE);

delay(5);

//Parameter enable or disable fast mode

my3IMU.init();

delay(5);

servoL.attach(47);

delay(30);

servoR.attach(53);

delay(30);

servoF.attach(51);

delay(30);

servoB.attach(49);

delay(30);

servoL.write(5);

delay(15);

servoR.write(5);

delay(15);

servoF.write(5);

delay(15);

servoB.write(5);

delay(3500);

}

void loop()

{

//Get Baro

Temperature = bmp085GetTemperature(bmp085ReadUT());

Pressure = bmp085GetPressure(bmp085ReadUP());

Altitude = calcAltitude(Pressure);

//Reset height

SetpointZ = Altitude;

Ground = Altitude;

//Get Accel + Gyro

Page 101: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

102

my3IMU.getYawPitchRoll(ypr);

Roll = ypr[2];

Pitch = ypr[1];

Yaw = ypr[0];

//Sinc

tempo = millis();

deltaTempo = tempo - tempoAnterior;

tempoAnterior = tempo;

if (tempo < 10000){

servoL.write(40);

servoR.write(40);

servoB.write(40);

servoF.write(40);

goto end;

}

if (tempo > 10000 & tempo < 20000){

SetpointZ = 1.5;

}

if (tempo > 20000){

SetpointZ = Ground + Alight;

Alight = Alight - 0.02;

if (tempo > 40000){

servoL.write(5);

servoR.write(5);

servoB.write(5);

servoF.write(5);

goto end;

}

//*************************YAW*****************************

//_____P_____YAW

erroY = Yaw - SetpointY;

PY = erroY * kpY;

//_____D_____YAW

deltaErroY = (erroY - erroAnteriorY);

Page 102: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

103

erroAnteriorY = erroY;

DY = deltaErroY * kdY;

//_____PID_____YAW

PIDY = PY + DY;

if (PIDY > 20){

PIDY = 20;

}

if (PIDY < -20){

PIDY = -20;

}

//*************************ROLL*****************************

//_____P_____ROLL

erroR = Roll - SetpointR;

PR = erroR * kp;

//_____D_____ROLL

deltaErroR = (erroR - erroAnteriorR);

erroAnteriorR = erroR;

DR = deltaErroR * kd;

//_____PID_____ROLL

PIDR = PR + DR;

if (PIDR > 20){

PIDR = 20;

}

if (PIDR < -20){

PIDR = -20;

}

i = (Base + PIDR);

j = (GanhoR * (Base - PIDR)) + OffsetR;

servoR.write(i - PIDY - GanhoY);

servoL.write(j - PIDY - GanhoY);

//************************PITCH***************************

//_____P_____PITCH

erroP = Pitch - SetpointP;

PP = erroP * kp;

Page 103: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

104

//_____D_____PITCH

deltaErroP = (erroP - erroAnteriorP);

erroAnteriorP = erroP;

DP = deltaErroP * kd;

//_____PID_____PITCH

PIDP = PP + DP;

if (PIDP > 20){

PIDP = 20;

}

if (PIDP < -20){

PIDP = -20;

}

i = (Base + PIDP);

j = (GanhoP * (Base - PIDP)) + OffsetP;

servoB.write(i + PIDY + GanhoY);

servoF.write(j + PIDY + GanhoY);

end:

}

//*********************END**LOOP****************************

// Calculate temperature in deg Celsius

float bmp085GetTemperature(unsigned int ut){

long x1, x2;

x1 = (((long)ut - (long)ac6)*(long)ac5) >> 15;

x2 = ((long)mc << 11)/(x1 + md);

b5 = x1 + x2;

float temp = ((b5 + 8)>>4);

temp = temp /10;

return temp;

}

// Calculate pressure given up

long bmp085GetPressure(unsigned long up){

long x1, x2, x3, b3, b6, p;

unsigned long b4, b7;

b6 = b5 - 4000;

Page 104: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

105

// Calculate B3

x1 = (b2 * (b6 * b6)>>12)>>11;

x2 = (ac2 * b6)>>11;

x3 = x1 + x2;

b3 = (((((long)ac1)*4 + x3)<<OSS) + 2)>>2;

// Calculate B4

x1 = (ac3 * b6)>>13;

x2 = (b1 * ((b6 * b6)>>12))>>16;

x3 = ((x1 + x2) + 2)>>2;

b4 = (ac4 * (unsigned long)(x3 + 32768))>>15;

b7 = ((unsigned long)(up - b3) * (50000>>OSS));

if (b7 < 0x80000000)

p = (b7<<1)/b4;

else

p = (b7/b4)<<1;

x1 = (p>>8) * (p>>8);

x1 = (x1 * 3038)>>16;

x2 = (-7357 * p)>>16;

p += (x1 + x2 + 3791)>>4;

long temp = p;

return temp;

}

// Read 1 byte from the BMP085 at 'address'

char bmp085Read(unsigned char address)

{

unsigned char data;

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(address);

Wire.endTransmission();

Wire.requestFrom(BMP085_ADDRESS, 1);

while(!Wire.available());

return Wire.read();

}

Page 105: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

106

// Read 2 bytes from the BMP085

int bmp085ReadInt(unsigned char address)

{

unsigned char msb, lsb;

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(address);

Wire.endTransmission();

Wire.requestFrom(BMP085_ADDRESS, 2);

while(Wire.available()<2);

msb = Wire.read();

lsb = Wire.read();

return (int) msb<<8 | lsb;

}

// Read the uncompensated temperature value

unsigned int bmp085ReadUT(){

unsigned int ut;

// Write 0x2E into Register 0xF4

// This requests a temperature reading

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(0xF4);

Wire.write(0x2E);

Wire.endTransmission();

delay(5);

// Read two bytes from registers 0xF6 and 0xF7

ut = bmp085ReadInt(0xF6);

return ut;

}

// Read the uncompensated pressure value

unsigned long bmp085ReadUP(){

unsigned char msb, lsb, xlsb;

unsigned long up = 0;

// Request a pressure reading w/ oversampling setting

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(0xF4);

Page 106: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

107

Wire.write(0x34 + (OSS<<6));

Wire.endTransmission();

// Wait for conversion, delay time dependent on OSS

delay(2 + (3<<OSS));

// Read register 0xF6 (MSB), 0xF7 (LSB), and 0xF8 (XLSB)

msb = bmp085Read(0xF6);

lsb = bmp085Read(0xF7);

xlsb = bmp085Read(0xF8);

up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8)

| (unsigned long) xlsb) >> (8-OSS);

return up;

}

void writeRegister(int deviceAddress, byte address, byte val) {

Wire.beginTransmission(deviceAddress); // start transmission to device

Wire.write(address); // send register address

Wire.write(val); // send value to write

Wire.endTransmission(); // end transmission

}

int readRegister(int deviceAddress, byte address){

int v;

Wire.beginTransmission(deviceAddress);

Wire.write(address); // register to read

Wire.endTransmission();

Wire.requestFrom(deviceAddress, 1); // read a byte

while(!Wire.available()) {

}

v = Wire.read();

return v;

}

float calcAltitude(float pressure){

float A = pressure/101325;

float B = 1/5.25588;

float C = pow(A,B);

C = 1 - C;

Page 107: Controle De Estabilidade de Aeromodelo Tipo Quadcopter Autômato Por Lei De Controle PID

108

C = C /0.0000225577;

return C;

}