universidade federal do paranÁ departamento de … · de controle fuzzy envolvidos no...
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