Você está na página 1de 14

Sistema microprocessado para controle de posição angular

Daniel O. de Almeida¹, Élisson R. S. de Oliveira¹, Gabriel da S. Santos¹,Iure de A.


Pinheiro¹, Ian C. S. Nascimento¹, Mateus dos S. de Meneses¹, Jessivaldo Junior​²

¹Instituição/Empresa Senai Cimatec, Email: ​daniel.oa95@gmail.com; ​elisson_09@hotmail.com​;


aec.gabrielsantos@gmail.com; iurepinheiro13@gmail.com; ​mateusmenezes95@gmail.com​;
iannascimento@hotmail.com​;

²Instituição/Empresa Senai Cimatec, Email: ​jessivaldojr@gmail.com​;

Resumo
Este trabalho apresenta um sistema de controle para posição angular de uma
haste baseado em um controlador Proporcional Integral Derivativo (PID), implementado
em uma plataforma de ​prototipagem eletrônica de ​hardware livr​e, utilizando conceitos
próximos àqueles implementados em projetos de controle para aeromodelos, controle
da posição de satélites e veículos autônomos. A estrutura mecânica conta com a
utilização de um motor DC ​brushless montado em uma uma das extremidades desta
haste, configurada para operar em balanço.

Palavras-chave: Aero-pêndulo; Controle da posição; PID;

Abstract
This work proposes a control system for angular position based on Proportional
Integral Derivative (PID) control of an metal rod, implemented on an open hardware
prototyping platform, using concepts related to those implemented in model airplanes
control projects, satellites position control and autonomous vehicles. The mechanical
structure relies on the use of a brushless DC motor assembled in one of the ends of the
rod, configured to operate swinging.

Keywords: Position control; PID


1. Introdução
Comumente um engenheiro se depara no dia a dia com a necessidade da
criação de novas tecnologias e em muitos momentos precisa desenvolver sistemas
complexos para resolver os problemas enfrentados. Para poder planejar, desenvolver e
executar um novo método ou processo é necessário modelar os sistemas físicos para
que possam ser propriamente avaliados.
A partir do modelo matemático do sistema é possível compreender a natureza
dele e partir disso desenvolver um controlador para obter melhores respostas.

1.1. Contextualização teórica


Os sistemas de controle consistem em subsistemas e processos (ou plantas)
construídos com o objetivo de se obter uma saída desejada com um desempenho
desejado, dada uma entrada especificada. Eles são parte da nossa sociedade
contemporânea e podem ser visualizados em diversos lugares desde o acionamento e
direcionamento de mísseis até os ciclos de uma máquina de lavar roupa [1].
Um sistema de controle possui duas principais medidas de desempenho: a
resposta transitória e o erro de estado estacionário. No caso a ser estudado, por
exemplo, o tempo de estabilização do pêndulo depende da resposta transitória e a
posição final dele em relação ao sinal de entrada ao erro de estado estacionário.
Existem duas principais configurações para os sistemas de controle: malha
aberta e malha fechada. Um sistema em malha aberta genérico é constituído por um
transdutor de entrada, controlador, planta. A principal característica dos sistemas em
malha aberta é que eles não possuem meios de efetuar correções ou de compensar
perturbações. O sistema de controle em malha fechada é uma arquitetura que resolve
o principal problema do sistema em malha aberta que é a sensibilidade a perturbações
e a impossibilidade de corrigir os seus efeitos. O sistema em malha fechada possui um
sensor ou transdutor de saída que adquire os valores da saída e compara com a
entrada. Usando esta arquitetura de malha, o controlador atua no sinal de erro entre o
sinal de entrada e o valor de saída capturado pelo sensor [1].
Figura 1 – Diagrama de blocos de sistema de controle:​ a)​ Malha aberta; ​ b)​ Malha fechada
[1]

A partir de um sistema com malha fechada é possível atuar na diferença entre o


sinal de entrada e o sinal de saída com o auxílio de técnicas de controle, como o
controle proporcional integral derivativo (PID). Esse método de controle utiliza da
introdução de ganhos ao sistema realimentado a fim de corrigir seu erro de estado
estacionário e melhorar sua resposta transitória.

Figura 2 – Esquema do PID [2]


A equação que representa essa configuração é:
Ki K d s2 + K p s + K i
Kp + s + K ds = s ​Eq. 1
O ganho proporcional K p reduzirá o tempo de subida e poderá reduzir ou

remover o erro de estado estacionário do sistema. O ganho integral K i , eliminará o


erro de estado estacionário, mas pode ter um efeito negativo na resposta transitória. E
o ganho derivado K d tenderá a aumentar a estabilidade do sistema, reduzindo a
porcentagem de overshoot e melhorando a resposta transitória do sistema, entretanto a
derivação é um processo ruidoso. O nível do ruído é baixo, mas a frequência do ruído é
alta comparada com o sinal. A derivação de altas frequências pode levar a grandes
sinais indesejados ou à saturação de amplificadores e outros componentes [2].

Tabela 1 – Características dos parâmetro PID [2]

2. Materiais e Métodos
O projeto foi desenvolvido seguindo o diagrama da figura 1 e tabela 2 a seguir.

Figura 3 – Diagrama do Projeto


Componente Referência técnica

Controlador ATmega2560

Potenciômetro WXD3-13-2W - 10KR +/- 5% C: +/-


0,3% 1809M

Atuador Motor D2830 1000kv

ESC HobbyPower ESC - 30A

IHM Notebook com sistema


operacional Linux

Tabela 2 - Materiais do projeto

2.1.1. Estrutura mecânica


A estrutura mecânica projetada seguiu o modelo idealizado de um pêndulo, com
uma extremidade da haste apoiada na estrutura. O esboço segue abaixo:

(a) (b)
Figura 4 – Estrutura mecânica em SolidWorks

2.1.2. Aquisição do sinal

O processo de controle começa na aquisição do sinal da posição. Para isso foi


utilizado o potenciômetro de precisão WXD3-13-2W que possui de 0 a 10 kΩ como
faixa de resistência e foi alimentado com uma tensão de 5 V. O sinal do ângulo
recebido foi tratado como um sinal elétrico de 0 à 5 V. Esse sinal é puramente
analógico e para que seja tratado pelo microcontrolador é preciso passar por um
conversor analógico-digital (A/D), que transforma os valores analógicos de tensão para
uma faixa de valores digitais de 0 a 1023. Variando a haste de 0º a 90º, percebeu-se
que o ​span do potenciômetro era 24, para essa faixa de ângulos, em valores digitais.
Isso ocasionou um problema, pois com esse ​span,​ o sistema teria uma resolução de
3,75 graus. Para resolver isso, projetou-se um amplificador para modificar o span de 24
para 450 e obter uma resolução de 0,2 graus​. Devido a utilização de valores comerciais
de resistores, o ganho do amplificador não foi preciso como o projetado e o span saiu
de 24 para 440, proporcionando uma resolução de aproximadamente 0,2045 graus,
que foi próximo o suficiente do esperado.

2.1.3. Controle da posição


Para o controle do sistema foi utilizado o Arduino Mega que é baseado no
microcontrolador ATmega2560. O algoritmo utilizado no projeto está ilustrado conforme
a figura 5. Inicialmente são configuradas as portas que serão entradas e saídas do
sistema, bem como a configuração da comunicação serial. Para definir o ​setpoint ​da
aplicação foi utilizada a interface homem máquina (IHM).
Após os parâmetros definidos, o sinal da posição é enviado para o controlador
que compara o valor do ​setpoint com o valor da posição atual e aplica a estratégia de
controle. A estratégia de controle utilizado foi o controle Proporcional Integral Derivativo
(PID) com aproximação retangular.
O sinal de controle é então enviado para o Controlador Eletrônico de Velocidade
(ESC em inglês). Ele é um equipamento eletrônico que tem como função controlar a
velocidade de um motor elétrico, seja variando a corrente para o caso de motores
brushed ou então variando a transição entre ​as diversas fases do motor caso seja
brushless [​ 4]. Grande parte das ESCs possuem um sistema microcontrolado para
controle de motores. O comando de rotação recebido por esses dispositivos é uma
mensagem modulada através da técnica ​Pulse Position Modulation (​ PPM). Esta forma
de modulação permite que bits sejam enviados ao receptor variando-se a largura de
pulsos de tensão, transmitidos periodicamente a cada T segundos. Para o projeto em
questão, o controle de rotação foi realizado através de uma função que recebia valores
de 0 à 180 e, então, convertia estes valores para larguras de pulso de 1 a 2
milissegundos.

Figura 5 – Fluxograma do algoritmo

2.1.4 IHM
A IHM foi feita utilizando o PyQT juntamente com plugin rqt, que são bibliotecas
que permitem a criação de interfaces utilizando QT​. O QT é um tipo de ​framework
voltado para o desenvolvimento de interfaces gráficas criado pela empresa Trolltech. A
estrutura do QT é baseada em módulos. Um módulo é uma biblioteca que pode ser
usada pelos desenvolvedores .
A comunicação entre a aplicação e o microcontrolador será feita utilizando o
framework Robot Operating System (ROS) e o pacote Rosserial. O ROS é um
framework de software que facilita o desenvolvimento de aplicações robóticas. É uma
série de ferramentas, bibliotecas e convenções que visam simplificar a tarefa de criar
um comportamento robótico complexo e robusto em uma ampla variedade de
plataformas. Já o Rosserial é um pacote do ROS que implementa um protocolo de
comunicação entre a aplicação ROS, que está rodando em um computador, e sistemas
embarcados microcontrolados [4].
Os mecanismos de comunicação utilizados foram a produtor-consumidor e
cliente-servidor. Na primeira, as informações provenientes do microcontrolador serão
disponibilizadas de maneira assíncrona, cabendo a IHM consumir tais informações. Já
a segunda, baseia-se no princípio de requisição-resposta, onde a IHM solicita
informações e o sistema embarcado responde a requisição.

Figura 6 – Tela da IHM

3. Resultados e Discussões
Conforme a estrutura mecânica ​do protótipo ilustrada na ​Figura 4​, o modelo do
sistema é dado pela seguinte equação:
2 mH
j dθdt + c dθ
dt + L( 2 + mM )gsenθ = LT Eq. 2
Onde ​j é o momento de inércia da haste, ​c o coeficiente de fricção viscoso, ​L o
comprimento da haste, ​m​H e m​M são a massa da haste e do motor respectivamente e ​T
a força de empuxo do propulsor.

Considerando que o empuxo do propulsor é proporcional ao valor do sinal de


controle PPM ​u ​enviado a ESC, a​ Eq.2 ​pode ser reescrita como

2
j dθdt + c dθ
dt + Lmgsenθ = kLu Eq. 3

onde ​k é a constante de proporcionalidade entre a força de empuxo e o sinal de


controle da ESC e ​m​ a soma das massas da haste e do motor.

Conforme a Eq. 3, verifica-se que o sistema proposto é não linear. Para anular a
não linearidade do sistema foi utilizada a técnica de ​feedback linearization.
Considerando o sistema em regime estacionário, verifica-se que:

mgsenθss
uss = k Eq. 4

Com base nessa análise, propondo um novo sinal de controle dado por:

mgsenθ
un = k
+ w Eq. 5

O qual substituído na ​Eq. 2, r​esulta na nova equação abaixo:

2
j dθdt + c dθ
dt + = kLw Eq. 6

Observa-se pela Eq. 6 ​que o termo não linear do sistema foi removido. Portanto,a
função de transferência do sistema pode ser calculada a partir da Eq. 6.

θ(s) kL
w(s) = js2 + cs
Eq. 7

Para obtenção do modelo que descreve o sistema é necessário primeiro obter


os parâmetros utilizados na técnica de ​feedback linearization​. Analisando a Figura 7,
verifica-se a relação linear da ​Eq. 4.
Figura 7 - Sinal de controle x seno do ângulo da haste em estado estacionário

Através da técnica de regressão linear realizada no software Matlab, obtém-se o


coeficiente mg/K da Eq. 4. Outro fator observado é que o motor possui uma zona
morta, isto é, ele não é acionado enquanto o sinal de controle não atinge um certo
limiar. Da regressão linear:
mg
k = 33.35 e u0 = 56.6
onde u​0 é o limiar da zona morta. Para cancelar a zona morta foi utilizada a lei de
controle descontínuo, onde o valor u​0​ foi adicionado a Eq.5.

Uma análise da Eq. 6 demonstra que o sistema é do tipo 1. Assim, a estimação


do modelo só pode ser realizado em malha fechada. Portanto, com um ganho K = 0.5 e
com auxílio da ​System Toolbox do Matlab, foi obtido a função em malha aberta do
sistema
θ(s) 320.8
w(s) = s3 + 8.161s2+ 43.68s + 39.76
Eq. 7.

Verifica-se que o modelo obtido é de terceira ordem enquanto o modelo teórico


(Eq. 7) era de segunda ordem. Isto permite inferir que a ESC possui uma dinâmica de
primeira ordem na resposta a um comando de controle. Embora o projeto do ​feedback
linearization tenha sido realizado sem essa afirmação, a obtenção dos parâmetros
desta técnica de linearização foi realizada considerando o sistema em regime
permanente e, portanto, o transiente inserido pela dinâmica do controlador eletrônico
de velocidade não interfere na relação de proporcionalidade entre o empuxo do
propulsor e o sinal de controle.

O modelo estimado obteve 92,83% de fidelidade com o sistema real para uma
resposta a um degrau de 30º. A comparação entre a resposta a um degrau com
magnitudes de 20º, 30° e 40º, em malha fechada, do sistema real e da resposta do
modelo estimado é exibida na ​Figura 8. Observa-se nessa figura uma diferença entre a
resposta do modelo estimado com a resposta real do sistema para degraus de 20º e
40º. Tal fato demonstra que a não linearidade do sistema não foi completamente
removida. Isto é consequência da imprecisão no levantamento dos parâmetros do
feedback linearization.

Figura 8 - Resposta ao degrau do sistema estimado x sistema real


Com o modelo estimado, foi possível sintonizar as constantes do controlador.
Para isso, utilizou-se a ferramenta de sintonização do software Matlab: ​PID Tuner.
Para corrigir tanto o erro em regime permanente quanto a resposta transitória do
sistema, optou-se por um controlador PID. A primeira sintonia realizada usando o ​PID
Tuner, teve como requisito as constantes que oferecessem menor tempo de
acomodação e menor ultrapassagem percentual. Dessa forma, as constantes que
atenderam aos requisitos foram Kp = 0,39003, Ki = 0,48455 e Kd = 0,05949. A segunda
sintonia teve como objetivo demonstrar o efeito do uso de constantes que levam o
sistema a uma resposta indesejada. Assim, encontrou-se Kp = 0,55078, Ki = 0,67119 e
Kd = 0,11299. A figura ​9 descreve o comportamento do sistema real e simulado para as
duas sintonias.

Figura 9 - Resposta do sistema à sintonia otimizada x resposta do sistema à sintonia ruim

O resumo dos parâmetros do sistema antes e após a inserção do controlador


pode ser encontrado na Tabela 3 abaixo.
Parâmetros do sistema

Não compensado Compensado


160.4 2
Função de transferência 3 2
19.09 s + 125.1 s + 155.5
s + 8.161 s + 43.68 s + 39.76 s +8.161 s 3 +62.77 s 2 +164.9 s + 155.5
4

Tempo de subida 0.2732s 0.3628s

Tempo de acomodação 3.6844s 1.9597s

Overshoot 41.1730% 3.5440%

Tempo de pico 0.7100s 1.6200s

Polos dominantes -0.9402 ± 5.5666i -1.7228 ± 0.8098i

Outros polos -6.2806 -2.3577 ± 6.1104i

Erro de estado 0,199 0


estacionário

Tabela 3 - Parâmetros do sistema não compensado X sistema compensado

4. Conclusão
O projeto conseguiu alcançar o objetivo estipulado, que era projetar e montar um
sistema para o controle da posição angular de uma haste. As informações são
mostradas na IHM com a possibilidade de ajuste das constantes de controle pela
interface. Para trabalhos futuros, a adição da estimação do modelo e o levantamento
de parâmetros do sistema na própria interface são sugestões de melhorias. Um modo
standalone,​ onde não seja necessário uma IHM para operar o protótipo também é
sugestão de melhoria do protótipo. Por fim, pretende-se tornar o projeto ​open-source
para permitir que pessoas interessadas no tema possam replicar o protótipo.
Referências
[1] - ​NISE, Norman S. Engenharia de sistemas de controle. ​6 ed. Rio de Janeiro:
LTC, 2013. 1285 p.

[2] - ​OGUNTOYINBO, Oludayo John. Pid control of brushless dc motor and robot
trajectory planning simulation with matlab®/simulink®. ​UNIVERSITY OF APPLIED
SCIENCES, 2009. 90 p.

[3] - ​MOHAMMED, Omar. ​A study of control systems for brushless dc motors.


UNIVERSITY OF TOLEDO, ​ago. 2014. ​Disponível em:
<http://utdr.utoledo.edu/theses-dissertations/1702/>.Acesso em: 17 mai. 2018.

[4] - ​O'KANE, Jason M.. ​A gentle introduction to ROS. 2 ed. University of South
California, 2014. 155 p.

[5] - YOON, Myunggon. ​Experimental Identification of Thrust Dynamics for a


Multi-Rotor Helicopter. ​International Journal of Engineering & Technology (IJERT).
Vol. 4, ISSN: 2278-0181, Novembro 2015.

Você também pode gostar