Você está na página 1de 14

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

DEPARTAMENTO ACADÊMICO DE ELETRÔNICA - DAELN

CONTROLE II

CONTROLE DO EQUILÍBRIO DE UM PÊNDULO INVERTIDO COM


SISTEMA MICROPROCESSADO DE TEMPO REAL

CURITIBA
2018
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE ELETRÔNICA - DAELN

CONTROLE II

CONTROLE DO EQUILÍBRIO DE UM PÊNDULO INVERTIDO COM


SISTEMA MICROPROCESSADO DE TEMPO REAL

ATIVIDADE PRÁTICA SUPERVISIONADA (APS)

Atividade apresentada à disciplina de


Controle II, do curso superior em
Engenharia Eletrônica, do departamento
acadêmico de Eletrônica – DAELN - da
Universidade Tecnológica Federal do Paraná
– UTFPR, como requisito parcial para
obtenção da nota semestral.

GEOVANA SCARAMELLA
LUIS FELIPE SOTO LAURO
LUIZ AUGUSTO BERNARDI

CURITIBA
2018

2
Sumário

1. Resumo..................................................................................................................4
2. Introdução..............................................................................................................4
3. Projeto Mecânico...................................................................................................4
4. Modelagem matemática.........................................................................................7
5. Implementação do software.................................................................................10
6. Desenvolvimento prático e Resultados obtidos...................................................12
7. Conclusões ..........................................................................................................13
8. Referencial Bibliográfico ...................................................................................14

3
1. Resumo

Neste trabalho, apresentamos uma solução para o problema clássico de controle


do equilíbrio de um pêndulo invertido, aplicando a teoria de controle discreto que
possibilita a elaboração de um algoritmo computacional de controle. Como sequência,
aplicamos a solução proposta em um sistema microprocessado de tempo real e
avaliamos o seu desempenho pela comparação dos requisitos de projeto com os
resultados práticos obtidos.

2. Introdução

O controle automático de parâmetros críticos é uma necessidade latente em


diversos campos da engenharia e da ciência. É natural, portanto, que uma gama de
teorias tenha se desenvolvido ao longo do tempo para possibilitar a otimização de
processos de manufatura; elevar a eficiência energética de um determinado dispositivo
ou ainda corroborar para a segurança e manobrabilidadede de aeronaves. Dentre as
teorias de controle que se desenvolveram, a teoria de controle digital tem se tornado
cada vez mais popular, graças à evolução tecnológica dos sistemas microprocessados,
que possibilitou aos engenheiros a implementação de dispositivos de controle (em
tempo discreto) precisos, eficientes e altamente reconfiguráveis para o controle
automático de sistemas cada vez mais complexos.
Neste contexto, o projeto de dispositivos de controle para plataformas
mecânicas apoiadas em duas rodas paralelas se caracteriza como um complexo e
estimulante exercício, devido às suas características de instabilidade intrínsecas. Tais
estruturas mecânicas, quando capazes de controlar o seu equilíbrio sobre seu próprio
eixo de rotação, podem ser chamadas de Robôs Equilibristas. Uma aplicação deste tipo
de dispositivo de controle pode ser dada, por exemplo, por uma cadeira de rodas que
permita o seu usuário a transposição facilitada de pequenos obstáculos, ou ainda como
um veículo de transporte pessoal que permita que operários de uma fábrica se
desloquem com maior agilidade pela linha de produção.
O projeto do dispositivo de controle do Robô Equilibrista é classicamente
solucionado através da modelagem matemática de um Pêndulo Invertido, caracterizado
por ser um pêndulo cujo centro de massa se encontra acima do seu eixo de rotação.
O Robô desenvolvido neste trabalho utiliza um sistema microeletromecânico
para determinação do ângulo de inclinação da estrutura mecânica, um controlador
discreto de estados para implementar o controle do ângulo de inclinação da estrutura
mecânica em relação à uma referência e um par de motores acionados por uma ponte H,
permitindo a reversão do sentido de movimento. O objetivo final é, portanto, o controle
da velocidade e sentido de rotação de cada motor de forma a garantir o equilíbrio do
robô.

3. Projeto Mecânico

O projeto mecânico do robô foi desenvolvido levando em conta o modelo geral


de um pêndulo invertido, conforme o diagrama abaixo:

4
Figura 1 – Diagrama generalizado do pêndulo invertido sobre duas rodas. Adaptado de [1].

Uma lista dos componentes eletrônicos e mecânicos necessários para a


implementação do projeto foi definida, levando em conta as dimensões mecânicas de
cada item:

i. Motores Akiyama AK360 (com caixa de redução)


ii. Suporte para motor 32mm
iii. Hub sextavado 6mm
iv. Roda 65mm
v. Módulo Ponte H L298N
vi. Pack de Baterias Li-ion (6x3.7v)
vii. Lauchpad TM4CXL
viii. Módulo MPU6050 (Acelerômetro + Giroscópio)
ix. Módulos Buck LM2596
x. Módulo Boost MT3608
xi. Placa de acoplamento óptico
xii. Placas de distribuição de energia

Para distribuir estes componentes foram definidas quatro plataformas


retangulares com área de:

O material escolhido para a confecção das plataformas do robô foi a chapa de


Nylon com espessura de 6mm, devido à sua rigidez mecânica e alta durabilidade, aliada
à facilidade de trabalho no corte e furação e seu custo relativamente acessível.
Para interconectar as plataformas do robô, foram utilizados quatro segmentos de
barra roscada de 6mm, possibilitando o uso de porcas e arruelas para fixação de cada
plataforma. Por comodidade, o tamanho L foi modelado de acordo com a
disponibilidade no mercado local e levando em conta a facilidade de transporte do
protótipo. Ainda, como foram utilizadas ferramentas manuais para o corte das barras,
levamos em consideração um fator de segurança de 2% por corte. Assim, o tamanho L
foi definido como:

5
As plataformas foram uniformemente espaçadas no comprimento L determinado
acima, considerando um recuo de aproximadamente 6mm na extremidade inferior e
10mm na extremidade superior.
Um esboço preliminar do projeto mecânico foi então montado, conforme as
figuras 2 e 3:

Figura 2 – Esboço preliminar do projeto mecânico do robô equilibrista. Do autor.

Figura 3: Montagem final do robô equilibrista. Do autor.

6
4. Modelagem Matemática:

Para a realização do sistema de controle do robô foi desenvolvida a modelagem


matemática apresentada nesta seção.

Primeiramente devemos determinar o comportamento mecânico do robô através da


segunda lei de Newton translacional, para o movimento vertical e horizontal do corpo
do robô e o movimento horizontal da base do robô, e a segunda lei de Newton
rotacional, para o movimento de rotação do robô como um todo. As equações em
questão são as equações de (1) a (5), onde (1) é a equação para o sinal de controle, (2) e
(3) são equações que descrevem o movimento de translação do corpo, (4) descreve o
movimento de translação da base e (5) descreve o movimento de rotação.

̈ (1)

Onde é o sinal de controle do robô, é massa da base, é a massa total do corpo


do robô, é a posição angular do motor e é o raio da roda do robô.

(2)

Onde é a distância entre o eixo do motor e o centro de gravidade do robô, é o ângulo


entre o corpo do robô e a normal, é a componente de força no eixo vertical e é a
aceleração gravitacional.

(3)

Onde é a posição do robô com relação a origem do sistema de coordenadas


e é a componente de força no eixo horizontal.

(4)

Combinando as equações (4) e (3) podemos obter uma equação para


enquanto já é conhecido. Dessa forma podemos combinar as equações de e na
equação (5) e manipulando tal combinação e passando para o domínio s obtemos a
equação (6).

∑ ̈ ̈ (5)

Onde ∑ é o somatório dos torques agindo sobre o robô.

( )
(6)

Através da medição da constante de tempo do motor e do ganho deste em função


da tensão aplicada, foi possível determinar a função de transferência entre a velocidade
angular do motor e a tensão aplicada em seus terminais, apresentada na equação (7).

7
(7)

Onde a constante de tempo foi determinada através da forma de onda da figura


abaixo com valor de , que implica que o polo mecânico do motor é:

Figura 4 – Resposta ao degrau do motor DC. Do autor.

Combinando a equação (1) com a função de transferência do motor, obtemos


(8):

(8)

Assim:
( )

( )

8

Com o modelo matemático do robô podemos fazer a passagem para o domínio


do espaço de estados. Considerando a forma final da função de transferência entre o
ângulo do robô com a normal e a tensão aplicada aos motores apresentada novamente
por facilidade:

Podemos passar esta função de transferência para o domínio do tempo e dessa


forma obtermos:

Onde é o operador derivada. Reescrevendo a equação diferencial acima


temos:

{ [( ) ]}

Que é representada no espaço de estados através das equações dinâmicas abaixo:

̇ [ ] [ ]

Para que possamos implementar o sistema de controle através de um


microcontrolador devemos discretizar as equações dinâmicas através de:

Que resulta em:

[ ] [ ]

9
Com tempo de amostragem de .

Sabendo que o sistema é controlável e observável, podemos utilizar


realimentação de estados para fazer o controle do sistema. Escolhendo os polos como:
, e . Tal escolha de polos de operação resultam na
equação característica abaixo para o sistema:

Para determinamos a matriz de realimentação foi utilizada a fórmula de


Ackermann, apresentada abaixo:

Como não é possível medirmos todos os estados do sistema, devemos estimá-


los, o estimador escolhido foi o Filtro de Kalman, que é um método matemático para
estimação dos estados através de medidas contaminados com ruído e outros tipos de
interferência. Para que pudéssemos aferir os estados através do microcontrolador as
equações (9) a (13) foram implementadas.
(9)
(10)
(11)
̂ ̂ (12)
̂ ̂ ̂ (13)
Onde é a matriz de variância do ruído presente no sistema, é a variância do
ruído associado a observação através do sensor acelerômetro, é a covariância
propagada dos estados a priori no instante atual, é a covariância propagada dos
estados a posteriori no instante anterior, é o ganho do filtro de Kalman, é a
covariância propagada dos estados a posteriori no instante atual, ̂ é a estimativa dos
estados a priori no instante atual, ̂ é a estimativa dos estados a priori no instante atual
e é a leitura do ângulo através do acelerômetro.
Para que possamos utilizar tal algoritmo devemos atribuir valores aos estados
iniciais de e ̂ , que por conveniência foram escolhidos como matrizes nulas
e ajustados conforme o desenvolvimento do projeto, também devemos atribuir valores
as variâncias dos ruídos, que inicialmente foram escolhidos como

[ ]

E ajustados conforme a necessidade.

5. Implementação do software:

A implementação foi feita para a LaunchPad TM4C1294 da Texas com a


utilização do sistema operacional TI-RTOS. O programa foi dividido em quatro tasks:
leitura do acelerômetro (mpu6050Task), filtro de Kalman (filtroTask), controle
(controleTask) e atualização do motor (motorTask). A primeira task executada é a
leitura do acelerômetro, esta é chamada com base em uma HWI de clock que a cada

10
10ms habilita um semaphore. Já as outras tasks são chamadas na sequência através de
mensagens de mailbox. Uma breve descrição da função de cada task é dada a seguir:

mpu6050Task:
Na primeira execução são enviados comandos para configurar a taxa de
amostragem, escala e um “wake-up”. Se esta etapa ocorrer com sucesso a task passa
para um loop infinito na qual espera a habilitação do semaphore pelo clock. Em seguida
realiza a leitura de seis registros do sensor que correspondem a aceleração dos três
eixos. Com esses dados é possível calcular o ângulo de interesse conhecido como
ângulo de pitch:

( )

Esse ângulo é passado para a task de filtro através da mailbox “MPU6050”.

filtroTask:
Essa task implementa o filtro de Kalman. Ao finalizar passa um vetor de estados
através da mailbox “Filtro” para a task de controle e fica aguardando uma mensagem de
feedback da task de controle.

controleTask:
Ao receber o vetor de estados da task de filtro computa o valor de controle a ser
atribuído ao motor. Este é enviado através de uma mailbox “Controle” e
“ControleFeedback” tanto para a task do motor quanto para a task do filtro.

motorTask:
Recebe o valor calculado pela task de controle e atualiza as saídas conectadas a
ponte H. O sinal define a direção de giro enquanto o módulo define o duty cicle do pwm
aplicado ao motor.

A figura abaixo ilustra o diagrama de sequência de execução implementado no


software embarcado:

Figura 5 – Diagrama de sequência. Do autor.

A interface de hardware configurada pelo software faz uso dos seguintes pinos
do microcontrolador:

11
Tabela 1 – Configuração dos pinos da Tiva utilizados.

Pino Modo Função


PD0 SCL Comunicação I2C com
o acelerômetro
PD1 SDA MPU6050
PE0 GPIO
Controle de direção do
PE1 GPIO
módulo de ponte H
PE2 GPIO L298N
PE3 GPIO
PF1 PWM PWM da roda esquerda
PF2 PWM PWM da roda direita

6. Desenvolvimento prático e Resultados Obtidos:

Na etapa de testes e desenvolvimento prático do projeto, analisamos o algoritmo


de controle projetado no espaço de estados discreto com relação à sua capacidade de
controlar, dentro dos requisitos impostos, o equilíbrio da estrutura mecânica. Para tanto,
uma série de desenvolvimentos progressivos foram necessários, adaptando e refinando
as estratégias de controle de acordo com as considerações e observações realizadas na
prática.
Quanto à montagem e integração do hardware do protótipo, também houveram
alterações progressivas no decorrer dos testes práticos. Primeiro, verificamos a
necessidade da inclusão de filtros “pi” na saída dos conversores de tensão, para
minimizar os efeitos do ruído gerado pela conversão chaveada de tensão DC-DC.
Adiante, notamos que a comutação nas escovas do motor durante o seu movimento
angular injetava uma grande componente de ruído de alta frequência no circuito. Este
ruído (típico de aplicações com motores DC) fora minimizado pela adição de
capacitores de desacoplamento, isolamento óptico entre os circuitos de controle e de
potência e anéis de ferrite nas linhas de alimentação do motor.
No entanto, mesmo aplicando uma diversidade de técnicas para a supressão
deste problema, a irradiação eletromagnética das componentes de alta frequência do
ruído gerado no motor não pôde ser contida e, assim, caracterizou-se como importante
fator de preocupação durante os testes práticos, uma vez que tal ruído é capaz de causar
distúrbios associados a circuitos digitais e foi, neste caso em especial, associado à
intermitência no funcionamento da interface de comunicação I2C (do inglês “Inter-
Integrated Communication”) entre o sensor acelerômetro e o microprocessador. A
figura abaixo ilustra a perturbação gerada pela comutação das escovas do motor entre
dois pontos de referência interconectados (em amarelo) e na corrente de alimentação do
motor (em rosa):

12
Figura 6 – Formas de onda da corrente na alimentação do motor (rosa) e da tensão diferencial
entre dois pontos de referência interconectados (amarelo). Do autor.

Note na Figura 6 a correlação temporal existente entre os surtos de corrente


(momentos de derivada elevada na forma de onda da corrente) e os picos de ruído
acoplados aos pontos de referência. Esta perturbação foi suficiente para diminuir
consideravelmente a confiabilidade do canal de comunicação I2C entre o
microprocessador e o sensor acelerômetro, levando frequentemente ao travamento do
barramento de comunicações devido a falsas leituras.
Sendo assim, aplicado o algoritmo de controle no microprocessador e com o
hardware e as suas modificações já integradas, não foi possível atingir o desempenho
esperado, isto é, o controle do equilíbrio da estrutura mecânica através da leitura das
acelerações e aplicação de torque nos motores. Notamos que existe uma forte tendência
do controlador em manter a estrutura equilibrada, porém tão logo é necessária a
aplicação de torques mais elevados, ou ainda uma sucessão de mudanças na direção de
giro do motor, a interface de comunicação entre o microprocessador e o sensor
acelerômetro é perdida e, como consequência, o controle perde a sua capacidade de
gerar resultados efetivos para manter o equilíbrio da estrutura mecânica.

7. Conclusões:

Com a finalização dos testes práticos, com diversos parâmetros de controle, pôde-se
constatar uma série de fatores que direta, ou indiretamente, contribuíram para o baixo
desempenho do controlador proposto.
Notamos, por exemplo, que a velocidade de rotação do motor não era
suficientemente alta para agir sobre a planta de acordo com o sinal de controle. Sendo
assim, poderíamos optar por um motor com uma caixa de redução com uma relação de
velocidade angular maior. Outra observação considerada é a interferência
eletromagnética devido à permuta das escovas do motor, apesar do distúrbio atuar sobre
todo o sistema elétrico a principal função afetada foi a comunicação do sensor
acelerômetro, que se dava através de uma interface I2C. À medida que a corrente no
motor crescia não só os pinos SDA e SCL apresentavam spikes de mais de 1V como
também a alimentação (VCC e GND) e com isso o sensor parava de operar
adequadamente, deteriorando a robustez do sistema de controle.

13
Para esta questão específica, a intermitência no canal de comunicação entre o sensor
acelerômetro e o microprocessador, adotamos uma solução de curto prazo para
investigar melhor o comportamento do controlador. Isso foi feito através do reiniciar
programado da placa, sempre que a perda de comunicação entre o sensor e o
microprocessador passava de um determinado limite aceitável. Esta solução
protelatória, no entanto, tem seus efeitos colaterais, e identificamos que o filtro de
Kalman retornava ao seu estado inicial sempre que o sistema era reiniciado, ou seja, os
valores otimizados de eram perdidos e, portanto, o estimador era impedido
de aferir os estados de forma ótima.
A solução definitiva para a interferência consiste no isolamento ainda mais restritivo
entre a parte de potência da parte de lógica do hardware, minimizando o acoplamento de
sinais irradiados entre um circuito e outro. Para tal pode-se recorrer à blindagem da
parte superior do robô através de uma gaiola de Faraday e de preferência afastar os dois
subsistemas o máximo fisicamente possível. Outra forma de aumentar a resistência da
comunicação I2C frente ao ruído é a implantação de um canal de comunicação
diferencial, levando ao aumento da rejeição de modo comum do canal. Outra forma de
amenizar o problema é a substituição dos motores com escovas por um equivalente sem
escovas que em geral produzem menor interferência eletromagnética.

8. Referencial Bibliográfico:

[1] – FRÍAS, Oscar O. LUVIANO-JUÁREZ, Alberto. 9th International Conference


on Electrical Engineering, Computing Science and Automatic Control (CCE). Cidade do
México, 2012.

[2] OGATA, Katsuhiko. Discrete-Time Control Systems. 2. ed. New Jersey: Prentice-
Hall, 1995. 760 p.

[3] HELLMAN, Hanna; SUNNERMAN, Henrik. Two-Wheeled Self-Balancing


Robot: Design and control based on the concept of an inverted pendulum. 2015. Disponível
em: <https://kth.diva-portal.org/smash/get/diva2:916184/FULLTEXT01.pdf>. Acesso em: 24
jun. 2018.
[4] CHUI, C.K. CHEN, G. Kalman Filtering with Real-Time Applications. 4. Ed.
Berlim: Springer-Verlag, 2009. 239p.

[5] TEXAS INSTRUMENTS INCORPORATED. SYS/BIOS (TI-RTOS Kernel) -


User's Guide. Dallas, 2017. 261 p.

[6] TEXAS INSTRUMENTS INCORPORATED. TI-RTOS 2.16 for TivaC - Getting


Started Guide. Dallas, 2016. 38 p.

14