universidade federal do paranÁ departamento de … · de controle fuzzy envolvidos no...

55
UNIVERSIDADE FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA ELÉTRICA João Luiz Ferreira Enomoto Controle de Inclinação Utilizando Lógica Fuzzy CURITIBA 2010

Upload: truongkiet

Post on 28-Jan-2019

215 views

Category:

Documents


2 download

TRANSCRIPT

UNIVERSIDADE FEDERAL DO PARANÁ

DEPARTAMENTO DE ENGENHARIA ELÉTRICA

João Luiz Ferreira Enomoto

Controle de Inclinação Utilizando Lógica Fuzzy

CURITIBA

2010

ii

João Luiz Ferreira Enomoto

Controle de Inclinação Utilizando Lógica Fuzzy

Trabalho apresentado como avaliação na disciplina de Projeto Final de graduação, no Curso de Graduação em Engenharia Elétrica da Universidade Federal do Paraná. Orientador: Prof. Dr. Gideon Villar Leandro.

CURITIBA

2010

iii

AGRADECIMENTOS

Agradeço primeiramente à minha família, que sempre me apoio em

todos os sentidos e em todos os momentos de minha vida, sejam eles bons ou

ruins.

Agradeço também ao professor Gideon pelos conselhos, suporte e

disponibilidade para me ajudar durante o desenvolvimento deste trabalho.

Por fim, gostaria também de agradecer a todos os colegas de trabalho e

estudo que me incentivaram durante todo o processo.

iv

RESUMO

O presente trabalho trata do desenvolvimento de um controlador a ser

utilizado em veículos aéreos não tripulados do tipo quadrirotor, dando ênfase à

criação de um sistema de baixo custo. Primeiramente, são detalhados os

conceitos gerais relacionados a este tipo de aeronave, que em seguida são

utilizados para desenvolver um modelo matemático do comportamento

dinâmico de um quadrirotor. Em seguida são explicados os conceitos da teoria

de controle fuzzy envolvidos no desenvolvimento do método apresentado,

seguidos pelo método em si. Baseado no modelo matemático foi desenvolvido

simulador utilizando a ferramenta Simulink do Matlab, utilizado para validar o

método de controle desenvolvido. Por fim, as ferramentas necessárias para a

construção de um protótipo baseado no modelo são apresentadas.

Palavras-chave: Quadrirotor, Controle Fuzzy, Veículo Aéreo Não-Tripulado.

v

ABSTRACT

The present work concerns the development of a new control method to

be used in Quadrotor Unmanned Aerial Vehicles, focusing on the design of a

low-cost system. First, the general concepts related to the aircraft are detailed,

which will be used to develop a mathematical model of the dynamic behavior of

the quadrotor. Next the fuzzy control theory concepts involved in the

development of the presented method are explained, followed by the method

itself. Based on the mathematical model a simulator was developed using the

Matlab Simulink tool, used to validate the developed control method. Lastly, the

necessary tools for the construction of a prototype based on the model are

presented.

Keywords: Quadrotor, Fuzzy Control, Unmanned Aerial Vehicle

vi

SUMÁRIO

1. INTRODUÇÃO .................................................................................................................. 10

2. QUADRIROTOR ............................................................................................................... 13

2.1. CONCEITOS GERAIS ........................................................................................................... 13

2.2. MODELO MATEMÁTICO ..................................................................................................... 16

2.2.1. Sistema de coordenadas ........................................................................................ 16

2.2.2. Dinâmica do Sistema .............................................................................................. 18

2.2.3. Cálculo da inclinação do sistema............................................................................ 22

2.3. MOTOR CC ..................................................................................................................... 23

3. CONTROLE DE VANT........................................................................................................ 26

3.1. DIAGRAMA DE BLOCOS DE UM QUADRIROTOR ......................................................................... 26

3.2. CONTROLE FUZZY .............................................................................................................. 27

3.2.1. Lógica Fuzzy ............................................................................................................ 27

3.2.2. Conjuntos Nebulosos e Funções de Pertinência ..................................................... 28

3.2.3. Operações Básicas entre Conjuntos Nebulosos ...................................................... 29

3.2.4. Variáveis Linguísticas ............................................................................................. 29

3.2.5. Controlador Fuzzy ................................................................................................... 29

4. RESULTADOS OBTIDOS .................................................................................................... 31

4.1. SISTEMA SIMULADO .......................................................................................................... 34

4.2. SISTEMA PRÁTICO ............................................................................................................. 40

4.2.1. Chassi do sistema ................................................................................................... 41

4.2.2. Acelerômetro .......................................................................................................... 42

4.2.3. Motores e Acionamento ......................................................................................... 42

4.2.4. Sistema de controle ................................................................................................ 43

4.2.5. Arquitetura do software ......................................................................................... 44

5. CONCLUSÕES .................................................................................................................. 46

6. BIBLIOGRAFIA ................................................................................................................. 48

vii

LISTA DE ILUSTRAÇÕES

FIGURA 1.1 - DRAGONFLYER X-4 ....................................................................................................................... 10

FIGURA 1.2 - AR DRONE PARROT ...................................................................................................................... 11

FIGURA 1.3 - X-4 FLYER MARK II ....................................................................................................................... 11

FIGURA 2.1 - MODELO SIMPLIFICADO DE QUADRIROTOR ......................................................................................... 13

FIGURA 2.2 - MOVIMENTO DE ACELERAÇÃO ......................................................................................................... 14

FIGURA 2.3 - MOVIMENTO DE ARFAGEM ............................................................................................................. 14

FIGURA 2.4 - MOVIMENTO DE ROLAGEM ............................................................................................................. 15

FIGURA 2.5 - MOVIMENTO DE GUINADA .............................................................................................................. 15

FIGURA 2.6 - MOVIMENTOS ANGULARES ............................................................................................................. 16

FIGURA 2.7 - SISTEMA DE COORDENADAS DO QUADRIROTOR ................................................................................... 17

FIGURA 2.8 - SISTEMA DE COORDENADAS FIXO LOCAL ............................................................................................. 18

FIGURA 2.9 - MODELO DE MOTOR CC ................................................................................................................ 23

FIGURA 2.10 - DIAGRAMA DE BLOCOS DE UM MOTOR CC ....................................................................................... 25

FIGURA 3.1 - DIAGRAMA DE BLOCOS DO QUADRIROTOR .......................................................................................... 26

FIGURA 3.2 - COMPARAÇÃO ENTRE CONJUNTOS FUZZY E CONJUNTOS CLÁSSICOS. ......................................................... 28

FIGURA 3.3 - FUNÇÕES DE PERTINÊNCIA USUAIS .................................................................................................... 28

FIGURA 4.1 - FUNÇÕES DE PERTINÊNCIA PARA O ÂNGULO DE INCLINAÇÃO ................................................................... 31

FIGURA 4.2 - FUNÇÕES DE PERTINÊNCIA PARA A DERIVADA DO ÂNGULO DE INCLINAÇÃO ................................................ 32

FIGURA 4.3 - FUNÇÕES DE PERTINÊNCIA PARA A SEGUNDA DERIVADA DO ÂNGULO DE INCLINAÇÃO .................................. 32

FIGURA 4.4 - ESTRUTURA DO SIMULADOR ............................................................................................................ 34

FIGURA 4.5 - ÂNGULOS SIMULADOS E AMOSTRADOS .............................................................................................. 37

FIGURA 4.6 - DIFERENÇA ENTRE ÂNGULOS SIMULADOS E AMOSTRADOS ..................................................................... 37

FIGURA 4.7 - VALORES PERCENTUAIS PWM EM CADA MOTOR ................................................................................ 38

FIGURA 4.8 - ÂNGULOS SIMULADOS E AMOSTRADOS PARA OS ÂNGULOS INICIAIS Θ = Π/5 E Φ=Π/4. ............................... 39

FIGURA 4.9 - VALORES PERCENTUAIS PWM EM CADA MOTOR PARA OS ÂNGULOS INICIAIS Θ = Π/5 E Φ=Π/4. .................. 39

FIGURA 4.10 – DIAGRAMA DE BLOCOS DO SISTEMA ............................................................................................... 40

FIGURA 4.11 - FORMATO DO CHASSI ................................................................................................................... 41

FIGURA 4.12 - CONEXÃO COM A HASTE ............................................................................................................... 42

FIGURA 4.13 – SISTEMA DE ACIONAMENTO ......................................................................................................... 43

FIGURA 4.14 – DIAGRAMA DE BLOCOS DO SOFTWARE ........................................................................................... 44

8

LISTA DE TABELAS

TABELA 4.1 - VALORES DE SAÍDA ........................................................................................................................ 32

TABELA 4.2 - REGRAS DE INFERÊNCIA – NESTA TABELA, Θ, DΘ E D2Θ REPRESENTAM O VALOR DE PERTINENCIA ................ 33

TABELA 4.3 - RELAÇÃO ENTRE OS MOTORES E OS ÂNGULOS DE ENTRADA PARA OS RESPECTIVOS CONTROLADORES .............. 34

TABELA 4.4 - INTERFACES UTILIZADAS PELO SISTEMA .............................................................................................. 44

9

LISTA DE SIGLAS

CC Corrente Contínua

IMU Inertial Measurement Unit

PWM Pulse Width Modulation

UAV Unmanned Aerial Vehicles

VANT Veículo Aéreo Não Tripulado

10

1. Introdução

Quadrirotores é uma classe de helicópteros que utiliza quatro rotores para propulsão,

geralmente dispostos em formato de cruz. O controle de movimento é feito através da

mudança da velocidade relativa entre os quatro rotores.

Este tipo de estrutura possui a vantagem em relação à helicópteros comuns de não

necessitar de soluções mecânicas para variar o ângulo dos rotores enquanto eles giram. Além

disso, o tamanho individual de cada rotor é reduzido em relação a um helicóptero comum de

tamanho equivalente. A maior desvantagem deste modelo é o alto consumo de energia

necessário para alimentar os quatro rotores.

Embora este conceito de aeronave não seja novo, a dificuldade de estabilização e o

desempenho ruim dos primeiros protótipos limitaram seu desenvolvimento. Atualmente, este

tipo de estrutura tem sido muito utilizado em robótica, na criação de veículos aéreos não

tripulados1. Este tipo de veículo pode ser usado em aplicações voltadas às áreas de vigilância,

inspeção, filmagem, fotografia e diversão, entre outras.

As figuras 1.1 a 1.3 mostram exemplos de quadrirotores comerciais e acadêmicos. A

figura 1.1 mostra o Dragonflyer X-4, fabricado pela Draganfly Innovation Inc., um modelo

comercial industrial de quadrirrotor muito utilizado para tomadas aéreas de câmera. A figura

1.2 também mostra um modelo comercial, o AR Drone Parrot. Já o modelo X-4 Flyer Mark II da

figura 1.3 foi desenvolvido na Australian National University[3].

Figura 1.1 - Dragonflyer X-4 (fonte: http://www.draganfly.com)

1 Do inglês UAV - Unmanned aerial vehicles.

11

Figura 1.2 - AR Drone Parrot (fonte: http://www.parrot.com)

Figura 1.3 - X-4 Flyer Mark II

Em geral, estes modelos apresentam vários sensores para determinar sua posição e

atitude, por exemplo, acelerômetros, girômetros, magnetrômetros, etc. Isso torna o controle

mais robusto, mas também encarece o projeto.

Como será visto a seguir, o controle da atitude em um sistema do tipo quadrirotor é

vital na navegação do quadrirotor como um todo, pois a partir dela pode-se obter a direção

em que o sistema está se movendo.

Bresciani[1], em tese apresentada na Lund University, desenvolveu um protótipo de

quadrirotor, em que utilizou um controle do tipo PID embarcado em um processador do tipo

ARM7. Os sensores utilizados para o controle do protótipo foram um sonar e um módulo

12

infravermelho para estimar a altura do protótipo do chão e um módulo IMU, que possui vários

sensores internos para medir a orientação (atitude) do quadrirotor.

Em tese apresentada à Universidade Técnica de Lisboa, Domingues[2] desenvolveu um

protótipo de quadrirotor utilizando um controle ótimo através de um Controlador Linear

Quadrático embarcado em um processador do tipo Arduíno. Seu protótipo pode ser

controlador tanto através de comandos por parte de um usuário quanto autonomamente.

Como sensores, utiliza um acelerômetro de 3 eixos, um magnetrômetro de 3 eixos e uma

câmera utilizada para realizar o controle de posição.

Em trabalho semelhante, foi desenvolvido no Laboratório de Robótica e Automação da

Universidade de Brasília, um quadrirotor utilizando um controle PID embarcado em um

processador do tipo ARM. O sensoriamento é feito através de módulo IMU, constituído de um

acelerômetro de três eixos, três girômetros e um sensor de temperatura. Além disso, utiliza

também um magnetrômetro, um sonar e sensores de rotação dos motores.

O objetivo deste trabalho é desenvolver um controle da atitude de um sistema do tipo

quadrirotor. Para simplificar o problema, o sistema ficará fixo, de modo que o objeto de

controle seja apenas a inclinação do sistema, ignorando a sua posição linear.

Como requisito adicional, o sistema deve ter baixo custo. Para isso, apenas um

acelerômetro é utilizado, e a partir de suas informações infere-se a posição angular do

sistema. Isso aumenta a complexidade do controlador, mas reduz bastante o custo final do

projeto.

A estratégia de controle a ser utilizada é baseada em lógica fuzzy de modo a tornar o

sistema mais robusto e, de certo modo, compensar a falta de informações gerada pelo uso de

apenas um tipo de sensor.

No capítulo 2 são apresentados os conceitos gerais relacionados a um quadrirotor, que

serão utilizados em seguida no desenvolvimento de um modelo matemático do

comportamento dinâmico da aeronave. No Capítulo 3 são apresentados os conceitos de

controle utilizados neste trabalho. Inicialmente o controle da aeronave é tratado, em seguida

os conceitos teóricos relativos á lógica e controle fuzzy são apresentados. O capítulo 4 trata do

desenvolvimento tanto do sistema simulado criado utilizando a ferramenta Simulink do Matlab

quanto do sistema prático usado para a validação do método de controle desenvolvido.

13

2. Quadrirotor

2.1. Conceitos Gerais

Antes de desenvolver um modelo que explique o quadrirotor, é necessário entender o

seu funcionamento. Para isso, será considerado um quadrirotor simplificado, em que se

desconsideram os efeitos particulares dos motores, hélices e do circuito eletrônico necessário

para controlá-lo.

Neste modelo simplificado, considera-se apenas quatro rotores montados em uma

configuração em forma de cruz, conforme ilustrado na figura 2.1. Nela pode-se observar que

os dois rotores dispostos ao longo do eixo X giram no sentido anti-horário, enquanto os

rotores do eixo Y giram no sentido horário. Isto é necessário para eliminar o efeito torque

gerado pelos rotores.

Na figura 2.1, os círculos representam quatro rotores. As flechas dentro de cada círculo

representam o sentido de rotação de cada rotor, e as flechas perpendiculares aos rotores

indicam as forças por eles produzidas. No centro de massa do quadrirotor está representado

um sistema de coordenadas tridimensional utilizado neste caso apenas para referência.

Figura 2.1 - Modelo simplificado de quadrirotor

Ao observar a figura 2.1, é fácil perceber que, se todos os rotores giram à mesma

velocidade, a força gerada por cada um será a mesma. Isso fará com que o quadrirotor se

mantenha suspenso no ar, e sua posição angular não irá variar.

14

Quando se considera os efeitos gravitacionais, vê-se que ao aumentar ou diminuir a

velocidade dos motores pode-se fazer com que o quadrirotor se mova verticalmente ao longo

do eixo Z. Este movimento, chamado de aceleração, está representado na figura 2.2.

Figura 2.2 - Movimento de aceleração

Ao variar a velocidade de um dos rotores situados no eixo X, mantendo a velocidade

do outro constante, produz-se um desequilíbrio de forças gerado pelos dois rotores. Este

desequilíbrio criará um torque em torno do eixo Y, gerando uma aceleração angular. Chama-se

este movimento, representado pela figura 2.3, de arfagem (pitch).

Figura 2.3 - Movimento de arfagem

Da mesma forma, ao variar a velocidade de um dos motores situados no eixo Y,

mantendo a velocidade do outro constante, gera-se um torque em torno do eixo X. Chama-se

este movimento, representado na figura 2.4, de rolagem (roll).

15

Figura 2.4 - Movimento de rolagem

Ao se variar da mesma forma as velocidades dos dois rotores dispostos sobre o mesmo

eixo, mantendo os outros dois rotores constantes, produz-se um torque em torno do eixo Z.

Este movimento é chamado de guinada (yaw) e está representado na figura 2.5.

Figura 2.5 - Movimento de guinada

É fácil verificar que, a partir dos quatro movimentos descritos acima, pode-se derivar

os outros dois movimentos possíveis a um corpo qualquer com seis graus de liberdade. Ao se

realizar o movimento de arfagem associado ao movimento de aceleração, por exemplo, para

mudar o ângulo do sistema em torno do eixo Y, verifica-se que as forças produzidas pelos

rotores podem ser decompostas em componentes sobre o eixo X e sobre o eixo Z. Desde que a

componente sobre o eixo Z seja igual à força gravitacional à qual o quadrirotor está sujeito,

tem-se que o único movimento será ao longo do eixo X. Da mesma forma, ao se realizar o

movimento de rolagem para mudar o ângulo em torno ao eixo X, e utilizando o movimento de

16

aceleração para manter a componente da força sobre o eixo Z igual à força gravitacional, um

movimento ao longo do eixo Y será produzido.

Figura 2.6 - Movimentos angulares

Ao utilizar as associações de movimentos descritos acima, que são mostrados na figura

2.6 na estrutura do quadrirotor, aliados ao movimento de guinada, pode-se movimentar o

quadrirotor em qualquer direção do espaço tridimensional. Com isso, concluí-se que o controle

da inclinação, ou atitude, do sistema é vital para o controle de movimento do sistema como

um todo.

2.2. Modelo Matemático

2.2.1. Sistema de coordenadas

O cálculo da inclinação, velocidade e aceleração angulares só fazem sentido se fizerem

parte de um sistema de coordenadas. Um sistema de coordenadas pode ter origem em

qualquer ponto do espaço, sendo que este ponto pode ser móvel ou fixo. Para auxiliar os

17

cálculos, é conveniente que estes sistemas estejam definidos de forma a concordar com os

dados fornecidos pelos sensores.

São utilizados dois sistemas de coordenadas no modelamento do sistema:

• Um tem origem no centro de massa do quadrirotor e move-se junto com ele.

Este sistema será chamado de B.

• O outro é um sistema fixo local. Este sistema, devido às suposições feitas pelo

modelo, deve ser definido de forma que seu eixo z aponte na direção oposta

ao centro da Terra, de forma que a força gravitacional esteja sobre ele.

Este sistema será chamado de E.

A figura 2.7 representa o primeiro sistema mencionado, enquanto a figura 2.8

representa o segundo, sendo o modo como as rotações são medidas.

As medidas lineares e angulares (posição, velocidade e aceleração) são feitas com base

na translação e rotação que devem ser feitas no primeiro sistema para que ele coincida com o

segundo. Deste modo, os ângulos Φ, Θ e Ψ representam a inclinação do sistema em relação à

terra.

Figura 2.7 - Sistema de coordenadas do quadrirotor

18

Figura 2.8 - Sistema de coordenadas fixo local

2.2.2. Dinâmica do Sistema

A revisão bibliográfica realizada mostrou vários modos de realizar o modelamento

matemático do quadrirotor. Neste trabalho, foi utilizado o modelo descrito em [1], baseado no

modelo de Newton-Euler para um corpo genérico de 6 graus de liberdade.

As equações de movimento são definidas no sistema B, pelas seguintes razões:

• A matriz de inércia é invariante no tempo;

• A simetria do corpo pode ser utilizada para simplificar as equações;

• As forças de controle exercidas pelos motores são dadas neste sistema;

• A aceleração medida pelo acelerômetro também é dada neste sistema.

Neste caso, a equação 2.1 descreve o movimento do sistema: = = (2.1)

Nesta equação, V descreve a velocidade linear (em suas componentes u, v e w) e ω

descreve a velocidade angular do corpo (em suas componentes p, q e r), dadas no sistema de

coordenadas B.

A dinâmica de um corpo de seis graus de liberdade leva em conta a massa do corpo e a

sua matriz de inércia. Esta dinâmica está descrita na equação 2.2.

19

00 + × × = (2.2)

Na equação 2.2, m é a massa do corpo, I3x3 é a matriz identidade de dimensão 3, 03x3 é

uma matriz quadrada de dimensão 3 com zeros em todas as posições, I é a matriz de inércia, FB

é o vetor de forças atuantes sobre o sistema e τB é o vetor de torques atuantes sobre o

sistema, ambos dados em B.

Escrevendo a equação 2.2 em forma de matriz, obtemos a equação 2.3

+ = Λ (2.3)

Onde MB é a matriz generalizada de inércia do corpo, CB a matriz que leva em

consideração a aceleração centrípeta de Coriolis e Λ é o vetor generalizado de forças do corpo.

Estes estão definidos, respectivamente, nas equações 2.4, 2.5 e 2.6.

= 00 = "#####$ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %% 0 0 0 0 0 0 && 00 0 0 0 0 '' ())

)))* (2.4)

= 0 − ,0 − , = "####$0 0 00 0 00 0 0

0 − − 0 − 00 0 00 0 00 0 00 -- −&& −-- 0 && −&& 0 ())

))* (2.5)

Λ = FB τBT = FX FY FZ τ5 τ6 τ7T (2.6)

A equação 2.3 é completamente genérica e válida para qualquer corpo que obedeça as

condições estabelecidas previamente. Entretanto, para o sistema em questão, podemos dividir

o vetor Λ em três componentes de acordo com a natureza das forças atuantes sobre o

quadrirotor.

A primeira contribuição se dá devido ao vetor gravitacional GB, dado a partir da

aceleração devida à gravidade g [m/s2] e estabelecido na equação 2.7. Obviamente, este vetor

afeta apenas as componentes lineares, já que é uma força e não um torque.

20

8 = 90: = ;<=: 9>0: = ?;< @ 00− AB0:

C = "####$

A D<− A E<DF− A E<DF000 ())))* (2.7)

A segunda contribuição vem dos efeitos giroscópicos produzidos pela rotação das

hélices. Como duas estão rodando no sentido horário e as outras duas no sentido anti-horário,

existe um desequilíbrio quando a soma algébrica das velocidades dos rotores não é igual a

zero. Além disso, se os ângulos de rolagem e arfagem são diferentes de zero, o quadrirotor

sofre torques giroscópicos de acordo com a equação 2.8. Nesta equação, Ω é a soma algébrica

das velocidades dos rotores, dado pela equação 2.9, onde Ωx é a velocidade de cada motor.

G Ω = "##$ 0 5:− H JTP KωB x M001OP −1QΩQ

RQS: ()

)* =

"###$0 5:JTPW=XYZ [Ω())

)* = JTP"####$

0 00 00 00 00 00 0q −q−p p0 0

q −q−p p0 0 ())))* (2.8)

Ω = - Ω1 + Ω2 - Ω3 + Ω4 (2.9)

A última contribuição se deve ás forças e torques produzidos diretamente pelos

rotores. Obtêm-se através de considerações aerodinâmicas que estas são diretamente

proporcionais ao quadrado da velocidade de rotação dos rotores. A equação 2.10 descreve

essas contribuições.

cΩ = d Ωe = "####$

00c:ceccR())))* =

"#####$ 00fgΩ:e + Ωee + Ωe + ΩRehf i gΩRe − Ωeehf i gΩe − Ω:ehj Ωee + ΩRe − Ω:e − Ωe())

)))* (2.10)

21

Na equação 2.10, b é o coeficiente de empuxo, d é o coeficiente de arrasto e l é a

distância entre os rotores e o centro de massa do sistema.

Desta forma, é possível descrever a dinâmica do sistema a partir da seguinte equação

matricial (equação 2.11):

+ = 8k + G Ω + EB Ωe (2.11)

Isolando a derivada do vetor velocidade obtemos a equação 2.12.

= =: − + 8k + GΩ + EB Ωe (2.12)

A equação 2.13 é a representação da equação 2.12 como um sistema de equações.

mnnnonnnp = − + A D< = − − A E<Dq = − − A E<Dq + rst = uvv= uwwuxx + yzuxx + r|uxx = uww= uxxuvv + yzuvv + ruvv = uxx= uvvuww + r~uww

(2.13)

A velocidade das hélices é dado a partir da equação 2.14:

mnonp c: = fgΩ:e + Ωee + Ωe + ΩRehce = f i gΩRe − Ωeehc = f i gΩe − Ω:ehcR = j gΩee + ΩRe − Ω:e − Ωeh

Ω = −Ω: + Ωe − Ω + ΩR (2.14)

Como mencionado anteriormente, todas as equações são dadas no sistema de

coordenadas B. Desta forma, é fácil verificar que as três primeiras equações presentes no

sistema de equações 2.13 representam as acelerações medidas pelo acelerômetro.

22

2.2.3. Cálculo da inclinação do sistema

Sejam Φ, Θ e Ψ, respectivamente, as rotações em x, y e z necessárias para deslocar o

sistema de coordenadas B de modo que coincida em orientação com o sistema E. Desta forma,

a matriz de rotação completa seria dada pela equação 2.15.

;< = @EE< −DEq + ED<Dq DDq + ED<EqDE< EEq + DD<Dq −EDq + DD<Eq−D< E<Dq E<Dq B (2.15)

Desta forma, pode-se obter o vetor velocidade angular em relação ao sistema de

coordenadas E, chamada de Θ.B, multiplicando a matriz de rotação pela matriz de velocidade

angular ωB descrita na equação 2.1, conforme explicitado pela equação 2.16.

Θ.B = RΘ ωB (2.16)

A equação 2.16 será útil para a simulação do sistema que será realizada

posteriormente. Entretanto, como o escopo deste trabalho é realizar o controle de inclinação

baseado somente nas leituras realizadas pelo acelerômetro, e como uma medida da inclinação

no sistema B não faz sentido, já que o sistema gira com o corpo, deve ser encontrada uma

maneira de relacionar as três primeiras equações do sistema de equações 2.13 com os ângulos

em relação ao sistema de coordenadas E.

À partir do sistema de equações 2.13, isolando-se os ângulos Φ e Θ, obtêm-se as

equações 2.17 e 2.18. Para tal, de modo simplificar os cálculos, ignoram-se as contribuições

dos componentes Coriolis centrípetas e de inércia, por ser muito menores que a contribuição

do vetor gravidade, principalmente quando os ângulos de inclinação ou as velocidades

angulares são próximos a zero.

Φ = s Y (2.17)

= s% (2.18)

À partir das equações 2.17 e 2.18, pode-se estimar a inclinação do sistema a partir

somente dos valores lidos pelo acelerômetro.

23

2.3. Motor CC

No modelamento de um motor CC, um circuito elétrico simples como o mostrado na

figura 2.9 é utilizado. Uma máquina de corrente continua é constituída por dois circuitos

magnéticos principais, sendo um denominado circuito de campo (estator) responsável pela

magnetização da máquina e outro denominado circuito de armadura (rotor), responsável pelo

torque da máquina.

A bobina de campo, percorrida por uma corrente ie, cria um fluxo λe = Leie, no sentido

indicado na figura 2.1. A bobina da armadura também cria um fluxo unidirecional λa = Laia,

independente da rotação do motor. Isto é decorrente da ação do comutador mecânico que

comuta a corrente entre as espiras da bobina da armadura, mantendo o fluxo sempre na

mesma direção.

Figura 2.9 - Modelo de Motor CC

Seguindo o modelo elétrico para o circuito de armadura apresentado em [8] e [9],

temos as seguintes equações:

a

a

aaaa edt

diLiRv ++= (2.19)

dt

dKe ba

θ= (2.20)

As equações de equilíbrio do torque são dadas por:

24

Tdt

dD

dt

dJ =+

θθ2

2

0 (2.21)

)(tIKT at= (2.22)

Aplicando a transformada de Laplace nas equações acima, tem-se:

)()().()( sKsIRsLsV baaaa ω++= (2.23)

)().(1

)(0

sDsJK

sIt

a ω+= (2.24)

Combinando as equações ( 2.23 ) e ( 2.24 ), tem-se:

[ ] )()())((1

)(0

sKsDsJRsLK

sV baa

t

a ωω +++= (2.25)

Admitindo-se Va(s) como entrada e w(s) com saída tem-se a seguinte função de

transferência:

tbaa

t

a

mKKDsJRsL

K

sV

sG

+++==

))(()(

)(

0

ω (2.26)

A função de transferência de um motor CC de imã permanente possui 2 pólos reais

negativos, que podem ser determinados resolvendo as raízes da equação característica:

0)(00

2 =++++ tbaaaa KKDRJRDLsJLs (2.27)

A função de transferência do motor também pode ser escrita em função das

constantes de tempo τe e τm:

)1)(1(

1

)(++

=me

bm

ss

KsG

ττ (2.28)

Onde as constantes de tempo estão relacionadas com os pólos da equação (2.27) por:

2

1 ;

1

1

ppme

−−= ττ (2.29)

25

Da equação 2.26 se deriva o diagrama de blocos representado na figura 2.10. Este

diagrama foi implementado na ferramenta Simulink do Matlab para simular os motores CC

utilizados.

Figura 2.10 - Diagrama de blocos de um motor CC

O controle de velocidade dos motores CC utilizados neste trabalho foi feito através da

técnica de modulação de largura de pulso. Nesta técnica, um trem de pulsos é utilizado como

entrada para o motor, e a largura dos pulsos determina a tensão média que será aplicada ao

motor.

O termo ciclo de trabalho é definido como a porcentagem do período do trem de

pulsos que o sinal está no nível “alto”. Desse modo, um ciclo de trabalho de 100% produziria

uma tensão média igual à amplitude do pulso aplicado, e um ciclo de trabalho de 50%

produziria uma tensão média igual à metade da amplitude do pulso e assim por diante.

Neste trabalho, referências à tensão PWM aplicada ao motor devem ser entendidas

como o ciclo de trabalho aplicado ao motor.

3. Controle de VANT

O objetivo do controle de um Veículo Aéreo Não

de tensão aplicados aos motores de modo a se manter uma posição desejada.

O controle pode ser dividido em duas partes.

posição linear da aeronave em um sistema fixo de coordenadas. A segunda se refere à atitude

(ou inclinação) da aeronave.

No caso do sistema estudado, conforme explicitado na seção 2.1, devido à forma como

o quadrirotor é construído, o controle da posição linear está intimamente li

da atitude.

3.1. Diagrama de blocos de um quadrirotor

O quadrirotor pode ser representado pelo diagrama de blocos da figura 3.1.

ser realizada (ou a posição a ser atingida) é a entrada do sistema. A partir dela, e do cá

posição atual obtida através da leitura dos sensores utilizados, um sistema de controle “alto

nível” de navegação determina qual deve ser a próxima posição do quadrirotor. A partir disso,

um sistema de controle “baixo

tensão aplicados a cada motor de modo a atingir a posição desejada. Como o quadrirotor é um

sistema dinâmico, ao se variar

sensores terão novas leituras e o sistema de controle deverá at

de tensão aplicados aos motores, caracterizando assim a realimentação do sistema.

de VANT

O objetivo do controle de um Veículo Aéreo Não-Tripulado genérico é obter

aos motores de modo a se manter uma posição desejada.

O controle pode ser dividido em duas partes. A primeira refere-se ao controle

em um sistema fixo de coordenadas. A segunda se refere à atitude

No caso do sistema estudado, conforme explicitado na seção 2.1, devido à forma como

o quadrirotor é construído, o controle da posição linear está intimamente ligado ao controle

de blocos de um quadrirotor

O quadrirotor pode ser representado pelo diagrama de blocos da figura 3.1.

ser realizada (ou a posição a ser atingida) é a entrada do sistema. A partir dela, e do cá

ão atual obtida através da leitura dos sensores utilizados, um sistema de controle “alto

determina qual deve ser a próxima posição do quadrirotor. A partir disso,

um sistema de controle “baixo-nível” de posição determina qual devem ser os valores de

tensão aplicados a cada motor de modo a atingir a posição desejada. Como o quadrirotor é um

sistema dinâmico, ao se variar a velocidade dos motores a posição também variará, e os

sensores terão novas leituras e o sistema de controle deverá atualizar mais uma vez os valores

de tensão aplicados aos motores, caracterizando assim a realimentação do sistema.

Figura 3.1 - Diagrama de blocos do quadrirotor

26

é obter os valores

se ao controle da

em um sistema fixo de coordenadas. A segunda se refere à atitude

No caso do sistema estudado, conforme explicitado na seção 2.1, devido à forma como

gado ao controle

O quadrirotor pode ser representado pelo diagrama de blocos da figura 3.1. A tarefa a

ser realizada (ou a posição a ser atingida) é a entrada do sistema. A partir dela, e do cálculo da

ão atual obtida através da leitura dos sensores utilizados, um sistema de controle “alto-

determina qual deve ser a próxima posição do quadrirotor. A partir disso,

os valores de

tensão aplicados a cada motor de modo a atingir a posição desejada. Como o quadrirotor é um

também variará, e os

ualizar mais uma vez os valores

de tensão aplicados aos motores, caracterizando assim a realimentação do sistema.

27

Este trabalho se concentra no sistema de controle de posição, ou seja, o problema

apresentado consiste apenas em variar a tensão aplicada aos motores de modo a atingir uma

posição desejada.

3.2. Controle fuzzy

3.2.1. Lógica Fuzzy

A lógica fuzzy (ou lógica nebulosa) permite o tratamento de expressões que não

envolvam grandezas de forma não exata. Esta forma de mensurar grandezas é muito parecida

com a percepção dos seres humanos, sendo assim um bom modelo para emular o nosso

comportamento.

Na lógica clássica, um elemento pode assumir dois valores (0 ou 1) em relação a um

conjunto. Dessa forma, dado um conjunto A contido no universo X, um elemento x pode

assumir apenas dois estados em relação ao conjunto A, que é representado pela função

indicadora IA(x):

IA(x) = 1 se x Є A, 0 se x ∉ A

Podemos definir um conjunto fuzzy como:

A(x) = x Є X | IA(x) = 1

Dessa forma, na lógica clássica, um elemento pode apenas pertencer integralmente a

um conjunto ou não pertencer a ele.

No caso da lógica fuzzy, além dos casos mencionados acima, um elemento pode

pertencer apenas parcialmente a um conjunto. Isso faz com que a função indicadora IA(x)

utilizada na lógica clássica seja substituída na lógica fuzzy por uma função de pertinência

μ(x)=[0,1], ou seja, o grau de pertinência de um elemento a um conjunto é um número real no

intervalo [0,1].

Deste modo, um conjunto fuzzy é definido como:

A=x ∈ X | μA(x) = ξ , 0 ≤ ξ ≤ 1,

sendo ξ o valor de pertinência de x ao conjunto A, contido no intervalo [0,1].

Assim sendo, as características da lógica fuzzy são:

28

- Uso intenso de palavras ao invés de números: Os conjuntos fuzzy em geral são definidos a

partir de termos lingüísticos, como: frio, morno, quente, alto, baixo, devagar, rápido, etc.

- Uso de modificadores de predicado: Modificadores como muito, pouco, negativo,

positivo,etc. Também são utilizados.

- Entendimento Intuitivo: Como a lógica fuzzy se assemelha à percepção humana, com regras

baseadas em variáveis lingüísticas, seu entendimento é bastante intuitivo.

(a) (b)

Figura 3.2 - Comparação entre conjuntos fuzzy e conjuntos clássicos.

(a) conjunto crisp (b) conjunto fuzzy

A figura 3.2 compara a pertinência em um conjunto na lógica clássica (conjunto crisp),

e em um conjunto fuzzy. A figura 3.2(a) mostra a pertinência a um conjunto crisp, e a figura

3.2(b) mostra a pertinência a um conjunto fuzzy.

3.2.2. Conjuntos Nebulosos e Funções de Pertinência

Funções de pertinência definem, para cada elemento x de um Universo X, o valor de

pertinência de x a um conjunto A. As funções de pertinência podem possuir vários formatos,

sendo os mais comuns, por serem mais fáceis de serem gerados, o triangular e o trapezoidal.

Outros formatos utilizados são o sigmoidal, a curva gaussiana, etc. A figura 3.3 mostra alguns

tipos de funções de pertinência.

Figura 3.3 - Funções de pertinência usuais

29

3.2.3. Operações Básicas entre Conjuntos Nebulosos

Assim como se faz com os conjuntos da lógica clássica, pode-se definir algumas

operações básicas entre conjuntos fuzzy. Elas são:

• Igualdade: A = B se fA(x) = fB(x) para todo x = X

• Complemento: A tem fA* = 1 - fA(x)

• Interseção: fA∩B(x) = min [fA(x); fB(x)] para todo x = X = fA ∩ fB

• União: fAUB(x) = max [fA(x); fB(x)] para todo x = X = fA U fB

3.2.4. Variáveis Linguísticas

Lógica Fuzzy utiliza variáveis lingüísticas no lugar de variáveis numéricas. Variáveis

lingüísticas admitem como valores apenas expressões lingüísticas (ou termos primários), como

"muito grande", "pouco frio", "mais ou menos jovem", que são representadas por conjuntos

Fuzzy. A estratégia de controle de um operador humano pode ser representada como um

conjunto de relações condicionais Fuzzy que formam um conjunto de regras de decisão.

Por exemplo, uma regra típica para controle de temperatura poderia ser: "Se a

temperatura está alta e aumentando lentamente, então, aumente o resfriamento um pouco".

Esta regra pode ser escrita através de variáveis lingüísticas da seguinte forma: "Se temp = GP e

variação_temp = PP então variação_resfr = PP", onde os termos primários GP e PP significam

"grande positivo" e "pequeno positivo".

Variáveis lingüísticas é o centro da técnica de modelagem de sistemas fuzzy, pois

permitem que a linguagem da modelagem fuzzy expresse a semântica usada por especialistas.

Encapsula as propriedades dos conceitos imprecisos numa forma usada computacionalmente

e isso reduz a complexidade do problema.

3.2.5. Controlador Fuzzy

Um controlador nebuloso é basicamente um processo de inferência em conjuntos

nebulosos. Podemos dividi-lo em três partes principais: a fuzzificação, a máquina de inferência

nebulosa, e a defuzzificação.

O processo de fuzzificação consiste em determinar a partir dos valores numéricos de

entrada crisp (natural) o grau de pertinência da variável a cada um dos conjuntos Ai contidos

no universo X.

30

O processo de inferência fuzzy realiza operações nos conjuntos fuzzy. Cada regra

possui um antecedente com uma relação fuzzy associada. O grau de pertinência da relação é

calculado a partir dos valores de pertinência calculados no processo anterior. O modelo das

regras é o seguinte:

Se (ANTECEDENTE) Então (CONSEQUÊNCIA)

As operação lógica E (única operação utilizada neste trabalho) foi definida como sendo

a multiplicação dos valores das funções de pertinência envolvidas.

O processo de defuzificação consiste em obter a partir do valor de pertinência

resultante das regras de inferência um valor numérico de saída. Neste ponto pode-se

identificar dois modelos de controladores: os controladores do tipo Mandami e do tipo

Sugeno.

Nos controladores do tipo Mamdani ao transferirmos o valor da função de pertinência

para o conjunto de saída obtêm como resultado uma área para os valores inferiores ao da

função pertinência. A união dessas áreas para todas as regras nos dá o conjunto fuzzy de saída,

que para passar para o valor numérico usa-se, por exemplo, a abscissa do centro de gravidade

da área obtida.

Para o controlador do tipo Takagi-Sugeno tem-se como saída uma função polinômio de

grau “n” em função das variáveis de entrada. Usualmente adota-se n = 0 ou n = 1, visto que a

melhora dos resultados não justifica o aumento da complexidade obtida.

Um controlador fuzzy típico normalmente é projetado para se comportar de forma

dedutiva, ou seja, inferir conclusões baseado no conhecimento que ele contenha. Outra forma

de aplicação destes controladores seria projetá-lo para possuir comportamento indutivo, onde

é possível a aprendizagem e generalização através de exemplos particulares provenientes da

observação do seu comportamento numa situação dinâmica.

31

4. Resultados obtidos

O objetivo do controle do movimento do quadrirotor é encontrar os valores de tensão

a ser aplicada aos motores de modo a manter o sistema em uma determinada posição.

Para simplificar a solução, o controle do sistema foi reduzido apenas ao controle de

inclinação (rolagem -roll e arfagem - pitch).

O controle de inclinação foi realizado utilizando-se um controlador fuzzy do tipo

Takagi-Sugeno, tendo como entradas a inclinação calculada a partir dos valores medidos pelo

acelerômetro e como saídas os valores de tensão a ser aplicados aos quatro motores de modo

a se obter a inclinação desejada.

O controle de cada eixo foi realizado independentemente, embora as entradas e saídas

de cada controlador fuzzy sejam as mesmas. Desta forma, tem-se dois controladores: um para

o ângulo de rolagem (que controla os motores 1 e 3), e outro para o ângulo de arfagem (que

controla os motores 2 e 4).

Como entradas para os controladores fuzzy foram utilizadas o ângulo do eixo em que o

motor está localizado, a derivada e a segunda derivada deste ângulo. As funções de

pertinência utilizadas estão representadas nas figuras 3.1, 3.2 e 3.3.

Figura 4.1 - Funções de pertinência para o ângulo de inclinação

0

0,2

0,4

0,6

0,8

1

-90 -40 10 60

valo

r d

e p

ert

inê

nci

a

Valor do ângulo de inclinação

Ângulo de inclinação

Alto Negativo

Médio Negativo

Baixo

Médio

Alto

32

Figura 4.2 - Funções de pertinência para a derivada do ângulo de inclinação

Figura 4.3 - Funções de pertinência para a segunda derivada do ângulo de inclinação

Por praticidade, como saída dos controladores não foram escolhidos os valores de

tensão PWM a serem aplicados a cada motor em si, mas sim a diferença entre os valores de

tensão aplicados a cada motor. As funções de saída estão definidas na tabela 1.

Nome da função Valor de saída

Alto 10

Alto Negativo -10

Baixo 4

Baixo Negativo -4

Tabela 4.1 - Valores de Saída

0

0,2

0,4

0,6

0,8

1

-90 -40 10 60

Val

or

de

per

tin

ênci

a

Valor da derivada do ângulo

Derivada do ângulo

Negativo

Positivo

Baixo

0

0,2

0,4

0,6

0,8

1

-90 -40 10 60

Val

or

de

pe

rtin

ên

cia

Valor da segunda derivada do ângulo

Segunda Derivada do ângulo

Negativo

Positivo

Baixo

33

Ao todo, foram criadas 17 regras de inferência. O valor da segunda derivada do ângulo

é utilizado apenas nas duas últimas regras, de forma a limitar a velocidade angular. Todas as

regras estão representadas na tabela 2.

Numero

da regra

Se... Então saída é...

Θ dΘ Pwm

1 Alto Negativo Negativo Alto

2 Médio Negativo Negativo Baixo

3 Baixo Negativo Zero

4 Médio Negativo Zero

5 Alto Negativo Zero

6 Alto Negativo Positivo Zero

7 Médio Negativo Positivo Zero

8 Baixo Positivo Zero

9 Médio Positivo Baixo Negativo

10 Alto Positivo Alto Negativo

11 Alto Negativo Baixo Alto

12 Médio Negativo Baixo Baixo

13 Baixo Baixo Zero

14 Médio Baixo Baixo Negativo

15 Alto Baixo Alto Negativo

dΘ d2Θ Pwm

16 Positivo Positivo Baixo Negativo

17 Negativo Negativo Baixo

Tabela 4.2 - Regras de inferência – Nesta tabela, Θ, dΘ e d2Θ representam o valor de pertinência do ângulo de inclinação, da sua derivada e da sua segunda derivada, respectivamente.

34

Embora, em primeira aproximação, os controladores sejam os mesmos para os quatro

motores, os ângulos que devem ser passados como entradas para os controladores variam. Na

tabela 3 estão representados quais ângulos são utilizados para cada motor.

Motor Ângulo de entrada

Motor 1 Θ

Motor 2 Φ

Motor 3 -Θ

Motor 4 -Φ

Tabela 4.3 - Relação entre os motores e os ângulos de entrada para os respectivos controladores

4.1. Sistema Simulado

Baseado no modelamento matemático descrito anteriormente foi desenvolvido um

simulador do comportamento físico do quadrirotor, que foi utilizado para validar as estratégias

de controle desenvolvidas.

O simulador desenvolvido é composto de vários blocos conectados em uma estrutura

realimentada, representada na figura 4.4.

Figura 4.4 - Estrutura do simulador

Resumidamente, as funções de cada bloco estão descrita a seguir:

35

• Controle Fuzzy: Neste bloco é implementado o controle do sistema. Ele recebe

como entradas os valores atuais (medidos) da inclinação quadrirotor e tem

como saída a tensão PWM a ser aplicada aos motores. Este bloco também

deve ser implementado no código a ser embarcado no quadrirotor.

• Motor: Este bloco representa o comportamento do motor. Tem como entrada

a tensão PWM aplicada aos motores e como saída a velocidade de cada

motor.

• Vel para U: Este bloco implementa a contribuição de cada motor para a

dinâmica do sistema. Ele implementa a equação 2.14.

• Dinâmica rotacional referência corpo: Este bloco representa o

comportamento dinâmico do quadrirotor como sistema(equação 2.13). Ele

recebe como entrada as contribuições dos motores e gera a posição,

velocidade e aceleração do sistema a partir delas, no sistema de coordenadas

B.

• Dinâmica rotacional referência terra: Este bloco representa a matriz de

rotação do referencial corpo B para o referencial terra E (equação 2.15).

• Acelerômetro: Este bloco representa as limitações do acelerômetro. Recebe

como entrada a aceleração calculada no bloco Dinâmica e tem como saída o

valor de aceleração “medido”. Tem sua saída ligada ao processamento de

entrada, realizando assim a realimentação.

• Processamento entrada: Interpreta os valores medidos pelo acelerômetro e

um valor definido pelo usuário para o ângulo de inclinação que o quadrirotor

deve manter. Com esses valores, define quais os ângulos a serem passados ao

sistema de controle. Este bloco deve ser implementado no código a ser

embarcado no quadrirotor.

O modo como cada bloco foi implementado na ferramenta Simulink está detalhado no

Apêndice.

A configuração do modelo é feita através de um script do Matlab, que define os

parâmetros físicos do modelo. O script roda automaticamente no início da simulação, e

inicializa os seguintes parâmetros:

• b: coeficiente de empuxo dos rotores;

• d: coeficiente de arrasto dos rotores;

• m: massa do sistema;

36

• g: gravidade local;

• medio_pwm: valor de pwm em torno do qual a tensão será variada;

• Ixx, Iyy e Izz: Momento de inércia em torno de cada eixo;

• JTP: Momento de inércia rotacional total;

• l: Distância dos rotores ao centro de massa do sistema;

• theta, phi e psi: Ângulos iniciais de inclinação;

• ref_theta, ref_phi e ref_psi: Ângulos de inclinação de referência;

• K, L, R, J e bm: parâmetros do motor;

• fuzzy1 e fuzzy2: Controladores Fuzzy.

Para estas constantes, foram utilizados valores encontrados na revisão bibliográfica.

Os resultados obtidos através do simulador estão representados nas figuras 4.5 a 4.9.

Na primeira simulação, foram utilizados os ângulos iniciais de entrada Θ = π/6 e

Φ=π/3 . É importante notar que, para simplificar o modelo feito no Simulink, todos os ângulos

são dados em radianos.

A figura 4.5 mostra os ângulos amostrados e simulados. Os valores utilizados para os

ângulos simulados são aqueles calculados pelo bloco dinâmica rotacional referência terra e

utilizados na entrada do bloco acelerômetro. Os ângulos amostrados são aqueles calculados

pelo bloco processamento entrada utilizando as equações 2.17 e 2.18. Como pode-se ver, o

método de controle utilizado funciona para este sistema.

37

Figura 4.5 - Ângulos simulados e amostrados

Para testar a validade das aproximações feitas, é útil comparar os valores amostrados

com os valores simulados. O resultado está na figura 4.6. Nele pode-se ver a diferença entre os

gráficos da figura 4.5. Pode-se observar na figura 4.6 que, como esperado, a diferença é

grande nos momentos em que os ângulos estão variando. Entretanto, vê-se também que no

momento inicial e conforme os ângulos convergem para zero, as aproximações se tornam cada

vez mais válidas.

Figura 4.6 - Diferença entre ângulos simulados e amostrados

A figura 4.7 mostra os valores de percentagem PWM aplicado a cada motor. No caso

da simulação, foi usado um valor médio de 90% de tensão PWM, com os valores variando

38

entre 85% e 95% da tensão total. Nesta figura pode-se perceber que os valores aplicados aos

motores 1 e 3 e aos motores 2 e 4 são simétricos entre si, conforme definidos pela estratégia

de controle.

Figura 4.7 - Valores percentuais PWM em cada motor

Podemos verificar a partir dos gráficos acima que o controle desenvolvido se aproxima

da solução ideal, ou seja, possui valores baixos de overshoot e do tempo de estabilização. Na

prática, isso significa que o sistema levaria pouco tempo para alcançar a estabilidade, o que

nesse caso significa que o sistema está na horizontal, e que ele oscilaria pouco em torno desse

ponto até alcançar a estabilidade total.

Para validar o método de controle implementado foram simulados outros valores

iniciais. As figuras 4.8 e 4.9 mostram os resultados quando os valores iniciais são alterados

para Θ = π/5 e Φ=π/4.

39

Figura 4.8 - Ângulos simulados e amostrados para os ângulos iniciais Θ = π/5 e Φ=π/4.

Figura 4.9 - Valores percentuais PWM em cada motor para os ângulos iniciais Θ = π/5 e Φ=π/4.

É possível perceber que a simulação com estes valores obteve um resultado muito

similar aos apresentados anteriormente, com os mesmos valores baixos de overshoot e do

tempo de estabilização. Com isso podemos verificar que método desenvolvido é válido para

diferentes valores iniciais de inclinação.

4.2. Sistema Prático

Para verificar que os resultados simulados estejam de acordo com o que acontece na

prática, o seguinte sistema pode ser montado. A construção do sistema possui as seguintes

etapas:

• Construção do chassi do protótipo;

• Desenvolvimento da eletrônica associada ao protótipo (sensores, sistema de

atuação, microcontrolador,

• Desenvolvimento do software embarcado de controle, que implementa o

método de controle desenvolvido;

O diagrama de blocos do sistema prático está representado na figura

composto de três partes principais:

acelerômetro MMA7660 e os motores e respectivos acionamentos.

O sistema é alimentado por uma bateria

Este tipo de bateria e capaz de concentrar grande quantidade de carga em

peso, sendo muito utilizado em aeromodelismo.

para evitar que o desligamento da bateria tivesse que ser

conector.

Figura

Sistema Prático

Para verificar que os resultados simulados estejam de acordo com o que acontece na

prática, o seguinte sistema pode ser montado. A construção do sistema possui as seguintes

trução do chassi do protótipo;

Desenvolvimento da eletrônica associada ao protótipo (sensores, sistema de

microcontrolador, etc.);

Desenvolvimento do software embarcado de controle, que implementa o

método de controle desenvolvido;

O diagrama de blocos do sistema prático está representado na figura 4.10. O sistema é

composto de três partes principais: o sistema de controle e comunicação com o computador

otores e respectivos acionamentos.

entado por uma bateria LiPo (Litio-Polimero) de 4000mAh

bateria e capaz de concentrar grande quantidade de carga em células

peso, sendo muito utilizado em aeromodelismo. Ao circuito foi adicionado um i

que o desligamento da bateria tivesse que ser feito pelo desencaixe de seu

Figura 4.10 – Diagrama de blocos do sistema

40

Para verificar que os resultados simulados estejam de acordo com o que acontece na

prática, o seguinte sistema pode ser montado. A construção do sistema possui as seguintes

Desenvolvimento da eletrônica associada ao protótipo (sensores, sistema de

Desenvolvimento do software embarcado de controle, que implementa o

. O sistema é

istema de controle e comunicação com o computador, o

00mAh e 11,1V.

élulas de pouco

interruptor,

feito pelo desencaixe de seu

41

4.2.1. Chassi do sistema

Como o escopo deste projeto inclui apenas o controle de inclinação, a construção do

chassi deve ser feita de modo a limitar os movimentos que não sejam aqueles angulares em

torno dos eixos x e y. Para atingir este objetivo, um modelo fixo de quadrirotor foi

desenvolvido.

O chassi do sistema foi montado em madeira balsa, material muito leve e largamente

difundido na construção de aeromodelos comerciais, cuja obtenção não e difícil. O formato

utilizado foi está representado na figura 4.11.

Figura 4.11 - Formato do chassi

Para ligar a haste ao chassi do sistema, foi utilizada uma conexão móvel através de

uma esfera. Desta forma, o sistema possui mobilidade de inclinação, e ao mesmo tempo não

permite movimentos lineares, cujo controle está além do escopo deste projeto. Esta conexão

está representada na figura 4.12.

42

Figura 4.12 - Conexão com a haste

4.2.2. Acelerômetro

O acelerômetro utilizado no sistema foi o modelo MMA7660, da Freescale. Suas

características são:

• Aceleração nos 3 eixos (xyz)

• Saída digital através do protocolo I2C

• Tensão de alimentação de -0,3V a +3,6V

• Sensibilidade de ± 1,5g

• Frequência de amostragem entre 1 amostra/s e 120 amostras/s

Para facilidade de montagem, foi utilizado o kit de avaliação KIT3803MMA7660FC, que

possui pinagem DIP.

A conexão com o microcontrolador é feita através da interface I2C. Além disso, a

alimentação do sensor é feita através da conexão direta com a saída VCC do microcontrolador.

4.2.3. Motores e Acionamento

Os motores utilizados são do modelo AK360/PL12-12500S, da Akiyama Soluções

tecnológicas. Este motor possui tensão nominal de 12V, rotação sem carga de 12500rpm com

uma corrente de 0.19A, e potência de máximo rendimento de 4.85W.

O sistema de acionamento de cada motor é composto de dois componentes: um

transistor MOSFET e um driver.

43

A saída pwm do microcontrolador está ligada ao CI TC1410N da Microchip. Este CI é

um driver de MOSFET de alta velocidade. Ele possui tensão de operação de 4.5V a 16V e

corrente máxima de 0,5 A.

O driver está ligado ao MOSFET STP27N3LH5, da ST. Este MOSFET possui valor

máximo de tensão de 30V e corrente máxima contínua de 27 A.

O sistema de acionamento utilizado para os motores está representado na figura 4.13.

Figura 4.13 – Sistema de acionamento

4.2.4. Sistema de controle

O sistema de controle foi baseado no kit de desenvolvimento do processador

MCF52259. Este processador da família ColdFire, desenvolvido pela Freescale, possui 512 KB

de flash onboard e 64 KB de RAM. Os periféricos já incluídos no kit incluem conectores para

comunicação USB e serial, JTAG e conector para os pinos de I/O.

A programação do processador é feita através da interface JTAG presente no kit. A

arquitetura do software embarcado no microcontrolador está detalhada na seção Arquitetura

do Software.

As interfaces utilizadas pelo sistema estão detalhadas na tabela 4.4.

Interface Modo de comunicação

44

Computador Serial através do conector RS232

Acelerômetro I2C

Acionamentos dos motores PWM através dos pinos de I/O

Tabela 4.4 - Interfaces utilizadas pelo sistema

4.2.5. Arquitetura do software

O diagrama de blocos do software está representado na figura 4.15. Nela estão

representadas as principais funções do sistema, assim como as conexões externas ao

microcontrolador.

Figura 4.14 – Diagrama de blocos do Software

O bloco processamento entrada, da mesma forma que o bloco do simulador, recebe e

ajusta os valores amostrados pelo acelerômetro e os processa de modo a obter os valores de

inclinação (Θ e Φ no sistema simulado) e enviar ao bloco de controle. Este bloco também é

responsável por fazer toda a comunicação através do protocolo I2C com o acelerômetro,

incluindo a inicialização do sensor.

45

O bloco Controle Fuzzy é similar ao bloco de mesmo nome no simulador e implementa

todo o controle explicado no capítulo 3.

O bloco Gerador PWM representa as interrupções necessárias para a geração do sinal

pwm, assim como a atualização nos pinos de saída. Na verdade este bloco foi implementado a

partir do código gerado automaticamente pela ferramenta de edição do kit microcontrolador.

O bloco Comunicação Serial seria implementado no futuro para que o sistema receba e

envie comandos a um computador.

46

5. Conclusões

O objetivo principal deste trabalho era desenvolver um método de controle que

permitisse a construção de uma aeronave do tipo quadrirotor de baixo custo.

A partir da análise bibliográfica, ficaram evidentes que os trabalhos existentes voltados

à construção de quadrirotores utilizavam vários tipos de sensores para avaliar a posição e

atitude da aeronave em relação tanto a um sistema de coordenadas fixo quanto a um sistema

móvel situado no quadrirotor.

Um dos requisitos definidos no início deste trabalho era que apenas um único

acelerômetro seria utilizado pelo sistema. A falta de informações que surgiria deste requisito

seria compensada pela estratégia de controle. Neste contexto, o controlador fuzzy foi o

escolhido, por apresentar bons resultados mesmo quando nem todas as informações estão

disponíveis.

A base teórica forneceu suporte para o desenvolvimento do simulador utilizado para

validar a técnica de controle escolhida, baseada em lógica fuzzy. Este simulador permitiu

avaliar a validade das funções de pertinência e das regras de inferência definidas, garantindo

assim que o controle desenvolvido era válido em diferentes situações. Este simulador também

é útil para avaliar como variações no método de controle afetam o sistema como um todo, o

que é um passo importante para o desenvolvimento de um sistema prático.

A partir das idéias desenvolvidas com o simulador, um sistema prático para a avaliação

do método de controle foi proposto. Como um dos pressupostos iniciais do projeto era de que

apenas o controle de inclinação fosse realizado, uma estrutura mecânica especial, diferente

daquelas vistas durante a revisão bibliográfica, teve que ser projetada.

Conclui-se a partir dos resultados apresentados que este trabalho teve sucesso em

cumprir os requisitos definidos no início do projeto. Um método de controle baseado em um

conjunto reduzido de informações foi desenvolvido, e sua validade foi confirmada através de

um simulador. A redução de custo decorrente da diminuição do número de sensores cumpre o

requisito principal definido, que era auxiliar no desenvolvimento de um sistema quadrirotor de

baixo custo.

A principal sugestão para a continuação deste trabalho é o desenvolvimento de um

sistema de controle de guinada e de altitude que possam ser integrados ao controle de

inclinação desenvolvido, de modo a criar um sistema quadrirotor completo. É importante na

47

criação destes sistemas seguir o requisito de baixo custo definido para este projeto. A seguir

poder-se-ia implementar um controle de navegação de modo a tornar o quadrirotor um

sistema autônomo.

Outra sugestão para um trabalho futuro é desenvolver ainda mais o método de

controle utilizado, talvez complementado-o com uma rede neural de modo a adicionar uma

inteligência adicional ao sistema.

48

6. Bibliografia

[1] BRESCIANI, T. Modelling, Identification and Control of a Quadrotor Helicopter. Tese

(Mestrado) - Lund University, 2008. (Disponível em: http://www.roboticsclub.org/redmine

/attachments/467/Quadrotor_Bible.pdf)

[2] DOMINGUES, J. Quadrotor prototype. Tese (Mestrado) – Universidade Técnica de Lisboa,

2009 (Disponível em: https://dspace.ist.utl.pt/bitstream/2295/574042/1/Tese_de_

Mestrado.pdf)

[3] SANTANA, P.; BRAGA, M. Concepção de um Veículo Aéreo Não-Tripulado do Tipo

Quadrirotor. Trabalho de graduação – Universidade de Brasília. (Disponível em:

http://lara.unb.br/~gaborges/arquivos/pf.pedro.santana.marcelo.braga.2008.1.pdf)

[4] http://en.wikipedia.org/wiki/Quadrotor, October 2009.

[5] POUNDS, P.; MAHONY, R.; CORKE, P.. Modelling and Control of a Quad-Rotor Robot. 2006.

(Disponível em: http://eprints.qut.edu.au/33767/1/33767.pdf)

[6] PIRES, J. ;NASCIMENTO, C..Controle Fuzzy para braço robótico utilizando a abordagem

adaptativa neuro-fuzzy (ANFIS) do Matlab.

[7] MARTINS, E. Controle Fuzzy através de sistema de supeervisão.

[8] AUNG, W. Analysis on Modeling and Simulink of DC Motor and its Driving System Used for

Wheeled Mobile Robot.

[9] NEUTZLING, R. Identificação de Sistemas. Trabalho de graduação - Universidade Regional

do Noroeste do Estado do Rio Grande do Sul, 2005.

49

Ap

ên

dic

e –

Sim

ula

do

r E

xp

an

did

o

O S

imu

lad

or

des

envo

lvid

o é

ap

rese

nta

do

em

lin

has

ge

rais

no

cap

ítu

lo 4

.1. A

seg

uir

est

ão d

etal

had

os

cad

a b

loco

do

sis

tem

a. P

ara

mel

ho

r vi

sual

izaç

ão, a

lgu

ns

blo

cos

estã

o

dis

po

sto

s n

a h

ori

zon

tal.

1.

Blo

co C

on

tro

le F

uzz

y

ang_1

delta_ang_1

ang_2

delta_ang_2

4

pwm4

3

pwm3

2

pwm2

1

pwm1

theta_amos

To Workspace9

saida4

To Workspace8

d2phi_amos

To Workspace7

saida2

To Workspace6

saida3

To Workspace5

saida1

To Workspace4

pwm4

To Workspace3

pwm2

To Workspace2

d2theta_amos

To Workspace13

dphi_amos

To Workspace12

dtheta_amos

To Workspace11

phi_amos

To Workspace10

pwm3

To Workspace1

pwm1

To Workspace

STOP

Stop Simulation3

STOP

Stop Simulation2

STOP

Stop Simulation1

STOP

Stop Simulation

Saturation3

Saturation2

Saturation1

Saturation

NOT

Logical

Operator3

NOT

Logical

Operator2

NOT

Logical

Operator1

NOT

Logical

Operator

Interval Test3

Interval Test2

Interval Test1

Interval Test

-1

Gain6

0.5

Gain4

0.5

Gain2

-1

Gain

In Out

Derivada3

In Out

Derivada2

In Out

Derivada1

In Out

Derivada

Controle Motor 2

Controle Motor 1 medio_pwm

Constant6

medio_pwm

Constant5

medio_pwm

Constant4

medio_pwm

Constant3

ref_phi

Constant1

ref_theta

Constant

Add5

Add4

Add3

Add2

Add1

Add

2

theta

1

phi

50

2. Bloco Motor

V1

V3

V4

V2

4

vel_motor_4

3

vel_motor_3

2

vel_motor_2

1

vel_motor_1

K

J.s+bm

Malha mecânica Motor 4

K

J.s+bm

Malha mecânica Motor 3

K

J.s+bm

Malha mecânica Motor 2

K

J.s+bm

Malha mecânica Motor 1

1

L.s+R

Malha elétrica Motor 4

1

L.s+R

Malha elétrica Motor 3

1

L.s+R

Malha elétrica Motor 2

1

L.s+R

Malha elétrica Motor 1

K

Gain7

K

Gain5

K

Gain3

K

Gain1

Divide3

Divide2

Divide1

Divide

100

Constant7

100

Constant5

100

Constant3

100

Constant1

4

pwm4

3

pwm3

2

pwm2

1

pwm1

51

3. Bloco Vel para U

5

Omega

4

U4

3

U3

2

U2

1

U1

b

empuxo

d

arrasto

Omega

To Workspace4

U1

To Workspace3

U4

To Workspace2

U3

To Workspace1

U2

To Workspace

Product4

Product3

Product2

Product1

Product

u2

Math

Function3

u2

Math

Function2

u2

Math

Function1

u2

Math

Function

l

Distancia ao CDM

Add4

Add3

Add2

Add1

Add

4

vel_motor_4

3

vel_motor_3

2

vel_motor_2

1

vel_motor_1

52

4.

Blo

co D

inâ

mic

a r

ota

cio

na

l re

ferê

nc

ia c

orp

o

r

3

r

2

q

1

p

r

r3

r

r2

r

r1

q

q3

q

q2

q

q1

p

p3

p

p1

Product4

Product3

Product2

Product1

Product

1

s

Integrator8

1

s

Integrator7

1

s

Integrator6

Izz

Inercia z4

Ixx

Inercia z2

Izz

Inercia z1

Iyy

Inercia y3

Izz

Inercia y2

Iyy

Inercia y1

Ixx

Inercia x3

Iyy

Inercia x2

Ixx

Inercia x1

Divide5

Divide3

Divide2

r

Data Store

Write2

q

Data Store

Write1

p

Data Store

Write r

Data Store

Memory2

q

Data Store

Memory1

p

Data Store

Memory

Jtp

Constant1

Jtp

Constant

Add5

Add4

Add3

Add2

Add1

Add

4

Omega

3

U4

2

U3

1

U2

53

5.

Blo

co D

inâ

mic

a r

ota

cio

na

l re

ferê

nc

ia t

err

a

6.

Blo

co A

cele

rôm

etr

o

dphi

dtheta

dpsi

theta

psi

3

psi

2

theta

1

phi

cos

Trigonometric

Function3

cos

Trigonometric

Function2

sin

Trigonometric

Function1

tan

Trigonometric

Function

psi_pert

To Workspace3

theta_pert

To Workspace1

Signal 1

Signal Builder1

Signal 1

Signal Builder

Product5

Product4

Product3

Product2

Product1

Product

1

s

Integrator4

1

s

Integrator2

1

s

Integrator

Divide1

Divide

Add4

Add3

Add2

Add1

Add

3

r

2

q

1

p

54

du

dv

dw

u

v

w

3

aceleração_w

2

aceleração_v

1

aceleração_u

cos

Trigonometric

Function5

cos

Trigonometric

Function4

cos

Trigonometric

Function3

sin

Trigonometric

Function2

sin

Trigonometric

Function1

Product8

Product7

Product6

Product5

Product4

Product3

Product2

Product1

Product

1

s

Integrator4

1

s

Integrator2

1

s

Integrator

Divide

m

Constant1

g

Constant

Add6

Add5

Add4

Add3

Add2

Add1

6

U1

5

theta

4

phi

3

r

2

q

1

p

55

7. Bloco Processamento entrada

2

theta_amostrado

1

phi_amostrado

g

gravidadecos

Trigonometric

Function2

asin

Trigonometric

Function1

asin

Trigonometric

Function

Product

-1

Gain1Divide1

Divide

2

aceleracao_y

1

aceleracao_x