O que é controle PID? P, I e D explicados com circuitos interativos

O ar-condicionado se acomoda exatamente na temperatura escolhida. O piloto automático segura a velocidade na subida. Um drone leva uma rajada de vento e volta a se nivelar. Por trás de tudo isso trabalha o mesmo mecanismo incansável: o controle PID, o jeito padrão de as máquinas perseguirem um alvo e corrigirem com suavidade qualquer desvio.

O nome soa como uma sigla intimidadora. Na verdade, o PID não passa de um controlador simples que foi crescendo, remendo a remendo, até virar uma pilha extremamente prática. Neste artigo, partimos do controlador mais rudimentar possível — o simples liga-desliga — e acrescentamos um termo de cada vez: P, depois PI, depois PID. A cada passo, você verá a resposta mudar em circuitos interativos que rodam nesta própria página.

💡 Dica

As figuras 1 a 5 são interativas: simulações de verdade, não vídeos. Você pode brincar com as figuras primeiro e voltar ao texto depois. Os gráficos respondem no instante em que você mexe um controle.

Um esclarecimento antes de começar: desta vez o circuito em si não é o protagonista. Ele faz o papel de dublê de qualquer equipamento que responde a um comando com atraso: um aquecedor esquentando um cômodo, um motor ganhando velocidade, a água amornando. Boa parte do mundo físico se comporta assim, e é exatamente esse atraso que faz do controle um ofício.

1. Primeiro, o vocabulário do controle

O objetivo é sempre o mesmo: levar o valor real até o valor desejado e mantê-lo lá. A receita que decide qual comando enviar ao equipamento é o que chamamos de controle. Este artigo usa os símbolos padrão da área.

Se preferir sentir primeiro o comportamento real, pule direto: → Fig. 1.

SímboloNome completoSignificado
SPSet Point (valor de referência)O valor que você quer. A linha cinza tracejada dos gráficos.
PVProcess Value (variável de processo)O valor realmente medido; aqui, a tensão do capacitor. A linha azul contínua.
MVManipulated Variable (variável manipulada)O comando injetado no equipamento; aqui, a tensão SoftMV. A linha amarela contínua.
eErroQuanto se desvia: \(e = SP-PV\). O controlador não olha para nada além deste e para decidir a MV.
SP cinza tracejada = referência PV azul = valor real MV amarelo = comando Dist vermelho = perturbação (Fig. 5)

E este é o destino do artigo: o controle PID cabe em uma única linha. Observamos o erro e por três ângulos — quanto ele vale agora (P), quanto se acumulou ao longo do tempo (I) e com que velocidade está mudando (D) — e somamos as três respostas para formar o comando.

\[ MV = K_p\, e + K_i \int e\, dt + K_d \frac{de}{dt} \]

Não tente absorvê-la de uma vez. Vamos fazer essa equação crescer termo a termo, da esquerda para a direita: começando sem equação nenhuma (o liga-desliga) e acrescentando um termo cada vez que o controlador mostrar suas limitações. A linha de chegada desse percurso é a fórmula acima.

Nosso “equipamento” substituto é um resistor de 100 Ω alimentando um capacitor de 47 µF. Ao comandar uma tensão MV, a tensão do capacitor PV a alcança aos poucos, com uma constante de tempo \(\tau = RC = 100 \times 47 \times 10^{-6} \approx 4{,}7\,\mathrm{ms}\): um atraso de primeira ordem de livro-texto. Sua resposta ao degrau é a curva clássica, e o temperamento “não consigo mudar de repente” está escrito na própria fórmula.

\[ PV(t) = MV \left( 1-e^{-t/\tau} \right) \]

ℹ️ Como ler as figuras

Em cada figura, o gráfico de cima mostra SP (cinza tracejada) e PV (azul); o de baixo, MV (amarelo). O truque é lê-los em dupla: em cima, “o azul está chegando perto do cinza?”; embaixo, “quanto o amarelo está trabalhando para isso?”. Quando o centro de uma figura sai da tela, a simulação dela pausa sozinha (veja sim=run/pause na linha de status).

2. Tudo ou nada (Fig. 1: controle ON/OFF)

Comecemos sem ferramenta nenhuma. Abaixo da referência? Liga no máximo. Acima? Desliga. É o controlador que todo mundo inventa de primeira, e ele continua em toda parte: o termostato de um ferro de passar, uma chaleira elétrica ou um aquecedor funcionam exatamente assim.

Implementado ao pé da letra, ele bateria liga-desliga em alta velocidade bem em cima da referência; na prática, então, acrescenta-se uma banda de histerese (banda morta) de largura h. Escrito como condições:

\[ MV = \begin{cases} MV_{\max} & \left( PV < SP - \dfrac{h}{2} \right) \\[0.4em] 0 & \left( PV > SP + \dfrac{h}{2} \right) \\[0.4em] \text{manter o estado anterior} & \left( \text{caso contrário} \right) \end{cases} \]

Caiu abaixo da banda: liga. Passou da banda: desliga. Dentro da banda: não faz nada. Esse é o algoritmo inteiro: duas comparações e nenhuma multiplicação. Essa simplicidade é a grande força do controle liga-desliga.

A regra que comanda esta figura

  • Bem abaixo da referência → liga a tensão (SoftMV) no máximo
  • Bem acima → desliga

Experimente

1Olhe o gráfico de cima: o azul (PV) cruza o cinza (SP) sem parar, para sempre
2Estreite a “Histerese” até uns 0,2 V. O chaveamento acelera e o vaivém fica nervoso
3Agora alargue para 1,0 V. Menos chaveamentos, porém uma oscilação mais ampla
4Arraste o controle de SP e veja a banda inteira acompanhar a referência

O que observar

O azul nunca gruda no cinza: ele fica indo e voltando dentro da banda (o famoso “hunting”, ou ciclo-limite). A MV amarela, embaixo, é uma onda quadrada batendo entre zero e potência máxima. Estreite a banda e a oscilação encolhe, mas o chaveamento dispara — e em hardware de verdade, chavear sem parar devora relés e resistências. Você é obrigado a sacrificar ou a ondulação ou a vida útil. Esse dilema é o limite do controle liga-desliga.

Carregando simulador…

Status

3.00 V Quando estabilizar, mexa em mim!
0.60 V Largura da banda morta.
Estreita = chaveamento frenético; larga = oscilação ampla.

SP/PV

MV

Simulação: CircuitJS1 (Paul Falstad / Iain Sharp et al., GPL)

3. Empurrar na proporção do erro (Fig. 2: controle P)

Queremos acabar com o vaivém. Pegamos então a primeira ferramenta de verdade: em vez de escolher entre tudo ou nada, empurrar com uma força proporcional à distância do alvo. É o controle proporcional — o “P” do PID.

\[ MV = K_p\, e = K_p\,(SP-PV) \]

Longe da referência, empurra forte; chegando perto, alivia. É exatamente o que a sua mão faz no registro do chuveiro. O ganho proporcional \(K_p\) é a sensibilidade: “quantos volts de empurrão por volt de erro”.

Mas o P sozinho tem um defeito de fábrica. Nosso equipamento murcha assim que você para de empurrar — manter a referência exige esforço contínuo. Só que \(MV = K_p e\) diz que quando o erro chega a zero, o empurrão também cai a zero. Um controlador que só consegue empurrar enquanto há erro não tem alternativa: para um pouco antes e se equilibra ali. Essa sobra chama-se erro em regime permanente (offset).

Para este equipamento em particular, que se acomoda em \(PV = MV\), dá para calcular onde ele se equilibra. Resolvendo \(PV = K_p (SP-PV)\):

\[ PV = \frac{K_p}{1 + K_p}\, SP, \qquad e_{\infty} = \frac{SP}{1 + K_p} \]

Com \(SP = 3\,\mathrm{V}\) e \(K_p = 5\), a previsão é \(PV = 2{,}5\,\mathrm{V}\): faltam uns 0,5 V. Confira na figura abaixo: ele pousa exatamente aí. Aumentar \(K_p\) encolhe a folga (o denominador cresce), mas a resposta fica brusca e surgem os primeiros sobressinais e oscilações.

A regra que comanda esta figura

  • Quanto mais longe da referência, mais forte a tensão (SoftMV) empurra para cima ou para baixo (Kp)

Experimente

1Deixe Kp = 5 e confirme que o azul (PV) estaciona um pouco abaixo do cinza (SP): cerca de 2,5 V para SP = 3 V
2Baixe Kp para 1. A folga cresce muito (a fórmula prevê metade do SP: 1,5 V)
3Suba Kp para 8. A folga encolhe — mas mexa no SP e você verá o valor passar do ponto
4Mova o SP aos trancos e compare a perseguição do azul com o traço amarelo de baixo

O que observar

O vaivém sumiu. Mas o azul para sempre um tiquinho antes do cinza. Brinque com o Kp e confronte a folga com a fórmula \(e_{\infty} = SP/(1+K_p)\). Repare também no amarelo: em vez de uma onda quadrada aos trancos, agora ele desliza suave, proporcional ao erro. É a outra grande diferença em relação à Fig. 1.

Carregando simulador…

Status

3.00 V Quando estabilizar, mexa em mim!
5 Empenho em perseguir o alvo.
Forte demais = sobressinal e oscilação.

SP/PV

MV

Simulação: CircuitJS1 (Paul Falstad / Iain Sharp et al., GPL)

4. Apagar o erro restante com o tempo (Fig. 3: controle PI)

A fraqueza do controle P era “sem erro, sem empurrão”. O remédio é quase atrevido: manter a conta acumulada do erro ao longo do tempo e empurrar também com base nessa conta. Essa é a ação integral (I); somada ao P, dá o controle PI.

\[ MV = K_p\, e + K_i \int e\, dt \]

O segredo está no segundo termo. Enquanto restar qualquer erro e, a integral \(\int e\, dt\) continua crescendo — ou seja, o empurrão continua aumentando enquanto a referência não for atingida. Com essa regra, nenhum ponto de operação diferente de e = 0 pode ser um equilíbrio. É exatamente por isso que o erro em regime deixado pelo P é eliminado — não aproximadamente: por princípio.

Olhe o regime permanente e verá algo saboroso: o erro é zero, então o termo P não contribui com nada. Quem sustenta a PV é o termo integral sozinho, carregando todo o esforço contínuo graças à memória dos erros passados. O integrador é a memória do controlador.

Há um preço. Como a integral carrega a história, ela ainda está “carregada” no momento em que a referência é atingida — a resposta tende a passar do ponto primeiro e voltar depois. Suba demais o \(K_i\) e ela balançará várias vezes antes de assentar.

A regra que comanda esta figura

  • Quanto mais longe da referência, mais forte a tensão empurra (Kp)
  • O erro que sobra se acumula com o tempo e vai sendo espremido aos poucos (Ki)

Experimente

1Com Kp = 5 e Ki = 50, confirme que o azul (PV) fica grudado no cinza (SP): a grande diferença em relação à Fig. 2
2Zere o Ki. Você volta ao “sempre um tiquinho antes” da Fig. 2
3Suba o Ki acima de 100 e mexa no SP. Verá o valor passar do ponto e balançar antes de assentar
4Já assentado, olhe o gráfico de baixo: erro zero e mesmo assim o amarelo (MV) sustenta um nível constante — é o termo integral trabalhando sozinho

O que observar

O azul agora gruda no cinza. Esse é o poder da ação integral. Mas observe logo depois de um salto do SP: o azul ultrapassa a referência uma vez antes de voltar. “Apagar o erro com garantia” e “nunca passar do ponto” puxam em sentidos opostos, e equilibrar Kp contra Ki é o seu primeiro contato com o que os engenheiros chamam de sintonia (tuning).

Carregando simulador…

Status

3.00 V Quando estabilizar, mexa em mim!
5 Empenho em perseguir o alvo.
Forte demais = sobressinal e oscilação.
50 Rapidez com que o erro restante é apagado.
Forte demais = mais sobressinal e balanço.

SP/PV

MV

Simulação: CircuitJS1 (Paul Falstad / Iain Sharp et al., GPL)

5. Frear antes de passar do ponto (Fig. 4: controle PID)

O PI já sabe cravar a referência. A queixa restante é o sobressinal. Enquanto você se aproxima em alta velocidade, o PI continua empurrando enquanto houver erro: mantém o pé no acelerador até a porta de entrada. Nenhum motorista humano faria isso: ao se aproximar de uma placa de pare, você freia antes de chegar. A ação derivativa (D) é essa freada antecipada, escrita em forma de matemática.

\[ MV = K_p\, e + K_i \int e\, dt + K_d \frac{de}{dt} \]

E com isso a equação da introdução fica completa — isto é o PID. O terceiro termo vigia \(de/dt\), a velocidade com que o erro muda. Quando você despenca em direção à referência, o e encolhe rápido, então \(de/dt\) fica bem negativo: o termo D corta o empurrão (freia). E quando uma perturbação arranca você da referência de repente, o D reage à rapidez com que o erro cresce e começa a contra-atacar antes de todo mundo.

A divisão de papéis, em uma linha cada:

  • P (o presente) — empurra na proporção do erro atual. O burro de carga.
  • I (o passado) — lembra o erro acumulado e carrega o esforço contínuo final. Mata o erro em regime.
  • D (o futuro) — lê a tendência e freia antes que o sobressinal aconteça.

A regra que comanda esta figura

  • Quanto mais longe da referência, mais forte a tensão empurra (Kp)
  • O erro restante se acumula com o tempo e é espremido (Ki)
  • Quanto mais rápido o erro muda, mais o empurrão é cortado para evitar passar do ponto (Kd)

Experimente

1Com Kp = 4, Ki = 50, Kd = 0,02, dê um salto grande no SP e repare em quanto o pico azul ultrapassa
2Zere o Kd e repita. O sobressinal cresce: ficou sem freio
3Suba o Kd para 0,05. O amarelo (MV) fica nervoso — em hardware real, o ruído do sensor o faria vibrar sem parar
4Olhe o gráfico de baixo no instante do salto do SP: aquele pico amarelo afiado é o D fazendo o trabalho dele

O que observar

Com um Kd moderado, o azul para de atravessar o cinza. Procure o momento em que o traço amarelo alivia cedo, pouco antes de chegar: ali ele está pisando no freio. Mas sem exagerar: o D reage à mudança — e isso inclui o ruído. Em campo, os engenheiros costumam deixar o D pequeno ou simplesmente dispensá-lo e ficar no PI — e depois de um minuto brincando com esta figura, você vai sentir exatamente por quê.

Carregando simulador…

Status

3.00 V Quando estabilizar, mexa em mim!
4 Empenho em perseguir o alvo.
Forte demais = sobressinal e oscilação.
50 Rapidez com que o erro restante é apagado.
Forte demais = mais sobressinal e balanço.
0.02 Freio contra o sobressinal.
Forte demais = nervosismo, sensível a ruído.

SP/PV

MV

Simulação: CircuitJS1 (Paul Falstad / Iain Sharp et al., GPL)

6. Segurar firme contra perturbações (Fig. 5)

Até aqui vimos o controlador perseguir mudanças de referência. Mas é quando o mundo interfere sem pedir licença que o controle por realimentação ganha o salário de verdade: alguém abre uma janela e o cômodo esfria, a estrada começa a subir, uma rajada empurra o drone. Qualquer empurrão imprevisto que tire a PV da referência chama-se perturbação.

Aqui vem a parte elegante: o PID não precisa de nenhum mecanismo extra para lidar com perturbações. A equação é exatamente a mesma da Fig. 4.

\[ MV = K_p\, e + K_i \int e\, dt + K_d \frac{de}{dt} \]

O controlador não tem a menor ideia de por que o erro apareceu. Ele reage ao simples fato de existir um erro — tanto faz se você moveu a referência ou se o mundo empurrou o processo. Essa indiferença à causa é justamente o que torna o controle por realimentação tão robusto.

A regra desta figura (o mesmo PID da Fig. 4)

  • P, I e D trabalhando exatamente como antes
  • O botão “Pulso de perturbação” injeta uma tensão no circuito pela lateral e arranca a PV da referência à força

Experimente

1Com Kp = 6, Ki = 60, Kd = 0,02, espere o azul (PV) assentar sobre o cinza (SP)
2Aperte “Pulso de perturbação”. O vermelho (Dist) dispara no gráfico de baixo e o azul é empurrado para cima
3Veja o azul voltar sozinho ao cinza — e o amarelo (MV) suar a camisa para conseguir isso
4Zere o Kd e repita o pulso. Compare o formato da recuperação (primeira reação, balanço)

O que observar

Logo após o impacto do pulso: o D reage primeiro à mudança brusca, o P contra-ataca, e o I recolhe o erro que sobrou — toda a divisão de papéis se desenrola dentro de uma única recuperação. Quando você abre a janela de um cômodo climatizado e minutos depois a temperatura voltou sozinha, é exatamente essa sequência que está acontecendo atrás da parede.

Carregando simulador…

Status

3.00 V Quando estabilizar, mexa em mim!
6 Empenho em perseguir o alvo.
Forte demais = sobressinal e oscilação.
60 Rapidez com que o erro restante é apagado.
Forte demais = mais sobressinal e balanço.
0.02 Freio contra o sobressinal.
Forte demais = nervosismo, sensível a ruído.

SP/PV

MV/Dist

Simulação: CircuitJS1 (Paul Falstad / Iain Sharp et al., GPL)

7. O PID está escondido ao seu redor

A pilha “P + I + D” que acabamos de montar não é uma tecnologia exótica de fábrica. Ela é quase invisível justamente porque está em toda parte:

  • Ar-condicionado e aquecedores de água — assentam mansamente na temperatura escolhida e se recuperam quando uma porta abre. Aparelhos inverter normalmente rodam malhas de temperatura da família PID.
  • Piloto automático de velocidade — a posição do acelerador é a MV, a velocidade é a PV e a ladeira é a perturbação.
  • Drones — ângulos de atitude corrigidos por PID centenas de vezes por segundo. Um drone se nivelando depois de uma rajada é a Fig. 5 ao pé da letra.
  • O bico quente de uma impressora 3D — mantido perto de 200 °C com margem de um grau. Abra a configuração do firmware e você encontrará Kp, Ki e Kd com esses mesmos nomes.
  • Panelas elétricas de arroz e fornos — quanto mais alta a linha, mais fino o acompanhamento do perfil de temperatura.
  • CLPs e controladores de processo — o bloco padrão das malhas de temperatura, pressão e vazão na indústria. O botão de “autossintonia”? Ele escolhe Kp, Ki e Kd por você.

Enquanto isso, o aquecedor e a chaleira continuam no liga-desliga puro (Fig. 1) — e com toda a razão. Se vagar dentro de uma banda não custa nada, a simplicidade vence. Acrescente apenas os termos que a precisão exigida pedir: o caminho que percorremos — ON/OFF → P → PI → PID — é também, passo a passo, o modo como um engenheiro na ativa decide quanto controlador cada trabalho realmente precisa.

8. Cuidados no hardware real

Três assuntos que parecem mansos nas figuras e mostram os dentes na hora em hardware de verdade. Por coincidência, o código de controle desta própria página carrega, discretamente, uma contramedida para cada um.

  • Saturação — atuadores reais têm limites (um aquecedor não passa de 100 %). Enquanto a MV está cravada num limite, as elegantes equações lineares deixam de valer.
  • Windup do integrador — se o integrador continua acumulando enquanto a saída está saturada, o empurrão represado explode num sobressinal enorme quando é liberado. A cura padrão: não integrar durante a saturação (o código desta página cancela o passo de integração sempre que a saída é cortada).
  • A derivada e o ruído — o D amplifica o que muda rápido, e nada muda mais rápido que o ruído do sensor. Controladores reais acrescentam um filtro passa-baixa no D, deixam-no pequeno, ou o eliminam e rodam em PI.

Uma desmistificação para terminar. Dentro de um microcontrolador ou de um CLP, a integral é só uma soma acumulada e a derivada é só “esta amostra menos a anterior”. O JavaScript que move esta página calcula exatamente:

\[ MV_n = K_p\, e_n + K_i \sum_{k} e_k\, \Delta t + K_d\, \frac{e_n-e_{n-1}}{\Delta t} \]

A forma de livro-texto (integrais e derivadas) e a forma de código (somas e subtrações) são a mesma ideia com roupas diferentes. No momento em que cai a ficha de que a fórmula intimidadora compila para somas e subtrações, o PID deixa de ser teoria e vira ferramenta.

Resumo

  • Controlar é decidir um comando (MV) que leve o valor real (PV) até a referência (SP) e o mantenha lá.
  • O controle liga-desliga (Fig. 1) é simples e robusto, mas vaga para sempre dentro da banda de histerese.
  • O controle P (Fig. 2) mata o vaivém, mas “sem erro, sem empurrão” deixa um offset em regime (neste equipamento, \(e_{\infty}=SP/(1+K_p)\)).
  • Somar o I dá o PI (Fig. 3): o erro acumulado fornece o esforço contínuo e apaga o offset por princípio, ao custo de sobressinal.
  • Somar o D dá o PID (Fig. 4): freada antecipada contra o sobressinal, ao custo de sensibilidade a ruído.
  • O PID completo lida com mudanças de referência e perturbações (Fig. 5) com uma única e mesma equação.
  • Do ar-condicionado aos drones, o PID é peça padrão das máquinas do dia a dia — e onde o liga-desliga basta, continua-se usando o liga-desliga.
FiguraControladorTermo acrescentadoO que se vê
Fig. 1ON/OFFHunting (vaivém dentro da banda)
Fig. 2PProporcionalSem vaivém, mas sobra um offset
Fig. 3PI+ IntegralOffset apagado; surge o sobressinal
Fig. 4PID+ DerivativoFreada antes do sobressinal
Fig. 5PID + perturbaçãoA mesma equação, recuperação automática

Perguntas frequentes

P1. Este circuito é um controlador de temperatura de verdade?

R. Não: é um dublê. O par resistor–capacitor reproduz o temperamento “responde com atraso” compartilhado por aquecedores, motores e muitos outros processos reais (um atraso de primeira ordem), com a rapidez e a segurança necessárias para rodar no seu navegador. Com τ ≈ 4,7 ms, uma resposta completa cabe na janela de 0,05 s do gráfico.

P2. Como se escolhem Kp, Ki e Kd?

R. Esse processo se chama sintonia (tuning). Existem receitas clássicas (a de Ziegler–Nichols é a mais famosa), e controladores industriais e firmwares de drones trazem autossintonia que escolhe os ganhos por você. Na mão, a ordem consagrada é: molde a resposta só com o P, acrescente o I para apagar o offset e adicione uma pitada de D só se precisar — que é exatamente a ordem dos capítulos deste artigo.

P3. Por que o controle é calculado em JavaScript e não dentro do circuito?

R. Em parte porque o CircuitJS1 não traz um bloco PID pronto, e em parte para manter controles, gráficos e circuito sincronizados numa única página. O script da página lê a PV da simulação, calcula a lei PID e escreve o resultado na fonte de tensão SoftMV: o mesmo laço ler-sensor → calcular → escrever-saída que você programaria num microcontrolador.

P4. É o mesmo PID de um CLP ou de um controlador de processos?

R. O esqueleto é idêntico, mas as implementações comerciais acrescentam refinamentos: derivada sobre a PV, filtragem da derivada, esquemas anti-windup, transferência suave e mais. Tome este artigo como um modelo didático do esqueleto.

P5. Ouvi dizer que na prática o D muitas vezes fica de fora. É verdade?

R. “Muitas vezes, sim” é a resposta honesta. Em processos ruidosos e em malhas de temperatura lentas, o PI costuma bastar, e o benefício do D vem embrulhado com amplificação de ruído. O tremor que você viu no traço amarelo ao subir o Kd na Fig. 4 é esse risco em miniatura.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *