Contents — find the section you need
O controle PID (proporcional-integral-derivativo) altera uma entrada após comparar uma referência com uma medição. Ele é usado em aquecedores, acionamentos, circuitos de fluxo, juntas de robôs e aeronaves porque funciona bem mesmo sem um modelo perfeito da planta. Sua aparente simplicidade é enganosa: um controlador sem unidades definidas, limite de saída, política de temporização, validação de sensores ou caminho de parada segura não é um controlador viável. É uma equação prestes a falhar.
Este artigo começa com a conclusão prática, depois desenvolve a intuição, o fluxo de sinal e as equações, a sintonia de Ziegler-Nichols, as restrições e a segurança, e exemplos de software atuais. Para obter informações sobre nós, temporização e limites de hardware em torno de um controlador de robô, consulte ROS 2 Primer. Para entender por que o atraso de localização e os saltos também são problemas de controle, consulte Visual SLAM Primer.
A entrada do PID é o erro e=r-y e sua saída é o comando u. P reage ao erro atual, I remove o offset persistente e D adiciona amortecimento à taxa de variação.
Conclusão resumida
-
P responde ao erro atual; I remove o erro que persistiu; D fornece amortecimento à taxa de variação. Comece com P, defina os limites, adicione I somente quando um offset estável permanecer e adicione D filtrado somente quando houver um propósito claro.
-
A implementação deve limitar tanto o comando quanto a taxa de comando. A saturação sem anti-windup faz com que um integrador armazene uma demanda que o atuador não pode atender.
-
Diferencie uma medição filtrada na maioria dos sistemas físicos, em vez de diferenciar um erro de referência em degrau. Isso evita o pico derivativo e reduz a sensibilidade a mudanças na referência.
-
O PID geralmente é a melhor solução para um único laço rápido com atraso moderado. Otimizações mais avançadas não eliminam a necessidade de um laço interno rápido, observável e seguro.
Intuição: três operadores observando um erro
Suponha que a temperatura ambiente esteja abaixo do valor de referência. O operador P diz: “está cinco graus abaixo agora, então aplique calor agora”. O operador I diz: “a temperatura permaneceu baixa por um longo tempo, então o aquecimento de base é inadequado”. O operador D diz: “a temperatura já está subindo rapidamente; reduza a potência antes que ultrapasse o valor de referência”. A soma desses operadores pode fornecer uma resposta rápida, rejeitar uma perda de calor constante e reduzir a ultrapassagem do valor de referência.
A analogia omite os fatos que determinam se o circuito é seguro: a potência do aquecedor é finita, um termômetro é ruidoso e o calor leva tempo para se propagar. Um operador derivativo pode confundir ruído com movimento; um integrador pode continuar acumulando enquanto o aquecedor já está saturado. O projeto de um controlador PID, portanto, começa com o que é medido e o que pode ser comandado com segurança — não com os valores de ganho.
Fluxo de sinal: o controlador é apenas um bloco
Diagrama: Duskcoil, diagrama de fiação conceitual em vez de medido. Calibração, atraso de transporte, comunicações e loops internos do atuador pertencem ao caminho real do sinal.
Se a planta for G e o sensor ou estimador for H, tornar apenas o controlador C mais capaz não remove o atraso, a saturação ou as falhas em G e H. Por exemplo, quando um robô móvel usa localização SLAM para rastreamento, saltos e latência na estimativa aparecem para o PID como ruído de medição e perturbação. Os sistemas de coordenadas, a sincronização de tempo e a relocalização discutidos em Visual SLAM Primer fazem parte do problema de controle em torno do controlador.
Equações e unidades básicas
Seja r a referência, y a medição, e=r-y e u_{ff} o comando de feedforward. O PID contínuo paralelo é
K_P tem unidades de u/e, K_I tem unidades de u/(e\cdot s) e K_D têm unidades de u\cdot s/e. Eles não são inerentemente adimensionais. Converter graus em radianos, inverter um codificador ou misturar um timestamp em milissegundos com um ganho baseado em segundos altera o loop. Registre as unidades, os sinais, os quadros e a política de atualização de referência antes do ajuste.
Com um período de amostragem T_s, uma implementação discreta básica mantém o estado integral I_k e a derivada diferencial D_k:
O controlador então calcula u_k=K_Pe_k+K_II_k+K_DD_k. Esta forma já expõe questões críticas de engenharia: T_s é medido ou assumido; o que acontece quando uma mensagem está atrasada; o que é feito com uma amostra desatualizada; e o controlador opera em um Taxa determinística? Uma derivada filtrada comum na medição usa
o coeficiente \alpha=\tau_f/(\tau_f+T_s) e
Ela evita o pico de derivada causado por uma mudança de referência. Seu filtro também adiciona atraso de fase, portanto, a filtragem não pode compensar um sistema mal amostrado ou mecanicamente solto.
Entendendo P, I e D um de cada vez
Aumentar P geralmente melhora a resposta imediata e a rejeição de distúrbios, até que o atraso e a dinâmica da planta o transformem em sobreimpulso ou oscilação. I remove um offset constante, como gravidade, atrito ou perda de calor, mas I em excesso integra a demanda antes que a planta tenha respondido. D pode fornecer amortecimento, mas amplifica a quantização do encoder, a vibração e a oscilação do estimador. Em uma cascata posição-velocidade, ajuste primeiro o laço de velocidade rápido e estável e, em seguida, o laço de posição. Não coloque todos os erros em um PID lento.
Saturação e anti-windup
Os comandos físicos obedecem u_{min}\leq u\leq u_{max} . Seja u^* o comando não saturado calculado e u=\operatorname{sat}(u^*) o comando enviado. Se I continuar acumulando enquanto um atuador estiver travado em um limite, o loop pode permanecer travado mesmo após a reversão do erro. Isso é o fenômeno de saturação do integrador: o integrador continua acumulando e mesmo que u não consiga acompanhá-lo, e o estado integral I_k posteriormente atrasa a recuperação.
A integração condicional congela o integrador quando a saída está saturada e a integral continuaria a entrar em saturação. O cálculo reverso é uma alternativa mais suave:
Aqui, I_k é o estado de erro integrado, portanto, K_{aw} tem unidades de erro por comando. Algumas implementações armazenam K_I I_k como saída integral e use 1/T_t (o tempo de rastreamento inverso) em vez disso; documente as unidades e a equação escolhidas. A discrepância de saturação é realimentada no integrador. K_{aw} define a velocidade dessa correção. Limitações do integrador, rampas de referência e transferência manual/automática suave são medidas complementares. O anti-windup não é um aprimoramento de desempenho; ele torna a recuperação após um limite inevitável previsível.
| Sintoma | Mecanismo provável | Inspecionar primeiro | Resposta típica |
|---|---|---|---|
| Resposta lenta ou offset | P muito baixo, perturbação constante | sinais, unidades, limite de saída | aumentar P gradualmente; adicionar I moderado, se necessário |
| Oscilação ou sobreimpulso | P/I muito alto, atraso | período do loop, atraso, traço do sensor | reduzir P/I; usar uma rampa de referência |
| Não se recupera de um limite | saturação do integrador | logs de comando e integral | I condicional, clamp, retrocálculo |
| Impulso em um ponto de ajuste | derivada do erro | caminho de entrada D | derivada da medição |
| Oscilação em baixa velocidade | atrito, quantização, folga | encoder e mecânica | laço de velocidade interno, compensação, filtro |
Ajuste, incluindo Ziegler-Nichols
O procedimento Ziegler-Nichols em malha fechada define I e D como zero, eleva P para um ganho de oscilação sustentada K_u, mede o período T_u e, em seguida, usa um ponto de partida PID clássico
onde K_I=K_P/T_i e K_D=K_PT_d. Aproximar-se deliberadamente da oscilação sustentada pode ser inaceitável em um processo térmico, veículo, sistema de pressão ou robô próximo a pessoas. É uma heurística histórica, não uma permissão para testar no limite de estabilidade.
A Um fluxo de trabalho mais seguro utiliza simulação ou testes de degrau de baixa amplitude para estimar o ganho estático, o atraso e a constante de tempo; habilita primeiro os limites e a lógica de parada; ajusta P; adiciona I apenas para corrigir um offset observado; em seguida, adiciona um D filtrado apenas para atender a uma necessidade de amortecimento medida. Teste o rastreamento de referência e a rejeição de distúrbios separadamente. Registre a corrente de pico, a temperatura, a velocidade, a distância de parada, o tempo de saturação e o estado integral para cada alteração.
Restrições e segurança existem fora da equação PID
Não faça da saída do PID a função de segurança. Utilize parada de emergência independente, proteção contra sobrecorrente/sobretemperatura/sobrepressão, limites de deslocamento, watchdogs e um comando seguro definido quando os dados ou a comunicação desaparecerem. Um controlador tenta alcançar uma referência; uma função de segurança impede a entrada em um estado inseguro sob hipóteses de falha que podem incluir falha do controlador.
No mínimo, valide as faixas de amostragem, os registros de data e hora e a atualização; limite as referências, a aceleração, a saída e a taxa de variação da saída; especifique o comportamento de reinicialização/retenção do integrador; teste a tomada de controle manual sem interrupção; e injete perda de sensor, amostras atrasadas, reinicialização do processador e alterações. O fato de o ROS 2 estar ativo não comprova a temporização determinística ou a segurança funcional.
Implementação atual e exemplos de pesquisa
O framework ros2_control separa as interfaces de hardware, o gerenciamento do controlador e os controladores, além de documentar o encadeamento de controladores e os controladores PID. Sua documentação oficial (https://control.ros.org/master/doc/ros2_control/doc/index.html) e a página do controlador PID (https://control.ros.org/jazzy/doc/ros2_controllers/pid_controller/doc/userdoc.html) expõem ganhos, clamps, opções anti-windup, referências, estados medidos e o estado do controlador publicado. Isso torna as interfaces e o estado observáveis; não ajusta um robô físico automaticamente.
Os controladores industriais compartilham as mesmas preocupações. A Siemens documenta a funcionalidade PID para os PLCs SIMATIC S7-1200/S7-1500 em seu manual do sistema S7-1200 (https://cache.industry.siemens.com/dl/files/829/109814829/att_1120874/v1/s71200_system_manual_en-US_en-US.pdf). Pesquisas estendem o PID com adaptação de atrito e atraso, ajuste baseado em dados e geração de referência de alto nível aprendida. mantendo um pequeno laço de baixo nível, facilmente inspecionável, onde essa for a arquitetura mais segura.
Lista de verificação de implementação
-
Defina a variável controlada, o comando, as unidades, as direções positivas, os intervalos válidos e a taxa de repetição do laço.
-
Valide a calibração, os registros de data e hora, a defasagem e os outliers antes do cálculo do controle.
-
Limite o u e sua taxa de variação; teste o comportamento independente de parada de emergência, watchdog e perda de comunicação.
-
Ajuste e registre os comandos P-only, PI e, em seguida, PID; teste os comandos e as perturbações separadamente.
-
Registre os flags de referência, medição, comando real, comando saturado, estado integral e falha em um único ciclo de clock.
-
Teste deliberadamente jitter, mudança de carga, reinicialização, perda de sensor e saturação do atuador.
-
Verifique a topologia do ROS 2 com o ROS 2 Primer e o tempo do estimador com o [Visual SLAM]. Introdução.
E se a integração continuar enquanto a saída estiver saturada?
A ação integral armazenada pode causar sobreimpulso posterior. Verifique o comportamento anti-windup em vez de ajustar apenas o ganho integral.
Comentários
Entre na sua conta para continuar.
Ainda não há dados.