79
GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um Servo Motor Londrina 28 de novembro de 2014

Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

  • Upload
    vudieu

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

GABRIEL FELIPE MARTINS

Implemento e Análise do Comportamento doAlgoritmo de Kalman como Estimador de

Estados de um Servo Motor

Londrina28 de novembro de 2014

Page 2: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

GABRIEL FELIPE MARTINS

Implemento e Análise do Comportamento do Algoritmo

de Kalman como Estimador de Estados de um Servo

Motor

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

Orientador: Dr. Ruberlei GainoCoorientador: Dr. Marcio Roberto Covacic

Londrina28 de novembro de 2014

Page 3: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

GABRIEL FELIPE MARTINS

Implemento e Análise do Comportamento do Algoritmode Kalman como Estimador de Estados de um Servo

Motor

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

Dr. Ruberlei GainoOrientador

Dr. Marcio Roberto CovacicCo-Orientador

Me. Francisco Granziera JúniorConvidado

Page 4: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Aos meu pais, Sonia Maria e Wagner, o amor, a dedicação e o carinho.

Ao meu irmão João Vitor, a amizade e a brandura.

A eles além da dedicatória desta conquista dedico a minha vida.

Page 5: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Agradecimentos

Inicialmente, agradeço ao Prof𝑜 Dr. Ruberlei Gaino e ao Prof𝑜 Dr. Márcio R. Covacic,

pelo aprendizado, por assumirem a responsabilidade de me orientar e acreditarem no meu tra-

balho.

Agradeço ao Rodrigo Fontes Souto, pelo apoio e por disponibilizar seus trabalhos para

auxilio no desenvolvimento deste estudo.

Um agradecimento especial ao Prof𝑜 Me. Francisco Granziera Jr., pelo auxílio e am-

paro em alguns pontos para superar desafios que surgiram durante este trabalho.

Finalmente, agradeço aos meus pais, pela confiança e a oportunidade de concretizar e

concluir mais esta caminhada na vida. Só eu posso afirmar que esforços não foram medidos

para que esta conquista fosse possivel, sem a compreensão e o apoio de ambos, incontestavel-

mente esta meta não seria alcançada. Agradeço a minha mãe, por toda paciência, compreen-

são, carinho e amor, e por vezes conseguir expressar o carinho e o orgulho que me motivaram

a seguir perante todos os obstáculos. Ao meu pai, pois se hoje estou aqui, a ele devo muitas

coisas, por seus ensinamentos e valores, como inspiração e espelho, apesar de minhas conquis-

tas particulares, minha maior vitória foi conhecer alguém com tamanho esclarecimento sobre

a vida.

Não poderia deixar de citar os amigos, companheiros que surgiram desde o início desta

graduação ou ainda antes, mas que serão carregados para além da vida acadêmica. Aos ami-

gos Wellington e ao Guilherme, se algum dia eu cheguei próximo de entender o conceito de

amizade, estes dois foram os principais responsáveis. Ao Fernando Arai, Rodrigo Guedes e

Stellio Sperandio, só estes sabem o quão árduos foram os finais de semana e as madrugadas

incessantes de estudo. Aos amigos Reginaldo Forti, Rodrigo Alastra, André Kinho, Luiz Faxi-

nal, Dário, Jefferson, Rubens Risada, Jessica Zamaia, Luis, Kelly, Cabeção, Leo, Marlão, Jão...

todos participaram de alguma forma, pessoas que contribuiram para além da minha formação,

obrigado pelos bons momentos. Posso me dizer afortunado, todos estes me tornaram mais rico

com a amizade e o companheirismo.

Page 6: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

"A evolução e o aperfeiçoamento da Matemática está intimamente conectado com o

desenvolvimento e a prosperidade do Estado."(Napoleão Bonaparte)

Page 7: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

ResumoCada vez mais, é exigido o aperfeiçoamento de metodologias empregadas em sistemas autôno-mos de controle e execução de atividades que substituem a intervenção do homem, processosque necessitam de um desempenho ótimo para a execução de determinadas tarefas. O Filtro deKalman se apresenta como uma excelente opção em ferramenta computacional para estimar oestado de sistemas dinâmicos, uma vez que este pondera a confiança de cada uma das variáveisdo processo, possibilitando qualificar melhor as tendências do sistema. Partindo desta afirma-ção, o trabalho trouxe a implementação e a análise do desempenho de um Filtro de KalmanDiscreto no software Simulink como estimador de velocidade e posição para o controle de umservo motor.

Palavras-chaves: Filtro de Kalman. DTKF. Estimadores. Sistemas de Controle. Simulink. ECRo-bot. Espaço de Estados. Sistemas Dinâmicos.

Page 8: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

AbstractThe demand for development in methodologies used in controlling and execution in autonomoussystems that replace human intervention is increasing, processes needed for an optimal perfor-mance fulfilling certain tasks. The Kalman Filter presents itself as an excellent option in com-putational tools to estimate the state of dynamic systems, once it ponders the reliability of everyvariable of the process, allowing a better qualification of the system. Hence, this work willbring the implementation and analysis of the Discrete Kalman Filter performance, as a speedand position estimator for the control of a servomotor.

Key-words: Kalman Filter. DTKF. Estimators. Control Systems. Simulink. ECRobot. StateSpaces. Dynamic Systems.

Page 9: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Lista de ilustrações

Figura 1 – Modelo de sistema linear . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Figura 2 – Modelo elétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Figura 3 – Erro de estimativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Figura 4 – Funcionamento do Filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figura 5 – Biblioteca ECRobot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figura 6 – Servo Motores acoplados . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Figura 7 – Modelo para coleta de dados . . . . . . . . . . . . . . . . . . . . . . . . . 43Figura 8 – Bloco ExpFcnCalls Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . 44Figura 9 – Function-Call no bloco sinalNXT . . . . . . . . . . . . . . . . . . . . . . . 44Figura 10 – Evento desenvolvido em Function-Call . . . . . . . . . . . . . . . . . . . . 45Figura 11 – Função inserida ao Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Figura 12 – Bloco Servo Motor Write . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Figura 13 – Configuração dos blocos Revolution Sensor Interface e Revolution Sensor

Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Figura 14 – Adição de ruído branco . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Figura 15 – Processo Mux/Demux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Figura 16 – Função DTKF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Figura 17 – Bloco DTKF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Figura 18 – Bloco Propagação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Figura 19 – Bloco Atualizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Figura 20 – Bloco Ganho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Figura 21 – Condições iniciais do sistema . . . . . . . . . . . . . . . . . . . . . . . . . 53Figura 22 – Parametros do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Figura 23 – Geração e transferência do código RTW . . . . . . . . . . . . . . . . . . . 54Figura 24 – Resposta do Servo ao estimulo . . . . . . . . . . . . . . . . . . . . . . . . 55Figura 25 – Rendimentos diferentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Figura 26 – Importação da posição coletada . . . . . . . . . . . . . . . . . . . . . . . . 56Figura 27 – Observação de controle (a) . . . . . . . . . . . . . . . . . . . . . . . . . . 57Figura 28 – Observação de controle (b) . . . . . . . . . . . . . . . . . . . . . . . . . . 57Figura 29 – Comparação observação/estimativa . . . . . . . . . . . . . . . . . . . . . . 58Figura 30 – Observação/estimativa (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Figura 31 – Observação/estimativa (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Figura 32 – Convergência das estimativas do estado . . . . . . . . . . . . . . . . . . . . 59Figura 33 – Sistema de segunda ordem (a) . . . . . . . . . . . . . . . . . . . . . . . . . 60Figura 34 – Sistema de segunda ordem (b) . . . . . . . . . . . . . . . . . . . . . . . . . 61Figura 35 – Comparação dos modelos (a) . . . . . . . . . . . . . . . . . . . . . . . . . 61

Page 10: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Figura 36 – Comparação dos modelos (b) . . . . . . . . . . . . . . . . . . . . . . . . . 62Figura 37 – Erro Residual do Filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Figura 38 – Módulo NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Figura 39 – Servo Motor Interativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Figura 40 – Servos de diversos tamanhos . . . . . . . . . . . . . . . . . . . . . . . . . 74Figura 41 – Engrenagens internas ao servo . . . . . . . . . . . . . . . . . . . . . . . . 75

Page 11: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Lista de abreviaturas e siglas

a posteriori Evento determinado após a observação

a priori Evento determinado antes da observação

AWGN Ruído Branco Gaussiano (Average White Gausian Noise)

CC Corrente Contínua

CTKF Filtro de Kalman Contínuo (Continuos Time Kalman Filter)

DTKF Filtro de Kalman Discreto (Discrete Time Kalman Filter)

ECRobot Codificador Robótico Embarcado(Embedded Coder Robot)

EKF Filtro de Kalman Estendido (Extended Kalman Filter)

KF Filtro de Kalman (Kalman Filter)

MMQ Método dos Mínimos Quadrados

OS Sistema Operacional (Operacional System)

RTW Real-Time Workshop

SM Servo Motor

USB Comunicação Serial Universal (Universal Serial Bus)

Page 12: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Lista de símbolos

Q𝑘 Correlação cruzada das variâncias do sistema

R𝑘 Correlação cruzada de variâncias de estados

z Derivada primeira de 𝑧 qualquer de valores reais no tempo

z Derivada segunda de 𝑧 qualquer de valores reais no tempo

𝜎z Desvio padrão de 𝑧 qualquer

E[z] Esperança de 𝑧 qualquer

z0 Estado inicial de 𝑧 qualquer

P𝑘 Matriz de covariância do estado

Γ𝑘 Matriz de entradas do sistema

B(𝑡) Matriz de entradas do sistema

Φ𝑘 Matriz de estados do sistema

F(𝑡) Matriz de estados do sistema

H𝑘 Matriz de saídas do sistema

K𝑘 Matriz ganho de Kalman

I Matriz Identidade (dimensão especificada)

𝜎2z Variância de 𝑧 qualquer

u𝑘 Vetor de entradas do sistema

x𝑘 Vetor de estados do sistema

y𝑘 Vetor de saídas do sistema

𝜐𝑘 Vetor ruído de medidas

w𝑘 Vetor ruído do sistema

z+ Vetor 𝑧 qualquer definido a posteriori no instante k

z− Vetor 𝑧 qualquer definido a priori no instante k

z Vetor 𝑧 qualquer de valores estimados

Page 13: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

z Vetor 𝑧 qualquer de valores observados

z Vetor 𝑧 qualquer de valores reais

z−1 Vetor 𝑧 qualquer inverso no instante k

zT Vetor 𝑧 qualquer transposto no instante k

z ∼ N[x, y] 𝑧 qualquer com distribuição normal de média 𝑥 e variância 𝑦

Page 14: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Sumário

I SOBRE O TRABALHO 15

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.4 Apresentação do trabalho . . . . . . . . . . . . . . . . . . . . . . . . 19

II REVISÃO DA LITERATURA 20

2 FUNDAMENTOS TEÓRICOS . . . . . . . . . . . . . . . . . . . . . . 212.1 Espaço de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.1 Sistemas Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.2 Estado de um Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.1.3 Variáveis de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.1.4 Representação no Espaço de Estados . . . . . . . . . . . . . . . . . . 232.2 Controlabilidade e Observabilidade . . . . . . . . . . . . . . . . . . . 252.3 Estimativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.3.1 Ajuste de Retas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.3.2 Método dos Mínimos Quadrados . . . . . . . . . . . . . . . . . . . . . . 292.3.3 Estimativa Recursiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.1 Observadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.2 O algoritmo de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.4.3 Conceitos e Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.4.4 Filtro de Kalman Discreto . . . . . . . . . . . . . . . . . . . . . . . . . . 352.4.5 Filtro de Kalman Contínuo . . . . . . . . . . . . . . . . . . . . . . . . . 362.4.6 Filtro de Kalman Estendido . . . . . . . . . . . . . . . . . . . . . . . . . 38

III METODOLOGIA EXPERIMENTAL 40

3 PROCESSO EXPERIMENTAL . . . . . . . . . . . . . . . . . . . . . . 413.1 Interface de Comunicação . . . . . . . . . . . . . . . . . . . . . . . . 413.2 Implementação do Sistema . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 15: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

3.2.1 Desenvolvimento com ECRobot . . . . . . . . . . . . . . . . . . . . . . 423.2.2 Desenvolvimento do DTKF . . . . . . . . . . . . . . . . . . . . . . . . . 483.3 Processo de Estimativa . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3.1 Coleta de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3.2 Atuação do DTKF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.4 Análise de Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

IV FECHAMENTO 64

4 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.1 Discussão dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . 654.2 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

APÊNDICE A – SIMULINK . . . . . . . . . . . . . . . . . . . . . . . 69

APÊNDICE B – NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

APÊNDICE C – ECROBOT . . . . . . . . . . . . . . . . . . . . . . . 73

APÊNDICE D – SERVO . . . . . . . . . . . . . . . . . . . . . . . . . 74

APÊNDICE E – CÓDIGOS MATLAB . . . . . . . . . . . . . . . . . 76E.1 Leitura USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76E.2 Análise de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77E.3 Análise de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Page 16: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Parte I

Sobre o Trabalho

Page 17: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

16

1 Introdução

1.1 Contextualização

Nos últimos anos e principalmente na atualidade, o uso de sistemas de controle e auto-mação de processos, vem obtendo uma atenção especial não só na comunidade científica, mastambém nos setores comerciais dos mais variados ambientes da economia mundial. No séculodos processos que visam produção máxima e custos mínimos, além de critérios de produçãoque tendem elevar a eficiência ao máximo, no mais puro espirito do “tempo é dinheiro”, os pro-jetos de controle e automação são ótimos aliados, se não a própria solução para obter condiçõesótimas de operação.

Com o passar dos tempos, cada vez mais é evidente a necessidade do desenvolvimentode novos meios para o homem realizar tarefas de maneira eficaz, versátil, com meios de ope-ração mais simples e econômicos, mas principalmente de maneira confiável. Sempre com ointuito de melhorar o próprio bem estar, inúmeras técnicas são criadas e outras antigas aprimo-radas todos os dias focando resultados ótimos que atendam às mais diversas necessidades.

Esse processo de desenvolvimento ou aprimoramento de técnicas, nem sempre é sim-ples e consiste de um conhecimento amplo do ambiente de atuação, para isso os projetos decontrole são sustentados por inúmeras ferramentas, cada qual com suas particularidades. Aindaassim, inúmeros exemplos de uma única técnica de controle podem ser encontrados atuandoem diferentes sistemas. Para o desenvolvimento de um sistema de controle, deve-se prepararuma modelagem matemática do sistema, a partir da qual se analisa o comportamento dinâmicodo mesmo e então se estabelece um “controlador”, este que fará o sistema evoluir da maneiradesejada.

A expressão "controle e automação"pode ser dividida em duas partes: Controle umacontração da expressão controle automático e incide no uso de um dispositivo autônomo paracontrole de uma tarefa ou condição de determinado sistema, e o termo automação, refere-seao uso de tecnologia para viabilizar ou facilitar atividades do homem ou ainda elevar capaci-dade física e mental. Atualmente, controle e automação são utilizados indistintamente quandoreferenciados nesta área da engenharia.

Sistemas aprimorados com técnicas de controle permitem que sistemas, antes apenasobservados, possam ser analisados e modelados de maneira que seja possível controlar o seufuncionamento. Um sistema de controle dentro de um ambiente qualquer pode ser entendidocomo uma estrutura capaz de limitar os dados de saída para um valor pré-determinado.

Como já comentado no início sobre sistemas de controle e automação, a área da enge-nharia de controle e automação é amplamente aplicável em várias áreas diferentes. O uso desistemas em malha fechada condicionou situações nas quais processos de controle automáticose tornaram aplicáveis e eficientes.

Page 18: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 1. Introdução 17

Desde a publicação de Kalman (1960), o Filtro de Kalman é visto pelo ambiente aca-dêmico como uma das contribuições mais importantes para a ciência dos sistemas de controleno século XX e podem ser encontradas extensivas pesquisas sobre o assunto. A contribuiçãode R. Kalman pode ser comparada aos trabalhos de Nyquist, em 1921 e Bode, em 1930 devidoao impacto resultante dos seus estudos. Ele vem sendo aplicado em vários problemas práticosnos mais diferentes campos, vastamente utilizado na área econômica e financeira, além de umagrande reincidência em estudos na área de navegação autônoma.

Pode-se observar o algoritmo sendo aplicado nos mais diversos trabalhos dentro daárea de controle. No trabalho de Yang (2002) o filtro é utilizado para estimar os estados econsequentemente o desempenho de um motor CC para manutenções preventivas. A dissertaçãode Leite (2004) aplica o filtro de kalman estendido para estimar os parâmetros e velocidade deum motor de indução trifásico em tempo real. A publicação de Dantas (2011) trata do controlevetorial de uma máquina assíncrona a partir da aplicação de kalman. Kuga (2012) aplicou ofiltro para estimar velocidade angular e corrente média em um motor DC para análise de atritodinâmico em rodas de reação para controle de atitude de satélites. Também no trabalho deRomano (2012) é tratado das estimativas de estado de um motor CC sem escovas a partir daaplicação do filtro de kalman para atuar em um sistema de controle junto a um controlador PID.

1.2 Motivação

O principal objetivo deste estudo é fundamentar a técnica de rastreamento de Kalmancomo ferramenta satisfatória para a estimativa dos estados de um sistema dinâmico de primeiraordem. A ideia de estimativa de estados é fundamental quando se objetiva projetar sistemas decontrole eficientes.

A estimativa de estados é uma técnica de monitoramento que condiciona um ambientecontrolado devido ao estabelecimento em tempo real de uma base de dados coerente e confiável.Entretanto para que os problemas de estimativa desenvolvam resultados coerentes, é assumidoque o modelo da planta do sistema é conhecido com exatidão. Para estes problemas, são apre-sentados diversos modelos de estimadores, cada qual com suas particularidades, que podem serfavoráveis ou não, dependendo do sistema ao qual se deseja conhecer. Os estimadores devemser projetados de tal forma que a falta de excelência no modelo da planta do sistema não interfirano processo de estimativa.

Modelos ideais quase nunca são alcançados em situações práticas, casualmente ambien-tes desfavoráveis, simplificações de comportamentos, não-linearidades e observações dotadasde incertezas impõem que os modelos utilizados em engenharia apresentem aproximações dosistema real em questão, o que justifica a necessidade de estimadores de alta eficácia.

Para justificar a escolha do filtro de Kalman como estimador para este trabalho, podemosretroceder a Segunda Guerra Mundial onde a teoria e a pratica da engenharia de controle recebeugrande incentivo com um escopo em sistemas militares. Assim, o uso de modelos matemáticos

Page 19: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 1. Introdução 18

e analíticos evoluíram rapidamente e consequentemente a execução de cálculos de maneirasmais eficientes se tornou determinante para processos de controle. Com o passar dos anos,a utilização de computadores digitais para processamento de técnicas de controle se tornourotineira.

Por definição, o Filtro de Kalman é uma ferramenta idealmente preparada para um com-putador digital. Desde a publicação do método matemático criado por Rudolf Kalman, o algo-ritmo e suas extensões, combinado com o processamento computacional, que evolui incessan-temente, vem sendo observado com cada vez mais frequência nos mais diversos estudos dentrodas áreas da engenharia, com uma particularidade maior em sistemas de navegação e rastrea-mento. Não só na engenharia é notório o surgimento de pesquisas com o filtro de Kalman emoutras áreas da comunidade acadêmica como a economia e a física.

1.3 Objetivo

1.3.1 Objetivo Geral

O objetivo deste trabalho consiste em projetar um Filtro de Kalman Discreto (DTKF)em Simulink e averiguar a eficiência do algoritmo para a estimativa de estados de um sistemadinâmico. Os estudos realizados abrangem a estimativa de velocidade e posicionamento parasistema composto por um servo motor de comportamento linear. O servo motor utilizado é umperiférico do kit didático LEGOTMMindStorms 9797, utilizado apenas como mecanismo modelopara simulação de um sistema dinâmico de primeira ordem. Para o processo de estimativa foiprojetado e implementado um modelo no software Simulink um DTKF (Discrete Time Kalman

Filter), de tal maneira que seja viável analisar e comprovar a confiabilidade dos resultadosobtidos com a utilização do estimador no sistema.

1.3.2 Objetivos Específicos

∙ Estabelecer interface de comunicação Windows/NXT.

∙ Implementar sistema de estímulo para Servor Motor Interativo.

∙ Implementar script de coleta de dados do encoder do Servo.

∙ Análise de dados no sistema real.

∙ Implementar DTKF no Simulink.

∙ Análise de dados após utilização do estimador.

Page 20: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 1. Introdução 19

1.4 Apresentação do trabalho

O trabalho está estruturado da seguinte maneira: No capítulo 2 será executado umarevisão de literatura para embasamento teórico sobre estimativas de estados e os modelos tra-dicionais dos estimadores de Kalman; No capítulo 3 será apresentado o método desenvolvidoem laboratório, além de justificar as técnicas escolhidas para execução das etapas do desen-volvimento do estudo, serão expostos os resultados obtidos através do processo experimentaldeterminado no capítulo anterior. Neste capitulo também serão desenvolvidas as análises com-parativas que justificam etapas determinantes no processo experimental. Finalmente, no capi-tulo 4 pode-se observar uma discussão conclusiva sobre o estudo, uma breve discussão sobre odesempenho e propostas para a progressão do estudo aplicado em sistemas de controle.

Page 21: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Parte II

Revisão da Literatura

Page 22: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

21

2 Fundamentos TeóricosNeste capítulo, o principal objetivo é formalizar o embasamento teórico utilizado para

a execução do estudo. Será apresentada rapidamente a teoria sobre espaço de estados e suarelação com os sistemas reais. Também será trabalhado a definição de estimativas para umamelhor ambientação. Será tratado brevemente sobre a função de observadores em sistemas decontrole e finalmente o capítulo trará uma revisão sobre os modelos tradicionais do Filtro deKalman (KF), suas caracteristicas e particularidades inclusive o DTKF que será utilizado paraa análise e fechamento deste estudo.

2.1 Espaço de Estados

Quando se trabalha com sistemas de controle é essencial a habilidade de representaçãodo modelo matemático do sistema em questão. Através das leis da física envolvidas no pro-cesso e as equações construtivas dos elementos que compõem o sistema é possível representarassiduamente o comportamento do sistema estudado. Como método mais comum, a função detransferência do sistema representa de maneira eficaz o comportamento de um sistema arbitrá-rio, obtendo assim uma representação matemática fiel da resposta em frequência do sistema.Entretanto, nos deparamos em algumas situações onde a análise de um sistema pode não sertão direta. Sistemas mais complexos com múltiplas entradas e saídas, variantes no tempo e nãolineares podem necessitar de técnicas diferentes mais favoráveis para representação do modelomatemático do sistema.

O uso de espaço de estados é um método alternativo capaz de representar o sistema tãofielmente quanto a função de transferência, entretanto este utiliza uma abordagem temporal dosistema.

2.1.1 Sistemas Lineares

Assumindo o sistema linear (Figura 1), considerando u e y como entrada e saída respec-tivamente

Figura 1 – Modelo de sistema linear

Fonte: Autoria própria

Page 23: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 22

Um sistema contínuo de ordem n, pode ser descrito pela seguinte equação diferencial:

𝑑𝑛𝑦(𝑡)𝑑𝑡𝑛

= 𝑎1𝑑𝑛−1𝑦(𝑡)

𝑑𝑡𝑛−1 + · · · + 𝑎𝑛𝑦(𝑡) + 𝑑𝑑𝑛−1𝑢(𝑡)

𝑑𝑡𝑛−1 +

(𝑏1 − 𝑑𝑎1)𝑑𝑛𝑢(𝑡)

𝑑𝑡𝑛+ · · · + (𝑏𝑛 − 𝑑𝑎𝑛)𝑢(𝑡) (2.1)

De maneira similar pode-se representar um sistema discreto de periodo T e ordem n

pela equação de diferenças:

𝑦((𝑘 + 𝑛)𝑇 ) = 𝑎1𝑦((𝑘 + 𝑛 − 1)𝑇 ) + · · · + 𝑎𝑛𝑦(𝑘𝑇 ) + 𝑑𝑢((𝑘 + 𝑛)𝑇 ) +

(𝑏1 − 𝑑𝑎1)𝑢((𝑘 + 𝑛 − 1)𝑇 ) + · · · + (𝑏𝑛 − 𝑎𝑛)𝑢(𝑘𝑇 ) (2.2)

2.1.2 Estado de um Sistema

Para a física, o estado de um sistema dinâmico é o conjunto de quantidades físicas cujasespecificações determinam completamente a evolução do sistema.

Quando aplicada uma força externa sobre um sistema no tempo 𝑡0, o seu movimento,não pode ser caracterizado enquanto não se conhece a posição e a velocidade desse sistema nomesmo instante 𝑡0 que o estímulo ocorre. Sendo asssim, estas duas informações constituem oestado do sistema no tempo 𝑡0.

O espaço de estados é muitas vezes mais interessante que outras representações do sis-tema, por permitir uma análise sobre o comportamento dinâmico do sistema, além de possibili-tar uma implementação mais simples de técnicas computacionais para solução das equações dosistema.

O estado de um sistema quando modelado, é construído por um conjunto de informaçõesque pode não ser facilmente identificáveis em termos físicos.

2.1.3 Variáveis de Estado

Uma vez entendido que um sistema linear pode ser escrito por equações diferenciais,alternativamente um sistema descrito por equações diferenciais de ordem n pode ser descritopor um conjunto de n equações de primeira ordem denominadas variáveis de estado.

Um sistema do tipo SISO de ordem n pode ser descrito por n equações diferenciais euma equação de saída. Assumindo um sistema de 3𝑎 ordem com entrada u e saída y, este podeser descrito como

��1 = 𝑓1(𝑥1, 𝑥2, 𝑥3, 𝑢)

��2 = 𝑓2(𝑥1, 𝑥2, 𝑥3, 𝑢)

��3 = 𝑓3(𝑥1, 𝑥2, 𝑥3, 𝑢)

𝑦 = 𝑓(𝑥1, 𝑥2, 𝑥3, 𝑢)

Page 24: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 23

Sendo assim as equações ��1, ��2 e ��3 são as equações de estado do sistema e 𝑦 a equação desaída. Pode-se notar que 𝑥1, 𝑥2 e 𝑥3 e a entrada u são parâmetros que determinam as equaçõesde estado e a saída do sistema. Como u é a entrada, temos 𝑥1, 𝑥2 e 𝑥3 como as variáveis deestado do sistema, ou ainda o vetor de estados:

x =

⎡⎢⎢⎢⎣𝑥1

𝑥2

𝑥3

⎤⎥⎥⎥⎦De maneira similar para o sistema discreto podemos realizar a mesma análise e deter-

minar o vetor de estados x(k)

𝑥1(𝑘 + 1) = 𝑓1(𝑥1(𝑘), 𝑥2(𝑘), 𝑥3(𝑘), 𝑢(𝑘))

𝑥2(𝑘 + 1) = 𝑓2(𝑥1(𝑘), 𝑥2(𝑘), 𝑥3(𝑘), 𝑢(𝑘))

𝑥3(𝑘 + 1) = 𝑓3(𝑥1(𝑘), 𝑥2(𝑘), 𝑥3(𝑘), 𝑢(𝑘))

𝑦(𝑘) = 𝑓(𝑥1(𝑘), 𝑥2(𝑘), 𝑥3(𝑘), 𝑢(𝑘))

É importante observar que devido ao sistema ser discreto não se tratam de equaçõesdiferenciais, agora é trabalhado com equações de diferenças, uma vez que o sistema é amostradoe não um sinal contínuo.

x(𝑘) =

⎡⎢⎢⎢⎣𝑥1

𝑥2

𝑥3

⎤⎥⎥⎥⎦2.1.4 Representação no Espaço de Estados

Um sistema de estados deve ser definido a partir de equações de estados. Para facilitaro esclarecimento do conceito, partiremos do exemplo de um sistema mecânico de 2𝑎 ordemarbitrário, tal que

𝑢(𝑡) = 𝑚𝑦 + 𝑐�� + 𝑘𝑦 (2.3)

Entendido que o sistema é de ordem 2, serão necessárias duas variáveis de estado pararepresentar o sistema. Estas devem ser as variáveis responsáveis por corresponder as condiçõesiniciais do sistema. Neste caso as duas variáveis de estado são:

𝑥1 = 𝑦 (2.4)

𝑥2 = �� (2.5)

Page 25: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 24

Derivando o sistema e realizando as substituições que relacionam 𝑥1 e 𝑥2 com 𝑦, �� e 𝑦

é observado que

��1 = �� (2.6)

𝑥2 = 1𝑚

(−𝑘𝑦 − 𝑐��) + 1𝑚

𝑢 (2.7)

E então representando a equação em termos de variáveis de estado

𝑥1 = 𝑥2 (2.8)

𝑥2 = − 𝑘

𝑚𝑥1 − 𝑐

𝑚𝑥2 + 1

𝑚𝑢 (2.9)

As equações obtidas até este ponto (Equação 2.7 e 2.9) já é dita Espaço de Estados, en-tretanto comumente para abstrair o número de entradas, saídas e variáveis de estado do sistema,este é representado de maneira matricial com o objetivo de “simplificar”, ou ainda, compactara apresentação do sistema. A representação matricial de um espaço de estados é, em formatopadrão, apresentada como:

x = Ax + Bu (2.10)

y = Cx + Du (2.11)

Onde x é o vetor de estados, u o vetor de entradas, y o vetor de saídas e A, B, C, D são asmatrizes de constantes que ponderam o sistema. Para o exemplo demonstrado acima.

x =[

𝑥1𝑥2

]x =

[𝑥1𝑥2

]u =

[𝑢(𝑡)

]

A =[

0 1− 𝑘

𝑚− 𝑐

𝑚

]B =

[01𝑚

]C =

[1 0

]D =

[0

]

Page 26: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 25

2.2 Controlabilidade e Observabilidade

Os conceitos de controlabilidade e observabilidade são fundamentais para a teoria decontrole moderno. Estes conceitos definem quando um sistema pode ser observado e o quãocontrolável este pode ser. De maneira mais direta, a controlabilidade trata de como o estado deum sistema pode ser controlado por uma entrada ou não e observabilidade indica a possibilidadedo estado inicial ser observado a partir da saída.

Para exemplificar, considere o modelo elétrico apresentado (Figura 2).

Figura 2 – Modelo elétrico

Fonte: Software OrcadTMPSpice

Neste modelo, 𝑢 a entrada do sistema, uma fonte de corrente e 𝑦 a diferença de tensão𝑉𝑦 entre os pontos a e b. Admita a tensão 𝑉1 como a tensão sobre o capacitor 𝐶1 e, de maneirasimilar, a tensão 𝑉2 como a tensão sobre o capacitor 𝐶2.

Uma vez que a segunda malha do circuito está aberta, independe do valor da entrada 𝑢,logo a tensão 𝑉2 não é afetada, ou seja, a entrada não controla 𝑉2. Além disso, a corrente quepassa pelo resistor 𝑅2 é fixa devido à entrada 𝑢 e não altera, independentemente de alteraçõesno capacitor 𝐶1, logo o estado 𝑉1 não pode ser observado pela saída. Portanto, a equação quedescreve este sistema não pode ser controlável e nem observável.

∙ Controlabilidade

– Tempo Contínuo → Um sistema é controlável se, para qualquer estado inicial 𝑥(0),em qualquer momento final 𝑡 > 0, existir uma manobra capaz de transferir o estado𝑥 para qualquer valor desejado no tempo 𝑡.

– Tempo Discreto → Um sistema é controlável se, para qualquer estado inicial 𝑥0 eum dado instante 𝑘, existir uma manobra capaz de transferir o estado 𝑥 para qualquervalor desejado no instante 𝑘.

Page 27: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 26

∙ Observabilidade

– Tempo Continuo í→ Um sistema é dito observável se, em um momento final arbi-trário 𝑡 > 0, um estado inicial arbitrário 𝑥(0) pode ser determinado unicamente como conhecimento da entrada 𝑢(𝜏) e a saída 𝑦(𝜏), para todo 𝜏 𝜖 [0, 𝑡].

– Tempo Discreto → Um sistema é observável se, em um instante qualquer 𝑘, umestado inicial qualquer 𝑢0 pode ser identificado unicamente com o conhecimento daentrada 𝑢𝑖 e a saída 𝑦𝑖, para todo 𝑖 𝜖 [0, 𝑘]

2.3 Estimativas

A habilidade de estimar consiste em formar juízo, ter opinião sobre um determinadoparâmetro com base em um julgamento de valor aproximado. Em estatística, um estimador éuma regra para calcular uma "aproximação"de uma determinada quantidade baseada em dadosobservados, de maneira que o valor determinado seja o mais próximo do valor real.

Os conceitos aqui trabalhados de estimativas serão motivados por problemas existentesdentro do ambiente de engenharia. Problemas práticos de navegação e rastreamento, determi-nação de trajetórias e sistemas dinâmicos em geral. Contudo não só em engenharia de controle,mas também em outras áreas do ambiente acadêmico, as técnicas de estimativas são frequente-mente aplicadas.

Para sistemas de controle, técnicas ótimas de estimativas têm papel fundamental parao desenvolvimento de um projeto eficiente, uma vez que, para a análise de um determinadosistema, o primeiro passo é a modelagem matemática concebido através de conceitos físicosconhecidos ou dados experimentais.

O primeiro passo para obter estimativas de um determinado sistema é a análise do mo-delo matemático do fenômeno em questão. A modelagem de um fenômeno normalmente é feitaatravés de simples observações, assim informações são coletadas sobre as taxas de variação dofenômeno (que do ponto de vista matemático são derivadas), escreve-se a equação que relaci-ona as taxas de variação e a função, isto é, a equação diferencial associada e, a partir da soluçãodesta equação, tem-se uma possível descrição do fenômeno.

Não trataremos, neste trabalho, do método no qual é obtido um modelo matemático,entretanto chegamos a um ponto interessante. Parte do processo de determinação de um modelomatemático consiste em observações do sistema.

Antes de começar uma discussão analítica sobre estimativas, é importante definir algu-mas denominações comuns que são amplamente empregadas dentro do entendimento de esti-mativas. Para qualquer variável ou parâmetro, quando trabalhamos com estimativas, existemtrês quantidades de interesse: o valor real, o valor medido e o valor estimado.

Normalmente, em qualquer situação prática, o valor real é desconhecido, através da téc-nica de estimativa, é possível aproximar-se dele através do valor estimado e o valor medido é a

Page 28: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 27

quantidade observada diretamente por um sensor. Observações (medidas) nunca são perfeitas,em qualquer ambiente onde um determinado sistema atue, na prática ele está sujeito a pertur-bações conhecidas ou não, que não são facilmente identificadas e muitas vezes impossíveis deserem isoladas. Aqui entra o papel dos estimadores. Seu principal objetivo é encontrar um valorótimo para um determinado parâmetro x, tal que este esteja suficientemente próximo do valorreal de x, a partir de uma combinação de técnicas estatísticas e as observações de x.

Tanto o valor estimado de x, denotado por ��, quanto o valor medido, denotado por ��, sãovalores que representam o valor real de x, entretanto ambos possuem erros. Podemos observarnas equações abaixo.

�� = 𝑥 + 𝜐 (2.12)

�� = �� + 𝜀 (2.13)

Na equação 2.12 podemos observar que a relação do valor real x com o valor medido�� depende de 𝜐, este que é denominado erro de medida, é responsável por representar as im-perfeições no processo de medida e é comumente aproximado por algum processo conhecido,como um ruído gaussiano por exemplo. Já na equação 2.13 temos a relação do valor real x como valor estimado �� diferenciados por 𝜀, denominado por erro residual.

2.3.1 Ajuste de Retas

Dado um sistema linear:

𝑎1𝑥1 + 𝑎2𝑥2 = 𝑏1 (2.14)

𝑎3𝑥1 + 𝑎4𝑥2 = 𝑏2 (2.15)

A resolução para 𝑥1 e 𝑥2, assumindo 𝑎1,𝑎2,𝑎3,𝑎4,𝑏1 e 𝑏2 como constantes, se dá de maneiratrivial, bastando que um dos termos seja isolado em uma equação e substituído na outra e entãoo resultado é quase que momentâneo.

𝑥1 = 𝑏1 − 𝑎2𝑥2

𝑎1

𝑎3𝑏1 − 𝑎2𝑥2

𝑎1+ 𝑎4𝑥2 = 𝑏2

𝑥2 = 𝑎1𝑏2 − 𝑎3𝑏1

𝑎1𝑎4 − 𝑎2𝑎3(2.16)

Porém, em algumas situações quando o sistema linear possui um número de variáveissignificativamente maior, a resolução pode não sair de maneira tão direta. Como possível so-lução, é possível transformar o sistema em matrizes e vetores, possibilitando uma visão maissimples sobre a solução.

Page 29: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 28

Partindo desta hipótese, considera-se o mesmo sistema linear

Ax = B (2.17)

Sendo:

A =[

𝑎1 𝑎2𝑎3 𝑎4

]x =

[𝑥1𝑥2

]B =

[𝑏1𝑏2

]

Para solução do sistema 2.17 basta que multipliquemos os dois lados da equação pelamatriz inversa de A

A−1Ax = A−1AB (2.18)

Ainda, conhecida a propriedade de matrizes onde o produto A−1A é a matriz identidadede A a solução se resume a

x = A−1B (2.19)

Apesar de necessário executar a inversa da matriz A esta solução é significativamenterápida quando tratamos de sistemas com inúmeras variáveis e uma ferramenta/software paraos cálculos. Ainda assim esse tipo de solução matricial só se aplica a casos onde o número devariáveis é idêntico ao número de equações linearmente independentes, pois a matriz A precisaser quadrada e não singular, caso contrário não é possível obter a matriz inversa A−1.

Para os problemas onde o número de equações é diferente do número de variáveis, asolução não aparenta ser tão imediata como o caso anterior, contudo a manipulação dependeda mesma propriedade de matrizes. Suponhamos um sistema linear, tal que a variável B sejadependente da variável A por um fator 𝑘. Este sistema foi acompanhado por uma série n deanalises, assim deseja-se obter o melhor resultado para 𝑘.

Neste caso o sistema em forma matricial é:

B = 𝑘A (2.20)

Sendo:

B =

⎡⎢⎢⎢⎢⎢⎣𝑏1𝑏2...

𝑏𝑛

⎤⎥⎥⎥⎥⎥⎦ A =

⎡⎢⎢⎢⎢⎢⎣𝑎1𝑎2...

𝑎𝑛

⎤⎥⎥⎥⎥⎥⎦

Page 30: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 29

Para esta situação a solução da equação 2.19 não é aplicável no sistema, observado quea matriz A possui dimensão 𝑛 × 1, então não há A−1. Logo, é necessário manipular a equação,de maneira que seja hábil utilizar a técnica para obter a solução do sistema 2.20.

Executando a produto dos dois lados da equação pela matriz transposta A𝑇 e novamenteos dois lados pelo produto (A𝑇 A)−1, assim teríamos um sistemas composto por

A𝑇 B(A𝑇 A)−1 = 𝑘A𝑇 A(A𝑇 A)−1 (2.21)

De maneira similar ao caso anterior, considerando o produto A𝑇 A uma matriz B e porconsequencia (A𝑇 A)−1 equivale a B−1, então é possivel verificar que A𝑇 A(A𝑇 A)−1 é a matrizidentidade de A, assim o problema é rapidamente resolvido

A𝑇 B(A𝑇 A)−1 = 𝑘 (2.22)

Desta maneira é possível observar um valor para 𝑘, tal que possibilita um ajuste médiopara o comportamento do sistema. Contudo esta é a melhor estimativa para o valor de 𝑘?

2.3.2 Método dos Mínimos Quadrados

Para solucionar problemas como do sistema 2.20 de maneira a obter um resultado ótimopara 𝑘, Carl Friedrich Gauss, em 1795, propôs as bases fundamentais do método dos mínimosquadrados. Esta é uma técnica de otimização matemática que procura encontrar o melhor ajustepara um conjunto de dados, tentando minimizar a soma dos quadrados das diferenças entre ovalor estimado e os dados observados.

Suponhamos que o sistema estudado agora seja semelhante ao sistema 2.20, porém nestecaso 𝑘 também representa uma matriz, ou seja, para cada observação 𝑖 do sistema, teremos umresultado 𝑘𝑖. É notório que o sistema sofre pequenas variações de uma amostra para outra denaturezas desconhecidas e não idênticas, logo para cada uma das observações é tomado umresultado 𝑘 diferente.

𝐵 = 𝑘𝐴 (2.23)

Visto que agora no sistema, k assim como B e A representam uma matrix 𝑛 × 1.

B =

⎡⎢⎢⎢⎢⎢⎣𝑏1𝑏2...

𝑏𝑛

⎤⎥⎥⎥⎥⎥⎦ k =

⎡⎢⎢⎢⎢⎢⎣𝑘1𝑘2...

𝑘𝑛

⎤⎥⎥⎥⎥⎥⎦ A =

⎡⎢⎢⎢⎢⎢⎣𝑎1𝑎2...

𝑎𝑛

⎤⎥⎥⎥⎥⎥⎦

Page 31: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 30

O objetivo do método dos mínimos quadrados (MMQ) é estimar um vetor k com talsorte que este esteja o mais próximo possível de 𝑘 real, de maneira que o sistema 2.23 seja omais verdadeiro possível. Segundo Gauss, para solucionar o problema, é necessário determinaro vetor k para o qual a soma do valor quadrático da diferença do valor estimado do sistema e acada observação 𝑖 deva ser o menor possível.

Para exemplificar o método, partiremos da ideia de um sistema com entrada x e saíday, que foi observado durante um determinado tempo, possibilitando a coleta de n amostras. Oobjetivo é estimar os parâmetros 𝑎 e 𝑏 da equação 𝑦 = 𝑎 + 𝑏𝑥 (Figura 3), com tal eficiência quea reta projetada esteja o mais próximo possível dos pontos observados.

Figura 3 – Erro de estimativa

Fonte: Adaptado notas de aula UFBA

A distância entre o ponto observado e a reta a ser ajustada, ou seja, o erro de estimativa édado por 𝑦𝑖 −𝑎−𝑏𝑥 e, de maneira similar, é trivial a dedução de que a soma do valor quadráticodeste erro pode ser descrita como

𝑞 =𝑛∑

𝑖=1(𝑦𝑖 − 𝑎 − 𝑏𝑥𝑖)2 (2.24)

Assim, para obter o resultado ótimo para os parâmetros do sistema, precisamos encon-trar o ponto mínimo da equação 2.24. Derivando, então, 2.24 em relação aos parâmetros deinteresse a e b

𝜕𝑞

𝜕𝑎= −2

𝑛∑𝑖=1

(𝑦𝑖 − 𝑎 − 𝑏𝑥𝑖) (2.25)

𝜕𝑞

𝜕𝑏= −2

𝑛∑𝑖=1

𝑥𝑖(𝑦𝑖 − 𝑎 − 𝑏𝑥𝑖) (2.26)

Page 32: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 31

A partir da derivada da função, podemos obter os pontos de mínimo igualando as equa-ções 2.25 e 2.26 a zero. Assim com os pontos de mínimo e rearranjando as equações de umamaneira conveniente, temos

𝑛𝑎 + 𝑏𝑛∑

𝑖=1𝑥𝑖 =

𝑛∑𝑖=1

𝑦𝑖 (2.27)

𝑎𝑛∑

𝑖=1𝑥𝑖 + 𝑏

𝑛∑𝑖=1

𝑥2𝑖 =

𝑛∑𝑖=1

𝑥𝑖𝑦𝑖 (2.28)

De maneira similar à solução do sistema das equações 2.20 e 2.22, pode-se representara solução de forma matricial

A𝑇 Ak = A𝑇 B (2.29)

onde:

A𝑇 A =[

𝑛∑𝑛

𝑖=1 𝑥𝑖∑𝑛𝑖=1 𝑥𝑖

∑𝑛𝑖=1 𝑥2

𝑖

]k =

[𝑎𝑏

]A𝑇 B =

[ ∑𝑛𝑖=1 𝑦𝑖∑𝑛

𝑖=1 𝑥𝑖𝑦𝑖

]

2.3.3 Estimativa Recursiva

Assume-se um problema de estimativa de uma constante escalar de um sistema nãoaleatória, dado 𝑛 medidas prévias corrompidas por ruído.

𝑧𝑛 = 𝑥 + 𝜐𝑛 (2.30)

onde 𝑧 é o valor observado, 𝑥 é a constante a ser estimada e 𝜐 representa as impurezas dosistema, aproximadas por um ruído branco gaussiano.

Para determinar a melhor estimativa para 𝑥, uma vez que o ruído 𝜐 é do tipo AWGN epossui média zero, por dedução lógica, a melhor estimativa para o valor de 𝑥 e a média de 𝑧𝑛.

��𝑛 = 1𝑛

𝑛∑𝑖=1

𝑧𝑖 (2.31)

De maneira semelhante, para uma medida adicional 𝑛 + 1

��𝑛+1 = 1𝑛 + 1

𝑛+1∑𝑖=1

𝑧𝑖 (2.32)

Executando as manipulações necessárias e buscando obter a forma mais convenientepara a análise, de maneira que a estimativa esteja sempre relacionada com medidas anteriores,a partir da equação 2.32 resulta

Page 33: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 32

��𝑛+1 = 1𝑛 + 1

𝑛+1∑𝑖=1

𝑧𝑖

= 1𝑛 + 1

𝑛

𝑛(

𝑛∑𝑖=1

𝑧𝑖 + 𝑧𝑛+1)

= 𝑛

𝑛 + 1 ��𝑛 + 𝑧𝑛+1

𝑛 + 1↓

= 𝑛

𝑛 + 1 ��𝑛 + 𝑧𝑛+1

𝑛 + 1 + ��𝑛

𝑛 + 1 − ��𝑛

𝑛 + 1↓

= ��𝑛 + 1𝑛 + 1(𝑧𝑛+1 − ��𝑛)

��𝑛+1 = ��𝑛 + 1𝑛 + 1(𝑧𝑛+1 − ��𝑛) (2.33)

Na equação 2.33, podemos identificar o ganho de sistema 1𝑛+1 , tal que atua sobre a

diferença entre o valor observado no instante 𝑛 + 1 e valor estimado �� no instante 𝑛.

2.4 Filtro de Kalman

2.4.1 Observadores

Na área de engenharia de controle, um observador ou estimador consiste em um pro-cesso dinâmico, hábil a apresentar o vetor de estados de um sistema. Este é o processo dosistema responsável por executar as estimativas de estado através dos sinais de entrada e saídado sistema.

A necessidade desta operação se deu a partir da impossibilidade de medir todos osestados de um dado sistema o qual se busca controlar, em decorrência de custo muito elevadoou ainda impossibilidade técnica. A ideia é utilizar um observador de tal maneira que sejapossível estabelecer um processo que indiretamente estimará as suas variáveis de estado.

Os observadores de estado são responsáveis por possibilitar a implementação de leis decontrole de realimentação de estados mantendo a estabilidade do sistema em malha fechada. Osestados do observador são capazes de recuperar de maneira quase ótima as trajetórias dos esta-dos do sistema observado. Então, com o estado observado, é possível implementar um sistemade controle sobre um sistema como se o estado do sistema a ser controlado fosse diretamentemedido.

Entretanto, como já comentado na seção de estimativas (seção 2.3), todo sistema estásujeito a interferências e/ou ruído, logo o comportamento do observador pode ser influenciado

Page 34: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 33

por esse tipo de perturbações existentes no processo e nas leituras do sistema. Sendo assim, édesejável que o observador esteja livre das perturbações, ou que este satisfaça algum critério dedesempenho tal que o erro de observação seja aceitável devido a influência do ruído encontradono sistema. Assim é necessário que o observador possua algum critério de desempenho de formaque as estimativas promovidas por ele preservem resultados fiáveis perante o sistema dotado deperturbações.

2.4.2 O algoritmo de Kalman

O Filtro de Kalman é um método matemático capaz de executar estimativas ótimas apartir do modelo dinâmico de um sistema corrompido por ruído branco, amplamente utilizadono desenvolvimento de tecnologias espaciais e militares.

O filtro é nomeado em homenagem a Rudolf Kalman, entretanto, anteriormente a ele,Thorvald N. Thiele e Peter Swerling desenvolveram um algoritmo similar. O desempenho doalgoritmo é tão notável que aplicações puderam ser observadas no Projeto Apollo e ainda hojeé utilizado no rastreamento e navegação de alguns projetos espaciais da NASA, sistemas denavegação de submarinos e guiamento de mísseis de cruzeiro como o Tomahawk da marinhaamericana.

Em um ponto de vista mais técnico, o Filtro de Kalman é um algoritmo para realizar, deforma eficiente, estimativas ótimas sobre um sistema dinâmico linear, onde o espaço de estadosdas variáveis não observadas é contínuo e todas as variáveis, observáveis ou não, possuem umadistribuição gaussiana.

O Filtro de Kalman é um observador capaz de desempenhar um processo de estimativarecursiva, o prefixo Filtro é devido a este minimizar o erro quadrático do sistema (a partir dasconsiderações de Gauss), assim este desempenha papel ótimo na estimativa de estados anu-lando o efeito do ruído branco sobre a medida observada. Através da observação das variáveisdisponíveis, podem ser estimadas as variáveis dos estados do sistema de maneira eficaz.

2.4.3 Conceitos e Estrutura

Para tratar do filtro de Kalman, assuma um sistema dinâmico representado no espaço deestados do tipo

˙x = Fx + Bu + w (2.34)

y = Hx + 𝜐 (2.35)

sendo x o vetor de estados, u o vetor de entradas, y o vetor de saídas do sistema. F é a matrizde estados do sistema, B a matriz de entradas e H a matriz de saídas. As variáveis w e 𝜐

representam os erros de processo e de medida respectivamente, assumidos como ruído branco,descorrelacionados. Matematicamente

Page 35: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 34

w ∼ N[0, Q] (2.36)

𝜐 ∼ N[0, R] (2.37)

E[ww𝑇 ] = Q (2.38)

E[𝜐𝜐𝑇 ] = R (2.39)

E[𝜐w𝑇 ] = 0 (2.40)

Os eventos durante o processo de estimativa ocorrem em duas etapas, a priori, dado noinstante anterior ao conhecimento da variável de observação e a posteriori, o momento após oconhecimento da variável de observação. Assim, ��−

𝑡 é a estimativa do estado a priori no tempo𝑡, tal que é conhecido todo o processo anterior a 𝑡. Da mesma forma ��+

𝑡 é a estimativa do estadoa posteriori no tempo 𝑡, uma vez que a medida 𝑦𝑡 já é conhecida.

Os erros de medidas a priori e a posteriori são dados respectivamente por

𝜐−𝑡 = x𝑡 − x−

𝑡 (2.41)

𝜐+𝑡 = x𝑡 − x+

𝑡 (2.42)

O filtro de Kalman atua maximizando a semelhança da estimativa com a medida realatravés da decomposição do erro previsto do sistema. Como proposto por Gauss, o princípiodo algoritmo de Kalman para obter a melhor estimativa, parte da ideia de que o erro obtido nasmedidas seja o mínimo possível. Sendo uma ferramenta de estimativa recursiva, o algoritmobusca de maneira semelhante à Equação 2.33 relacionar o estado a posteriori com o estado a

priori , ponderando o erro entre o valor observado 𝑦 e o valor estimado��.

Figura 4 – Funcionamento do Filtro

Fonte: Harold e Randal (2011)

Page 36: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 35

Como observado na Figura 4 estimativa através do algoritmo ocorre em duas etapas, apredição e a atualização. As equações são separadas em equações de atualização do tempo eequações de atualização da medida. Estes dois grupos funcionam acompanhadas de um sistemade feedback.

As equações de atualização do tempo são responsáveis pela predição, ou seja, desen-volvem o avanço das variáveis de estado e das covariâncias do sistema no tempo para obter asestimativas a priori. As equações de atualização das medidas são responsáveis pelo feedback

atualizando a variável observada.Desde a publicação do algoritmo, a ferramenta veio sendo adaptada para várias situa-

ções específicas, cada qual com suas vantagens e/ou particularidades.

2.4.4 Filtro de Kalman Discreto

O primeiro modelo tratado do filtro de Kalman é de interesse para sistemas onde oprocesso e as observações ocorrem de maneira discreta. O DTKF tem a forma de um estimadorde sistemas discretos comum, entretanto a o ganho de sistema ou ganho de Kalman K é definidoa partir de uma abordagem probabilística ótima, minimizando a variância do ruído do sistemapor teoria de problemas estocásticos.

Para implementar o filtro é necessário conhecer as condições iniciais, o ganho do sis-tema, as equações de propagação e as equações de atualização Crassidis e Junkins (2012). Omodelo para o sistema é dado por

x𝑘+1 = Φ𝑘x𝑘 + Γ𝑘u𝑘 + ϒ𝑘w𝑘 (2.43)

y𝑘 = H𝑘x𝑘 + 𝜐𝑘 (2.44)

Os parâmetros de inicialização do processo de estimativas são

x(𝑡0) = x0 (2.45)

P0 = E[x(𝑡0)x𝑇 (𝑡0)] (2.46)

A equação que determina o ganho de Kalman K é dada pela relação da matriz de saídasH𝑘, a matriz de covariâncias P𝑘 e a variância do erro de medida R𝑘

K𝑘 = P−𝑘 H𝑇

𝑘 [H𝑘P−𝑘 H𝑇

𝑘 + R𝑘]−1 (2.47)

As equações de atualização do sistema, são apresentadas como x+𝑘 e P+

𝑘

x+𝑘 = x−

𝑘 + K𝑘[y𝑘 − H𝑘x−𝑘 ] (2.48)

P+𝑘 = [I − K𝑘H𝑘]P−

𝑘 (2.49)

Page 37: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 36

sendo I a matriz identidade da matriz de estados Φ𝑘. Em Crassidis e Junkins (2012) é possívelobservar a dedução da Equação 2.49, entretanto a equação pode ser definida como

P+𝑘 = [I − K𝑘H𝑘]P−

𝑘 [I − K𝑘H𝑘]−1 + K𝑘R𝑘K𝑇𝑘 (2.50)

Esta forma é comumente encontrada em outras literaturas como Harold e Randal (2011).As equações de propagação no processo de estimativa do filtro são dadas por x−

𝑘 e P−𝑘

x−𝑘+1 = Φ𝑘x+

𝑘 + Γ𝑘u𝑘 (2.51)

P−𝑘+1 = Φ𝑘P+

𝑘 Φ𝑇𝑘 + ϒ𝑘Q𝑘ϒ𝑇

𝑘 (2.52)

2.4.5 Filtro de Kalman Contínuo

O filtro de Kalman contínuo é uma derivação do algoritmo que utiliza sistemas e me-dições no tempo contínuo. Entretanto, esta configuração do algoritmo não é muito utilizada naprática, devido ao uso difundido de computadores digitais na atualidade. Contudo, o modelofornece uma perspectiva útil para pequenos intervalos de amostragem, quando a taxa é inferiorao limite de Nyquist.

Segundo Crassidis e Junkins (2012), duas abordagens deste modelo são apresentados eproduzem a mesma estrutura para o filtro. A primeira apresenta uma estrutura do tempo conti-nuo diretamente, já a segunda, utiliza uma formulação de tempo discreto equivalente a formado tempo contínuo.

CTKF no Tempo Continuo

Considere o modelo para o sistema

˙x(𝑡) = F(𝑡)x(𝑡) + B(𝑡)u(𝑡) + G(𝑡)w(𝑡) (2.53)

y(𝑡) = H(𝑡)x(𝑡) + 𝜐(𝑡) (2.54)

onde x(𝑡) é o vetor de estados e y(𝑡) o vetor de variáveis observáveis do sistema, as matrizesF, B, H e G representam os valores de estados, entradas, saídas e as incertezas do processorespectivamente. Os parâmetros iniciais são

x(𝑡0) = x0 (2.55)

P0 = E[x(𝑡0)x𝑇 (𝑡0)] (2.56)

sendo x(𝑡0) a estimativa inicial para o vetor de estados e P0 a matriz de covariâncias com valorinicial. O ganho de sistema é

Page 38: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 37

K(𝑡) = P(𝑡)H𝑇 (𝑡)R−1(𝑡) (2.57)

O ganho de sistema K(𝑡) também é referenciado como ganho de Kalman. A covariânciado sistema é dada por

P(𝑡) = F(𝑡)P(𝑡) + P(𝑡)F𝑇 (𝑡) − P(𝑡)H𝑇 (𝑡)R−1(𝑡)H(𝑡)P(𝑡) (2.58)

+G(𝑡)Q(𝑡)G𝑇 (𝑡)

e finalmente a estimativa ˙x(𝑡) é dada por

˙x(𝑡) = F(𝑡)x(𝑡) + B(𝑡)u(𝑡) + K(𝑡)[y(𝑡) − H(𝑡)x(𝑡)] (2.59)

CTKF Discreto

A maioria dos sistemas dinâmicos envolvem um modelo contínuo e observações discre-tas a partir de um processo de sinal digital. Sendo assim, o modelo pode ser dado por

x(𝑡) = F(𝑡)x(𝑡) + B(𝑡)u(𝑡) + G(𝑡)w(𝑡) (2.60)

y(𝑡) = H(𝑡)x(𝑡) + 𝜐(𝑡) (2.61)

Esta estrutura do filtro de Kalman é significativamente simples. A estimativa do estado𝑥− é propagada no tempo antes da ocorrência das observações no tempo 𝑡1, em seguida otempo discreto é atualizado, ou seja, ocorre a observação e então é recalculado o valor estimado𝑥−, agora denominado 𝑥+, finalmente esta estimativa é utilizada como condição inicial parapropagar um novo 𝑥− para um novo momento 𝑡2 e assim o processo recomeça. Os parâmetrosiniciais são dados por

x(𝑡0) = x0 (2.62)

P0 = E[x(𝑡0)x𝑇 (𝑡0)] (2.63)

O ganho de Kalman para essa abordagem é obtida a partir da equação

K(𝑡) = [P(𝑡)H𝑇 (𝑡) + G(𝑡)S𝑇 (𝑡)]R−1(𝑡) (2.64)

É notável nessa equação a matriz S dada pela esperança dos erros E[w(𝑡)𝜐𝑇 (𝑡)]. A equa-ção da covariância é

Page 39: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 38

P(𝑡) = F(𝑡)P(𝑡) + P(𝑡)F𝑇 (𝑡) − K(𝑡)R𝑇 (𝑡)K−1(𝑡) + G(𝑡)Q(𝑡)G𝑇 (𝑡) (2.65)

E ainda temos a estimativa do vetor de estados, dado por

˙x(𝑡) = F(𝑡)x(𝑡) + B(𝑡)u(𝑡) + K(𝑡)[y(𝑡) − H(𝑡)x(𝑡)] (2.66)

2.4.6 Filtro de Kalman Estendido

Comumente, os problemas de estimativas estão relacionados a sistemas não lineares.Por várias razões, o processo para estimar estados em modelos não-lineares é consideravel-mente difícil. Para estes modelos, de acordo com Crassidis e Junkins (2012) o filtro de KalmanEstendido é uma solução viável para esse tipo de problema. O filtro de Kalman Estentido podeser aplicado tanto para sistemas contínuos, quanto para sistemas discretos.

EKF no Tempo Contínuo

Assume-se o modelo

x(𝑡) = f(x(𝑡), u(𝑡), 𝑡) + G(𝑡)w(𝑡) (2.67)

y(𝑡) = h(x(𝑡), 𝑡) + 𝜐(𝑡) (2.68)

onde f(x(𝑡), u(𝑡), 𝑡) e h(x(𝑡), 𝑡) são funções contínuas e deriváveis. Os parâmetros de entradasão

x(𝑡0) = x0 (2.69)

P0 = E[x(𝑡0)x𝑇 (𝑡0)] (2.70)

A equação para o ganho de Kalman é

K(𝑡) = P(𝑡)H𝑇 (𝑡)R−1(𝑡) (2.71)

A equação para a covariância do sistema é

P(𝑡) = F(𝑡)P(𝑡) + P(𝑡)F𝑇 (𝑡) − P(𝑡)H𝑇 (𝑡)R−1(𝑡)H(𝑡)P(𝑡) (2.72)

+G(𝑡)Q(𝑡)G𝑇 (𝑡)

onde F(𝑡) e H(𝑡) são respectivamente 𝜕f𝜕x e 𝜕h

𝜕x . E a equação para o vetor de estimativas

˙x(𝑡) = f(x(𝑡), u(𝑡), 𝑡) + K(𝑡)[y(𝑡) − h(x(𝑡), 𝑡)] (2.73)

Page 40: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 2. Fundamentos Teóricos 39

EKF Iterativo

A derivação estendida do filtro de Kalman assume que o valor verdadeiro 𝑥 está real-mente próximo da estimativa ��. Essa restrição pode acabar sendo um obstáculo para problemasnão-lineares com condições iniciais estimadas muito distantes dos valores reais. Provar a con-vergência do EKF é significativamente difícil, mesmo para sistemas simples onde a condiçãoinicial não é convenientemente escolhida ou desconhecida. Mesmo assim esta derivação dofiltro é amplamente utilizado na prática.

O filtro de Kalman Estendido pode ser melhorado calculando iterações repetidamentesobre a linearização estimada para o sistema não-linear, desenvolvendo assim 𝑘 processos nointervalo 𝑡𝑘−1 → 𝑡𝑘. Essa derivação melhorada sobre o sistema é conhecida como Filtro deKalman Estendido Iterativo.

As equações para esse sistema são:

x(𝑡) = f(x(𝑡), u(𝑡), 𝑡) + G(𝑡)w(𝑡) (2.74)

y𝑘 = h(x𝑘) + 𝜐𝑘(𝑡) (2.75)

E as condições iniciais são:

x(𝑡0) = x0 (2.76)

P0 = E[x(𝑡0)x𝑇 (𝑡0)] (2.77)

com o ganho de Kalman definido como

K𝑘 = P−𝑘 H𝑇

𝑘 (x−𝑘 )[H𝑘(x−

𝑘 )P−𝑘 H𝑇

𝑘 (x−𝑘 ) + R𝑘]−1 (2.78)

sendo H𝑇𝑘 (x−

𝑘 ) = 𝜕h𝜕x . Então as equações de atualização x+

𝑘 , P+𝑘 e as equações de propagação

x(𝑡), P(𝑡) são

˙x(𝑡) = f(x(𝑡), u(𝑡), 𝑡) (2.79)

P(𝑡) = F(𝑡)P)(𝑡) + P)(𝑡)F𝑇 (𝑡) + G)(𝑡)Q)(𝑡)G𝑇 (𝑡) (2.80)

com a variável F(𝑡) entendida como 𝜕f𝜕x . Para este tipo de abordagem, o sistema é linearizado

em torno da média estimada dos estados.

Page 41: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Parte III

Metodologia Experimental

Page 42: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

41

3 PROCESSO EXPERIMENTAL

Neste capítulo, será discutido sobre a metodologia adotada para o desenvolvimento daparte prática do experimento, os critérios adotados para implementação do sistema, as técnicasadotadas para a execução da coleta de dados, manipulações necessárias sobre os dados obtidose a maneira como foram estabelecidos os resultados do estudo.

3.1 Interface de Comunicação

Uma vez entendido que a proposta do estudo seria o uso do software SimulinkTMpara aimplementação do Filtro de Kalman Discreto para o controle de um sistema dinâmico de pri-meira ordem, neste caso o Servo Motor Interativo do kit LEGOTMMindStorms 9797, a primeiraetapa para o avanço do estudo é a existência de uma interface de comunicação entre o soft-

ware Simulink (Apêndice A) distribuído pelo grupo The MathWorksTMexecutado no ambiente𝑊𝑖𝑛𝑑𝑜𝑤𝑠8 com o módulo NXT do kit MindStorms (Apêndice B).

Para executar tal tarefa, segundo Harold e Randal (2011) a ferramenta Embedded Coder

Robot ou simplesmente ECRobot é apresentada como solução. O ECRobot pode ser obtido nositio do grupo The MathWorksTMdefinido como um pacote de softwares descritos como code-

generator para o módulo NXT do kit LEGOTMMindStorms baseado em um modelo do Simu-link. O ECRobot foi obtido no seguinte endereço

ℎ𝑡𝑡𝑝 : //𝑤𝑤𝑤.𝑚𝑎𝑡ℎ𝑤𝑜𝑟𝑘𝑠.𝑐𝑜𝑚/𝑚𝑎𝑡𝑙𝑎𝑏𝑐𝑒𝑛𝑡𝑟𝑎𝑙/𝑓𝑖𝑙𝑒𝑒𝑥𝑐ℎ𝑎𝑛𝑔𝑒/25207 − 𝑒𝑐𝑟𝑜𝑏𝑜𝑡𝑖𝑛𝑠𝑡𝑎𝑙𝑙𝑒𝑟 −− − 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑖𝑒𝑑 − 𝑖𝑛𝑠𝑡𝑎𝑙𝑙𝑎𝑡𝑖𝑜𝑛 − 𝑜𝑓 − 𝑡𝑜𝑜𝑙𝑠 − 𝑓𝑜𝑟 − 𝑒𝑚𝑏𝑒𝑑𝑑𝑒𝑑 − 𝑐𝑜𝑑𝑒𝑟 − 𝑟𝑜𝑏𝑜𝑡

O host oferece um script executável em Matlab, o qual executa download e instala-ção automatizada de uma série de programas necessários para a utilização do ECRobot. Apre-sentado em 2009 com atualizações até 2012, o pacote foi testado e executado no ambiente𝑊𝑖𝑛𝑑𝑜𝑤𝑠𝑋𝑃/𝑉 𝑖𝑠𝑡𝑎/7. O script oferece um manual de instalação com o passo-a-passo e oprocedimento para correção de alguns possíveis erros que possam ocorrer durante o processo.

Contudo, o script foi executado no sistema operacional 𝑊𝑖𝑛𝑑𝑜𝑤𝑠8 com o software

Matlab 32-bits e alguns dos programas necessários para utilização do ECRobot foram instaladosde maneira manual, uma vez compreendido que o script segue uma série de comandos pré-programados e alguns dos websites definidos no script para o download dos softwares de basesão inexistentes (Apêndice C).

Page 43: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 42

3.2 Implementação do Sistema

O projeto foi implementado em duas etapas. Simultaneamente, foi desenvolvido umprotótipo físico estruturado com os componentes do kit MindStorms conectado ao OS Windows

8 através de uma conexão USB. A estrutura desenvolvida no Simulink é composta por doismodelos. O primeiro é desenvolvido para executar o funcionamento da estrutura física, para darestímulo ao servo e executar a leitura do encoder do motor, já o segundo modelo é o implementode um bloco no Simulink capaz de executar a estimativa de estados a partir do DTKF para entãoexecutar as estimativas dos estados do sistema.

3.2.1 Desenvolvimento com ECRobot

Após instalado corretamente, o ECRobot forneceu uma biblioteca de blocos para o Si-mulink (Figura 5), referente às mais diferentes funcionalidades do kit LEGOTMMindStorms

Figura 5 – Biblioteca ECRobot

Fonte: Software Simulink

Uma vez com a biblioteca ECRobot instalada no sistema, foi possível implementar osistema simulado para executar a coleta de dados na qual o DTKF iria atuar. O objetivo agora

Page 44: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 43

é implementar um sistema capaz de estimular o Servo Motor Interativo do kit MindStorms e,simultaneamente, conseguir executar a leitura (pressuposta ruidosa) do encoder acoplado aodispositivo. Embora seja projeto simplista, o objetivo do estudo é analisar o comportamento doDTKF em sistemas dinâmicos de primeira ordem, assim o modelo adotado julgou-se eficaz parao propósito.

O sistema físico é dado por dois Servo Motores Interativos (Apêndice D) conectados aomódulo NXT do kit MindStorms. Os servos foram acoplados um ao outro (Figura 6) de maneiraque o eixo de ambos executasse o movimento simultâneo e idêntico (o motivo pelo qual osistema foi estruturado desta maneira será justificado mais a frente no trabalho). O móduloNXT ficou responsável por enviar o estímulo ao servo e simultaneamente executar a leitura doencoder do motor, este que retorno a posição angular em graus do eixo.

Figura 6 – Servo Motores acoplados

Fonte: Autoria própria

O modelo desenvolvido em Simulink (Figura 7) é composto pelos blocos Servo Motor

Interface, Revolution Sensor Interface e USB Tx Interface. Os blocos de interface são um re-querimento do pacote ECRobot para gerar o código RTW enviado ao NXT e se estabelecemfora do subsistema implementado.

Figura 7 – Modelo para coleta de dados

Fonte: Software Simulink

Page 45: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 44

O primeiro bloco do modelo ExpFcnCalls Scheduler é responsável por determinar e“organizar” os eventos que o NXT executará (Figura 8), ele determina a frequência do function-

call do sistema. O bloco foi configurado para executar a rotina do modelo a cada 10𝑚𝑠. Estebloco foi conectado a um bloco demux, mesmo existindo apenas uma função de entrada [Harolde Randal (2011)] determinam como necessário o uso deste bloco para o correto funcionamentodo ECRobot.

Figura 8 – Bloco ExpFcnCalls Scheduler

Fonte: Biblioteca ECRobot

A saída do bloco demux foi conectada ao bloco sinalNXT, este um sub-sistema que exe-cuta uma chamada de função (Figura 9). Também é notável a presença de blocos de anotaçõescom call-back, sendo nxtbuild(‘sinalNXT’,’build’) e nxtbuild(‘sinalNXT’,’rxeflash’), funções dopacote ECRobot responsáveis por gerar o código que executa a função desenvolvida no modeloe alocação do código no módulo NXT respectivamente.

Figura 9 – Function-Call no bloco sinalNXT

Fonte: Software Simulink

Page 46: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 45

O uso de um bloco Function-Call gera automaticamente um bloco 𝑓() que indica queos eventos desenvolvidos nesta interface fazem parte da função. Na Figura 10 pode-se observaro comportamento do modelo desenvolvido para coleta de dados. Para estimular o Servo MotorIterativo em modo velocidade, foi definido um bloco de valor constante 80. Segundo Harolde Randal (2011), o motor opera com um estímulo de intensidade ±100, entretanto o manualdo kit MindStorms informa que em velocidade máxima o motor pode apresentar instabilidade,assim assumiu-se que 80% da intensidade máxima como sinal de entrada.

Figura 10 – Evento desenvolvido em Function-Call

Fonte: Software Simulink

O bloco Saturation atua como uma proteção para o sistema, entendido que o servoatua com um sinal de entrada variando entre ±100 ele é um limitador para este limiar. Emseguida é observado o bloco Data Type Conversion que executa a conversão do sinal para 𝑖𝑛𝑡8,a codificação operacional de entrada para o servo.

Figura 11 – Função inserida ao Servo

Fonte: Software Simulink

Em seguida conectado ao Data Type Conversion há o bloco Servo Motor Write o qual

Page 47: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 46

entrega o sinal ao motor. Neste caso, determinado como 𝐵, referente ao acesso 𝐵 do móduloNXT.

Figura 12 – Bloco Servo Motor Write

Fonte: Software Simulink

O uso de dois servos acoplados se justifica neste momento, como já observado Figura 7e Figura 10, os blocos que caracterizam o encoder, Revolution Sensor Interface e Revolution

Sensor Read então configurados para atuar sobre ao acesso 𝐴 do módulo NXT. Inicialmente,a proposta para o projeto seria coletar o deslocamento do eixo do servo através do encoder dopróprio motor, entretanto o pacote ECRobot mostrou algumas limitações, impossibilitando aexecução do envio do sinal e simultaneamente executar a leitura do encoder do motor. Devidoa tais limitações, a solução se deu ao uso de dois Servo Motores Interativos, um exclusivamentepara promover a rotação do eixo e o segundo em eixo livre monitorando apenas o encoder

(Figura 12 e Figura 13).

Figura 13 – Configuração dos blocos Revolution Sensor Interface e Revolution Sensor Read

Fonte: Software Simulink

Ainda assim, mesmo em eixo livre o segundo servo apresenta uma carga significantepara o sistema, contudo o objetivo principal do experimento é a análise do implemento de um

Page 48: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 47

DTKF para obter a estimativa ótima sobre o comportamento do sistema. A carga adicional teminfluência direta sobre a velocidade do motor, mas não no comportamento do sistema, mantendoa curva de resposta do motor semelhante, que portanto, pode ser relevada.

É possível notar (Figura 14), somando a informação fornecida pelo encoder do Servo,um bloco Random Number, este com o objetivo de contrastar o ruído de observação do sistema.Um valor estocástico de média zero e variância 𝜎2 = 30 implementa ao sistema um ruído demedida inferior a 5% (variância determinada após análise do modelo de controle (Figura 27)).Conectado a fonte de ruído é observado um Data Type Conversor que converte o valor em umacodificação 𝑖𝑛𝑡32, observado que este é a codificação usada pelo encoder. O bloco de saturaçãofoi implementado a limitar a leitura mínima em zero.

Figura 14 – Adição de ruído branco

Fonte: Software Simulink

O diagrama de blocos conectado ao Revolution Sensor Read (Figura 15) é um processode “multiplexação” da informação recebida do encoder e em seguida efetuado um processo dedemultiplexação com o bloco demux e então conectado ao bloco USB Tx Write responsávelpela comunicação via USB. Esta operação é dada como necessária devido ao bloco Revolution

Sensor Read trabalhar com dados 𝑖𝑛𝑡64 e a leitura serial da conexão USB é do tipo 𝑢𝑖𝑛𝑡8.

Figura 15 – Processo Mux/Demux

Fonte: Software Simulink

Page 49: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 48

O processo de multiplexação consiste em uma ponderação dos bits mais significativos dainformação recebida do encoder e o script utilizado (Apêndice E) para a leitura da conexão USBé uma adaptação de um script utilizado em um dos exemplos encontrados no pacote ECRobot.

3.2.2 Desenvolvimento do DTKF

O segundo modelo desenvolvido no Simulink (Figura 16) executa, basicamente, a tarefade estimativa através do DTKF para uma entrada qualquer. Foi implementado um bloco DTKFo qual executa o algoritmo Filtro de Kalman Discreto para uma entrada qualquer através dobloco Saída observável do sistema.

Figura 16 – Função DTKF

Fonte: Software Simulink

Como saída, o bloco retorna no Workspace do Matlab uma matriz estimado onde adiagonal principal contém as variáveis de estado estimadas e a matriz covariancia com as va-riâncias e covariâncias dos estados durante o processo estimativo. Ainda é possível obter osdados de entrada na variável observado, também disponível no Workspace.

O bloco DTKF executa o cálculo das estimativas dos estados do sistema e foi imple-mentado buscando possibilitar modificações rápidas, para que o bloco pudesse ser implemen-tado em qualquer sistema dinâmico linear. Os principais parâmetros estão alocados em blocosde fácil acesso, de maneira que com um número mínimo de reconfigurações o algoritmo possaser ajustado.

No bloco DTKF (Figura 17) foram implementadas as equações apresentadas na seção2.4.4, separada em dois blocos principais: PROPAGAÇÃO e ATUALIZAÇÃO.

Page 50: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 49

Figura 17 – Bloco DTKF

Fonte: Software Simulink

Propagação

No bloco propagação, foram implementadas as equações 2.51 e 2.52, sofridas de algu-mas modificações consequentes de considerações tomadas sobre o projeto.

A equação 2.51 é dependente da matriz de estados Φ𝑘, do vetor de estados x+𝑘 , da matriz

de entradas Γ𝑘 e do vetor de entradas u𝑘. Contudo, para o estudo sugerido, o sistema não é“perturbado” por fontes externas, logo o segundo termo da equação é anulado, resultando

x−𝑘+1 = Φ𝑘x+

𝑘 (3.1)

Já a equação 2.52 é dependente da matriz de estados Φ𝑘, da matriz de covariâncias P+𝑘 ,

da matriz dos ruídos de sistema ϒ𝑘 e Q𝑘 sendo o vetor de variância dos ruídos de sistema.Para o sistema estudado, os ruídos que compõem o sistema são julgados todos consequentes deobservações, assim a equação pode ser simplificada

Page 51: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 50

P−𝑘+1 = Φ𝑘P+

𝑘 Φ𝑇𝑘 (3.2)

Assumindo essas considerações o bloco Propagação (Figura 18), foi implementado deacordo com as equações 3.1 e 3.2 onde a entrada Matriz de Estados representa a matriz deestados, as entradas Vetor de Estados e Matriz de Covariancia representam respectivamentex+

𝑘 e P+𝑘 , o bloco Math Function executa a função de transpor a entrada Matriz de Estados e os

blocos Product executam a multiplicação de matrizes, retornando como saída para o subsistemax−

𝑘+1 e P−𝑘+1 representados por Vetor de Estados a priori e Matriz de Covariancia a priori

Figura 18 – Bloco Propagação

Fonte: Software Simulink

Atualização

O bloco Atualização (Figura 19) é responsável por calcular a equação 2.48 e tambéma equação 2.50, entretanto para simplificar o modelo esta poderia ser substituída pela equação2.49, sabido que as duas são equivalentes. Ainda no bloco Atualização é executado o cálculodo ganho de Kalman através do bloco Ganho.

Page 52: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 51

Figura 19 – Bloco Atualizacao

Fonte: Software Simulink

As entradas Matriz de Covariância, Variâncias de Estado e Matriz de Saídas represen-tam P−

𝑘 , R𝑘 e H𝑘 respectivamente, as entradas Vetor de Estados e Variavel Observavel represen-tam o vetor de estados x−

𝑘 e o vetor de variáveis observáveis, a saída do sistema y𝑘 e finalmentea entrada Matriz de Estados representa a matriz de estados Φ𝑘 e o bloco Identity Matrix gerauma matriz identidade para a matriz de entrada ao bloco.

Os blocos Product realizam a multiplicação de matrizes e os blocos Add e Math Func-

tion promovem as somas e transposição de matrizes.No bloco Ganho (Figura 20), é executado o cálculo da equação 2.47. O bloco Math

Function executa a transposição do sinal de entrada. Neste caso ele gera a matriz H𝑇𝑘 , os blocos

Product e Divide promovem as multiplicações e devidas divisões de matrizes. O bloco Add

executa uma soma e finalmente o bloco Ganho devolve como saída Ganho K a matriz K𝑘.

Figura 20 – Bloco Ganho

Fonte: Software Simulink

Page 53: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 52

Ainda no bloco DTKF (Figura 17) foram definidos os parâmetros de inicialização dosistema (Figura 21), a matriz de covariância P0 e o vetor de estados x0, também foram caracte-rizados neste sub-sistema a matriz de estados Φ𝑘, a matriz de saída H𝑘 e o vetor de variânciasR𝑘.

Para implementar tais variáveis, foi executada uma análise do modelo do sistema noqual o DTKF iria atuar. Como já justificado acima, todo o ruído do sistema foi entendido comoruído de observações que a partir da estrutura física do protótipo, permitia a observação doposicionamento 𝑦 do eixo do motor. Entretanto, os estados de interesse para o estudo são posição𝑆𝑠𝑚 e velocidade 𝑉𝑠𝑚 compreendido que ��𝑠𝑚 = 𝑉𝑠𝑚. Assim resulta um sistema, tal que:

x𝑘+1 = Φ𝑘x𝑘 (3.3)

y𝑘 = H𝑘x𝑘 + 𝜐𝑘 (3.4)

Φ𝑘 =[

1 𝑇𝑎

0 1

]x𝑘 =

[𝑆𝑠𝑚

𝑉𝑠𝑚

]H =

[1 0

]

Para determinar a matriz de estados Φ𝑘, Zarchan e Mussoff (2000) apresenta a deduçãoa partir das equações de Riccati para processos com ruído, onde 𝑇𝑎 é dado como a taxa deamostragem do sistema. Ainda foi assumido que 𝜐𝑘 se comporta como uma distribuição normalgaussiana.

𝜐𝑘 ∼ N[0, R𝑘] (3.5)

O valor para vetor de variância do sistema R𝑘 será representado por uma constante,de maneira que existe apenas uma variável de observação no sistema. A taxa de amostragem𝑇𝑎 é obtida da configuração do bloco ExpFcnCall Scheduler onde foi definido a frequência derotinas, logo 𝑇𝑎 = 0.01𝑠.

Os blocos Matriz de Saidas, Matriz de Estados e Variancia de Estados, definiram osparâmetros do algoritmo (Figura 22), já determinados nas equações 3.3, 3.4 e 3.5. As configu-rações implementadas no modelo a partir dos blocos 𝑃0 e 𝑥0, que determinaram as condiçõesiniciais para a matriz de covariâncias e o vetor de estados, foram julgadas considerando a posi-ção inicial do eixo do servo 𝑆𝑠𝑚 = 0 e a matriz de covariância a partir de exemplos encontradosem [Harold e Randal (2011)] e [Crassidis e Junkins (2012)], onde os valores iniciais se mantemna ordem de 106.

x0 =[

00

]P0 =

[106 00 106

]

Page 54: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 53

Figura 21 – Condições iniciais do sistema

Fonte: Software Simulink

Figura 22 – Parametros do sistema

(a) Matriz de Estados (b) Variância do ruído

(c) Matriz de saidas

Fonte: Software Simulink

Page 55: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 54

3.3 Processo de Estimativa

3.3.1 Coleta de Dados

Uma vez com toda a estrutura montada e configurada, iniciou-se a coleta de dados doprotótipo. Para executar a observação do encoder, foi utilizado, a interface do software Matlab,a partir dos scripts desenvolvidos durante o processo experimental.

Após o modelo (Figura 7) concluído, com o auxílio do pacote ECRobot executando onxtbuild(‘sinalNXT’,’build’) o código foi gerado e em seguida o comando nxtbuild(‘sinalNXT’,

’rxeflash’). Os comandos nxtbuild(‘sinalNXT’,’build’) e nxtbuild(‘sinalNXT’,’rxeflash’) devemser executados com o módulo NXT conectado ao computador e mantido ligado durante o pro-cesso. A geração do código pode ser acompanhada na Command Window da interface Matlab,enquanto o código é gerado os processos vão sendo impressos em tela (Figura 23). No processode transferência também é possivel observar o progresso na tela.

Figura 23 – Geração e transferência do código RTW

Fonte: Software Matlab

Então ao carregar o código no módulo NXT com a execução do script E, o sistemaera estimulado pelo Servo Motor Interativo alocado no acesso 𝐵 do módulo NXT e os dadostransferidos pelo encoder do motor alocado no acesso 𝐴 durante um período de dois minutos,o suficiente para coletar doze mil amostras.

Page 56: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 55

Figura 24 – Resposta do Servo ao estimulo

Fonte: Autoria própria

É importante esclarecer que todo o procedimento de coleta de dados (Figura 24) o mó-dulo NXT foi alimentado com o auxílio de uma fonte regulável com determinada tensão apli-cada, tal que a carga do bloco se estabilizasse em 85%, o equivalente a 𝑉𝑖𝑛 = 8, 40 ± 0, 05 [𝑉 ].Esta decisão se julgou necessária, pois após observar as primeiras coletas executadas com obloco alimentado de maneira convencional, os resultados obtidos não apresentavam um ren-dimento semelhante (Figura 25), mesmo executados durante um mesmo intervalo de tempo ealimentados com a mesma fonte. Uma vez compreendido que as pilhas não forneciam umaalimentação estável durante o processo de coleta, foi definido como solução o uso da fonteregulável para fornecer a estabilidade necessária.

Figura 25 – Rendimentos diferentes

Fonte: Autoria própria

Page 57: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 56

Novamente, a carga máxima não foi adotada para alimentar o módulo NXT seguindorecomendações sugeridas no manual do kit NXT, de maneira a prezar a estabilidade de funcio-namento do sistema.

3.3.2 Atuação do DTKF

Após executado o processo de coleta, os dados recebidos do encoder do Servo Motorforam armazenados em uma variável no Workspace do Matlab e então, com o implemento dobloco From Workspace, a informação foi simulada como entrada para o DTKF (Figura 26).

Figura 26 – Importação da posição coletada

Fonte: Software Simulink

Como já discutido no início da subseção 3.2.2, o modelo implementado para o filtrofornece como saída as matrizes observado, estimado e covariância, contudo um script (Apên-dice E) foi implementado onde as saídas são utilizadas para obter os gráficos de comparaçãodos resultados coletados e os resultados estimados.

3.4 Análise de Resultados

Após todos os dados coletados e enfim simulados no DTKF implementado no Simulink,os resultados foram tratados com um script em Matlab (Apêndice E).

Inicialmente, para possuir uma referência de análise, executou-se uma série de observa-ções do sistema removendo a fonte de ruído (bloco Random Number da Figura 14). Foi obtidoo desempenho do motor em posição com o auxílio do encoder e para o gráfico da velocidade,executou-se a derivada do sinal observado (Figura 27 e Figura 28).

Ainda sobre a coleta, entendido que o processo de inserção de ruído é estocástico, parauma análise mais elaborada do processo é interessante a execução de um número elevado darotina de coleta. Uma série de 24 rotinas de observações e estimativas foram executadas.

Page 58: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 57

Figura 27 – Observação de controle (a)

Fonte: Autoria própria

Figura 28 – Observação de controle (b)

Fonte: Autoria própria

Executada a análise de controle, a fonte de ruído foi realocada no modelo e então oprocesso de observação e estimativa foi executado (Figura 29).

Page 59: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 58

Figura 29 – Comparação observação/estimativa

Fonte: Autoria própria

O gráfico azul são os estados posição e velocidade observados pelo sistema, já as curvasvermelhas representam as estimativas dos estados obtidas a partir do DTKF. Ainda no gráficoda velocidade é observável as curvas verdes, conhecido como cone de convergência, estes re-sultados são gerados a partir do desvio padrão das estimativas. Com todas as 24 coletas foramexecutadas, foram impressas sobre o mesmo gráfico (Figuras 30 e 31) para análise.

Figura 30 – Observação/estimativa (a)

Fonte: Autoria própria

Page 60: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 59

Figura 31 – Observação/estimativa (b)

Fonte: Autoria própria

É evidente a eficiência do DTKF para a estimativa dos estados do sistema, no gráfico deposição as curvas se sobrepõem e são praticamente idênticas, já nos gráficos referentes ao estadovelocidade, é visto que a partir de aproximadamente 5 segundos, o equivalente a 500 observa-ções, o filtro já fornece estimativas ótimas sobre o estado, mantendo uma grande estabilidadenos resultados. Nos gráficos de velocidade, ainda são notáveis as curvas que representam o conede convergência do filtro, obtidos através do desvião padrão estimado do estado (Figura 32).

Figura 32 – Convergência das estimativas do estado

Fonte: Autoria própria

Page 61: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 60

Entretanto, no período transitório inicial, o filtro não acompanha com precisão as curvasde progressão dos estados observados, isso pode ser justificado devido ao período transitório,no qual o sistema não se comporta como um sistema dinâmico de primeira ordem. Sendo assim,com o objetivo de verificar a versatilidade do bloco DTKF implementado no Simulink, assumiu-se que o sistema dinâmico estudado possuía um comportamento de segunda ordem.

Para executar tal tarefa, é necessário alterar no sistema a matriz de estados Φ𝑘, a matrizde saídas H𝑘, o as condições iniciais do sistema agora que o vetor de estados x𝑘 é de dimensão3 × 1 e a matriz de covariância P𝑘 3 × 3:

x0 =

⎡⎢⎢⎣ 𝑆𝑠𝑚

��𝑠𝑚

𝑆𝑠𝑚

⎤⎥⎥⎦ P0 =

⎡⎢⎢⎣ 106 0 00 106 00 0 106

⎤⎥⎥⎦ Φ𝑘 =

⎡⎢⎢⎣ 1 𝑇𝑎 0.5𝑇 2𝑎

0 1 𝑇𝑎

0 0 1

⎤⎥⎥⎦ H𝑘 =[

1 0 0]

A matriz Φ𝑘 para o sistema de segunda ordem foi determinada assim como a de primeiraordem sugeridas em Zarchan e Mussoff (2000) onde 𝑇𝑎 = 0, 01𝑠. O vetor x𝑘 representado por𝑆𝑠𝑚, ��𝑠𝑚 e 𝑆𝑠𝑚 representa respectivamente os estados posição, velocidade e aceleração doservo, todos assumidos com estado inicial igual a zero.

Estas considerações foram alteradas no modelo de maneira simples, reconfigurando osblocos Matriz de Estados, Matriz de Saidas , 𝑥0 e 𝑃0 (Figura 17). Logo em seguida as rotinasde observação foram reexecutadas.

Figura 33 – Sistema de segunda ordem (a)

Fonte: Autoria própria

Page 62: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 61

Figura 34 – Sistema de segunda ordem (b)

Fonte: Autoria própria

Para essa configuração do sistema, é observado que o filtro estima de maneira tão efici-ente quanto o configurado para sistemas de primeira ordem o estado posição do sistema. Alémdisso são notórias estimativas menos divergentes durante o período transitório, contudo as es-timativas necessitam de mais observações, levando cerca de 7 a 8 segundos para estabilizar, oequivalente a 750 observações aproximadamente.

Figura 35 – Comparação dos modelos (a)

Fonte: Autoria própria

Page 63: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 62

Figura 36 – Comparação dos modelos (b)

Fonte: Autoria própria

Comparando os dois casos, ambos apresentam resultados satisfatórios para uma sérielonga de observações. No primeiro caso, foi obtido estabilidade mais rápido e no segundo fo-ram produzidos resultados mais fiéis no período transitório do sistema. Ainda assim, mesmocom o sistema de segunda ordem necessitando um tempo maior para atingir a convergênciados resultados, é evidente que este possui um desempenho melhor que o sistema apresentadoanteriormente. Sabido que o sistema de segunda ordem trabalha com mais estados, o sistemapassa a ser mais robusto, ou seja, se torna menos sensível a eventuais perturbações que possaminterferir nas observações e consequentemente nas estimativas.

É possível observar ainda, que o modelo dinâmico admitido no sistema é um modeloaproximado do real, as equações de Riccati forneceram um modelo que tem um comporta-mento aproximado para qualquer sistema dinâmico de mesma ordem do sistema de interesse,justificando assim, o tempo necessário nos instantes iniciais do processo de estimativa para aconvergência dos resultados.

Foi observado também, em processos com o filtro submetido a rotinas com um tempoelevado, que as estimativas obtidas divergiram do cone de convergência, gerando um erro re-sidual. Ainda assim os resultados foram julgadas satisfatórios para a análise deste estudo. Épossível observar (Figura 37) uma divergência inferior a 1% do sinal estimado quando compa-rado ao cone de convergência.

Page 64: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 3. PROCESSO EXPERIMENTAL 63

Figura 37 – Erro Residual do Filtro

Fonte: Autoria própria

Para solucionar o problema seria necessário a execução de uma coleta de característicasdo Servo Motor Interativo para, então, executar a modelagem exata do sistema. Para este caso,a modelagem do sistema não é executável de maneira simples. A resposta obtida do motoré limitada devido ao encoder fornecer um sinal discreto e de pouca precisão, exigindo assimtécnicas mais complexas para uma modelagem exata do sistema.

Page 65: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Parte IV

Fechamento

Page 66: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

65

4 Conclusão

4.1 Discussão dos Resultados

É notória a eficácia do modelo implementado em Simulink do Filtro de Kalman Discretopara a estimativa ótima de estados em sistemas dinâmicos de primeira ordem. Neste estudo asestimativas, após um curto período de observações, proporcionaram resultados estáveis queconvergiram com a média do sinal observado. O modelo se demonstrou satisfatório, visto quea partir da observação de um único estado do sistema, foi possível obter estimativas ótimas doestado observado e ainda outra variável de estado.

O modelo implementado em Simulink conclusivamente demonstrou uma estrutura ver-sátil, de maneira que facilmente o modelo foi ajustado para trabalhar em outro sistema dinâmicolinear de ordem diferente, necessitando apenas de algumas modificações nos blocos Matriz de

saidas e Matriz de Estados com etapas significativamente simples para parametrizar o vetor devariância dos estados e os estados iniciais do sistema.

O modelo desenvolvido para o sistema de segunda ordem, ainda apresentou as estima-tivas para o estado aceleração do sistema, dados que não foram apresentados na análise, devidoao fato que o sistema não permite observações adequadas da velocidade e de que o principalobjetivo do modelo de segunda ordem foi a comparação das estimativas do estado velocidade.

Sendo assim, observando os resultados obtidos na seção 3.4, é possível determinar queo estudo foi concluído com sucesso.

4.2 Considerações Finais

Independentemente de vários imprevistos ocorridos durante a instalação do pacote ECRo-bot na interface 𝑊𝑖𝑛𝑑𝑜𝑤𝑠8, algumas limitações do pacote como a impossibilidade de uso si-multâneo do mesmo acesso do bloco NXT de comunicação com o Servo Motor Interativo paraleitura e escrita, além do uso de uma alimentação externa ao kit NXT, o propósito do estudonão foi afetado, com tal sorte que a meta foi obtida e julgada satisfatória. O Filtro de KalmanDiscreto se demonstrou eficaz para a estimativa de estados, entretanto é necessário um númeroconsiderado de observações para que o sistema alcance a convergência.

Como proposta para expandir o estudo, pode-se sugerir o implemento de um controladorpara executar a realimentação do sistema proposto neste projeto e então a análise do desempe-nho desta malha de feedback como controlador de velocidade e posicionamento de um motor𝐶𝐶.

Page 67: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Capítulo 4. Conclusão 66

Ainda pode-se considerar a modelagem exata do sistema, de maneira que o filtro atuecom excelência, obtendo estimativas ótimas para o transitório e também o regime do sistema,eliminando os ruídos de processo devido a aproximação do modelo. Também é possível executarum ensaio de carga de perturbação, para verificar se o filtro desenvolvido é capaz de acompanharas variações do sistema, ou ainda, o estudo de desempenho do modelo desenvolvido no Simulinkem um sistema de ordem diferente para confirmar a eficiência do filtro.

Page 68: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

67

Referências

BROWN, R. G. Introduction to random signal analysis and kalman filtering. Wiley New York,v. 8, (1983).

CRASSIDIS, J. L.; JUNKINS, J. L. Optimal estimation of dynamic systems. CRC press Taylorand Fransis Group. [in English], (2012).

DANTAS, F. G. Controle Vetorial para Velocidade de um Motor de Indução TrifásicoUtilizando Estimador Filtro de Kalman. Dissertação (Mestrado), (2011).

GREWAL, M. S.; ANDREWS, A. P. Kalman filtering: theory and practice using matlab. JohnWiley & Sons, (2011).

HAROLD, K.; RANDAL, A. Simulation of dynamic systems with matlab and simulink. CRCPress Taylor and Fransis Group, Boca Raton, London, New York. [in English], (2011).

IME. Representação de modelos de sistemas dinâmicos. Notas de aulas, "Espaço de Estados".2012.

KALMAN, R. E. A new approach to linear filtering and prediction problems. Journal of FluidsEngineering, American Society of Mechanical Engineers, v. 82, n. 1, (1960).

KUGA, S. C. Aplicação do filtro de kalman na estimação de parâmetros de atrito dinâmico emrodas de reação. Workshop on Space Engineering and Technology, (2012).

LEGO, T. G. Manual do NXT 2.0. [S.l.], (2008).

LEITE, A. V. T. Estimação de Estados, Parâmetros e Velocidade do Motor de InduçãoTrifásico com Metodologias de Identificação em Tempo Real. Tese (Doutorado), (2004).

MATHWORKS, T. G. Software Simulink. Acessado em julho de 2014. Websitehttp://www.mathworks.com/products/simulink/. Caracteristicas do software.

MAYBECK, P. S. Stochastic models, estimation, and control. Academic Press, v. 1, (1979).

MENDES, E. M. A. M. Introdução ao controle em espaço de estados. Notas de aulas, Curso deEngenharia de Controle e Automação. 2012.

OGATA, K.; YANG, Y. Modern control engineering. Prentice-Hall Englewood Cliffs, (1970).

PAPOULIS, A. Probability, random variables and stochastic processes. McGraw-Hill, (1965).

RIBEIRO, M. I. Análise de sistemas lineares. IST Press, (2002).

ROMANO, M. K. C. Estimação de parâmetros de um motor dc sem escovas usando filtro dekalman. CONEM 2012, Associação Brasileira de Ciências Mecânicas, (2012). VII CongressoNacional de Engenharia Mecânica.

SANTOS, R. J. Um curso de geometria analítica e álgebra linear. UFMG, (2004).

Page 69: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

Referências 68

SOUTO, R. F.; ISHIHARA, J. Y.; BORGES, G. A. A robust extended kalman filter fordiscrete-time systems with uncertain dynamics, easurements and correlated noise. In: . [S.l.:s.n.], (2009).

VALLABHA, G. Embedded Coder Robot. Websitehttp://www.mathworks.com/matlabcentral/fileexchange/25207-ecrobotinstaller—simplified-installation-of-tools-for-embedded-coder-robot, (2009). Acessado em março de 2014.

YANG, S. K. An experiment of state estimation for predictive maintenance using kalman filteron a dc motor. Reliability Engineering and System Safety., v. 75, n. 1, (2002).

ZARCHAN, P.; MUSSOFF, H. Fundamentals of kalman filtering: A practical approach. reston.Virginia. American Institute of Aeronautics and Astronautics AIAA, (2000).

Page 70: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

69

APÊNDICE A – Software Simulink

O software Simulink, principal ferramenta de apoio para o desenvolvimento deste es-tudo, é uma ferramenta de simulação, análise e modelagem de sistemas dinâmicos. Desenvol-vido pela empresa The MathWorksTM, é amplamente utilizado nos mais diversos campos datecnologia com objetivos didáticos e também âmbitos profissionais. Com uma interface amigá-vel e intuitiva, trabalha principalmente com diagrama de blocos. Pode ser definido como umaferramenta gráfica que compõe parte do additional 3rd party tools do software Matlab, ofere-cendo assim uma interface de comunicação muito ampla com este.

Quando implementando um projeto no software, o usuário utiliza bibliotecas de blocosque executam as mais diversas operações no sistema, desde operações aritméticas, operações ló-gicas, geração de sinais contínuos e discretos, além de implementos para projetos 3D e controlede sistemas. Ainda é possível o implemento de bibliotecas customizáveis, com a criação de blo-cos com funções não existentes no software padrão, com o auxílio do Matlab ou não, para queesta seja funcional e objetiva para o projeto do usuário, tornando-se assim uma ferramenta muitoversátil e flexível para o implemento de projetos. A ferramenta Simulink possibilita o estudodo comportamento de dispositivos/aparelhos ainda em desenvolvimento, sem necessariamenteuma arquitetura física através ampla diversidade de critérios/condições de operação do sistemasimulado, podendo assim todos serem controlados a partir das configurações de parâmetros dasimulação.

A ferramenta Simulink possibilita uma profunda análise de sistemas dinâmicos, auxi-liando o desenvolvimento de estudos na área de teoria de controle e processamento digital desinais, sua integração à interface Matlab com obtenção de dados em tempo real, consagra aexperiência com o software.

Page 71: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

70

APÊNDICE B – LEGO MindStorms

O kit de estudo e desenvolvimento LEGOTMMindStorms NXT consiste em um pacotede blocos da linha tradicional do produto LEGOTM, blocos da linha LEGOTMTM Technic, blo-cos(engrenagens, polias, eixos, etc...) que possibilitam a criação de dispositivos engenhosos eos blocos que caracterizam essa linha, sensores de velocidade, posição, sensores de intensidadeluminosa e temperatura, controlados por um bloco programável denominado NXT (este quedeu o nome ao kit).

Este kit é amplamente aplicado em instituições de ensino com foco tecnológico, comofunção didática para a implementação de ambientes relacionados com a mecatrônica, por pos-suir funções simples de implementar, de acordo com investimento no projeto. Sistemas im-plementados com o kit LEGOTMMindStorms NXT podem executar funções demasiadamentecomplexas, desde um simples sensor de toque ou seguidor de luz, até projetos avançados comoleitura e reprodução de imagens por exemplo.

Neste estudo, vamos nos atentar ao funcionamento de dois principais dispositivos quecompõem o kit. Este projeto desenvolverá estudos em cima do bloco de Servo Motor com enco-der acoplado e o módulo NXT, necessário para controle do servo motor do kit LEGOTMMindStorms

NXT.O módulo NXT (Figura 38) é o principal bloco do kit, atuando como interface de co-

municação entre os sensores, este é composto por um microprocessador Atmel 32-Bit ARM,o bloco possui quatro portas (1,2,3,4) para os sensores do kit de desenvolvimento, três portasdigitais (A,B,C) para os servo motores e/ou comunicação com encoder, um acesso de comuni-cação via USB, comunicação via Bluetooth, um display tipo matriz e alimentação por bateriade 9V/2200mA ou seis pilhas tipo AA 1.5V.

Figura 38 – Módulo NXT

Fonte: Adaptado do manual do kit NXT

Page 72: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

APÊNDICE B. NXT 71

O kit é composto por uma série de blocos base de construção que auxiliam no ajustedos outros dispositivos do sistema e modelam fisicamente a estrutura a ser implementada. Sãoinúmeros blocos desde peças simples de formato cúbico ou retangular até blocos mais versáteiscomo roldanas e engrenagens.

O kit também possui uma série de sensores que atuam como periféricos do bloco NXT,cada um desempenhando determinada tarefa que pode ou não condicionar a funcionalidade dosistema.

∙ Sensor de Toque - Este dispositivo funciona como um interruptor, podendo ser codificadopara atuar com pressionado/liberado ou tocado.

∙ Sensor de Som - Capaz de detectar sinais sonoros em decibéis no ambiente com umacapacidade de detecção de até 90[dB] e são apresentadas em [%] com resultados maissignificantes quando a fonte está posicionada a um metro em média do sensor.

∙ Sensor de Luz - Encarrega-se da atividade de identificar intensidade luminosa, distin-guindo claro/escuro, além de intensidade de luz em superfícies coloridas.

∙ Sensor Ultrassônico - Permite que o sistema consiga reconhecer objetos, determinar dis-tancias e detectar movimentos, com uma precisão de +/- 3 [cm]e capaz de determinardistancias a até dois metros e meio.

∙ Servo Motor Interativo - É o periférico (Figura 39) que habilita o sistema a movimentar-se ou executar movimentos específicos. Este com um encoder acoplado possui uma ca-pacidade de 170rpm e um consumo de 60mA com eixo livre. Sob uma carga de 50N oconsumo do motor pode chegar a 2A. O encoder acoplado no servo motor possui a capa-cidade de ler o posicionamento do motor em relação ao próprio eixo com uma precisãode +/- 1 grau transmitido através de um sinal digital.

Figura 39 – Servo Motor Interativo

Fonte: Adaptado do manual do kit NXT

Page 73: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

APÊNDICE B. NXT 72

Ainda existem outros vários periféricos que podem ser implementados nos projetos de-senvolvidos com o bloco NXT, entretando estes não compõem o pacote básico do kit 9797 edevem ser adquiridos separadamente, em muitos casos devido a executarem tarefas muito espe-cíficas.

Page 74: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

73

APÊNDICE C – Embedded CoderRobot

O ECRobot NXT (Embedded Coder Robot NXT) é um pacote que permite a comunica-ção entre o kit LEGOTMMindStorms NXT e a plataforma Simulink para simulação de sistemasdinâmicos objetivando a exposição de aplicações industriais de robótica. O pacote é compostopor softwares que promovem a comunicação do processador ARM encontrado no NXT com oCPU, um gerador de código a partir do sistema implementado na plataforma Simulink, além deuma biblioteca customizada dos blocos do kit LEGOTMpara serem implementados em projetosdentro do software de simulação e um script de instalação automatizada para o Matlab.

O script de instalação o ECRobot executa o download e a instalação das ferramentasnecessárias para promover com sucesso a comunicação entre o kit LEGOTMe o computador.

∙ Package Cygwin – Um pacote de ferramentas que emula um sistema Unix, mais espe-cificamente para este caso, um sistema GNU, possibilitando assim o sistema Windowsexecutar softwares em sistema POSIX.

∙ GNU ARM Compiler – Compilador ARM para o sistema GNU.

∙ NexTTool – Software que gera as linhas de código da comunicação entre o sistema Win-dows e o bloco NXT, como manobras de leitura de sensores ou escrita nas portas desaída.

∙ ECRobot NXT – Biblioteca de blocos para implementações no Simulink e exemplos deprojetos aplicados.

∙ nxtOSEK – Sistema Operacional para o bloco NXT do kit LEGOTMcom processadorARM

∙ Firmware e Driver – Firmware e driver para o bloco NXT

A função do pacote ECRobot é promover a interação entre o bloco NXT e o sistemaoperacional Windows através do software Simulink. Ele atua lendo o projeto implementado emSimulink e então gera uma linha de código com as operações executadas na simulação, compilao código e promove a transferência do arquivo compilado para o bloco NXT de maneira simplese eficiente.

Page 75: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

74

APÊNDICE D – Servo Motores

O servo motor (Figura 40) é um dispositivo empregado em sistemas onde se exige altaprecisão de controle angular, normalmente utilizado para controlar sistemas com carga aco-plada, onde é essencial a precisão do movimento ou ainda a estabilidade estática do eixo, ouainda em situações onde se necessita executar manobras com variação de velocidade. Estascaracterísticas podem ser justificadas pelo conjunto de engrenagens que compõem a sua arqui-tetura (Figura 41).

Figura 40 – Servos de diversos tamanhos

Fonte: Adaptado do website servotronix.com

Este dispositivo, por ser composto de um motor síncrono, apesar de possuir valor ele-vado se comparado a uma máquina síncrona, em termos de desempenho, possui uma vantagemrelativa e em quesitos físicos é muito mais econômico, sendo mais atraente quando o espaço érestrito.

O servo motor é composto por um motor acoplado a um sensor que realiza o feedbackdo processo de atuação, excelente para a aplicação em ambientes de malha fechada, muito co-muns em sistemas de controle de operação. Esse dispositivo é tido como uma excelente soluçãoquando o ambiente de operação não comporta um motor de passo, inversores de frequência ouainda motores de indução.

Os servo motores geralmente são acionados a partir de um sinal PWM, que atua compa-rando a largura de pulso do sinal de entrada com o posicionamento de um potenciômetro, esteque é parte do implemento de feedback, para cada largura de pulso do sinal de entrada. Umaposição no eixo do potenciômetro é entendida, pré-definida na arquitetura interna do dispositivoe então o motor é acionado e rotaciona a posição destino do dispositivo.

Page 76: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

APÊNDICE D. Servo 75

Figura 41 – Engrenagens internas ao servo

Fonte: Adaptado do website oficinadowurs.blogspot.com

Como método alternativo, o servo motor pode ser acionado controlando a velocidade derotação do motor, situação de interesse para este estudo, sendo o modo de operação do servomotor que compõe o kit LEGOTMNXT.

Quando acionado em Speed Control, ou modo velocidade, o servo atua a partir de umsinal de entrada analógico ou digital que corresponde a uma velocidade de rotação, pré-definidana arquitetura do dispositivo, dependendo assim da complexidade do dispositivo para a diversi-dade de níveis de velocidade do motor.

Page 77: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

76

APÊNDICE E – CÓDIGOS MATLAB

E.1 Leitura USB

function USBread_coleta()

NUM_OF_CYCLE = 12000; %Número de observações

disp(’É necessário o driver Fantom do MINDSTORMS NXT para funcionar.’);

RevSensor = zeros(1, NUM_OF_CYCLE);

disp(’Iniciando o programa no NXT, aguarde dois minutos...’);

nu = nxtusb;

if nu.CurrentState == 3 % Verificação da conexão com NXT

% Conexão NXT-USB estabelecida

disp([’Connection Information: Id: ’, num2str(nu.Id)]);

disp([’Connection Information: Name: ’, nu.Name]);

for i = 1:NUM_OF_CYCLE

[len, packet] = read(nu, ’uint8’, 64);

if len == 64

RevSensor(i) = packet(4)*16777216+packet(3)*65536+packet(2)*256+packet(1);

else

delete(nu);

error(’Impossibilitado de ler os dados do NXT.’)

end

end

else % Falha de conexão

disp([’Situação: ’, num2str(nu.CurrentState)]);

error(’Impossibilitade de conectar ao NXT. Verifique a conexão NXT-USB.’)

end

close(nu);

delete(nu);

disp(’Terminado.’) % Coleta concluida

assignin(’base’, ’b17’, RevSensor); % Observações exportadas ao workspace

end

Page 78: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

APÊNDICE E. CÓDIGOS MATLAB 77

E.2 Análise de Controle

function Analise(x)

t = 1:1:length(x); %Vetor tempo

t1 = (t/100); %Normalização do vetor tempo

V = diff(x); %Estado velocidade a partir do estado posição

t2 = 1:1:length(V); %Vetor tempo para o estado velocidade

t3 = (t2/100);

V1 = V*100; %Normalização velocidade

Vm = mean(V1) %Velocidade média

Variancia_vel = var(V1) %Variancia da velocidade

figure(1) %Gráfico observação do estado posição

subplot(2,1,1)

plot(t1,x, ’b--’)

hold on

title(’Posição’)

xlabel(’Tempo[s]’)

ylabel(’[Graus]’)

grid

subplot(2,1,2) %Gráfico observação do estado velocidade

plot(t3,V1, ’b--’)

hold on

title(’Velocidade’)

xlabel(’Tempo[s]’)

ylabel(’[Graus/s]’)

grid

end

Page 79: Implemento e Análise do Comportamento do Algoritmo de ... · GABRIEL FELIPE MARTINS Implemento e Análise do Comportamento do Algoritmo de Kalman como Estimador de Estados de um

APÊNDICE E. CÓDIGOS MATLAB 78

E.3 Análise de Dados

function Analise_filtro(x,y,z)

sk = y(1:1:end,1); % Selecionando estimativas do estado posição

vk = y(1:1:end,2); % Selecionando estimativas do estado velocidade

mvar_s = z(1:4:end); % Selecionando estimativas variancia posicao

var_s = shiftdim(mvar_s); % Redimencionando o vetor

desv_s = sqrt(var_s); % Desvio padrão do estado a partir da variancia

v = diff(x); % Definindo o estavo velocidade a partir das observações

mvar_v = z(4:4:end); % Selecionando estimativas variancia velocidade

var_v = shiftdim(mvar_v); % Redimensionando o vetor

desv_v = sqrt(var_v); % Desvio padrao do estado velocidade a partir

da variancia

media_v = mean(v)*ones(length(desv_v),1); % Calculo da velocidade

media das observações

dvs = desv_v + media_v; % Posicionamento do cone de convergencia

dvi = media_v - desv_v; % Posicionamento do cone de convergencia

t = [1:1:length(x)]’; % Vetor tempo

t1 = t/100; % Normalização do vetor tempo

t2 = [1:1:length(v)]’; % Vetor tempo para velocidade

t3 = t2/100; % Normaliacao do vetor tempo

vn = v*100; % Normalização do estado velocidade observado

vkn = vk*100; % Normalizacao do estado velocidade estimado

figure(1) % Impressão do grafico posicao

subplot(2,1,1)

plot(t1,x)

title(’Posição’)

xlabel(’Tempo[s]’)

ylabel(’[Graus]’)

hold on

plot(t1,sk, ’r’)

subplot(2,1,2) % Impressao do grafico velocidade

plot(t3,vn, ’b’)

title(’Velocidade’)

xlabel(’Tempo[s]’)

ylabel(’[Graus/s]’)

hold on

plot(t1,vkn, ’r’)

plot(t1,dvs, ’g--’)

plot(t1,dvi, ’g--’)

end