Aplicação de Algoritmos Evolutivos na Calibração de Sensores … · Caroline Peres da Silva...

147
Universidade Estadual de Londrina Centro de Tecnologia e Urbanismo Departamento de Engenharia Elétrica Caroline Peres da Silva Aplicação de Algoritmos Evolutivos na Calibração de Sensores Inerciais MEMS Londrina 2016

Transcript of Aplicação de Algoritmos Evolutivos na Calibração de Sensores … · Caroline Peres da Silva...

Universidade Estadual de LondrinaCentro de Tecnologia e UrbanismoDepartamento de Engenharia Elétrica

Caroline Peres da Silva

Aplicação de Algoritmos Evolutivos naCalibração de Sensores Inerciais MEMS

Londrina2016

Universidade Estadual de Londrina

Centro de Tecnologia e UrbanismoDepartamento de Engenharia Elétrica

Caroline Peres da Silva

Aplicação de Algoritmos Evolutivos na Calibração deSensores Inerciais MEMS

Trabalho de Conclusão de Curso orientado pelo Prof. Dr. FranciscoGranziera Júnior intitulado “Aplicação de Algoritmos Evolutivosna Calibração de Sensores Inerciais MEMS” e apresentado à Univer-sidade Estadual de Londrina, como parte dos requisitos necessáriospara a obtenção do Título de Bacharel em Engenharia Elétrica.

Orientador: Prof. Dr. Francisco Granziera Júnior

Londrina2016

Ficha Catalográfica

Caroline Peres da SilvaAplicação de Algoritmos Evolutivos na Calibração de Sensores Inerciais MEMS- Londrina, 2016 - 146 p., 30 cm.Orientador: Prof. Dr. Francisco Granziera Júnior1. Calibração. 2. MEMS. 3. Algoritmos Evolutivos. 4. Otimização Não-Linear. 5. Determinação de Atitude.I. Universidade Estadual de Londrina. Curso de Engenharia Elétrica. II. Apli-cação de Algoritmos Evolutivos na Calibração de Sensores Inerciais MEMS.

Caroline Peres da Silva

Aplicação de Algoritmos Evolutivos naCalibração de Sensores Inerciais MEMS

Trabalho de Conclusão de Curso apresentado ao Curso deEngenharia Elétrica da Universidade Estadual de Londrina,como requisito parcial para a obtenção do título de Bacharelem Engenharia Elétrica.

Comissão Examinadora

Prof. Dr. Francisco Granziera JúniorUniversidade Estadual de Londrina

Orientador

Prof. Dr. Marcelo Carvalho TosinUniversidade Estadual de Londrina

Prof. Dr. Taufik AbrãoUniversidade Estadual de Londrina

Londrina, 3 de março de 2016

Para Rafael

Agradecimentos

Ao Prof. Dr. Francisco Granziera Jr., que orientou este trabalho e foi essencial emseu desenvolvimento, fornecendo orientações, conselhos e conhecimentos.

Ao Prof. Dr. Marcelo Tosin pelo auxílio no projeto.Ao Prof. Dr. Taufik Abrão pelas dúvidas esclarecidas e sugestões fornecidas para a

conclusão deste trabalho.Ao Daniel Batista, colega de laboratório, que também apoiou e ajudou nesse trabalho,

em especial nas simulações no MatLab.Aos colegas de graduação pela amizade e companheirismo demonstrados ao longo

desses anos estudando juntos.Ao meu namorado Rafael, pelo apoio, carinho e paciência.

Caroline Peres da Silva. 2016. 146 p. Trabalho de Conclusão de Curso em EngenhariaElétrica - Universidade Estadual de Londrina, Londrina.

ResumoEste trabalho apresenta um estudo e a comparação entre algoritmos heurísticos e evoluti-vos aplicados à calibração de sensores MEMS para determinação de atitude. Os algoritmosforam implementados em MATLAB, sendo testados com dados reais e dados simulados,e comparados com o método já estabelecido da Mínima Variância. Para a aplicação dosalgoritmos, um estudo sobre os melhores parâmetros de entrada a serem utilizados foirealizado, e foi possível observar que existem parâmetros ótimos que deixam os algorit-mos mais precisos e rápidos. Por fim, o algoritmo PSO foi executado em uma plataformaembarcada.

Palavras-Chave: 1. Calibração. 2. MEMS. 3. Algoritmos Evolutivos. 4. OtimizaçãoNão-Linear. 5. Determinação de Atitude.

Application of Evolutive Algorithms on the Calibration of MEMS InertialSensors. 2016. 146 p. Monograph in Engenharia Elétrica - Universidade Estadual deLondrina, Londrina.

AbstractThis work presents the study of evolutionary algorithms applied to the calibration ofMEMS sensors for attitude determination. The algorithms were implemented on MAT-LAB, using real and simulated data, and the results were compared to the MinimumVariance Method. An analisis of the best entry parameters for each algorithm was madefor the studied problem, in order to verify if there are optimum parameters that increasethe speed and precision of the algorithms. Finally, the fastest algorithm was coded in Cand executed on a microprocessor in a sensor data colecting platform, and the results ofthis experiment were verified by MATLAB.

Key-words: 1. Calibration. 2. MEMS. 3. Evolutive Algorithms. 4. Non-LinearOptimization. 5. Attitude Determination.

Lista de ilustrações

Figura 1 – Modelo interno do sensor acelerômetro MEMS. Fonte: Retirado deLEARNINGSPACE (2009) . . . . . . . . . . . . . . . . . . . . . . . . . 30

Figura 2 – Esquemático da estrutura interna de um magnetômetro AMR. . . . . . 31Figura 3 – Mesa de Rotação. Fonte: Seçer (2012) . . . . . . . . . . . . . . . . . . 33Figura 4 – Centrifuga. Fonte: Seçer (2012) . . . . . . . . . . . . . . . . . . . . . . 33Figura 5 – Desalinhamento entre os eixos da tríade. Fonte: Granziera Jr. et al.

(2011) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Figura 6 – Modelo da estimação de parâmetros. Fonte: Li et al. (2006) . . . . . . 38Figura 7 – Representação do sistema de calibração apresentado por Lötters (1998).

Fonte: Santana, 2009 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Figura 8 – Fluxograma do Algoritmo Genético. Fonte: Autora . . . . . . . . . . . 46Figura 9 – Operação de crossover para geração de um filho. Fonte: Elbeltagi et

al., 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Figura 10 – Demonstração visual do PSO. Fonte: Ali et al. (2012) . . . . . . . . . . 48Figura 11 – Intervalo de dados selecionados pela técnica descrita. Fonte: Ali et al.

(2012) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Figura 12 – Modelo em Simulink para simulação de sensores. . . . . . . . . . . . . 53Figura 13 – Modelo em Simulink para cálculo da velocidade angular ω de um corpo. 54Figura 14 – Modelo em Simulink para a obtenção do quatérnion. . . . . . . . . . . 55Figura 15 – Blocos para conversão de um quatérnion em medida de sensor a partir

de dada referência. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Figura 16 – Blocos para adição de erros nos sensores simulados. . . . . . . . . . . . 56Figura 17 – Experimento MEMS. Fonte: Batista et al., 2014 . . . . . . . . . . . . . 57Figura 18 – Erro quadrático médio dos parâmetros estimados em função do valor

de vmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Figura 19 – Evolução do algoritmo para vmax = 100 . . . . . . . . . . . . . . . . . . 61Figura 20 – Evolução do algoritmo para vmax = 10−1 . . . . . . . . . . . . . . . . . 62Figura 21 – Evolução do algoritmo para vmax = 10−2 . . . . . . . . . . . . . . . . . 62Figura 22 – Evolução do algoritmo para vmax = 10−3 . . . . . . . . . . . . . . . . . 62Figura 23 – Erro quadrático médio dos parâmetros estimados em função do valor

de vmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Figura 24 – Número de iterações do algoritmo em função do valor de vmax. . . . . . 64Figura 25 – Evolução do algoritmo para vmax = 100 . . . . . . . . . . . . . . . . . . 64Figura 26 – Evolução do algoritmo para vmax = 10−1 . . . . . . . . . . . . . . . . . 65Figura 27 – Evolução do algoritmo para vmax = 10−2 . . . . . . . . . . . . . . . . . 65

LISTA DE ILUSTRAÇÕES 10

Figura 28 – Evolução do algoritmo para vmax = 10−3 . . . . . . . . . . . . . . . . . 65Figura 29 – Erro quadrático médio dos parâmetros estimados em função do valor

de c1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Figura 30 – Evolução do algoritmo para c1 = 0, 5 . . . . . . . . . . . . . . . . . . . 67Figura 31 – Evolução do algoritmo para c1 = 1, 0 . . . . . . . . . . . . . . . . . . . 67Figura 32 – Evolução do algoritmo para c1 = 1, 5 . . . . . . . . . . . . . . . . . . . 67Figura 33 – Evolução do algoritmo para c1 = 2, 0 . . . . . . . . . . . . . . . . . . . 68Figura 34 – Evolução do algoritmo para c1 = 2, 5 . . . . . . . . . . . . . . . . . . . 68Figura 35 – Evolução do algoritmo para c1 = 3, 0 . . . . . . . . . . . . . . . . . . . 68Figura 36 – Erro quadrático médio dos parâmetros estimados em função do valor

de c1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Figura 37 – Número de iterações do algoritmo em função do valor de c1. . . . . . . 70Figura 38 – Evolução do algoritmo para c1 = 0, 5 . . . . . . . . . . . . . . . . . . . 70Figura 39 – Evolução do algoritmo para c1 = 1, 0 . . . . . . . . . . . . . . . . . . . 71Figura 40 – Evolução do algoritmo para c1 = 1, 5 . . . . . . . . . . . . . . . . . . . 71Figura 41 – Evolução do algoritmo para c1 = 2, 0 . . . . . . . . . . . . . . . . . . . 71Figura 42 – Evolução do algoritmo para c1 = 2, 5 . . . . . . . . . . . . . . . . . . . 72Figura 43 – Evolução do algoritmo para c1 = 3, 0 . . . . . . . . . . . . . . . . . . . 72Figura 44 – Erro quadrático médio dos parâmetros estimados em função do valor

de c2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Figura 45 – Evolução do algoritmo para c2 = 0, 5 . . . . . . . . . . . . . . . . . . . 74Figura 46 – Evolução do algoritmo para c2 = 1, 0 . . . . . . . . . . . . . . . . . . . 74Figura 47 – Evolução do algoritmo para c2 = 1, 5 . . . . . . . . . . . . . . . . . . . 74Figura 48 – Evolução do algoritmo para c2 = 2, 0 . . . . . . . . . . . . . . . . . . . 75Figura 49 – Evolução do algoritmo para c2 = 2, 5 . . . . . . . . . . . . . . . . . . . 75Figura 50 – Evolução do algoritmo para c21 = 3, 0 . . . . . . . . . . . . . . . . . . 75Figura 51 – Erro quadrático médio dos parâmetros estimados em função do valor

de c2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Figura 52 – Número de iterações do algoritmo em função do valor de c2. . . . . . . 77Figura 53 – Evolução do algoritmo para c2 = 0, 5 . . . . . . . . . . . . . . . . . . . 77Figura 54 – Evolução do algoritmo para c2 = 1, 0 . . . . . . . . . . . . . . . . . . . 78Figura 55 – Evolução do algoritmo para c2 = 1, 5 . . . . . . . . . . . . . . . . . . . 78Figura 56 – Evolução do algoritmo para c2 = 2, 0 . . . . . . . . . . . . . . . . . . . 78Figura 57 – Evolução do algoritmo para c2 = 2, 5 . . . . . . . . . . . . . . . . . . . 79Figura 58 – Evolução do algoritmo para c2 = 3, 0 . . . . . . . . . . . . . . . . . . . 79Figura 59 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Figura 60 – Evolução do algoritmo para wmax = 0, 6 . . . . . . . . . . . . . . . . . 81Figura 61 – Evolução do algoritmo para wmax = 0, 8 . . . . . . . . . . . . . . . . . 81

LISTA DE ILUSTRAÇÕES 11

Figura 62 – Evolução do algoritmo para wmax = 1, 0 . . . . . . . . . . . . . . . . . 81Figura 63 – Evolução do algoritmo para wmax = 1, 2 . . . . . . . . . . . . . . . . . 82Figura 64 – Evolução do algoritmo para wmax = 1, 4 . . . . . . . . . . . . . . . . . 82Figura 65 – Evolução do algoritmo para wmax = 1, 6 . . . . . . . . . . . . . . . . . 82Figura 66 – Evolução do algoritmo para wmax = 1, 8 . . . . . . . . . . . . . . . . . 83Figura 67 – Evolução do algoritmo para wmax = 2, 0 . . . . . . . . . . . . . . . . . 83Figura 68 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Figura 69 – Número de iterações do algoritmo em função do valor de wmax. . . . . 85Figura 70 – Evolução do algoritmo para wmax = 0, 6 . . . . . . . . . . . . . . . . . 85Figura 71 – Evolução do algoritmo para wmax = 0, 8 . . . . . . . . . . . . . . . . . 86Figura 72 – Evolução do algoritmo para wmax = 1, 0 . . . . . . . . . . . . . . . . . 86Figura 73 – Evolução do algoritmo para wmax = 1, 2 . . . . . . . . . . . . . . . . . 86Figura 74 – Evolução do algoritmo para wmax = 1, 4 . . . . . . . . . . . . . . . . . 87Figura 75 – Evolução do algoritmo para wmax = 1, 6 . . . . . . . . . . . . . . . . . 87Figura 76 – Evolução do algoritmo para wmax = 1, 8 . . . . . . . . . . . . . . . . . 87Figura 77 – Evolução do algoritmo para wmax = 2, 0 . . . . . . . . . . . . . . . . . 88Figura 78 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Figura 79 – Evolução do algoritmo para wmin = 0, 2 . . . . . . . . . . . . . . . . . . 89Figura 80 – Evolução do algoritmo para wmin = 0, 4 . . . . . . . . . . . . . . . . . . 90Figura 81 – Evolução do algoritmo para wmin = 0, 6 . . . . . . . . . . . . . . . . . . 90Figura 82 – Evolução do algoritmo para wmin = 0, 8 . . . . . . . . . . . . . . . . . . 90Figura 83 – Evolução do algoritmo para wmin = 1, 0 . . . . . . . . . . . . . . . . . . 91Figura 84 – Evolução do algoritmo para wmin = 1, 2 . . . . . . . . . . . . . . . . . . 91Figura 85 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Figura 86 – Número de iterações do algoritmo em função do valor de wmin. . . . . . 93Figura 87 – Evolução do algoritmo para wmin = 0, 2 . . . . . . . . . . . . . . . . . . 93Figura 88 – Evolução do algoritmo para wmin = 0, 4 . . . . . . . . . . . . . . . . . . 94Figura 89 – Evolução do algoritmo para wmin = 0, 6 . . . . . . . . . . . . . . . . . . 94Figura 90 – Evolução do algoritmo para wmin = 0, 8 . . . . . . . . . . . . . . . . . . 94Figura 91 – Evolução do algoritmo para wmin = 1, 0 . . . . . . . . . . . . . . . . . . 95Figura 92 – Evolução do algoritmo para wmin = 1, 2 . . . . . . . . . . . . . . . . . . 95Figura 93 – Erro quadrático médio dos parâmetros estimados em função do valor

de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Figura 94 – Evolução do algoritmo para N = 10 . . . . . . . . . . . . . . . . . . . . 96Figura 95 – Evolução do algoritmo para N = 20 . . . . . . . . . . . . . . . . . . . . 97Figura 96 – Evolução do algoritmo para N = 30 . . . . . . . . . . . . . . . . . . . . 97

LISTA DE ILUSTRAÇÕES 12

Figura 97 – Evolução do algoritmo para N = 40 . . . . . . . . . . . . . . . . . . . . 97Figura 98 – Erro quadrático médio dos parâmetros estimados em função do valor

de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Figura 99 – Número de iterações do algoritmo em função do valor de N . . . . . . . 99Figura 100 – Evolução do algoritmo para N = 10 . . . . . . . . . . . . . . . . . . . . 99Figura 101 – Evolução do algoritmo para N = 20 . . . . . . . . . . . . . . . . . . . . 100Figura 102 – Evolução do algoritmo para N = 30 . . . . . . . . . . . . . . . . . . . . 100Figura 103 – Evolução do algoritmo para N = 40 . . . . . . . . . . . . . . . . . . . . 100Figura 104 – Erro quadrático médio dos parâmetros estimados em função do valor

de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Figura 105 – Evolução do algoritmo para N = 8 . . . . . . . . . . . . . . . . . . . . 102Figura 106 – Evolução do algoritmo para N = 12 . . . . . . . . . . . . . . . . . . . . 103Figura 107 – Evolução do algoritmo para N = 20 . . . . . . . . . . . . . . . . . . . . 103Figura 108 – Evolução do algoritmo para N = 40 . . . . . . . . . . . . . . . . . . . . 103Figura 109 – Erro quadrático médio dos parâmetros estimados em função do valor

de mutrate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Figura 110 – Evolução do algoritmo para mutrate = 0, 05 . . . . . . . . . . . . . . . 105Figura 111 – Evolução do algoritmo para mutrate = 0, 10 . . . . . . . . . . . . . . . 105Figura 112 – Evolução do algoritmo para mutrate = 0, 15 . . . . . . . . . . . . . . . 106Figura 113 – Evolução do algoritmo para mutrate = 0, 20 . . . . . . . . . . . . . . . 106Figura 114 – Evolução do algoritmo para mutrate = 0, 25 . . . . . . . . . . . . . . . 106Figura 115 – Evolução do algoritmo para mutrate = 0, 30 . . . . . . . . . . . . . . . 107Figura 116 – Erro quadrático médio dos parâmetros estimados em função do valor

de selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Figura 117 – Evolução do algoritmo para selection = 0, 2 . . . . . . . . . . . . . . . 108Figura 118 – Evolução do algoritmo para selection = 0, 4 . . . . . . . . . . . . . . . 109Figura 119 – Evolução do algoritmo para selection = 0, 6 . . . . . . . . . . . . . . . 109Figura 120 – Evolução do algoritmo para selection = 0, 8 . . . . . . . . . . . . . . . 109Figura 121 – Dados simulados não calibrados. . . . . . . . . . . . . . . . . . . . . . 111Figura 122 – Dados calibrados pelos parâmetros encontrados pelo GA. . . . . . . . . 113Figura 123 – Evolução da melhor resposta (parâmetros) durante a execução do GA. 113Figura 124 – Evolução do valor de aptidão para a melhor resposta (parâmetros) du-

rante a execução do GA. . . . . . . . . . . . . . . . . . . . . . . . . . . 114Figura 125 – Dados calibrados pelos parâmetros encontrados pelo PSO. . . . . . . . 115Figura 126 – Evolução da melhor resposta (parâmetros) durante a execução do PSO. 115Figura 127 – Evolução do valor de aptidão para a melhor resposta (parâmetros) du-

rante a execução do PSO. . . . . . . . . . . . . . . . . . . . . . . . . . 116Figura 128 – Dados reais não calibrados. . . . . . . . . . . . . . . . . . . . . . . . . 117Figura 129 – Dados calibrados pelos parâmetros encontrados pelo GA. . . . . . . . . 118

LISTA DE ILUSTRAÇÕES 13

Figura 130 – Evolução da melhor resposta (parâmetros) durante a execução do PSO. 119Figura 131 – Evolução do valor de aptidão para a melhor resposta (parâmetros) du-

rante a execução do PSO. . . . . . . . . . . . . . . . . . . . . . . . . . 119Figura 132 – Dados calibrados pelos parâmetros encontrados pelo PSO. . . . . . . . 120Figura 133 – Evolução da melhor resposta (parâmetros) durante a execução do PSO. 121Figura 134 – Evolução do valor de aptidão para a melhor resposta (parâmetros) du-

rante a execução do PSO. . . . . . . . . . . . . . . . . . . . . . . . . . 121Figura 135 – Dados coletados do acelerômetro embarcado. . . . . . . . . . . . . . . . 122Figura 136 – Dados coletados do magnetômetro embarcado. . . . . . . . . . . . . . . 122

Lista de tabelas

Tabela 1 – Parâmetros de ajuste iniciais para o PSO. . . . . . . . . . . . . . . . . 60Tabela 2 – Erro quadrático médio dos parâmetros estimados em função do valor

de vmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Tabela 3 – Erro quadrático médio dos parâmetros estimados em função do valor

de vmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Tabela 4 – Erro quadrático médio dos parâmetros estimados em função do valor

de c1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Tabela 5 – Erro quadrático médio dos parâmetros estimados em função do valor

de c1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Tabela 6 – Erro quadrático médio dos parâmetros estimados em função do valor

de c2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Tabela 7 – Erro quadrático médio dos parâmetros estimados em função do valor

de c2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Tabela 8 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Tabela 9 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Tabela 10 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Tabela 11 – Erro quadrático médio dos parâmetros estimados em função do valor

de wmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Tabela 12 – Erro quadrático médio dos parâmetros estimados em função do valor

de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Tabela 13 – Erro quadrático médio dos parâmetros estimados em função do valor

de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Tabela 14 – Parâmetros de ajuste iniciais para o GA. . . . . . . . . . . . . . . . . . 101Tabela 15 – Erro quadrático médio dos parâmetros estimados em função do valor

de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Tabela 16 – Erro quadrático médio dos parâmetros estimados em função do valor

de mutrate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Tabela 17 – Erro quadrático médio dos parâmetros estimados em função do valor

de selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Tabela 18 – Parâmetros de ajuste encontrados para o PSO. . . . . . . . . . . . . . 110Tabela 19 – Parâmetros de ajuste encontrados para o GA. . . . . . . . . . . . . . . 110Tabela 20 – Tempo de execução para cada método. . . . . . . . . . . . . . . . . . . 111

LISTA DE TABELAS 15

Tabela 21 – Valor dos parâmetros encontrados pelo GA comparados com os valoresverdadeiros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Tabela 22 – Valor dos parâmetros encontrados pelo PSO comparados com os valoresreais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Tabela 23 – Tempo de execução para cada método. . . . . . . . . . . . . . . . . . . 116Tabela 24 – Valor dos parâmetros encontrados pelo GA comparados com os valores

obtidos pelo método da mínima variância. . . . . . . . . . . . . . . . . 117Tabela 25 – Valor dos parâmetros encontrados pelo GA comparados com os valores

obtidos pelo método da mínima variância. . . . . . . . . . . . . . . . . 120Tabela 26 – Parâmetros estimados para o acelerômetro pelo PSO embarcado e pelo

PSO no MATLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Tabela 27 – Parâmetros estimados para o magnetômetro pelo PSO embarcado e

pelo PSO no MATLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Lista de Siglas e Abreviaturas

ACO Ant-Colony OptimizationAMR Magneto-resistiva AnisotrópicaDCM Matriz de Cossenos DiretoresFPA Filtro Passa-AltaFPB Filtro Passa-BaixaGA Genetic AlgorithmMA Memetic AlgorithmMEMS Micro-Electro-Mechanical-SystemsMSE Erro quadrático médioMV Mínima VariânciaPSO Particle Swarm OptimizationRET RetificadorRMS Root Mean Square - Valor médio quadráticoSA Simulated AnnealingSFL Shuffled Frog Leaping AlgorithmVANT Veículo Aéreo Não Tripulado

Lista de Símbolos e Notações

(Ψ, θ, ϕ) Ângulos de EulerX, Y, Z Eixos do espaço cartesianoq Quatérnioni, j, k Versores que formam uma base ortogonalw Vetor que representa o sistema de coordenadas do corpoR Matriz de rotaçãov Vetor do sistema de coordenadas de referênciaa Vetor de aceleração real ao qual o acelerômetro é submetidoCm Matriz de desalinhamento ortogonal da tríade sensoraCsf Matriz de fatores de escala para cada eixoa0 Vetor de offsets de aceleraçãoa Vetor de medida de um acelerômetro em tríadeCsi Matriz de erros Soft Iron para magnetômetrosb Vetor do campo magnético realb Vetor do campo magnético medido por um magnetômetro em tríadeb0 Vetor de offsets para o magnetômetrog Representação para o valor da gravidadeB Magnitude do campoB Vetor do campo(Bx, By, Bz) Componentes em cada eixo do campo(x0, y0, z0) Offsets dos sensores para cada eixo(a, b, c) Fator de escala dos sensores para cada eixo(ρ, ϕ, λ) Ângulo de desalinhamento entre os eixos dos sensoresu′ Vetor da medida realizadau′

x, u′y, u′

z Componentes do vetor da medida realizadavx, vy, vz Erros estocásticos para cada componente do vetor de medidasu Vetor do campo real que é medidoux, uy, uz Componentes do vetor do campo realu Vetor do campo corrigido com os parâmetros estimadosux, uy, uz Valores corrigidos de cada componente do vetor medidou Vetor de medidasυ Estimador pontual do vetor de medidasu Variável aleatóriaΥ Estimador pontual de υ (variável aleatória)α(t) Sinal de saída de um sensor

LISTA DE SÍMBOLOS E NOTAÇÕES 18

u Campo realp Vetor de parâmetrosB Derivada parcial de h(u, p) em relação a pCµ Matriz de variância do ruído das mediçõesξ Resíduo da estimaçãoA, B, C, D Variáveis intermediáriasE, F, G, Variáveis intermediáriasH, I, J Variáveis intermediáriasX Matriz de observaçãok Vetor de variáveis intermediáriasw Vetor de -1.α, β, γ Variáveis intermediáriasδ, ε, χ Variáveis intermediáriasη, ι, κ Variáveis intermediáriasH Vetor de linhas da matriz de observaçãoy Vetor de valor do campoK Matriz de ganho de KalmanP Matriz de covariância estimadax Vetor de estado estimadom Número de partículask Passoi Índice da partículaXi(k) Posição da partícula i no passo k

Vi(k) Velocidade da partícula i no passo k

Pbest Melhor posição da partículaGbest Melhor posição do enxamew Inércia para atualização da velocidade no PSOc1 Parâmetro para atualização da velocidade no PSOc2 Parâmetro para atualização da velocidade no PSOrand(.) Número aleatório distribuído uniformemente entre 0 e 1vmax Velocidade máxima da partícula no PSOwmax Inércia máximawmin Inércia mínimaK Número máximo de iteraçõesIr Matriz de inércia do corpoIx, Iy, Iz Componentes da matriz de inérciam Vetor de torqueM − x, My, Mz Componentes do vetor de torqueω Velocidade angular

LISTA DE SÍMBOLOS E NOTAÇÕES 19

q QuatérnionΩ4 Matriz anti-simétrica

Sumário

Lista de ilustrações . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Lista de tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.3 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . 25

2 ATITUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1 Representação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.1 Ângulos de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.2 Quatérnion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.1.3 Matriz de Rotação . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2 Sensores de Atitude . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.1 Sensores Inerciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.2 Sensores de Referência . . . . . . . . . . . . . . . . . . . . . . . . 28

3 SENSORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1 Sensores MEMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Acelerômetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Magnetômetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4 Calibração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 MODELO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.1 Modelo Matemático . . . . . . . . . . . . . . . . . . . . . . . . . . 354.2 Estimação de Parâmetros . . . . . . . . . . . . . . . . . . . . . . . 364.3 Função Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 AUTOCALIBRAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . 395.1 Método da Mínima Variância . . . . . . . . . . . . . . . . . . . . 395.2 Método de Mínima Variância com Desalinhamento Entre Eixos 415.3 Forma de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.4 Outros métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6 ALGORITMOS HEURÍSTICOS . . . . . . . . . . . . . . . . . . 44

SUMÁRIO 21

6.1 Genetic Algorithm - GA . . . . . . . . . . . . . . . . . . . . . . . 446.1.1 Cromossomo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.1.2 População Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.1.3 Seleção Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.1.4 Reprodução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.1.5 Mutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.1.6 Parâmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . 486.2 Particle Swarm Optimization - PSO . . . . . . . . . . . . . . . . 486.3 Outros Trabalhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1 Simulação de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1.1 Gerador de Movimentos . . . . . . . . . . . . . . . . . . . . . . . . 547.1.1.1 Cálculo de velocidade angular . . . . . . . . . . . . . . . . . . . . . . . 54

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

7.1.2 Simulação das medidas dos sensores . . . . . . . . . . . . . . . . 557.1.3 Adição de erros aos sensores simulados . . . . . . . . . . . . . . 567.2 Dados Coletados por Sensores Embarcados . . . . . . . . . . . . 567.3 Algoritmos utilizados . . . . . . . . . . . . . . . . . . . . . . . . . 577.4 Otimização dos parâmetros de ajuste dos algoritmos . . . . . . 577.5 Simulações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.6 Aplicação em Plataforma Embarcada . . . . . . . . . . . . . . . 59

8 PARÂMETROS DE AJUSTE . . . . . . . . . . . . . . . . . . . 608.1 Análise dos parâmetros de ajuste para o PSO . . . . . . . . . . 608.1.1 Estudo de vmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608.1.1.1 Critério de parada: número de iterações . . . . . . . . . . . . . . . . . 60

8.1.1.2 Critério de parada: convergência . . . . . . . . . . . . . . . . . . . . . 63

8.1.2 Estudo de c1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668.1.2.1 Critério de parada: número de iterações . . . . . . . . . . . . . . . . . 66

8.1.2.2 Critério de parada: convergência . . . . . . . . . . . . . . . . . . . . . 69

8.1.3 Estudo de c2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728.1.3.1 Critério de parada: número de iterações . . . . . . . . . . . . . . . . . 73

8.1.3.2 Critério de parada: convergência . . . . . . . . . . . . . . . . . . . . . 76

8.1.4 Estudo de wmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798.1.4.1 Critério de parada: número de iterações . . . . . . . . . . . . . . . . . 80

8.1.4.2 Critério de parada: convergência . . . . . . . . . . . . . . . . . . . . . 83

8.1.5 Estudo de wmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888.1.5.1 Critério de parada: número de iterações . . . . . . . . . . . . . . . . . 88

8.1.5.2 Critério de parada: convergência . . . . . . . . . . . . . . . . . . . . . 91

SUMÁRIO 22

8.1.6 Estudo de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958.1.6.1 Critério de parada: número de iterações . . . . . . . . . . . . . . . . . 95

8.1.6.2 Critério de parada: convergência . . . . . . . . . . . . . . . . . . . . . 98

8.2 Análise dos parâmetros de ajuste para o GA . . . . . . . . . . . 1018.2.1 Estudo de N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018.2.2 Taxa de mutação - mutrate . . . . . . . . . . . . . . . . . . . . . . 1048.2.3 Taxa de seleção - selection . . . . . . . . . . . . . . . . . . . . . . . 1078.3 Parâmetros de ajuste encontrados . . . . . . . . . . . . . . . . . 110

9 RESULTADOS E DISCUSSÕES . . . . . . . . . . . . . . . . . . 1119.1 Calibração dos dados simulados . . . . . . . . . . . . . . . . . . . 1119.1.1 Resultados encontrados para o GA . . . . . . . . . . . . . . . . . 1129.1.2 Resultados encontrados para o PSO . . . . . . . . . . . . . . . . 1149.2 Calibração dos dados reais . . . . . . . . . . . . . . . . . . . . . . 1169.2.1 Resultados encontrados para o GA . . . . . . . . . . . . . . . . . 1179.2.2 Resultados encontrados para o PSO . . . . . . . . . . . . . . . . 1199.3 Experimento embarcado realizado . . . . . . . . . . . . . . . . . 121

10 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12510.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

A CÓDIGO PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

B CÓDIGO GA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

1 Introdução

1.1 Tema

Sensores MEMS (Micro-Electro-Mechanical-Systems) têm sido cada vez mais utilizadosem diversas finalidades, como produtos comerciais, sistemas embarcados, equipamentoseletrônicos automotivos, aplicações robóticas, médicas, entre outras (BOGUE, 2007). De-vido ao crescente desempenho, baixo custo, funcionalidade e melhora significativa na con-fiabilidade, esses sensores estão ganhando espaço em aplicações que exigem mais precisão,como sistemas de navegação inercial e determinação de atitude em sistemas aeroespaciais.

Estes sensores estão sendo aplicados especificamente em pequenos satélites como de-monstradores tecnológicos, e têm-se obtido bons resultados. Esse avanço tecnológico,então, possibilita uma nova forma de projeto de pequenos satélites, com menor custo etempo de desenvolvimento. Outra aplicação onde sensores MEMS são utilizados é napesquisa e uso de Veículos Aéreos Não Tripulados (VANTs). Devido ao baixo custo etamanho reduzido, os VANTs vêm sendo utilizados para diversas finalidades: monitora-mento, aquisição de dados, transporte, entre outras. Em ambas aplicações é necessárioque se faça a determinação e o controle da atitude do sistema.

Pode-se definir atitude de um corpo como o estado definido pela rotação que deve seraplicada a este corpo para alinhá-lo aos eixos do sistema de coordenadas de referênciautilizado. Assim, deve-se definir os sistemas de coordenadas de referência e do corpo. Éimportante ressaltar que a atitude de um corpo não depende da sua posição no espaçotridimensional.

Para desenvolver um sistema de determinação de atitude com a confiabilidade dese-jada, é necessário um projeto eletrônico com os sensores corretos para os objetivos damissão, bem como algoritmos e métodos para transformação dos dados gerados pelos sen-sores em informações de atitude. Os sensores e algoritmos utilizados são extremamentedependentes do objetivo e recursos disponíveis para a missão, sendo que sensores podemvariar em preço, precisão e exatidão.

Assim, com o uso de sensores MEMS, se faz necessário a calibração desses, pois oserros presentes podem causar diferenças de até dezenas de graus na atitude calculada.

Para aplicações de determinação de atitude, os sensores utilizados são acelerômetros,girômetros e magnetômetros (que não são propriamente MEMS). Em geral, esses sensoressão arranjados em tríade e alinhados ortigonalmente, de forma que seja possível obter umvetor resultante completo que indique a intensidade e direção da grandeza que se querobservar.

Devido à erros presentes nos sensores e no processo de medição, as saídas dos senso-res são degradadas, o que faz necessário a calibração do sistema de forma a compensar

CAPÍTULO 1. INTRODUÇÃO 24

esses erros. Os erros determinísticos dos sensores são: fator de escala, offset e o erro dedesalinhamento entre os eixos (BONNET et al., 2009).

Além dos erros próprios dos sensores, também estão presentes erros do sistema, comoerros de conversão analógico-digital (quantização) e erros devido amplificação do sinal.Assim, a calibração de fábrica, ou a calibração separada do sensor, não é suficiente, sendonecessário realizar uma calibração com os sensores e o sistema operando em grupo. Acalibração ideal, seria, então, um processo de autocalibração, ou seja, o próprio sistemarealiza calibrações periódicas, sem necessidade de um operador ou processos complicados.

Uma tríade de sensores ideal imersa em um campo vetorial constante, como no casode acelerômetros (em repouso) e magnetômetros, mediria sempre o mesmo módulo dovetor independentemente da atitude da tríade, mas devido à imprecisões dos parâmetrosda tríade, as medidas em atitudes diversas produzirão distintos valores para o módulo dovetor medido.

De outra maneira, pode-se dizer que uma tríade ideal consiste de sensores que nãopossuem offsets, com fatores de escala unitários e arranjo perfeitamente ortogonal. Assim,o vetor combinado de saída seria plotado na superfície de uma esfera perfeita, de raio igualao módulo do vetor lido, centrado na origem dos eixos. Uma tríade com parâmetros não-ideais tem a saída plotada em um elipsoide distorcido e fora da origem.

Em sensores MEMS de baixo custo, acelerômetros costumam ter um comportamentoestável, em que o fator de escala e o offset são próximos aos valores fornecidos pelofabricante. Já os magnetômetros, embora possuam boa precisão, têm baixa exatidão,dado que os offsets e fatores de escala podem variar muito, principalmente quando estãopróximos a materiais ferromagnéticos.

Assim, baseado nas medidas realizadas, o objetivo da calibração é encontrar os parâ-metros que tornam este elipsoide em uma esfera perfeita. Isso se reduz a um problema deestimação de parâmetros.

Parte da literatura sobre o problema utiliza métodos lineares, como o método de Gauss,baseados no estimador de Mínima Variância. Porém, eles têm a tendência de divergir seos parâmetros iniciais não forem bem escolhidos, devido à linearização do gradiente dafunção objetivo.

Na busca de métodos que resolvem esses problemas, é possível utilizar métodos não-lineares que não utilizam gradientes. Entre os métodos mais utilizados, estão os algoritmosheurísticos de otimização evolutivos, como por exemplo: Particle Swarm Optimization,Genetic Algorithm, Memetic Algorithm, Ant Colony Optimization, Shuffled Frog LeapingAlgorithm e Artificial Bee Colony Algorithm.

Esses algoritmos têm inspiração na biologia, muitas vezes imitando a evolução e/ou ocomportamento social das espécies em seus ambientes naturais. Seu objetivo é minimizaruma dada função, no caso proposto, o objetivo é minimizar o erro entre o valor real eo valor calculado do campo (magnético ou gravitacional) pelos parâmetros estimados.

CAPÍTULO 1. INTRODUÇÃO 25

Por serem heurísticos, esses métodos não utilizam gradientes ou restringem o espaço desoluções (a convexidade do problema não é exigida), e são especialmente voltados para asolução de problemas não-lineares. Porém, como não exigem a convexidade do problema,esses métodos não são considerados ótimos, ou seja, podem produzir resultados não-ótimos(mínimos locais).

1.2 Objetivos

Devido a importância e necessidade de determinação de atitude em diversas aplicações,o objetivo principal desse trabalho é estudar a aplicação de algoritmos evolutivos parao problema de calibração dos parâmetros de sensores MEMS inerciais, aplicando-os ecomparando-os com o método linear, a fim de verificar qual deles é o mais apropriadopara o problema estudado.

Neste trabalho os algoritmos são implementados em MATLAB para verificação de seufuncionamento, sendo utilizados dados simulados de um objeto rotacionado em Simulinke também dados reais coletados pela plataforma de aquisição de dados (ExperimentoMEMS). Para validação dos métodos, os resultados foram comparados com os resultadosobtidos pelo método de Gauss, aliado ao estimador de Mínima Variância, descrito por??).

1.3 Organização do Trabalho

No capítulo 2 é introduzido o conceito de atitude, bem como suas principais repre-sentações. O capítulo 3 apresenta os sensores dos quais este trabalho trata, citandosuas principais características e seus modelos matemáticos. Também são apresentados osprocedimentos mais comuns para sua calibração. O modelo do problema e sua funçãocusto são definidos no capítulo 4. O capítulo 5 trata da autocalibração, apresentando ostrabalhos já realizados na área, bem como o método utilizado para comparação com osalgoritmos apresentados neste trabalho. No capítulo 6 é feita uma revisão dos principaisalgoritmos evolutivos, com explicações sobre sua origem e seu funcionamento.

No capítulo 7 é demonstrada a metodologia para geração de dados por simulaçãopara verificação dos algoritmos. Também é apresentada a metodologia do estudo dosparâmetros de ajuste dos algoritmos, bem como a plataforma embarcada utilizada paracoleta de dados e testes em campo. O estudo dos parâmetros de ajuste dos algoritmosutilizados está no capítulo 8. O capítulo 9 apresenta os resultados obtidos. As conclusõessão feitas no capítulo 10. Os apêndices apresentam os códigos dos algoritmos utilizados,bem como o trabalho realizado para estudo dos erros estocásticos presentes nos sensores,e o artigo apresentado sobre o assunto deste trabalho.

2 AtitudePode-se definir atitude de um corpo como a rotação que deve ser aplicada a este

corpo para alinhá-lo aos eixos do sistema de coordenadas de referência utilizado. Ouseja, atitude é a rotação que um corpo deve sofrer para que o sistema de coordenadas deobservação (do corpo) coincida com o sistema de coordenadas escolhido como referência.Assim, deve-se definir os sistemas de coordenadas de referência e do corpo. É importanteressaltar que a atitude de um corpo não depende da sua posição no espaço tridimensional.

Para calcular a atitude é necessário a medida da direção de pelo menos dois vetorestanto no sistema de coordenadas de referência quanto no sistema de coordenadas docorpo. Em geral, os sistema de de coordenadas de referência é fixo e portanto a medidadas direções vetoriais neste sistema também são. Já os sensores, estão presos ao sistemado corpo, e suas medidas dependem diretamente da atitude.

O campo gravitacional na superfície terrestre é um exemplo de vetor de referênciaque pode ser medido tanto no referencial local quanto do sistema de coordenadas docorpo, desde que o corpo esteja estático. O campo geomagnético também apresentadireção praticamente constante caso o sistema de coordenadas local e do corpo não estejammuito distantes (dentro de algumas dezenas de kilometros de distância). Ambos vetoresgravitacional e magnético podem ter suas direções medidas utilizando sensores arranjadosem tríades. Desta forma a intensidade dos vetores não precisará ser conhecida, já que elapode ser calculada.

Para uma revisão mais completa sobre o assunto de atitude e suas representações,pode-se ver Shuster (1993).

2.1 Representação

Outra definição importante é a de representação da atitude. As formas mais utilizadassão:

• Ângulos de Euler

• Matrizes de Rotação

• Quatérnios

2.1.1 Ângulos de Euler

Os ângulos de Euler são a forma mais natural de representar rotações. Segundo seuinventor, Leonard Euler:

CAPÍTULO 2. ATITUDE 27

Dado dois sistemas ortogonais e independentes, eles podem ser associados poruma sequência de rotação (não mais que três) sobre os eixos de coordenadas,desde que não haja duas rotações consecutivas sobre um mesmo eixo.

A sequência mais utilizada é a (Ψ, θ, ϕ), que determina rotação de Ψ em torno de Z,seguida de uma rotação θ em torno de Y e então uma rotação ϕ em torno de X.

Para que não exista duas ou mais representações de atitude diferentes com a mesmasequência, é necessário restringir as amplitudes dos ângulos:

Ψ = [−π, +π] θ =[−π

2, +π

2

]ϕ = [−π, +π] (2.1)

As vantagens da utilização dos ângulos de Euler são a ausência de parâmetros redun-dantes, e a interpretação física é clara. Porém, apresenta problemas, sendo a presença desingularidades na representação, além de ser necessário utilizar funções trigonométricas,o que aumenta a carga computacional.

2.1.2 Quatérnion

Também chamados de Parâmetros Simétricos de Euler, os quatérnions são númeroshiper-complexos - que são uma expansão dos números complexos. Eles podem ser escritosda seguinte forma:

q = iq1 + jq2 + kq3 + q4 (2.2)

Sendo q a representação do quatérnion, q1, q2 e q3 as componentes vetoriais do qua-térnion e q4 sua componente escalar. i, j e k representam versores que formam uma baseortogonal, com a seguinte propriedade:

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

2.1.3 Matriz de Rotação

Também chamada de DCM (Direction Cossine Matrix ou Matriz de Cossenos Direto-res). Os sistemas de coordenadas de referência e do corpo podem ser representados porvetores 3×1, e, utilizando uma matriz 3×3 é possível fazer a rotação de um para o outro:

w3×1 = R3×3v3×1 (2.4)

Sendo R a matriz de rotação, w o vetor que representa o sistema de coordenadas docorpo e v o vetor do sistema de coordenadas de referência.

As matrizes de rotação possuem propriedades matemáticas de ortogonalidade e deter-minante unitário, e podem ser separadas em componentes de rotação em cada eixo. A

CAPÍTULO 2. ATITUDE 28

vantagem em utilizar matrizes de rotação é que não existem singularidades na represen-tação e não utilizam funções trigonométricas. Porém, sua desvantagem é o tamanho darepresentação (9 parâmetros, sendo seis redundantes).

2.2 Sensores de Atitude

Existem duas classes de sensores que são utilizados na determinação de atitude de umcorpo:

• Sensores Inerciais

• Sensores de Referência

Em geral, as aplicações utilizam informações vindas das duas classes de maneira queelas se complementem. As seções a seguir entram em maior detalhes sobre cada classe.

2.2.1 Sensores Inerciais

São sensores que medem efeitos de aceleração, rotações, vibrações, impactos, entreoutros. No passado, esses sensores eram mecânicos, o que os tornavam caros, grandes erestritos a certas aplicações. Depois dos avanços na tecnologia MEMS, sensores inerci-ais encontram diversas aplicações, como industriais, automotivas, médicas, entre outras(BOGUE, 2007).

2.2.2 Sensores de Referência

São sensores que fornecem a medida de um vetor de referência, ou seja, a direção deum vetor qualquer conhecido. Apenas a medida de um vetor não fornece informaçõessuficientes para o cálculo da atitude, se faz necessário mais de um vetor de referência paraque seja possível saber a orientação de um corpo.

Para aplicações terrestres utiliza-se com frequência magnetômetros e acelerômetros.Os magnetômetros medem o campo da Terra cuja direção está mapeada em função dascoordenadas de latitude, longitude e altitude. Os acelerômetros medem a reação à gravi-dade. Em um corpo em repouso somente a gravidade está atuando.

3 Sensores

3.1 Sensores MEMS

Sistema Microeletromecânico ou MEMS (Micro-Electro-Mechanical System) é um termocriado para descrever sistemas miniaturizados compostos de um sensor, um circuito eletrô-nico que trata o sinal do sensor, e um atuador que responde ao sinal gerado pelo circuitoeletrônico. Com o tempo, o termo passou a ser usado também para microssistemas sematuadores. MEMS são fabricados em silício, utilizando técnicas similares às utilizadas nafabricação de circuitos integrados (BOGUE, 2007).

3.2 Acelerômetros

Acelerômetros são sensores que medem a aceleração a qual o sensor está submetido.O elemento sensor é uma massa conhecida, onde a força inercial sobre ela, quando sobaceleração, pode ser medida. Acelerômetros MEMS são divididos em dois principais tipos:piezorresistivos e capacitivos.

O acelerômetro do tipo piezorresistivo incorpora um piezorresistor. O movimento damassa de prova faz que esse cristal se deforme, alterando sua resistência. A vantagemdesse tipo de resistor é a simplicidade da sua estrutura, do seu processo de fabricação edo circuito utilizado para leitura do sinal. Porém, esses sensores têm alta sensibilidadeà temperatura e menor sensibilidade em comparação com os capacitivos, necessitando deuma massa de prova maior.

No caso de acelerômetros MEMS capacitivos, o princípio pelo qual a aceleração émedida é a alteração da capacitância entre três placas ligadas em série, onde a placainterna é presa por apenas uma de suas extremidades, sendo livre para oscilar sob aação da aceleração, como na Fig. 1. A mudança de capacitância é medida através de umcondicionamento eletrônico integrado. Entre suas vantagens estão: alta sensibilidade, boaperformance de ruído, baixo drift, baixa sensibilidade à temperatura, baixa dissipação deenergia, e estrutura simples. Porém, são susceptíveis a interferência eletromagnética.

A saída de um acelerômetro pode ser modelada através de:

a = CmCsf (a + ao) (3.1)

Sendo a o vetor 3×1 de aceleração real a qual o sensor está submetido, ao é o vetor deoffset ou viés da saída, Csf é a matriz de fatores de escala para cada eixo, e Cm é a matrizque indica o desalinhamento ortogonal da tríade sensora. O ruído estocástico foi omitido

CAPÍTULO 3. SENSORES 30

Figura 1 – Modelo interno do sensor acelerômetro MEMS. Fonte: Retirado de LEAR-NINGSPACE (2009)

pois o objetivo da calibração a ser realizada é encontrar os parâmetros determinísticosenumerados aqui.

3.3 Magnetômetros

Magnetômetros são sensores que medem o campo magnético, utilizados para a deter-minação do Norte Magnético. Dentre as várias tecnologias utilizadas para a construção demagnetômetros, uma das que resulta em sensores de baixo custo e desempenho adequadoé a AMR (Anisotropic Magnetoresistive - Magneto-resistiva Anisotrópica) (TORMENAJR., 2010), onde o sensor é construído utilizando uma liga de ferro-níquel, ou Permal-loy, cuja resistência elétrica depende da presença de campos magnéticos em uma direçãoespecífica.

A Fig. 2 ilustra a construção de um magnetômetro AMR. Nela, cada ponte resistivaestá contida em um plano ortogonal aos demais. Em cada plano, sua direção perpendicularé a direção de sensibilidade do elemento sensor de campo magnético.

O modelo matemático da medida para um magnetômetro desse tipo pode ser escritocomo:

b = CmCsfCsi(b + bo) (3.2)

sendo b um vetor 3x1 que representa o campo magnético real medido, bo é o offset ouviés da saída do sensor - que para magnetômetros é conhecido como erro Hard Iron, Cm éa matriz de desalinhamento ortogonal entre os eixos da tríade, Csf é a matriz de fatoresde escala de cada eixo, e Csi representa os erros Soft Iron.

Os erros Hard Iron são gerados pela presença de materiais ferromagnéticos ou mag-netos permanentes (imãs) próximos ao magnetômetro, sendo parte da estrutura onde o

CAPÍTULO 3. SENSORES 31

Figura 2 – Esquemático da estrutura interna de um magnetômetro AMR.

magnetômetro está instalado (por exemplo, um AHRS dentro de um avião) (CARUSO,2000). Esses erros se sobrepõem ao bias intrínseco do magnetômetro, gerando erros cons-tantes na saída do sensor. São erros normalmente invariantes no tempo. Porém, comoo bias do sensor é dependente da temperatura, se faz necessário a calibração periódicadesse componente de erro.

Os erros de Soft Iron são perturbações sobre o campo magnético causadas por camposmagnéticos induzidos por certos materiais (CARUSO, 2000). De outra maneira, pode-sedizer que a medida do campo magnético é corrompida por campos induzidos em respostaao próprio campo magnético da Terra. Esse erro na medida do campo é variável coma atitude. Devido à complexidade do erro Soft Iron, os magnetômetros são instaladosde forma a minimizar essa fonte de erro, sendo possível aproximar Csi por uma matrizidentidade, sem perda de precisão.

3.4 Calibração

Como visto nas seções anteriores, para a utilização de sensores MEMS em aplicaçõesque demandam precisão, é necessário fazer uma calibração desses sensores, encontrandoseus termos de erro: bias (offset ou viés); fator de escala; e não-ortogonalidade dos eixos.A calibração é um processo de comparação de saídas dos instrumentos de medição cominformações de referência conhecidas, e de determinação dos coeficientes que forçam asaída a coincidir com a informação de referência sobre uma variedade de valores de saída.

Calibração em fábrica dos sensores é um processo caro e demorado, e é tipicamenterealizado para sensores de alta precisão para pesquisa. Para sensores inerciais de baixocusto, como os MEMS, esse tipo de calibração é raramente realizado.

O processo de calibração pode ser totalmente controlado, onde todas as entradas,saídas e orientações são cuidadosamente escolhidas e estabelecidas. Esse tipo de calibração

CAPÍTULO 3. SENSORES 32

gera os melhores resultados, porém é custosa. Exemplos são o estático de seis posições eo nível de referência local, que serão explicadas nessa seção. Uma calibração parcialmentecontrolada, por outro lado, controlará apenas algumas entradas e saídas. Um exemploé o método apresentado por Shin e El-Sheimy (2002). O terceiro tipo de calibração é oautomático, no qual o período inicial estático da saída do sensor é utilizada para umaaproximação dos termos de erro dos sensores (SYED et al., 2007).

Os métodos tradicionais para calibração de sensores inerciais foram inicialmente desen-volvidos para testes em laboratório e sensores de alta qualidade. Esses testes geralmenterequerem o uso de referências especiais como o alinhamento em relação a um plano dadoou equipamentos especializados. O método das seis posições requer que o sistema inercialseja montado em uma superfície em nível com cada eixo sensível do sensor, apontandoalternadamente para cima e para baixo. Para um sensor de três eixos, isso resulta em umtotal de seis posições.

Outro método utilizado é o uso de máquinas de controle de posição angular e centrífu-gas. Quando uma máquina de posição angular é utilizada, o acelerômetro é posicionado emantido estacionário na orientação de referência e os parâmetros de calibração são calcu-lados baseados nas medidas do sensor e acelerações de referência associadas às orientaçõese à gravidade. Entre as limitações desse processo estão a necessidade de um equipamentoque gere as orientações de referências – normalmente um braço mecânico ou uma mesa derotação – e a limitação de sinal aplicado entre −1g e +1g, podendo gerar uma modelagemerrada para acelerações fora do intervalo [−1, +1]g (SEÇER, 2012). A Fig. 3 mostra umexemplo de equipamento de controle de posição angular, também chamado de mesa derotação.

No caso de uma centrífuga, os sinais de aceleração de referência são aplicados ao rota-cionar a centrífuga. A Fig. 4 mostra um exemplo de centrífuga utilizada na calibração deacelerômetros. Neste caso, os sinais de referência não estão limitados à faixa de [−1, +1]g.

Outros equipamentos utilizados para calibração de acelerômetros são geradores de vi-bração, atuadores robóticos, sistemas de rastreamento ótico, e o acoplamento com sensoresde alta performance. (GLUECK; BUHMANN; MANOLI, 2012)

A calibração de magnetômetros deve ser projetada cuidadosamente, já que fatoresexternos como a permeabilidade magnética dos materiais ao redor e fontes externas decampo magnético como motores afetam as medidas do magnetômetro (SEÇER, 2012).Esses efeitos são geralmente constantes para um certo ambiente, sendo possível estimaresse parâmetro para cada caso específico de teste. O procedimento da calibração domagnetômetro é mantê-lo em uma orientação conhecida e comparar a medida resultantecom o valor do campo magnético terrestre no local do experimento.

Esses procedimentos tradicionais exigem o uso de equipamentos específicos, muitas ve-zes de alto valor, para o uso de sensores de baixo custo (MEMS). Assim, outros métodosde calibração em campo foram desenvolvidos de forma a não depender de equipamentos

CAPÍTULO 3. SENSORES 33

Figura 3 – Mesa de Rotação. Fonte: Seçer (2012)

Figura 4 – Centrifuga. Fonte: Seçer (2012)

CAPÍTULO 3. SENSORES 34

externos. Esses procedimentos fazem uso de situações já conhecidas – como o caso estaci-onário onde a medida do acelerômetro deve ser igual à gravidade – para a calibração dossensores. Também chamados de autocalibração, esses métodos passam a saída do sensorem funcionamento por algoritmos internos ao sistema, que calculam os parâmetros decalibração e corrigem a saída automaticamente, sem a necessidade que o usuário interajacom o sistema.

4 Modelo

4.1 Modelo Matemático

Como visto anteriormente, o modelo matemático dos acelerômetros e magnetômetrossão análogos, sendo possível criar uma representação genérica para eles. Seja B a magni-tude do campo sendo medido (gravitacional ou magnético) - sendo este representado porB = (Bx, By, Bz)T :

B =√

B2x + B2

y + B2z (4.1)

Sejam os parâmetros dos sensores dados por:

• Offset: É a saida do sensor na ausência de estímulo externo, ou seja, os biases dossensores para cada eixo:

(x0, y0, z0)T (4.2)

• Fator de Escala: É a sensibilidade da saída do sensor para cada eixo:

(a, b, c)T (4.3)

• Desalinhamento entre os eixos: É o desalinhamento entre o eixo real e o eixoperfeitamente ortogonal.

(ρ, ϕ, λ)T (4.4)

Então os valores medidos - que são degenerados pelos erros - representados por u′ =(u′

x, u′y, u′

z)T são dados por:

u′x = aux + x0 + vx (4.5)

u′y = b(uy cos ρ + ux sin ρ) + y0 + vy (4.6)

u′z = c(uz cos ϕ cos λ + uy sin λ cos ϕ + ux sin ϕ cos λ) + z0 + vz (4.7)

onde vx, vy, e vz são os ruídos estocásticos presentes nas saídas dos sensores. Esses ruídospodem ser modelados como ruídos Gaussianos, com média zero, variância constante edescorrelacionados, sendo possível, por simplicidade, retirá-los da análise 1. Desta forma,conforme Granziera Jr. et al. (2011), o valor real corrigido do que cada sensor mede é:

ux = (u′v − x0)

a(4.8)

1 Para caracterização desse ruído, ver apêndice.

CAPÍTULO 4. MODELO 36

Figura 5 – Desalinhamento entre os eixos da tríade. Fonte: Granziera Jr. et al. (2011)

uy =a(u′

y − y0) − b sin (ρ)(u′x − x0)

ab cos (ρ)(4.9)

uz =ab cos (ρ)(u′

z − z0) − ac cos (ϕ) sin (λ)(u′y − y0)

abc cos (ρ) cos (ϕ) cos (λ)+

bc[sin (ρ) cos (ϕ) sin (λ) − cos (ρ) sin (ϕ) cos (λ)](u′x − x0)

abc cos (ρ) cos (ϕ) cos (λ)

(4.10)

4.2 Estimação de Parâmetros

De acordo com o modelo, o problema é reduzido a encontrar os parâmetros x0, y0, z0,a, b, c, ρ, ϕ e λ, de forma que os valores reais corrigidos dos sensores se aproximem aomáximo do valor real do campo medido B. É importante lembrar que esse método assumeque o campo B seja conhecido. Desta forma, utiliza-se um estimador para encontrar osparâmetros.

Considerando a saída corrigida do sensor u como uma variável aleatória, quer-se esti-mar o valor dela com n observações i.i.d de u. Uma estimação pontual é uma funçãoυ = g(u) do vetor de medidas u = [u1, ..., un]. Assim, a variável aleatória Υ = g(u) é oestimador pontual de υ, para um vetor de amostras u = [u1, ..., un].

Uma estimativa deve ser o mais próxima possível do valor verdadeiro do parâmetro,de forma que essa estimativa não tenha viés. Um estimador não-viesado (unbiased) Υ de

CAPÍTULO 4. MODELO 37

υ tem sua esperança igual ao valor esperado do parâmetro, ou seja:

E[Υ] = υ (4.11)

Outro fator importante a ser considerado em um estimador é sua variância: quantomenor é a variância, o estimador tem maior chance de gerar uma estimativa próxima aovalor real υ.

Se considerarmos todos os estimadores não-viesados de υ, o que possuir a menor vari-ância é chamado de Estimador Não-Viesado de Mínima Variância ou MVUE (MinimumVariance Unbiased Estimator). Esse estimador é o mais provável dentre todos os estima-dores a produzir a estimativa υ que seja próxima ao valor real υ.

Em alguns casos é necessário utilizar um estimador viesado. Nesses casos, o erroquadrático médio do estimador é um parâmetro importante. O erro quadrático médioou MSE (Mean Squared Error) de um estimador Υ é a esperança ao quadrado da diferençaentre Υ e υ.

MSE(Υ) = E[Υ − υ]2 (4.12)

O erro quadrático médio pode ser reescrito como a soma da variância do estimadormais o bias (a diferença entre a esperança do estimador E[Υ] e o valor real υ ) ao quadrado:

MSE(Υ) = V ar(Υ) + (bias)2 (4.13)

Muitas vezes utiliza-se um estimador viesado porque sua variância é significantementemenor que a variância de um MVUE.

Um estimador Υ é dito ótimo se seu erro quadrático médio é menor que qualqueroutro estimador para todos os valores de υ.

4.3 Função Objetivo

Como visto anteriormente, quer-se encontrar os parâmetros x0, y0, z0, a, b, c, ρ,ϕ e λ. Para tanto, é possível utilizar diversos métodos para encontrar as estimativasdos parâmetros. Como o campo B é conhecido, é possível calcular o valor do módulodo campo utilizando os parâmetros estimados e utilizar o erro quadrático médio comoindicador de quão boa é a estimativa dos parâmetros. Ou seja, dados os valores reaiscorrigidos mostrados anteriormente, é possível calcular o módulo do campo como:

B =√

u2x + u2

y + u2z (4.14)

CAPÍTULO 4. MODELO 38

Sendo ux, uy e uz valores em função dos parâmetros a serem estimados. Como o valorreal do módulo Bref é conhecido, o erro quadrático médio é:

MSE = (B − Bref )2 (4.15)

Assim, os métodos utilizados para encontrar os parâmetros devem minimizar o erroquadrático médio. Como esse erro é calculado para cada ponto medido, utiliza-se osomatório (que é uma operação que mantém a convexidade do problema) para contabilizartodos os erros para aquela estimativa, e compará-la com outra estimativa que possa serrealizada.

Desta forma, é possível definir o problema como um problema de otimização, sendosua função objetivo para N medidas realizadas:

minx0,y0,z0,a,b,c,ρ,θ,λ

F =N∑

k=1(√

(ukx)2 + (uk

y)2 + (ukz)2 − Bref )2 (4.16)

A Fig. 6 mostra o modelo em blocos do processo de estimação (LI; WANG; LIU,2006).

Figura 6 – Modelo da estimação de parâmetros. Fonte: Li et al. (2006)

Vários métodos para encontrar as estimativas são descritos no capítulo a seguir.

5 Autocalibração

5.1 Método da Mínima Variância

O método aplicado por Lötters et al. (1998) se baseia no fato de que - no caso de umacelerômetro uniaxial - a medida fornecida pelo sensor em uma situação estática mostra oângulo entre o eixo sensível do acelerômetro e a gravidade aplicada sobre ele. Neste caso,são considerados apenas os erros de offset e de fator de escala.

Esse método foi utilizado por Lötters et al. (1998) em aplicações médicas nas quais osacelerômetros seriam ligados ao corpo de uma pessoa, impedindo que fossem calibradosda maneira tradicional (explicada no capítulo 3).

Assim, o método requer que sejam identificados as medidas em que o sensor se encontraem situação estática ou quase-estática. Um instante quase-estático é um intervalo depontos em que a variância do módulo do vetor de aceleração tridimensional medido peloacelerômetro está abaixo de um valor que pode ser aceito como estático. O método aplicaum detector de instantes quase-estáticos que trabalha descartando as amostras para asquais o grau de movimento é maior que um limiar definido - neste caso, o limiar é 1g.

Após a passagem pelo detector de instantes quase-estáticos, o sinal é analisado peloestimador de parâmetros, responsável pela determinação dos parâmetros de erro (offset efator de escala) de cada eixo do sensor triaxial. A Fig. 7 mostra como todo o processo édado.

O detector de instante quase-estático é implementado se baseando no fato de que,quando não houver outras acelerações presentes no corpo, a única aceleração resultanteé a da gravidade. Pode-se dizer que o sensor está sob essa condição estática ou quase-

Figura 7 – Representação do sistema de calibração apresentado por Lötters (1998). Fonte:Santana, 2009

CAPÍTULO 5. AUTOCALIBRAÇÃO 40

estática quando os valores medidos não oscilam muito durante um determinado período,bem como o módulo do vetor resultante está abaixo do limiar de 1g.

Assim, para a implementação do detector de instante quase-estático, utiliza-se umfiltro passa-alta com frequência de corte de 0,5 Hz, um retificador e um filtro passa-baixacom frequência de corte de 0,5 Hz (LÖTTERS et al., 1998). A Eq. 5.1 mostra a sequênciaem que os filtros são aplicados.

detector = FPB(RET(FPA(α(t)))) (5.1)

O filtro passa-alta (FPA) tem a função de retirar o offset do valor medido. O retificador(RET) faz que o sinal tenha somente valores positivos, sendo mais fácil sua comparação. Jáo filtro passa-baixa (FPB) é responsável por suavizar o sinal de saída. O nível de tensãode saída do detector de instante quase-estático determina quanto movimento existe nosinal de entrada. Quando o sinal fica abaixo de um certo limiar, pode-se dizer que o sinalé quase-estático (LÖTTERS et al., 1998).

O modelo de representação da saída do sensor utilizado por Lötters et al. (1998) é omostrado no capítulo 4, sem o erro de desalinhamento entre os eixos. Lötters et al. (1998)utiliza um estimador da mínima variância linear sem ponto inicial. Seja h(u, p) a funçãoque define a saída do sensor, sendo u o campo real e p o vetor dos parâmetros a seremencontrados. O estimador é:

q = (BT C−1µ B)−1BT C−1

µ ξ (5.2)

Ce = (BT C−1µ B)−1 (5.3)

Sendo q o vetor que mostra a diferença entre o valor real e o valor estimado, ou seja:

q = p − q (5.4)

A matriz B é formada pela derivada parcial de h(u, p) em relação a cada parâmetrode p e ξ é um termo que compara a saída do valor medido com o estimado.

ξ = 1 − h(u, p) (5.5)

Cµ é a matriz de variância do ruído das medições. Já Ce é a matriz de erro geradopelo descasamento entre o valor real e o valor estimado dos parâmetros.

O método é recursivo, onde q é calculado de acordo com a Eq. 5.2 e, a seguir, o vetorp dos parâmetros é atualizado com o novo valor utilizando a Eq. 5.4.

O grande problema desse método é a necessidade de um ponto inicial de p. Casoesse ponto inicial não seja bem escolhido, ou seja, próximo do valor real, o método di-verge. Normalmente utiliza-se como ponto inicial os valores fornecidos pelos datasheetsdos sensores.

CAPÍTULO 5. AUTOCALIBRAÇÃO 41

Outro grande problema é a ausência do fator de erro do desalinhamento entre os eixos,que têm uma grande influência nos resultados, já que não se pode afirmar que os sensoressão construídos perfeitamente de forma que esse erro não exista.

Esse método foi aplicado por Santana (2009), que chegou à conclusão de que o ruídona saída do sensor tem um papel que não pode ser descartado ao se trabalhar com essemétodo. Outra observação feita foi a de que os valores iniciais escolhidos para utilizaçãono algoritmo têm muita influência na solução: se os valores iniciais forem muito diferentesdos valores reais, o estimador não converge.

Os problemas apresentados pelo método são críticos, sendo necessário encontrar alter-nativas.

5.2 Método de Mínima Variância com DesalinhamentoEntre Eixos

O método aplicado por Santana (2009) utiliza o mesmo estimador utilizado pelo mé-todo Lötters et al. (1998), mas considerando o erro de desalinhamento entre os eixos dosensor em tríade. Seja o campo medido u pelo sensor triaxial:

|u|2 = u2x + u2

y + u2z (5.6)

O valor medido de cada eixo u′x, u′

y, u′z, em função dos parâmetros de erro de offset,

fator de escala e desalinhamento entre os eixos:

ux = aux + x0 + vx (5.7)

uy = b(uy cos ρ + ux sin ρ) + y0 + vy (5.8)

uz = c(uz cos ϕ cos λ + uy sin λ cos ϕ + ux sin ϕ cos λ) + z0 + vz (5.9)

Assim, reescrevendo para o valor real:

ux = (ux − x0)a

(5.10)

uy = a(uy − y0) − b sin (ρ)(ux − x0)ab cos (ρ)

(5.11)

uz = ab cos (ρ)(uz − z0) − ac cos (ϕ) sin (λ)(uy − y0)abc cos (ρ) cos (ϕ) cos (λ)

+

bc[sin (ρ) cos (ϕ) sin (λ) − cos (ρ) sin (ϕ) cos (λ)](ux − x0)abc cos (ρ) cos (ϕ) cos (λ)

(5.12)

CAPÍTULO 5. AUTOCALIBRAÇÃO 42

As equações são resolvidas utilizando o estimador apresentado na seção anterior. Po-rém, os problemas de convergência devido ao valor inicial ainda persistem, sendo neces-sário escolher valores inicias bem próximos dos reais para a convergência do algoritmo.

5.3 Forma de Kalman

Utilizando as equações mostradas na seção anterior, Granziera Jr. et al. (2011) mos-traram que é possível aplicar a forma do Filtro de Kalman para resolver o problemarecursivamente. Outra vantagem é que não é necessário recolher todas as amostras paraque o estimador processe: o processamento pode ser realizado após cada amostragem. Aforma do estimador de Kalman é mostrada a seguir:

Ki = Pi−1HTi (HiPi−1HT

i + 1)−1 (5.13)

Pi = (I − KiHi)Pi−1 (5.14)

x = xi−1 + Ki(yi − Hixi−1) (5.15)

onde os vetores H são as linhas da matriz X, como pode ser visto na Eq. 5.16. Ovetor y é o vetor do valor de campo, que é constante e igual a 1. A matriz K é o ganhode Kalman. A matriz P é a covariância estimada e o vetor x é o estado estimado.

u2

x1u2

z1

ux1uy1u2

z1· · · 1

u2z1... ... ...

u2xn

u2zn

uxnuyn

u2zn

· · · 1u2

zn

=

H1...

Hn

(5.16)

É necessário que o algoritmo seja inicializado com valores inerciais para que possaprocessar recursivamente. As estimativas iniciais para P0 e x0 são mostradas a seguir:

P0 =

[HT1 · · · HT

9

] H1...

H9

−1

x0 = P0[HT

1 · · · HT9

] 1...1

(5.17)

O problema desse método é o uso de inversas e multiplicação de matrizes, que são dealto custo computacional em sistemas embarcados. Outro problema é o possível apareci-mento de valores muito grandes ou não-numéricos na formação das colunas da matriz X,bem como possíveis singularidades nessa matriz, o que exige que os dados sejam filtrados.

5.4 Outros métodos

Outros métodos e algoritmos também são utilizados. Entre eles, Camps, Harasse eMonin (2009) usa o algoritmo Levenberg-Marquardt modificado, com condições iniciais

CAPÍTULO 5. AUTOCALIBRAÇÃO 43

extraídas dos datasheets dos sensores. O problema desse método está no uso de gradientesda função objetivo, e o uso de algoritmo linear para um problema não-linear. O problemade convergência que ocorre nos métodos de Lötters e Santana também ocorre nesse métodopor ser linear.

Frosio, Pedersini e Borghese (2009) utiliza o Método de Newton dos Mínimos Quadra-dos para a estimação dos parâmetros. Já Crassidis, Lai e Harman (2005) utiliza o mesmométodo de Mínimos Quadrados, bem como o Filtro de Kalman estendido, e o UnscentedFilter, com a conclusão de que esse último é melhor, mas possui alto custo computacional.Beravs et al. (2014) também usa o filtro de Kalman extendido, porém utiliza uma bobinade Helmholtz para gerar o campo magnético ao qual o magnetômetro é submetido paracalibração.

Devido aos problemas de convergência dos métodos lineares, e aos problemas de altocusto computacional devido à matrizes nos métodos que usam Filtro de Kalman, se faznecessário buscar um método que seja de baixo custo computacional e que se adequeà não-linearidade do problema, bem como seja robusto em situações de ruído. Assim,serão analisados algoritmos heurísticos para que sejam comparados com os métodos aquimostrados, de forma a verificar se são mais adequados ao problema estudado.

6 Algoritmos HeurísticosNesse capítulo serão descritos os algoritmos que serão utilizados para a estimação dos

parâmetros dos sensores. Os algoritmos apresentados utilizam heurística para encontraros parâmetros, e não exigem que o problema seja convexo, porém não garantem umasolução ótima, gerando uma solução quase-ótima.

Os algoritmos que serão utilizados são Algoritmos Evolucionários (EA - EvolutionaryAlgorithms), que são métodos estocásticos de busca que imitam o comportamento naturalda evolução e/ou comportamento social das espécies (ELBELTAGI; HEGAZY; GRIER-SON, 2005). Exemplos são: como as formigas encontram o menor caminho para umafonte de comida, ou como os pássaros encontram o destino durante sua migração. Essesalgoritmos foram desenvolvidos como alternativas à programação linear e à programaçãodinâmica, que usualmente falham em problemas NP-hard com várias variáveis e funçõesobjetivo não lineares.

Para imitar o comportamento das espécies em que os algoritmos se baseiam, váriospesquisadores desenvolveram modelos e sistemas computacionais que buscam soluçõesrápidas e robustas para problemas de otimização complexos. O primeiro algoritmo intro-duzido na literatura foi o Algoritmo Genético (GA - Genetic Algorithm). Esse algoritmofoi desenvolvido baseado no principio de Darwin de sobrevivência do melhor adaptado e noprocesso natural de evolução através da reprodução. O GA tem a habilidade demonstradade chegar a soluções quase-ótimas em problemas grandes, sendo utilizado em diversas apli-cações. Apesar dos benefícios, a técnica GA requer um longo tempo de processamentopara que a solução quase-ótima evolua.

Em uma tentativa de diminuir o tempo de processamento e aumentar a qualidade dassoluções, particularmente evitar ficar preso em ótimos locais, outros algoritmos evolutivosforam desenvolvidos. Entre eles, estão: Otimização por enxame de partículas (PSO -Particle Swarm Optimization), Otimização por Colônia de Formigas (ACO - Ant-ColonyOptimization), Algoritmo Memético, entre outros.

Nesse trabalho, serão apresentados alguns algoritmos evolutivos, bem como seu pseudo-código e sua implementação. Os parâmetros utilizados serão indicados, muitas vezesseguindo o que indica a literatura.

6.1 Genetic Algorithm - GA

O algoritmo genético (GA) é inspirado na melhora do sistema biológico através daevolução. O GA permite que uma população composta de vários indivíduos evoluam deacordo com regras de seleção que maximizam a aptidão, ou seja, minimizam a funçãocusto. A solução para o problema é representada na forma de um vetor, chamada de

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 45

cromossomo, que consiste em um grupo de elementos chamados genes e que carregam osvalores dos parâmetros a serem encontrados (HAUPT; HAUPT, 1998).

O GA é inicializado com uma população (cromossomos) aleatórios. O valor da funçãocusto (aptidão) para cada cromossomo é determinado. Para simular o processo natural desobrevivência do mais apto, os melhores cromossomos trocam informações (pelos processosde crossover ou mutação) para produzir cromossomos filhos. Esses cromossomos filhossão avaliados e utilizados para evoluir a população se forem melhores que os membrosmais fracos da população. Esse processo é repetido por várias iterações para chegar a umvalor quase-ótimo de solução.

O fluxograma do algoritmo é mostrado na Fig. 8.

6.1.1 Cromossomo

O cromossomo é definido como um vetor de valores variáveis que serão otimizados(HAUPT; HAUPT, 1998). Se o cromossomo possui Nvar variáveis – ou seja, o problemaé Nvar dimensional – dadas por pi, então o cromossomo é escrito como:

cromossomo = [p1, p2, ..., pNvar ] (6.1)

Cada cromossomo tem um valor de aptidão que é calculado através da função custo,que neste trabalho está descrita na Eq. 4.16. Assim:

aptidao = f(cromossomo) = f(p1, p2, ..., pNvar) (6.2)

A codificação dos valores de um cromossomo podem ser de dois tipos: binária oucontínua. Neste trabalho, será utilizada a codificação contínua, pois os parâmetros aserem encontrados são distribuídos em um intervalo contínuo.

6.1.2 População Inicial

Para a inicialização do GA, é necessário definir uma população inicial que será evoluída.Essa população tem tamanho N cromossomos, sendo a matriz de todos os cromossomosNxNvar. Os valores iniciais para cada parâmetro de cada cromossomo são aleatórios,dados por:

p = (pmax − pmin)rand(.) + pmin (6.3)

onde p é o valor do parâmetro, pmax e pmin são os valores máximo e mínimo que oparâmetro pode alcançar e rand(.) é um número aleatório de distribuição uniforme entre0 e 1.

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 46

Figura 8 – Fluxograma do Algoritmo Genético. Fonte: Autora

6.1.3 Seleção Natural

A seleção natural é o processo de decisão de quais cromossomos da população sãoaptos o suficiente para sobreviver e possivelmente gerar filhos na próxima geração. Oscromossomos são ordenados de menor para maior valor de aptidão (função custo). Desses,apenas uma parte Nkeep (do topo) sobrevive e o restante é eliminado (morre) para darlugar aos cromossomos a serem gerados.

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 47

6.1.4 Reprodução

Os cromossomos sobreviventes formam o grupo de onde serão escolhidos pais e mãesda próxima geração. Existem várias formas de escolher o pai e a mãe para geração defilhos. Neste trabalho, para reduzir a complexidade do algoritmo, o método utilizado éo de escolha aleatória: dois cromossomos são escolhidos aleatoriamente e cruzados paragerar o filho.

O filho é uma combinação dos cromossomos pais. Existem vários métodos para de-terminar os valores de parâmetros do cromossomo filho. Um deles é selecionar um pontode crossover e as variáveis antes desse ponto são iguais as dos pais e depois do ponto sãoiguais à mãe. Isso pode ser visto na Fig. 9.

Figura 9 – Operação de crossover para geração de um filho. Fonte: Elbeltagi et al., 2005

O método escolhido neste trabalho é apenas misturar os cromossomos pai e mãe. Sejapa o parâmetro do cromossomo pai e pb o parâmetro do cromossomo mãe. O parâmetrodo cromossomo filho é dado por:

p = βpa + (1 − β)pb (6.4)

onde β é um valor aleatório distribuído uniformemente entre 0 e 1.

6.1.5 Mutação

O processo de mutação tem como objetivo diversificar as soluções do GA, de formaque o algoritmo não fique preso em um mínimo local. Assim, é escolhida uma taxa demutação para a população. Essa taxa é então multiplicada pelo número total de variáveisque podem sofrer mutação na população, dando um número m de mutações. A seguir,um cromossomo é escolhido aleatoriamente, bem como um de seus parâmetros é escolhidotambém aleatoriamente, e o valor desse parâmetro é trocado por um valor aleatório dentrodos limites de valores que o parâmetro pode alcançar. Esse processo é repetido até que onúmero m de mutações seja atingido.

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 48

6.1.6 Parâmetros de entrada

Quatro parâmetros afetam a performance do GA: tamanho da população, número degerações, taxa de seleção, e taxa de mutação. Um tamanho de população grande e umgrande número de gerações aumentam a probabilidade de encontrar uma solução globalótima, porém aumentam consideravelmente o tempo de processamento.

6.2 Particle Swarm Optimization - PSO

O PSO é um algoritmo estocástico de otimização global, baseado em inteligênciaartificial, desenvolvido por Kennedy e Eberhart (1995). Cada partícula tem uma funçãosimples, que em conjunto produzem um comportamento complexo. Sua performancenão depende dos valores iniciais dados às partículas, e é de fácil implementação pois nãodepende da derivação de gradiente da função objetivo para ser aplicado. Cada partículaé uma possível solução no espaço de busca de um problema de otimização e é inicializadacom posição e velocidade aleatórios. A cada passo, a patícula se move pelo espaço de buscade acordo com a sua melhor posição já registrada chamada Pbest e a melhor posição járegistrada pelo enxame, Gbest. Todas as soluções são atraídas aos mínimos por umafunção custo.

Figura 10 – Demonstração visual do PSO. Fonte: Ali et al. (2012)

Assim, em um espaço N -dimensional, com m partículas, no passo k, a posição e avelocidade da partícula i é:

Xi(k) = [xi1(k), xi2(k), ..., xiN(k)] (6.5)

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 49

Vi(k) = [vi1(k), vi2(k), ..., viN(k)] (6.6)

O vetor de melhor posição de cada partícula no passo k é:

Pbesti(k) = [pi1(k), pi2(k), ..., piN(k)] (6.7)

E o vetor de melhor posição do enxame já alcançado no passo k é:

Gbest(k) = [g1(k), g2(k), ..., gN(k)] (6.8)

Em cada passo, as partículas atualizam suas velocidades de acordo com:

Vi(k + 1) = wVi(k) + c1rand(.)[Pbesti(k) − Xi(k)] + c2rand(.)[Gbest(k) − Xi(k)] (6.9)

E as posições na forma:

Xi(k + 1) = Xi(k) + Vi(k + 1) (6.10)

A variável w é o momento de inércia que controla a influência da velocidade anteriorna atual. As constantes c1 e c2 controlam o peso da experiência pessoal e social, respecti-vamente. São essas constantes que puxam o movimento das partículas para as melhoresposições (mínimos da função custo). A função rand(.) gera valores aleatórios uniforme-mente distribuídos no intervalo (0,1), utilizados para que haja diversidade no enxame. Avelocidade de cada partícula é limitada no intervalo (−Vmax, Vmax), que indica o maiorpasso que a partícula pode dar, ou seja, determina a resolução de busca. Se Vmax é muitogrande, as partículas podem passar por boas soluções sem registrá-las. Já se Vmax é muitopequeno, a busca fica muito limitada à regiões ótimas locais, e podem não encontrar amelhor posição do espaço de busca (ótimo global). Eberhart e Shi (2001) sugere que, paraa maioria das aplicações, c1 e c2 sejam 2 e que Vmax seja 10% dos valores possíveis davariável a ser encontrada. A variável w faz o balanço entre a busca global e a busca local.Como inicialmente é desejado que as partículas se movam para a melhor região e entãoprocurem o melhor valor naquela região, w geralmente é atualizado a cada passo por:

w(k) = wmax − (wmax − wmin)kK

(6.11)

onde k é o índice da iteração atual e K é o número máximo de iterações que o algoritmopode realizar.

Os passos de aplicação do algoritmo é descrito a seguir:

1. Inicializar os parâmetros do algoritmo (número de partículas m, wmax e wmin , kmax

e a dimensão N das partículas).

2. Para cada partícula i, inicializá-la com posição e velocidade aleatórias. EscolherPbest como a posição inicial. Calcular o valor da função custo (aptidão) para cadapartícula e escolher a melhor posição entre elas como Gbest. Atribuir k = 0.

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 50

3. Atualizar o valor da velocidade da partícula, limitando em Vmax . Atualizar a posiçãoda partícula de acordo com a velocidade, também limitando dentro do espaço debusca.

4. Para cada partícula, calcular o novo valor de aptidão. Se esse valor for menor que ovalor de Pbest, substituir Pbest pela nova posição. Caso contrário, manter Pbest.

5. Buscar o menor valor de aptidão entre os Pbest e compará-lo com o valor de Gbest.Caso seja menor, atualizar Gbest pela posição de menor valor de aptidão. Casocontrário, manter Gbest.

6. Ir para a próxima iteração k = k + 1. Caso k > kmax ou o valor de aptidão de Gbest

seja menor que um limite, terminar o processo com a saída sendo Gbest. Casocontrário, ir ao passo 3.

Para evitar que o algoritmo encontre um mínimo local que não seja o mínimo global,ajustou-se o valor de Vmax empiricamente. Além disso, os valores iniciais foram geradosem um espaço de estados reduzido .

6.3 Outros Trabalhos

Alguns trabalhos já utilizaram a heurística para a estimação de parâmetros de sensoresinerciais. Ali et al. (2012) utiliza o Particle Swarm Optimization para calibração demagnetômetros. Uma técnica de seleção dos dados foi utilizada, chamada pelos autoresde Range of Interest Selection Technique ou Técnica da Seleção do Intervalo de Interesse,onde apenas a parte dos dados mais eficaz para a calibração é selecionada. Essa técnicabusca pela maior variação no campo magnético medido para cada eixo e seleciona ointervalo entre os extremos.

Essa seleção faz que o algoritmo fique mais rápido, diminuindo o tempo de processa-mento para 40% do tempo gasto para todos os dados. (ALI et al., 2012) Essa detecçãoé implementada para melhorar os resultados da calibração através da distinção entre omáximo e mínimo do sinal que surge devido à rotação e o ruído.

Outra técnica empregada no mesmo trabalho é a adição de mais critérios de paradapara o PSO:

• Número máximo de iterações.

• Alcançar um valor mínimo de erro.

• A mudança nos parâmetros estimados fica menor que um valor de limiar para ite-rações consecutivas.

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 51

Figura 11 – Intervalo de dados selecionados pela técnica descrita. Fonte: Ali et al. (2012)

O uso desses critérios de parada diminuem o tempo consumido pelo algoritmo para35% do tempo consumido pelo PSO básico.

Li, Wang e Liu (2006) mostraram uma aplicação de um algoritmo híbrido de PSO comSA (Simulated Annealing). Um dos problemas do PSO é a convergência prematura, poisas partículas têm a tendencia de voar para a melhor solução atual que pode ser ótimolocal ou uma solução próxima ao ótimo local, fazendo que as partículas se concentrem emuma região pequena e a habilidade de exploração global seja diminuída. As partículasficam então "presas"no mínimo local.

O SA é um método de busca estocástico com uma propriedade única de pular en-tre soluções, motivada pela semelhança entre o processo de recozimento de sólidos e osproblemas de otimização. Nesse algoritmo, a solução é escolhida probabilisticamente, eo parâmetro de temperatura controla essa probabilidade: quanto maior a temperatura,maior a probabilidade de “pular” para outra solução.

O trabalho de Li, Wang e Liu (2006) utiliza o SA para selecionar a melhor posiçãoglobal entre todas as melhores posições de cada partícula. A temperatura, critério quecontrola a probabilidade que uma solução pior seja escolhida, é maior no início do processo,de forma que todas as melhores posições tem a mesma probabilidade de ser escolhida comoa melhor global. Isso faz que o algoritmo tenha maior exploração global. Conforme atemperatura decresce - ou seja, quanto mais iterações passam, a probabilidade de escolhersoluções diferentes da melhor global diminui, e a busca passa a ser local. Isso cria umbalanço entre busca global e busca local.

Pang et al. (2013) utiliza uma variação do GA, o Differential Evolution (DE). Essetrabalho utiliza o erro RMS (Root Mean Square) entre o valor do campo real e o valorestimado como método de comparação entre outros métodos aplicados. Já ??) utilizamuma versão modificada do GA, onde a probabilidade de crossover e de mutação não é

CAPÍTULO 6. ALGORITMOS HEURÍSTICOS 52

estática, é dinâmica em função do valor de aptidão dos cromossomos escolhidos.Wu et al. (2013) aplicou com sucesso o PSO, bem como um método de de transfor-

mação da função objetivo que remove os mínimos locais, mas preserva o mínimo global.Isso remove o problema que o PSO pode encontrar de ficar preso em um mínimo local.

7 MetodologiaEsse capítulo irá descrever a metodologia utilizada para geração de dados aos quais

serão aplicados os algoritmos GA e PSO e o desempenho de cada um será avaliado emfunção do tempo de execução e precisão dos parâmetros estimados pela função custo daEq. 4.16.

7.1 Simulação de dados

Os dados de saída dos sensores foram simulados através de um modelo em Simulinkbaseado na integração da equação de Euler e da equação de cinemática do quatérnion. AFig. 12 mostra o diagrama de blocos do sistema implementado.

Figura 12 – Modelo em Simulink para simulação de sensores.

Os dados de um perfil de torque e da matriz de inércia de um corpo são utilizados comoentrada na equação de Euler, que posteriormente é integrada dando origem a velocidadeangular do movimento. Esta segue para a equação de cinemática do quatérnion, queposteriormente é integrada dando origem ao quatérnion. O quatérnion é, então, convertidopara uma matriz de rotação e esta roda o vetor de referência. Esse vetor é, em seguida,decomposto nos eixos da tríade. Finalmente nestes dados são aplicados o modelo do sensora ser simulado, considerando o efeito de desalinhamento entre eixos, o fator de escala, obias e também o ruído.

CAPÍTULO 7. METODOLOGIA 54

7.1.1 Gerador de Movimentos

7.1.1.1 Cálculo de velocidade angular

Para um corpo rígido, assumindo que este se encontra em repouso, são necessárias asseguintes informações de entrada para o cálculo do vetor de velocidade angular:

• A matriz de inércia do corpo: [Ir] = [Ix Iy Iz].

• Uma sequência de torques aplicados: m = [Mx My Mz].

Esses dois itens podem ser relacionados com a velocidade angular de um corpo atravésdas equações de momento de Euler, mostradas a seguir:

Mx = Ixωx + ωyωz(Iz − Iy) (7.1)

My = Iyωy + ωxωz(Ix − Iz) (7.2)

Mz = Izωz + ωxωy(Ix − Iy) (7.3)

Com o bloco Integrator do Simulink, as equações de momento de Euler são integradassimultaneamente para encontrar a derivada de ω, conforme as equações a seguir:

ωx = [Mx − ωyωz(Iz − Iy)]/Ix (7.4)

ωy = [My − ωxωz(Ix − Iz)]/Iy (7.5)

ωz = [Mz − ωxωy(Ix − Iy)]/Iz (7.6)

Obtendo-se o valor da derivada, é possível realizar a integração com condições iniciaisnulas e encontrar a velocidade angular do corpo. A composição de blocos que realiza esseprocesso é mostrada na figura 13.

Figura 13 – Modelo em Simulink para cálculo da velocidade angular ω de um corpo.

CAPÍTULO 7. METODOLOGIA 55

7.1.1.2 Cálculo do quatérnion

Com a velocidade angular do corpo ω, encontra-se a derivada do quatérnion de atitudea partir da equação de dinâmica do quatérnion (Eq.7.7). Obtém-se, então, o quatérnionatravés de um bloco integrador, cuja componente inicial é um quatérnion unitário. Osblocos responsáveis por esse cálculo são mostrados na figura 14.

˙q = 12

Ω′q (7.7)

onde Ω′ é a matriz anti-simétrica definida na equação 7.8.

[Ω′(ω)] =

0 ωz −ωy ωx

−ωz 0 ωx ωy

ωy −ωx 0 ωz

−ωx −ωy −ωz 0

(7.8)

Figura 14 – Modelo em Simulink para a obtenção do quatérnion.

7.1.2 Simulação das medidas dos sensores

Dado o quatérnion da atitude do corpo, é possível obter o vetor que corresponda àsmedidas de um acelerômetro ou magnetômetro através da rotação do quatérnion para umvetor de referência, de acordo com a equação 7.9. O Simulink possui um bloco específicopara essa operação, chamado Quaternion Rotation. Os blocos são mostrados na figura15.

Lq(v) = [Q] ∗ v =

2q2

0 + 2q21 − 1 2q1q2 − 2q0q3 2q1q3 + 2q0q2

2q1q2 + 2q0q3 2q20 + 2q2

2 − 1 2q2q3 − 2q0q1

2q1q3 − 2q0q2 2q2q3 + 2q0q1 2q20 + 2q−

3 1

v1

v2

v3

(7.9)

Essa simulação resulta em valores perfeitos dos sensores, sendo necessário adicionaros erros e ruídos que são encontrados nos sensores reais.

CAPÍTULO 7. METODOLOGIA 56

Figura 15 – Blocos para conversão de um quatérnion em medida de sensor a partir dedada referência.

7.1.3 Adição de erros aos sensores simulados

O modelo de erros utilizado é o mesmo descrito nos capítulos 3 e 4. O bloco responsávelpor adicionar os erros à saída dos sensores simulados está na figura 16.

Figura 16 – Blocos para adição de erros nos sensores simulados.

7.2 Dados Coletados por Sensores Embarcados

Para a calibração de sensores reais, foram utilizados os sensores presentes na Experi-ência MEMS (BATISTA et al., 2014). Esta possui um conjunto de hardware formado porquatro placa de sensores, posicionadas em uma geometria pré-determinada. Cada umadestas placas possuem um acelerômetro e um magnetômetro MEMS de três eixos. A Fig.17 mostra uma imagem do modelo de engenharia da experiência e os sensores presentes emcada uma das placas. O acelerômetro é um LIS331HH, da empresa STMicroelectronics,enquanto o magnetômetro utilizado é o HMC5883L, da Honeywell. Ambos são sensoresde baixo custo.

CAPÍTULO 7. METODOLOGIA 57

Figura 17 – Experimento MEMS. Fonte: Batista et al., 2014

O objetivo desse trabalho é evitar o uso de equipamentos especiais para a calibraçãodos sensores. Assim, a experiência foi rotacionada lentamente de maneira aleatória emum ambiente com poucas restrições. Os movimentos bruscos devem ser evitados para quea única saída seja a aceleração da gravidade. Para os magnetômetros, o único cuidado éevitar a proximidade a materiais ferromagnéticos.

7.3 Algoritmos utilizados

Foram escolhidos dois algoritmos para serem comparados nesse trabalho: GA e PSO.A escolha desses algoritmos se deu por serem dois tipos diferentes: genético, no casodo GA, e social, no caso do PSO. Os códigos em MATLAB dos algoritmos podem serencontrados nos apêndices desse trabalho. O código do GA utilizado foi baseado no GAcontínuo mostrado em Haupt e Haupt (1998).

7.4 Otimização dos parâmetros de ajuste dos algorit-mos

Cada um dos algoritmos descritos no capítulo anterior possui parâmetros de entradapróprios. Por exemplo, no caso do PSO, os parâmetros são: número de partículas m, ainércia w, os coeficientes de busca local e global c1 e c2, e a velocidade máxima que apartícula pode atingir vmax. Já para o GA, esses parâmetros são o tamanho da população(número de cromossomos, ou soluções), o número de cromossomos que são mantidos poriteração e a taxa de mutação. Os valores que esses parâmetros recebem podem influenciardrasticamente a performance do algoritmo. A literatura apresenta alguns valores padrão

CAPÍTULO 7. METODOLOGIA 58

para esses parâmetros. Porém, eles podem ser diferentes para cada problema. Assim, énecessário fazer uma análise para o problema estudado, de forma a encontrar os parâme-tros que melhorem tanto a precisão da resposta do algoritmo, bem como sua velocidadede convergência.

De forma a escolher os melhores valores para esses parâmetros, é possível realizar umprocedimento parecido com o descrito em Filho, Souza e Abrão (2012). A otimizaçãodos parâmetros é feita dando valores iniciais para os parâmetros. Se o algoritmo possuiN parâmetros de entrada, N − 1 parâmetros são mantidos fixos e o outro é variado,sendo possível obter uma curva de performance em função do parâmetro. Ao repetir oprocedimento para todos os parâmetros, é possível atualizá-los, e repetir o procedimentopara um intervalo mais preciso em torno do ponto encontrado. Os valores obtidos nessesegundo passo são assumidos como ótimos para o algoritmo e o problema em questão(FILHO; SOUZA; ABRÃO, 2012).

O procedimento descrito acima foi realizado utilizando os dados simulados geradospelo Simulink, pois os parâmetros dos sensores são conhecidos. Como os algoritmos nãosão determinísticos, suas respostas podem ser diferentes a cada execução. Assim, osalgoritmos foram executados 10 vezes para cada valor de parâmetro, de forma a encontrarum valor médio de performance. Para avaliar a performance, dois critérios de paradadiferentes foram utilizados: número de iterações máximo, fixado em 2000 para ambosalgoritmos utilizados; e convergência, onde o algoritmo para se o valor percentual deaptidão do melhor resultado encontrado não se alterar mais que 0,1% e o valor de aptidãofor menor que 0,01.

Assim, o número de iterações que o algoritmo leva para convergir foi utilizado comocritério de performance. Outro critério considerado foi o erro quadrático médio dos parâ-metros de saída em relação aos valores conhecidos da simulação:

error = 19

9∑i=1

(pi − pi

pi

)2

(7.10)

sendo pi o valor de cada parâmetro que se deseja encontrar, onde o valor com chapéu éo valor obtido pelo algoritmo, e o outro é o valor conhecido utilizado para gerar os dados.É importante lembrar que foi adicionado um pequeno ruído (gaussiano) nos dados geradospela simulação, e portanto esse valor de erro encontrado através da Eq. 7.10 nunca serázero.

Os resultados desse estudo dos parâmetros de ajuste são apresentados no capítulo aseguir.

CAPÍTULO 7. METODOLOGIA 59

7.5 Simulações

As simulações e aplicações dos algoritmos heurísticos nos dados reais e simulados foifeita no MATLAB, em um computador com as seguintes especificações:

• Processador: Intel Core i7-4700MQ CPU @ 2,40GHz

• RAM: 8 GB

• OS: Windows 10 64-bit

7.6 Aplicação em Plataforma Embarcada

Após os experimentos realizados em MATLAB, o código do PSO foi escrito em Ce executado na plataforma embarcada MEMS com processador ARM Cortex M3 de 32bits (STM32F217IG) da empresa STMicroelectronics. Para maiores informações sobre aplataforma embarcada, ver Batista et al. (2014).

8 Parâmetros de AjusteNeste capítulo serão apresentados os resultados do estudo de desempenho dos algorit-

mos em função de seus parâmetros de ajuste. Para cada parâmetro estudado, foram feitascalibrações com dois tipos de critério de parada: o número de iterações, fixado em 2000, ea convergência, como explicado no capítulo anterior. Os gráficos apresentados mostram,além da comparação do erro para cada valor de parâmetro, a evolução da resposta doalgoritmo em função das iterações.

8.1 Análise dos parâmetros de ajuste para o PSO

Para os estudos dos parâmetros de ajuste do PSO, cada parâmetro é variado enquantoo restante é mantido constante. Os que são mantidos constantes têm os valores mostradosna Tab. 1, escolhidos de acordo com o que é indicado na literatura do problema.

Tabela 1 – Parâmetros de ajuste iniciais para o PSO.

Parâmetro Valorvmax 10−2

c1 2c2 2

wmax 1,2wmin 0,6

N 10

8.1.1 Estudo de vmax

Esse parâmetro corresponde à maior velocidade que a partícula pode atingir em cadaiteração.

8.1.1.1 Critério de parada: número de iterações

Tabela 2 – Erro quadrático médio dos parâmetros estimados em função do valor de vmax.

vmax Erro quadrático médio1 383,61012345

0,1 0,208767760,01 0,089926480,001 2,42867413

CAPÍTULO 8. PARÂMETROS DE AJUSTE 61

Figura 18 – Erro quadrático médio dos parâmetros estimados em função do valor de vmax.

10−3

10−2

10−1

1000

100

200

300

400

Parâmetro de entrada vmax

Err

o pe

rcen

tual

dos

par

âmet

ros

A Tab. 2 mostra o valor do erro quadrático médio dos parâmetros estimados em funçãodo valor de vmax utilizado para a execução do algoritmo. O gráfico do erro quadráticomédio pode ser visto na Fig. 18.

É possível ver que o algoritmo divergiu em algumas execuções para vmax = 1. Paravmax = 10−3 o algoritmo não divergiu, mas não alcançou um bom resultado, ficando comum valor de erro duas vezes maior que para os valores restantes de vmax.

Figura 19 – Evolução do algoritmo para vmax = 100

(a) Evolução do parâmetro a.

0 500 1000 1500 20000.8

0.9

1

1.1

1.2

1.3

1.4

1.5Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

10

20

30

40

50

60

70

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 62

Figura 20 – Evolução do algoritmo para vmax = 10−1

(a) Evolução do parâmetro a.

0 500 1000 1500 20001

1.2

1.4

1.6

1.8Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

50

100

150

200

250

Iteração

Fun

ção

de c

usto

Figura 21 – Evolução do algoritmo para vmax = 10−2

(a) Evolução do parâmetro a.

0 500 1000 1500 20000.95

1

1.05

1.1

1.15

1.2

1.25Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

50

100

150

200

250

Iteração

Fun

ção

de c

usto

Figura 22 – Evolução do algoritmo para vmax = 10−3

(a) Evolução do parâmetro a.

0 500 1000 1500 2000

0.8

1

1.2

1.4

1.6Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

100

200

300

400

500

Iteração

Fun

ção

de c

usto

As Fig. 19 , 20, 21e 22 apresentam a convergência do parâmetro a e o valor de aptidãopara a melhor resposta a cada iteração do algoritmo para cada valor de vmax estudado.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 63

É possível ver que, se o valor de vmax for muito grande, o algoritmo tem uma grandechance de divergir, como pode ser visto no valor de erro quadrático médio encontradopara vmax = 1. Os gráficos mostrados para esse valor são de uma das execuções doalgoritmo, porém algumas execuções divergiram do valor real, gerando um erro médiogrande.

Também é possível concluir que o algoritmo demora muito para convergir se o valor devmax for muito pequeno, pois o erro quadrático médio fica em torno de 2 para vmax = 0, 001,enquanto os outros ficam abaixo de 1.

Assim, o valor de vmax deve ser escolhido de forma a não ser tão grande nem tãopequeno. Para essa condição, o melhor valor de vmax é 0,01.

8.1.1.2 Critério de parada: convergência

Tabela 3 – Erro quadrático médio dos parâmetros estimados em função do valor de vmax.

vmax Número de iterações Erro quadrático médio1 1993,1 246,35895227

0,1 1694 155,017572910,01 694,8 0,178979860,001 1529,8 4,67776855

Figura 23 – Erro quadrático médio dos parâmetros estimados em função do valor de vmax.

10−3

10−2

10−1

1000

50

100

150

200

250

Parâmetro de entrada vmax

Err

o do

s pa

râm

etro

s

A Tab. 3 mostra o valor do erro quadrático médio dos parâmetros estimados e onúmero médio de iterações em função do valor de vmax utilizado para a execução doalgoritmo. O gráfico do erro quadrático médio pode ser visto na Fig. 23.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 64

Aqui é possível ver que o PSO diverge para vmax = 1 e vmax = 10−1, pois o valorde erro quadrático médio encontrado é muito alto. Para vmax = 10−3, o algoritmo nãodiverge, mas também não converge para o valor correto, ficando com um erro em tornode 4,7.

Figura 24 – Número de iterações do algoritmo em função do valor de vmax.

10−3

10−2

10−1

100600

800

1000

1200

1400

1600

1800

2000

Parâmetro de entrada vmax

Núm

ero

de it

eraç

ões

A Fig. 24 mostra o número de iterações que o PSO levou para chegar ao resultadopara cada valor de vmax. Vê-se que somente para vmax = 10−2 o número de iterações émenor.

Figura 25 – Evolução do algoritmo para vmax = 100

(a) Evolução do parâmetro a.

500 1000 1500 2000

2

4

6

8

10

12

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

100

200

300

400

500

600

700

800

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 65

Figura 26 – Evolução do algoritmo para vmax = 10−1

(a) Evolução do parâmetro a.

200 400 600 800 1000 1200 1400 16000.9

1

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000 1200 1400 1600

50

100

150

200

250

Iteração

Fun

ção

de c

usto

Figura 27 – Evolução do algoritmo para vmax = 10−2

(a) Evolução do parâmetro a.

100 200 300 400 500 600 7001

1.1

1.2

1.3

1.4

1.5

1.6

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

Figura 28 – Evolução do algoritmo para vmax = 10−3

(a) Evolução do parâmetro a.

200 400 600 800 1000 1200 1400 1600

1.05

1.1

1.15

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000 1200 1400 1600

20

40

60

80

100

120

140

Iteração

Fun

ção

de c

usto

As Fig. 25, 26, 26, 26 mostram o comportamento da melhor resposta do algoritmo emfunção da iteração para cada valor de vmax analisado.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 66

Aqui vê-se que, novamente, o melhor valor para vmax é 0,01. Os comentários parao caso anterior são válidos nesta situação: um valor muito grande de vmax faz que oalgoritmo divirja – como é possível ver na Fig. 25 – enquanto um valor muito pequenofaz que o algoritmo demore mais para convergir, como é possível ver na Fig. 28.

8.1.2 Estudo de c1

c1 é o parâmetro de peso da busca local - pois é peso da melhor posição da partículano cálculo da velocidade. Quanto maior o seu valor, o algoritmo dá mais importância àbusca local de cada partícula.

8.1.2.1 Critério de parada: número de iterações

Tabela 4 – Erro quadrático médio dos parâmetros estimados em função do valor de c1.

c1 Erro quadrático médio0,5 0,093661121,0 0,092723671,5 0,091991722,0 0,090635852,5 0,089315823,0 0,09076752

Figura 29 – Erro quadrático médio dos parâmetros estimados em função do valor de c1.

0.5 1 1.5 2 2.5 30.088

0.09

0.092

0.094

0.096

Parâmetro de entrada c1

Err

o pe

rcen

tual

dos

par

âmet

ros

A Tab. 4 mostra o valor do erro quadrático médio dos parâmetros estimados em funçãodo valor de c1 utilizado para a execução do algoritmo. O gráfico do erro quadrático médio

CAPÍTULO 8. PARÂMETROS DE AJUSTE 67

pode ser visto na Fig. 29. É possível verificar que os erros ficaram muito próximos paratodos os valores de c1, sendo 2,5 o valor que gerou o menor erro.

Figura 30 – Evolução do algoritmo para c1 = 0, 5

(a) Evolução do parâmetro a.

0 500 1000 1500 20000.8

0.9

1

1.1

1.2

1.3Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

50

100

150

200

250

300

IteraçãoF

unçã

o de

cus

to

Figura 31 – Evolução do algoritmo para c1 = 1, 0

(a) Evolução do parâmetro a.

0 500 1000 1500 20000.9

1

1.1

1.2

1.3

1.4

1.5Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

10

20

30

40

50

60

70

Iteração

Fun

ção

de c

usto

Figura 32 – Evolução do algoritmo para c1 = 1, 5

(a) Evolução do parâmetro a.

0 500 1000 1500 20000.9

1

1.1

1.2

1.3

1.4Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

100

200

300

400

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 68

Figura 33 – Evolução do algoritmo para c1 = 2, 0

(a) Evolução do parâmetro a.

0 500 1000 1500 20001

1.1

1.2

1.3

1.4Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

20

40

60

80

100

120

140

Iteração

Fun

ção

de c

usto

Figura 34 – Evolução do algoritmo para c1 = 2, 5

(a) Evolução do parâmetro a.

0 500 1000 1500 20000.9

1

1.1

1.2

1.3

1.4

1.5Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

10

20

30

40

Iteração

Fun

ção

de c

usto

Figura 35 – Evolução do algoritmo para c1 = 3, 0

(a) Evolução do parâmetro a.

0 500 1000 1500 20001

1.1

1.2

1.3

1.4

1.5Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

0 500 1000 1500 20000

20

40

60

80

100

Iteração

Fun

ção

de c

usto

As Fig. 30, 31, 32, 33, 34 e 35 mostram a evolução da melhor resposta do PSO emfunção do valor de c1 analisado. Observa-se que não há uma diferença muito grande entre

CAPÍTULO 8. PARÂMETROS DE AJUSTE 69

todos os valores de c1, pois todos convergem para a vizinhança do resultado final próximoà iteração 200.

8.1.2.2 Critério de parada: convergência

Tabela 5 – Erro quadrático médio dos parâmetros estimados em função do valor de c1.

c1 Número de iterações Erro quadrático médio0,5 731,7 0,188270761,0 718,5 0,162000541,5 700,9 0,180856992,0 694,9 0,136803572,5 723,7 0,185891603,0 868,7 0,19459125

A Tab. 5 mostra o valor do erro quadrático médio dos parâmetros estimados e o númeromédio de iterações em função do valor de c1 utilizado para a execução do algoritmo. Ográfico do erro quadrático médio pode ser visto na Fig. 36.

Figura 36 – Erro quadrático médio dos parâmetros estimados em função do valor de c1.

0.5 1 1.5 2 2.5 30.13

0.14

0.15

0.16

0.17

0.18

0.19

0.2

Parâmetro de entrada c2

Err

o do

s pa

râm

etro

s

Na Fig. 36, vê-se que há uma diferença mais significativa que o critério anterior entreos erros resultantes para cada valor de c1, sendo 2,0 o valor que gera o menor erro.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 70

Figura 37 – Número de iterações do algoritmo em função do valor de c1.

0.5 1 1.5 2 2.5 3650

700

750

800

850

900

Parâmetro de entrada c2

Núm

ero

de it

eraç

ões

A Fig. 37 mostra o número de iterações médio necessário para a convergência doalgoritmo para cada valor de c1 analisado. Observa-se que c1 = 2, 0 fez o algoritmoconvergir mais rapidamente.

Figura 38 – Evolução do algoritmo para c1 = 0, 5

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700

0.8

0.85

0.9

0.95

1

1.05Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

50

100

150

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 71

Figura 39 – Evolução do algoritmo para c1 = 1, 0

(a) Evolução do parâmetro a.

100 200 300 400 500 600 7001

1.1

1.2

1.3

1.4

1.5

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

50

100

150

200

250

Iteração

Fun

ção

de c

usto

Figura 40 – Evolução do algoritmo para c1 = 1, 5

(a) Evolução do parâmetro a.

200 400 600 800

0.9

0.95

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800

5

10

15

20

25

30

Iteração

Fun

ção

de c

usto

Figura 41 – Evolução do algoritmo para c1 = 2, 0

(a) Evolução do parâmetro a.

100 200 300 400

1.05

1.1

1.15

1.2

1.25

1.3

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400

10

20

30

40

50

60

70

80

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 72

Figura 42 – Evolução do algoritmo para c1 = 2, 5

(a) Evolução do parâmetro a.

100 200 300 400

0.8

0.9

1

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400

100

200

300

400

500

Iteração

Fun

ção

de c

usto

Figura 43 – Evolução do algoritmo para c1 = 3, 0

(a) Evolução do parâmetro a.

100 200 300 400 500 600 7001

1.05

1.1

1.15

1.2

1.25

1.3

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

10

20

30

40

50

60

70

Iteração

Fun

ção

de c

usto

As Fig. 38, 39, 40, 41, 42 e 43 mostram a evolução da melhor resposta gerada peloPSO em função do valor de c1 analisado. É possível verificar que todos os valores de c1

fazem o algoritmo convergir para a vizinhança do resultado em até 200 iterações.Porém, como c1 é o peso de busca local, um valor muito pequeno não possibilita ao

algoritmo realizar essa busca local, enquanto um valor muito alto faz que o algoritmo nãodê a importância necessária à busca global.

Vê-se que, apesar do resultado do critério de parada anterior, o melhor trade-off nestecaso é c1 = 2, pois apresenta o menor erro com menos iterações que os outros valores.Esse valor é consistente com o indicado na literatura do algoritmo PSO.

8.1.3 Estudo de c2

c2 é o peso de busca global, pois é o peso que multiplica a direção para a melhorposição já encontrada. Quanto um maior valor desse parâmetro, o algoritmo dá maisimportância aos melhores resultados de todas as partículas (comportamento social).

CAPÍTULO 8. PARÂMETROS DE AJUSTE 73

8.1.3.1 Critério de parada: número de iterações

Tabela 6 – Erro quadrático médio dos parâmetros estimados em função do valor de c2.

c2 Erro quadrático médio0,5 0,093661121,0 0,092723671,5 0,091991722,0 0,090635852,5 0,089315823,0 0,09076752

Figura 44 – Erro quadrático médio dos parâmetros estimados em função do valor de c2.

0.5 1 1.5 2 2.5 30.088

0.09

0.092

0.094

0.096

0.098

Parâmetro de entrada c2

Err

o pe

rcen

tual

dos

par

âmet

ros

A Tab. 6 mostra o valor do erro quadrático médio dos parâmetros estimados emfunção do valor de c2 utilizado para a execução do algoritmo. O gráfico do erro quadráticomédio pode ser visto na Fig. 44. É possível verificar que esse gráfico é aproximadamentedecrescente, o que significa que um maior valor de c2 gera um valor de erro menor. Porém,as diferenças não são tão significativas, pois são na terceira casa decimal. O melhor valorde c2 encontrado é 2,0 porque gera um menor valor de erro.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 74

Figura 45 – Evolução do algoritmo para c2 = 0, 5

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

Iteração

Fun

ção

de c

usto

Figura 46 – Evolução do algoritmo para c2 = 1, 0

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

20

40

60

80

Iteração

Fun

ção

de c

usto

Figura 47 – Evolução do algoritmo para c2 = 1, 5

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

200

400

600

800

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 75

Figura 48 – Evolução do algoritmo para c2 = 2, 0

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

Figura 49 – Evolução do algoritmo para c2 = 2, 5

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.5

1

1.5

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

250

Iteração

Fun

ção

de c

usto

Figura 50 – Evolução do algoritmo para c21 = 3, 0

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

100

200

300

400

500

600

Iteração

Fun

ção

de c

usto

As Fig. 45, 46, 47, 48, 49 e 50 mostram a evolução da melhor resposta do PSO emfunção do valor de c2 analisado. Observa-se que não há uma diferença muito grande entre

CAPÍTULO 8. PARÂMETROS DE AJUSTE 76

todos os valores de c2, pois todos convergem para a vizinhança do resultado final próximoà iteração 200.

8.1.3.2 Critério de parada: convergência

A Tab. 7 mostra o valor do erro quadrático médio dos parâmetros estimados e o númeromédio de iterações em função do valor de c2 utilizado para a execução do algoritmo. Ográfico do erro quadrático médio pode ser visto na Fig. 51.

Tabela 7 – Erro quadrático médio dos parâmetros estimados em função do valor de c2.

c2 Número de iterações Erro quadrático médio0,5 756,2 0,164726581,0 658,2 0,151445991,5 633,5 0,147485532,0 717,9 0,179442992,5 772 0,209758163,0 674 0,51746138

Figura 51 – Erro quadrático médio dos parâmetros estimados em função do valor de c2.

0.5 1 1.5 2 2.5 30.1

0.2

0.3

0.4

0.5

0.6

Parâmetro de entrada c2

Err

o do

s pa

râm

etro

s

Vê-se que, ao contrário do que ocorre no critério de parada anterior, o erro dos parâ-metros cresce com um valor maior de c2. Isso se dá porque o algoritmo dá preferência àbusca global, e quando o valor de aptidão de parada é atingido, o algoritmo não realizouuma boa busca local na vizinhança do resultado real.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 77

Figura 52 – Número de iterações do algoritmo em função do valor de c2.

0.5 1 1.5 2 2.5 3600

650

700

750

800

Parâmetro de entrada c2

Núm

ero

de it

eraç

ões

A Fig. 52 mostra o número de iterações médio que o algoritmo leva para convergirem função do valor de c1. O melhor valor de c2 neste caso é 1,5, pois apresenta o melhortrade-off : possui um valor de erro pequeno para um baixo número de iterações.

Figura 53 – Evolução do algoritmo para c2 = 0, 5

(a) Evolução do parâmetro a.

100 200 300 400 500 600

1

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600

20

40

60

80

100

120

140

160

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 78

Figura 54 – Evolução do algoritmo para c2 = 1, 0

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700

0.7

0.8

0.9

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

100

200

300

400

500

Iteração

Fun

ção

de c

usto

Figura 55 – Evolução do algoritmo para c2 = 1, 5

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700

1.05

1.1

1.15

1.2

1.25

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

20

40

60

80

100

120

Iteração

Fun

ção

de c

usto

Figura 56 – Evolução do algoritmo para c2 = 2, 0

(a) Evolução do parâmetro a.

100 200 300 400 500 6000.8

0.9

1

1.1

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600

50

100

150

200

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 79

Figura 57 – Evolução do algoritmo para c2 = 2, 5

(a) Evolução do parâmetro a.

100 200 300 400

1

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400

20

40

60

80

100

120

Iteração

Fun

ção

de c

usto

Figura 58 – Evolução do algoritmo para c2 = 3, 0

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700 800

0.6

0.7

0.8

0.9

1

1.1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700 800

100

200

300

400

500

600

700

Iteração

Fun

ção

de c

usto

As Fig. 53, 54, 55, 56, 57 e 58 mostram a evolução da melhor resposta do PSO emfunção do valor de c2 estudado. Vê-se que para um valor baixo de c2, o algoritmo dápreferência à busca local: na Fig. 53 (a), a resposta faz uma busca em torno de 1,3primeiramente e então dá um salto para buscar em torno de 1. Já para valores mais altosde c2, é possível ver que o algoritmo faz uma busca global, passando por vários pontos erealizando a busca ali.

8.1.4 Estudo de wmax

Esse parâmetro é o valor de inércia w máximo, que é o peso dado às velocidadesanteriores das partículas. O valor de inércia vai diminuindo linearmente com o número deiterações, para que o algoritmo faça uma busca ampla no conjunto de possíveis respostasnas primeiras iterações, e a busca fique confinada à vizinhança do ponto ótimo no fim dasiterações.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 80

8.1.4.1 Critério de parada: número de iterações

Tabela 8 – Erro quadrático médio dos parâmetros estimados em função do valor de wmax.

wmax Erro quadrático médio0,6 3,783197050,8 0,093810051,0 0,090079451,2 0,090954811,4 0,090881391,6 0,096214331,8 0,093858052,0 2570,438076987

Figura 59 – Erro quadrático médio dos parâmetros estimados em função do valor de wmax.

0.5 1 1.5 20

500

1000

1500

2000

2500

3000

Parâmetro de entrada wmax

Err

o pe

rcen

tual

dos

par

âmet

ros

A Tab. 8 mostra o valor do erro quadrático médio dos parâmetros estimados em funçãodo valor de wmax. A Fig. 59 mostra o gráfico do erro quadrático médio. Observa-se queum valor muito baixo ou muito alto gera um valor maior de erro. Para wmax = 2, oalgoritmo diverge, pois dá muito peso às velocidades anteriores, e a resposta não para novalor real. Para wmax = 0, 6, o algoritmo não tem inércia suficiente para se mover porvários pontos, não obtendo uma boa resposta, e gerando um erro maior. O valor que gerao menor erro nessa situação é wmax = 1, 0.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 81

Figura 60 – Evolução do algoritmo para wmax = 0, 6

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.5

1

1.5

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

100

200

300

400

500

600

700

Iteração

Fun

ção

de c

usto

Figura 61 – Evolução do algoritmo para wmax = 0, 8

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

Iteração

Fun

ção

de c

usto

Figura 62 – Evolução do algoritmo para wmax = 1, 0

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

1.4Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 82

Figura 63 – Evolução do algoritmo para wmax = 1, 2

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

Iteração

Fun

ção

de c

usto

Figura 64 – Evolução do algoritmo para wmax = 1, 4

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

20

40

60

80

Iteração

Fun

ção

de c

usto

Figura 65 – Evolução do algoritmo para wmax = 1, 6

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

100

200

300

400

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 83

Figura 66 – Evolução do algoritmo para wmax = 1, 8

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

100

200

300

400

Iteração

Fun

ção

de c

usto

Figura 67 – Evolução do algoritmo para wmax = 2, 0

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

Iteração

Fun

ção

de c

usto

As Fig. 60, 61, 62, 63, 64, 65, 66 e 67 mostram a evolução da melhor resposta e seuvalor de aptidão em função do valor de wmax estudado.

Conclui-se que um valor muito baixo ou muito alto não gera bons resultados, chegandoa fazer o algoritmo divergir. Isso ocorre pois se a inércia das primeiras iterações for muitogrande, o algoritmo diverge rapidamente e não volta à solução esperada. Já se a inercia formuito pequena, o algoritmo não tem velocidade suficiente para chegar à solução esperada.

8.1.4.2 Critério de parada: convergência

A Tab. 9 mostra o valor do erro quadrático médio dos parâmetros estimados e onúmero médio de iterações em função do valor de wmax utilizado para a execução doalgoritmo. O gráfico do erro quadrático médio pode ser visto na Fig. 68.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 84

Tabela 9 – Erro quadrático médio dos parâmetros estimados em função do valor de wmax.

wmax Número de iterações Erro quadrático médio0,6 2000 8,136706720,8 375,5 0,187083081,0 361,4 0,188375681,2 684,5 0,140876781,4 998,1 0,155217331,6 1017,5 0,156146771,8 1329,4 0,195326632,0 1492 37,86905950

Figura 68 – Erro quadrático médio dos parâmetros estimados em função do valor de wmax.

0.5 1 1.5 20

10

20

30

40

Parâmetro de entrada wmax

Err

o do

s pa

râm

etro

s

Vê-se que, da mesma forma que ocorre no critério de convergência anterior, um valormuito grande ou muito pequeno de wmax gera erros maiores.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 85

Figura 69 – Número de iterações do algoritmo em função do valor de wmax.

0.5 1 1.5 20

500

1000

1500

2000

Parâmetro de entrada wmax

Núm

ero

de it

eraç

ões

A Fig. 69 mostra o número de iterações médio que o algoritmo leva para convergir emfunção do valor wmax utilizado. O mesmo comentário anterior se aplica aqui: um valormuito baixo ou muito alto de wmax faz que o algoritmo demore mais para convergir.

Vê-se que, neste caso, o melhor valor é 1,2, pois tem um menor erro em poucasiterações. Outros bons valores são 1,0 e 0,8. Se esse valor for muito pequeno, as partículasperdem velocidade rapidamente e acabam não convergindo corretamente. Já um valormuito grande pode fazer que o algoritmo não pare no valor correto.

Figura 70 – Evolução do algoritmo para wmax = 0, 6

(a) Evolução do parâmetro a.

500 1000 1500 20001

1.05

1.1

1.15

1.2

1.25

1.3

1.35Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

20

40

60

80

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 86

Figura 71 – Evolução do algoritmo para wmax = 0, 8

(a) Evolução do parâmetro a.

50 100 150 200 250 300

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

50 100 150 200 250 300

10

20

30

40

50

60

70

80

Iteração

Fun

ção

de c

usto

Figura 72 – Evolução do algoritmo para wmax = 1, 0

(a) Evolução do parâmetro a.

50 100 150 200

1.05

1.1

1.15

1.2

1.25

1.3

1.35

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

50 100 150 200

5

10

15

20

25

30

35

40

Iteração

Fun

ção

de c

usto

Figura 73 – Evolução do algoritmo para wmax = 1, 2

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700

0.95

1

1.05

1.1

1.15

1.2

1.25

1.3

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

50

100

150

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 87

Figura 74 – Evolução do algoritmo para wmax = 1, 4

(a) Evolução do parâmetro a.

200 400 600 8000.65

0.7

0.75

0.8

0.85

0.9

0.95

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

Figura 75 – Evolução do algoritmo para wmax = 1, 6

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700 8001

1.05

1.1

1.15

1.2

1.25

1.3

1.35

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700 800

10

20

30

40

50

60

70

80

Iteração

Fun

ção

de c

usto

Figura 76 – Evolução do algoritmo para wmax = 1, 8

(a) Evolução do parâmetro a.

200 400 600 800 1000 1200 14000.5

0.6

0.7

0.8

0.9

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000 1200 1400

100

200

300

400

500

600

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 88

Figura 77 – Evolução do algoritmo para wmax = 2, 0

(a) Evolução do parâmetro a.

200 400 600 800 1000 1200

1.05

1.1

1.15

1.2

1.25

1.3

1.35

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000 1200

20

40

60

80

100

Iteração

Fun

ção

de c

usto

As Fig. 70, 71, 72, 73, 74, 75, 76 e 77 mostram a evolução da melhor resposta doalgoritmo e seu valor de aptidão para cada valor de wmax estudado.

8.1.5 Estudo de wmin

Esse parâmetro indica qual o valor de inércia w mínimo que o algoritmo alcança nofinal das iterações. Isso faz que a busca, ao final do algoritmo, seja mais localizada navizinhança do melhor ponto de solução.

8.1.5.1 Critério de parada: número de iterações

A Tab. 10 mostra o erro quadrático médio médio resultante para cada valor de wmin

estudado. A Fig. 78 mostra essa tabela em forma de gráfico.

Tabela 10 – Erro quadrático médio dos parâmetros estimados em função do valor de wmin.

wmin Erro quadrático médio0,2 0,426210390,4 0,092231210,6 0,094238770,8 0,092515001,0 0,145604011,2 0,14295157

CAPÍTULO 8. PARÂMETROS DE AJUSTE 89

Figura 78 – Erro quadrático médio dos parâmetros estimados em função do valor de wmin.

0.2 0.4 0.6 0.8 1 1.20

0.1

0.2

0.3

0.4

0.5

Parâmetro de entrada wmin

Err

o pe

rcen

tual

dos

par

âmet

ros

É possível ver que os erros crescem para valores de wmin muito altos ou muito baixos.Para valores muito baixos, as partículas do PSO perdem velocidade mais rapidamente,não convergindo a valores corretos. Já para os valores mais altos, não há a perda davelocidade, fazendo que as partículas passem do ponto de solução. Para esta situação, omelhor valor encontrado foi 0,4. Porém, sua diferença para 0,6 e 0,8 não é muito grande.

Figura 79 – Evolução do algoritmo para wmin = 0, 2

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 90

Figura 80 – Evolução do algoritmo para wmin = 0, 4

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.5

1

1.5

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

20

40

60

80

100

120

Iteração

Fun

ção

de c

usto

Figura 81 – Evolução do algoritmo para wmin = 0, 6

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

Iteração

Fun

ção

de c

usto

Figura 82 – Evolução do algoritmo para wmin = 0, 8

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

10

20

30

40

50

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 91

Figura 83 – Evolução do algoritmo para wmin = 1, 0

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

Iteração

Fun

ção

de c

usto

Figura 84 – Evolução do algoritmo para wmin = 1, 2

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

20

40

60

80

Iteração

Fun

ção

de c

usto

As Fig. 79, 79, 79, 79, 79 e 79 mostram a evolução da melhor resposta do algoritmoe seu respectivo valor de aptidão. É possível ver que, para wmin = 1, 2, a convergência émais demorada que os demais casos.

8.1.5.2 Critério de parada: convergência

A Tab. 11 mostra o valor do erro quadrático médio dos parâmetros estimados e onúmero médio de iterações em função do valor de wmin utilizado para a execução doalgoritmo. O gráfico do erro quadrático médio pode ser visto na Fig. 85.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 92

Tabela 11 – Erro quadrático médio dos parâmetros estimados em função do valor de wmin.

wmin Número de iterações Erro quadrático médio0,2 483,8 0.229036320,4 561 0.165022010,6 730,9 0.207411320,8 821,6 0.176200681,0 1217,9 0.165899021,2 1347,3 0.16427315

Figura 85 – Erro quadrático médio dos parâmetros estimados em função do valor de wmin.

0.2 0.4 0.6 0.8 1 1.20.16

0.17

0.18

0.19

0.2

0.21

0.22

0.23

Parâmetro de entrada wmin

Err

o do

s pa

râm

etro

s

Vê-se que o melhor resultado foi obtido com wmin = 0, 4, pois gerou o menor erro.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 93

Figura 86 – Número de iterações do algoritmo em função do valor de wmin.

0.2 0.4 0.6 0.8 1 1.2400

600

800

1000

1200

1400

Parâmetro de entrada wmin

Núm

ero

de it

eraç

ões

A Fig. 86 mostra o número médio de iterações que o algoritmo leva para convergir.Vê-se que esse número é crescente com o valor de wmin. Para este caso, o melhor valornovamente foi 0,4, pois é o que dá o menor valor de erro para poucas iterações.

Figura 87 – Evolução do algoritmo para wmin = 0, 2

(a) Evolução do parâmetro a.

50 100 150 200 250 300 350

0.7

0.75

0.8

0.85

0.9

0.95

1

1.05Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 94

Figura 88 – Evolução do algoritmo para wmin = 0, 4

(a) Evolução do parâmetro a.

100 200 300 400 5000.5

0.6

0.7

0.8

0.9

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500

100

200

300

400

500

600

Iteração

Fun

ção

de c

usto

Figura 89 – Evolução do algoritmo para wmin = 0, 6

(a) Evolução do parâmetro a.

100 200 300 400 500 600 700

1.05

1.1

1.15

1.2

1.25

1.3

1.35

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600 700

20

40

60

80

100

120

140

160

Iteração

Fun

ção

de c

usto

Figura 90 – Evolução do algoritmo para wmin = 0, 8

(a) Evolução do parâmetro a.

100 200 300 400

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400

10

20

30

40

50

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 95

Figura 91 – Evolução do algoritmo para wmin = 1, 0

(a) Evolução do parâmetro a.

200 400 600 800

0.95

1

1.05

1.1

1.15

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800

50

100

150

200

250

300

350

400

Iteração

Fun

ção

de c

usto

Figura 92 – Evolução do algoritmo para wmin = 1, 2

(a) Evolução do parâmetro a.

200 400 600 800 1000 1200 1400

1.05

1.1

1.15

1.2

1.25

1.3

1.35

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000 1200 1400

10

20

30

40

50

60

70

Iteração

Fun

ção

de c

usto

As Fig. 87, 87, 87, 87, 87 e 87 mostram a evolução da melhor resposta do algoritmoe seu valor de aptidão para diferentes valores de wmin. Através desses gráficos, é possívelver que valores mais altos de wmin fazem que o algoritmo demore mais para convergir,pois a velocidade acumulada é grande.

8.1.6 Estudo de N

Esse parâmetro indica o tamanho da população do algoritmo: é o número de partículasque irão participar do algoritmo.

8.1.6.1 Critério de parada: número de iterações

A Tab. 12 mostra o valor do erro quadrático médio dos parâmetros estimados paracada valor de N utilizado para a execução do algoritmo. O gráfico do erro quadráticomédio pode ser visto na Fig. 93.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 96

Tabela 12 – Erro quadrático médio dos parâmetros estimados em função do valor de N .

N Erro quadrático médio10 0,0894196220 0,0887977630 0,0887785840 0,08877832

Figura 93 – Erro quadrático médio dos parâmetros estimados em função do valor de N .

10 15 20 25 30 35 400.0884

0.0886

0.0888

0.089

0.0892

0.0894

0.0896

0.0898

Parâmetro de entrada wmin

Err

o pe

rcen

tual

dos

par

âmet

ros

É possível observar que, apesar de o erro quadrático médio cair com o número departículas N , a diferença entre os erros obtida é muito pequena.

Figura 94 – Evolução do algoritmo para N = 10

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

20

40

60

80

100

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 97

Figura 95 – Evolução do algoritmo para N = 20

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

Figura 96 – Evolução do algoritmo para N = 30

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

10

20

30

40

50

60

Iteração

Fun

ção

de c

usto

Figura 97 – Evolução do algoritmo para N = 40

(a) Evolução do parâmetro a.

500 1000 1500 20000

0.2

0.4

0.6

0.8

1

1.2

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 20000

10

20

30

40

50

60

Iteração

Fun

ção

de c

usto

As Fig. 94, 95, 96 e 97 mostram a evolução da melhor resposta do algoritmo PSOe seu valor de aptidão para os diferentes valores de N testados. Vê-se que não há gran-

CAPÍTULO 8. PARÂMETROS DE AJUSTE 98

des diferenças entre as convergências de cada caso. Porém, a diferença é no tempo deexecução: mais partículas significa calcular mais valores de aptidão em cada iteração, ecada valor de aptidão deve ser calculado com todos os pontos disponíveis, o que aumentasignificativamente o custo computacional.

8.1.6.2 Critério de parada: convergência

A Tab. 13 mostra o erro quadrático médio dos parâmetros estimados e o número deiterações em função do valor de N utilizado. O gráfico do erro quadrático médio pode servisto a Fig. 98.

Tabela 13 – Erro quadrático médio dos parâmetros estimados em função do valor de N .

vmax Número de iterações Erro quadrático médio10 690,4 0,2133033620 469,0 0,1626901230 407,9 0,1536384440 344,0 0,21486422

Figura 98 – Erro quadrático médio dos parâmetros estimados em função do valor de N .

10 15 20 25 30 35 400.15

0.16

0.17

0.18

0.19

0.2

0.21

0.22

Parâmetro de entrada wmin

Err

o do

s pa

râm

etro

s

É possível ver que o melhor valor de erro alcançado foi para N = 30.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 99

Figura 99 – Número de iterações do algoritmo em função do valor de N .

10 15 20 25 30 35 40300

400

500

600

700

Parâmetro de entrada wmin

Núm

ero

de it

eraç

ões

A Fig. 99 mostra o número médio de iterações do algoritmo para cada valor de N .Vê-se que o número de iterações necessárias para convergência diminui quanto maior onúmero de partículas. Isso se dá porque um número grande de partículas gera maisdiversidade, fazendo que a busca do algoritmo seja mais completa.

Figura 100 – Evolução do algoritmo para N = 10

(a) Evolução do parâmetro a.

100 200 300 400 500 600

1.05

1.1

1.15

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500 600

20

40

60

80

100

120

140

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 100

Figura 101 – Evolução do algoritmo para N = 20

(a) Evolução do parâmetro a.

100 200 300 400 500

0.75

0.8

0.85

0.9

0.95

1

1.05Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400 500

20

40

60

80

100

120

Iteração

Fun

ção

de c

usto

Figura 102 – Evolução do algoritmo para N = 30

(a) Evolução do parâmetro a.

100 200 300 400

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400

20

40

60

80

100

120

Iteração

Fun

ção

de c

usto

Figura 103 – Evolução do algoritmo para N = 40

(a) Evolução do parâmetro a.

100 200 300 400

1.05

1.1

1.15

1.2

1.25

1.3

1.35

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução PSOValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

100 200 300 400

20

40

60

80

100

Iteração

Fun

ção

de c

usto

As Fig. 100, 101, 102 e 103 mostram a evolução da melhor resposta e seu valor deaptidão para os diferentes valores de N verificados.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 101

Através dos resultados encontrados, é possível ver que um maior número de partículas(possíveis soluções) faz que o algoritmo convirja mais rapidamente, com valores de errosparecidos. Porém, o custo computacional aumenta muito, pois a cada iteração é necessáriocalcular a aptidão de cada partícula. Cada cálculo da aptidão deve passar por todos ospontos de medida disponíveis, fazendo que o custo computacional aumente linearmentecom o número de pontos e com o número de partículas.

8.2 Análise dos parâmetros de ajuste para o GA

O GA será analisado apenas com o critério de parada em número de iterações, poissua execução é muito mais custosa e demorada que o PSO, necessitando de mais de 10000iterações para atingir o mesmo critério de parada de convergência. Como o poder deprocessamento do sistema embarcado é pequeno, deve-se limitar o número de iteraçõespara que o processo não demore horas. Desta forma, o número de iterações foi fixado em2000.

Para os estudos dos parâmetros de ajuste do GA, cada parâmetro é variado enquantoo restante é mantido constante. Os que são mantidos constantes têm os valores mostradosna Tab. 14, escolhidos de acordo com o que é indicado na literatura do problema.

Tabela 14 – Parâmetros de ajuste iniciais para o GA.

Parâmetro ValorN 8

mutrate 0,1selection 0,5

8.2.1 Estudo de N

Esse parâmetro representa o número de cromossomos que serão evoluídos durante aexecução do algoritmo.

A Tab. 15 mostra o valor do erro quadrático médio dos parâmetros estimados paracada valor de N utilizado para a execução do algoritmo. O gráfico do erro quadráticomédio pode ser visto na Fig. 104.

Tabela 15 – Erro quadrático médio dos parâmetros estimados em função do valor de N .

N Erro quadrático médio8 0,2656164612 0,1682466120 0,2971697740 0,39666626

CAPÍTULO 8. PARÂMETROS DE AJUSTE 102

Figura 104 – Erro quadrático médio dos parâmetros estimados em função do valor de N .

5 10 15 20 25 30 35 40

0.2

0.25

0.3

0.35

0.4

Parâmetro de entrada N

Err

o pe

rcen

tual

dos

par

âmet

ros

Vê-se que o melhor resultado encontrado foi para N = 12.

Figura 105 – Evolução do algoritmo para N = 8

(a) Evolução do parâmetro a.

200 400 600 800 1000

1

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000

50

100

150

200

250

300

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 103

Figura 106 – Evolução do algoritmo para N = 12

(a) Evolução do parâmetro a.

200 400 600 800 1000

0.8

0.9

1

1.1

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000

20

40

60

80

100

Iteração

Fun

ção

de c

usto

Figura 107 – Evolução do algoritmo para N = 20

(a) Evolução do parâmetro a.

200 400 600 800 10000.9

0.95

1

1.05

1.1

1.15

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000

5

10

15

20

25

30

35

Iteração

Fun

ção

de c

usto

Figura 108 – Evolução do algoritmo para N = 40

(a) Evolução do parâmetro a.

200 400 600 800 1000

1.05

1.1

1.15

1.2

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000

5

10

15

20

25

30

Iteração

Fun

ção

de c

usto

As Fig. 105, 106, 107 e 108 mostram a evolução da melhor resposta do algoritmo eseu valor de aptidão para cada valor de N verificado.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 104

É possível ver que não há um grande benefício em aumentar o número de cromossomos,já que o erro encontrado não diminui, e ocorre o aumento do custo computacional.

8.2.2 Taxa de mutação - mutrate

A taxa de mutação é a taxa com a qual os cromossomos sofrem mutação: uma grandetaxa significa que um maior número de mutações irá ocorrer. O processo de mutação é oque introduz diversidade nos cromossomos, fazendo que novas soluções sejam geradas.

A Tab. 16 mostra o valor do erro quadrático médio dos parâmetros estimados paracada valor de mutrate utilizado para a execução do algoritmo. O gráfico do erro quadráticomédio pode ser visto na Fig. 109.

Tabela 16 – Erro quadrático médio dos parâmetros estimados em função do valor demutrate.

mutrate Erro quadrático médio0,05 0,245975330,10 0,130220700,15 0,334172780,20 0,497299460,25 0,706166410,30 0,71792928

Figura 109 – Erro quadrático médio dos parâmetros estimados em função do valor demutrate.

0.05 0.1 0.15 0.2 0.25 0.30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Parâmetro de entrada mutrate

Err

o pe

rcen

tual

dos

par

âmet

ros

É possível ver que uma grande taxa de mutação atrapalha a convergência do algoritmo.Isso se dá porque a mutação ocorre aleatoriamente em todos cromossomos. Assim, o

CAPÍTULO 8. PARÂMETROS DE AJUSTE 105

melhor cromossomo também pode sofrer mutação, e uma solução boa pode ser perdida.Com o aumento da taxa de mutação, há uma maior probabilidade de que essa perdade soluções ocorra. O melhor valor encontrado foi 0,1, compatível com o indicado pelaliteratura.

Figura 110 – Evolução do algoritmo para mutrate = 0, 05

(a) Evolução do parâmetro a.

500 1000 1500 2000

0.9

0.95

1

1.05

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

20

40

60

80

100

120

Iteração

Fun

ção

de c

usto

Figura 111 – Evolução do algoritmo para mutrate = 0, 10

(a) Evolução do parâmetro a.

500 1000 1500 20000.95

1

1.05

1.1

1.15

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

20

40

60

80

100

120

140

160

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 106

Figura 112 – Evolução do algoritmo para mutrate = 0, 15

(a) Evolução do parâmetro a.

500 1000 1500 2000

1.05

1.1

1.15

1.2

1.25

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

10

20

30

40

50

60

70

Iteração

Fun

ção

de c

usto

Figura 113 – Evolução do algoritmo para mutrate = 0, 20

(a) Evolução do parâmetro a.

500 1000 1500 20000.92

0.94

0.96

0.98

1

1.02

1.04

1.06

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

10

20

30

40

50

Iteração

Fun

ção

de c

usto

Figura 114 – Evolução do algoritmo para mutrate = 0, 25

(a) Evolução do parâmetro a.

500 1000 1500 2000

0.85

0.9

0.95

1

1.05

1.1Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

10

20

30

40

50

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 107

Figura 115 – Evolução do algoritmo para mutrate = 0, 30

(a) Evolução do parâmetro a.

500 1000 1500 2000

1.05

1.1

1.15

1.2

1.25

1.3

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

5

10

15

20

25

Iteração

Fun

ção

de c

usto

As Fig. 110, 111, 112, 113, 114 e 115 mostram a convergência do algoritmo e seu valorde aptidão para cada valor de mutrate estudado.

8.2.3 Taxa de seleção - selection

Essa taxa indica qual a porcentagem dos cromossomos é mantida e forma o conjuntode possíveis pais a cada iteração. Esses cromossomos que são mantidos são os melhores,já que eles são classificados em função do valor de aptidão.

A Tab. 17 mostra o valor do erro quadrático médio dos parâmetros estimados paracada valor de selection utilizado para a execução do algoritmo. O gráfico do erro quadrá-tico médio pode ser visto na Fig. 116.

Tabela 17 – Erro quadrático médio dos parâmetros estimados em função do valor deselection.

selection Erro quadrático médio0,2 0,171787850,4 0,115838170,6 0,190161400,8 1,86502107

CAPÍTULO 8. PARÂMETROS DE AJUSTE 108

Figura 116 – Erro quadrático médio dos parâmetros estimados em função do valor deselection.

0.2 0.4 0.6 0.8 10

0.5

1

1.5

2

Parâmetro de entrada selection

Err

o pe

rcen

tual

dos

par

âmet

ros

Vê-se que o aumento do valor desse parâmetro atrapalha a convergência do algoritmo,pois gera menos filhos, e – por consequência – menor diversidade nas soluções. Destaforma, elas ficam estagnadas e é difícil que saiam das soluções já encontradas. Porém, sea taxa de seleção for muito baixa, boas soluções potenciais são descartadas, sendo maisdifícil a convergência. O melhor valor encontrado, portanto, foi 0,4.

Figura 117 – Evolução do algoritmo para selection = 0, 2

(a) Evolução do parâmetro a.

500 1000 1500 2000

1.05

1.1

1.15

1.2

1.25

1.3

1.35

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

10

20

30

40

50

60

70

Iteração

Fun

ção

de c

usto

CAPÍTULO 8. PARÂMETROS DE AJUSTE 109

Figura 118 – Evolução do algoritmo para selection = 0, 4

(a) Evolução do parâmetro a.

500 1000 1500 20000.95

1

1.05

1.1

1.15

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

10

20

30

40

50

Iteração

Fun

ção

de c

usto

Figura 119 – Evolução do algoritmo para selection = 0, 6

(a) Evolução do parâmetro a.

200 400 600 800 1000 12000.95

1

1.05

1.1

1.15

1.2

1.25

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

200 400 600 800 1000 1200

10

20

30

40

50

60

Iteração

Fun

ção

de c

usto

Figura 120 – Evolução do algoritmo para selection = 0, 8

(a) Evolução do parâmetro a.

500 1000 1500 20001

1.1

1.2

1.3

1.4

Evolução do parâmetro "a" em comparação com o valor real

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

Evolução GAValor real

(b) Valor de aptidão para a melhor resposta acada iteração.

500 1000 1500 2000

50

100

150

200

250

300

350

Iteração

Fun

ção

de c

usto

As Fig. 117, 118, 119 e 120 mostram a convergência da melhor solução do algoritmoe seu valor de aptidão para cada valor de selection estudado.

CAPÍTULO 8. PARÂMETROS DE AJUSTE 110

8.3 Parâmetros de ajuste encontrados

Através da análise realizada neste capítulo, foi possível fazer uma compilação dosmelhores valores para cada parâmetro estudado. Esses valores estão nas Tab. 18 e 19, esão os parâmetros que são utilizados para a aplicação dos algoritmos no capítulo a seguir.

Tabela 18 – Parâmetros de ajuste encontrados para o PSO.

Parâmetro Valorvmax 10−2

c1 2c2 1,5

wmax 1,0wmin 0,4

N 10

Tabela 19 – Parâmetros de ajuste encontrados para o GA.

Parâmetro ValorN 12

mutrate 0,1selection 0,4

9 Resultados e DiscussõesNeste capítulo serão apresentados e discutidos os resultados obtidos na aplicação dos

algoritmos heurísticos para a calibração dos dados simulados e dos dados coletados, bemcomo o experimento realizado com os sensores embarcados.

9.1 Calibração dos dados simulados

Os dados das medidas dos sensores gerados por simulação podem ser vistos na Fig. 121.Estes dados estão plotados em comparação com a esfera unitária para melhor visualização.A estes dados foram aplicados os algoritmos PSO e GA. Os tempos de execução de cadaalgoritmo pode ser visto na Tab. 20.

Figura 121 – Dados simulados não calibrados.

Tabela 20 – Tempo de execução para cada método.

Método Tempo de execuçãoMV 0,128 segundosPSO 1,989 segundosGA 46,671 segundos

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 112

Vê-se que o tempo de execução do PSO é aproximadamente 15 vezes maior que ométodo MV, e o tempo de execução do GA é 23 vezes maior que o do PSO. O MATLABé otimizado para cálculos matriciais, que são utilizados no método MV. Já os algoritmosevolutivos utilizados utilizam apenas o cálculo da função custo e comparações, que nãosão otimizadas e isso aumenta o tempo de processamento.

Os algoritmos heurísticos dependem do valor de aptidão, que – como já citado – deveser calculado para cada solução potencial e levando em conta todos os pontos de medidasdisponíveis. O GA é ainda mais demorado pois precisa classificar os cromossomos emordem do mais apto ao menos apto para o processo de seleção. O tempo de execuçãodo PSO é, então, linear com o número de pontos e o número de iterações realizadas. OGA é linear com esses dois critérios, e, além disso, depende da classificação, que nunca éconstante.

A seguir são apresentados os parâmetros estimados para cada um dos algoritmos apli-cados. Por se tratar de uma simulação, os 9 parâmetros do sensor simulado são conhecidos.Desta forma, a comparação com os parâmetros obtidos pelos algoritmos é absoluta.

9.1.1 Resultados encontrados para o GA

Aos dados simulados da Fig. 121 foi aplicado o GA contínuo, com os melhores parâ-metros de ajuste encontrados no capítulo anterior. Os parâmetros do sensor estimadospelo GA estão presentes na Tab. 21, onde são comparados com os valores verdadeirosconhecidos. A Fig. 122 mostra a calibração dos dados feita com os parâmetros estimadospelo GA.

Tabela 21 – Valor dos parâmetros encontrados pelo GA comparados com os valores ver-dadeiros.

Parâmetro Valor real Valor encontradox0 0,1143 0,1134y0 -0,1714 -0,1807z0 0,1429 0,1415a 1,0286 1,0239b 0,9714 0,9836c 1,0571 1,0565ρ 0,01 0,0065ϕ 0,024 0,0241λ 0,05 0,0490

É possível ver que, apesar de próximos, os valores encontrados pelo GA não convergi-ram corretamente para o valor real. Isso ocorre pois o GA foi limitado em 2000 iterações,e – como comentado anteriormente – ele necessita de pelo menos 10000 iterações paraconvergir.

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 113

Figura 122 – Dados calibrados pelos parâmetros encontrados pelo GA.

−10

1

−10

1

−1

0

1

Dados Calibrados GA

As Fig. 123 e Fig. 124 mostram a evolução da melhor resposta (parâmetros estimados)durante a execução do GA e o seu valor de aptidão, respectivamente.

Figura 123 – Evolução da melhor resposta (parâmetros) durante a execução do GA.

200 400 600 800 1000

0

0.5

1

Evolução dos parâmetros estimados no GA

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

x0y0z0abcρφλ

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 114

Figura 124 – Evolução do valor de aptidão para a melhor resposta (parâmetros) durantea execução do GA.

200 400 600 800 1000

10

20

30

40

Iteração

Fun

ção

de c

usto

9.1.2 Resultados encontrados para o PSO

Aos dados simulados da Fig. 121 foi aplicado o PSO, com os melhores parâmetros deajuste encontrados no capítulo anterior. Os parâmetros do sensor estimados pelo PSOestão presentes na Tab. 22, onde são comparados com os valores verdadeiros conhecidos.A Fig. 125 mostra a calibração dos dados feita com os parâmetros estimados pelo PSO.

Tabela 22 – Valor dos parâmetros encontrados pelo PSO comparados com os valores reais.

Parâmetro Valor real Valor encontradox0 0,1143 0,1145y0 -0,1714 -0,1727z0 0,1429 0,1426a 1,0286 1,0294b 0,9714 0,9727c 1,0571 1,0568ρ 0,01 0,0122ϕ 0,024 0,0242λ 0,05 0,0486

Vê-se que, ao contrário do GA, os valores dos parâmetros encontrados pelo PSO fi-caram bem próximos aos valores reais, tendo sua diferença na terceira ou quarta casadecimal. Cabe lembrar que foi adicionado ruído à simulação dos sensores, o que faz queseja muito difícil que os valores encontrados pelos algoritmos sejam iguais aos valoresreais.

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 115

Figura 125 – Dados calibrados pelos parâmetros encontrados pelo PSO.

−10

1

−10

1

−1

0

1

Dados Calibrados PSO

As Fig. 126 e Fig. 127 mostram a evolução da melhor resposta (parâmetros estimados)durante a execução do PSO e o seu valor de aptidão, respectivamente.

Figura 126 – Evolução da melhor resposta (parâmetros) durante a execução do PSO.

100 200 300 400

−0.5

0

0.5

1

1.5

Evolução dos parâmetros estimados no PSO

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

x0y0z0abcρφλ

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 116

Figura 127 – Evolução do valor de aptidão para a melhor resposta (parâmetros) durantea execução do PSO.

100 200 300 400

50

100

150

200

250

Iteração

Fun

ção

de c

usto

9.2 Calibração dos dados reais

Os dados do magnetômetro coletados pela plataforma MEMS podem ser vistos na Fig.128, onde estão plotados em comparação com a esfera unitária para melhor visualização.A esses dados foram aplicados os métodos de Mínima Variância com Desalinhamentoentre eixos (MV), o PSO e o GA. Os tempos de execução de cada método pode ser vistona Tab. 23.

Tabela 23 – Tempo de execução para cada método.

Método Tempo de execuçãoMV 0,107 segundosPSO 17,316 segundosGA 105,377 segundos

O tempo de execução do PSO, neste caso, é mais de 160 vezes maior que o tempode execução do método MV. Já o GA é apenas 6 vezes mais demorado que o PSO. Issoocorre pois, além de haver um número maior de medições que o caso anterior, os dadospossuem muito ruído, e o PSO demora mais (leva mais iterações) para convergir ao valorcorreto. O GA utilizado tem um número fixo de iterações, e o aumento no tempo se deveao maior número de pontos a serem analisados.

A seguir são apresentados os resultados obtidos para cada um dos algoritmos heurísti-cos aplicados. Como aqui os parâmetros reais dos sensores não são conhecidos, utilizou-sea resposta do MV como referência para a comparação dos parâmetros estimados.

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 117

Figura 128 – Dados reais não calibrados.

9.2.1 Resultados encontrados para o GA

Aos dados reais coletados da Fig. 128 foi aplicado o GA contínuo com os parâmetrosdeterminados anteriormente. Os parâmetros estimados pelo GA estão presentes na Tab.24, onde são comparados com os parâmetros estimados pelo método MV. Os valoresencontrados pelo GA foram utilizados para corrigir os dados coletados, e esses dadoscorrigidos podem ser vistos na Fig. 129.

Tabela 24 – Valor dos parâmetros encontrados pelo GA comparados com os valores obti-dos pelo método da mínima variância.

Parâmetro Valor MV Valor GAx0 -0,5689 -0,4944y0 0,4191 0,4446z0 -0,2879 -0,3301a 0,9308 0,9843b 0,9500 0,9705c -0,7857 -0,8084ρ 0,0054 0,0535ϕ -0,0221 -0,0933λ -0,0475 -0,0102

É possível ver que a diferença entre os valores encontrados pelo MV e pelo GA é

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 118

razoável. Isso significa que o GA não convergiu corretamente, e iria necessitar de muitasiterações a mais para que seu resultado fosse mais próximo. Porém, o custo computacionalaumenta com o número de iterações, o que faz do GA um algoritmo não indicado paraaplicações embarcadas.

Figura 129 – Dados calibrados pelos parâmetros encontrados pelo GA.

−10

1

−10

1

−1

0

1

Dados Calibrados GA

As Fig. 130 e Fig. 131 mostram a evolução da melhor resposta (parâmetros estimados)durante a execução do GA e o seu valor de aptidão, respectivamente.

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 119

Figura 130 – Evolução da melhor resposta (parâmetros) durante a execução do PSO.

200 400 600 800 1000

0

0.5

1

Evolução dos parâmetros estimados no GA

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

x0y0z0abcρφλ

Figura 131 – Evolução do valor de aptidão para a melhor resposta (parâmetros) durantea execução do PSO.

200 400 600 800 1000

10

20

30

40

Iteração

Fun

ção

de c

usto

Vê-se que, após 400 iterações, o valor dos parâmetros estimados muda muito lenta-mente.

9.2.2 Resultados encontrados para o PSO

Aos dados reais coletados da Fig. 128 foi aplicado o PSO com os parâmetros deajuste determinados anteriormente. A Tab. 25 mostra a comparação entre os parâmetrosencontrados pelo método da Mínima Variância (MV) e os parâmetros encontrados pelo

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 120

PSO. Estes parâmetros foram utilizados para corrigir as medições, e esses dados corrigidospodem ser vistos na Fig. 132.

Tabela 25 – Valor dos parâmetros encontrados pelo GA comparados com os valores obti-dos pelo método da mínima variância.

Parâmetro Valor MV Valor PSOx0 -0,5689 -0,5668y0 0,4191 0,4191z0 -0,2879 -0,2879a 0,9308 0,9324b 0,9500 0,9501c -0,7857 -0,7855ρ 0,0054 0,0076ϕ -0,0221 -0,0188λ -0,0475 -0,0482

É possível ver que os parâmetros encontrados pelo PSO são bem próximos dos valoresencontrados pelo MV, sua diferença sendo na terceira ou quarta casa decimal.

Figura 132 – Dados calibrados pelos parâmetros encontrados pelo PSO.

−10

1

−10

1

−1

0

1

Dados Calibrados PSO

A Fig. 133 e a Fig. 134 mostram a evolução da melhor resposta (parâmetros estima-dos) durante a execução do PSO e o seu valor de aptidão, respectivamente.

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 121

Figura 133 – Evolução da melhor resposta (parâmetros) durante a execução do PSO.

500 1000 1500 2000−0.5

0

0.5

1

1.5Evolução dos parâmetros estimados no PSO

Iteração

Val

or n

orm

aliz

ado

do p

arâm

etro

x0y0z0abcρφλ

Figura 134 – Evolução do valor de aptidão para a melhor resposta (parâmetros) durantea execução do PSO.

500 1000 1500 2000

20

40

60

80

100

Iteração

Fun

ção

de c

usto

Vê-se que, apesar da situação ruidosa, o algoritmo PSO converge antes de 500 iteraçõespara a vizinhança da solução, passando a realizar uma busca local para encontrar os valorescom maior precisão.

9.3 Experimento embarcado realizado

O PSO foi o algoritmo escolhido para a implementação embarcada devido ao seu menortempo de execução. O código foi portado para C para ser embarcado no processador ARM32-bits da experiência MEMS (BATISTA et al., 2014). Foram coletados 300 medições,

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 122

rotacionando lentamente a plataforma de maneira a coletar dados esparsos de posiciona-mento tridimensional. Tanto o acelerômetro quanto o magnetômetro foram observados,e seus dados foram calibrados pelo PSO embarcado com apenas 1000 iterações. Essesdados também foram enviados pela serial para que fossem calibrados em MATLAB paracomparação.

Os dados coletados do acelerômetro e do magnetômetro estão plotados nas Fig. 135 e136, respectivamente.

Figura 135 – Dados coletados do acelerômetro embarcado.

−10

1

−10

1

−1

0

1

Dados do Acelerômetro sem Calibração

Figura 136 – Dados coletados do magnetômetro embarcado.

−10

1

−10

1

−1

0

1

Dados do Magnetômetro sem Calibração

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 123

É possível ver que os dados do acelerômetro já são bem comportados. Porém, omagnetômetro apresenta uma grande distorção nos seus dados.

A Tab. 26 mostra a comparação entre os parâmetros estimados do acelerômetro peloPSO embarcado e pelo PSO no MATLAB, com os mesmos parâmetros de ajuste e númerode iterações.

Tabela 26 – Parâmetros estimados para o acelerômetro pelo PSO embarcado e pelo PSOno MATLAB.

Parâmetro PSO Embarcado PSO MATLABx0 -0,0049 -0,0046y0 -0,0050 -0,0056z0 0,0108 0,0119a 1,0133 1,0118b 1,0194 1,0199c 1,0422 1,0411ρ -0,3000 -0,288ϕ 0,0140 0,0134λ 0,0150 0,0142

Vê-se que os parâmetros encontrados estão condizentes com os dados, pois os dadosbem-comportados do acelerômetro indicam que os offsets e erros de desalinhamento sãopróximos de zero e que o fator de escala é próximo de 1. Também é possível ver queo resultado obtido na execução embarcada ficou muito próximo do resultado obtido naexecução em MATLAB. Como foram feitas apenas 1000 iterações, o resultado pode nãoter convergido totalmente, e isso explica as diferenças.

A Tab. 27 mostra a comparação entre os parâmetros estimados do magnetômetro peloPSO embarcado e pelo PSO no MATLAB, com os mesmos parâmetros de ajuste e númerode iterações.

Tabela 27 – Parâmetros estimados para o magnetômetro pelo PSO embarcado e pelo PSOno MATLAB.

Parâmetro PSO Embarcado PSO MATLABx0 -0,1698 -0,1710y0 -0,3370 -0,3378z0 -0,3528 -0,3517a 1,1348 1,1359b 1,0809 1,0815c 0,9819 0,9826ρ 0,0095 0,0114ϕ -0,0556 -0,0584λ -0,0042 -0,0058

Novamente, os parâmetros estimados pelo PSO embarcado estão bem próximos dosvalores encontrados pelo PSO em MATLAB. Como foram feitas apenas 1000 iterações, o

CAPÍTULO 9. RESULTADOS E DISCUSSÕES 124

resultado pode não ter convergido totalmente, e isso explica as diferenças. Vê-se que ooffset é bem maior que para o acelerômetro, pois – como é possível ver na Fig. 136 – osdados estão bem fora do centro.

10 ConclusõesO objetivo deste trabalho é estudar algoritmos evolutivos para aplicação em calibração

de parâmetros de sensores MEMS, de forma a contornar os problemas encontrados emmétodos anteriores. Para tanto, vários algoritmos heurísticos evolutivos foram estudados,como: Genetic Algorithm - GA, Memetic Algorithm - MA, Particle Swarm Optimization -PSO, Ant-Colony Optimization - ACO, Shuffled Frog Leaping Algoithm - SFL e ArtificialBee Colony Algorithm - ABC. Esses algoritmos são métodos estocásticos de busca queimitam o comportamento natural da evolução e/ou comportamento social das espécies.Os algoritmos escolhidos para serem aplicados foram o PSO e o GA, por terem compor-tamentos diferentes: o GA é evolutivo, enquanto o PSO é social; e ambos têm simplesimplementação.

Para a utilização desses algoritmos, foi necessário realizar primeiramente um estudosobre seus parâmetros de ajuste, de forma a encontrar os melhores valores específicos parao problema em estudo. Várias simulações para diferentes valores de parâmetros de ajusteforam realizadas, e o desempenho de cada uma foi comparado.

Utilizando os melhores valores encontrados nesse estudo foram então utilizados paraa aplicação dos algoritmos na calibração de dados simulados e dados reais. Os dadossimulados foram gerados através de um modelo em Simulink que rotaciona um corpo,calcula o quatérnion dele e gera a saída dos sensores dado esse quatérnion. Ao finaldisso, um pequeno ruído é adicionado à saída dos sensores para ficar mais próximo auma situação real. Os dados reais foram coletados por uma plataforma embarcada comsensores MEMS, que foi rotacionada de maneira suave e aleatória de forma a coletar váriospontos para analise.

Ambos conjuntos de dados foram calibrados utilizando o PSO e o GA em comparaçãocom os valores reais conhecidos, no caso dos dados simulados, e com os valores encon-trados pelo método da Mínima Variância, no caso dos dados coletados. Através desseexperimento, foi possível verificar que tanto o PSO e o GA fornecem resultados próximosaos esperados. Porém, viu-se que o PSO e o GA têm um alto tempo de execução emcomparação com o método de Mínima Variância, sendo que o pior deles é o GA.

Foi possível concluir que tanto o GA quanto o PSO têm seu tempo de execução depen-dente do número de pontos de medição, pois precisam realizar cálculos com esses pontosa cada vez que os algoritmos requerem o valor de aptidão. O tempo de execução tambémé dependente do tamanho da população utilizada no algoritmo, porque a cada iteração,o valor de aptidão de cada membro da população é calculado, e quanto maior o númerode membros, mais cálculos devem ser realizados. No caso do GA, ainda há a necessidadede classificação dos cromossomos, o que também tem tempo de execução dependente donúmero de cromossomos.

Como o tempo de execução do PSO é menor, ele foi o algoritmo escolhido para ser

CAPÍTULO 10. CONCLUSÕES 126

embarcado. O código em C do PSO foi gerado, e embarcado na plataforma experiênciaMEMS. Foram coletados 300 medições, rotacionando lentamente a plataforma de maneiraa coletar dados esparsos de posicionamento tridimensional. Tanto o acelerômetro quantoo magnetômetro foram observados, e seus dados foram calibrados pelo PSO embarcadocom apenas 1000 iterações. Esses dados também foram enviados pela serial para quefossem calibrados em MATLAB para comparação.

Comparando o resultado obtido do PSO embarcado e do PSO no MATLAB, foi possívelverificar que é válido realizar a calibração de modo embarcado. Porém, o tempo deexecução se torna um fator limitante em aplicações embarcadas. O algoritmo não érecursivo, desta forma, o sistema embarcado deve coletar um número de amostras e entãorealizar a calibração. Como a calibração leva um tempo considerável, o sistema fica paradoexecutando a calibração, e outras funções críticas do sistema podem não ser atendidas.

Porém, é importante lembrar que o PSO embarcado é de simples aplicação, não utili-zando inversas de matrizes ou outras operações de alto custo computacional. O métododa Mínima Variância, por outro lado, requer a inversão de matrizes, o que também limitasua aplicação embarcada.

10.1 Trabalhos Futuros

De acordo com o que foi apresentado neste trabalho, os seguintes passos são propostospara trabalhos futuros.

• Aplicação de lógica para autocalibração, de forma que o sistema detecte o melhormomento para coletar e processar os dados durante sua operação normal.

• Determinação de modos de seleção dos pontos medidos para diminuição do númerode dados a serem processados pelo algoritmo, diminuindo seu tempo de execução.

Referências

ALI, A. et al. Swarm optimization-based magnetometer calibration for personal handhelddevices. Sensors, 2012.

BATISTA, D. S. et al. Sistema mecatrônico baseado em sensores mems voltado àdeterminação de atitude em pequenos satélites. In: CBA. [S.l.: s.n.], 2014.

BERAVS, T. et al. Magnetometer calibration using kalman filter covariance matrix foronline estimation of magnetic field orientation. IEEE Transactions on Instrumentationand Measurement, 2014.

BOGUE, R. Mems sensors: past, present and future. Sensor Review, v. 27, 2007.

BONNET, S. et al. Calibration methods for inertial and magnetic sensors. Sensors andActuators, A: Physical, v. 156, 2009.

CAMPS, F.; HARASSE, S.; MONIN, A. Numerical calibration for 3-axis accelerometersand magnetometers. 2009.

CARUSO, M. J. Applications of Magnetic Sensors for Low Cost Compass Systems. [S.l.],2000.

CRASSIDIS, J. L.; LAI, K.-L.; HARMAN, R. R. Real-time attitude-independentthree-axis magnetometer calibration. 2005.

EBERHART, R. C.; SHI, Y. Particle swarm optimization: Developments, applicationsand resources. 2001.

ELBELTAGI, E.; HEGAZY, T.; GRIERSON, D. Comparison among five evolutionary-based optimization algorithms. Advanced Engineering Informatics, v. 19, p. 43–53,2005.

FILHO, J. C. M.; SOUZA, R. N. de; ABRÃO, T. Parameter optimization in aco-mudds/cdma. In: SbrT. [S.l.: s.n.], 2012.

FROSIO, I.; PEDERSINI, F.; BORGHESE, N. A. Autocalibration of memsaccelerometers. IEEE Transactions on Instrumentation and Measurement, v. 58, 2009.

GLUECK, M.; BUHMANN, A.; MANOLI, Y. Autocalibration of mems accelerometers.2012.

GRANZIERA JR., F. et al. Self-calibration of mems sensors arranged in triads usingkalman filter estimator. In: COBEM. [S.l.: s.n.], 2011.

HAUPT, R. L.; HAUPT, S. E. Practical genetic algorithms. 2nd. ed. New Jersey: JohnWiley & Sons, 1998.

KENNEDY, J.; EBERHART, R. Particle swarm optimization. 1995.

REFERÊNCIAS 128

LI, L. lai; WANG, L.; LIU, L. heng. An effective hybrid psosa strategy for optimizationand its application to parameter estimation. Applied Mathematics and Computation,v. 179, 2006.

LÖTTERS, J. C. et al. Procedure for in-use calibration of triaxial accelerometers inmedical applications. Sensors and Actuators A, v. 68, 1998.

PANG, H. et al. Calibration of three-axis magnetometers with differential evolutionalgorithm. Journal of Magnetism and Magnetic Materials, v. 346, 2013.

SANTANA, T. A. S. Desempenho de algoritmos para calibração de sensores memsaplicados à determinação da atitude. Trabalho de Conclusão de Curso - UniversidadeEstadual de Londrina, 2009.

SEÇER, G. Deterministic and Stochastic Error Modeling of Inertial Sensors andMagnetometers. Dissertação (Mestrado) — Bilkent University, 2012.

SHIN, E.-H.; EL-SHEIMY, N. A new calibration method for strapdown inertialnavigation systems. 2002.

SHUSTER, M. D. A survey of attitude representations. Journal of AstronauticalSciences, v. 14, n. 4, 1993.

SYED, Z. F. et al. A new multi-position calibration method for mems inertial navigationsystems. Measurement Science and Technology, v. 18, 2007.

TORMENA JR., O. Método de Auto-Calibração para Tríades de Sensores Utilizadas emAplicações de Estimação de Atitude. Dissertação (Mestrado) — Universidade Estadualde Londrina, 2010.

WU, Z. et al. Calibration of three-axis magnetometer using stretching particle swarmoptimization algorithm. IEEE Transactions on Instrumentation and Measurement, v. 62,n. 2, 2013.

A Código PSOf unc t i on [ DataCalSan , ParC , k ] = . . .

PSO(DataObs_n , w_max, w_min, c1 , c2 , v_max, N, opt )

bias_max = 0 . 5 ;scale_max = 1 . 5 ;scale_min = 0 . 5 ;ang_max = . 7 ;

% p a r t i c l e s [9xN ]gbe s t_ f i t = 1e20 ;f o r i = 1 :N

f o r j = 1 :3 %b i a sp a r t i c l e ( i ) . p o s i t i o n ( j ) = 2∗bias_max∗ rand − bias_max ;

endf o r j = 4 :6

p a r t i c l e ( i ) . p o s i t i o n ( j ) = scale_max∗ rand ;i f p a r t i c l e ( i ) . p o s i t i o n ( j ) < scale_min

p a r t i c l e ( i ) . p o s i t i o n ( j ) = scale_min ;end

endf o r j =7:9

p a r t i c l e ( i ) . p o s i t i o n ( j ) = 2∗ang_max∗ rand − ang_max ;end

f o r j = 1 :9p a r t i c l e ( i ) . v ( j ) = 0 ;

endp a r t i c l e ( i ) . pbest = p a r t i c l e ( i ) . p o s i t i o n ;pbe s t_ f i t ( i ) = f i tn e s s 9D (DataObs_n , p a r t i c l e ( i ) . p o s i t i o n ) ;

end

f i t _ o l d = 10 e7 ;

var = 1 ;k = 0 ;z = 0 ;

whi l e var == 1k = k+1;i f k > 2000

var = 0 ;endw = w_max − ( (w_max−w_min) ∗k ) /2000 ;f o r i =1:N

APÊNDICE A. CÓDIGO PSO 130

f i t ( i ) = f i tn e s s 9D (DataObs_n , p a r t i c l e ( i ) . p o s i t i o n ) ;i f f i t ( i ) < pbes t_ f i t ( i )

p a r t i c l e ( i ) . pbest = p a r t i c l e ( i ) . p o s i t i o n ;pbe s t_ f i t ( i ) = f i t ( i ) ;

endend

f o r i =1:Ni f pbe s t_ f i t ( i ) < gbe s t _ f i t

gbest = p a r t i c l e ( i ) . pbest ;gbe s t_ f i t = pbes t_ f i t ( i ) ;

endend

log_pso ( : , k ) = gbest ;log_pso_f ( k ) = gbe s t_ f i t ;

i f ( abs ( gbe s t_ f i t − f i t _ o l d ) / gbe s t _ f i t < 1e−4)&( gbe s t_ f i t < 1e−2)z = z+1;i f z == 5

var = 0 ;end

e l s ez = 0 ;

endf i t _ o l d = gbe s t_ f i t ;

f o r i =1:Np a r t i c l e ( i ) . v = w∗ p a r t i c l e ( i ) . v + c1∗ rand ∗( p a r t i c l e ( i ) .

pbest − p a r t i c l e ( i ) . p o s i t i o n ) + c2∗ rand ∗( gbest −p a r t i c l e ( i ) . p o s i t i o n ) ;

f o r j =1:9i f p a r t i c l e ( i ) . v ( j )> v_max( j )

p a r t i c l e ( i ) . v ( j ) = v_max( j ) ;end

endp a r t i c l e ( i ) . p o s i t i o n = p a r t i c l e ( i ) . p o s i t i o n + p a r t i c l e ( i ) . v

;end

end

%returnParC . x0 = gbest (1 ) ;ParC . y0 = gbest (2 ) ;ParC . z0 = gbest (3 ) ;ParC . a = gbest (4 ) ;

APÊNDICE A. CÓDIGO PSO 131

ParC . b = gbest (5 ) ;ParC . c = gbest (6 ) ;ParC . rho = gbest (7 ) ;ParC . phi = gbest (8 ) ;ParC . lambda = gbest (9 ) ;

DataCalSan ( 1 , : ) = (DataObs_n ( 1 , : ) − ParC . x0 ) /ParC . a ;DataCalSan ( 2 , : ) = ( ( DataObs_n ( 2 , : ) − ParC . y0 ) /ParC . b − DataCalSan ( 1 , : ) ∗ s i n (

ParC . rho ) ) / cos (ParC . rho ) ;DataCalSan ( 3 , : ) = ( ( DataObs_n ( 3 , : ) − ParC . z0 ) /ParC . c − DataCalSan ( 1 , : ) ∗ s i n (

ParC . phi ) ∗ cos (ParC . lambda ) − DataCalSan ( 2 , : ) ∗ s i n (ParC . lambda ) ) / cos (ParC .phi ) ;

B Código GAf unc t i on [ DataCalSan , ParC , k ] = GA( DataObs , N, mutrate , s e l e c t i o n )

bias_max = 0 . 5 ;scale_max = 1 . 5 ;scale_min = 0 . 5 ;ang_max = . 7 ;

Nt = 9 ; % num de parametrosmaxit = 2000 ;keep = f l o o r ( s e l e c t i o n ∗N) ;nmut = c e i l ( (N−1)∗Nt∗mutrate ) ;M = c e i l ( (N−keep ) /2) ;

f i t _ o l d = 1e10 ;

f o r i = 1 :Nf o r j = 1 :3 %b i a s

chromossome ( i , j ) = 2∗bias_max∗ rand − bias_max ;endf o r j = 4 :6

chromossome ( i , j ) = scale_max∗ rand ;i f chromossome ( i , j ) < scale_min

chromossome ( i , j ) = scale_min ;end

endf o r j =7:9

chromossome ( i , j ) = 2∗ang_max∗ rand − ang_max ;end

end

% cos tf o r i =1:N

f i t n e s s ( i ) = f i tn e s s 9D ( DataObs , chromossome ( i , : ) ) ;end

% rank[ f i t n e s s , i n d i c e s ] = s o r t ( f i t n e s s ) ;chromossome = chromossome ( ind i c e s , : ) ;

var = 1 ;k=0;

whi l e (k<2000 & var == 1)k = k+1;

APÊNDICE B. CÓDIGO GA 133

% o f f s p r i n gf o r i =(keep+1) :N

c1 = chromossome ( randi ( keep ) , : ) ;c2 = chromossome ( randi ( keep ) , : ) ;f o r j =1:9

b = rand ;chromossome ( i , j ) = b∗ c1 ( j ) + (1−b) ∗ c2 ( j ) ;

end

end

% mutationmrow = c e i l ( rand (1 ,nmut) ∗(N−1) ) +1;mcol = c e i l ( rand (1 ,nmut) ∗Nt) ;f o r i =1:nmut

i f ( ( mcol ( i )<=3)&(mcol ( i )>=1))chromossome (mrow( i ) , mcol ( i ) ) = 2∗bias_max∗ rand − bias_max ;

e l s e i f ( ( mcol ( i )<=6)&(mcol ( i )>=4))chromossome (mrow( i ) , mcol ( i ) ) = scale_max∗ rand ;i f chromossome (mrow( i ) , mcol ( i ) ) < scale_min

chromossome (mrow( i ) , mcol ( i ) ) = scale_min ;end

e l s echromossome (mrow( i ) , mcol ( i ) ) = 2∗ang_max∗ rand − ang_max ;

endend

% cos tf o r i =1:N

f i t n e s s ( i ) = f i tn e s s 9D ( DataObs , chromossome ( i , : ) ) ;end

% rank[ f i t n e s s , i n d i c e s ] = s o r t ( f i t n e s s ) ;chromossome = chromossome ( ind i c e s , : ) ;

% stop c r i t e r i ai f ( abs ( f i t n e s s (1 ) − f i t _ o l d ) / f i t n e s s (1 ) < 1e−4)&( f i t n e s s (1 ) < 1e−2)

var = 0 ;endf i t _ o l d = f i t n e s s (1 ) ;

end

end

APÊNDICE B. CÓDIGO GA 134

ParC . x0 = chromossome (1 , 1 ) ;ParC . y0 = chromossome (1 , 2 ) ;ParC . z0 = chromossome (1 , 3 ) ;ParC . a = chromossome (1 , 4 ) ;ParC . b = chromossome (1 , 5 ) ;ParC . c = chromossome (1 , 6 ) ;ParC . rho = chromossome (1 , 7 ) ;ParC . phi = chromossome (1 , 8 ) ;ParC . lambda = chromossome (1 , 9 ) ;

DataCalSan ( 1 , : ) = ( DataObs ( 1 , : ) − ParC . x0 ) /ParC . a ;DataCalSan ( 2 , : ) = ( ( DataObs ( 2 , : ) − ParC . y0 ) /ParC . b − DataCalSan ( 1 , : ) ∗ s i n (

ParC . rho ) ) / cos (ParC . rho ) ;DataCalSan ( 3 , : ) = ( ( DataObs ( 3 , : ) − ParC . z0 ) /ParC . c − DataCalSan ( 1 , : ) ∗ s i n (

ParC . phi ) ∗ cos (ParC . lambda ) − DataCalSan ( 2 , : ) ∗ s i n (ParC . lambda ) ) / cos (ParC .phi ) ;

Caracterização de Erros Estocásticos em SensoresMEMS por Variância de Allan

Caroline Peres da SilvaDepartamento de Engenharia ElétricaUniversidade Estadual de Londrina

Londrina/PR - Brasil

Resumo

Trabalho referente à disciplina ’2ELE105 - Processos Estocásticos’ do curso de Gradua-ção em Engenharia Elétrica da Universidade Estadual de Londrina. Este trabalho tem comoobjetivo estudar o método da Variância de Allan para caracterizar os principais componentesde erros estocásticos presentes em sensores inerciais MEMS - como acelerômetros, magnetô-metros e girômetros - e determinar os parâmetros de ruídos correspondentes. De acordo comesses parâmetros, a densidade espectral de potência (PDS) das fontes de erros estocásticospode ser determinada. Por fim, o método é aplicado a dados coletados em situação estáticapara verificar sua aplicação em situações reais. Os resultados da aplicação do método daVariância de Allan aos dados coletados são mostrados, bem como a fundamentação teóricae a análise dos parâmetros de cada tipo de ruído encontrado. Palavras-chave - ProcessosEstocásticos, Variância de Allan, Sensores Inerciais, MEMS, Erros Estocásticos.

1 IntroduçãoSensores MEMS (Micro-Electro-Mechanical-Systems) têm sido cada vez mais utilizados em

diversas finalidades, como produtos comerciais, sistemas embarcados, equipamentos eletrônicosautomotivos, aplicações robóticas, médicas, entre outras. [Bogue, 2007] Devido ao crescentedesempenho, baixo custo, funcionalidade e melhora significativa na confiabilidade, esses sensoresestão ganhando espaço em aplicações que exigem mais precisão, como sistemas de navegaçãoinercial e determinação de atitude em sistemas aeroespaciais.

Entretanto, sistemas de navegação inerciais têm sua performance degradada com o tempo,devido a fontes de erros estocásticos existentes nos sensores inerciais. [IEEE STD 647] Os mo-mentos estatísticos desses erros estocásticos aumentam com o tempo, o que leva a um acúmulode erros inerciais, que degrada a saída dos sensores. Com o passar do tempo, o erro acumuladose torna insuportável e se faz necessário a calibração do sistema.

Para tanto, é preciso identificar e modelar os erros estocásticos presentes nos sensores iner-ciais. Sabendo-se que função de transferência de um sistema pode ser estimada pelo espectro depotência da saída com a entrada de ruído branco, é possível utilizar os métodos da PSD (PowerSpectrum Density) e de AV (Allan Variance) para a investigação dos processos estocásticos.[IEEE STD 952]

Para o caso estudado, a análise da PSD se torna muito complicada, sendo mais simplesutilizar o método AV, que será aplicado neste trabalho.

A Variância de Allan é uma técnica de análise no domínio do tempo, sendo aceita comopadrão IEEE para análise de sensores inerciais [IEEE STD 647], em particular giroscópios. Estemétodo foi desenvolvido por David Allan para quantificar as estatísticas dos erros de um oscilador

1

de Césio [Allan, 1966]. O método, em geral, pode ser aplicado para analisar as característicasdo erro de qualquer instrumento de medição precisa, de forma a caracterizar o random drift.

Em comparação com outros métodos estocásticos de modelagem, como, por exemplo, o mé-todo da autocorrelação, que necessita de dados ao longo de muito tempo para que seu resultadoseja aceitável, o AV é direto e de simples cálculo.

2 Objetivos e MetodologiaO objetivo deste trabalho é estudar, implementar e verificar o método da Variância de Allan

em dados coletados de sensores inerciais MEMS, como acelerômetros, magnetômetros e girôme-tros.

Primeiramente será feita uma análise teórica do método da Variância de Allan, descrevendocada tipo de erro que pode ser encontrado pelo método - como ruído de quantização, ruídobranco, random walk, flicker noise, rate ramp e ruído exponencialmente correlacionado.

Cada um desses tipos de ruído será estudado, sendo possível encontrar a densidade de potên-cia de cada um de acordo com a formulação apresentada. As características desses erros podeser correlacionada com uma variável do método da Variância de Allan - o intervalo de tempo deanálise, sendo possível observar graficamente a influência de cada tipo de ruído na resposta dosensor.

Em seguida, o método da Variância de Allan será aplicado aos dados obtidos pela plataformade aquisição de dados MEMS [Batista, 2014], e a descrição do sistema utilizado para a aquisiçãodos dados será apresentada.

Por fim, será feita uma análise dos erros presentes em cada sensor, gerando o gráfico daVariância de Allan em função do intervalo de tempo utilizado para a medida, que será comparadocom o teórico.

3 Variância de AllanAssumindo N amostras de dados de um sensor inercial (acelerômetro ou girômetro) com

um intervalo de amostra τ0, formando grupos de dados com duração τ0, 2τ0, ..., nτ0, com n <(N−1)/2, cada grupo chamado de um cluster. Seja a saída instantânea do sensor Ω(t). A médiaentre os tempos tk e tk + τ é dado por:

Ωk(τ) = 1τ

∫ tk+τ

tk

Ω(t)dt τ = nτ0 (1)

Assim, define-se a Variância de Allan como [Allan, 1966]:

σ2(τ) = 12 < (Ωk+n − Ωk)2 >= 1

2τ2 < (θk+2n − 2θk+n + θk)2 > (2)

As saídas de sensores inerciais são taxas (aceleração e taxa de ângulo por tempo). Assim, aintegral da saída do sensor θ(t) é o ângulo ou a velocidade.

θ(t) =∫ t

Ω(t′)dt′ (3)

O operador < · > denota a média temporal infinita. Na prática, isso não é possível. Pode-seentão estimar a Variância de Allan (AV) por um número finito de amostras [IEEE STD 647]:

σ2(t) ≈ 12τ2(N − 2n)

N−2n∑k=1

(θk+2n − 2θk+n + θk)2 (4)

2

Como a AV é estimada através de um número finito de clusters, formados por um tamanhofinito de dados, a confiança da estimação aumenta comforme o número de clusters aumenta.Definindo o parâmetro ε como a porcentagem de erro na estimação da Variância de Allan:

ε = σ(τ,M)− σ(τ)σ(τ) (5)

onde σ(τ,M) é a estimativa do desvio padrão de Allan obtido através de M clusters inde-pendentes e σ(τ) é o valor verdadeiro. σ(τ,M) tende ao valor verdadeiro quando M tende aoinfinito. Assim o erro percentual é:

ε = 1√2(Nn − 1

) (6)

onde N é o número total de dados obtidos e n é o número de dados contidos no cluster.A equação 6 mostra que que os erros de estimação na região de clusters de pequeno tamanho

τ são pequenos pois o número de clusters independentes é alto. Já para regiões de clusters degrande tamanho τ , os erros são maiores pois o número de clusters independentes é menor.

3.1 Relação entre PSD e AV

Para os processos estocásticos intrínsecos aos sensores inerciais, a relação entre a PSD (Den-sidade Espectral de Potência) e a AV (Variância de Allan) é:

σ2(τ) = 4∫ ∞

0SΩ(f)sin4(πfτ)

(πfτ)2 df (7)

onde SΩ(f) é a PSD bilateral de Ω(t). Além disso, Ω(t) deve ser um processo estacionário,de forma que sua autocorrelação seja independente do tempo e uma função par: K(τ) = K(−τ).

A equação 7 é chave na caracterização da PSD de ruídos aleatórios pelas equações da AV. Elaimplica que a AV é proporcional à potência total do erro da saída quando aplicada a um filtrocom a função de transferência sin4(πfτ)/(πfτ)2. [El-Sheimy, 2008] Essa função de transferênciaé o método utilizado para criar e operar nos clusters. A eq. 7 também implica que o filtropassa-faixa é determinado pelo cluster τ . Assim, escolhendo diferentes valores de τ , diferentestipos de processos aleatórios podem ser confirmados.

Para a identificação e quantização dos vários processos aleatórios, utiliza-se o gráfico log-logda raiz quadrada da AV (σ) pelo cluster (τ). Um espaçamento eficiente para ao valores de τ nográfico é de τ = nτ0 com n = 2p e p = 0, 1, 2, 3, .... [IEEE STD 1139]

3.2 Tipos de Erros Estocásticos em Sensores Inerciais

3.2.1 Erro de Quantização

É um processo estocástico associado à conversão analógico-digital do sensor (no caso desensores analógicos). O erro é causado pelas pequenas diferenças entre as amplitudes reais dospontos sendo amostrados e a resolução do conversor AD. A PDS e a AV do erro de quantizaçãosão:

SΩ(f) ≈ (2πf)2Q2Ts f <1

2Ts(8)

σ2(τ) = 3Q2

τ2 (9)

3

onde Ts é o período de amostragem e Q é o coeficiente do ruído de quantização. Em umgráfico log-log σ(τ), o Ruído de Quantização é uma reta com inclinação de -1. O valor de Qpode ser encontrado lendo o valor da reta em τ =

√3.

Figura 1: Gráfico de σ(τ) do erro de quantização.

3.2.2 Ângulo (Velocidade) Random Walk

A principal fonte desse erro é a emissão espontânea de fótons. Os termos de ruído de altafrequência que têm tempo de correlação muito menor que o tempo de amostragem tambémcontribuem para esse erro. Esses termos de ruído são caracterizados por um espectro de ruídobranco na saída de ângulo/velocidade do sensor.

SΩ(f) = N2 (10)

σ2(τ) = N2

τ(11)

onde N é o coeficiente. Em um gráfico log-log de σ(τ), o ruído branco é representado poruma reta com inclinação -1/2. Além disso, o valor numérico de N pode ser lido pelo valor dessareta em τ = 1.

Figura 2: Gráfico de σ(τ) do angle random walk.

3.2.3 Instabilidade de Bias (Flicker Noise)

A origem desse ruído é o mecanismo físico de ressonância (flicker) de componentes eletrô-nicos. Pela sua natureza de baixa frequência, é indicado pela flutuação dos bias nos dados. A

4

PDS associada com esse ruído é:

SΩ(f) =

B2

2πf , f ≤ f00, f > f0

(12)

onde B é o coeficiente da instabilidade de bias e f0 é a frequência de corte. A variância deAllan é:

σ2(τ) = 2B2

π

[ln2− sin3 x

2x2 (sin x+ 4x cosx) + Ci(2x)− Ci(4x)]

(13)

em que Ci é a função cosseno-integral e x = πf0τ . A imagem 3 mostra o plot log-log daVariância de Allan, e é possível ver que é constante para τ muito maiores que o inverso dafrequência de corte. Assim, a região constante do plot pode ser examinada para estimar o limiteda instabilidade de bias.

Figura 3: Gráfico de σ(τ) do instabilidade do bias.

3.2.4 Rate Random Walk

É um componente de ruído associado aos efeitos físicos aos quais o sensor é submetido,como: choque mecânico, vibração e efeitos de temperatura. Pode ser visto como uma derivaçãodo ruído exponencialmente correlacionado e é obtido pela integração do ruído branco.

SΩ(f) = K2

(2πf)2 (14)

onde K é o coeficiente da rate random walk.

σ2(τ) = K2τ

3 (15)

Isso indica que a rate random walk é representada por uma reta com inclinação de +1/2 noplot log-log de σ(τ), como pode ser visto na figura 4. A magnitude do coeficiente desse ruído,K, pode ser lido projetando a reta para τ = 3.

5

Figura 4: Gráfico de σ(τ) do rate random walk.

3.2.5 Ruído Exponencialmente Correlacionado

É caracterizado por uma função de decaimento exponencial com um tempo de correlaçãofinito. A PDS para esse processo é:

SΩ(f) = (qCTC)2

1 + (2πfTC)2 (16)

onde qC é a amplitude do ruído e TC é o tempo de correlação. Assim, a Variância de Allané:

σ2(τ) = (qCTC)2

τ

[1− TC

(3− 4e−

τTC + e

− 2τTC

)](17)

Figura 5: Gráfico de σ(τ) do ruído exponencialmente correlacionado.

A figura 5 mostra o plot log-log de σ(τ). Verificando os limites da equação 17, vê-se quepara τ muito maior que o tempo de correlação:

σ2(τ)→ (qCTC)2

ττ TC (18)

que é a variância de Allan para o angle random walk com N = qCTC . Já para τ muito menorque o tempo de correlação:

6

σ2(τ)→ q2C

3 τ τ TC (19)

que é a variância de Allan para o rate random walk.

3.3 Ruído Senoidal

A PDS desse ruído é caracterizada por uma ou mais frequências distintas. Uma possívelfonte de erro de baixa frequência é o movimento da plataforma de teste devido à mudanças noambiente. A PDS é:

SΩ(f) = 12Ω2

0[δ(f − f0) + δ(f + f0)] (20)

onde Ω0 é a amplitude, f0 é a frequência e δ(x) é a função delta de Dirac. A variância deAllan é:

σ2(τ) = Ω20

(sin2 πf0τ

πf0τ

)2

(21)

e a figura 6 mostra o plot log-log.

Figura 6: Gráfico de σ(τ) do erro senoidal.

3.3.1 Drift Rate Ramp

Os erros vistos anteriormente são de origens estocásticas. Porém, é útil determinar o com-portamento de σ(τ) sob erros determinísticos. Um desses erros é o drift rate ramp, definidocomo:

Ω = Rt (22)onde R é o coeficiente. Assim, a PDS e a VA desse ruído são:

SΩ(f) = R2

(2πf)3 (23)

σ2(τ) = R2τ2

2 (24)

Isso indica que o ruído de drift-rate-ramp tem inclinação de +1 no plot log-log de σ(τ), comopode ser visto na figura 7. A amplitude do coeficiente R pode ser encontrado observando a retaem τ =

√2.

7

Figura 7: Gráfico de σ(τ) do rate ramp.

3.4 Efeito combinado de todos os processos

Em geral, qualquer processo estocástico discutido anteriormente pode estar presente nosdados medidos. Assim, o gráfico da Variância de Allan se comporta como mostrado na figura8. Empiricamente, vê-se que erros diferentes se apresentam em diferentes regiões de τ , sendopossível sua identificação no plot. [IEEE STD 952]

Figura 8: Gráfico log-log de σ(τ).

4 Descrição do ExperimentoO experimento foi realizado utilizando dados coletados pela plataforma E-MEMS [Batista, 2014].

Essa plataforma possui 4 acelerômetros de três eixos, quatro magnetômetros de três eixos e qua-tro girômetros. Os sensores e suas principais características são:

• Girômetros de um eixo ADIIS16256 da Analog Devices, com resolução de ±0, 01832 /saté ±0, 07326 /s em 12 bits com fundo de escala configurável entre ±80 /s até ±320 /s,

8

ruído de 0,4 /s RMS, angular random walk de 2 /√Hz, estabilidade de bias de 0,007 /se rate noise density de 0,044 /√Hz rms.

• Acelerômetros de três eixos LIS331HH, da STMicroeletronics, com resolução de ±3 mgem 12 bits com fundo de escala configurável entre ±6 g, ±12 g ou ±24 g, e densidade deruído de aceleração de 650 µg/√Hz.

• Magnetômetros de três eixos HMC5883L, da Honeywell, com resolução de até 0,92 mG em12 bits com fundo de escala em ± 1,3 G, e ruído de 2 mG.

A frequência de amostragem das saídas dos sensores é de 10 Hz e o teste foi realizado duranteaproximadamente 48 horas. As medidas foram coletadas em situação estática, com o objetivode verificar somente o ruído presente na saída quando a entrada é inexistente.

5 Resultados

5.1 Acelerômetro

O gráfico log-log do desvio de Allan para os dados medidos pelo acelerômetro podem servistos na figura 9.

Figura 9: Plot log-log de σ(τ) para o acelerômetro de três eixos.

É possivel observar que o gráfico segue o esperado mostrado na figura 8. Também observa-seque, para o acelerômetro estudado, o termo de erro dominante é o Random Walk da velocidade.

Os plot log-log do eixo x é mostrado em maior detalhes na figura 10. As barras verticaissobre cada ponto mostram o intervalo de confiança para cada valor calculado.

Para encontrar o coeficiente do termo dominante do erro no acelerômetro (angle randomwalk), observa-se o valor da reta com inclinação -1/2 em τ = 1, encontrando N = 0.4592.

Para encontrar o coeficiente do termo de instabilidade de bias, observa-se a região plana dográfico e divide-se o valor encontrado por 0,664. Assim, encontra-se B = 0, 615 /s.

O rate random walk também está presente, mas devido à menor confiabilidade da análisepara τ grandes, não foi possível analisar com cuidado seus parâmetros. É possível ver que ográfico começa a divergir no ponto onde é possível analisar esse ruído.

9

Figura 10: Plot log-log de σ(τ) para o eixo x do acelerômetro.

O ruído de quantização não está presente na Variância de Allan, pois a frequência de leituraé de 10Hz, não sendo possível realizar sua análise pois necessita de uma frequência de leituramaior.

5.2 Girômetro

O gráfico log-log do desvio de Allan para os dados medidos pelo girômetro podem ser vistosna figura 11. O termo de erro dominante do girômetro também é o angle random walk.

Figura 11: Plot log-log de σ(τ) para o girômetro.

10

Para encontrar o coeficiente do termo dominante do erro no girômetro (angle random walk),observa-se o valor da reta com inclinação -1/2 em τ = 1, encontrando N = 0.8, que está dentrodo esperado segundo o datasheet do componente.

Para encontrar o coeficiente do termo de instabilidade de bias, observa-se a região planado gráfico e divide-se o valor encontrado por 0,664. Assim, encontra-se B = 0, 09 /s, bempróximo do valor do datasheet. Porém, existe uma diferença entre os dois valores, devido aovalor encontrado estar dentro de um intervalo de confiança, podendo não ser o valor real.

O ruído de quantização não está presente na Variância de Allan, pois a frequência de leituraé de 10Hz, não sendo possível realizar sua análise pois necessita de uma frequência de leituramaior.

O rate random walk também está presente, mas devido à menor confiabilidade da análisepara τ grandes, não foi possível analisar com cuidado seus parâmetros. É possível ver que ográfico começa a divergir no ponto onde é possível analisar esse ruído.

6 ConclusãoA Variância de Allan é um método simples e eficiente para a identificação e caracterização

dos diferentes erros estocásticos presentes em sensores inerciais como acelerômetros e girôme-tros. Através de um processamento simples da saída dos sensores, é possível obter a curvacaracterística do desvio de Allan, que pode ser inspecionada para determinar os diferentes tipose magnitudes dos termos de erros.

Um experimento com acelerômetros e girômetros foi realizado, coletando dados em situaçãoestática. Os dados foram analisados através do método da Variância de Allan, sendo possívelgerar um gráfico da variância em função do cluster de tempo, que tem alta semelhança com oesperado teoricamente.

A partir desse gráfico, é possivel analisar quais as fontes de ruído presentes no sensor inercialem estudo. Assim, vê-se que, nos acelerômetros e girômetros utilizados no experimento, otermo de ruído dominante é o angle random walk, provenientes do próprio funcionamento dosensor e de termos de ruído de alta frequência presentes no sistema. Também vê-se que existea instabilidade de bias, também conhecido como flicker noise, de origem de baixa frequênciadevido às ressonâncias dos componentes eletrônicos dos sensores. O rate random walk tambémestá presente, mas devido à menor confiabilidade da análise para τ grandes, não foi possívelfazer sua análise.

Assim, foi possível confirmar a utilidade e a simplicidade do método da Variância de Allanpara a identificação e caracterização dos ruídos presentes em sensores inerciais. Os resultadosse mostraram de acordo com o esperado, tanto graficamente quanto ao comparar os coeficientesde ruído com os fornecidos pelo fabricante no datasheet dos componentes.

Referências[Allan, 1966] Allan, D.W., Statistics of Atomic Frequency Standards, Proc. IEEE, 1966, 54:221-

230.

[Batista, 2014] Batista, D. S., Granziera, F. Jr., Tosin, M. C., Mello, L. F. de, Sistema Me-catrônico Baseado em Sensores MEMS Voltado à Determinação de Atitude em PequenosSatélites., XX Congresso Brasileiro de Automática, 2014.

[Bogue, 2007] Bogue, R. MEMS Sensors: past, present and future, Sensor Review 27.

[Carvalho, 2011] Carvalho, A. G., Influência da Modelagem dos Componentes de Bias Instabili-dade dos Sensores Inerciais no Desempenho do Navegador Integrado SNI/GPS, Dissertação,IME, 2011.

11

[El-Sheimy, 2008] El-Sheimy, N., Hou, H., Niu, X., Analysis and Modeling of Inertial SensorsUsing Allan Variance, IEEE Transactions on Instrumentation and Measurement, vol 57, no1, 2008.

[Han, 2009] Han, S., Wang, J., Knight, N., Using Allan Variance to Determine teh CalibrationModel of Inertial Sensors for GPS/INS Integration, 6th International Symposium on MobileMapping Technology, 2009.

[IEEE STD 647] IEEE STD 647, IEEE Standard Specification Format Guide and Test Procedurefor Single-Axis Laser Gyros, 2006.

[IEEE STD 952] IEEE STD 952, IEEE Standard Specification Format Guide and Test Procedurefor Single-Axis Interferometric Fiber Optic Gyros, 1997.

[IEEE STD 1139] IEEE STD 1139, IEEE Standard Definitions of Physical Quantities for Fun-damental Frequency and Time Metrology, 1988.

[IEEE STD 1293] IEEE STD 1293, IEEE Standard Specification Format Guide and Test Pro-cedure for Linear, Single-Axis, Nongyroscopic Accelerometers, 1998.

12