181
Daniel Strufaldi Batista Ambiente Integrado de simulação e teste de um sistema de determinação e estimação de atitude utilizando sensores MEMS Londrina 18 de novembro de 2013

Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Embed Size (px)

Citation preview

Page 1: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Daniel Strufaldi Batista

Ambiente Integrado de simulação e teste deum sistema de determinação e estimação de

atitude utilizando sensores MEMS

Londrina18 de novembro de 2013

Page 2: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 3: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Daniel Strufaldi Batista

Ambiente Integrado de simulação e teste de umsistema de determinação e estimação de atitude

utilizando sensores MEMS

Trabalho de Conclusão de Curso apresentado aoDepartamento de Engenharia Elétrica da Uni-versidade Estadual de Londrina, como requi-sito parcial à conclusão do Curso de EngenhariaElétrica.

Orientador: Prof. MSc. Francisco Granziera Júnior

Londrina18 de novembro de 2013

Page 4: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 5: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Daniel Strufaldi Batista

Ambiente Integrado de simulação e teste de umsistema de determinação e estimação de atitude

utilizando sensores MEMS

Trabalho de Conclusão de Curso apresentado aoDepartamento de Engenharia Elétrica da Uni-versidade Estadual de Londrina, como requi-sito parcial à conclusão do Curso de EngenhariaElétrica.

Trabalho aprovado. Londrina, ____ de Novembro de 2013:

Prof. MSc. Francisco Granziera JúniorOrientador

Prof. Dr. Marcelho Carvalho TosinCo-Orientador

Prof. Dr. Leonimer Flávio de MeloConvidado 1

Londrina18 de novembro de 2013

Page 6: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 7: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Dedico este trabalho à toda minha família, em especial aos meus pais, que nunca mediram

esforços em me ajudar. Com certeza, esse trabalho não teria sido possível sem essa completa

dedicação a minha criação e ao meu ensinamento.

Page 8: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 9: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Agradecimentos

∙ A todos os meus amigos que fizeram parte de minha vida nesses últimos anos. Em es-pecial aos grandes parceiros nessa longa caminhada, Danilo, Luiz, Rodrigo, Guilherme,Roberto, Danae, João Gabriel, Rafael, Raul, entre outros diversos, os quais seriam capazde preencher uma página

∙ À minha família, que nunca deixou de me apoiar ou acreditar em mim

∙ Aos meus orientadores e hoje amigos, Francisco Granziera Júnior e Marcelo CarvalhoTosin, por acreditarem e me darem a oportunidade de trabalhar nos projetos e tambémpor todo ensinamento ao longo do último ano, pois, com certeza, esse trabalho não seriapossível sem o aprendizado que obtive de vocês

∙ Aos técnicos do curso de Eng. Elétrica da UEL, por toda ajuda e suporte a todos ostrabalhos desenvolvidos ao longo da minha graduação

∙ A minha namorada e amiga Marinara, por estar sempre presente nestes quase três anosde convivência

Page 10: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 11: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

"O sucesso nasce do querer, da determinação

e persistência em se chegar a um objetivo.

Mesmo não atingindo o alvo, quem busca e vence

obstáculos, no mínimo fará coisas admiráveis".

(José de Alencar)

Page 12: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 13: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

ResumoEste trabalho descreve uma plataforma integrada de simulação e teste para um sistema de determinação

e estimação de atitude a partir do uso de sensores MEMS. O sistema é capaz de simular movimentos

no espaço livre, aplicar modelos de primeira ordem à tríades de sensores, determinar atitude a partir de

dois vetores, propagar a atitude por meio de girômetros, estimar o bias e filtrar a atitude por meio de um

Filtro de Kalman e sistemas auxiliares, tais como filtros heurísticos e algoritmos de auto-calibração. Um

sistema com sensores reais encontra-se conectado a plataforma por meio de uma interface serial. Este

sistema é composto por uma placa micro-controlada conectada a quatro outras placas, dispostas em um

formato tetraédrico, que possuem acelerômetros, magnetômetros e girômetros MEMS. Os dados obtidos

através dos sensores são entregues para a plataforma integrada e processados pela mesma de modo a de-

terminar e estimar a atitude. A plataforma ainda apresenta uma interface gráfica 3D capaz de representar

o movimento de um objeto qualquer desenhado a partir da atitude calculada. Na conclusão, o trabalho

apresenta uma ampla gama de resultados obtidos a partir do processamento das informações dos senso-

res pela plataforma, discutindo diversos resultados, principalmente aqueles relacionados à estimação de

atitude a partir Filtro de Kalman e a importância de calibração de sensores MEMS.

Palavras-chaves: Atitude, Filtro de Kalman, TRIAD, Sensores MEMS.

Page 14: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 15: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

AbstractThis work describes an integrated platform used for simulation and testing of an attitude determina-

tion and estimation system based on MEMS sensors. The system is capable of simulating motion in free

space, applying first order models to triads of sensors, determining attitude from two vectors, propagating

attitude throughout gyrometers information, estimate the attitude bias and filtering it using a Kalman fil-

ter and auxiliary systems, such as heuristic filters and algorithms for self-calibration. A system with real

sensors is connected to the platform via serial interface. This system consists of a micro-controlled board

connected to four other boards arranged in a tetrahedral shape. Those boards have MEMS accelerome-

ters, magnetometers and gyrometers. Data obtained from the sensors are delivered to the platform and

processed by it in order to determinate and estimate attitude. The platform also features a 3D graphi-

cal interface capable of representing the movement of any drawn object using attitude information. In

conclusion, the work presents a wide range of results obtained from the processing of the sensors infor-

mation by the platform, discussing several results, especially those related to attitude estimation using

Kalman filter and the importance of MEMS sensors calibration.

Key-words: Attitude, Kalman Filter, TRIAD, MEMS Sensors.

Page 16: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 17: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Lista de ilustrações

Figura 1 – Representação dos ângulos de Euler. . . . . . . . . . . . . . . . . . . . . . 40

Figura 2 – Sequência Aeroespacial utilizando ângulos de Euler. . . . . . . . . . . . . . 41

Figura 3 – Exemplo de rotação em R2. . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Figura 4 – Quatérnion representando atitude. . . . . . . . . . . . . . . . . . . . . . . . 45

Figura 5 – Fluxograma básico de uma possibilidade para determinação e estimação deatitude. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Figura 6 – Representação do Sistema de Coordenadas Local. . . . . . . . . . . . . . . 48

Figura 7 – Representação do Sistema de Coordenadas Celestial. . . . . . . . . . . . . 49

Figura 8 – Filtro de Kalman proposto para unir dados de um Determinador de Atitudecom informações de girômetros. . . . . . . . . . . . . . . . . . . . . . . . 55

Figura 9 – Estrutura mecânica do experimento MEMS. . . . . . . . . . . . . . . . . . 64

Figura 10 – Vista explodida do experimento MEMS. . . . . . . . . . . . . . . . . . . . 65

Figura 11 – Esquemático eletrônico para a placa principal e de sensores do experimentoMEMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Figura 12 – Modos de operação do software embarcado. . . . . . . . . . . . . . . . . . 71

Figura 13 – Roteamento da primeira versão da placa principal. . . . . . . . . . . . . . . 73

Figura 14 – Roteamento da primeira versão da placa de sensores. . . . . . . . . . . . . 74

Figura 15 – Placa fabricada da primeira versão da placa de sensores ao lado de uma moeda. 74

Figura 16 – Roteamento da segunda versão da placa principal. . . . . . . . . . . . . . . 76

Figura 17 – Roteamento da segunda versão da placa de sensores. . . . . . . . . . . . . . 76

Figura 18 – Placa de sensores com os componentes soldados. . . . . . . . . . . . . . . . 77

Figura 19 – Superfície superior da ferramenta de desenvolvimento MCBSTM32EXL. . . 78

Figura 20 – Esquema elétrico da placa intermediária. . . . . . . . . . . . . . . . . . . . 80

Figura 21 – Projeto de roteamento da placa intermediária. . . . . . . . . . . . . . . . . 81

Figura 22 – Diagrama do Hardware desenvolvido para o Modelo Elétrico. . . . . . . . . 82

Figura 23 – Montagem Final do Modelo Elétrico. . . . . . . . . . . . . . . . . . . . . . 83

Figura 24 – Fluxograma do software desenvolvido para o Modelo Elétrico. . . . . . . . 85

Figura 25 – Diagrama simplificado do modelo desenvolvido. . . . . . . . . . . . . . . . 90

Figura 26 – Diagrama proposto para simulação do determinador de Atitude. . . . . . . . 92

Figura 27 – Diagrama proposto para determinador de Atitude do Modelo Elétrico. . . . 93

Figura 28 – Blocos para cálculo da velocidade angular (𝜔) de um corpo. . . . . . . . . . 98

Figura 29 – Bloco para cálculo do quatérnion. . . . . . . . . . . . . . . . . . . . . . . . 99

Page 18: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Figura 30 – Bloco para conversão de um quatérnion em uma medida de sensor a partirde dada referência. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Figura 31 – Bloco para adição de erros em girômetros. . . . . . . . . . . . . . . . . . . 101

Figura 32 – Ilustração dos erros causados pelo desvios de ângulos. . . . . . . . . . . . . 102

Figura 33 – Bloco para adição de erros em sensores de referência. . . . . . . . . . . . . 103

Figura 34 – Bloco para visualização Gráfica de um objeto a partir de um quatérnion. . . 104

Figura 35 – Reprodução do Modelo Elétrico feita em SolidWorks. . . . . . . . . . . . . 104

Figura 36 – Imagem do desenho reduzido para o Modelo Elétrico, a esquerda no soft-

ware SolidWorks e a direita no Simulink. . . . . . . . . . . . . . . . . . . . 105

Figura 37 – Bloco para correção dos valores obtidos pelos girômetros através de parâ-metros de correções fornecidos. . . . . . . . . . . . . . . . . . . . . . . . . 106

Figura 38 – Bloco para correção dos valores obtidos por acelerômetros ou magnetôme-tros através de parâmetros de correções fornecidos. . . . . . . . . . . . . . 107

Figura 39 – Bloco para cálculo da covariância e da atitude através do algoritmo TRIAD. 107

Figura 40 – Sistema para o cálculo e execução do Filtro de Kalman. . . . . . . . . . . . 109

Figura 41 – Blocos responsáveis pela comunicação com o Modelo Elétrico e separaçãodos dados conforme necessário. . . . . . . . . . . . . . . . . . . . . . . . . 112

Figura 42 – Bloco responsável por gerar os vetores de referência para os sensores ACCe MAG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Figura 43 – Bloco responsável por gerar os vetores de referência para os sensores ACCe MAG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Figura 44 – Bloco responsável por converter os dados dos girômetros do formato tetraé-drico para formato triaxial (x,y,z). . . . . . . . . . . . . . . . . . . . . . . . 114

Figura 45 – Disposição Tetraédrica dos girômetros no Modelo Elétrico. . . . . . . . . . 114

Figura 46 – Informações sobre o eixo de medição do girômetro. . . . . . . . . . . . . . 115

Figura 47 – Bloco responsável por converter o valor, em bits, do Contador do Timer domicrocontrolador para segundos. . . . . . . . . . . . . . . . . . . . . . . . 116

Figura 48 – Gráfico relacionando o tempo, em segundos, entre a iteração anterior e a atual.117

Figura 49 – Proposta de implementação para o Filtro Heurístico . . . . . . . . . . . . . 117

Figura 50 – Proposta de bloco a ser implementado para o sistema de Auto-Calibração . . 118

Figura 51 – Proposta de objeto simulado pelos cenários 1 a 4. . . . . . . . . . . . . . . 121

Figura 52 – Velocidade angular e quatérnion verdadeiro para o primeiro cenário. . . . . 122

Figura 53 – Quatérnion verdadeiro separado por componente para o primeiro cenário. . 123

Figura 54 – Quatérnions do TRIAD (azul) e FK (vermelho) sobrepostos separados porcomponente para o primeiro cenário. . . . . . . . . . . . . . . . . . . . . . 123

Figura 55 – Quatérnions do TRIAD e FK sobrepostos com zoom separados por compo-nente para o primeiro cenário. . . . . . . . . . . . . . . . . . . . . . . . . . 124

Figura 56 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separadospor componente para o primeiro cenário. . . . . . . . . . . . . . . . . . . . 124

Page 19: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Figura 57 – Erros e covariâncias do bias do FK por eixo e bias estimado para o primeirocenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Figura 58 – Quatérnions do TRIAD e FK sobrepostos por componente para o segundocenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Figura 59 – Quatérnions do TRIAD e FK aproximados. . . . . . . . . . . . . . . . . . . 126

Figura 60 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separadospor componente para o segundo cenário. . . . . . . . . . . . . . . . . . . . 127

Figura 61 – Erros e covariâncias do bias do FK por eixo e bias estimado para o segundocenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Figura 62 – Quatérnions do TRIAD e FK sobrepostos separados por componente para oterceiro cenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Figura 63 – Quatérnions do TRIAD e FK sobrepostos com zoom separados por compo-nente para o terceiro cenário. . . . . . . . . . . . . . . . . . . . . . . . . . 129

Figura 64 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separadospor componente para o terceiro cenário. . . . . . . . . . . . . . . . . . . . 129

Figura 65 – Erros e covariâncias do bias do FK por eixo e bias estimado para o terceirocenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Figura 66 – Quatérnions do TRIAD e FK sobrepostos separados por componente para oquarto cenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Figura 67 – Quatérnions do TRIAD e FK sobrepostos com zoom separados por compo-nente para o quarto cenário. . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Figura 68 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separadospor componente para o quarto cenário. . . . . . . . . . . . . . . . . . . . . 132

Figura 69 – Erros e covariâncias do bias do FK por eixo e bias estimado para o quartocenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Figura 70 – Velocidade angular e quatérnion verdadeiro para o quinto cenário. . . . . . 133

Figura 71 – Quatérnion verdadeiro separado por componente para o quinto cenário. . . . 133

Figura 72 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separadospor componente para o quinto cenário. . . . . . . . . . . . . . . . . . . . . 134

Figura 73 – Erros e covariâncias do bias do FK por eixo e bias estimado para o quintocenário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Figura 74 – Quatérnion obtido com dados do AHRS para rotação em torno de z. . . . . 136

Figura 75 – Quatérnion obtido com dados do AHRS para rotação em torno sequencialem cada eixo seguida de movimento na forma de caracol. . . . . . . . . . . 137

Figura 76 – Quatérnion obtido com dados do AHRS para movimento aleatório. . . . . . 137

Figura 77 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobre-postos para movimento aleatório. . . . . . . . . . . . . . . . . . . . . . . . 139

Figura 78 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobre-postos para rotações sequenciais em x, y e z. . . . . . . . . . . . . . . . . . 139

Page 20: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Figura 79 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobre-postos para movimento em forma de caracol. . . . . . . . . . . . . . . . . . 140

Figura 80 – Esfera unitária com dados sem normalização dos ACC e MAG do Tetraedroe AHRS sem calibração . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Figura 81 – Esfera unitária com dados sem normalização dos ACC e MAG do Tetraedroe AHRS sem calibração . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Figura 82 – Esfera unitária com dados dos ACC e MAG do Tetraedro e AHRS apóscalibração. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Figura 83 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobre-postos para movimento aleatório pós calibração. . . . . . . . . . . . . . . . 143

Figura 84 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobre-postos para movimento aleatório pós calibração. . . . . . . . . . . . . . . . 143

Figura 85 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobre-postos para movimento em torno do eixo z pós calibração. . . . . . . . . . . 144

Figura 86 – Dados dos girômetros de AHRS e Tetraedro obtidos e transformados a mesmareferência para um movimento em torno de um único eixo. . . . . . . . . . 145

Figura 87 – Dados dos girômetros de AHRS e Tetraedro obtidos e transformados a mesmareferência para um movimento aleatório. . . . . . . . . . . . . . . . . . . . 145

Figura 88 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z semperturbações. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Figura 89 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z comperturbações. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Figura 90 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z esti-mando a cada 50 iterações. . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Figura 91 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z esti-mando a cada 50 iterações com aproximação da imagem. . . . . . . . . . . 149

Figura 92 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento aleatório. 150

Figura 93 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento aleatóriocom aproximação em períodos quaisquer. . . . . . . . . . . . . . . . . . . . 151

Figura 94 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento sem mu-dança de apontamento com períodos de queda livre sem atualização do es-tado do FK durante o intervalo da queda. . . . . . . . . . . . . . . . . . . . 152

Figura 95 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento sem mu-dança de apontamento com períodos de queda livre, com atualização do es-tado durante queda livre. . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Figura 96 – Captura de imagem da tela do Simulink para o Modelo de simulação desensores e atitude. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Figura 97 – Captura de imagem da tela do Simulink para o Modelo de calculo de atitudedo Modelo de Engenharia. . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Page 21: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Lista de tabelas

Tabela 1 – Comparativo entre os três métodos de representação de atitudes mais utili-zados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Tabela 2 – Características do ADIS16100. . . . . . . . . . . . . . . . . . . . . . . . . 69Tabela 3 – Características do AIS326DQ. . . . . . . . . . . . . . . . . . . . . . . . . 69Tabela 4 – Características do HMC5883L. . . . . . . . . . . . . . . . . . . . . . . . . 70

Tabela 5 – Descrição das possibilidades de comunicação entre o microcontrolador e oambiente. Dado recebido pelo Microcontrolador e os dados enviados comoresposta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Page 22: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 23: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Lista de abreviaturas e siglas

ACC Acelerômetro

ACS Attitude Control System

AHRS Attitude and Heading Reference System

CI Circuito Integrado

COTS Commercial-of-the-shelf

DCM Direct Cosine Matrix

ENIG Electroless nickel immersion gold

EKF Filtro de Kalman estendido (Extended Kalman Filter)

FK Filtro de Kalman

FPU Floating-Point Unit

GYR Girômetro

I2C Inter-Integrated Circuit

JTAG Joint Test Action Group

LED Light Emitting Diode

MAG Magnetômetro

ME Modelo Elétrico Experimento MEMS

MEMS Micro-Electro-Mechanical-Systems

MISO Master-in-Slave-Out

MOSI Master-out-Slave-in

PCI Placa de Circuito Impresso

QUEST QUaternion ESTimator

SPI Serial Peripheral Interconnect

TRIAD TriAxis Attitude Determination

UAV Unmanned Aerial Vehicle

VRML Virtual Reality Modeling Language

Page 24: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 25: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Lista de símbolos

i, j, k Números complexos que formam uma base canônica

𝜎2𝑥 Variância de um vetor x qualquer

Ψ, 𝜃, 𝜙 Ângulos de Euler. Representação de Yaw, Pitch, e Roll, respectivamente

u Vetor unitário

⌣𝑞 Quatérnion

⌣𝑞(𝑡) Derivada temporal do quatérnion ⌣

𝑞

𝑞0 ou 𝑞4 Componente escalar do Quatérnion

𝑞1, 𝑞2 e 𝑞3 Componentes vetoriais do Quatérnion

q Parte vetorial do quatérnion

b Vetor de bias retro-alimentado às medidas dos girômetros

𝜔 Vetor velocidade angular

u Vetor de medidas dos girômetros na base tríade

Ω4 Operador linear de distribuição

𝜂1 Vetor de ruído aditivo presente nas medidas dos girômetros

𝜂2 Vetor da taxa de deriva do bias dos girômetros

P(𝑡) Matriz de covariância do estado

A Matriz de Atitude

I Matriz Identidade (dimensão especificada)

R Matriz de Rotação

W Matriz de conversão de base tetraédrica para tríade

I𝑟 A matriz de inércia do corpo com elementos não-nulos apenas em sua dia-gonal principal

m Uma sequência de torques aplicados sobre um corpo

Ω′ Matriz anti-simétrica

Page 26: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

R𝑧Ψ Matriz de rotação de Ψ graus em torno do eixo z

R𝑦𝜃 Matriz de rotação de 𝜃 graus em torno do eixo y

R𝑥𝜙 Matriz de rotação de 𝜙 graus em torno do eixo x

𝐿𝑞(.) Operador linear de rotação

vi Vetor unitário de referência

wi Vetor unitário de observação

r𝑖 Tríade de referência obtida a partir de vi

s𝑖 Tríade de observação obtida a partir de wi

M𝑟𝑒𝑓 Matriz de referência formada a partir de r𝑖

M𝑜𝑏𝑠 Matriz de observação formada a partir de s𝑖

P𝜃𝜃 Matriz de covariância da atitude calculada pelo TRIAD

Δ𝜃 Vetor ângulo incremental

M(Δ𝜃) Matriz de transição para o quatérnion

Φ𝑘 Matriz ou função de transição

x(+)𝑘 Vetor estado propagado após a estimação

x(−)𝑘+1 Estado propagado

⌣𝑞(−)

𝑘+1 Componente quaterniônica do Estado propagado

b(−)𝑘+1 Componente do bias do Estado propagado

Φ𝑘 Matriz de transição reduzida

Q𝑘 Matriz reduzida de covariância do sistema

x(−)𝑘 Vetor estado propagado antes da estimação

x(+)𝑘 Vetor estado propagado após a estimação

K𝑘 Matriz ganho de Kalman

P(−)𝑘 Matriz de covariância reduzida propagada antes da estimação

P(+)𝑘 Matriz de covariância reduzida propagada após a estimação

H𝑘 Matriz de medida

Page 27: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

K𝑘 Matriz ganho de Kalman reduzida

H𝑘 Matriz de medida reduzida

S𝑘(.) Matriz de redução

Ξ(.) Operador de distribuição

qEstFK Quatérnion estimado pelo Filtro de Kalman

qTriad Quatérnion calculado pelo algoritmo TRIAD

qTrue Quatérnion calculado pelo gerador de movimentos

MAG(x,y,z) Dados lidos de um magnetômetro três eixos

ACC(x,y,z) Dados lidos de um acelerômetro três eixos

GYR(1,2,3,4) Velocidade angular obtida por quatro girômetros de um eixo

GYR_tmp(1,2,3,4) Temperatura obtida por quatro girômetros de um eixo

∆𝑡 Intervalo de tempo entre duas iterações do Ambiente Integrado

ZYX Sequência Aeroespacial de rotação

Page 28: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 29: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Sumário

I Sobre o Trabalho 31

1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1.1 O tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1.2 A Meta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.2.1 Objetivos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.3 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

II Revisão da Literatura 37

2 Atitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.1 Representação de Atitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.1.1 Ângulos de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.1.2 Matriz de Rotação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.1.3 Quatérnions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.1.3.1 Definição de Quatérnion . . . . . . . . . . . . . . . . . . . . 44

2.1.3.2 Representação de Atitude com Quatérnions . . . . . . . . . . 44

2.1.3.3 Duplicidade de Representação em Quatérnions . . . . . . . . 45

2.1.4 Comparativo rápido entre os métodos . . . . . . . . . . . . . . . . . . 46

3 Determinação e Estimação da Atitude . . . . . . . . . . . . . . . . . . . . . 47

3.1 Sistema de Coordenadas e Vetores de Referência para Atitude . . . . . . . . . . 48

3.2 Sensores de Atitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.2.1 Sensores Inerciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.2.2 Sensores de Referência . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.2.3 Acelerômetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.3 Algoritmo para Determinação de Atitude - TRIAD . . . . . . . . . . . . . . . 53

3.4 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.4.1 Concepção básica da Estimação Proposta . . . . . . . . . . . . . . . . 55

3.4.2 Descrição das Etapas do Filtro . . . . . . . . . . . . . . . . . . . . . . 57

3.4.2.1 Propagação . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.4.2.2 Estimação . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Page 30: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

III Experimento MEMS e seu Modelo Elétrico 61

4 Experimento MEMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.1 Projeto Mecânico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.2 Projeto Eletrônico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.2.1 Sistema de Alimentação . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.2.2 Processamento e memória . . . . . . . . . . . . . . . . . . . . . . . . 67

4.2.3 Circuitos de interface com os Computadores de Bordo . . . . . . . . . 67

4.2.4 Interconexões dos sensores . . . . . . . . . . . . . . . . . . . . . . . . 68

4.2.5 Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.3 Projeto de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.3.1 Modos de operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.3.2 Processamento de dados . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.4 Placa Principal e de Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.4.1 Primeira versão do Hardware . . . . . . . . . . . . . . . . . . . . . . . 73

4.4.1.1 Placa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.4.1.2 Placas de Sensores . . . . . . . . . . . . . . . . . . . . . . . 73

4.4.2 Segunda versão do Hardware . . . . . . . . . . . . . . . . . . . . . . . 75

4.4.2.1 Placa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.4.2.2 Placas de Sensores . . . . . . . . . . . . . . . . . . . . . . . 75

5 Modelo Elétrico E-MEMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775.1 Etapas na construção e Hardware do Modelo . . . . . . . . . . . . . . . . . . . 77

5.1.1 Montagem das placas de sensores . . . . . . . . . . . . . . . . . . . . 77

5.1.2 Placa de desenvolvimento MCBSTM32EXL . . . . . . . . . . . . . . . 78

5.1.3 Placa intermediária . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.1.4 Resultados testes iniciais do sistema . . . . . . . . . . . . . . . . . . . 81

5.1.5 Esquema Físico do Modelo . . . . . . . . . . . . . . . . . . . . . . . . 82

5.1.6 Fabricação e Montagem do Modelo Tetraédrico em Acrílico . . . . . . 83

5.2 Software do Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.2.1 Requisitos de Software . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.2.2 Fluxograma de Funcionamento . . . . . . . . . . . . . . . . . . . . . . 84

IV Ambiente Integrado de Simulação e Processamento de da-dos 87

6 Ambiente Integrado para Determinação de Atitude . . . . . . . . . . . . . 896.1 Diagrama e requisitos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.2 Descrição do Modelo com Simulador de Sensores . . . . . . . . . . . . . . . . 90

6.3 Descrição do Modelo para interface com Sensores Reais . . . . . . . . . . . . 92

Page 31: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

6.3.1 Modos de operação do microcontrolador e ambiente . . . . . . . . . . . 94

7 Blocos do Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977.1 Blocos exclusivos aos dados simulados . . . . . . . . . . . . . . . . . . . . . . 97

7.1.1 Gerador de Movimentos . . . . . . . . . . . . . . . . . . . . . . . . . 97

7.1.1.1 Cálculo de velocidade angular . . . . . . . . . . . . . . . . . 97

7.1.1.2 Cálculo do quatérnion . . . . . . . . . . . . . . . . . . . . . 98

7.1.2 Simulação das medidas de sensores . . . . . . . . . . . . . . . . . . . 99

7.1.3 Adição de erros aos sensores simulados . . . . . . . . . . . . . . . . . 100

7.1.3.1 Sensor Inercial - Girômetro . . . . . . . . . . . . . . . . . . 100

7.1.3.2 Sensores de referência - Acelerômetro e Magnetômetro . . . 101

7.2 Blocos Principais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.2.1 Modelo para visualização gráfica . . . . . . . . . . . . . . . . . . . . . 103

7.2.2 Correção de parâmetros dos sensores . . . . . . . . . . . . . . . . . . . 105

7.2.2.1 Sensor Inercial - Girômetro . . . . . . . . . . . . . . . . . . 105

7.2.2.2 Sensores de referência - Acelerômetro e Magnetômetro . . . 106

7.2.3 TRIAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

7.2.4 Propagador/Estimador (Filtro de Kalman) . . . . . . . . . . . . . . . . 108

7.2.4.1 Propagação . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7.2.4.2 Estimação . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3 Blocos exclusivos ao modelo com dados reais . . . . . . . . . . . . . . . . . . 111

7.3.1 Comunicação Serial e Separação de Dados . . . . . . . . . . . . . . . . 112

7.3.2 Gerador de referência . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.3.3 Conversão modelo tetraédrico para tríade . . . . . . . . . . . . . . . . 114

7.3.4 Cálculo do Delta T para o Filtro de Kalman . . . . . . . . . . . . . . . 116

7.3.5 Filtro Heurístico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

7.3.6 Auto-Calibrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198.1 Modelo com dados de sensores simulados . . . . . . . . . . . . . . . . . . . . 120

8.1.1 Cenário 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

8.1.2 Cenário 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.1.3 Cenário 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

8.1.4 Cenário 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

8.1.5 Cenário 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

8.2 Comparação do Modelo com AHRS . . . . . . . . . . . . . . . . . . . . . . . 135

8.2.1 Primeiro Teste - Validação do Ambiente Integrado . . . . . . . . . . . . 136

8.2.2 Segundo Teste - Resultados pré e pós Calibração Magnetômetro . . . . 138

8.2.2.1 Resultados a Priori da Calibração . . . . . . . . . . . . . . . 139

8.2.2.2 Resultados após a calibração . . . . . . . . . . . . . . . . . . 142

Page 32: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2.3 Dados dos Girômetros . . . . . . . . . . . . . . . . . . . . . . . . . . 1448.3 Modelo com dados reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

8.3.1 Rotações em um único eixo . . . . . . . . . . . . . . . . . . . . . . . . 1478.3.1.1 Estimação do estado a cada 10 iterações . . . . . . . . . . . . 1478.3.1.2 Estimação do estado a cada 50 iterações . . . . . . . . . . . . 148

8.3.2 Movimento aleatório . . . . . . . . . . . . . . . . . . . . . . . . . . . 1508.3.3 O exemplo da Queda Livre . . . . . . . . . . . . . . . . . . . . . . . . 151

V Fechamento 155

9 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579.1 Discussão dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579.2 Para trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589.3 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

APÊNDICE A Softwares ME . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163A.1 Função Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163A.2 Função de Interrupção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

APÊNDICE B Modelos do Simulink . . . . . . . . . . . . . . . . . . . . . . . 167B.1 Modelo de Simulink montado para simulação . . . . . . . . . . . . . . . . . . 167B.2 Modelo de Simulink utilizado para o calculo de atitude através de sensores reais 168

APÊNDICE C Códigos em Simulink . . . . . . . . . . . . . . . . . . . . . . . 169C.1 Código para o Bloco EQ_Euler . . . . . . . . . . . . . . . . . . . . . . . . . . 169C.2 Código para o Bloco de cinemática . . . . . . . . . . . . . . . . . . . . . . . . 169C.3 Código para o Bloco de Simulink gyro model . . . . . . . . . . . . . . . . . . 169C.4 Código para o Bloco de Simulink sensor model . . . . . . . . . . . . . . . . . 170C.5 Códigos para os Blocos de Simulink inv gyro model . . . . . . . . . . . . . . . 170C.6 Códigos para os Blocos de Simulink inv sensor model . . . . . . . . . . . . . . 170C.7 Códigos para o Bloco TRIAD . . . . . . . . . . . . . . . . . . . . . . . . . . . 170C.8 Códigos para o Bloco Propagador FK . . . . . . . . . . . . . . . . . . . . . . 171C.9 Códigos para o Bloco de Estimador FK: . . . . . . . . . . . . . . . . . . . . . 172C.10 Código Bloco Tetra 2 Triad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

APÊNDICE D Códigos para Plotagem . . . . . . . . . . . . . . . . . . . . . . 175D.1 Código em Matlab para plotagem dos dados de simulação . . . . . . . . . . . . 175D.2 Código em Matlab para plotagem dos dados do Tetraedro . . . . . . . . . . . . 177D.3 Código em Matlab para plotagem dos dados dos sensores nas esferas unitárias . 177

Page 33: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Parte I

Sobre o Trabalho

Page 34: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 35: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

33

1 Introdução

1.1 O tema

Qualquer satélite, independente do seu tipo e tamanho, tem como função executar ta-refas onde seja essencial sua comunicação com outros corpos espaciais, com a Terra, ou umdispositivo qualquer. Para que seja possível estabelecer uma troca de dados, entretanto, os ins-trumentos do satélite devem estar apontados para as devidas direções, que previamente deter-minada, ou tal ação não será consumada.

Atitude, esse é o termo utilizado para definir o apontamento, ou seja, a orientação deum objeto em relação a uma referência.

Por conseguinte, para garantir que um satélite desenvolva suas funções plenamente, éprimordial que o mesmo tenha sua atitude controlada conforme o desejado, implicando, assim,que o mesmo possua um sistema de controle para esse parâmetro. O nome comumente utilizadopara tal controle é ACS (Attitude Control System).

Obviamente, para se ter controle de algum parâmetro é necessário também conhecê-lo.Assim, não menos importante que o sistema de controle de atitude, é o sistema utilizado paradeterminar o apontamento de um objeto.

Atualmente, existem diversas maneiras para se determinar a atitude ou apontamento deum objeto. Os métodos mais comuns fazem uso de sensores de referência tais como, sensoresmagnéticos, sensores de sol, sensores de estrelas e outras possíveis grandezas físicas que sirvamde referência. Meios mais sofisticados também incluem a dinâmica do corpo, dessa forma,utilizam sensores inerciais para medidas de velocidade angular e acelerações.

Contudo, determinar a atitude, não é um problema exclusivo de objetos espaciais. Emum avião, por exemplo, é inimaginável que o mesmo não tenha sua atitude calculada, controladae por fim representada na cabine. A estes sistemas em aviões é dado o nome AHRS (Attitude

and heading reference system). Sistemas como aeronaves, que não são submetidos a ambientesde microgravidade, podem fazer uso de sensores de aceleração, para medida do campo gravita-cional, como referência à inclinação e magnetômetros, para medição do campo geomagnético,para medida do apontamento. Além desses, sensores de velocidade angular e medidas de ângulopor GPS também são utilizados na estimação da atitude.

Aplicações domésticas de determinação de atitude, tais como controles de video games,celulares, UAV, utilizam-se de sensores conhecidos como MEMS, que são sensores de baixocusto e desempenho, mas que através do uso de algoritmos sofisticados resultem em valores deatitude com uma precisão satisfatória para tais aplicações.

Dessa maneira, esse trabalho propõem a implementação de um sistema, em software,que seja capaz de determinar e estimar a atitude de um corpo a partir de dados obtidos comsensores MEMS, como magnetômetros, acelerômetros e girômetros, desenvolvendo ainda um

Page 36: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

34 Capítulo 1. Introdução

hardware com esses sensores para testes práticos, em conjunto com o ambiente integrado desimulação para desenvolvimento, validação e simulação dos algoritmos utilizados.

1.2 A Meta

1.2.1 Objetivos Gerais

Mediante a importância e necessidade da determinação de atitude em diversas aplica-ções, esse trabalho tem como principal objetivo desenvolver, em um ambiente (software) único,um modelo capaz de simular e testar um sistema de determinação e estimação de atitude.

Visando o uso em aplicações tanto terrestres quanto espaciais, e, sabendo que ambasfazem uso de sensores como magnetômetros, acelerômetros e girômetros, o modelo trabalharácom estas duas vertentes e utilizará tanto dados reais quanto dados simulados. No caso do uso dedados simulados, o próprio ambiente irá gerar a leitura dos sensores, a partir do movimento deum corpo abstrato também gerado em software. Já para dados reais, o modelo fará o tratamentode dados recebidos do hardware montado.

O hardware que será montado para este desenvolvimento tem como base o projeto doExperimento MEMS, descrito em (TOSIN; GRANZIERA JR., 2011).

1.2.2 Objetivos Específicos

Para alcançarmos a proposta anterior, alguns objetivos mais pontuais e específicos sãonecessários, sendo ou consequências ou necessidades do trabalho. Esses são:

∙ Desenvolvimento de um Modelo Elétrico do Experimento MEMS.

∙ Comprovação do hardware desenvolvido para o Experimento MEMS (CARVALHO NETO,2012).

∙ Desenvolvimento do hardware/software embarcado necessários para o Modelo Elétrico.

∙ Validação e novos testes com os algoritmos apresentados por (GRANZIERA JR., 2006).

∙ Verificação e comprovação da importância da calibração para os sensores MEMS utiliza-dos.

Page 37: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

1.3. Organização do Trabalho 35

1.3 Organização do Trabalho

O trabalho está divido em dez capítulos divididos em cinco partes, sendo a primeiraparte referente a essa seção. O restante do trabalho segue o seguinte formato:

∙ Parte 2 - Revisão de Literatura. Esta é responsável por fazer um levantamento e apresentara teoria envolvida no processo de estimação de atitude. Em um capítulo faz-se a discussãosobre atitude e seus métodos de representação enquanto no outro é tratado exclusivamentedos meios para determinação e estimação da atitude.

∙ Parte 3 - Experimento MEMS e Modelo Elétrico. O primeiro capítulo nesta parte (capítulo4 deste trabalho) apresenta a versão inicial do Experimento MEMS, descrita em (TOSIN;GRANZIERA JR., 2011) e o trabalho já realizado acerca do experimento, apresentadoem (CARVALHO NETO, 2012), na sequência são apresentadas as novas mudanças jáconhecidas para a segunda versão, cujo desenvolvimento é feito paralelamente a este tra-balho. Já o quinto capítulo do trabalho é responsável por apresentar o Modelo Elétricoproposto e construído neste trabalho para o experimento MEMS, descrevendo os hardwa-res e softwares que foram criados para tornar o sistema funcional e também as partesmecânicas para tornar a geometria do Modelo o mais próxima possível da ideia presenteno E-MEMS.

∙ Parte 4 - Ambiente Integrado de Simulação e Processamento de dados. Esta é a principalparte do trabalho e é dividida em três capítulos. No primeiro capítulo, são apresentadosos conceitos, fluxogramas, requisitos, métodos de funcionamento entre outros quesitossobre o Ambiente Integrado proposto para a determinação e estimação de atitude no soft-ware Simulink, tanto para o sistema capaz de simular sensores quanto ao modelo capaz dese comunicar com o Modelo Elétrico desenvolvido. Em um segundo momento, há umaampla discussão sobre cada passagem implementada no Ambiente Integrado, destacandoos algoritmos, códigos e soluções necessárias para o Ambiente se tornasse funcional.Finalmente, o último capítulo desta parte apresenta e discuti os resultados obtidos atra-vés da interface do Ambiente Integrado com os sensores presentes no Modelo Elétrico,comparando-os ainda com os dados simulados e com um equipamento AHRS da empresaINNALABS.

∙ Parte 5 - Fechamento. Nesta são feitas as discussões finais sobre os principais pontosabordados em todo o restante do trabalho.

Page 38: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 39: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Parte II

Revisão da Literatura

Page 40: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 41: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

39

2 AtitudeNesse capítulo é abordado o tema Atitude e principalmente suas possíveis representa-

ções. Uma grande parcela de informações presentes nesse são baseadas nas teorias reproduzidasem (KUIPERS, 1999) e (SIDI, 2000).

Não existe uma definição totalmente aceita para o termo atitude. Inclusive, esta pode va-riar muito dependendo da área de aplicação, porém, fundamentalmente, o termo atitude refere-se a posição de um corpo dado um referencial. Para melhor compreensão, segue a definiçãodada em (TAKAHASHI, 2010), que conceitua de uma maneira ampla o termo em questão:

A atitude de um objeto pode ser definida como sua orientação no espaço, ou seja,

a rotação ou a posição angular em que o mesmo se encontra em relação a uma

posição angular de referência.

2.1 Representação de Atitude

São diversas as maneiras para a representação de atitude. Em (SHUSTER, 1993) há umaampla discussão acerca de diversos métodos.

Por questões práticas, este trabalho representará apenas as três maneiras mais comuns,que são:

∙ Ângulos de Euler;

∙ Matriz de rotação;

∙ Quatérnions;

Apesar de possuírem caraterísticas distintas, discutidas na seção 2.1.4, é válido afirmarque todas recaem em uma matriz de atitude que realiza a rotação de um sistema de coordenadasde referência para um segunda, de observação.

Nas seções seguintes os princípios básicos de cada representação são discutidos.

2.1.1 Ângulos de Euler

Talvez esta seja a representação mais popular sobre sequências de rotações. O nomedeve-se ao seu inventor, Leonard Euler, matemático e físico suíço, que enunciou o seguinteteorema:

Dados dois sistemas de coordenadas ortogonais e independentes eles podem ser

associados por uma sequência de rotações (não mais que três) sobre os eixos de

coordenadas, desde que não haja duas rotações consecutivas sobre um mesmo eixo.

Page 42: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

40 Capítulo 2. Atitude

Em outras palavras, Euler afirma que é possível reproduzir uma rotação a partir detrês rotações em sequência (dadas por um ângulo), desde que não haja rotações em sequênciasobre um mesmo eixo. Comumente, utilizamos as letras gregas Ψ (Psi) , 𝜃 (theta), 𝜙 (phi) pararepresentar os ângulos de Euler nos eixos x, y e z, respectivamente. Na figura 1 é possívelvisualizar os ângulos.

Figura 1 – Representação dos ângulos de Euler.

Como afirmado por Euler, são necessárias três rotações desde que duas não sejam feitasseguidas no mesmo eixo, o que totalizam doze modos possíveis para representar a rotação de umcorpo. Conhecer a ordem da rotação é de extrema importância, visto que os equacionamentosmatemáticos variam de acordo com a mesma. As doze possibilidades são:

𝑋𝑌 𝑍 𝑌 𝑍𝑋 𝑍𝑋𝑌

𝑋𝑍𝑌 𝑌 𝑋𝑍 𝑍𝑌 𝑋

𝑋𝑌𝑋 𝑌 𝑍𝑌 𝑍𝑋𝑍

𝑋𝑍𝑋 𝑌𝑋𝑌 𝑍𝑌 𝑍

A sequência que merece destaque é dada por rotações seguidas sobre os eixos z, ye x, respectivamente, mais conhecida como Sequência Aeroespacial (ZYX). Por convenção,nesta, todos os ângulos seguem o sentido da regra da mão direita e são chamados de Arfagem(Yaw) representado pelo símbolo Ψ para rotações no eixo z, Elevação (Pitch) por 𝜃 no eixo y eRolagem (Roll) por 𝜙 no eixo x, como mostra a figura 2.

Quando trabalhando com ângulos de Euler, é importante saber que existe uma restriçãoquanto ao intervalo de rotações dos mesmos, para que não haja a duplicidade de representaçãoe o efeito chamando de gimbal lock. Portanto, os valores dos ângulos devem estar contidos nosintervalos mostrados na equação (2.1).

Ψ = [−𝜋,+𝜋] ; 𝜃 =

[−𝜋

2,+

𝜋

2

]; 𝜙 = [−𝜋,+𝜋] (2.1)

Page 43: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

2.1. Representação de Atitude 41

Figura 2 – Sequência Aeroespacial utilizando ângulos de Euler.

2.1.2 Matriz de Rotação

A Matriz de Rotação, também chamada na literatura por Matriz de Atitude ou Matrizde Cossenos Diretores (DCM), relaciona dois vetores em um espaço através da matriz querotaciona um desses vetores até o outro. A equação 2.2 mostra sua relação básica.

v𝑜𝑏𝑠 = Rv𝑟𝑒𝑓 (2.2)

Sendo v𝑜𝑏𝑠 o vetor observado, ou seja, a componente do sistema de coordenadas de ob-servação de um corpo, v𝑟𝑒𝑓 o vetor com as componentes do sistema de coordenada de referênciae finalmente R, uma matriz quadrada que associa o vetor de referência com as coordenadas deobservação.

Toda matriz de rotação, além de ser quadrada, possui duas propriedades matemáticasimportantes, sendo essas as seguintes:

∙ São Ortogonais, ou seja, a inversa desta é equivalente à sua transposta;

∙ Determinante Unitário;

Antes de aprofundar no plano tridimensional, onde será dado o foco para a matriz derotação para a rotação aeroespacial, é válido reforçar um argumento sobre rotações.

Existem duas maneiras de se representar uma rotação, que são:

∙ Rotação do Plano – Pontos Fixos

∙ Rotação dos Pontos – Plano Fixo

Page 44: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

42 Capítulo 2. Atitude

Conforme mostrado em (KUIPERS, 1999), através de passagens matemáticas não apre-sentadas por aqui, a matriz de rotação para o primeiro caso é mostrada na equação 2.3 e para osegundo caso na 2.4.

A𝑃𝑙𝑎𝑛𝑜𝑠 =

[cos𝛼 sin𝛼

− sin𝛼 cos𝛼

](2.3)

A𝑃𝑜𝑛𝑡𝑜𝑠 =

[cos𝛼 − sin𝛼

sin𝛼 cos𝛼

](2.4)

Conforme pode ser visto, uma é transposta da outra, mas, consoante a propriedade ma-temática apontada anteriormente elas consequentemente são inversas uma a outra, e, além dessefato, elas acabam sendo equivalentes. Para verificar essa última característica faz-se uma análiseda figura 3.

Figura 3 – Exemplo de rotação em R2.

Sendo os eixos do Plano 𝑥 e 𝑦 e considerando o Ponto 𝑃 , para levarmos o eixo a𝑥 doPlano até esse ponto, é necessário rotacionar o Plano por um ângulo 𝛼. Entretanto, assumindoa rotação do Ponto, o mesmo deve ser rotacionado por −𝛼 para atingir o Plano. A partir daspropriedades do sin e cos mostradas nas equações 2.5 e 2.6, e imaginando o segundo caso, aosubstituir −𝛼 na matriz da equação 2.4, a mesma será equivalente a matriz da equação 2.3.

cos(𝛼) = cos(−𝛼) (2.5)

sin(𝛼) = − sin(−𝛼) (2.6)

Finalmente, sabendo que a análise seguiu o sentido de rotações mais comum, que se-gue a regra da mão direita (o sentido anti-horário é positivo), comprova-se que a matriz a serutilizada para rotações em 2D é dada pela equação 2.3.

Partindo finalmente para a avaliação em um sistema de coordenadas tridimensionais, econsiderando a rotação aeroespacial, a matriz de rotação será dada pela equação 2.7.

R = R𝑧ΨR

𝑦𝜃 R

𝑥𝜙 (2.7)

Page 45: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

2.1. Representação de Atitude 43

Sendo as matrizes R𝑥𝜙, R𝑦

𝜃 e R𝑧Ψ, respectivamente, dadas pelas equações 2.8, 2.9 e 2.10.

R𝑥𝜙 =

⎡⎢⎢⎣ 1 0 0

0 cos𝜙 sin𝜙

0 − sin𝜙 cos𝜙

⎤⎥⎥⎦ (2.8)

R𝑦𝜃 =

⎡⎢⎢⎣ cos 𝜃 0 − sin 𝜃

0 1 0

sin 𝜃 0 cos 𝜃

⎤⎥⎥⎦ (2.9)

R𝑧Ψ =

⎡⎢⎢⎣ cos Ψ sin Ψ 0

− sin Ψ cos Ψ 0

0 0 1

⎤⎥⎥⎦ (2.10)

Finalmente, substituindo os valores e realizando a multiplicação das matrizes, é obtidoo resultado mostrado na equação 2.11.

R = R𝑥𝜙

⎡⎢⎢⎣cos(𝜃) 0 − sin(𝜃)

0 1 0

sin(𝜃) 0 cos(𝜃)

⎤⎥⎥⎦⎡⎢⎢⎣cos(Ψ) sin(Ψ) 0

sin(Ψ) cos(Ψ) 0

0 0 1

⎤⎥⎥⎦

R =

⎡⎢⎢⎣1 0 0

0 cos(𝜙) sin(𝜙)

0 − sin(𝜙) cos(𝜙)

⎤⎥⎥⎦⎡⎢⎢⎣cos(𝜃) cos(Ψ) cos(𝜃) sin(Ψ) − sin(𝜃)

− sin(Ψ) cos(Ψ) cos(𝜃) sin(𝜙)

sin(𝜃) cos(Ψ) sin(𝜃) sin(Ψ) cos(𝜃)

⎤⎥⎥⎦

R =

⎡⎢⎢⎢⎢⎢⎢⎢⎣

cos(Ψ) cos(𝜃) sin(Ψ) cos(𝜃) − sin(𝜃)(cos(Ψ) sin(𝜃) sin(𝜙)

− sin(Ψ) cos(𝜙)

) (sin(Ψ) sin(𝜃) sin(𝜙)

+ cos(Ψ) cos(𝜙)

)cos(𝜃) sin(𝜙)(

cos(Ψ) sin(𝜃) cos(𝜙)

+ sin(Ψ) sin(𝜙)

) (sin(Ψ) sin(𝜃) cos(𝜙)

− cos(Ψ) sin(𝜙)

)cos(𝜃) cos(𝜙)

⎤⎥⎥⎥⎥⎥⎥⎥⎦(2.11)

A matriz R obtida é a Matriz de Atitude ou DCM, representada pelos ângulos de Eulerpara a sequência aeroespacial. Apesar de menos comum e não utilizadas para aplicações aero-espaciais, as outras onze combinações também podem ser representadas da maneira como feitopara a rotação de ZYX.

2.1.3 Quatérnions

O último método a ser discuto, é, hoje, um dos mais utilizados na representação derotações em corpos, chamada de representação por quatérnions.

Page 46: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

44 Capítulo 2. Atitude

2.1.3.1 Definição de Quatérnion

O conceito de quatérnion foi primeiramente introduzido por Hamilton, um matemático,físico e astrônomo irlandês, em 1843. Os quatérnions, representados normalmente por ⌣

𝑞 sãonúmeros hipercomplexos formado por quatro componentes (Rank 4), onde uma componente éescalar e as outras três são vetoriais, conforme dado pela equação 2.12.

⌣𝑞 = 𝑞0 + 𝑞1i + 𝑞2j + 𝑞3k = 𝑞0 + q (2.12)

Onde, 𝑞0 representa a parte escapar e q a componente vetorial.

Por conveniência, o quatérnion pode ser escrito também das seguintes formas, segundoa equação (2.13).

⌣𝑞 = (𝑞0, 𝑞1, 𝑞2, 𝑞3) =

⎡⎢⎢⎢⎢⎣𝑞0

𝑞1

𝑞2

𝑞3

⎤⎥⎥⎥⎥⎦ 𝑜𝑢⌣𝑞 = (𝑞1, 𝑞2, 𝑞3, 𝑞0) =

⎡⎢⎢⎢⎢⎣𝑞1

𝑞2

𝑞3

𝑞0

⎤⎥⎥⎥⎥⎦ (2.13)

Como citado, a parte escalar do quatérnion é dada pelo seu elemento 𝑞0, entretanto,quando representado em um vetor 4×1, nem sempre o mesmo será representado no primeiroelemento. Alguns algoritmos e literaturas presentes tratam 𝑞0 como o último elemento do vetor,portanto, é essencial prestar atenção a esse fato.

Outra característica importante dos quatérnions é que eles apresentam regras algébricaspróprias, diferentes das vistas na álgebra usual, definidos pela Álgebra Quaterniônica (KUI-PERS, 1999). Logo, possuem seu próprio conjunto de operações como adição, multiplicação,conjugação, inversão, etc.

Toda a teoria quaterniônica baseia-se na propriedade fundamental mostradas nas rela-ções da equação (2.14).

i2 = j2 = k2 = ijk = −1 (2.14)

ij = −ji = k

jk = −kj = i

ki = −ik = j

2.1.3.2 Representação de Atitude com Quatérnions

Um corpo rígido pode ter sua orientação representada como uma rotação (𝜃) em torno deum único eixo (u). Para a representação de atitude através do descrito, um quatérnion unitárioque representa essa rotação é descrito pela equação (2.15).

⌣𝑞 = cos

(𝜃

2

)+ u sin

(𝜃

2

)(2.15)

Page 47: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

2.1. Representação de Atitude 45

Pode-se interpretar esse quatérnion como o vetor unitário u que aponta para a direçãodo eixo ao qual o corpo é submetido a uma rotação de ângulo 𝜃 partindo de sua posição dereferência. A figura 5 mostra essa representação.

Figura 4 – Quatérnion representando atitude.

Fonte: (CARVALHO NETO, 2012).

O quatérnion também pode atuar como um operador de rotação que gira um vetorv = (0, 𝑣1, 𝑣2, 𝑣3) um ângulo 𝜃 sobre o eixo apontado por û (vetor unitário formado pelas com-ponentes vetoriais do quatérnion). A rotação é dada pelo operador quaterniônico 𝐿𝑞 e definidocomo:

𝐿𝑞(v) =⌣𝑞 ⊗ v ⊗ ⌣

𝑞*

(2.16)

𝐿𝑞(v) = (2𝑞20 − 1)v + 2(v · q)q + 2𝑞0(q× v) (2.17)

Esta rotação também pode ser representada numa matriz de atitude Q3𝑋3, mostrada nadescrição de funcionamento do Ambiente Desenvolvido na seção (7.9).

2.1.3.3 Duplicidade de Representação em Quatérnions

Embora o quatérnion não apresente singularidades por não lidar com funções trigono-métricas e possuir apenas quatro elementos para representar atitude, o mesmo possui a des-vantagem de existir sempre dois quatérnions para a representar a mesma atitude, o que o tornaambíguo, como mostrado na equação 2.18. O quatérnion ⌣

𝑞 , e o quatérnion −⌣𝑞 representam a

mesma atitude.

(− cos𝛼

2,u sin

𝛼

2) ≡ (cos

𝛼

2,−u sin

𝛼

2) (2.18)

Page 48: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

46 Capítulo 2. Atitude

2.1.4 Comparativo rápido entre os métodos

Apesar das três notações para representação de atitude serem as mais utilizadas, isso nãoimplica que as mesmas são necessariamente as melhores ou mais corretas para essa finalidade.Cada método possui suas próprias características, dessa forma, o uso ou não de determinadométodo depende muito do que se deseja.

Os ângulos de Euler com certeza trazem a melhor representação visual, sendo assimprovavelmente é a maneira para análise gráfica mais amigável, além de não apresentarem re-dundâncias. Contudo, o uso para cálculos computacionais estão longe de serem práticos, umavez que as equações provenientes do mesmo, além de trabalhosas, possuem descontinuidades.

Por possuírem propriedades únicas, os quatérnions se mostram como uma ótima opçãopara a representação da atitude. Estes podem descrever qualquer orientação, visto que não ori-ginam divisões por zero tal como os ângulos de Euler. No entanto, existem dois quatérnionsdiferentes para representar a mesma rotação, ou seja, diferentes representações para a mesmaatitude. Os quatérnions são amplamente utilizados em navegação embarcada, pois sua integra-ção temporal exige menor custo computacional frente as outras representações.

A representação por Matriz de Rotação é mais proveitosa pela simplicidade na utiliza-ção para rotações sucessivas e por não ter singularidades, entretanto, esta contém nove parâ-metros, sendo seis redundantes, sendo assim mais utilizada em análises. A tabela 1 resume asinformações comparativas descritas nessa seção.

Tabela 1 – Comparativo entre os três métodos de representação de atitudes mais utilizados.

Fonte: (WERTZ, 1978).Método Notação Vantagens Desvantagens Aplicações

Ângulos deEuler

𝜙,𝜃,Ψ Sem parâmetros re-dundantes, interpre-tação física e clara

Funções trigonomé-tricas, singularidades,difícil descrever sequên-cias de rotações

Estudosanalíticos

Quatérnion ⌣𝑞 Sem singularidades,

facilidade em des-crever sequências derotações

Um parâmetro redun-dante, difícil interpreta-ção física

NavegaçãoEmbarcada

Matriz deRotação

R Sem singularidades,facilidade em des-crever sequências derotações

Seis parâmetros redun-dantes

Análises

Page 49: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

47

3 Determinação e Estimação da AtitudeNesse capítulo são apresentados os conceitos básicos necessários ao entendimento do

processo de determinação e estimação de atitude. O objetivo maior é apresentar os algoritmosutilizados nesse trabalho para determinação de atitude e estimação.

Entretanto, antes são abordados e explicados os conceitos de Sistemas de Coordenadas,Vetores de Referências e os tipos de sensores que podem ser utilizados para a determinação deatitude.

É importante também não confundir os termos determinação e estimação de atitude. Oprimeiro está relacionado ao processo de determinar a rotação necessária para levar uma de-terminada orientação observada de um corpo até uma segunda orientação, de referência, dessaforma, obviamente, esse processo necessita de dois sistemas de coordenadas, um de referênciae outro sistema de coordenadas do corpo. Já o processo de estimação, quando realizado porinformações de sensores inerciais, é realizado através de algoritmos que não podem ser consi-derados como determinadores de atitudes, devido ao fato de que esses modelos matemáticos, naverdade, combinam informações da atitude determinada através de sensores de referência comsensores denominados inerciais e assim calculam uma atitude, normalmente nomeada de ótima,a covariância e o bias do sistema.

Desse ponto em diante, neste trabalho, será considerado como determinação de atitudeo processo feito através de sensores de referência e estimação o processo feito através da atitudecalculada na determinação unida com os dados de sensores inerciais.

A figura 5 mostra um diagrama bastante simplificado sobre a descrição feita acima.

Figura 5 – Fluxograma básico de uma possibilidade para determinação e estimação de atitude.

Portanto, reforçando a ideia já apresentada, que, para conhecer a orientação e conse-quentemente realizar o controle de atitude de um objeto, necessita-se ter o conhecimento de umsistema de referência e um sistema observado, nas próximas duas seções são apresentados bre-

Page 50: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

48 Capítulo 3. Determinação e Estimação da Atitude

vemente o conceito de Sistemas de Coordenadas, citando dois exemplos, os vetores que podemser tomadas para referência de atitude e os sensores mais comuns para fazer a medição de taispara determinar um vetor de atitude observado. Na seção conseguinte, um trecho é destinadoa discussão quanto a utilização de sensores de aceleração na medição de atitude. Finalmente,nas seções 3.3 e 3.4, são mostrados os algoritmos utilizados para a determinação e estimaçãode atitude, respectivamente.

3.1 Sistema de Coordenadas e Vetores de Referência para

Atitude

Considerando as afirmações feitas no início desse capítulo, é evidente que para um ve-tor de referência ser utilizado, esse deve ser lido tanto no sistema de coordenadas do corpoquanto no sistema de coordenadas usado como referência. Não existe um sistema de coorde-nadas perfeito totalmente aceito, sendo que a escolha dependerá das necessidades, requisitos,tipos e outros fatores de um projeto.

Buscando exemplificar, são ilustrados a seguir dois exemplos com aplicações distintas,sendo um com finalidade em uso terrestre e o outro em aplicações espaciais, conforme citadoem (GRANZIERA JR., 2006).

O primeiro, utilizado para aplicações terrestre, é o Sistema de Coordenadas HorizontalLocal. O mesmo é mostrado na figura 6.

Figura 6 – Representação do Sistema de Coordenadas Local.

Fonte: (GRANZIERA JR., 2006)

Conforme a figura, o sistema é formado por meio dos vetores Zênite, Norte e Leste.

Page 51: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

3.1. Sistema de Coordenadas e Vetores de Referência para Atitude 49

O primeiro é indicado pela direção da força gravitacional, consequentemente é normal à su-perfície terrestre, o segundo é tangente à superfície e o último segue o produto vetorial dosanteriores (Regra da mão direita). Como indicado também, o vetor Zênite pode ser utilizadoindependente de seu sentido, o que resultará a inversão do vetor Leste também, tornando assimduas possibilidades.

Analisando o sistema Local Horizontal e imaginando um avião, é fácil perceber queconforme o deslocamento do mesmo sobre a superfície da terra, para manter o vetor Zênite eNorte nas devidas direções, o sistema de coordenadas de referência deve ser atualizado con-forme a mudança de posição. Por essa razão, para utilizar esses vetores é necessário conhecer alocalização do corpo sobre o Globo terrestre.

O segundo sistema, com aplicações espaciais, é chamado de Coordenadas Celestial. Suaformação é dada por dois vetores principais, o Norte Celestial e o Equinócio Vernal, a figura 7ilustra o sistema.

Figura 7 – Representação do Sistema de Coordenadas Celestial.

Fonte: (GRANZIERA JR., 2006)

Page 52: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

50 Capítulo 3. Determinação e Estimação da Atitude

O vetor dado pelo Equinócio é o ponto em que o plano de translação da Terra cruza, dosul para o norte, o plano da linha do Equador, e, desse ponto, pode-se abstrair um vetor normalao plano tangente a esse ponto. Já o Norte Celestial é formado pelo vetor normal ao planoparalelo a linha do Equador. O último vetor será o produto vetorial dos já citados, formandoassim o Sistema de Coordenadas Celestial.

Tendo por base o conceito de Sistemas de Coordenadas, entende-se a necessidade daescolha de determinados vetores para a determinação de atitude. A seguir segue uma lista dosmais comuns, sendo que alguns podem ter restrições para determinadas aplicações, como porexemplo o acelerômetro (impossível uso no espaço). Esses não serão descritos devido ao focodesse trabalho, entretanto, na seção seguinte são vistos alguns sensores utilizados para mediçãodesses vetores para determinação da posição de um determinado corpo.

∙ Campo Gravitacional;

∙ Campo Magnético;

∙ Estrelas;

∙ Sol;

∙ Albedo;

3.2 Sensores de Atitude

Basicamente, existem duas classes de sensores utilizados na determinação de atitude deum corpo, essas classes são:

∙ Sensores Inerciais

∙ Sensores de Referência

Atualmente, a grande maioria de aplicações busca mesclar as informações dos dois ti-pos de maneira a se complementarem, conforme previamente mostrado na figura 5. Sensoresde referência normalmente fornecem informações que podem ser ruidosas, assim, informaçõesprovenientes dos sensores inerciais (usualmente girômetros) são utilizadas em um estimador deespaços de estados como uma predição a ser corrigida pelo sensores de referência, consequen-temente complementando uma ao outro.

3.2.1 Sensores Inerciais

Esse tipo de sensor pode ser utilizado para medir efeitos como aceleração, rotações,vibrações, impactos, entre outros.

Page 53: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

3.2. Sensores de Atitude 51

No passado recente, esses dispositivos eram mecânicos, o que os tornavam custoso,grandes e restrito a aplicações mais avantajadas. Hoje, com base nos avanços da tecnologiaMEMS (BOGUE, 2007), sensores inerciais encontram diversas aplicações, tais como indus-trial, automotiva, em equipamentos médicos entre outros. Estes novos dispositivos oferecemvantagens em tamanho, poder e de custo, porém, em termos de desempenho esses ainda ficaminferiores quando comparados com os seus equivalentes mecânicos. Em alguns, no entanto, estaperda de desempenho já não é mais considerada crítica, e os dispositivos MEMS estão cada vezmais presentes em nano e micro satélites.

Sensores inerciais consistem de elementos que medem a rotação e / ou aceleração trans-lacional em relação a um referencial inercial. Esses sensores estão sujeitos a erros e derivaaleatória de polarização, e, como resultado, os erros não são limitados. A fim de proporcionaruma atitude absoluta, atualizações regulares são realizadas, com base em referências como oSol, as estrelas, ou da Terra.

3.2.2 Sensores de Referência

Um vetor de referência mede a direção de um vetor qualquer conhecido, conforme osexemplos citados ao final da seção 3.1.

Apenas o conhecimento do vetor de um sensor de referência não fornece informaçõessuficientes para o calculo de atitude. Um sensor Solar, por exemplo, não pode detectar qualquerrotação da nave espacial sobre o vetor do próprio Sol, dessa maneira, são necessárias duas dire-ções, de preferência ortogonais para obter informações que possibilitem descobrir a orientaçãodo corpo. A incerteza de um sensor de referência é composta de dois parâmetros, a precisãodo próprio e da precisão da referência que ele usa sensor. Estrelas, por exemplo, fornecem asfontes mais precisas quando comparadas as informações de medidas sobre o Sol e a Terra.

A seguir são discutidos brevemente quatro tipos desses sensores.

∙ Sensores Magnéticos: Os magnetômetros são sensores simples, confiáveis, pequenos epresentes na maioria de satélites como parte do sistema de controle de atitude. Uma me-dida desse sensor possui três eixos com valores proporcionais a direção e intensidadedo campo magnético local. O uso desses sensores para determinação de atitude pode serlimitado às regiões com um campo forte e bem conhecido, por exemplo, órbitas baixasda Terra. A atitude determinada a partir de magnetômetros é dada comparando o campomedido com um campo de referência determinado por um modelo de referência.

∙ Sensores Solar: O sol fornece um vetor de referência bem definido, ou seja, claro e semambiguidades. Os sensores solares são detectores de luz, que medem um ou dois ângulosentre sua base e a luz solar incidente. Sensores se estendem desde detectores analógicos depresença até instrumentos digitais que medem a direção do sol com uma precisão menorque um arco-minuto. Sensores solares são populares, precisos e confiáveis, entretantorequerem claro campo de visão. Quando colocados em baixa órbita, ocorrem eclipses

Page 54: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

52 Capítulo 3. Determinação e Estimação da Atitude

periódicos que provocam a perda de referência pelo sensor solar, portanto o sistema dedeterminação de atitude deve encontrar uma maneira de superar esse estado crítico. Aprecisão de um típico sensor solar está na faixa de 0.005 graus até 4 graus.

∙ Sensores de Estrelas: Normalmente podem ser do tipo rastreadores ou scanners. Essessensores fornecem uma maneira relativamente barata de mapear a imagem do céu e extrairinformações sobre a posição das estrelas, portanto, qualquer movimento do objeto vaiaparecer como uma mudança das estrelas no campo de visão do sensor.

As localizações de duas ou mais estrelas de um sensor desse, juntamente com os seuslocais de coordenadas inerciais, são suficientes para determinar a postura da câmara emrelação a um referencial. Essas câmeras costumam ser sensíveis a velocidades angularesaltas.

∙ Sensores de Horizonte: São dispositivos infravermelhos que detectam o contraste natemperatura entre o espaço e a atmosfera terrestre. Alguns veículos espaciais usam umsensor de ponto fixo com vasto campo de visão, o qual visualiza todo o disco da Terrae centraliza o veículo nesse ponto. A informação relativa da Terra, obtida pelos sensoresde horizonte, pode simplificar o processamento embarcado no veículo de apontamentoterrestre. Precisões típicas para sistemas utilizando sensores de horizonte são de 0,1 a0,25 graus, com algumas aplicações alcançando a 0,03 graus.

3.2.3 Acelerômetro

Um acelerômetro é um dispositivo capaz de realizar a medição da aceleração sofrida porum objeto. Atualmente, aplicações que buscam a determinação de atitude são exclusivamentecom sensores baseados na tecnologia MEMS.

Esses sensores podem ser utilizados para medições inerciais, entretanto, devido ao campogravitacional terrestre, o mesmo também pode ser utilizado para obtenção de vetores de refe-rência, entretanto, em aplicações espaciais, devido ao ambiente de microgravidade, o mesmo setorna obsoleto.

Considerando aplicações terrestres, a topologia mais comum faz uso acelerômetros emagnetômetros para a determinação da atitude em conjunto com a estimação fornecida pelosgirômetros. O grande porém de acelerômetros, é que, como dito anteriormente, os mesmostambém realizam medições inerciais, assim, quando um corpo sofre acelerações além das gra-vitacionais, a atitude observada pelo vetor de referência passa a ser incorreta.

Devido a esse fenômeno, as aplicações que utilizam dos três sensores acima, devem sercapaz de detectar essas variações, e, nesses intervalos, desconsiderar as informações provindasdos acelerômetros e ser capaz de continuar representando a atitude a partir das informações dosgirômetros e da atitude observada antes do fenômeno.

Uma vez que o Modelo Elétrico proposto nesse trabalho, contém acelerômetros, mag-netômetros e girômetros, as informações acima devem ser analisadas cuidadosamente.

Page 55: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

3.3. Algoritmo para Determinação de Atitude - TRIAD 53

Finalmente, a seguir, são apresentados os métodos utilizados para determinação e esti-mação da atitude.

3.3 Algoritmo para Determinação de Atitude - TRIAD

A tarefa de determinar atitude através de vetores de observações é amplamente descritaem diversas literaturas, podendo ser encontrado diversos métodos para tal. Como o foco maior éa verificação da Estimação de atitude, nos manteremos somente no algoritmo TRIAD. Espera-se, no futuro, que o trabalho desenvolvido seja submetido a testes com outros algoritmos.

O método descrito a seguir baseia-se na proposta de (GRANZIERA JR.; LOPES; TO-SIN, 2007), sendo essa fundamentada no trabalho de (SHUSTER; OH, 1981).

O algoritmo proposto em TRIAD (TRI-axis Attitude Determination) utiliza de dois (nãomais) vetores de referências para determinar uma Matriz de Rotação, definindo que, a partirde dois vetores v1 e v2, que são os vetores da referência do sistema de coordenadas, e doisvetores de observação, w1 e w2, é possível encontrar uma matriz A, que obedeça as seguintesequações:

Av1=w1 ; Av2=w2 (3.1)

Para resolver o sistema da equação 3.1 e encontrar a matriz A, devem ser construí-dos dois conjuntos de três vetores ortogonais unitários ou tríades, um referente aos vetores dereferência e outro baseado nos vetores de observação, como mostram as equações (3.2) e (3.3).

r1 = v1 ; r2 =(v1 × v2)

|v1 × v2|; r3 =

(v1 × (v1 × v2)

)|v1 × v2|

(3.2)

s1 = w1 ; s2 =(w1 × w2)

|w1 × w2|; s3 =

(w1 × (w1 × w2)

)|w1 × w2|

(3.3)

Apenas uma matriz é capaz de rotacionar os vetores r𝑖 até s𝑖, ou seja, que soluciona aequação 3.4.

Ari=si ; 𝑖 = 1, 2, 3 (3.4)

Sabendo que os vetores ri e si possuem dimensão 3x1, concatenando-os separadamenteé possível formar as matrizes 3x3 de referência e de observação. A equação 3.6 mostra a matrizde observação e a equação 3.5 a observada.

M𝑟𝑒𝑓 =

[r2

...r2...r3

](3.5)

M𝑜𝑏𝑠 =

[s2

...s2...s3

](3.6)

Page 56: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

54 Capítulo 3. Determinação e Estimação da Atitude

A partir dessas matrizes, pode-se reescrever a equação 3.4 para uma nova equação queassociem a matriz de atitude (A), observada e de referência, conforme mostrado na equação3.7.

AM𝑟𝑒𝑓 = M𝑜𝑏𝑠 (3.7)

Uma vez que as matrizes M𝑜𝑏𝑠 e M𝑟𝑒𝑓 satisfazem as condições as das equações 3.8 e3.9, respectivamente, as mesmas são ortogonais.

M𝑇𝑜𝑏𝑠M𝑜𝑏𝑠 =

⎡⎢⎢⎣ s𝑇1 s1 s𝑇2 s1 s𝑇3 s1

s𝑇1 s2 s𝑇2 s2 s𝑇3 s2

s𝑇1 s3 s𝑇2 s3 s𝑇3 s3

⎤⎥⎥⎦ =

⎡⎢⎢⎣ 1 0 0

0 1 0

0 0 1

⎤⎥⎥⎦ = I (3.8)

M𝑇𝑟𝑒𝑓M𝑟𝑒𝑓 =

⎡⎢⎢⎣ r𝑇1 r1 r𝑇2 r1 r𝑇3 r1

r𝑇1 r2 r𝑇2 r2 r𝑇3 r2

r𝑇1 r3 r𝑇2 r3 r𝑇3 r3

⎤⎥⎥⎦ =

⎡⎢⎢⎣ 1 0 0

0 1 0

0 0 1

⎤⎥⎥⎦ = I (3.9)

Portanto, as suas transpostas dessas matrizes são iguais as suas inversas, ou seja,

M𝑇𝑜𝑏𝑠 = M−1

𝑜𝑏𝑠 ; M𝑇𝑟𝑒𝑓 = M−1

𝑟𝑒𝑓 (3.10)

Finalmente, multiplicando ambos os lados da equação 3.7, é obtida a equação 3.11, deonde instintivamente é obtida a matriz de atitude desejada, que será dada pela equação 3.12.

AM𝑟𝑒𝑓M𝑇𝑟𝑒𝑓 = M𝑜𝑏𝑠M

𝑇𝑟𝑒𝑓 (3.11)

A = M𝑜𝑏𝑠M𝑇𝑟𝑒𝑓 (3.12)

O algoritmo TRIAD, no entanto, também retorna a covariância da matriz de atitude, jáque métodos de estimação também necessitam desse fator. A covariância é dada pela equação3.13 (GRANZIERA JR., 2006).

[P𝜃𝜃] = 𝜎21[I]3𝑋3 +

1

|w1 × w2|2[𝜎21(w1 · w2)(w1w

𝑇2 + w2w

𝑇1 + (𝜎2

2 − 𝜎21)w1w

𝑇1

], (3.13)

sendo 𝜎𝑣1, 𝜎𝑤1, 𝜎𝑣2 e 𝜎𝑤2 são os desvios padrões dos respectivos vetores indicados em subes-crito, 𝜎1 =

√𝜎v1 + 𝜎w1 e 𝜎2 =

√𝜎v2 + 𝜎w2.

Apesar de não ser o melhor método para o cálculo de uma matriz de atitude, o TRIADpossui uma característica excelente em relação ao custo computacional, visto que o mesmo podeser obtido através operações que facilmente podem ser realizadas em um sistema embarcado.

Page 57: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

3.4. Filtro de Kalman 55

3.4 Filtro de Kalman

Esta seção apresenta o Filtro de Kalman que será utilizado ao longo do trabalho para oprocesso de estimação de atitude. O algoritmo e equacionamento proposto baseia-se em umatopologia de Filtragem de Kalman apresentada em (SHUSTER; LEFFERS; MARKLEY, 1982),seguindo o procedimento desenvolvido por (GRANZIERA JR., 2006).

3.4.1 Concepção básica da Estimação Proposta

Partindo do explicação básica apresentada entre determinação e estimação de atitude,essa seção apresenta o algoritmo que será utilizado ao longo desse trabalho para unir os dadosde atitude e covariância calculados pelo TRIAD e os dados dos sensores inerciais, no casogirômetros. O principal objetivo do uso dos dados desses sensores é melhorar a característicade ruído diminuindo a incerteza da atitude.

A proposta é a mesma desenvolvida em (GRANZIERA JR.; KUGA; TOSIN, 2011) parao Experimento MEMS, explicado no capítulo 4, contudo, naquele trabalho, os dados de atitudee covariância seriam providos do satélite ITASAT-1, sendo que nesse trata-se essas informaçõescomo genéricas, ou seja, podem ser fornecidas pelo ITASAT-1, pelo TRIAD do Modelo Elétrico(capítulo 5) ou futuramente por um outro método. A figura 8 resume o processo a ser executado.

Figura 8 – Filtro de Kalman proposto para unir dados de um Determinador de Atitude cominformações de girômetros.

Fonte: Adaptado de (GRANZIERA JR.; KUGA; TOSIN, 2011)

Conforme pode ser observado, para juntar os dados de atitude e girômetros, o processopossui duas passagens distintas, que são:

Page 58: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

56 Capítulo 3. Determinação e Estimação da Atitude

∙ Propagação de Atitude - O último quatérnion obtido na iteração anterior é propagadode maneira cinemática pelo tempo a partir das medidas obtidas com os girômetros. Apropagação pode ser realizada em períodos fixos ou não, porém, nesse último caso éimportante conhecer o tempo decorrido entre as duas medidas, já que, como esse intervalode tempo é pequeno, considera-se que o vetor de velocidade angular lido é constante emtal.

∙ Estimação de Atitude - Ao final do processo de propagação, a atitude propagada é sub-traída do novo dado de atitude fornecido pelo sistema de Determinação de Atitude. Oresíduo desta diferença é multiplicado pelo ganho de Kalman e utilizado para atualizaro dado de atitude filtrada e também para estimar um novo bias para os girômetros. Oprocesso de estimação não precisa ser executado em toda iteração, e, nessa situação, omesmo simplesmente repassada para sua saída a própria entrada, sem estimar um novobias ou recalcular a covariância.

Como o Filtro de Kalman é baseado em um modelo recursivo de otimização de estados,é necessário um vetor de variáveis de estados definidas por um modelo dinâmico do sistema.Para o modelo proposto, o vetor de Estados é formado pelas quatro componentes do quatérnion(escalar no quarto elemento) e os bias dos girômetros. O vetor de estados é denominado por xe é mostrado na equação a seguir.

x =

[⌣𝑞

b

]=[𝑞1 𝑞2 𝑞3 𝑞0 𝑏1 𝑏2 𝑏3

](3.14)

Já as equações dinâmicas para o quatérnion e para o bias são dadas pelas equações 3.15e 3.16 (SHUSTER; LEFFERS; MARKLEY, 1982), respectivamente.

⌣𝑞(𝑡) =

1

2𝜔(𝑡) ⊗ ⌣

𝑞(𝑡) =1

2Ω4(u− b− 𝜂1)

⌣𝑞 (3.15)

b(𝑡) =1

𝜏b(𝑡) + 𝜂2 ≈ 𝜂2 (3.16)

Além da estimação do vetor de Estados, o Filtro de Kalman é responsável pela estima-ção da matriz de covariância P7𝑋7 (equação 3.17) formada pelo quadrado do desvio padrão(variância) das componentes do vetor de estados dispostos na diagonal principal, e as autocor-relações entre as variâncias do vetor de estados.

P =

⎡⎢⎢⎢⎢⎢⎢⎢⎣

𝜎21 𝜎2

12 𝜎213 . . . 𝜎2

17

𝜎221 𝜎2

2 𝜎223 . . . 𝜎2

27

𝜎231 𝜎2

32 𝜎23 . . . 𝜎2

37...

...... . . . ...

𝜎271 𝜎2

72 𝜎273 . . . 𝜎2

7

⎤⎥⎥⎥⎥⎥⎥⎥⎦(3.17)

Page 59: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

3.4. Filtro de Kalman 57

A seguir são descritas as etapas do Filtro de Kalman, essa análise é feita de maneiradistinta para o vetor de estados e matriz de covariância.

3.4.2 Descrição das Etapas do Filtro

3.4.2.1 Propagação

∙ Propagação do Vetor de Estados - Nessa etapa, primeiramente, subtrai-se o bias es-

timado da iteração anterior (∧b(+)

𝑘 ) da medida de velocidade angular, obtida através dosgirômetros, do corpo u𝐺𝑌 𝑅

𝑘 , conforme mostra a equação (3.18).

∧𝜔

𝐺𝑌 𝑅

𝑘 = u𝐺𝑌 𝑅𝑘 −

∧b(+)

𝑘 (3.18)

Idealmente, a variação angular do corpo poderia ser calculada integrando a velocidadeda equação anterior ( ∧

𝜔𝐺𝑌 𝑅

𝑘 ) em um intervalo de tempo ∆𝑡. Porém, como o intervalode tempo é suficientemente pequeno, este incremento angular pode ser calculado dire-tamente pelo produto da velocidade angular e o intervalo de tempo, como indicado naequação (3.19).

Δ𝜃 =∧𝜔

𝐺𝑌 𝑅

𝑘 ∆𝑡 (3.19)

Esse incremento angular (Δ𝜃) pode ser representado em uma matriz de rotação, represen-tando uma pequena rotação incremental a qual atualiza o quatérnion através do produtoquaterniônico, como mostra a equação 3.20.

M (Δ𝜃) =cos(|Δ𝜃|/2)

|∆𝜃|I4𝑋4 +

sin(|Δ𝜃|/2)

|∆𝜃|Ω4(Δ𝜃), (3.20)

sendo a matriz [I]4𝑋4 uma identidade 4x4 e a matriz [Ω4] o operador skew-simmetric comzeros em sua diagonal, dada pela equação 3.21.

Ω4(∆𝜃) =

⎡⎢⎢⎢⎢⎣0 Δ𝜃(3) −Δ𝜃(2) Δ𝜃(1)

−Δ𝜃(3) 0 Δ𝜃(1) Δ𝜃(2)

Δ𝜃(2) −Δ𝜃(1) 0 Δ𝜃(3)

−Δ𝜃(1) −Δ𝜃(2) −Δ𝜃(3) 0

⎤⎥⎥⎥⎥⎦ (3.21)

A partir da matriz de rotação de quatérnion (equação 3.20), finalmente é possível obter oestado propagado (x(−)

𝑘+1) a partir da equação 3.22.

⎡⎣ ⌣𝑞(−)

𝑘+1

b(−)𝑘+1

⎤⎦ =

[M(Δ𝜃) 04𝑋3

03𝑋4 I3𝑋3

]⎡⎣ ⌣𝑞(+)

𝑘

b(+)𝑘

⎤⎦ = Φ𝑘x(+)𝑘 (3.22)

Page 60: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

58 Capítulo 3. Determinação e Estimação da Atitude

Para essa última operação os bias são assumidos constantes, justificado a matriz iden-tidade inserida e sua variação é considerada um ruído. Do processo de propagação doestado é essencial abstrair que a qualidade do quatérnion propagado depende totalmenteda precisão dos dados dos girômetros com os bias subtraídos.

∙ Propagação da Matriz de Covariância - Previamente a definir como é feita a propa-gação da matriz de covariância, é de suma importância ressaltar que esta matriz de di-mensões 7X7 não é numericamente estável , uma vez que o posto (rank) da mesma é 6.A fim de evitar problemas numéricos, é conveniente fazer uso das versões reduzidas dasmatrizes de covariância, de ganho e de medidas.

Estas transformações para reduzir as matrizes são feitas a partir de uma matriz de redução.Para diferenciar as matrizes reduzidas, essas serão identificadas com o símbolo ∼.

Feitas tais observações, a matriz de atualização da matriz de covariância reduzida é dadaatravés da equação 3.23. O primeiro termo dessa equação refere-se a propagação da cova-riância aplicando a matriz de propagação reduzida e o segundo a uma integral trapezoidalque associa a matriz Q a deriva do bias e aos ruídos dos giros.

P(−)𝑘+1 = Φ𝑘P

(+)𝑘 Φ𝑇

𝑘 +(Φ𝑘Q𝑘Φ

𝑇𝑘 + Q𝑘

) ∆𝑡

2(3.23)

Sendo 𝜎𝑔𝑦𝑟𝑜 o desvio padrão do girômetro e 𝜎𝐷𝑔𝑦𝑟𝑜 o desvio padrão da deriva do girô-metro, as matrizes reduzidas [Q𝑘] (matriz reduzida de covariância dos girômetros) e [Φ𝑘]

(matriz reduzida de propagação) são definidas pelas equações 3.24 e 3.25, respectiva-mente.

Q𝑘 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

𝜎2𝑔𝑦𝑟𝑜(𝑥)

40 0 0 0 0

0𝜎2𝑔𝑦𝑟𝑜(𝑦)

40 0 0 0

0 0𝜎2𝑔𝑦𝑟𝑜(𝑧)

40 0 0

0 0 0 𝜎2𝐷𝑔𝑦𝑟𝑜(𝑥) 0 0

0 0 0 0 𝜎2𝐷𝑔𝑦𝑟𝑜(𝑦) 0

0 0 0 0 0 𝜎2𝐷𝑔𝑦𝑟𝑜(𝑧)

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦(3.24)

Φ𝑘 =

[Λ𝑘 J𝑘

03𝑋3 I3𝑋3

](3.25)

Nessa última equação, as matrizes Λ𝑘 e J𝑘 são definidas por:

Λ𝑘 =

[A(

⌣𝑞(−)

𝑘+1

)] [A(

⌣𝑞(+)

𝑘+1

)]𝑇(3.26)

J𝑘 = −

[[A(

⌣𝑞(−)

𝑘+1

)] [A(

⌣𝑞(+)

𝑘+1

)]𝑇+ I3𝑋3

]∆𝑡

4(3.27)

Page 61: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

3.4. Filtro de Kalman 59

A matriz A𝑇 é uma matriz de rotação equivalente ao quatérnion, dada pela equação 3.28.

A(⌣𝑞) =

(𝑞20 − |q|2

)I3𝑥3 + 2qq𝑇 + 2𝑞0Ω3 (q) , (3.28)

sendo Ω3 o operador skew-simétrico de ordem 3.

3.4.2.2 Estimação

∙ Atualização do vetor de estados - Esse é o processo relativo a filtragem propriamentedito, e a atualização do vetor de estados é feita diretamente através da equação 3.29.

x(+)𝑘 = x

(−)𝑘 + K𝑘

[⌣𝑞𝑑𝑒𝑡 −H𝑘

⌣𝑞(−)

𝑘

](3.29)

Na equação de estimação, ⌣𝑞𝑑𝑒𝑡 é a atitude determinada pelos sistemas de referência. A

matriz K𝑘 é chamado de Ganho de Kalman, e, é no cálculo desse que está o custo com-putacional do algoritmo, como solução, ao invés de calcular esse ganho a cada iteração,pode-se atribuir uma constante ao mesmo. A definição desse ganho é apresentada a seguirna passagem do processo da covariância.

∙ Atualização da matriz de covariância - A passagem matemática que realiza a atualiza-ção da matriz de covariância reduzida é determinada pela equação 3.30.

P(+)𝑘 = P

(−)𝑘 + K𝑘H𝑘P

(−)𝑘 (3.30)

A matriz de ganho reduzida (K𝑘) é calculada através da equação 3.31.

K𝑘 = P(−)𝑘 H𝑇

𝑘

[H𝑘P

(−)𝑘 H𝑇

𝑘 + R𝑑𝑒𝑡⌣𝑞

]−1

(3.31)

Na matriz de ganho reduzida, o termo H𝑘, chamado de matriz de medidas reduzidas édado pela equação 3.32.

H𝑘 = H𝑘S𝑘(⌣𝑞(−)

𝑘 ) = Ξ(⌣𝑞𝑘)04𝑋3 (3.32)

Nessa última equação, a matriz medida H𝑘 e a matriz de redução S𝑘(⌣𝑞) são dadas pelas

equações 3.33 e 3.34, respectivamente.

H𝑘 = [I4𝑋4 04𝑋3] (3.33)

S𝑘(⌣𝑞) =

[Ξ𝑘(

⌣𝑞) 04𝑋3

03𝑋3 I3𝑋3

](3.34)

Page 62: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

60 Capítulo 3. Determinação e Estimação da Atitude

Já na matriz de redução, o elemento Ξ é a distribuição do quatérnion em uma matriz, deacordo com a equação 3.35.

Ξ(⌣𝑞) =

⎡⎢⎢⎢⎢⎣𝑞0 −𝑞3 𝑞2

𝑞3 𝑞0 −𝑞1

−𝑞2 𝑞1 𝑞0

−𝑞1 −𝑞2 −𝑞3

⎤⎥⎥⎥⎥⎦ (3.35)

E, finalmente o ganho do Filtro de Kalman [K𝑘] pode ser convertido da forma reduzidapara forma expandida pela equação 3.36.

K𝑘 = S𝑘(⌣𝑞(−)

𝑘 )K𝑘 (3.36)

Page 63: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Parte III

Experimento MEMS e seu ModeloElétrico

Page 64: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 65: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

63

4 Experimento MEMS

Este capítulo tem o objetivo de apresentar resumidamente o Experimento MEMS (TO-SIN; GRANZIERA JR., 2011) e o satélite universitário ITASAT-1 (FERNANDES, 2011), ondea experiência seria primeiramente testada. Atualmente já existem novas pretensões para o ex-perimento, inclusive ser uma plataforma de testes para sistemas de determinação de atitude nãosomente no espaço.

A proposta inicial para a Experiência MEMS é ser uma das cargas úteis do micro-satélite universitário ITASAT-1, com o propósito de utilizar as informações providas do Sistemade Controle de Atitude (ACS - Attitude Control System) do satélite, que faz uso de magnetô-metros e sensores solar em seu controle, e combiná-las com os dados dos girômetros MEMS(Micro-Electro-Mechanical-Systems) presentes no experimento na tentativa de melhorar a ati-tude original provida.

Adicionalmente aos girômetros, estão presentes no projeto acelerômetros e magnetô-metros MEMS. Dessa maneira, além da aplicação original, que faria a junção dos dados doACS e dos dados integrados dos girômetros através do Filtro de Kalman, a experiência abreuma possibilidade maior para testes de diversos algoritmos e coleta de dados, não somente noespaço, mas também aplicações terrestres com necessidade da determinação de atitude.

No total, a experiência tem quatro conjuntos de sensores organizados nas superfícies deuma estrutura tetraédrica, a fim de fornecer medições redundantes para melhoria da confiabili-dade do sistema. Cada conjunto é composto por um girômetro de um eixo, um acelerômetro detrês eixos e um magnetômetro de três eixos.

Outra questão a ser mencionada é o fato do experimento ser composto basicamente desensores MEMS e componentes COTS (commercial-of-the-shelf ). Devido a melhora significa-tiva de performance, custo e confiabilidade destes, hoje já são alternativas viáveis no desenvol-vimento de nano e micro-satélites.

São abordadas a seguir as três principais partes do projeto, de maneira simplificada,que são os Projetos Estrutural, Eletrônico e de Software. As partes apresentadas a seguir sãocaracterísticas do projeto referentes a Dezembro de 2012 (CARVALHO NETO, 2012), sendoque, algumas partes podem ou já passaram por alterações, porém o objetivo e a base dos proje-tos dificilmente serão submetidas a mudanças drásticas. Diante desse ponto, uma última seçãoapresenta os projetos de hardwares desenvolvidos para a primeira versão e também os novosprojetos de hardware.

4.1 Projeto Mecânico

O projeto mecânico abrange toda a parte estrutural do projeto, abordando o posicio-namento, sustentação e fixação das placas de circuitos eletrônicos e conectores, blindagem de

Page 66: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

64 Capítulo 4. Experimento MEMS

radiação e resistência de ambiente de estresse térmico e vibração. A mecânica é de grandeimportância para a viabilidade de construção do projeto, partindo do ponto que os espaços ocu-pados tanto no satélite quanto dentro do próprio experimento são reduzidos e limitados.

A disposição mecânica do experimento MEMS é composta por uma pirâmide tetraé-drica apoiada em uma caixa, que, em sua totalidade, permite o posicionamento de quatro placasmenores, as quais contém os sensores, e uma placa principal, onde está localizado o micro-controlador e o restante do circuito. O plano inicial é que todas as peças seriam usinadas emalumínio 7075-T6, tipo de alumínio com propriedades de alta resistência mecânica e térmica,comumente utilizados em aplicações aeroespaciais e navais. Entretanto, existe um estudo paraverificar a possibilidade das peças serem feitas no processo de impressão 3D, com um plásticodo tipo ABS capaz de atender aos requisitos de resistência necessários.

A estrutura por completo tem dimensões em torno de 148mm de largura, 108mm deespessura e 112,5mm de altura, sendo formada por diversas peças a serem usinadas ou impressasem 3D - Bloco tetraédrico; Tampa da caixa base; Caixa base; Mesa de Calibração; Tampa daplaca de sensores; Parafusos - e pelos componentes eletrônicos - Quatro placas de sensores;Placa principal; Conectores.

Para ilustrar a montagem final da estrutura mecânica, com todas as peças já parafusadas,inclusive as placas de circuitos eletrônicos e conectores, são mostradas a vista isométrica e avista explodida pelas Figuras 9 e 10, respectivamente.

Figura 9 – Estrutura mecânica do experimento MEMS.

Fonte:(CARVALHO NETO, 2012, pag. 33).

Page 67: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

4.2. Projeto Eletrônico 65

Figura 10 – Vista explodida do experimento MEMS.

Fonte: (CARVALHO NETO, 2012, pag. 34).

4.2 Projeto Eletrônico

O Projeto eletrônico do experimento está relacionado ao desenvolvimento de todas asPCIs, condicionamento do sistema de alimentação, conexões e interfaces, sistema de processa-mento e memórias, o sistema de sensores, entre o outros, bem como responsável pela seleção eescolha de todos os componentes a serem usados.

Como um todo, analisando o projeto do ponto de vista funcional, é possível subdividi-loem cinco partes, que são:

∙ Sistema de alimentação - Conversores DC-DC e reguladores lineares;

∙ Processamento e memória;

∙ Circuitos de Interface com os Computadores de Bordo;

∙ Sensores;

∙ Interconexões e multiplexação dos sensores;

A figura 11 traz o diagrama eletrônico geral para o experimento MEMS, sendo estedividido no diagrama elétrico da placa principal e das quatro placas de sensores.

Page 68: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

66 Capítulo 4. Experimento MEMS

Figura 11 – Esquemático eletrônico para a placa principal e de sensores do experimento MEMS.

Fonte: (TOSIN; GRANZIERA JR., 2011, pag. 12).

Page 69: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

4.2. Projeto Eletrônico 67

4.2.1 Sistema de Alimentação

O sistema de alimentação fornecido pelo ITASAT-1 é feito através de um barramentonão regulado, cuja tensão pode variar de 21V a 35V. Assim, cabe ao experimento condicio-nar essa alimentação para os valores desejado, que no caso está entre 3,3V e 5V. Para realizaressa conversão, optou-se por utilizar conversores DC-DC seguido de reguladores lineares. Essamanobra permite abaixar a tensão de valores alto para valores mais baixos, usando a alta efi-ciência da topologia chaveada, e depois regular linearmente para os valores finais necessários,reduzindo o ruído e harmônicas gerados.

4.2.2 Processamento e memória

É a parcela responsável por gerenciar o experimento, controlando a coleta, análise, pro-cessamento e fluxo de dados do experimento. É composta por uma memória flash externa paraarmazenamento de dados, um link JTAG para programação e depuração do software, enquantopossível o acesso físico a montagem, e finalmente pelo microcontrolador.

O microcontrolador inicialmente escolhido é o STM32F217IG (STMICROELETRO-NICS, 2011), da empresa STMicroeletronics, com arquitetura ARM Cortex M3, que possuiuma alta capacidade de processamento aliado a um baixo consumo de energia.

Atualmente, porém, estuda-se a possibilidade de substituir o dispositivo acima por umSTM32F407IG (STMICROELETRONICS, 2013), da mesma fabricante, porém, com arquite-tura ARM Cortex M4. A principal característica em prol dessa mudança é o fato do CortexM4 possuir FPU (Floating-point unit) em hardware, o que possivelmente aumentaria a capaci-dade de rodar os algoritmos necessários, principalmente ao Filtro de Kalman, em determinadotempo. Ademais, a STMicroeletronics produz famílias o mais compatíveis possível em termosde pinagem, possibilitando um projeto em Hardware que possa comportar qualquer um dosmicrocontroladores.

4.2.3 Circuitos de interface com os Computadores de Bordo

este trecho é destinado a garantir que as necessidades de comunicação com os com-putadores de bordo do ITASAT-1 sejam atendidas, permitindo que o sistema do experimentoMEMS se comunique com ambos. O objetivo é que a troca de informações não seja restrito adados, mas sim que, o computador de bordo deve ser capaz de recarregar o firmware do micro-controlador em caso de detecções de falhas ou mesmo realizar a atualização deste para um novofirmware desenvolvido posteriormente ao lançamento da experiência.

Page 70: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

68 Capítulo 4. Experimento MEMS

4.2.4 Interconexões dos sensores

Como citado anteriormente, o projeto consiste da placa principal e mais quatro placassecundárias, onde estão localizados os sensores. Para a troca de informações desses últimos e omicrocontrolador, definiu-se a utilização de barramentos com interface seriais, sendo possíveldois padrões, Serial Peripheral Interconnect (SPI) e Inter-Integrated Circuit (𝐼2𝐶). Do projetoinicial, eram previstos ainda comutadores 𝐼2𝐶 para realizar a multiplexação dos sinais daquelebarramento, porém, no presente momento de elaboração desse documento, estes haviam sidosubstituídos por simples isoladores, sendo desenvolvida uma alternativa mais viável para a mul-tiplexação necessária. Tal questão será abordada em mais detalhes em outros trabalhos com focono experimento.

4.2.5 Sensores

O fato de ser escolhida uma topologia de projeto com quatro placa idênticas advémda necessidade de tolerâncias a falhas, uma vez que essa redundância torna o sistema maisconfiável. O objetivo é realizar periodicamente a leitura dos sensores de cada uma das placas econvertê-las em eixos ortogonais com uma referência cartesiana previamente estabelecida.

Este processo é realizado pela matriz transformação linear da projeção dos vetores me-didos (por cada sensor) para o eixo ortogonal adotado. Essa operação será feita tanto para osdados provenientes dos magnetômetros quanto dos girômetros. Para o acelerômetro tal pro-cesso não será executado por estar submetido ao ambiente de microgravidade, todavia, paraaplicações ou testes em um ambiente sujeito a forças gravitacionais o mesmo processo deve serrealizado.

Já os sensores de temperatura têm a finalidade de monitorar o ambiente e prover dadospara uma análise nos parâmetros dos sensores de acordo com a variação térmica.

Para realizar o processo acima descrito, a primeira versão do experimento desenvolvidacontava com os seguintes sensores MEMS:

∙ Girômetros de um eixo: ADIS16100 fabricado pela Analog Devices;

∙ Acelerômetros de três eixos: AIS236DQ fabricado pela ST Microeletronics;

∙ Magnetômetros de três eixos: HMC5883L fabricado pela Honeywell;

∙ Sensor de Temperatura: TMP112 fabricado pela Texas Instruments;

As características dos sensores acima são apresentadas nas tabelas 4.2.5, 4.2.5 e 4.2.5,respectivamente. Por não ser um elemento essencial e também ser um componente relativa-mente comum, as informações do sensor de temperatura não são apresentadas.

É importante também situar que, na nova versão do experimento em desenvolvimentoem paralelo com este trabalho, não são mais utilizados os sensores ADIS16100 e AIS326DQ.

Page 71: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

4.2. Projeto Eletrônico 69

Especificações ADIS16100Núm. de eixos 1Fator de Escala ± 0,2439𝑜/s/LSBBias (fundo de escala) ± 10𝑜/sFundo de escala (FE) (velocidade angular) ± 300𝑜/s, ± 1200𝑜/sFaixa de saída 12 bitsLargura de Banda 40HzMassa < 1 gramaTensão de alimentação 5V, 3,3V, 0VCorrente de alimentação 9mATempo de inicialização 35msCorrente de inicialização -Ruído total 0,43𝑜/s rms @0,1Hz / 40HzTaxa de densidade de ruído 0,05𝑜/ s / Hz−1/2

Interface SPIConsumo de energia < 45 mW

Tabela 2 – Características do ADIS16100.

Fonte: (TOSIN; GRANZIERA JR., 2011, pag. 15).

Especificações AIS326DQNúm. de eixos 3Fator de escala 1024 LSB/g (±2 g - Fundo de Escala)

340 LSB/g (±6 g - Fundo de Escala)Bias (fundo de escala) ±100mg (eixos X, Y)

± 200 mg (eixo Z)Fundo de Escala (FE) ± 2g, ± 6gFaixa de saída 12 bitsLargura de Banda 640Hz (Máx)Massa < 1 gramaTensão de alimentação 3,3V , 3,6VCorrente de alimentação 800𝜇ATempo de inicialização < 1,25 sCorrente de inicialização 1,6 mA (Estimado)Características de Ruído NAFator de escala de variação de temperatura 0,025 % FE /𝑜 C (FE = 2g)Variação de temperatura do bias 0,2 mg /𝑜 C (máx. ∆ em 25𝑜 C)Temperatura de operação -40𝑜 C até +105𝑜 CInterface SPIConsumo de energia < 3 mW

Tabela 3 – Características do AIS326DQ.

Fonte: (TOSIN; GRANZIERA JR., 2011, pag. 16).

Page 72: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

70 Capítulo 4. Experimento MEMS

Especificações HMC5883LNúm. de eixos 3Fator de escala ± 0.,441 mGauss/LSBBias (fundo de escala) 0 (cancelação do bias por set-reset)Fundo de Escala (FE) ± 1Gauss, ± 8GaussFaixa de saída 12 bitsLargura de Banda 80HzMassa < 1 gramaTensão de alimentação 3,6V , 3,3VCorrente de alimentação 100 𝜇ATempo de inicialização > 200 𝜇sCorrente de inicialização 300 𝜇AResolution 5 mGaussSensibilidade de seção de eixo ± 0,2 % FE / GaussInterface I2CConsumo de energia < 360 𝜇W

Tabela 4 – Características do HMC5883L.

Fonte: (TOSIN; GRANZIERA JR., 2011, pag. 15).

O girômetro será substituído por um componente do mesmo fabricante (Analog Devices)e de especificações relativamente próximas, porém, o novo dispositivo apresenta uma estabili-dade de BIAS muito superior, sensibilidade para rotações consideravelmente maior, além dofato que no novo dispositivo essa pode ser configurada três opções distintas de fator de escala,que são:

∙ ± 0,07326𝑜/s/LSB

∙ ± 0,03663𝑜/s/LSB

∙ ± 0,01832𝑜/s/LSB

Já o novo acelerômetro será o LIS331HH, também da STMicroeletronics, e novamentecom características próximas ao seu antecessor. O principal motivo para essa troca está no fatodo novo componente suportar comunicação I2C, além de SPI, sendo que o novo projeto emandamento fará uso do primeiro barramento para os acelerômetros.

Como já dito anteriormente, essas alterações no projeto eletrônico não serão tradas nestedocumento.

Page 73: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

4.3. Projeto de Software 71

4.3 Projeto de Software

O projeto de software é responsável por desenvolver o código a ser embarcado no mi-crocontrolador, atendendo aos requisitos necessários para garantir que o mesmo sempre poderáser recuperado, independente do erro que vier a ocorrer. Outro fator essencial do experimentoMEMS é que este é um escravo (slave) do ITASAT-1, devendo sempre atender aos comandosrecebidos pelo computador de bordo do satélite.

A partir desse último requisito apresentado, fora proposto um software que atendessemodos de operações na forma de uma máquina de estados, a seguir é explanada a propostainicial levantada.

4.3.1 Modos de operação

Os quatro modos de operação do experimento são:

∙ Modo de Teste (Test Mode);

∙ Modo de Espera (Wait Mode);

∙ Modo Orbital (Orbital Mode);

∙ Modo de Intervenção (Interventional Mode);

A Figura 12 resume como o sistema deve se comportar, reforçando que a máquina deestado somente deve ter seu estado alterado através de comandos enviados pelo computador debordo.

Figura 12 – Modos de operação do software embarcado.

Fonte: (TOSIN; GRANZIERA JR., 2011, pag. 17).

Page 74: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

72 Capítulo 4. Experimento MEMS

∙ Modo de Teste: estado o qual o sistema deve ser inicializado ou colocado após ser rese-tado. Nessa etapa é verificada a integridade da memória do último firmware carregado,em outras palavras, o próprio microcontrolador deve ser capaz de verificar se o seu códigode execução está correto ou se foi danificado. Isto permite avaliar se algum evento, comodanos relativos ao efeito de radiação, ocorreu.

Caso o sistema esteja intacto, o sistema inicia os periféricos necessários para a execuçãode suas tarefas.

∙ Modo de Espera: estado destinado a economizar o máximo possível de energia, deixandoos sensores em um modo de baixo consumo, colocando o processador em modo stand-by

e desligando os periféricos e interrupções mantendo somente o suficiente para identificarcaso um novo comando seja enviado pelo computador de bordo.

∙ Modo Orbital: estado do sistema para execução dos algoritmos e cálculo da atitude. To-dos os periféricos necessários estão habilitados e os dados de atitude fornecidos pelocomputador de bordo são armazenados e os procedimentos de filtragem, decimação e osalgoritmos de propagação e atualização do filtro de Kalman são executados periodica-mente.

∙ Modo de Intervenção: estado ativado quando detectado alguma falha no Modo de Teste.Neste caso, o computador de bordo irá iniciar o microcontrolador no modo bootloader eretransmitir o firmware original, sem falhas, para a memória do microcontrolador. Poste-riormente, o sistema será inicializado no Modo de Teste novamente.

4.3.2 Processamento de dados

Diante da operação do sistema de controle de atitude do ITASAT-1, que estima e con-trola a atitude e a velocidade angular do satélite sem o uso de girômetros, mas sim baseado nosnos magnetômetros e sensores solares presentes no mesmo, o experimento MEMS tem comoobjetivo tentar melhorar a estimação de atitude, através de seus girômetros, para ser, no futuro,uma alternativa para novas missões.

Para alcançar este objetivo, o experimento irá implementar rotinas de estimações deatitude e de velocidade angular, baseada nos dados fundidos do ACS com os girômetros MEMS,através do Filtro de Kalman, principal algoritmo embarcado do experimento.

4.4 Placa Principal e de Sensores

Uma parte um tanto quanto delicada de um projeto eletrônico é a execução do projetode roteamento baseado no esquema elétrico, porém, uma vez com uma placa roteada, fabricadae finalmente montada, se torna possível a realização de testes em bancada e a construção de umModelo Elétrico.

Page 75: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

4.4. Placa Principal e de Sensores 73

Como o capítulo conseguinte trata do Modelo desenvolvido, apresenta-se a seguir osresultados da primeira versão dos hardwares e o desenvolvimento da segunda versão.

4.4.1 Primeira versão do Hardware

4.4.1.1 Placa Principal

Para essa placa, foram necessários seis camadas para o roteamento. A razão para umprojeto tão complexo provém do número e os tipos de conectores presentes no projeto e tambémdo microcontrolador. estes componentes necessitam de um número muito grande de conexõesem um espaço extremamente pequeno, o que torna inviável o uso de poucos layers.

A figura 13 mostra uma imagem retirada do software de roteamento, com o projeto jáfinalizado. Essa placa não será fabricada, uma vez que alguns problemas foram observados ehouveram mudanças no esquema elétrico para a segunda versão.

Figura 13 – Roteamento da primeira versão da placa principal.

Fonte: (CARVALHO NETO, 2012, pag. 67).

4.4.1.2 Placas de Sensores

O projeto para as placas de sensores foi roteada em duas camadas, conforme a figura14. Para melhor visualização, os chamados planos de roteamento foram retirados da imagem.

Doze unidades dessa placa foram fabricadas e são mostradas na figura 15 ao lado deuma moeda para efeito de comparação de seu tamanho.

Page 76: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

74 Capítulo 4. Experimento MEMS

Figura 14 – Roteamento da primeira versão da placa de sensores.

Fonte: (CARVALHO NETO, 2012, pag. 66).

Figura 15 – Placa fabricada da primeira versão da placa de sensores ao lado de uma moeda.

Dessa placa desenvolvida, quatro placas passaram pelo processo de soldagem, entre-tanto, das quatro placas montadas somente em uma delas todos os sensores funcionaram. Arazão para o ocorrido foi um conjunto de fatores, principalmente causados pelo projeto de rote-amento e os Pads de dissipação de calor de alguns componentes, estes impossibilitaram que aplaca fosse montada com garantias de funcionamento.

Pelo explícito acima, as oito placas restantes não serão montadas, guardando recursospara a segunda versão.

Page 77: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

4.4. Placa Principal e de Sensores 75

4.4.2 Segunda versão do Hardware

Essa versão foi desenvolvida durante o ano de 2013, sendo finalizada em setembro.Atualmente as placas estão em processo de fabricação e posteriormente serão enviadas paramontagem.

As principais diferenças para a primeira versão são:

∙ Sensores substituídos por modelos mais novos, já discutido anteriormente;

∙ Os conectores DB-25 originais foram substituídos por conectores de 1,27mm de pitch daempresa SamTec;

∙ Retirado os reguladores de 3,3V do sistema;

∙ Removido os multiplexadores para os sensores;

∙ Simplificação considerável do esquemático elétrico da placa principal devido aos doisúltimos itens;

4.4.2.1 Placa Principal

Apesar da redução da complexidade e do número de itens presentes, optou-se por mantero número de camadas (seis). Permitindo assim a criação de diversos planos e aumento da largurade trilhas, na tentativa de melhorar os sinais gerados.

A figura 16 mostra o resultado do processo de roteamento. Novamente as ilhas de cobreforam removidas para o registro da imagem.

O custo de produção de três placas e do estêncil a laser ficou em R$776,55 por unidade.

4.4.2.2 Placas de Sensores

Em relação a placa principal, o esquema elétrico dessa sofreu um leve aumento na com-plexidade, uma vez que houve o acréscimo de um circuito integrado. Devido a este fato, somadoa necessidade de se garantir um excelente sinal com baixíssimo ruído aos elementos dos sen-sores, o número de camadas dessa placa subiu para quatro, sendo que os adicionais ficaramexclusivamente para alimentação e ground do sistema.

Assim como anteriormente, as ilhas de cobre foram removidas para o registro, que seguena figura 17.

O custo para se produzir doze unidades em conjunto com o estêncil ficou em R$168,71por unidade.

Page 78: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

76 Capítulo 4. Experimento MEMS

Figura 16 – Roteamento da segunda versão da placa principal.

Figura 17 – Roteamento da segunda versão da placa de sensores.

Page 79: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

77

5 Modelo Elétrico E-MEMS

Este capítulo apresentará o Modelo Elétrico, baseado no Experimento MEMS, desen-volvido para os testes em conjunto com o Ambiente Integrado para Determinação de Atitude.A priori, temos as etapas no processo e soluções tomadas para tornar o Modelo o mais pró-ximo possível do experimento final. Na sequência, desmembra-se as alternativas tomadas paraelaboração do Hardware e Software do Modelo.

5.1 Etapas na construção e Hardware do Modelo

O Modelo Elétrico apresentado a seguir foi desenvolvido com o intuito de utilizar os re-cursos já fabricados e com o menor custo possível, devido à verba reduzida durante este período.Atualmente, porém, aguarda-se a conclusão de orçamentos para envio do Projeto Mecânico paraimpressão 3D.

5.1.1 Montagem das placas de sensores

A primeira etapa na construção foi a montagem das placas de sensores. Devido as di-mensões milimétricas dos sensores e o fato de serem sensíveis ao processo de soldagem, as pla-cas, os componentes (AIS326DQ, ADIS16100, HMC5883L e TMP112) foram enviados parauma empresa especializada. O restante dos componentes foram soldados no próprio laboratóriode desenvolvimento do experimento. A placa montada pode ser visto na figura 18.

Figura 18 – Placa de sensores com os componentes soldados.

Page 80: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

78 Capítulo 5. Modelo Elétrico E-MEMS

5.1.2 Placa de desenvolvimento MCBSTM32EXL

Perante a necessidade de um sistema microcontrolado para interface com os sensores, enão havendo previsão para fabricação da placa principal, o projeto definiu pelo uso da placa dedesenvolvimento MCBSTM32EXL da empresa Keil.

este conta com o microcontrolador STM32F130ZG (STMICROELETRONICS, 2012),com núcleo ARM Cortex-M3, de uma família quase que totalmente compatível com os mi-crocontroladores previstos para o projeto, tanto em hardware quanto em software. Ademais, oproduto já conta com a montagem de diversos componentes para fácil utilização de determina-dos periféricos. Dentre estes, podem ser citados: conector para gravação de firmwares (JTAG);conector serial DB-9 para interface do microcontrolador através de um barramento RS232; di-versos LEDs e Push-Buttons para uso geral.

Figura 19 – Superfície superior da ferramenta de desenvolvimento MCBSTM32EXL.

A alternativa descrita nessa seção proporcionou uma redução drástica no hardware aser desenvolvido para tornar o modelo funcional, sendo necessário somente o projeto elétricoe de roteamento capaz de realizar a conexão entre o MCBSTM32EXL e as placas de sensores.Aborda-se a seguir esse tópico, cujo projeto será tratado por Placa Intermediária.

Page 81: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

5.1. Etapas na construção e Hardware do Modelo 79

5.1.3 Placa intermediária

Como já citado, a Placa desenvolvida deveria realizar a conexão entre todos os sinaiselétricos dos sensores com o microcontrolador da ferramenta da Keil. Isso significa primeiro co-nectar sensores a placa intermediária e posteriormente ao microcontrolador. Assim, são saintesda placa de sensores para a placa intermediária três sinais de alimentação, um para a referênciae os sinais da SPI e I2𝐶, resultando em um total de quinze pinos por placa de Sensores. Assim,foram selecionados conectores de dezesseis pinos para a ligação entre cada placa de sensor.

Para a conexão entre o microcontrolador e a intermediária, entretanto, o magnetômetroutilizado (HMC5883L), que utiliza barramento I2𝐶, não suporta endereçamentos distintos. Poreste motivo, houve a necessidade de multiplexação dos sinais de Clock e Data, a fim de garantirque o sinal deste barramento gerado no microcontrolador fosse recebido por apenas uma dasplacas de sensores, evitando o conflito entre magnetômetros.

Para realizar a tarefa acima foi especificado o circuito integrado CD4066B (TEXASINSTRUMENTS, 2003), da Texas Instruments, que é um seletor bilateral de quatro portas. Anecessidade de ser um CI bilateral provém do fato de que uma I2C tem seu barramento deData ora controlado pelo mestre e ora pelo escravo, o que tora o fluxo bidirecional. Foramutilizados dois CIs CD4066B, sendo um para o anterior e o outro para o Clock. Já os pinos deseleção da porta dos dois seletores estão em paralelo, sendo necessários então mais quatro pinosdo microcontrolador para realizar essa tarefa, resultando em um total de seis pinos saintes domicrocontrolador para controle da I2C.

Já barramentos do tipo SPI, protocolo usado pelo acelerômetro e girômetro, necessitamde pinos de Clock, MISO e MOSI, que são comuns a todos os sensores e é um pino de seleçãopara cada sensor, totalizando onze pinos necessários do microcontrolador.

Por fim, para a alimentação, a placa MCBSTM32EXL tem apenas a tensão de 5V dis-ponível, assim, a placa intermediária foi projetada com um regulador de 5V e na sequênciaum regulador de 3,3V, podendo utilizar o sinal de 5V do sistema anterior ou uma tensão maiorprovida de uma fonte externa. Como os sinais de 3,6V não são essenciais e podem ser subs-tituídos por 3,3V, essa tensão é utilizada para todos os pontos, com exceção a alimentação dogirômetro que é feita obrigatoriamente em 5V. Portanto, apenas dois sinais (5V e referência)são fornecidos pela placa do microcontrolador.

Totalizam-se então dezenove sinais conectando o microcontrolador e a placa interme-diária e sendo especificado um conector de vinte e quatro pinos.

Resumida a operação e soluções necessárias para o funcionamento, a figura 20 mostrao projeto elétrico construído, enquanto que a figura 21 traz o projeto de roteamento, realizadoem duas camadas com dimensões em torno de 10cm x 10cm.

Page 82: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

80 Capítulo 5. Modelo Elétrico E-MEMS

Figura 20 – Esquema elétrico da placa intermediária.

Page 83: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

5.1. Etapas na construção e Hardware do Modelo 81

Figura 21 – Projeto de roteamento da placa intermediária.

5.1.4 Resultados testes iniciais do sistema

Com a placa fabricada, foi possível realizar os primeiros testes e comprovar o bomfuncionamento do sistema e dos sensores. Contudo, um problema relativamente grave foi ave-riguado. Das quatro placas de sensores, apenas em uma delas o magnetômetro funcionou con-forme o esperado. Após diversas análises e tentativas de correções, concluiu-se que o problemanão era elétrico mas sim no projeto de roteamento da placa de sensores, donde foram descober-tos três pontos.

Primeiro, para placas que possuem componentes com Pads extremamente pequenos, oacabamento tradicional utilizado na fabricação de PCIs, em HAL (Hot Air Leveling), que basi-camente seria um banho maria de estanho na placa, não é o ideal. este processo acaba formandouma ilha de estanho nesses Pads, prejudicando o processo de soldagem. A alternativa ao aca-bamento HAL é a utilização do acabamento chamado de ENIG (Electroless Nickel Immersion

Gold), que seria a substituição do estanho por um banho de ouro.

Page 84: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

82 Capítulo 5. Modelo Elétrico E-MEMS

O segundo ponto é o uso de uma espessura de ligação entre as ilhas de cobre e Pads

relativamente grande. Dependendo do tamanho escolhido, essa espessura é superior a largura dopróprio pad do componente, e, nesse caso, a ilha irá abraçar por completo aquele. este detalhepode acabar gerando uma dissipação de calor muito grande durante o processo de soldagem,fazendo com que a temperatura ideal não seja atingida e o prejudicando.

A última questão está relacionada ao chamados Power Pads. Em alguns componentes,os fabricantes recomendam uma área em baixo do componente sem a máscara de solda paramelhor dissipação do calor, mesmo que fisicamente esse Pad não existe. Todavia, neste caso,deve-se garantir que o estêncil fabricado para a soldagem dos componentes proteja essa área,pois, caso haja a deposição de estanho nesse ponto, o componente pode não assentar da devidamaneira na PCI e acabar com solda fria em determinados Pads.

Como todos os pontos apresentados são irreversíveis após a fabricação das placas, nãohouve como contornar o problema.

5.1.5 Esquema Físico do Modelo

Apesar da montagem física entre o microcontrolador, placa intermediária e de sensorester sido parcialmente abordada em 5.1.3, essa seção traz o conceito geral do esquema físicoelaborado para o Modelo, que pode ser visto na figura 22.

Figura 22 – Diagrama do Hardware desenvolvido para o Modelo Elétrico.

A placa de desenvolvimento utilizada deve ser alimentada com tensão de 5V e atra-vés de um conector USB tipo B. Por este motivo, a pretensão é que a alimentação do ModeloElétrico seja sempre realizada pelo mesmo computador em que o Ambiente Integrado estejafuncionando, já que este último se comunica serialmente com o microcontrolador, assim, tal

Page 85: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

5.1. Etapas na construção e Hardware do Modelo 83

barramento é formado por dois cabos em paralelos, um para alimentação e um para comunica-ção.

5.1.6 Fabricação e Montagem do Modelo Tetraédrico em Acrílico

A despeito da falha descrita anteriormente com o processo de soldagem, como o mag-netômetro utilizado possui três eixos, apenas um magnetômetro funcional é suficiente para arealização de testes do Modelo e dos algoritmos.

A estrutura mecânica do Modelo Elétrico foi feita em acrílico. Foram feitas quatro pla-cas hexagonais com 10cm de lado e 5mm de espessura. Essas placas foram montadas no mesmoformato do tetraedro original, sendo que a fixação entre placas foi feita por meio de dobradiças.

Todos os acrílicos foram furados simetricamente para o posicionamento das placas desensores, essas foram posicionadas uma em cada acrílico com a face top voltara para dentro. Jáa Intermediária e a placa MCBSTM32EXL foram posicionadas no mesmo acrílico, sendo quea primeira foi posicionada voltada para dentro, ficando acima da placa de sensores e a segundafoi posicionada para fora do acrílico, virando inclusive a base do objeto. A figura 23 mostra amontagem final já pronta.

Figura 23 – Montagem Final do Modelo Elétrico.

Page 86: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

84 Capítulo 5. Modelo Elétrico E-MEMS

5.2 Software do Modelo

A seguir, são tradados os requisitos e fluxogramas do software desenvolvido. Devidoao tamanho dos códigos, que ultrapassam as mil linhas em sua totalidade, este trabalho trazsomente os códigos referentes a função Main e a interrupção pela serial, nos apêndices A.1 eA.2, respectivamente. O código por completo bem como uma explicação mais detalhas estãopresentes no relatório técnico de (BATISTA, 2013).

5.2.1 Requisitos de Software

Fora determinado que um dos quesitos de suma importância no desenvolvimento doambiente integrado seria a questão da generalidade do mesmo. Consequentemente, o Softwaredesenvolvido tem como principal característica ser facilmente adequado, ou mesmo ter um novorequisito adicionado, sem perder as características anteriores.

Outra fator delicado é a garantia de que os dados enviados para serem processados exter-namente sejam de medições e em períodos de tempo o mais próximos possíveis, principalmentequando trabalhando com os dados dos girômetros.

Finalmente, um último requisito funcional era para que este sempre respondesse a umdeterminado comando, ou seja, o microcontrolador deve atuar como uma espécie de escravo doambiente integrado. Essa característica, além de facilitar o primeiro ponto citado, permite quecaso haja a necessidade de se trocar o ambiente integrado ou mesmo modificar radicalmente oseu modelo, o código do microcontrolador muito provavelmente não necessitará de alterações.

5.2.2 Fluxograma de Funcionamento

O algoritmo e código desenvolvidos para a placa de desenvolvimento se baseia no flu-xograma da figura 24.

Basicamente, ao ser energizado, o microcontrolador realiza a configuração do Clock dosistema e de seus periféricos, é valido citar que essa família de controladores são inicializadoscom todos os periféricos desligados para reduzir o consumo de energia.

Na sequência, o sistema configura e habilita todos os periféricos e pinos necessários erealiza a configuração dos sensores necessários antes de entrar no loop infinito.

Nesse estado, o microcontrolador realiza a leitura de todos os sensores, salvando osdados em determinadas variáveis, e, sempre antes de inciar um novo ciclo de leitura, verifica-seo estado da variável denominada "dado_recebido". Caso essa variável indique que um caractereespecifico fora recebido pela interrupção da serial, o sistema irá enviar os dados requisitados devolta pela mesma serial. Dessa maneira, independente do momento em que a interrupção sejagerada, os dados somente serão enviados no final do ciclo e garantidamente os mesmos foramobtidos em intervalos satisfatoriamente próximos.

Page 87: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

5.2. Software do Modelo 85

Já o código da interrupção basicamente analisa qual caractere que está sendo recebidopela serial e seta a variável "dado_recebido"de acordo com o mesmo. Assim, é dada a liberdadedo ambiente integrado requerer os dados necessários, desde que o software tenha sido previa-mente programado para identificar esse caractere como um comando para enviar determinadosdados ao final do ciclo da função principal. Essa é a característica que torna possível configuraro sistema para enviar dados de uma maneira distinta das outras sem perder a lógica precedente.

Figura 24 – Fluxograma do software desenvolvido para o Modelo Elétrico.

Todos os pontos apresentados neste capítulo serviram como base para o desenvolvi-mento da ferramenta de principal foco deste trabalho, que será apresentada a seguir.

Page 88: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 89: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Parte IV

Ambiente Integrado de Simulação eProcessamento de dados

Page 90: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 91: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

89

6 Ambiente Integrado para Determina-ção de Atitude

No presente capítulo é abordado detalhadamente o Ambiente Integrado desenvolvidopara Determinação de Atitude. É importante citar que o sistema, em sua maioria, é baseadoem algoritmos elaborados em outros trabalhos relacionados ao Experimento MEMS, buscandoentão unir todos estes em uma única ferramenta, visando soluções para os mais diversos pro-blemas de cada trabalho e adicionando elementos a fim possibilitar que essa seja a ferramentabase para o Experimento MEMS e futuros projetos correlacionados.

Inicialmente, apresenta-se o conceito geral de funcionamento, os requisitos mínimosesperados a partir do mesmo, seus métodos de operações e como cada um destes deve atuarem conjunto com o Modelo Elétrico já apresentado. Posteriormente, é descrito separadamenteo que se espera do Modelo com dados simulados e daquele com dados de sensores reais.

6.1 Diagrama e requisitos básicos

A referência inicial para o desenvolvimento do Ambiente Integrado é derivado do Pro-jeto de Software apresentado em (CARVALHO NETO, 2012). Naquele trabalho, é proposto ummodelo em Matlab-Simulink capaz de realizar a dinâmica de um corpo rígido, simular as me-didas dos sensores do satélite e por fim calcular os quatérnions observados por ele, através doalgoritmo TRIAD, seguido da exportação destes quatérnions para um Filtro de Kalman desen-volvido em Linguagem C e visualização gráfica das simulações através das bibliotecas gráficasOpenGL.

A proposta desta seção é a criação de um modelo exclusivo em Matlab-Simulink, quepossua como principais características os seguintes pontos:

∙ Realizar a dinâmica de um corpo e simular as medidas de acelerômetros, magnetômetrose girômetros;

∙ Fazer a comunicação e obter os dados dos sensores do Modelo Elétrico;

∙ Calcular os quatérnions através do algoritmo TRIAD;

∙ Executar o processo de Propagação e Estimação e do Filtro de Kalman;

∙ Representar em imagens tridimensionais movimentos a partir de quatérnions.

Na figura 25 segue o diagrama simplificado para melhor visualização. O bloco em ama-relo indica o processo realizado pelo sistema embarcado, enquanto o restante é executado peloSimulink.

Page 92: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

90 Capítulo 6. Ambiente Integrado para Determinação de Atitude

Figura 25 – Diagrama simplificado do modelo desenvolvido.

No intuito de atingir os pontos apresentados anteriormente, duas simulações distintas,uma para dados simulados e outra para reais, foram desenvolvidas. Nas próximas seções sãoabordados diagramas específicos para cada uma. Espera-se, ainda, que no futuro, ambas sejamunificadas de maneira a formar somente um ambiente híbrido, capaz de selecionar, através dechaves, como essa deve operar.

6.2 Descrição do Modelo com Simulador de Sensores

Visto que em um sensor MEMS, por mais qualificado que seja, possui erros como fatorde escala, offsets, bias entre outros, é crucial que se tenha um modelo que funcione com dadossimulados, uma vez que assim temos um cenário totalmente controlado, onde facilmente pode-mos adaptar e controlar parâmetros, tornando mais fácil a validação de algoritmos e descobertasem eventuais problemas.

Dito isso, o principal objetivo dessa simulação é garantir que os algoritmos TRIAD e oFiltro de Kalman estejam funcionais antes de serem submetidos aos dados dos sensores. Paraauferir este, o modelo deve possuir os seguintes requisitos:

∙ Gerar movimentos (velocidades angulares e quatérnions), a partir das Equações de Eulere Dinâmica, tendo como entrada a Matriz de Inércia do corpo teórico e o Perfil de Torquedo movimento;

∙ Simular as medidas de acelerômetros e magnetômetros a partir do movimento gerado;

Page 93: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

6.2. Descrição do Modelo com Simulador de Sensores 91

∙ Adicionar erros como Fator de Escala e ângulo, offset e bias para os dados simulados deacelerômetros e magnetômetros;

∙ Acrescentar Fator de Escala, offset e bias para os dados do girômetros teórico;

∙ Modelar os sensores, ou seja, retirar os fatores acrescentados pelos dois últimos itens,com exceção ao bias;

∙ Calcular o quatérnion e a covariância a partir do algoritmo TRIAD, com os dados deacelerômetros e magnetômetros;

∙ Propagar e Estimar a atitude através do Filtro de Kalman, calculando o quatérnion exce-lente e os bias dos girômetros, utilizando-se dos dados do item anterior e dos girômetrossimulados;

∙ Visualizar o movimento e comparar os dados de quatérnions entre a equação dinâmica, oTRIAD e o filtro de Kalman;

Dos itens acima duas observações são pertinentes. Primeiro, o motivo de adicionarmoserros aos sensores para depois retirarmos se deve ao fato de que para o modelo real apenas obloco que retira os erros será portado, assim, adicionando e retirando erros, podemos validar apassagem matemática que realiza essa modelagem a fim de melhorar a medida.

Como já citado, o Filtro de Kalman tem como finalidade mesclar as informações dosgirômetros e do TRIAD e melhorar a atitude em relação a este, gerando o que pode ser chamadode quatérnion excelente.

Dessarte, temos a segunda observação, referente a comparação e análise dos quatérni-ons em três pontos. Com estes, e de acordo com os erros inseridos na simulação, é possívelcriar situações distintas para fácil comprovação do modelo. Podemos citar, como exemplo, doiscenários. No primeiro, com todos os erros próximos de zero, espera-se que os resultados nostrês pontos sejam extremamente próximos, porém, caso seja adicionado um bias razoavelmentegrande aos valores de magnetômetros e acelerômetros, têm-se um cenário onde é esperado queo resultado do quatérnion calculado pelo Filtro de Kalman seja mais próximo ao da equaçãodinâmica, que obviamente é o correto, do que o calculado pelo TRIAD.

Finalmente, feita as observações, a figura 26 mostra o diagrama e o fluxo de dados paraa simulação. Os blocos são apresentados em duas cores distintas. A cor verde representa osblocos exclusivos a este modelo, à medida que os restantes são aqueles posteriormente portadospara o determinador de atitude do Modelo Elétrico.

Devido ao tamanho do modelo não é possível uma imagem com qualidade suficientepara registro do modelo montado em Simulink, seguindo a imagem somente no apêndice B.1.

Page 94: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

92 Capítulo 6. Ambiente Integrado para Determinação de Atitude

Figura 26 – Diagrama proposto para simulação do determinador de Atitude.

6.3 Descrição do Modelo para interface com Sensores Re-

ais

Conforme adiantado em 5.2, o modelo deve atender a duas principais características, serfacilmente adaptável e servir como base para o desenvolvimento de software do microcontro-lador do experimento MEMS, além de ser capaz de verificar os problemas na determinação deatitude com os sensores utilizados.

Os requisitos pré-determinados para essa simulação são:

∙ Enviar a requisição, receber e separar os dados do Tetraedro conforme necessário;

∙ Converter os dados das coordenadas do tetraedro para uma tríade com uma referênciadesejada;

∙ Corrigir os erros dos três tipos de sensores a partir de parâmetros de calibração fornecidosao sistema;

∙ Calcular o vetor de referência para o algoritmo TRIAD;

Page 95: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

6.3. Descrição do Modelo para interface com Sensores Reais 93

∙ Determinar o quatérnion de atitude através do algoritmo TRIAD;

∙ Calcular o ∆𝑡 para o Propagador do Filtro de Kalman;

∙ Implementar o FK a partir dos dados do TRIAD e dos girômetros;

∙ Visualizar o movimento e comparar os dados de quatérnions entre o TRIAD e o filtro deKalman;

Baseado nos requisitos acima, o diagrama da figura 27 apresenta o funcionamento e aproposta básica do determinador de atitude para o Modelo Elétrico. O mesmo é subdivido emquatro categorias, indicadas por cores.

Figura 27 – Diagrama proposto para determinador de Atitude do Modelo Elétrico.

Os significados das cores dependem se a função é executada pelo microcontrolador doModelo Elétrico ou pelo Simulink no próprio Ambiente Integrado e também da implementaçãoou não neste trabalho, da seguinte maneira:

Page 96: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

94 Capítulo 6. Ambiente Integrado para Determinação de Atitude

∙ Amarelo - Blocos executados exclusivamente pelo microcontrolador;

∙ Laranja - Blocos executados exclusivamente pelo Simulink;

∙ Azul - Blocos executados pelo Simulink para futura implementação em microcontrolador;

∙ Vermelho - Blocos parcialmente ou não implementados neste trabalho.

No capítulo 7 todos as passagens do modelo em Simulink serão abordadas mais profun-damente, porém, algumas observações são válidas neste momento.

O primeiro bloco vermelho, referente ao Filtro Heurístico, é abordado parcialmenteneste trabalho, sendo discutida a importância, a necessidade e possibilidades do mesmo paraaplicações onde o uso do acelerômetro é essencial. Entretanto, devido ao foco em um Experi-mento em ambiente de microgravidade, o Filtro não é discutido de maneira profunda.

Já os algoritmos de calibração não são implementados neste momento. Em 8 há umabreve discussão e resultados que comprovam a necessidade e total dependência da calibraçãodos sensores para um bom funcionamento. Assim, são utilizados os algoritmos desenvolvi-dos por (SANTANA, 2009) de maneira externa ao Ambiente Integrado, ou seja, conforme anecessidade, faz-se a coleta de dados e calibração através deste método e os parâmetros sãoposteriormente inseridos no Bloco referente às Constantes de Calibração.

Por fim discutimos os blocos azuis, que trazem todas as funções que no ExperimentoMEMS final devem ser executadas pelo microcontrolador, porém neste trabalho são executadasno ambiente discutido. Como o modelo foi desenvolvido progressivamente e deve servir comobase para posterior implementação embarcada das funções de forma gradativa, este pode atuarem diversos modos de operações, que são apresentados a seguir.

6.3.1 Modos de operação do microcontrolador e ambiente

Voltando a figura 27, foram levantadas quatro cenários para o desenvolvimento gradual,que são:

∙ Primeiro - Cálculo do quatérnion a partir do algoritmo TRIAD no Simulink;

∙ Segundo - Cálculo do quatérnion a partir do Algoritmo TRIAD e do Filtro de Kalman,ambos em Simulink;

∙ Terceiro - Cálculo do quatérnion pela TRIAD no sistema embarcado e pelo Filtro deKalman em Simulink;

∙ Quarto - Cálculo do quatérnion pela TRIAD e pelo Filtro de Kalman ambos em micro-controlador;

Assim, apesar do foco ser nos dois primeiros, o sistema é capaz de atender a todosos pontos. Para tal, os dados enviados do microcontrolador para o Ambiente Integrado foram

Page 97: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

6.3. Descrição do Modelo para interface com Sensores Reais 95

subdivididos em seis, enviados de acordo com o caractere recebido pelo mesmo (5.2). A tabela5 mostra as possibilidades.

Tabela 5 – Descrição das possibilidades de comunicação entre o microcontrolador e o ambiente.Dado recebido pelo Microcontrolador e os dados enviados como resposta.

Dado Recebido Informações Enviadas de volta para o ambiente@ MAG[x,y,z] - ACC[x,y,z]# MAG[x,y,z] - ACC[x,y,z] - GYR[1,2,3,4] -

GYR_tmp[1,2,3,4]% MAG[x,y,z] - ACC[x,y,z] - GYR[1,2,3,4] -

GYR_tmp[1,2,3,4] - ∆𝑡& qTriad - GYR[1,2,3,4] - GYR_tmp[1,2,3,4] - ∆𝑡* qTriad - qEstFK$ Reservado

Sendo:

∙ MAG[x,y,z] - Dados dos magnetômetros, nos eixos x,y,z, respectivamente;

∙ ACC[x,y,z] - Dados dos acelerômetros, nos eixos x,y,z, respectivamente;

∙ GYR[1,2,3,4] - Dados dos girômetros das placas 1,2,3 e 4, respectivamente;

∙ GYR_tmp[1,2,3,4] - Temperatura medida pelos girômetros das placas 1,2,3 e 4, respecti-vamente;

∙ ∆𝑡 - Contagem do Timer do microcontrolador entre a requisição de dados atual e anterior;

∙ qTriad - Quatérnion calculado pelo algoritmo TRIAD pelo microcontrolador;

∙ qEstFK - Quatérnion estimado pelo Filtro de Kalman pelo microcontrolador;

A razão pela qual a resposta de # e % são diferenciadas apenas pela adição de ∆𝑡, éque assim elimina-se a necessidade do Ambiente Integrado rodar em Tempo Real. A discussãoacerta deste é feita em 7.3.4.

É evidente então que o sistema proposto conseguirá no futuro promover implementa-ções gradativas, saindo do Simulink para o sistema embarcado, garantindo assim que pequenostrechos sejam parcialmente testados e aprovados.

Com o conceito geral de funcionamento do sistema descrito, o próximo capítulo debatesobre como cada bloco desenvolvido funciona.

Page 98: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 99: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

97

7 Blocos do Ambiente

Neste capítulo são analisadas cada uma das passagens desenvolvidas no ambiente Simu-

link, ressaltando as mais relevantes e seus algoritmos, dividindo-as em três seções.

7.1 Blocos exclusivos aos dados simulados

Nesta seção são abordadas as etapas referentes somente ao sistema para processamentode sensores simulados, que são:

∙ Geração do movimento - velocidade angular e quatérnions;

∙ Simulação de medidas de sensores;

∙ Adição de erros nos parâmetros dos acelerômetros, magnetômetros e girômetros simula-dos;

A primeira está relacionada ao cálculo de velocidades angulares e posteriormente doquatérnion do movimento gerado. Já em um segundo momento, os dados dos quatérnions sãoutilizados para a simulação de acelerômetros e magnetômetros enquanto que os dados de veloci-dade angular para o girômetros, por fim, a essas medidas são adicionados erros para assemelhara um sensor real. Os seguintes erros são adicionados aos ACC e MAG:

∙ Erro de fator de escala;

∙ Erro de alinhamento dos eixos;

∙ Erro de offset;

∙ Erro de Bias;

Para os girômetros os mesmos quesitos são adicionados, exceto ao erro de alinhamento,uma vez que aqueles fazem a medição em apenas um eixo.

7.1.1 Gerador de Movimentos

7.1.1.1 Cálculo de velocidade angular

Para o cálculo do vetor de velocidade angular do corpo rígido, assumindo que este seencontra em repouso, são necessárias as seguintes informações de entrada:

- A matriz de inércia do corpo ([I𝑟] =[𝐼𝑥 𝐼𝑦 𝐼𝑧

]), com elementos não-nulos apenas em sua

diagonal principal.

Page 100: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

98 Capítulo 7. Blocos do Ambiente

- Uma sequência de torques aplicados (m =[𝑀𝑥 𝑀𝑦 𝑀𝑧

]) sobre o corpo.

Como mostrado em (SIDI, 2000), é possível relacionar os dois itens anteriores com avelocidade angular de um corpo, através das equações 7.1 a 7.3, conhecidas como equações demomento de Euler.

𝑀𝑥 = 𝐼𝑥��𝑥 + 𝜔𝑦𝜔𝑧(𝐼𝑧 − 𝐼𝑦) (7.1)

𝑀𝑦 = 𝐼𝑦��𝑦 + 𝜔𝑥𝜔𝑧(𝐼𝑥 − 𝐼𝑧) (7.2)

𝑀𝑧 = 𝐼𝑧��𝑧 + 𝜔𝑥𝜔𝑦(𝐼𝑦 − 𝐼𝑥) (7.3)

Uma vez que o Simulink é capaz de realizar integrações, através do bloco Integrator, se-rão utilizadas as equações de momento de Euler, calculadas de maneira recursiva, para encontrara derivada de ��, conforme as equações 7.4 a 7.6.

��𝑥 =[𝑀𝑥 − 𝜔𝑦𝜔𝑧(𝐼𝑧 − 𝐼𝑦)

]/𝐼𝑥 (7.4)

��𝑦 =[𝑀𝑦 − 𝜔𝑥𝜔𝑧(𝐼𝑥 − 𝐼𝑧)

]/𝐼𝑦 (7.5)

��𝑧 =[𝑀𝑧 − 𝜔𝑥𝜔𝑦(𝐼𝑦 − 𝐼𝑥)

]/𝐼𝑧 (7.6)

Através desse valor de derivada, realiza-se a integração (com condições iniciais nulas)para resultar na velocidade angular do corpo. A composição de blocos que realiza esse processoé mostrada na figura 28. O código do bloco EQ_Euler segue no apêndice C.1.

Figura 28 – Blocos para cálculo da velocidade angular (𝜔) de um corpo.

7.1.1.2 Cálculo do quatérnion

A partir da velocidade angular de um corpo (𝜔), é possível encontrar a derivada doquatérnion de atitude a partir da equação de dinâmica do quatérnion (equação 7.7). Novamente,através de um bloco integrador, cuja componente inicial considerada é um quatérnion unitário, é

Page 101: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.1. Blocos exclusivos aos dados simulados 99

possível obter o quatérnion. Os blocos responsáveis por essa passagens são mostrados na figura29.

⌣𝑞 = 1/2 Ω4

⌣𝑞 , (7.7)

onde a matriz Ω′ é a matriz anti-simétrica, definida pela equação (7.8).

[Ω′(𝜔)] =

⎡⎢⎢⎢⎢⎣0 𝜔z −𝜔y 𝜔x

−𝜔z 0 𝜔x 𝜔y

𝜔y −𝜔x 0 𝜔z

−𝜔x −𝜔y −𝜔z 0

⎤⎥⎥⎥⎥⎦ (7.8)

Figura 29 – Bloco para cálculo do quatérnion.

O código do bloco cinemática para cálculo do quatérnion segue no apêndice C.2.

Este quatérnion calculado é o denominado ⌣𝑞 𝑡𝑟𝑢𝑒, que é a atitude que será considerada

como verdadeira para o restante do modelo. A partir desses se tem informações suficiente paraa simulação de sensores de referência e girômetros.

7.1.2 Simulação das medidas de sensores

Considerando que a informação de velocidade angular já é conhecida, representar aleitura de um girômetro é instantânea, uma vez que esse sensor tem como objetivo medir essamesma informação. Assim, não é necessário nenhuma operação para simular tal dispositivo.

Todavia, para sensores de referência, a simulação a partir de um quatérnion é feita rota-cionando o vetor de referência para a obtenção de um vetor observado. Simplificando, a partirde uma referência qualquer e um quatérnion é possível obter um vetor que corresponda as me-didas de um acelerômetro ou magnetômetro. A passagem matemática que realiza essa operação

Page 102: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

100 Capítulo 7. Blocos do Ambiente

segue na equação 7.9. O Simulink já dispõem de um bloco que realiza essa operação, chamadode Quaternion Rotation, o bloco montado no sistema é mostrado na figura 30.

𝐿𝑞(v) = [𝑄] * v =

⎡⎢⎢⎣ 2𝑞20 + 2𝑞21 − 1 2𝑞1𝑞2 − 2𝑞0𝑞3 2𝑞1𝑞3 + 2𝑞0𝑞2

2𝑞1𝑞2 + 2𝑞0𝑞3 2𝑞20 + 2𝑞22 − 1 2𝑞2𝑞3 − 2𝑞0𝑞1

2𝑞1𝑞3 − 2𝑞0𝑞2 2𝑞2𝑞3 + 2𝑞0𝑞1 2𝑞20 + 2𝑞23 − 1

⎤⎥⎥⎦⎡⎢⎢⎣ 𝑣1

𝑣2

𝑣3

⎤⎥⎥⎦ (7.9)

Figura 30 – Bloco para conversão de um quatérnion em uma medida de sensor a partir de dadareferência.

Com essa operação temos dados de sensores simulados perfeitos, sendo necessário aseguir adicionar erros baseados naqueles encontrados em dispositivos reais.

7.1.3 Adição de erros aos sensores simulados

Conforme já citado, os erros considerados neste trabalho são: fator de escala; alinha-mento dos eixos; offset; Bias. O modelo para acelerômetros e magnetômetros segue a propostade (GRANZIERA JR. et al., 2011), enquanto que o girômetro desconsidera alinhamento doseixos, por ser unidimensional.

7.1.3.1 Sensor Inercial - Girômetro

A modelagem dos girômetros é relativamente simples. Sabendo que o fator de escala émultiplicativo a medida, e o offset e bias valores que se somam ao sinal, sendo o último aleatórioe descorrelacionado entre eixos, podemos aferir as equações 7.10, 7.11 e 7.12, respectivamentepara cada eixo de velocidade angular medidos.

��𝑥 = 𝑉 𝑠𝑥 * 𝑤𝑥 + 𝑣𝑜𝑥 + 𝑣𝑛𝑥 (7.10)

��𝑦 = 𝑉 𝑠𝑦 * 𝑤𝑦 + 𝑣𝑜𝑦 + 𝑣𝑛𝑦 (7.11)

��𝑧 = 𝑉 𝑠𝑧 * 𝑤𝑧 + 𝑣𝑜𝑧 + 𝑣𝑛𝑧 (7.12)

Onde,

∙ 𝑉𝑠 é o fator de escala;

Page 103: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.1. Blocos exclusivos aos dados simulados 101

∙ 𝑤 é a medida simulada do sensor sem erro;

∙ 𝑣𝑜 é o valor de offset;

∙ 𝑣𝑛 é o valor do ruído em RMS (bias);

Para implementação do processo acima temos o bloco da figura 31. O código imple-mentado segue no apêndice C.3.

Figura 31 – Bloco para adição de erros em girômetros.

É importante reforçar que para simulações, os erros referentes ao bias devem ser ale-atórios. Por tais motivos, estes são implementados através da função randn(3,1) do Matlab,gerando ainda um valor para cada eixo, evitando assim a correlação entre eles.

7.1.3.2 Sensores de referência - Acelerômetro e Magnetômetro

O modelo para os acelerômetros e magnetômetros considera os mesmos erros tratadosanteriormente para girômetros, porém, agora, é adicionado o que é chamado de erro de alinha-mento entre os eixos. A figura 32 representa essa questão.

Basicamente, este erro é causado pela influência da medida de um eixo sobre o outro.Isso quer dizer que o valor medido pelo sensor em uma das direções pode sofrer interferênciade um segundo eixo, uma vez que é impossível garantir que um dispositivo deste tipo tenha aortogonalidade entre seus eixos perfeita.

Dito isso, analisando a figura, e, assumindo que a medição no eixo 𝑥 está correta, o valorobtido em 𝑦 terá uma componente derivada do eixo anterior que se relaciona por um ângulo 𝜌.Já a medição em 𝑧 será composta por erro nos outros dois eixos, se relacionando com 𝑥 e 𝑦,respectivamente por ∅ e 𝜆.

Page 104: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

102 Capítulo 7. Blocos do Ambiente

Figura 32 – Ilustração dos erros causados pelo desvios de ângulos.

Fonte: (GRANZIERA JR. et al., 2011)

A relação entre o vetor com estes erros e o vetor corrigido é dada pela matriz 𝑇 , mos-trada na equação 7.13.

𝑇 =

⎡⎢⎢⎣ 1 0 0sin 𝜌 cos 𝜌 0

sin∅ cos𝜆 sin𝜆 cos∅ cos∅ cos𝜆

⎤⎥⎥⎦ (7.13)

Unindo a matriz acima com o modelo já proposto para os girômetros, o processo deadição de erros a medida de 𝑢 para �� é feito pela equação 7.14.

�� = 𝑉 𝑠 * 𝑇 * 𝑢 + 𝑣𝑜 + 𝑣𝑛 (7.14)

Onde,

∙ 𝑉𝑠 é a Matriz Diagonal dos fatores de escalas;

∙ 𝑇 é a Matriz que relaciona os erros de alinhamento;

∙ 𝑢 é o vetor de medidas simulada do sensor sem erros;

∙ 𝑣𝑜 é o vetor dos valores de offsets;

∙ 𝑣𝑛 é o vetor dos ruídos em RMS (bias);

Finalmente, a figura 33 mostra o bloco responsável pela passagem descrita anterior-mente. O código desse bloco pode ser visualizado no apêndice C.4.

Realizando as operações descritas nessa seção, finalmente obtém-se parâmetros quepodem ser considerados como medidas de sensores magnéticos, de aceleração gravitacional ede velocidade angular com erros simulados ao que seria encontrado em um dispositivo real.

Page 105: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.2. Blocos Principais 103

Figura 33 – Bloco para adição de erros em sensores de referência.

7.2 Blocos Principais

Essa seção apresenta os blocos comuns aos sistemas de simulação de movimento ou dedados do Modelo Elétrico, é coerente dizer que esses são os principais blocos a serem validadospelo Ambiente Integrado. São eles:

∙ Visualização gráfica de uma imagem 3D;

∙ Correção dos parâmetros dos sensores;

∙ Algoritmo de determinação de atitude TRIAD;

∙ Filtro de Kalman para propagação e estimação de Atitude.

7.2.1 Modelo para visualização gráfica

Analisar um quatérnion simplesmente pelos seus valores, ou através de gráficos gerados,é válido para verificar a coerência dos resultados e, por exemplo, no modelo com movimentosimulado, comparar os quatérnions verdadeiros com os quatérnions estimados pelos algoritmosutilizados. Contudo, analisar em tempo real, de maneira a saber se os dados estão corretos, alémde coerentes, utilizar esse critério pode não ser prático, visto que deduzir o apontamento de umcorpo somente com esse dado não é trivial.

Dito isso, e baseado na ideia inicial apresentada em (SILVA, 2008), desenvolvida emOpenGL, é proposto o desenvolvimento, em Simulink, de um visualizador de objetos capaz deseguir os movimentos de um desenho 3D elaborado externamente.

Page 106: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

104 Capítulo 7. Blocos do Ambiente

O desenvolvimento fora feito a partir do bloco VR Sink, disponível na biblioteca 3D Ani-

mation. Com as devidas configurações, é possível reproduzir uma imagem, em formato VRML,e rotacioná-la a partir de um quatérnion. A figura 34 mostra o sistema que faz essa tarefa.

Figura 34 – Bloco para visualização Gráfica de um objeto a partir de um quatérnion.

O bloco ajusta_q realiza uma simples operação para adequar o quatérnion de maneira aser compreendido pelo VR sink.

Com o bloco funcional, foram feitos desenhos do Modelo Elétrico em SolidWorks e sal-vos em VRML. A primeira versão é vista na figura 35, porém, devido ao grau de complexidade,o Ambiente Integrado não conseguiu manter o nível de processamento, assim, uma segundaversão reduzida foi desenhada, essa é mostrada em 36, nessa figura também é apresentada umacaptura da tela do Simulink para comparação.

Figura 35 – Reprodução do Modelo Elétrico feita em SolidWorks.

Ressalta-se que apesar dos resultados do Modelo 3D serem considerados um marco paraanálise rápida de um modelo executado em Tempo Real, o trabalho dará foco aos resultados egráficos tratados diretamente em quatérnions, deixando o primeiro para análises e comprovaçãoinicial dos algoritmos, ainda assim, para total comprovação sempre devem ser analisados osdados de saídas dos algoritmos postos a prova.

Page 107: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.2. Blocos Principais 105

Figura 36 – Imagem do desenho reduzido para o Modelo Elétrico, a esquerda no software So-lidWorks e a direita no Simulink.

7.2.2 Correção de parâmetros dos sensores

Opostamente ao apresentado na seção 7.1.3, a seguir é abordado o processo de, dado osparâmetros de calibração dos sensores, inseri-los nos dados medidos. Novamente são tratadosos modelos para sensores inerciais e sensores de referência separadamente.

As passagens a seguir utilizam dados inseridos diretamente, ou seja, não são responsá-veis por analisar os dados e calcular os parâmetros de calibração, mas sim por utilizar os quelhe forem fornecidos e aplicá-los no modelo.

7.2.2.1 Sensor Inercial - Girômetro

Partindo das equações 7.10 a 7.12, o objetivo agora é retirar os fatores de escala e offsets

de um sensor simulado com erros ou dos sensores reais lidos. Olhando para as equações anteri-ores, basta isolarmos a componente de 𝑢, porém, esse vetor já com os parâmetros de correçãoserá chamado de 𝑢𝑟𝑒𝑐, para evitar confusões e fazendo uma analogia a um vetor recuperado. Asequações 7.15 a 7.17 mostram esse processo, para cada eixo, respectivamente.

𝑤𝑥𝑟𝑒𝑐 = 𝑉 𝑠−1𝑥 * (��𝑥 − 𝑣𝑜𝑥) (7.15)

𝑤𝑦𝑟𝑒𝑐 = 𝑉 𝑠−1𝑦 * (��𝑦 − 𝑣𝑜𝑦) (7.16)

𝑤𝑧𝑟𝑒𝑐 = 𝑉 𝑠−1𝑧 * (��𝑧 − 𝑣𝑜𝑧) (7.17)

sendo,

∙ 𝑉𝑠 é o fator de escala;

∙ �� é a medida dos sensores com erros;

∙ 𝑣𝑜 é o valor de offset;

Page 108: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

106 Capítulo 7. Blocos do Ambiente

É evidente, olhando para as equações, que o bias é desconsiderado nesse modelo, fatoesperado, uma vez esse é um ruído Gaussiano branco, assim, uma vez que não há correlação domesmo com o tempo, é impossível tratá-lo a partir do modelo apresentado. A figura 37 mostrao bloco que realiza essa função, enquanto que o código segue no apêndice C.5.

Figura 37 – Bloco para correção dos valores obtidos pelos girômetros através de parâmetros decorreções fornecidos.

7.2.2.2 Sensores de referência - Acelerômetro e Magnetômetro

Realizando o mesmo processo para os sensores acelerômetro e magnetômetro, conside-rando o modelo de adição dos parâmetros propostos em 7.14, o processo inverso, para recupe-ração de 𝑢𝑟𝑒𝑐 será dado pela equação 7.18. Observa-se que pela mesma razão já apresentada osvalores de bias não são tratados.

𝑢𝑟𝑒𝑐 = (𝑉𝑠 * 𝑇 )−1 * (��− 𝑣𝑜) = 𝑇−1𝑉 −1𝑠 * (��− 𝑣𝑜) (7.18)

Onde,

∙ 𝑉𝑠 é a Matriz Diagonal dos fatores de escalas;

∙ 𝑇 é a Matriz que relaciona os erros de alinhamento;

∙ 𝑢 é o vetor de medidas simulada do sensor sem erros;

∙ 𝑣𝑜 é o vetor dos valores de offsets;

Como 𝑉𝑠 é uma Matriz Diagonal, o cálculo de sua inversa é facilmente obtido, visto quenesse tipo de matriz a sua inversa é dada pela inversão de cada elemento da diagonal principal.Já a inversa da matriz 𝑇 é dada por 7.19.

𝑇−1 =

⎡⎢⎢⎣ 1 0 0− tan 𝜌 1

cos 𝜌0

tan 𝜌 tan𝜆− tan∅ − tan𝜆cos 𝜌

1cos𝜆 cos∅

⎤⎥⎥⎦ (7.19)

A bloco que realiza essa função é mostrado na figura 38. O código de execução emSimulink está presente no apêndice C.6.

Page 109: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.2. Blocos Principais 107

Figura 38 – Bloco para correção dos valores obtidos por acelerômetros ou magnetômetros atra-vés de parâmetros de correções fornecidos.

7.2.3 TRIAD

A execução do algoritmo TRIAD, já discutido em 3.3, é feita pelo conjunto da figura39. Observa-se, entretanto, que o primeiro bloco realiza o cálculo da Matriz de Atitude (DCM),que posteriormente é convertida em quatérnions através do bloco Direction Cosine Matrix to

Quaternions, disponível na biblioteca Aerospace.

Figura 39 – Bloco para cálculo da covariância e da atitude através do algoritmo TRIAD.

Uma vez que as passagens matemáticas já foram tratadas na seção citada, apenas seráapontada a ordem cronológica dos fatos realizados pelo bloco. Como pode ser visto, os parâ-metros de entrada são:

∙ Desvio Padrão das medidas de acelerômetro (sig_acc) e magnetômetro (sig_mag);

Page 110: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

108 Capítulo 7. Blocos do Ambiente

∙ Vetor de referência para o primeiro sensor - magnetômetro (mag_ref);

∙ Vetor de referência para o segundo sensor, - acelerômetro (acc_ref);

∙ Vetor atual (observado) do primeiro sensor - magnetômetro (mag_rec);

∙ Vetor atual (observado) do segundo sensor - acelerômetro (acc_rec);

Os vetores 𝑚𝑎𝑐_𝑟𝑒𝑐 e 𝑎𝑐𝑐_𝑟𝑒𝑐 são aqueles obtidos a partir do bloco 𝑖𝑛𝑣_𝑠𝑒𝑛𝑠𝑜𝑟_𝑚𝑜𝑑𝑒𝑙,que trás como saída 𝑢_𝑟𝑒𝑐. Com esses dados, o bloco executa as seguintes funções:

1. Calcula a tríade de referência;

2. Monta a Matriz de Referência;

3. Obtém a tríade de observação;

4. Monta a Matriz de Observação;

5. Calcula a Matriz de Atitude;

6. Calcula a Covariância da Atitude;

Assim, ao final do processo temos como saída a Matriz de Atitude (A) e sua covariância(R), seguido da conversão de A para quatérnions. Considerando que o primeiro elemento doquatérnion (𝑞0) como a componente escalar, a conversão é feita através do bloco Direction

Cosine Matrix to Quaternions, que realiza as operações vistas as equações 7.20 à 7.23.

𝑞0 =1

2*√

𝑡𝑟(𝐴) + 1 (7.20)

𝑞1 =𝐴23 − 𝐴32

4 * 𝑞0(7.21)

𝑞2 =𝐴31 − 𝐴13

4 * 𝑞0(7.22)

𝑞3 =𝐴12 − 𝐴21

4 * 𝑞0, (7.23)

onde 𝑡𝑟 é o traço da matriz. Este é a soma dos elementos da sua diagonal principal.O código executado pelo bloco TRIAD segue no apêndice C.7.

7.2.4 Propagador/Estimador (Filtro de Kalman)

O cálculo da Propagação e Estimação de atitude, através do Filtro de Kalman, já foratratado na seção 3.4. Visto que o processo executado baseia-se no descrito naquela, o mesmo éabordado de maneira simplificada nessa, enumerando as principais passagens.

Como a execução do Filtro é dividida em duas, essas serão abordadas individualmente,realizando as ressalvas necessárias. O conjunto que realiza os cálculos do Filtro de Kalman parao módelo proposto pode ser visto na figura 40.

Page 111: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.2. Blocos Principais 109

Figura 40 – Sistema para o cálculo e execução do Filtro de Kalman.

7.2.4.1 Propagação

De uma maneira grosseira, é possível afirmar que a Propagação de Kalman realiza,como o próprio nome indica, uma predição do Estado atual. Assim, considerando o ambientede aplicação desse trabalho, a Propagação é responsável por utilizar dos dados de Atitude,Covariância e bias, os três referentes a estimação passada, e propagá-las a partir dos dados atuaisdos girômetros e da matriz de covariância do ruído do sistema. Uma vez que o deslocamento dosistema é feito com base em dados de velocidades angulares, é necessário também a informaçãotemporal entre as propagações.

Desse modo, a Propagação utiliza como dados de entrada:

∙ 𝑤𝑔𝑦𝑟𝑜 - Vetor de velocidade angular nos três eixos, já com o bias calculado pelo Estimadorsubtraído;

∙ ∆𝑡 - Tempo, em segundos, entre a última propagação e a atual;

∙ 𝑄 - Matriz Diagonal de covariância de ruído;

∙ 𝑥𝑒𝑠𝑡 - Vetor (7x1) de Estados atualizados, contendo o quatérnion e os bias;

∙ 𝑃𝑇𝑒𝑠𝑡 - Matriz reduzida (6x6) da covariância dos estados;

Já os sinais 𝑖𝑖𝑛 e 𝑖𝑜𝑢𝑡 funcionam como um contador para ativar a Estimação de Estados,que será discutida a seguir. Como esses não fazem parte do algoritmo, propriamente dito, não

Page 112: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

110 Capítulo 7. Blocos do Ambiente

são relevantes. Não obstante, em aplicações futuras esse será substituído por um sinal gerado apartir do Filtro Heurístico (7.3.5, que será responsável por comandar a Estimação do sistema).

Com todos esses dados, o sistema efetua os seguintes passos:

1. Propagação do vetor de estados;

2. Propagação da matriz de covariância;

Finalmente, na saída são presente os seguintes dados:

∙ Vetor de Estados propagados (7x1);

∙ Matriz de Estados propagados (6x6);

7.2.4.2 Estimação

A palavra Estimação pode ser entendida também como Atualização dos Estados. Ouseja, ela é responsável por mesclar os dados propagados com as informações de Atitude ob-servadas e sua matriz de covariância, que nesse caso, são os dados 𝑞𝑇𝑟𝑖𝑎𝑑 e sua covariância,provindos do Bloco TRIAD.

Entretanto, um dos méritos do algoritmo é que a estimação não é obrigatoriamente feitaa toda iteração desse bloco, e, quando esse fato ocorre, os dados de entrada (propagados) sãosimplesmente transferidos para a saída de dados estimados, ignorando os dados provenientesdo TRIAD.

O fato descrito no último parágrafo possibilita duas aplicações. A primeira, por exem-plo, é a solução implementada no Experimento MEMS para o satélite. Os dados de atitude ecovariância observados (provenientes do ACS do satélite) serão repassados a cada segundo,entretanto, a propagação está programada para ser executada dez vezes nesse intervalo, então,convenientemente, o Experimento Estima a atitude somente quando os dados do ACS são atua-lizados e nas outras nove iterações o sistema não executa esse processo.

Já a segunda aplicação, faz uso do Filtro-Heurístico. Como é sabido, um acelerômetroou mesmo o magnetômetro podem sofrer influências externas indesejadas em suas medidas,como exemplo, o primeiro devido a uma aceleração alta imposta ao sistema e o outro devidoa aproximação de um objeto magnético. Nesses dois cenários, a Atitude calculada por um al-goritmo como o TRIAD perde a confiabilidade, e, caso a Estimação de Estados seja feita, amedida perderá sua confiabilidade. Portanto, em aplicações terrestres, o Filtro-Heurístico podeser desenvolvido para detectar essas anomalias, e controlar assim quando que o processo deestimação deve ou não ser executado.

Feitas tais observações, seguem os dados requeridos e gerados no bloco em questão:

∙ 𝑞𝑇𝑟𝑖𝑎𝑑 - Quatérnion observado pelo TRIAD ou algum outro método;

∙ R - Matriz de covariância do quatérnion do item anterior;

Page 113: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.3. Blocos exclusivos ao modelo com dados reais 111

∙ x𝑝𝑟𝑜𝑝 Vetor de Estados propagados (7x1);

∙ PT𝑝𝑟𝑜𝑝 Matriz de Estados propagados (6x6);

∙ 𝑖 Sinal para ativação ou não da estimação;

Com os dados acima, e dependendo de 𝑖, o processo executa ou não a atualização dovetor de estados e da matriz de covariância. Relembrando que caso não ocorra a atualização,os dados de entrada são repassados diretamente para a saída. Finalmente, a saída do Filtro deKalman contém os seguintes itens:

∙ x𝑒𝑠𝑡 - Vetor (7x1) de Estados atualizados, contendo o quatérnion e os bias;

∙ PT𝑒𝑠𝑡 - Matriz reduzida (6x6) da covariância dos estados;

∙ P𝑒𝑠𝑡 - Matriz da covariância dos estados estendida (7x7);

Com esse processo, o quatérnion obtido pelo Filtro de Kalman (𝑞𝐸𝑠𝑡𝐹𝐾) pode serobtido separando os quatros primeiros termos do Vetor de Estados dos últimos três elementos,referentes ao bias estimado.

7.3 Blocos exclusivos ao modelo com dados reais

Finalmente, são analisados os blocos necessários para que o Ambiente Integrado sejacapaz de calcular a atitude através dos dados de sensores e apresentar o resultado gráfico coe-rentes através da interface apresentada em 7.2.1. Para possibilitar todo esse desenvolvimento,somados aos blocos de 7.2 foram utilizados:

1. Interface de comunicação/recepção de dados pela serial;

2. Separação dos dados recebidos;

3. Geração dos vetores de referência de acelerômetros e magnetômetro;

4. Conversão dos dados de girômetros na base tetraédrica para tríade;

5. Cálculo do ∆𝑡 para o propagador do Filtro de Kalman;

6. Filtro Heurístico;

7. Auto-Calibrador;

Os três primeiros blocos dessa lista podem ser classificados como funcionais, uma vezque suas funções são pontuais para possibilitar o funcionamento do restante do sistema. Já osdois últimos referem-se as passagens não implementadas, porém uma breve discussão será feita.

Page 114: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

112 Capítulo 7. Blocos do Ambiente

7.3.1 Comunicação Serial e Separação de Dados

Para garantir os requisitos de comunicação apresentados em 5.2, o bloco Query_Instrument

foi escolhido. Esse é capaz de realizar exatamente o processo necessário, enviando um dadoatravés da serial e em seguida esperando a resposta de um dispositivo qualquer. Dessa forma,posterior ao envio de um caractere, o Modelo Elétrico responde conforme a tabela 5.

Como os dados estão em um vetor único, a separação dos mesmos em variáveis é feitaem "separa_dados". A figura 41 mostra o sistema.

Figura 41 – Blocos responsáveis pela comunicação com o Modelo Elétrico e separação dosdados conforme necessário.

No caso retratado pela figura, o caractere enviado como requisição é ’%’. Assim, osdados respondidos foram separados em dados do magnetômetro, acelerômetro, girômetro econtador do timer, enquanto que os dados de temperatura dos girômetros foram descartados.

Obviamente que para atender a todos os modos de operação a função de separação dosdados não é fixa, havendo versões para cada variedade possível.

Complementando, o bloco Query_Instrument é muito versátil em seus quesitos de con-figuração. Além de facilmente configurar o comando para requisitos, o formato da resposta éconfigurado passando o tamanho do vetor de saída e o tipo de cada um dos dados, possibili-tando o uso de variáveis distintas. O bloco também possibilita setar um tempo de timeout, o quecausará a pausa do sistema caso a resposta não seja obtida nesse período.

7.3.2 Gerador de referência

Para o sistema de simulações, os vetores de referência acabam não influenciando, umavez que não existe um objeto real cujo movimento deve ser acompanhado. Entretanto, ao con-siderarmos que o sistema deve representar o Modelo Elétrico, é necessário que o vetor de refe-rência de acelerômetros e magnetômetros seja coerente.

Page 115: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.3. Blocos exclusivos ao modelo com dados reais 113

Por esse motivo, o bloco gera_referencia, mostrado na figura 42, tem como função gerarvetores fixos para a referência do sistema baseados na primeira leitura recebida dos dados dossensores.

Figura 42 – Bloco responsável por gerar os vetores de referência para os sensores ACC e MAG.

Como os blocos em Simulink são executados a cada iteração e não salvam os cálculosanteriores, para sempre repassar o dado de referência utiliza-se do recurso de realimentação. Demaneira simplificada o fluxograma de funcionamento pode ser visto na figura 43.

Figura 43 – Bloco responsável por gerar os vetores de referência para os sensores ACC e MAG.

Page 116: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

114 Capítulo 7. Blocos do Ambiente

7.3.3 Conversão modelo tetraédrico para tríade

O objetivo desse bloco é obter as velocidades angulares, nos eixos 𝑥, 𝑦 e 𝑧, a partir dacombinação e disposição espacial dos girômetros. Adicionalmente, antes de realizar a conver-são, soma-se as medidas o que é chamado de Offset_grosso. Como o modelo de correção dossensores (seção 7.2.2.1) já baseia-se em dados em uma tríade, antes da conversão é possíveladicionar os offsets de cada um dos quatro girômetros separadamente. O sistema que realiza talprocesso é mostrado na figura 44.

Figura 44 – Bloco responsável por converter os dados dos girômetros do formato tetraédricopara formato triaxial (x,y,z).

Para melhor visualização da disposição dos sensores, a figura 45 mostra o sistema. Alinha alaranjada indica o eixo 𝑥. Ao lado da figura é possível visualizar as direções dos eixos.

Figura 45 – Disposição Tetraédrica dos girômetros no Modelo Elétrico.

As placas de sensores foram separadas por cor para melhor nomeá-las. Importante frisar

Page 117: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.3. Blocos exclusivos ao modelo com dados reais 115

que a placa de baixo (preta), tem os seus eixos 𝑥 e 𝑦 alinhados ao da figura, entretanto, o eixo 𝑧

está em direção oposto, isso pois o dispositivo utilizado ADIS16100 tem seu sinal positivo pararotações no sentido horário.

Figura 46 – Informações sobre o eixo de medição do girômetro.

Fonte: (ANALOG DEVICES, 2013).

Assumindo que a relação entre as medidas dos quatro sensores, denotadas pelo vetor s,e as velocidades angulares do corpo, de acordo com os eixos indicados na figura 45, pelo vetorw, é dada pela matriz [W]4𝑋3, denominada matriz de conversão, a equação 7.24 representa essapassagem.

s = [W]u (7.24)

Nomeando as placas de acordo com as suas cores, conforme abaixo, essa matriz deconversão será dada por 7.25.

∙ Placa Azul: 𝑆12;

∙ Placa Verde: 𝑆23;

∙ Placa Vermelha: 𝑆31;

∙ Placa Preta: 𝑆456;

⎡⎢⎢⎢⎢⎣𝑆12

𝑆23

𝑆31

𝑆456

⎤⎥⎥⎥⎥⎦ =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

02√

2

3

1

3

−√

6

3−√

2

3

1

3√6

3−√

2

3

1

30 0 −1

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎣ 𝑤𝑥

𝑤𝑦

𝑤𝑧

⎤⎥⎥⎦ (7.25)

Page 118: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

116 Capítulo 7. Blocos do Ambiente

Para encontrar os valores de velocidade angular do corpo (w) é necessário então calculara matriz pseudoinversa de [W], demonstrado a seguir:

[W]𝑇 s = [W]𝑇 [W]w[[W]𝑇 [W]

]−1

[W]𝑇 s =[[W]𝑇 [W]

]−1 [[W]𝑇 [W]

]w[

[W]𝑇 [W]]−1

[W]𝑇 s = [I]3𝑋3w

Portanto, a matriz pseudo-inversa de [W] é igual a[[W]𝑇 [W]

]−1

[W]𝑇 e assim pode ser en-contrado o vetor velocidade angular do corpo (w) pela equação (7.26).

w = ([W]𝑇 [W])−1 [W]𝑇 s (7.26)

O código que executa a função do bloco dessa seção pode ser vista no apêndice C.10

7.3.4 Cálculo do Delta T para o Filtro de Kalman

Partindo do pressuposto que o Filtro de Kalman estima a variação angular a partir damultiplicação da velocidade angular pelo tempo, esse último se torna um elemento essencialpara o correto funcionamento da parte de propagação.

Todavia, o Simulink, mesmo quando configurado para tempo fixos de processamento,não é executado em tempo real. Ou seja, a única garantia que temos é que as iterações são feitasem passos fixos, mas não que o tempo de execução entre cada iteração é fixo. Para garantir queo ∆𝑡 fornecido ao propagador fosse condizente, o bloco da figura 47 foi desenvolvido.

Figura 47 – Bloco responsável por converter o valor, em bits, do Contador do Timer do micro-controlador para segundos.

O bloco acima tem como função obter o valor do contador do timer (Timer_CNT) naiteração presente, compará-lo com o valor lido no momento anterior e então calcular ∆𝑡 entreas duas iterações.

Page 119: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

7.3. Blocos exclusivos ao modelo com dados reais 117

O microcontrolador foi programado para realizar contagens com precisão de 1𝜇s, assim,cada incremento em Timer_CNT equivale a esse período. A fim de testar o processamentorealizado pelo Simulink, a variável de saída do bloco 𝑔𝑒𝑟𝑎_𝑑𝑡 foi salva e posteriormente plotada.O resultado é mostrado em 48.

Figura 48 – Gráfico relacionando o tempo, em segundos, entre a iteração anterior e a atual.

Conclui-se a partir da figura que o tempo de execução de uma iteração no AmbienteIntegrado, mesmo que com configurações de passos fixos, pode sofrer variações superiores a500% (quinhentos) em segundos.

7.3.5 Filtro Heurístico

Conforme já adiantado na seção 7.2.4.2, fatores externos podem causar alterações in-desejadas nas medidas dos sensores de referência, prejudicando e tirando a confiabilidade doquatérnion medido.

Assim, espera-se que o bloco da figura 49 seja integrado ao sistema já desenvolvidopara habilitar ou não a Atualização do Filtro de Kalman.

Figura 49 – Proposta de implementação para o Filtro Heurístico

A análise dos dados dos acelerômetros e magnetômetros não é trivial, sendo que umaprimeira versão de testes, muito reduzida, do Filtro Heurístico foi implementada. Os resultados

Page 120: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

118 Capítulo 7. Blocos do Ambiente

foram suficientes para evitar a estimação em algumas ocasiões. Por ser uma versão muito dis-tante de algo que possa ser considerado confiável essa não será apresentada, entretanto, itenscomo os seguintes são verificados por esse filtro:

∙ Magnitude do vetor de aceleração;

∙ Magnitude do vetor do campo magnético;

∙ Aceleração Total do sistema;

∙ Aceleração em cada eixo do sistema;

7.3.6 Auto-Calibrador

O último bloco a ser discutido, refere-se a implementar um sistema capaz de gerar ospróprios parâmetros de calibração em paralelo com a aquisição de dados. Reitera-se que, noatual estágio de desenvolvimento do Ambiente Integrado, o mesmo utiliza sempre parâmetrosde calibração calculados externamente.

O bloco da figura 50 mostra o bloco que também deve ser integrado ao sistema emestágios mais avançados.

Figura 50 – Proposta de bloco a ser implementado para o sistema de Auto-Calibração

O objetivo principal desse bloco é fornecer um sinal capaz de controlar a atualizaçãodo Filtro de Kalman, evitando que este processo ocorra em momentos não desejados. Umadiscussão e exemplo do motivo e necessidade de implementação do Filtro Heurístico é mostradadurante os resultados, na seção 8.3.3.

Page 121: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

119

8 Resultados

Este capítulo é destinado a apresentar os resultados propostos ao Ambiente Integradodescrito no capítulo 6 e discuti-los. Devido ao grande número de simulações e testes propostos,os aqui presentes são uma parcela reduzida que procura abordar da melhor maneira todas asvariedades de dados colhidos.

Os resultados são distribuídos em três principais seções. A primeira será destinada amostrar os resultados obtidos no ambiente de simulação já completo, ou seja, com o Filtro deKalman implementado, enquanto que as duas outras seções apresentam dados colhidos com oModelo Elétrico.

As duas seções referentes a dados reais são apresentadas de forma cronológica aos acon-tecimentos de testes. Durante a elaboração do Ambiente Integrado e o Modelo Elétrico, esse úl-timo foi submetido a testes para comparação dos resultados de seus sensores com o dispositivoINNALABS ARHS M3, nesse caso, além de validar o Modelo Elétrico o objetivo era comprovaro funcionamento do Ambiente Integrado, até o algoritmo TRIAD (o Filtro de Kalman ainda nãoestava implementado naquele momento), esses resultados são apresentados na seção 8.2.

O segundo teste com os dados do Tetraedro estão na seção 8.3 e foram feitos como Filtro de Kalman já presente. Entretanto, como será discutido, o girômetro utilizado nuncapassou por um processo de calibração em mesa de rotação, e, por tal motivo, os testes feitos sãovoltados a verificar o comportamento do algoritmo, para que futuramente os dispositivos sejamcalibrados e validações mais precisas sejam feitas.

Para resumir o conteúdo de cada seção, segue a itemização abaixo:

∙ Seção 8.1: Resultados das simulações para diversos cenários distintos com o objetivo devalidar o processo de determinação e estimação de atitude;

∙ Seção 8.2: Validação do Ambiente Integrado (sem FK) a partir de um AHRS e posteriorcomparação dos resultados desse dispositivo com o Modelo Elétrico;

∙ Seção 8.3: Resultados obtidos com o Modelo Elétrico estando o FK implementado como objetivo de verificar o comportamento geral do Filtro.

Page 122: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

120 Capítulo 8. Resultados

8.1 Modelo com dados de sensores simulados

Nessa seção, são consideradas as seguintes nomenclaturas:

∙ w: Vetor de velocidades angulares gerados pelo simulador de movimentos;

∙ qTrue: Quatérnion obtido pelo simulador de movimentos através da equação dinâmica;

∙ qTriad: Quatérnion calculado pelo determinador de atitude (TRIAD);

∙ qeTriad: Erro do quatérnion calculado pelo TRIAD (qTrue-qTriad);

∙ qEstFK: Quatérnion estimado pelo Filtro de Kalman;

∙ qeEstFK: Erro do quatérnion estimado pelo FK (qTrue-qEstFK);

∙ bias: Vetor com o bias estimado pelo FK;

∙ ebias: Erro do bias estimado pelo FK (Offset_GYR-bias);

∙ Pest: Matriz estimada pelo FK com as covariâncias dos quatérnions e do bias em suadiagonal principal;

Os resultados obtidos com o simulador de movimento são separados em cinco cenáriosdistintos. Para cada um desses são registrados os seguintes resultados (cada item corresponderáa uma imagem gerada em Matlab):

∙ Vetor velocidades angulares (w) e vetor do quatérnion qTrue;

∙ Quatérnion qTrue separados por componentes;

∙ Quatérnions qTriad e qEstFK sobrepostos mas separados por componentes;

∙ Erros (qeTriad e qeEstFK) e a covariância das quatro componentes em relação aqTrue;

∙ Erros (ebias) e covariância das três componentes do bias estimados;

É importante citar que todos os resultados são obtidos diretamente no Ambiente Inte-grado em Simulink, sendo que o Matlab apenas plota as variáveis salvas durante a simulação,pois os gráficos gerados pelo Simulink não são razoáveis o suficiente para registro.

Já em relação aos cenários, os parâmetros de configurações presentes para cada um delessão detalhados no início da seção referente ao mesmo. Os itens a seguir trazem um resumo dassituações propostas.

∙ Cenário 1: Simulação de um cilindro, com ruídos relativamente pequenos para ACC eMAG, ruído quase desprezível para o GYR e offset desse nulo;

Page 123: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 121

∙ Cenário 2: Simulação de um cilindro, com ruídos consideráveis e iguais para ACC, MAGe GYR e offset absurdamente alto para o girômetro;

∙ Cenário 3: Simulação de um cilindro, com ruídos consideráveis para ACC, MAG e GYR,sendo esse último o dobro dos outros e offset absurdamente alto para o girômetro;

∙ Cenário 4: Simulação de um cilindro, com ruídos consideráveis para ACC, MAG e GYR,sendo os dois primeiros três vezes superior ao do último e offset absurdamente alto parao girômetro;

∙ Cenário 5: Simulação de um objeto como o Modelo Elétrico, com ruídos razoáveis eiguais para ACC, MAG e GYR e offset normal para o girômetro;

Sobre os itens anteriores, deve-se ter em mente que quando os ruídos são ditos iguais,na verdade é o valor RMS selecionado. Todos os ruídos são gerados aleatoriamente a partir dafunção randn do Matlab e assim descorrelacionados para cada elemento de cada vetor.

Ademais, o offset proposto para os cenários 2,3 e 4 são até cinco vezes o valor real davelocidade angular simulada, conforme será visto nos gráficos. Essa discrepância é desejada, afim de detectar a convergência do bias estimado e também mostrar a versatilidade do algoritmo.

Já os restantes de parâmetros possíveis de erros para o sistema, conforme discutido naseção 7.1.3 , que são os fatores de escala para os três sensores, offset e erros de alinhamento paraACC e MAG não são considerados. Esse fato se deve ao foco do teste realizado, de verificaro funcionamento do Ambiente, e os parâmetros citados estão relacionados mais a questão decalibração.

Em relação aos objetos teoricamente simulados, no cenários 5 é tratado o Modelo Elé-trico conforme apresentado na figura 36, enquanto que os cenários 1 a 4 se baseiam no cilindroda figura 51. Durante os testes realizados, os movimentos sempre foram acompanhados visual-mente no modelo 3D.

Figura 51 – Proposta de objeto simulado pelos cenários 1 a 4.

Finalmente, a última observação é quanto aos valores de referência e dos sensores si-mulados. Foram utilizadas as seguintes referências, para todos os cenários:

∙ Vetor de Referência Acelerômetro = [0 1 0];

∙ Vetor de Referência Girômetro = [1/√

2 0 1/√

2];

Page 124: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

122 Capítulo 8. Resultados

Uma vez que as medidas simuladas são feitas a partir da rotação do vetor de referênciapelo quatérnion qTrue (seção 7.1.2), e os vetores acima são unitários, é possível afirmar queo fundo de escala dos sensores simulados é unitário. Consequentemente, os ruídos RMS sãobaseados nessa informação, logo, dizer que o ruído é RMS vale 0, 01 ou 0, 03 significa que omesmo têm magnitude de 1% ou 3%, respectivamente, do fundo de escala.

Feita todas as observações, são expostos na sequência os resultados obtidos.

8.1.1 Cenário 1

Além das configurações comuns aos cenários, as seguintes configurações foram utiliza-das:

∙ Torque em 𝑥 = 0 - Torque em 𝑦 = 5 por 0,1 segundo, Torque em 𝑧 = 2 por 0,1 segundo;

∙ Momento do Corpo = [3 1 3];

∙ Ruído RMS MAG e ACC = [0,02 0,02 0,02];

∙ Ruído RMS GYR = [0,005 0,005 0,005];

∙ Offset GYR = [0 0 0];

∙ Intervalo de simulação = 0-100, com passos de 0,05;

∙ Estimação realizada a cada 10 iterações;

Percebe-se que os valores utilizados nessa simulação buscam idealizar e verificar o com-portamento do Filtro de Kalman a partir de um girômetro com uma leitura excelente, enquantoque a determinação de atitude é feita com informações ruidosas, apesar de não serem absurda-mente altas.

Sabendo que o cilindro tem seu eixo mais longo em y (figura 51) e olhando os torquesaplicados, a ideia é gerar um movimento em torno do seu eixo mais longo e uma perturbação,como se fosse um leve toque aplicado no topo do cilindro, nos outros dois eixos.

Na figura 52 são apresentados a velocidade angular e o quatérnion qTrue para o movi-mento gerado, por um período de 30 segundos.

Figura 52 – Velocidade angular e quatérnion verdadeiro para o primeiro cenário.

Page 125: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 123

Já na figura 53, é possível visualizar o quatérnion qTrue separada por componente.Lembrando que a componente 𝑞0 representa o valor escalar, e 𝑞1, 𝑞2 e 𝑞3 os eixos x, y e z,respectivamente.

Figura 53 – Quatérnion verdadeiro separado por componente para o primeiro cenário.

Dos gráficos obtidos, fica evidente uma velocidade angular constante em torno de umdos eixos e uma outra periódica, com magnitude menor, nos outros eixos. Já em relação ao qua-térnion, mesmo não sendo o melhor método para visualizar um movimento, é fácil perceber quea componente escalar e o termo do eixo y se comportam de uma maneira relativamente linear(por linear, entender um movimento suave e previsível, sem variações bruscas) e constante, in-dicando a rotação nesse último, ao modo que os outros dois eixos sofrem rotações perturbadas,como visto nas componentes.

Após análise do movimento e o quatérnion verdadeiro, a figura 54 mostra as componen-tes dos quatérnions qTriad e qEstFK. O primeiro é representado pela cor azul e o segundopor vermelho. Em uma tentativa de melhor visualização dos resultados, a figura 55 traz o mesmoquatérnion porém com uma aproximação da imagem sobre um período de tempo aleatório.

Figura 54 – Quatérnions do TRIAD (azul) e FK (vermelho) sobrepostos separados por compo-nente para o primeiro cenário.

Page 126: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

124 Capítulo 8. Resultados

Figura 55 – Quatérnions do TRIAD e FK sobrepostos com zoom separados por componentepara o primeiro cenário.

É evidente que o quatérnion obtido pelo TRIAD contém um comportamento muito maisruidoso do que o estimado pelo FK. Essa situação mostra que o sistema está agindo como su-postamente deveria, estimando um quatérnion excelente a partir da fusão da atitude determinadacom os dados dos girômetros. Esse comportamento fica ainda mais evidente quando analisa-sea figura 56, com a covariância (mostrada em preto) obtida pelo Filtro de Kalman para as quatrocomponentes e os erros dos quatérnions, sendo qeTriad mostrado em azul e qeEstFK emvermelho. As imagens registram somente o intervalo de 0-40 segundos, mara melhor visualiza-ção.

Figura 56 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separados porcomponente para o primeiro cenário.

Do gráfico contendo a covariância e os erros, percebe-se que para as componentes commovimentos mais constantes (escalar e eixo y), o erro está quase sempre contido na covariância.Já para as outras duas componentes, percebe-se que a covariância segue um movimento perió-dico com uma certa tendência, e que os erros se mantém a maior parte do tempo nesse intervalo.Ademais, se torna mais evidente que o quatérnion estimado se comporta de maneira melhor doque o determinado quando olhando para os erros.

Page 127: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 125

Ainda referente aos erros dos quatérnions, é notável que no início do processo o erroda estimação é considerado. Isso se deve a convergência do Filtro, que pode levar algumasiterações para ocorrer. Caso essa convergência não ocorra, o Filtro entra em um estado ondeseus dados perdem sentido.

Finalmente, o último gráfico analisado refere-se ao bias estimado do girômetro e suacovariância. O erro desse elemento é calculado a partir da subtração do offset inserido nosdados dos girômetros e pelo valor estimado. A figura 57 mostra o erro de cada eixo e em umúltimo gráfico os valores estimados.

Figura 57 – Erros e covariâncias do bias do FK por eixo e bias estimado para o primeiro cenário.

Percebe-se que a estimação do bias convergiu para o valor do offset, que nesse casoera nulo, ou seja, a estimação caminha em torno do zero. Já os erros estão no intervalo dacovariância e em um valor conciso, considerando que o Ruído RMS inserido foi de 0,5 % dovalor de fundo de escala.

Do cenário 1 conclui-se que o sistema comportou-se conforme previsto. O algoritmoTRIAD foi capaz de determinar a atitude a partir dos sensores simulados, enquanto que o Filtrode Kalman atuou estimando uma atitude ainda melhor a partir dos dados dos girômetros. Entre-tanto, pode-se inferir erroneamente que o motivo do FK estimar melhor a atitude recaiu no fatodo ruídos dos girômetros serem consideravelmente menores do que do ACC e MAG. Por essemotivo, o segundo cenário proposto traz um ruído igual para todos os sensores.

8.1.2 Cenário 2

Nesse cenário, as seguintes configurações foram utilizadas:

∙ Torque em 𝑥 = 0 - Torque em 𝑦 = 5 por 0,1 segundo, Torque em 𝑧 = 2 por 0,1 segundo;

∙ Momento do Corpo = [3 1 3];

∙ Ruído RMS MAG e ACC = [0,03 0,03 0,03];

Page 128: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

126 Capítulo 8. Resultados

∙ Ruído RMS GYR = [0,03 0,03 0,03];

∙ Offset GYR = [-3 1 2,5];

∙ Intervalo de simulação = 0-100, com passos de 0,05;

∙ Estimação realizada a cada 10 iterações;

Percebe-se que o movimento gerado é exatamente o mesmo. Por tal motivo, as veloci-dades angulares e qTrue são os mesmos aos apresentados nas figura 52 e 53.

Do restante, o ruído RMS do magnetômetro e acelerômetro foi levemente aumentadopara 0, 03, entretanto, a mudança mais expressiva está no valor dos ruídos adicionados aosgirômetros, igualados aos dos outros sensores, e seu Offset, que foi posto em um valor que podeser visto como irreal, uma vez que a máxima velocidade angular do movimento é 0, 5𝑟𝑎𝑑/𝑠 e ovalor inserido de Offset é seis vezes superior em um dos eixos.

O resultado obtido para os quatérnions do TRIAD e estimados podem ser vistos nafigura 58, enquanto que a figura 59 mostra a imagem aproximada.

Figura 58 – Quatérnions do TRIAD e FK sobrepostos por componente para o segundo cenário.

Figura 59 – Quatérnions do TRIAD e FK aproximados.

Page 129: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 127

Olhando para os quatérnions, reforçando que em azul está representado o do TRIAD eem vermelho o estimado, é ainda mais evidente do que no cenário 1 o quanto o valor estimadose comporta de maneira mais suave, mesmo com os erros dos girômetros aumentados signifi-cativamente. Entretanto, percebe-se que o Filtro leva um tempo superior até convergir, períodoem que o quatérnion estimado está longe do real, mas esse fato está altamente relacionado aooffset inserido. A figura 60 mostra os erros e as covariâncias obtidas.

Figura 60 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separados porcomponente para o segundo cenário.

O erro comprova os argumentos colocados anteriormente, o erro do FK rapidamenteconverte e nesse momento a estimação passa a calcular um valor ótimo do quatérnion, ademais,percebe-se o quanto que o erro do TRIAD varia e é maior do que o estimado.

Por fim, os gráficos dos bias estimados, seus erros e covariâncias são mostrado na figura61.

Figura 61 – Erros e covariâncias do bias do FK por eixo e bias estimado para o segundo cenário.

Mesmo com o valor muito alto inserido de offset, após algumas iterações o sistema écapaz de estimá-lo. Apesar de apresentar uma covariância relativamente alta (em torno de 0,1)

Page 130: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

128 Capítulo 8. Resultados

considerando a velocidade inserida, percebe-se que o erro do bias estimado tem um comporta-mento razoável e quase não supera a covariância.

Dos pontos analisados, conclui-se que mesmo com um erro nas medidas dos girômetrosequivalente aos erros dos acelerômetros e magnetômetros, o Filtro de Kalman foi capaz decontinuar agindo com qualidade e estimar uma atitude superior a fornecida pelo determinador,além de estimar o offset perfeitamente.

A fim de levar o Filtro a um cenário ainda pior, o próximo teste proposto aumenta aindamais os ruídos nos girômetros, mantendo o restante do sistema conforme o atual.

8.1.3 Cenário 3

As seguintes configurações tomaram parte nesse momento:

∙ Torque em 𝑥 = 0 - Torque em 𝑦 = 5 por 0,1 segundo, Torque em 𝑧 = 2 por 0,1 segundo;

∙ Momento do Corpo = [3 1 3];

∙ Ruído RMS MAG e ACC = [0,03 0,03 0,03];

∙ Ruído RMS GYR = [0,06 0,06 0,06];

∙ Offset GYR = [3 1 2,5];

∙ Intervalo de simulação = 0-100, com passos de 0,05;

∙ Estimação realizada a cada 10 iterações;

Novamente, os movimentos gerados e consequentemente o quatérnion verdadeiro sãoos mesmos das figuras 52 e 53.

A única diferença em relação ao cenário 2 está no ruído RMS presente no girômetro.Nesse ponto, abrimos um parênteses referente ao Simulink. A função randn gera um vetor alea-tório quando rodado dentro do Matlab, porém, quando no Simulink, essa função gera o mesmovetor mas de maneira equivalente a outras simulações, ou seja, se simularmos a função randn

diversas vezes, o vetor aleatório gerado será sempre igual. Em questões de testes, esse fato nãoé desejável e deve-se utilizar o bloco Random Number, porém, como a opção é comparar dados,essa função foi utilizada.

Logo, mantendo o ruído do MAG e ACC iguais ao cenários 2 e sabendo que o vetoraleatório é o mesmo, o resultado de qTriad é o mesmo. Porém, qEstFK agora contém o dadode girômetro com o dobro do ruído. Os resultados desses quatérnions podem ser vistos nasfiguras 62 e aproximados na figura 63.

Apesar dos resultados de qEstFK também parecerem idênticos ao do cenário 2, issonão é verdade. Os quatérnions estimados desse cenário com o anterior foram comparados, epercebeu-se que a diferença entre os mesmos foi inferior a 0, 02, sendo praticamente impercep-tível graficamente.

Page 131: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 129

Figura 62 – Quatérnions do TRIAD e FK sobrepostos separados por componente para o terceirocenário.

Figura 63 – Quatérnions do TRIAD e FK sobrepostos com zoom separados por componentepara o terceiro cenário.

Assim, apesar do dobro do ruído RMS no girômetro, a estimação pouca alteração sofreu.Graficamente, os erros dos quatérnions seguem na figura 64.

Figura 64 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separados porcomponente para o terceiro cenário.

Page 132: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

130 Capítulo 8. Resultados

Obviamente que o erro do quatérnion determinado pelo TRIAD é idêntico ao do cenárioanterior, porém, conforme frisado anteriormente, apesar de não parecer, os erros dos quatérnionsestimados são diferentes. Esse resultado mostra a qualidade da estimação do Filtro de Kalman.

Finalmente, as covariâncias e os erros dos bias e sua estimação seguem na figura 65.

Figura 65 – Erros e covariâncias do bias do FK por eixo e bias estimado para o terceiro cenário.

Percebe-se claramente que o bias rapidamente converge para o valor de offset e a partirdessa caminha variando sobre esse ponto. A grande diferença em relação ao cenário dois estáno erro desse parâmetro e em sua covariância, sendo que esses aumentaram significativamente.Ora, esse fato era esperado devido ao aumento do ruído RMS presente no girômetro.

Para o último cenário apresentando o cilindro como objeto, o ruído RMS do girômetroé diminuído enquanto o valor do mesmo para acelerômetros e magnetômetros são aumentadosconsideravelmente.

8.1.4 Cenário 4

As configurações utilizadas durante a simulação do cenário 4 foram:

∙ Torque em 𝑥 = 0 - Torque em 𝑦 = 5 por 0,1 segundo, Torque em 𝑧 = 2 por 0,1 segundo;

∙ Momento do Corpo = [3 1 3];

∙ Ruído RMS MAG e ACC = [0,09 0,09 0,09];

∙ Ruído RMS GYR = [0,03 0,03 0,03];

∙ Offset GYR = [-3 1 2,5];

∙ Intervalo de simulação = 0-100, com passos de 0,05;

∙ Estimação realizada a cada 10 iterações;

Page 133: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 131

Assim como nos dois últimos cenários, os movimentos gerados e o quatérnion verda-deiro são os mesmos vistos nas figuras 52 e 53.

Quanto ao restante das configurações, o ruído presente no GYR voltou ao mesmo valorutilizado no segundo cenário, ao passo que o ruído dos outros dois sensores foi triplicado.Apesar de ser relativamente absurdo, dependendo do movimento ao qual um acelerômetro ésubmetido, a determinação de atitude perde muito a confiança, essa simulação visa analisar umcaso em que a atitude provinda pelo TRIAD esteja ruim.

Os resultados dos quatérnions qTriad e qEstFK são mostrados na figuras 66 e 67,sendo essa última com aproximação de um trecho aleatório.

Figura 66 – Quatérnions do TRIAD e FK sobrepostos separados por componente para o quartocenário.

Figura 67 – Quatérnions do TRIAD e FK sobrepostos com zoom separados por componentepara o quarto cenário.

Olhando para os quatérnions, é evidente que aquele obtido por determinação passou aapresentar um ruído horrível e que muito provavelmente o tornaria impossível de se utilizar. JáqEstFK, assim como nos cenários anteriores, se comporta de uma maneira muito mais estávelquando comparado ao do TRIAD, porém, esse já não apresenta um ruído extremamente algo.

Page 134: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

132 Capítulo 8. Resultados

Para uma análise mais profunda é necessário analisar as covariâncias e erros, presentes na fi-gura 68. Comparando os erros desse cenário com os anteriores, percebe-se que se antes o erro

Figura 68 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separados porcomponente para o quarto cenário.

e a covariância eram inferiores a 0, 05, agora esse valor é mais alto. Apesar de ainda ser maisestável e menor do que qeTriad, qeEstFK também sofreu uma piora significativa. Compro-vando algo já esperado, uma vez que a estimação utiliza os dados da atitude determinada, casoessa piore consequentemente que o valor estimado sofrerá um decréscimo na qualidade comoconsequência.

Por fim, o bias também do sistema também passa a ter uma covariância e um erro maior,mas ainda consegue manter a estimação e convergir. A figura 69 mostra esse resultado.

Figura 69 – Erros e covariâncias do bias do FK por eixo e bias estimado para o quarto cenário.

Desse cenário, a maior observação fica por parte da influência de uma boa determinaçãode atitude para uma boa estimação. De qualquer maneira, o Filtro de Kalman ainda sim conse-guiu estimar um quatérnion ótimo se comparado ao do TRIAD. Vale também a referência queum teste foi realizado com ruído RMS de 0, 12 para ACC e MAG ante os 0, 09 atuais, nessasituação o FK não foi capaz de convergir e estimar o espaço de estado.

Page 135: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.1. Modelo com dados de sensores simulados 133

8.1.5 Cenário 5

Para essa última simulação, envolvendo um objeto diferente dos anteriores, foram usa-dos os seguintes parâmetros:

∙ Torque em 𝑥 = 0 - Torque em 𝑦 = 0, Torque em 𝑧 = 15 por 0,1 segundo;

∙ Momento do Corpo = [3 3 3];

∙ Ruído RMS MAG, ACC e GYR = [0,01 0,01 0,01];

∙ Offset GYR = [0,2 -0,1 0,4];

∙ Intervalo de simulação = 0-100, com passos de 0,05;

∙ Estimação realizada a cada 10 iterações;

Os resultados desse cenário não serão discutidos profundamente. A ideia desse cenárioé realizar uma rotação de um objeto simétrico (momento de inércia igual em todos os eixos) emrelação a um único eixo, portanto, aplica-se um torque somente ao eixo z.

A velocidade angular do sistema e o quatérnion gerado são mostrados na figura 70,enquanto que o quatérnion com as componentes separadas é visto na figura 71.

Figura 70 – Velocidade angular e quatérnion verdadeiro para o quinto cenário.

Figura 71 – Quatérnion verdadeiro separado por componente para o quinto cenário.

Page 136: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

134 Capítulo 8. Resultados

Compatível com o esperado, a velocidade angular é constante em um eixo e nula nosoutros dois, ao passo que o quatérnion varia linearmente nas componentes escalares e do eixo z

e não sofre mudanças nos outros dois termos.Uma vez que o movimento é linear e os ruídos inseridos pequenos, os quatérnions

qeTriad e qeEstFK são muito próximos do real, assim será omitida a figura que apresentaos mesmos sobrepostos. Para efeito de análise, a figura 72 mostra o erro e a covariância doquatérnion, já a figura 73 as covariâncias e erros dos bias, bem como sua estimação.

Figura 72 – Erros e covariâncias dos quatérnions do TRIAD e FK sobrepostos separados porcomponente para o quinto cenário.

Figura 73 – Erros e covariâncias do bias do FK por eixo e bias estimado para o quinto cenário.

A partir dos gráficos desse cenário, verifica-se o funcionamento do FK como esperado.A razão maior para apresentação é o movimento em si, em torno de um único eixo. Essesresultados podem ser comparados com as rotações feitas no Modelo Elétrico, cujos resultadossão apresentados nas próximas seções, principalmente na seção 8.3.1.

Page 137: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2. Comparação do Modelo com AHRS 135

8.2 Comparação do Modelo com AHRS

São consideradas as seguintes nomenclaturas para essa seção:

∙ ACC_AHRS e MAG_AHRS: Dados obtidos pelo acelerômetro e magnetômetro doAHRS;

∙ ACC_TETRA e MAG_TETRA : Dados obtidos pelo acelerômetro e magnetômetrodo Modelo Elétrico (chamados de Tetraedro daqui em diante);

∙ quat_AHRS: Quatérnion obtido pelo TRIAD utilizando os dados do AHRS;

∙ quat_TETRA: Quatérnion obtido pelo TRIAD utilizando os dados do Tetraedro;

∙ GYR_AHRS: Dados obtidos pelo girômetro do AHRS, na base da tríade;

∙ GYR_TETRA: Dados obtidos pelo girômetro do TETRA, na base original tetraédrica;

∙ GYR_TETRA_3: Dados obtidos pelo girômetro do TETRA, convertida para a basetríade;

Os resultados apresentados nessa seção foram colhidos no início de setembro de 2013.Nesse período, o algoritmo do Filtro de Kalman ainda não estava implementado em Simulink.

Uma vez que os primeiros resultados obtidos com o Tetraedro e o observador de movi-mento mostraram algumas inconsistências para determinadas extensões de movimentos, houvea necessidade de confirmação se o problema era causado pela falta de calibração dos sensoresou se o Ambiente Integrado desenvolvido realizava alguma operação indesejada.

Assim, o objetivo principal desse teste foi identificar se algum dos problemas acimaestava presente. Para realizar essa tarefa, fez-uso do dispositivo INNALABS ARHS M3. Em todasos dados apresentados a seguir, os quatérnions sempre foram calculados a partir dos dados dossensores, sendo que o AHRS nunca foi programado para enviar diretamente sua atitude.

Foram realizados três testes distintos:

∙ Primeiro: Testes com o AHRS e o Ambiente Integrado para validação do mesmo;

∙ Segundo: Testes com o AHRS e o Tetraedro rodando em paralelos com o AmbienteIntegrado para coleta de dado e cálculo do quatérnion de cada um desses a partir doTRIAD;

∙ Terceiro: Testes com AHRS e Tetraedro para coleta dos dados de girômetros;

A seguir são discutidos e apresentados os resultados obtidos em cada momento. É im-portante dizer que várias conclusões foram feitas analisando o movimento no próprio Simulink,como essa representação não é viável aqui, as comprovações são feitas através dos quatérnionssalvos e plotados posteriormente.

Page 138: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

136 Capítulo 8. Resultados

8.2.1 Primeiro Teste - Validação do Ambiente Integrado

Na intenção de verificar o correto funcionamento do Ambiente Integrado, o bloco res-ponsável por receber os dados foi adaptado para o formato de dados enviados pelo AHRS. Apartir desses, os dados do acelerômetro e magnetômetros foram utilizados para a determinaçãode atitude. O restante foi mantido igual, como por exemplo, o cálculo da referência continuou aser feito na primeira iteração.

Os resultados obtidos mostraram que o algoritmo e o Ambiente Integrado funcionaramperfeitamente para todas as possíveis rotações, apresentando o desenho 3D e confirmando oseguidos de movimentos.

Foram realizados diversos movimentos, entre eles:

∙ Rotação em torno dos eixos;

∙ Rotação em torno dos eixos seguido de um movimento no formato de caracol;

∙ Movimentos aleatórios;

Serão apresentados os quatérnions de um dos casos para cada item acima, sendo o pri-meiro o resultado obtido em torno do eixo z. O resultado desse primeiro é mostrado na figura74. É essencial ter em mente que todos os movimentos foram realizados em mãos e não emmáquinas, sendo assim, as imperfeições são esperadas e impossíveis de não serem detectadaspelos dispositivos utilizados.

Uma observação deve ser feita em relação as imagens que seguirão. Sabendo que o Am-biente Integrado não é executado em tempo real, os quatérnions serão plotados com a referênciasendo o número da iteração, e não um tempo em segundos.

Figura 74 – Quatérnion obtido com dados do AHRS para rotação em torno de z.

Analisando a figura da rotação em um único eixo é evidente a rotação em torno dacomponente 𝑞3 do quatérnion quat_AHRS. Apesar de parecer estranho, o movimento parecenão linear devido a retirada da redundância para análise, ou seja, sempre que a componente 𝑞0

Page 139: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2. Comparação do Modelo com AHRS 137

do quatérnion assume um valor negativo, inverte-se o quatérnion inteiro de maneira a evitar aduplicidade de representação.

Esse resultado mostra que o algoritmo TRIAD foi capaz de realizar a rotação inteirasem apresentar intervalos angulares onde houvesse algum problema. Já a figura 75 representauma rotação no eixo z, y e x, nessa sequência, e a posteriori de uma movimentação em formade caracol.

Figura 75 – Quatérnion obtido com dados do AHRS para rotação em torno sequencial em cadaeixo seguida de movimento na forma de caracol.

Novamente, pode ser visto que o algoritmo foi capaz de atuar em todos os intervalosangulares sem problemas. Os resultados obtidos no visualizador de movimentos visualmenteperfeitos. Por fim, apresenta-se um último movimento, totalmente aleatório, para reiterar queo algoritmo atuou em todas as faixas possíveis para os três ângulos. Esse resultado é visto nafigura 76.

Figura 76 – Quatérnion obtido com dados do AHRS para movimento aleatório.

A partir dos resultados presentes nessa seção, foi possível concluir que o AmbienteIntegrado funcionava devidamente, portanto, os erros de visualização gráficas obtidos com o

Page 140: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

138 Capítulo 8. Resultados

Modelo Elétrico foram atribuídos a calibração de seus sensores. Os resultados da próxima seçãocomprovam tal afirmação.

8.2.2 Segundo Teste - Resultados pré e pós Calibração Magnetômetro

A partir dos resultados da seção anterior, fora desenvolvido um sistema em Simulink

que fosse capaz de realizar as seguintes etapas:

∙ Comunicar-se paralelamente e independentemente com o AHRS e o Tetraedro por portasseriais diferentes;

∙ Adquirir os dados de magnetômetros e acelerômetros de ambos e salvá-los;

∙ Determinar os quatérnions para o AHRS (quat_AHRS) e Tetraedro (quat_TETRA);

∙ Visualizar o movimento de ambos em tempo real a partir da representação de movimentos3D;

Após a elaboração desse modelo em Simulink, que não será apresentado por basear-se em todos os blocos já vistos anteriormente, foi possível a comparação dos movimentos equatérnions obtidos pelo TRIAD para ambos os equipamentos.

A partir desse momento, diversos fatores foram tratados e consequentemente diversosresultados e conclusões foram tomados. Os principais foram:

∙ Sem calibração do magnetômetro, os quatérnions obtidos pelo Tetraedro apresentavamproblemas para determinadas rotações, principalmente em ângulos distantes da referên-cia;

∙ A plotagem em esfera unitário deixou claro um offset muito alto no valor do magnetôme-tro, assim, foi implementada uma rápida calibração para esse fator (SANTANA, 2009);

∙ A posteriori da calibração, os resultados obtidos com o Tetraedro passaram a ser visu-almente perfeitos quando verificados com o visualizador de movimentos. Ademais, osquatérnions calculados por ambos os dispositivos passaram a ser muito próximos, vali-dando a calibração e o Modelo Elétrico;

As próximas subseções abordam e mostram os resultados obtidos antes e o pós calibra-ção, antes, porém, duas observações devem ser feitas:

∙ A captura dos dados dos sensores do AHRS e do Tetraedro não estão totalmente sincro-nizados;

∙ Os itens estavam parafusados em acrílicos paralelamente porém a uma certa distância;

Portanto, é natural que dependendo do movimento uma pequena diferença seja aceitá-vel. Os resultados apresentados a seguir foram confirmados pelo visualizador de movimentos.

Page 141: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2. Comparação do Modelo com AHRS 139

8.2.2.1 Resultados a Priori da Calibração

Aos primeiros movimentos realizados concorrentemente com ambos os dispositivos,percebeu-se claramente que o Tetraedro se comportava de maneira instável. A partir do visuali-zador de movimentos era notório que para movimentos próximo à referência o Modelo Elétricose comportava bem, porém, a partir de determinado momento a representação gerada respondiade maneira errônea aos movimentos, enquanto que o AHRS continuava a apresentar os resulta-dos visualmente excelentes.

Realizando diversos movimentos e comparando os quatérnions, evidenciou-se que omotivo estava relacionado a falta de calibração do tetraedro. As figuras 77 e 78 mostram osquatérnions do AHRS, em vermelho, e do ME, em azul, para um movimento aleatório e ummovimento com rotações seguidas em cada eixo, respectivamente.

Figura 77 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobrepostospara movimento aleatório.

Figura 78 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobrepostospara rotações sequenciais em x, y e z.

A partir da análise das figuras, é notório que os quatérnions calculados do AHRS e doME apresentavam diferenças grotescas. Contudo, apesar das diferenças significativas, também

Page 142: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

140 Capítulo 8. Resultados

percebe-se que em diversos intervalos de tempo o tetraedro era capaz de manter um resultadocoerente, a figura 79 apresenta os quatérnions determinados para um movimento em forma decaracol, realizado de maneira suave e com os ângulos sempre próximos a referência, lembrandosempre que a referência do sistema era gerada durante a primeira iteração do Simulink.

Figura 79 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobrepostospara movimento em forma de caracol.

Os resultados do movimento em caracol mostraram um resultado muito semelhantepara os dispositivos. Dessa forma, houve uma suspeita ainda maior da falta de calibração dossensores. Finalmente, a fim de por a prova os sensores do Modelo Elétrico, os dados dos ace-lerômetros e magnetômetros de ambos os dispositivos foram plotados sobre uma esfera unitária,sem realizar a normalização dos dados.

O resultado dos dados sofre as esferas podem ser vistos na figura 80. De maneira ins-tantânea averiguou-se um offset extremamente alto presente no MAG do Tetraedro. Apesar dodeslocamento em relação a esfera unitária, o contorno observado pelos movimentos são visual-mente próximos uns aos outros.

Analisando o algoritmo presente na determinação de atitude através do TRIAD, sabe-seque esse realização a normalização dos dados lidos dos sensores antes do cálculo da atitude,sendo essa passagem acaba complicação quando um offset é presente em algum dos sensores.

Ao normalizar dados com tamanho deslocamento da origem, o resultado é uma defor-mação total nestes, tornando a distribuição ao redor da esfera unitária totalmente errada. Parailustrar essa situação, a figura 81 mostra os mesmos dados dos magnetômetros colhidos doAHRS e Tetraedro, porém agora normalizado.

Ao passo que o magnetômetro do AHRS mantém sua forma, é absurda a transformaçãoe deformação no formato da imagem obtida pelo Tetraedro.

Em contrapartida, a comparação dos dados dos acelerômetros mostraram que o presenteno Modelo Elétrico possui uma qualidade razoavelmente alta, mesmo sem nenhuma calibração.

Page 143: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2. Comparação do Modelo com AHRS 141

Figura 80 – Esfera unitária com dados sem normalização dos ACC e MAG do Tetraedro eAHRS sem calibração .

Figura 81 – Esfera unitária com dados sem normalização dos ACC e MAG do Tetraedro eAHRS sem calibração .

Finalmente, comprovado que a discrepância do quatérnion calculado pelo sistema estava

Page 144: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

142 Capítulo 8. Resultados

relacionada a falta de calibração e principalmente ao erro de offset do magnetômetro, fez-se usodo algoritmo proposto em (SANTANA, 2009) para uma rápida calibração.

Apesar do algoritmo ter calculado diversos parâmetros, percebeu-se que o restante, alémdo offset do MAG, poderiam ser descartados devido a sua baixa influência.

Portanto, os resultados apresentados nas próximas seções foram obtidos com a calibra-ção somente do offset do magnetômetro. Em trabalhos futuros, onde a calibração será consi-derada mais a fundo, espera-se a coleta de resultados considerando a calibração de todos osparâmetros possíveis.

8.2.2.2 Resultados após a calibração

A posteriori da calibração do magnetômetro, conforme descrito na seção anterior, oprimeiro passo foi realizar um movimento aleatório para coleta dos dados dos sensores e arealização do plote na esfera unitária, sem normalização. O novo resultado obtido pode servisto na figura 82.

Figura 82 – Esfera unitária com dados dos ACC e MAG do Tetraedro e AHRS após calibração.

Page 145: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2. Comparação do Modelo com AHRS 143

Confirmada a correção de offset, os quatérnions determinados a partir dos dados doAHRS e do Tetraedro, para o movimento representado na esfera, são apresentados na figura 83.O novo resultado mostra uma coerência muito alta em relação a quat_AHRS e (quat_TETRA).

Figura 83 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobrepostospara movimento aleatório pós calibração.

Antes de apresentar os resultados gráficos de outros movimentos, é válido frisar umaobservação:

∙ Através do visualizador de movimentos, foi possível perceber que o Tetraedro passou adeterminar uma atitude mais coerente frente a do AHRS, principalmente para rotaçõespróximas de 180∘.

Diversos outros movimentos foram realizados de forma a observar o funcionamento doTetraedro pós calibração. Nas figuras 84 e 85 são mostrados dois destes movimentos, sendo oprimeiro aleatório e o outro rotações seguidas no eixo 𝑧.

Figura 84 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobrepostospara movimento aleatório pós calibração.

Page 146: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

144 Capítulo 8. Resultados

Figura 85 – Quatérnions obtidos com dados do AHRS (vermelho) e Tetra (azul) sobrepostospara movimento em torno do eixo z pós calibração.

A figura referente a rotação em um único eixo (85), mostra claramente um bom resul-tado, sendo que a leve diferença entre os quatérnions, visto que o do AHRS está levementedeslocado para a esquerda, pode ser atribuída a falta de temporização do sistema, que não ga-rante que os dados sejam de períodos iguals.

Já na figura 84, a componente 𝑞3 parece conter algumas inconsistências, todavia, a va-riação rápida é causado pelo tratamento da redundância do quatérnion. É possível verificar queno período de tempo onde o fenômeno ocorre, a componente escala (𝑞0) está perto do valornulo, mas, na verdade, a mesma fica variando entre valores negativos e positivos, fazendo comque o sistema retire a redundância quando valores negativos são lidos, causando a inversão dascomponentes vetoriais e consequentemente a variação entre −1 e 1 do termo 𝑞3.

A partir da realização deste teste foi possível concluir que o grande problema realmenteestava na calibração dos sensores, além de mostrar que o Modelo Elétrico construído para oExperimento MEMS possui uma capacidade tão boa quanto um AHRS para cálculo da atitudea partir dos sensores de referência.

8.2.3 Dados dos Girômetros

O último teste realizado em posse do AHRS foi para a verificação e comparação dosdados dos girômetros do Tetraedro em comparação com o AHRS.

Esta seção apresenta os dados obtidos para duas situações distintas. Os objetivos da co-leta destes dados eram verificar se os girômetros das placas e se a conversão da base tetraédricado Modelo Elétrico para a tríade estavam funcionando e também para registro de dados parauso futuro, uma vez que o Filtro de Kalman não estava implementado.

Finalmente, o resultado os girômetros para um movimento em torno de um único eixopode ser visto na figura 86, enquanto que na figura 87 pode-se averiguar os dados para ummovimento aleatório.

Page 147: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.2. Comparação do Modelo com AHRS 145

Figura 86 – Dados dos girômetros de AHRS e Tetraedro obtidos e transformados a mesma re-ferência para um movimento em torno de um único eixo.

Figura 87 – Dados dos girômetros de AHRS e Tetraedro obtidos e transformados a mesma re-ferência para um movimento aleatório.

Olhando para as figuras, percebe-se que os movimentos de ambos os dispositivos se-guem o mesmo padrão, entretanto são visíveis algumas diferenças nos resultados. Sem fazeranálise mais profunda, porém, facilmente pode-se ter uma ideia errônea sobre os dados. É ne-cessário verificar que:

∙ A captura dos dados dos sensores do AHRS e do Tetraedro não estão sincronizados;

∙ O fundo de escala e a sensibilidade do girômetro presente no AHRS são muito maioresquando comparadas aos sensores do Modelo Elétrico;

∙ Os itens estavam parafusados em acrílicos paralelamente, porém, a uma certa distância;

∙ Os movimentos feitos a mão causam um ruído muito alto para a sensibilidade do AHRS;

∙ Os girômetros presentes no Tetraedro nunca foram calibrados;

Dessa forma, através dos diversos movimentos analisados, foi possível validar os dadose a conversão feita pelo a partir dos dados do Tetraedro para cálculo da velocidade angular emtrês eixos.

Na seção a seguir são apresentados os resultados obtidos com do Filtro de Kalman econsequentemente dos dados dos sensores para o Modelo Elétrico.

Page 148: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

146 Capítulo 8. Resultados

8.3 Modelo com dados reais

Para essa última seção de testes realizados e apresentados, que envolvem somente o usodo Modelo Elétrico, as seguintes nomenclaturas tomam parte:

∙ qTriad: Quatérnion obtido através da determinação de atitude pelo TRIAD;

∙ qEstFK: Quatérnion estimado pelo Filtro de Kalman;

∙ P_est_diag: Vetor contendo a diagonal principal da covariância estimada do quatérnione bias;

Nesta última seção referente aos testes, é muito importante ter em mente que o únicoparâmetro calibrado do sistema é o offset do magnetômetro. Tanto os dados do acelerômetroquanto do girômetro são tradados pelo algoritmos totalmente cru, sem calibração nenhuma.

Para uma análise completa das possibilidades e exposição do maior número de con-clusões possíveis, são observados três tipos de movimento, sendo que para cada um ainda sãofeitos testes específicos. O resumo dos testes são:

∙ Rotação em um único eixo: são apresentados resultados para atualização do Filtro a cada10 iterações e também atualizações a cada 50 propagações;

∙ Movimentos aleatórios: são mostrados os quatérnions estimados para dois movimentos,sendo ambos atualizados a cada 10 propagações;

∙ Sistema em queda livre: são expostos os resultados de duas situações onde ocorremvárias quedas livres em sequência, sem alterações no apontamento do Tetraedro e emuma taxa de estimação para cada 50 iterações, sendo que em uma dessas situações aestimação ocorre durante um período de queda livre;

Já os objetivos e análises a serem pontuados, a partir de cada movimento citado anteri-ormente, são, respectivamente:

∙ Comparar com os resultados da seção 8.1.5 e verificar o fator de escala e a importânciana calibração do girômetro;

∙ Mostrar a melhoria e a suavidade quando utilizado o Filtro de Kalman e sensores inerciaisna estimação de atitude;

∙ Comprovar os problemas dos acelerômetros na determinação de atitude e a importânciade um Filtro-Heurístico. Observar ainda o que pode ocorrer caso uma atitude errada sejafornecida ao Filtro de Kalman;

A seguir segue a discussão para cada caso.

Page 149: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.3. Modelo com dados reais 147

8.3.1 Rotações em um único eixo

As rotações em torno de um único eixo foram divididas em dois casos, sendo a atu-alização do Filtro de Kalman em taxas diferentes para cada uma, a fim de visualizar pontosespecíficos que são apresentados na sequência. Para realizar as rotações com a menor influênciapossível, o Modelo Elétrico foi colocado sobre a base giratória de um micro-ondas e a baseimpulsionada o mais uniformemente possível.

8.3.1.1 Estimação do estado a cada 10 iterações

Nesta situação, o processo de estimação do Filtro ocorre na mesma taxa prevista para oExperimento MEMS. Os resultados a seguir são comparados com as simulações obtidas no ce-nário 5 da seção 8.1.5 e mostram que os quatérnions obtidos pelo Tetraedro se comportaram damaneira como previsto em simulações. A figura 88 mostra o resultado obtido para o movimentocom o menor número de perturbações possíveis.

Figura 88 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z sem pertur-bações.

O movimento da figura 88 evidencia um comportamento quase linear dos elementosescalares e do eixo 𝑧 do quatérnion, tanto para os calculados pelo TRIAD, em azul (qTriad),quanto para o quatérnion estimado, em vermelho (qEstFK). Por ser um movimento com pou-cas imperfeições, a única observação possível é que a estimação do FK segue o movimento doTRIAD quase que perfeitamente.

Para melhor visualizar o efeito da estimação, o processo foi repetido, entretanto, durantea rotação do Tetraedro, pequenas batidas foram feitas na base giratória no sentido horizontal.Através do visualizador de movimento, ficou clara a diferença entre os movimentos sem e coma estimação. O primeiro claramente apresenta um movimento com altas variações e visualmenteruidoso, ao passo que com a estimação o movimento se torna suave, sem grandes perturbações.Os quatérnions obtidos para o movimento descrito podem ser vistos na figura 89.

Olhar para os quatérnions da figura 89 comprova o fato observado no visualizador demovimentos. O quatérnion estimado, mostrado em vermelho, apresenta um movimento muito

Page 150: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

148 Capítulo 8. Resultados

Figura 89 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z com pertur-bações.

mais suave e contínuo, principalmente nos eixos x e y. Essa questão será melhor visualizadapara o movimento apresentado na seção 8.3.2, reforçando que essa seção tinha como principalobjetivo comparar uma rotação sobre o Tetraedro com os resultados de uma rotação simulada,conforme visto na seção 8.1.5. Logo, diante do comportamento e formato quase idêntico obtido,é possível afirmar que o experimento e a estimação ocorreram conforme o previsto.

8.3.1.2 Estimação do estado a cada 50 iterações

Conforme a descrição do Filtro de Kalman feita neste trabalho, aumentar o intervaloentre estimações significa que o quatérnion obtido no vetor de Estados dependerá por instantesmaiores exclusivamente da propagação realizada através dos dados de velocidade angular, ouseja, é possível analisar se a propagação do movimento feita com os dados dos girômetrosé compatível durante o intervalo em que não há atualização do filtro. Esta tarefa tem comoprincipal objetivo visualizar se o fator de escala dos girômetros estão calibrados ou não.

Os sensores MEMS usados para a medição da velocidade angular nunca passaram porum processo de calibração, sendo que a escala utilizada para o cálculo da velocidade no Am-biente Integrado é dado pelo valor típico do manual do sensor (ANALOG DEVICES, 2013).Entretanto, apesar do valor típico para esse sensor ser de 0, 2439𝑜/𝑠𝑒𝑐/𝐵𝑖𝑡, a fabricante afirmaque o valor real pode variar desde 0, 2212 até 0, 2717𝑜/𝑠𝑒𝑐/𝐵𝑖𝑡.

Dessa forma, o Tetraedro foi submetido a uma estimação para cada 50 iterações, para omesmo movimento anterior, em torno do eixo 𝑧, de forma a verificar o quatérnion propagadopor um longo período sem atualização.

A figura 90 mostra as saídas observadas pelo quatérnion determinado pelo TRIAD(qTriad) e pelo propagado e estimado pelo Filtro de Kalman (qEstFK).

Analisando rapidamente os gráficos, pode-se verificar que os resultados obtidos nestemomento são próximos a rotação com uma estimação para cada dez propagações, todavia, épossível verificar que as componentes 𝑞0 e 𝑞3 apresentam curvas levemente deslocadas uma em

Page 151: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.3. Modelo com dados reais 149

relação a outra, e que periodicamente existe uma atualização que leva a curva de qEstFK devolta ao ponto onde qTriad está localizada. Para uma melhor visualização a figura 91 mos-tra o mesmo gráfico porém com aproximação em pontos para visualização do evento descritoanteriormente.

Figura 90 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z estimando acada 50 iterações.

Figura 91 – Quatérnion qTriad (azul) e qEstFK (vermelho) para rotação no eixo z estimando acada 50 iterações com aproximação da imagem.

Essa questão do gráfico de qEstFK se adiantar em relação a qTriad mostra claramenteque o fator de escala utilizado não está totalmente adequado, dessa maneira, a propagação feitapelo Filtro de Kalman está considerando uma velocidade angular superior a velocidade verda-deira do Tetraedro, causando que o quatérnion se adiante em relação ao calculado pelos sensoresde referência.

Já o momento em que o quatérnion estimado sofre o deslocamento e retorna a caminharpróximo de qTriad é exatamente a iteração do Ambiente Integrado onde o Filtro de Kalmanexecuta o processo de atualização. Os movimentos observados no visualizador 3D tambémcomprovaram os fatos observados acima.

Page 152: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

150 Capítulo 8. Resultados

A partir destes resultados fica evidente a importância de se ter uma calibração muitobem feita em um girômetro MEMS para uso na estimação de atitude. Ademais, é muito bemobservado a partir do movimento feito o funcionamento do filtro no quesito propagação e esti-mação, mostrando o exato momento em que os dados da atitude determinados pelo TRIAD sãounidos com a atitude propagada de modo a estimar o novo estado do sistema.

8.3.2 Movimento aleatório

Esta seção basicamente pretende mostrar como o Filtro de Kalman melhora o compor-tamento da atitude estimada em relação a atitude calculada exclusivamente pelo sensores dereferência. Os resultados apresentados nos gráficos a seguir são ainda mais perceptíveis quandoanalisando as imagens do visualizador de movimentos. É nítido, quando observado o compor-tamento to Tetraedro reproduzido no Simulink, o quanto o objeto mostrado pelo quatérnion doFK é mais estável em relação ao TRIAD. Por estável, pode-se entender desde a suavidade até acapacidade de absorção dos ruídos presentes na imagem obtida pelo TRIAD.

A figura 92 mostra o quatérnion obtido para um dos movimentos aleatórios realiza-dos com o Tetraedro. Vale citar que nesse momento do experimento o processo de atualizaçãoexecuta-se para cada 10 iterações, conforme previsão inicial do Experimento MEMS.

Desta figura, é possível observar, para os elementos 𝑞1 e 𝑞3, uma mudança brusca econsequentemente a diferença entre os quatérnions qEstFK e qTriad próximo aos 15 segun-dos. Reitera-se que essa mudança é causada pela retirada da redundância do quatérnion. Dessaforma, quando a componente escalar troca de sinal, todo o sistema é invertido, portanto, essafalha mostra um ponto onde o quatérnion escalar estava próximo de ser nulo, ocasionando ainversão por diversas vezes seguidas.

Figura 92 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento aleatório.

O fato observado na figura 92 é um comportamento do quatérnion estimado, em verme-lho, muito mais suavizado em relação a qTriad. Porém, pela figura estar relativamente distante,uma segunda representação é apresentada na figura 93, com uma aproximação relativamentegrande em pequenos intervalos de tempo, para cada componente do quatérnion.

Page 153: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.3. Modelo com dados reais 151

Figura 93 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento aleatório comaproximação em períodos quaisquer.

Da figura aproximada, fica claro a diferença de comportamento entre os quatérnions,sendo o quatérnion determinado pelo TRIAD extremamente ruidoso. Infelizmente, nesse exem-plo também é possível verificar o descalibramento do girômetro, discutido na seção 8.3.1.2. Ouseja, apesar do quatérnion estar mais suave e apresentar uma continuidade maior, o mesmoainda sofre deslocamentos brucos quando o FK executa o processo de estimação.

Logo, o resultado comprova a função esperada para o Filtro de Kalman, mesmo queainda existam erros referente ao fator de escala dos girômetros. Espera-se que após a calibraçãodestes dispositivos, o gráfico gerado pelo FK seja ainda mais contínuo, evitando mudançasmaiores quando a atitude é estimada.

8.3.3 O exemplo da Queda Livre

Esta última seção dos resultados obtidos com o Tetraedro tem o objetivo específico detratar e apresentar as possibilidades do algoritmo de TRIAD e do Filtro de Kalman quandoalgum dos sensores de referência perde totalmente a confiabilidade de seus dados (realizamleituras não condizentes com a realidade). Como consequência, esta seção acaba por comprovaro porquê da implementação do Filtro Heurístico (seção 7.3.5).

Para tornar mais fácil a visualização dos eventos a seguir, o FK voltou a ser programadopara realizar a estimação a cada 50 propagações.

Para as duas situações que serão discutidas na sequência, o Modelo Elétrico foi sub-metido a pequenos períodos em queda livre por diversas vezes seguidas, havendo sempre umintervalo de tempo antes de uma nova queda. Mais importante ainda é salientar que o objeto so-freu apenas uma translação, ou seja, a atitude teórica do Tetraedro manteve-se sem alterações.

No primeiro teste realizado, garante-se que o processo de atualização do Filto de Kal-man não ocorreu em nenhum dos momentos de queda livre, ou seja, durante os intervalos dequeda livre o estado era dado somente pela propagação do quatérnion baseada no estado anteriore nos dados dos girômetros. O resultado obtido pode ser visto na figura 94.

Page 154: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

152 Capítulo 8. Resultados

Figura 94 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento sem mudançade apontamento com períodos de queda livre sem atualização do estado do FKdurante o intervalo da queda.

Antes de dissertar sobre o resultado da figura 94, um comentário sobre os acelerômetrosé novamente feito. Estes dispositivos são responsáveis por medir a aceleração de um corpoatravés das forças envolvidas, portanto, são capazes de medir a componente gravitacional queage na superfície terrestre. Feita essa definição, é evidente que ao submeter um corpo a umaqueda livre, o sensor será incapaz de medir a força gravitacional, uma vez que a reação presenteno mesmo passa a ser nula. Portanto, sabendo que o algoritmo TRIAD necessita da informaçãode vetores de referência, e que o acelerômetro perde essa função nesse intervalo, a atitudedeterminada pelo mesmo será incorreta.

Logo, o fenômeno descrito no parágrafo anterior é evidenciado na figura 94. Ao entrarem queda livre (sem mudança de apontamento), o quatérnion do TRIAD, em azul, passa ater um valor qualquer cujo comportamento não pode ser previsto, incapacitando o uso dessasinformações para um sistema que deva representar o apontamento do corpo. Por outro lado,o quatérnion estimado, em vermelho, mantém sua posição indicando não haver a rotação docorpo, uma vez que os girômetros teoricamente não detectam esse tipo de movimento, portantoacabam propagando a atitude de maneira correta.

Para o movimento anterior, afirmou-se que o FK não realizou nenhuma atualização deseu estado durante a queda livre. Acontece que esse fato foi controlado manualmente, ou seja,em um movimento que fosse real não haveria a garantia dessa restrição.

Dessa forma, o segundo teste com queda livre realizado, mostrado na figura 95, mos-tra o que pode vir a ocorrer com a estimação de Kalman caso essa seja realizada durante umprocesso onde o dado de entrada, neste caso a atitude do TRIAD, seja fornecida com um valorexageradamente longe do real. Manualmente, fez-se com que a estimação fosse feita no exatomomento em que o objeto se encontrava em queda.

O resultado do TRIAD é compatível com o primeiro teste, no momento da queda livreo quatérnion calculado passa por um momento cujo valor é aleatório e presumidamente errado,e volta ao normal após a estabilização do objeto. Por outro lado, pode ser visto que após a atua-

Page 155: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

8.3. Modelo com dados reais 153

Figura 95 – Quatérnion qTriad (azul) e qEstFK (vermelho) para um movimento sem mudançade apontamento com períodos de queda livre, com atualização do estado durantequeda livre.

lização do FK, durante a queda, o quatérnion estimado passou a se comportar indevidamente eo algoritmo rapidamente sofreu o que é chamado de divergência.

Diante desse fato, confirma-se que a estimação da atitude com qualidade está altamenteligada a mesma estar correta. Ou seja, a possível solução para a situação mostrada com o qua-térnion qEstFK seria evitar que o filtro realizasse a estimação, mantendo o estado baseado naatitude propagada com os dados de velocidade angular, e finalmente justificando o porquê danecessidade de implementação de um Filtro-Heurístico que seja capaz de desativar a estima-ção do Filtro de Kalman caso fosse detectado alguma incongruência nos dados de um ou maissensores de referência.

Page 156: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 157: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

Parte V

Fechamento

Page 158: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 159: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

157

9 Conclusão

9.1 Discussão dos Resultados

Baseado no Experimento MEMS e dando continuidade ao trabalho desenvolvido em(CARVALHO NETO, 2012), a primeira etapa desde trabalho foi responsável por realizar aconstrução de um Modelo Elétrico do E-MEMS. Esta envolveu o processo de montagem dohardware desenvolvido no trabalho citado, o desenvolvimento de um sistema eletrônico capazde interfacear as placas de sensores a uma placa de desenvolvimento comercial e por montaruma estrutura mecânica em acrílico com formatos e posicionamento dos sensores equivalentesao do modelo final do Experimento.

Com base no Modelo Elétrico, foi possível a integração do mesmo com o AmbienteIntegrado para determinação e estimação de atitude proposto e desenvolvido neste trabalho naferramenta Matlab/Simulink.

O Ambiente Integrado elaborado é capaz de representar objetos 3D desenhados emferramentas gráficas e realizar o movimento deste a partir de quatérnions. Esta ferramenta con-segue gerar movimentos a partir de uma matriz de inércia e vetor de torque, calculando o qua-térnion e a velocidade angular de um objeto qualquer. A partir destes dois últimos elementos,sensores como acelerômetro, magnetômetros e girômetros podem ser simulados e terem erroscomo fator de escala, fator de alinhamento, offset e bias adicionados a suas medidas simuladas.Finalmente, o Ambiente realiza a determinação de atitude a partir do algoritmo TRIAD e aestimação de atitude pelo processo de Filtragem de Kalman.

Já a integração do Ambiente Integrado com o Modelo Elétrico (e também com umAHRS comercial) possibilitou diversas etapas, entre elas, comprovar o processo de determi-nação de atitude a partir de dados reais de sensores, comparar dados dos sensores do AHRScom o Modelo Elétrico construído para posterior calibração deste último, testar e analisar ocomportamento do Filtro de Kalman para dados reais, verificar e testar os girômetros MEMSutilizados no E-MEMS, principalmente quanto ao fator de escala e finalmente levantar pontosnecessários a serem adicionados futuramente para tornar o Ambiente Integrado o mais completoe independente possível no processo de estimação de atitude.

A partir do sucesso das implementações dos itens dos parágrafos anteriores, este traba-lho levantou e concluiu diversos pontos referentes ao Experimento MEMS, aos sensores utili-zados, ao Ambiente Integrado, aos algoritmos utilizados e desenvolvidos em outros trabalhosentre outros pontos, descritos nos parágrafos que seguem.

O desenvolvimento do Modelo Elétrico revelou pequenos problemas no aspectivo cons-trutivo do Projeto Eletrônico do Experimento MEMS, fornecendo assim informações e requi-sitos para a elaboração da segunda versão. Ainda referente ao E-MEMS, o uso e integração

Page 160: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

158 Capítulo 9. Conclusão

do Modelo Elétrico com o Ambiente Integrado foi capaz de comprovar parte do esquemáticoelétrico desenvolvido e realizar com sucesso a interface entre o microcontrolador e os sensoresMEMS utilizados.

Já o Ambiente desenvolvido para determinação e estimação de atitude apresentou re-sultados considerados excelentes para a proposta e o objetivo traçado no início do trabalho. Apartir das simulações, ficou evidente que a atitude estimada consegue diminuir os erros da ati-tude provinda do TRIAD, mesmo que os dados dos girômetros sejam tão ruidosos quanto osdos sensores de referência. Essa ferramenta e seu visualizador de movimentos ainda proveramuma capacidade de análise rápida e verificação dos quatérnions que até então era um processocomplicado, lento e que envolvia o uso de diversos softwares e ferramentas não correlacionadas.

No quesito de sensores reais, a comparação dos dados de sensores do AHRS e do Mo-delo Elétrico indicaram ótimos resultados quanto a qualidade dos sinais obtidos pelos sensoresMEMS do Modelo quando comparados com o do dispositivo comercial, sendo que problemasa priori da calibração eram quase que exclusivamente causados pelos offsets presentes no mag-netômetro.

Por fim, o processo e algoritmo proposto para estimação de atitude a partir da junçãode informações de atitude com dados dos girômetros mostrou um resultado promissor, porém,confirmando ainda a necessidade de uma boa calibração aos girômetros para tornar o sistemamais confiável e possibilitar uma discussão mais certeira acerta dos resultados do algoritmo deKalman utilizado.

9.2 Para trabalhos Futuros

Finalmente, baseado nas conclusões e pontos determinados ao longo deste trabalho, trêsetapas macros são propostas e necessárias a trabalhos futuros.

Em relação ao Experimento MEMS, deve-se realizar a calibração dos girômetros emuma mesa de rotações e a construção dos itens mecânicos e eletrônicos restantes para a constru-ção de um Modelo de Engenharia do Experimento. Ao final desse processo, restará o desenvol-vimento de software e a migração das funções executadas neste trabalho no ambiente Simulink

para o microcontrolador do Experimento.

Já em um âmbito mais amplo, visando outras aplicações e também terrestres, é impor-tante a elaboração de um sistema de auto-calibração dos sensores de referência bem como odesenvolvimento de um Filtro Heurístico, de maneira mitigar o uso de dados falhos por enganono processo de atualização do Filtro de Kalman.

Por fim, uma etapa talvez menos essencial mas que pode ser executada, além das trans-ferências das funções para um sistema embarcado, é uma comparação entre diferentes micro-controladores na capacidade de processamento do Filtro de Kalman, ou seja, seria útil conhecere saber o quanto um microcontrolador com FPU seria superior a um equivalente sem FPU, de

Page 161: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

9.3. Considerações finais 159

maneira a estudar o melhor custo benefício para a implementação dos algoritmos mais comple-xos no FK.

9.3 Considerações finais

É impossível não considerar que os resultados obtidos sejam de grande valia para umexperimento que busca a determinação de atitude, pois, além de testar e validar os diversosalgoritmos apresentados, tanto em modelos teóricos quanto em reais, desenvolveu-se uma fer-ramenta capaz da execução e análise de testes, de maneira rápida e confiável quando comparadocom meios anteriores a este trabalho, que esbarravam em processos relativamente lentos e me-nos confiáveis.

Todavia, os resultados colhidos comprovam que ainda existem algumas lacunas a seremdesenvolvidas ou aperfeiçoadas para que o processo de determinação e estimação de atitude,através de sensores de referência, sensores inerciais e Filtragem de Kalman, tratados neste tra-balho se tornem uma maneira considerada excelente e confiáveis a ponto de serem utilizadas namedição de atitude de um sistema onde falhas sejam críticas, seja no uso espacial em pequenossatélites ou em aplicações terrestres, como um AHRS.

Page 162: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação
Page 163: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

161

Referências

ANALOG DEVICES. ADIS16100 - 300o/sec Yaw Rate Gyroscope with SPI. [S.l.], 2013.Citado 2 vezes nas páginas 115 e 148.

BATISTA, D. S. Tutorial sobre o Firmware do Modelo Elétrico do Experimento MEMS-SARAem acrílico com placa intermediária e Kit MCBSTM32EXL. Londrina, PR, Brasil, 2013.Citado na página 84.

BOGUE, R. Mems sensors: past, present and future. Sensor Review, v. 27, n. 1, p. 7–13, 2007.Citado na página 51.

CARVALHO NETO, F. Experimento de auxílio à estimação de atitude para o microssatéliteITASAT-1 baseado em componentes COTS e sensores MEMS. 123 p. Trabalho de Conclusão deCurso — Universidade Estadual de Londrina, Londrina, PR, Brasil, novembro 2012. Citado10 vezes nas páginas 34, 35, 45, 63, 64, 65, 73, 74, 89 e 157.

FERNANDES, D. Space Segment - ITASAT-1: Satellite Description. São José dos Campos,Julho 2011. Citado na página 63.

GRANZIERA JR., F. Simulação e Implementação de um Determinador de Atitude em TempoReal Utilizando Sensores Microfabricados. 284 p. Dissertação (Mestrado em EngenhariaElétrica) — Universidade Estadual de Londrina, Londrina, PR, Brasil, 2006. Citado 5 vezesnas páginas 34, 48, 49, 54 e 55.

GRANZIERA JR., F.; KUGA, H. K.; TOSIN, M. C. Attitude improvement and angular rateestimation using a kalman filter with measurements of four tetrahedrally arranged low costmems gyros. In: 10𝑎 DINCON: Conferência Brasileira de Dinâmica, Controle e Aplicações.[S.l.: s.n.], 2011. Citado na página 55.

GRANZIERA JR., F.; LOPES, R. V. F.; TOSIN, M. C. O problema da determinação da atitudeatravés da observação de dois vetores- uma descrição do algoritmo TRIAD e sua matriz decovariância. Semina: Ciências Exatas e Tecnológicas, Londrina, v. 28, n. 1, p. 21–36, jan./jun.2007. Citado na página 53.

GRANZIERA JR., F. et al. Self-Calibration of MEMS sensors arranged in TRIADS usingKalman Filter Estimator. In: . [S.l.: s.n.], 2011. Citado 2 vezes nas páginas 100 e 102.

KUIPERS, J. B. Quaternion and Rotation Sequences. [S.l.]: Princeton University Press, 1999.Citado 3 vezes nas páginas 39, 42 e 44.

SANTANA, T. A. S. Desempenho de Algoritmos para Calibração de Sensores MEMSAplicados à Determinação da Atitude. 108 p. Trabalho de Conclusão de Curso — UniversidadeEstadual de Londrina, Londrina, PR, Brasil, novembro 2009. Citado 3 vezes nas páginas 94,138 e 142.

SHUSTER, M. D. A survey of attitude representations. The Journal of the AstrounauticalSciences, v. 41, n. 4, p. 439–517, 1993. Citado na página 39.

SHUSTER, M. D.; LEFFERS, E. J.; MARKLEY, F. L. Kalman filtering for spacecraft attitudeestimation. In: . [S.l.: s.n.], 1982. p. 16. Citado 2 vezes nas páginas 55 e 56.

Page 164: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

162 Referências

SHUSTER, M. D.; OH, S. D. Three-axis attitude determination from vector observations.Journal of Guidance and Control, v. 4, n. 1, p. 70–77, 1981. Citado na página 53.

SIDI, M. J. Spacecraft Dynamics & Control: a practical engineering aproach. [S.l.]:Cambridge University Press, 2000. Citado 2 vezes nas páginas 39 e 98.

SILVA, L. C. de A. Software Simulador de um Determinador de Atitude. 64 p. Dissertação(Mestrado em Engenharia Elétrica) — Universidade Estadual de Londrina, Londrina, PR,Brasil, maio 2008. Citado na página 103.

STMICROELETRONICS. Datasheet 6697 (DS6697) - STM32F215xx STM32F217xx. [S.l.],2011. Citado na página 67.

STMICROELETRONICS. Datasheet 6558 (DS6558) - STM32F103xF STM32F103xG. [S.l.],2012. Citado na página 78.

STMICROELETRONICS. Datasheet 8626 (DS8626) - STM32F405xx STM32F407xx. [S.l.],2013. Citado na página 67.

TAKAHASHI, N. S. Metodologia de Desenvolvimento de um Determinador de AtitudePortátil de Baixo Custo para Interfaces Homem-Máquina. 142 p. Dissertação (Mestradoem Engenharia Elétrica) — Universidade Estadual de Londrina, Londrina, PR, Brasil, 2010.Citado na página 39.

TEXAS INSTRUMENTS. CD4066B - CMOS QUAD BILATERAL SWITCH. [S.l.], 2003.Citado na página 79.

TOSIN, M. C.; GRANZIERA JR., F. Mems experiment - conception, specification and solutionv3.0. Universidade Estadual de Londrina, julho 2011. Citado 7 vezes nas páginas 34, 35, 63,66, 69, 70 e 71.

WERTZ, J. R. Spacecraft Attitude Determination and Control. [S.l.]: Kluwer AcademicPublishers, 1978. Citado na página 46.

Page 165: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

163

APÊNDICE A – Softwares ME

A.1 Função Main

int main(void)

{

/* System Clocks Configuration */

delay(100000);

RCC_Configuration(); // Configura os Clocks

// dos periféricos que serão utilizados

//Configura os periféricos do KIT

I2C_GPIO_Pin_Select_Configuration();

SPI_GPIO_Pin_Select_Configuration();

USART2_Configuration(); // Configura a USART2 do Kit

I2C1_Configuration();//Configura a I2C1 do Kit

SPI1_Configuration();//Configura SPI para 8 bits e 2 edge

// - Configuração para o AIS326

Timer3_CH3_Config();

//Finaliza a configuração dos periféricos do KIT

//Configura os Sensores HMC

HMCSensorConfig(1);

//delay(10000);

//HMCSensorConfig(2);

//delay(10000);

//HMCSensorConfig(3);

//delay(10000);

//HMCSensorConfig(4);

//delay(10000);

//---------------

//Configura os sensores AIS326

// Como a SPI já está configurada para 8bits/2 edge

// não é necessário chamar SPI_AIS326_CONFIG

AIS326_SensorConfig(1);

//AIS326_SensorConfig(2);

//AIS326_SensorConfig(3);

//AIS326_SensorConfig(4);

//---------------

//Configura os sensores ADIS16100

SPI_ADIS16100_Config();

ADIS16100_SensorConfig(1);

ADIS16100_SensorConfig(2);

ADIS16100_SensorConfig(3);

ADIS16100_SensorConfig(4);

while (1)

{

delay(100);

Page 166: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

164 APÊNDICE A. Softwares ME

//Codigo para HMC5883

HMCSensorDataRead(1);

//delay(1000);

//HMCSensorDataRead(2);

//delay(1000);

//HMCSensorDataRead(3);

//delay(1000);

//HMCSensorDataRead(4);

//delay(1000);

//FIM CODIGO PARA HMC8853

//Codigo para AIS326

SPI_AIS326_Config();

AIS326_ReadData(1);

//IS326_ReadData(2);

//AIS326_ReadData(3);

//AIS326_ReadData(4);

//Fim codigo para AIS326

//Cogido para ADIS16100

SPI_ADIS16100_Config();

ADIS16100_ReadData(1);

ADIS16100_ReadData(2);

ADIS16100_ReadData(3);

ADIS16100_ReadData(4);

//Fim Codigo ADIS16100

//Codigo para TMP112

//TMP112SensorRead(1);

//delay(1000);

//TMP112SensorRead(2);

//delay(1000);

//TMP112SensorRead(3);

//delay(1000);

//TMP112SensorRead(4);

delay(100);

//Fim Codigo TMP112

if(dado_recebido==1)

{

//Imprimi os valores lidos dos sensores:

//PrintStrSerial2("\r\nPlaca 1: ");

//------

PrintStrSerial2(pstr_mag_placa_1);

PrintStrSerial2(pstr_ace_placa_1);

//PrintStrSerial2(pstr_giro_placa_1);

//PrintStrSerial2(pstr_TMP112_placa_1);

//PrintStrSerial2("\r\nPlaca 2: ");

//PrintStrSerial2(pstr_mag_placa_2);

//PrintStrSerial2(pstr_ace_placa_2);

//PrintStrSerial2(pstr_giro_placa_2);

//PrintStrSerial2(pstr_TMP112_placa_2);

//PrintStrSerial2("\r\nPlaca 3: ");

Page 167: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

A.1. Função Main 165

//PrintStrSerial2(pstr_mag_placa_3);

//PrintStrSerial2(pstr_ace_placa_3);

//PrintStrSerial2(pstr_giro_placa_3);

//PrintStrSerial2(pstr_TMP112_placa_3);

//PrintStrSerial2("\r\nPlaca 4: ");

//PrintStrSerial2(pstr_mag_placa_4);

//PrintStrSerial2(pstr_ace_placa_4);

//PrintStrSerial2(pstr_giro_placa_4);

//PrintStrSerial2(pstr_TMP112_placa_4);

PrintStrSerial2("\r\n");

dado_recebido=0;

}

else if(dado_recebido==2)

{

//Imprimi os valores lidos dos sensores:

PrintStrSerial2(pstr_mag_placa_1);

PrintStrSerial2(pstr_ace_placa_1);

PrintStrSerial2(pstr_giro_placa_1);

PrintStrSerial2(pstr_giro_placa_2);

PrintStrSerial2(pstr_giro_placa_3);

PrintStrSerial2(pstr_giro_placa_4);

PrintStrSerial2("\r\n");

dado_recebido=0;

}

else if(dado_recebido==3)

{

//Imprimi os valores lidos dos sensores e

// envia o Delta t entre duas medicoes:

PrintStrSerial2(pstr_mag_placa_1);

PrintStrSerial2(pstr_ace_placa_1);

PrintStrSerial2(pstr_giro_placa_1);

PrintStrSerial2(pstr_giro_placa_2);

PrintStrSerial2(pstr_giro_placa_3);

PrintStrSerial2(pstr_giro_placa_4);

PrintStrSerial2(Dth);

PrintStrSerial2("\r\n");

dado_recebido=0;

}

}

}

Page 168: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

166 APÊNDICE A. Softwares ME

A.2 Função de Interrupçãoextern int dado_recebido;

extern uint16_t contador;

extern char Dth[20];

void USART2_IRQHandler()

{

char c;

c=USART_ReceiveData(USART2);

if(c==’@’)

{

dado_recebido=1;

}

if(c==’#’)

{

dado_recebido=2;

}

if(c==’%’)

{

dado_recebido=3;

contador = TIM_GetCounter(TIM3);

sprintf(Dth, "%4d", contador);

}

//while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET)

// espera o dado estar pronto para ser enviad

// {

// }

// USART_SendData(USART2, c);

USART_ClearFlag(USART2, USART_FLAG_RXNE);

}

Page 169: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

167

APÊNDICE B – Modelos do Simulink

B.1 Modelo de Simulink montado para simulação

Figura 96 – Captura de imagem da tela do Simulink para o Modelo de simulação de sensores eatitude.

Page 170: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

168 APÊNDICE B. Modelos do Simulink

B.2 Modelo de Simulink utilizado para o calculo de atitude

através de sensores reais

Figura 97 – Captura de imagem da tela do Simulink para o Modelo de calculo de atitude doModelo de Engenharia.

Page 171: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

169

APÊNDICE C – Códigos em Simulink

C.1 Código para o Bloco EQ_Eulerfunction dw = Eq_Euler(I,M,w)

wx = w(1);

wy = w(2);

wz = w(3);

Ix = I(1);

Iy = I(2);

Iz = I(3);

Mx = M(1);

My = M(2);

Mz = M(3);

dwx = (Mx - wy*wz*(Iz - Iy))/Ix;

dwy = (My - wx*wz*(Ix - Iz))/Iy;

dwz = (Mz - wx*wy*(Iy - Ix))/Iz;

dw=[dwx dwy dwz]’;

C.2 Código para o Bloco de cinemáticafunction dq = cinematica(w,q)

%#eml

wx = w(1);

wy = w(2);

wz = w(3);

q = q/norm(q);

qteta = q(1);

qx = q(2);

qy = q(3);

qz = q(4);

W = [0 -wx -wy -wz; wx 0 wz -wy; wy -wz 0 wx; wz wy -wx 0];

dq=0.5*W*[qteta qx qy qz]’;

C.3 Código para o Bloco de Simulink gyro modelfunction wr = gyro_model(w,vs,vo,vn)

S = diag(vs);

wr = S*w + vo + vn.*randn(3,1);

Page 172: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

170 APÊNDICE C. Códigos em Simulink

C.4 Código para o Bloco de Simulink sensor modelfunction ur = sensor_model(u,vs,va,vo,vn)

rho = va(1);

phi = va(2);

lambda = va(3);

S = diag(vs);

T = [1 0 0; sin(rho) cos(rho) 0;...

sin(phi)*cos(lambda) sin(lambda)...

*cos(phi) cos(phi)*cos(lambda)];

ur = S*T*u + vo + vn.*randn(3,1);

C.5 Códigos para os Blocos de Simulink inv gyro modelfunction w_recuperado = inv_gyro_model(wr,vsh,voh)

S_inv = inv(diag(vsh));

w_recuperado = S_inv*(wr - voh);

C.6 Códigos para os Blocos de Simulink inv sensor modelfunction u_recuperado = inv_sensor_model(ur,vsh,vah,voh)

rho = vah(1);

phi = vah(2);

lambda = vah(3);

T_inv = [1 0 0; -tan(rho) 1/cos(rho) 0;...

tan(rho)*tan(lambda)-tan(phi) -tan(lambda)/cos(rho)...

1/(cos(lambda)*cos(phi))];

S_inv = inv(diag(vsh));

u_recuperado = T_inv*S_inv*(ur - voh);

C.7 Códigos para o Bloco TRIADfunction [A,R] = TRIAD(sig_mag,...

mag_rec,mag_ref,acc_ref,acc_rec,sig_acc)

% ==== Função de Determinação de Atitude ====

% ====== Algoritmo TRIAD ===========

% Os parâmetros de Entrada são:

% V1 : vetor de referência V1

V1 = acc_ref;

% V2 : vetor de referência V2

V2 = mag_ref;

% W1 : vetor de observação W1

W1 = acc_rec;

% W2 : vetor de observação W2

Page 173: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

C.8. Códigos para o Bloco Propagador FK 171

W2 = mag_rec;

% SigTo1 : desvio padrão das observação do ACC

SigTot1 = sig_acc;

% SigTo2 : desvio padrão das observação do MAG

SigTot2 = sig_mag;

% =============================================

% Os parâmetros de Retorno são:

% A : matriz de atitude

% P : Covariância da atitude

% ============================================

% --- Obtendo a Tríade de Referência

r1 = V1/norm(V1);

r2 = cross(V1,V2); % função do produto vetorial

r2 = r2 / norm(r2);

r3 = cross(r1,r2);

% --- Montando a Matriz de Referência

Mref = [r1 r2 r3];

% --- Obtendo a tríade de observação

s1 = W1/norm(W1);

s2 = cross(W1,W2);

s2 = s2 / norm(s2);

s3 = cross(s1,s2);

% --- Montando a Matriz de Observação

Mobs = [s1 s2 s3];

% --- Atitude pelo TRIAD

A = Mobs * Mref’;

%---------------------------------------------

% Obtendo a covariância da atitude (P = P + AP AT)

R = SigTot1^2 * eye(3) + ...

(1/norm(cross(W1,W2)))^2 *...

(SigTot1^2* (W1’*W2) * (W1*W2’ + W2*W1’)...

+ (SigTot2^2 - SigTot1^2)*W1*W1’);

%---------------------------------------------

C.8 Códigos para o Bloco Propagador FKfunction [x_prop, PT_prop, i_out] =...

propagador_FK(w_gyro, Dt, PT_est, x_est, Q, i_in)

i_out = i_in + 1;

% ================== Propagação ==================

% ------ Propagação do Estado

% São medidos os Girômetros e sua saída subtraida

% do bias é integrada no período de propagação

q_est = x_est(1:4,1);

b_est = x_est(5:7,1);

% Matriz de atualização do quaternion

Th = w_gyro * Dt;

Page 174: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

172 APÊNDICE C. Códigos em Simulink

Omega4 = [ 0 Th(3) -Th(2) Th(1);

-Th(3) 0 Th(1) Th(2);

Th(2) -Th(1) 0 Th(3);

-Th(1) -Th(2) -Th(3) 0 ];

M = eye(4) * cos(norm(Th)/2) +...

Omega4 * sin(norm(Th)/2) / norm(Th);

q_prop = M * q_est;

b_prop = b_est;

x_prop = [q_prop ; b_prop];

% Matriz Constante

% A ser executado fora dessa função

GT = [ -1/2*eye(3) zeros(3,3); zeros(3,3) eye(3)];

QT = GT * Q * GT’;

% ---------------------

Omega3_prop = [ 0 q_prop(3) -q_prop(2);...

-q_prop(3) 0 q_prop(1);...

q_prop(2) -q_prop(1) 0 ];

A_prop = (q_prop(4)^2 - norm(q_prop(1:3,1))^2)*eye(3)...

+ 2*q_prop(1:3,1)*q_prop(1:3,1)’ ...

+ 2*q_prop(4)*Omega3_prop;

Omega3_est = [ 0 q_est(3) -q_est(2);

-q_est(3) 0 q_est(1);

q_est(2) -q_est(1) 0 ];

A_est = (q_est(4)^2 - norm(q_est(1:3,1))^2)*eye(3)...

+ 2*q_est(1:3,1)*q_est(1:3,1)’ ...

+ 2*q_est(4)*Omega3_est;

% ------ Propagação da Matriz de Covariância

L = A_prop * A_est’;

% Integral Trapézio

KK = -1/2 * (L + eye(3)) * Dt/2;

PhiT = [L KK; zeros(3,3) eye(3)];

% Integral Trapézio

SiG = (PhiT * QT * PhiT’ + QT) * Dt/2;

PT_prop = PhiT * PT_est * PhiT’ + SiG;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

C.9 Códigos para o Bloco de Estimador FK:function [x_est, P_est, PT_est] =...

Estimador_FK(x_prop, PT_prop, q_obs, R, i)

q = q_obs;

q_obs = [q(2); q(3); q(4); q(1)];

% ---- Separando as compoentes do estado

Page 175: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

C.9. Códigos para o Bloco de Estimador FK: 173

q_prop = x_prop(1:4,1);

b_prop = x_prop(5:7,1);

% ---- Montando a matriz E (Ksi)

E = [ q_prop(4) -q_prop(3) q_prop(2);

q_prop(3) q_prop(4) -q_prop(1);

-q_prop(2) q_prop(1) q_prop(4);

-q_prop(1) -q_prop(2) -q_prop(3)];

% ---- Montando a matriz S

S = [E zeros(4,3); zeros(3,3) eye(3)];

if (mod(i,3) ~= 0)

x_est = x_prop;

PT_est = PT_prop;

P_est = S * PT_est * S’;

else

% ---- Montando a matriz H e HT.

H = [eye(4) zeros(4,3)];

HT = [E zeros(4,3)];

% ---- Separando covariancias dos estados

Ptt_prop = PT_prop(1:3,1:3);

Pbt_prop = PT_prop(4:6,1:3);

% ---- Cálculo do novo ganho (reduzido)

KT = [Ptt_prop; Pbt_prop] * inv(Ptt_prop + R) * E’;

% KT = [Ptt_prop; Pbt_prop] * E’...

%* inv(E*(Ptt_prop + P_Tri)*E’);

% ---- Atualização da covariância reduzida

PT_est = PT_prop - KT * HT * PT_prop;

% ---- Cálculo da covariância estendida

P_est = S * PT_est * S’ ;

% ---- Cálculo do ganho estendido

K = S * KT;

% ---- Atualização do estado

if(dot(q_prop,q_obs) > 0)

q_obs = q_obs;

else

q_obs = -q_obs;

end

x_est = x_prop + K * (q_obs - q_prop);

% ---- renormalização do quaternion

n = norm(x_est(1:4)); % norma do quatérnio

x_est(1:4,1) = x_est(1:4,1) / n; %...

%renormalização do quaternion

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Page 176: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

174 APÊNDICE C. Códigos em Simulink

C.10 Código Bloco Tetra 2 Triadfunction w_saida = Tetra_2_TRIAD(...

w_gyros, offset_grosso, fator_escala)

s_12 = w_gyros(4) - offset_grosso(4);

s_23 = w_gyros(3) - offset_grosso(3);

s_31 = w_gyros(2) - offset_grosso(2);

s_456 = w_gyros(1) - offset_grosso(1);

s_12 = s_12*0.2439*pi/180;

s_23 = s_23*0.2439*pi/180;

s_31 = s_31*0.2439*pi/180;

s_456 = s_456*0.2439*pi/180;

S = [s_12; s_23; s_31; s_456];

H = [0 2*sqrt(2)/3 1/3;...

-sqrt(6)/3 -sqrt(2)/3 1/3; ...

sqrt(6)/3 -sqrt(2)/3 1/3;...

0 0 -1];

w_saida = inv(H’*H)*H’*S;

Page 177: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

175

APÊNDICE D – Códigos para Plotagem

D.1 Código em Matlab para plotagem dos dados de simu-

lação%carrega os dados obtidos do cenário x

load modelo_FK_simul_cenario_x.mat;

t = 0:0.05:100;

%Velocidades Angulares e Quatérnion qTrue

hFig1 = figure(1);

set(hFig1, ’Position’, [100 100 1200 200])

subplot(1,2,1);

hold on

plot(t,w);

set(gca,’FontSize’,14);

title(’Velocidade Angular’);

hold off

set(gca,’FontSize’,14);

ylabel(’w (rad/s)’);

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

axis([0 30 -0.5 0.6])

subplot(1,2,2);

hold on

plot(t,qTrue);

set(gca,’FontSize’,14);

title(’qTrue’);

hold off

set(gca,’FontSize’,14);

ylabel(’Quatérnion’);

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

axis([0 30 -1 1])

%Plota o Quatérnion qTrue

hFig2 = figure(2);

set(hFig2, ’Position’, [100 100 1200 400])

for i=1:4

subplot(2,2,i);

hold on

plot(t,qTrue(:,i));

set(gca,’FontSize’,14);

hold off

set(gca,’FontSize’,14);

ylabel(strcat(’Componente q_’,sprintf(’%d’,i-1)));

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

end

Page 178: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

176 APÊNDICE D. Códigos para Plotagem

%Plota qTriad e qEstFK em uma figura única

hFig3 = figure(3);

set(hFig3, ’Position’, [100 100 1200 400])

for i=1:4

subplot(2,2,i);

hold on

plot(t, qTriad(:,i),’b’, t,qEstFK(:,i),’r’);

hold off

set(gca,’FontSize’,14);

ylabel(strcat(’Componente q_’,sprintf(’%d’,i-1)));

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

end

% Plota erro e covariância dos quatérnions juntos

hFig4 = figure(4);

set(hFig4, ’Position’, [100 100 1200 400])

for i=1:4

subplot(2,2,i);

hold on

plot(t, qe_Triad(:,i),’b’, t, qe_EstFK(:,i),’r’);

plot(t, sqrt(P_est_diag(:,i)),...

’k-’,t, -sqrt(P_est_diag(:,i)),’k-’);

hold off

set(gca,’FontSize’,14);

ylabel(strcat(’Componente q_’,sprintf(’%d’,i-1)));

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

axis([0 40 -0.05 0.05])

end

%Plota erro e covariância dos bias e valor estimado

hFig5 = figure(5);

set(hFig5, ’Position’, [100 100 1200 400])

for i=1:3

subplot(2,2,i);

hold on

plot(t, e_bias(:,i),’b’);

plot(t, sqrt(P_est_diag(:,i+4)),’k-’,...

t, -sqrt(P_est_diag(:,i+4)),’k-’);

hold off

set(gca,’FontSize’,14);

ylabel(strcat(’Componente b_’,sprintf(’%d’,i)));

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

axis([0 40 -0.2 0.2])

end

subplot(2,2,4)

hold on

plot(t, biasEstFK);

hold off

set(gca,’FontSize’,14);

ylabel(’Bias Estimados’);

set(gca,’FontSize’,14);

Page 179: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

D.2. Código em Matlab para plotagem dos dados do Tetraedro 177

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

axis([0 40 -0.2 0.2])

D.2 Código em Matlab para plotagem dos dados do Tetra-

edroload arquivo_x.mat

%Plota qTriad e qEstFK em uma figura única

t=Dt;

for i=2:size(qTriad(:,1));

t(i) = t(i-1)+Dt(i);

a=i;

end

x=max(t);

hFig3 = figure(3);

set(hFig3, ’Position’, [100 100 1200 400])

for i=1:4

subplot(2,2,i);

hold on

plot(t, qTriad(:,i),’b’, t,qEstFK(:,i),’r’);

hold off

set(gca,’FontSize’,14);

ylabel(strcat(’Componente q_’,sprintf(’%d’,i-1)));

set(gca,’FontSize’,14);

xlabel(’Tempo (s)’);

set(gca,’FontSize’,14);

axis([0 x -1 1.1])

end

D.3 Código em Matlab para plotagem dos dados dos sen-

sores nas esferas unitáriasload arquivo_x.mat

% offset=[-200 147 -99.3];

% for i = 1:size(mag_TETRA_A2,1)

% mag_TETRA_A2(i,:)...

% = mag_TETRA_A2(i,:)-offset;

% end

%% PLOTA NORMALIZADO

hFig1 = figure(1);

set(hFig1, ’Position’, [100 100 500 600])

%figure(1);

subplot(2,2,1)

Page 180: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

178 APÊNDICE D. Códigos para Plotagem

e = 1.5;

[x,y,z] = sphere;

s1 = surf(x,y,z)

set(s1,’FaceColor’,’none’)

set(s1,’EdgeColor’,[0.7 0.7 0.7])

hold off

axis([-e e -e e -e e])

set(gca,’PlotBoxAspectRatioMode’,’manual’)

set(gca,’FontSize’,12)

hold on

ax = acc_AHRS_A2(:,1);

ay = acc_AHRS_A2(:,2);

az = acc_AHRS_A2(:,3);

for i = 1:size(acc_AHRS_A2,1)

n(i) = norm(acc_AHRS_A2(i,:));

end

ax = ax ./ n’;

ay = ay ./ n’;

az = az ./ n’;

plot3(ax,ay,az,’b.’)

title(’ACC\_AHRS’);

%figure(1);

subplot(2,2,2)

e = 1.5;

[x,y,z] = sphere;

s2 = surf(x,y,z)

set(s2,’FaceColor’,’none’)

set(s2,’EdgeColor’,[0.7 0.7 0.7])

hold off

axis([-e e -e e -e e])

set(gca,’PlotBoxAspectRatioMode’,’manual’)

set(gca,’FontSize’,12)

hold on

mx = mag_AHRS_A2(:,1);

my = mag_AHRS_A2(:,2);

mz = mag_AHRS_A2(:,3);

for i = 1:size(mag_AHRS_A2,1)

n(i) = norm(mag_AHRS_A2(i,:));

end

mx = mx ./ n’;

my = my ./ n’;

mz = mz ./ n’;

plot3(mx,my,mz,’r.’)

title(’MAG\_AHRS’);

%figure(1);

subplot(2,2,3)

e = 1.5;

[x,y,z] = sphere;

s1 = surf(x,y,z)

set(s1,’FaceColor’,’none’)

set(s1,’EdgeColor’,[0.7 0.7 0.7])

hold off

axis([-e e -e e -e e])

set(gca,’PlotBoxAspectRatioMode’,’manual’)

set(gca,’FontSize’,12)

Page 181: Ambiente Integrado de simulação e teste de um sistema de ... · Ambiente Integrado de simulação e teste de um ... Figura 75 – Quatérnion obtido com dados do AHRS para rotação

D.3. Código em Matlab para plotagem dos dados dos sensores nas esferas unitárias 179

hold on

ax = acc_TETRA_A2(:,1);

ay = acc_TETRA_A2(:,2);

az = acc_TETRA_A2(:,3);

for i = 1:size(acc_TETRA_A2,1)

n(i) = norm(acc_TETRA_A2(i,:));

end

ax = ax ./ n’;

ay = ay ./ n’;

az = az ./ n’;

plot3(ax,ay,az,’b.’)

title(’ACC\_TETRA’);

%figure(1);

subplot(2,2,4)

e = 1.5;

[x,y,z] = sphere;

s1 = surf(x,y,z)

set(s1,’FaceColor’,’none’)

set(s1,’EdgeColor’,[0.7 0.7 0.7])

hold off

axis([-e e -e e -e e])

set(gca,’PlotBoxAspectRatioMode’,’manual’)

set(gca,’FontSize’,12)

hold on

mx = mag_TETRA_A2(:,1);

my = mag_TETRA_A2(:,2);

mz = mag_TETRA_A2(:,3);

for i = 1:size(mag_TETRA_A2,1)

n(i) = norm(mag_TETRA_A2(i,:));

end

mx = mx ./ n’;

my = my ./ n’;

mz = mz ./ n’;

plot3(mx,my,mz,’r.’)

title(’MAG\_TETRA’);