Controle PID em sistemas embarcados

Controle PID

No mundo moderno as palavras estabilidade e precisão são pré-requisitos para muitos sistemas e equipamentos, para alcançar os avanços tecnológicos necessários para suprir essas e outras necessidades, o homem desenvolveu diversas técnicas que lhe permitiram analisar e projetar sistemas cada vez mais avançados.

Uma das áreas que mais se desenvolveu nas últimas décadas, sem dúvida foram os sistemas de controle, fato que possibilitou avanços em diversos segmentos como o aeroespacial, automotivo, robótica, telecomunicações, saúde, entre outros. 

Como uma das técnicas mais importantes do setor de controle e automação, podemos encontrar o controle PID.

Controle PID
Figura 1 – Sistema controlado

O controle PID (Proporcional Integral Derivativo) é uma das técnicas mais empregadas quando se deseja realizar o controle de variáveis contínuas. O controle PID consiste em um algoritmo matemático, que tem por função o controle preciso de uma variável em um sistema, permitindo ao sistema operar de forma estável no ponto de ajuste desejado, mesmo que ocorram variações ou distúrbios que afetariam sua estabilidade.  Sua aplicação pode ser encontrada em qualquer aplicação que necessite de controle de variáveis contínuas como:

  • Rotação;
  • Nível;
  • Pressão;
  • Vazão;
  • Temperatura:
  • Posicionamento;
  • Controle de tensão em fontes chaveadas.

O controle PID pode ser descrito pela seguinte equação:

Controle PID
Equação 1:  PID 

Onde:

MV: Variável manipulada.

Kp: Ganho proporcional.

Ki: Ganho integral.

Kd: Ganho derivativo.

E: Erro ou desvio.

S0: Saída inicial do controlador.

O erro é a diferença entre o valor desejado (setpoint) e o valor real da variável. Por exemplo em um forno onde se deseja a temperatura de 100 ºC (Setpoint = 100ºC), caso a temperatura real do forno esteja a 80ºC temos um erro de 20ºC.

Funcionamento das ações do controle PID

No controle PID cada ação desenvolve uma função determinada.

A ação proporcional elimina as oscilações da variável, tornando o sistema estável, mas não garante que a mesma esteja no valor desejado (setpoint), esse desvio é denominado off-set. A ação proporcional trabalha corrigindo o erro do sistema, multiplicando o ganho proporcional pelo erro, dessa forma agindo com uma maior amplitude de correção a fim de manter a estabilidade da variável.

Controle PID
Equação 2: Proporcional

A ação integral elimina o desvio de off-set, fazendo com que a variável permaneça próximo ao valor desejado para o sistema mesmo após um distúrbio,  ou seja a variável permanece próximo ao set-point mesmo que ocorra uma variação brusca nas condições de operação. A ação integral realiza a integração do erro no tempo, portanto quanto maior for o tempo de permanência do erro no sistema, maior será a amplitude da ação integral.

Controle PID
Equação 3: Integrador

Windup na ação integral

Quando o controlador sofre variações bruscas, o sinal de saída do controlador PID  pode atingir seu limite máximo saindo da região linear normal de controle, fazendo com que o atuador seja acionado até seu limite de capacidade. Em outras palavras ocorre a saturação do sinal de controle. Este fato faz com que o loop de controle seja desfeito, pois o atuador permanecerá no seu limite máximo independentemente da saída do processo ou máquina controlada. Se a ação integral for utilizada, o erro continuará a ser integrado e o termo integral tende a se tornar muito grande. Esse fenômeno é denominado “windup”.  

Vamos tomar como exemplo o loop da malha de controle representada na figura abaixo, onde temos um sistema de controle de nível de  fluido. O medidor de nível envia seu sinal para o subtrator onde é comparado com o valor de setpoint, caso exista algum erro o controlador PID envia o sinal de correção para a válvula de controle.

Nesse caso, quando o tanque está vazio, o controlador ordena a abertura máxima da válvula para que o nível do tanque suba o mais rápido possível. Caso o sinal de saída permaneça no seu limite máximo por muito tempo ou o sensor de nível não indique algum valor próximo ao setpoint, podemos ter o efeito windup no sistema. 

Para corrigir o efeito windup o controlador PID deve possuir em seu algoritmo rotinas de “reset” da ação integral,  que impede que o termo integral continue a ser atualizado quando a saída atinge seu  limite máximo.

Controle PID
Figura 2: Controlando uma máquina

Ainda vale lembrar que a variável de processo (PV) é o nível, e a variável manipulada (MV) é a vazão de fluido.

A ação derivativa fornece ao sistema uma ação antecipativa evitando previamente que o desvio se torne maior quando o processo se caracteriza por ter uma correção lenta comparada com a velocidade do desvio.

A ação derivativa tem sua resposta  proporcional à taxa de variação da variável do processo, aumentando a velocidade de resposta do sistema caso a presença do erro seja detectada. Logo, em sistemas de resposta lenta como controle de temperatura, a ação derivativa permite antecipar o aumento do erro e aumentar a velocidade de resposta do sistema. Quando o sistema a ser controlado possui maior velocidade de resposta, como por exemplo controle de rotação de motores e controle de vazão de fluidos, a ação derivativa pode ser desativada, pois não há necessidade de antecipar a resposta ao erro, pois o sistema pode corrigir rapidamente seu valor, para desativar a ação derivativa basta tornar seu valor igual a zero.

Controle PID
Equação 4: Função Derivativa

É comum a utilização das combinações P+I e P+I+D, de modo geral em sistemas com boa velocidade de resposta como pressão, vazão e rotação de motores, podem ser utilizados controladores PI. Para obter um controle mais rápido e preciso os sistemas com resposta lenta como os de controle de temperatura devem utilizar o controlador PID.

PID em Microcontroladores e DSP’s

A maioria dos fabricantes de chips e de compiladores disponibilizam bibliotecas de controle PID para seu dispositivos. Com uma busca rápida nos sites de alguns fabricantes de microcontroladores e DSP’s é possível encontrar exemplos e bibliotecas para a implementação do controlador PID.

Para operar como controlador PID o dispositivo utilizado seja ele microcontrolador, DSP ou FPGA, deve possuir uma entrada e saída analógicas ou uma saída PWM, que inclusive é o caso do Arduino uno, pois apesar de possuir conversor A/D este não possui conversor D/A, utilizando portanto sua saída PWM, o Arduino Due por sua vez possui os conversores A/D e D/A. Caso o chip utilizado não tenha conversor A/D, é possível utilizar um circuito integrado para essa função, como por exemplo o PCF8591 da NXP que é um conversor de 8-bit A/D e D/A.

Exemplo de código utilizado para criação de um PID simples em linguagem C, este código possui rotina de correção de windup.

Controlador PID Open Source Hardware

Vale apena uma visita no site do controlador PID de hardware aberto chamado osPID. Esse controlador possui recursos muito interessantes, inclusive com função de PID Auto-tune que realiza a sintonia do controlador de forma automática, ainda é possível se comunicar com o computador pela porta USB e utilizar um software, desenvolvido para facilitar sua configuração e seu monitoramento. 

Controlador PID de hardware aberto

Figura 3: Controlador PID de hardware aberto

Runtab

 Figura 4: OsPID

 Características:

  • Complete Arduino compatible board with ATMega328P-AU
  • 8×2 LCD white character with blue back light & adjustable contrast
  • On board USB-serial port
  • 1 2×6 2.54mm pitch edge card expansion slot for input card
  • 1 2×6 2.54mm pitch edge card expansion slot for output card
  • 4 push buttons
  • 1 red LED for power indication
  • 1 yellow LED for system status and operation
  • 1 green LED for USB activity status
  • 1 buzzer with transistor for a loud and annoying sound
  • 1 reset button
  • Analog reference voltage with LC filter
  • Auto reset selection through jumper
  • 7 – 38 VDC input range
  • 6-pin AVR In-circuit serial programming (ICSP) header
  • Dimension – 46.99 mm x 46.99 mm
  • Can be slotted into 1/16 DIN panel cutouts
  • RoHS compliant – Yes

No próximo artigo veremos quais parâmetros o controlador PID utiliza e como podemos definir esses valores.

Se você já utilizou o PID em algum sistema deixe o comentário de sua experiência.

Alguns videos que mostram o controle PID em ação

Controle de uma esfera,em um prato controlado por PID

 Controle PID com LEGO

 Introdução ao controlador osPID

Controle de um pendulo invertido com PID

Exemplos de aplicação do PID em microcontroladores

Biblioteca PID para o Arduino.

Controle PID no mbed.

 Software PID Control of an Inverted Pendulum Using the PIC16F684.

 Implementing a PID Controller Using a PIC18 MCU.

 Manual da biblioteca DSP com algoritmo PID do STM32.

 Página do controlador PID open source hardware “osPID”.

 LIBSTOCK Site com centenas de bibliotecas de programação, inclusive PID.

Simuladores PID

sourceforge.net/projects/pid-simulator/

sourceforge.net/projects/pidloopsimulato/

dexautomation.com/ps/

www.engineers-excel.com/Apps/PID_Simulator/Description.htm

www.che.utexas.edu/course/che360/Process_Tuner.html

www.pidlab.com/en/

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Conceito de Engenharia » Controle PID em sistemas embarcados
Comentários:
Notificações
Notificar
guest
24 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Francisco Mussili
Francisco Mussili
12/11/2019 08:30

Olá Carlos, adorei o post, olha estou ajudando um amigo na elaboração de um protótipo de levitação magnética de uma esféra, e é necessário para tal fazer-se o controle da posição da esféra. E gostaria que me ajudasse a criar um algoritmo pid para tal fim usando um microcontrolador específico que melhor se adapte a situação.

Joel Aragão
06/09/2019 12:59

excelente artigo.

Marcos Soares de Oliveira
30/03/2019 15:56

Prezado Márcio, no meu TCC quero elaborar um conversor buck microcontrolado que estabilise a tensão de saída em um valor fixo, muito obrigado pelo artigo ajudará muito.

Alain Mouette
Alain Mouette
28/01/2018 13:52

As equações são muito bonitas, as demonstrações de PID em produtos prontos também…
Mas o código exemplo é furado, não calcula o fator Integral ! Ninguém revisa os artigos?

Geraldo Gomes
Geraldo Gomes
06/11/2017 10:08

Só não entendi porque na fórmula Kd esta sendo multiplicado por So e Kp? Se quiser uma pressão inicial de 3psi é necessário somente incluir So como mais um termo a ser SOMADO e não multiplica-lo ao derivativo. E porque multiplicar Kp por Kd? O certo não seria usar um Kp que fosse adequado ao produto?

Saulo Furtado
Saulo Furtado
15/08/2015 21:12

Carlos, na “Equação 1: PID” por quê você colocou Kp e um S0 no termo derivativo?

Flavio De Castro Alves Filho
21/12/2014 15:56

Esse vídeo é muito legal e pode ajudar a entender melhor o conceito.

https://www.youtube.com/watch?v=7BDjZYGHupE

Aivlis
Aivlis
20/11/2014 16:28

Foi um artigo realmente interessante e fácil de entender. Obrigada por facilitar minha vida no entendimento de PIDs!

Rafael Dias
Rafael Dias
24/03/2014 10:24

Este assunto de controlador PIDs é muito interessante e vasto. A teoria matemática atrás do PID é simples e você pode encontrar exemplos de uso em outras áreas, não somente eletrônica, desde sistemas puramente mecânicos até modelamento de processos de macro-economia. Cheguei a implementar um controle PID com auto-tunning a alguns anos atrás (na verdade a uns 10 anos atrás) e o grande charme do PID é determinar os valores dos parâmetros P, I e D para a planta que está querendo controlar. Aí, dá para se fazer uso de várias técnicas, desde a clássica de Ziegler & Nichols, até… Leia mais »

Carlos Márcio Freitas
Carlos Márcio Freitas
Reply to  Rafael Dias
28/03/2014 11:06

Olá Rafael, sem dúvida o controle PID é muito interessante, e seu campo de aplicação é enorme, nos próximos artigos pretendo abordar as técnicas de sintonia do controlador com alguns exemplos.
Obrigado pelo comentário.
Um grande abraço.

Luiz Almeida Junior
Luiz Almeida Junior
24/10/2016 12:55

Otimo material, grato por compartilhar.

Talvez você goste:

Séries

Menu

WEBINAR
 
Porque o RTOS não faz o que eu quero?

Data: 28/10 às 19:30h - Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link