Logótipo sheen.bot

Perspetivas

Ensinar Controlo PID a Equipas de Robótica do Ensino Secundário sem Recorrer ao Cálculo

5/09/2026·Sheen Robotics
Ensinar Controlo PID a Equipas de Robótica do Ensino Secundário sem Recorrer ao Cálculo

Não precisa de equações diferenciais para ensinar controlo PID; precisa apenas de três ideias intuitivas: a que distância está do alvo, há quanto tempo não o atinge e a que velocidade se está a aproximar.

Não precisa de cálculo para ensinar controlo PID a alunos do ensino secundário. Um controlador PID é simplesmente uma fórmula que decide com que força um motor deve empurrar com base em três perguntas intuitivas: A que distância estamos neste momento? Há quanto tempo estamos afastados do alvo? E a que velocidade nos estamos a aproximar?

Quando as equipas da FIRST Tech Challenge (FTC) ou alunos de robótica do ensino secundário encontram o controlo PID na documentação, deparam-se frequentemente com símbolos de integrais e derivadas que afastam qualquer pessoa que não tenha concluído matemática avançada no ensino secundário. Na prática, o código executado num robô não resolve equações diferenciais contínuas. Executa aritmética básica uma vez a cada poucos milissegundos. Assim que os alunos compreendem as funções físicas de P, I e D, conseguem escrever, afinar e depurar ciclos de controlo de forma fiável.

A Ideia Central: O Erro

Cada ciclo de controlo existe para minimizar um único número: o erro.

O erro é simplesmente Alvo - Posição Atual. Se o braço de um robô estiver a 20 graus e precisar de estar a 90 graus, o erro é +70. Se um volante de inércia (flywheel) precisar de girar a 2000 RPM, mas estiver a girar a 2100 RPM, o erro é -100. Cada termo no PID pega neste valor de erro e converte-o em potência de motor.

1. Proporcional (P): O Presente

O termo Proporcional atua como um simples elástico. Quanto mais longe estiver do seu alvo, com mais força ele puxa.

Se estiver a conduzir um carro e se desviar cinco metros para a esquerda do centro da sua faixa de rodagem, fará uma grande correção na direção para a direita. Se estiver apenas a dois centímetros do centro, fará um pequeno ajuste. Matematicamente no código, isto é simplesmente kP * error.

Onde o P falha isoladamente:

  • Ultrapassagem (overshoot) e oscilação: Se o kP for demasiado alto, o robô acelera de forma tão agressiva em direção ao alvo que o momento o faz ultrapassar a marca. De seguida, puxa com força no sentido inverso, volta a ultrapassar e oscila violentamente.
  • Erro de regime estacionário (steady-state error): Se o kP for demasiado baixo, a potência do motor torna-se tão reduzida à medida que o erro diminui que não consegue superar o atrito físico ou a gravidade. Um mecanismo elevador que erga uma garra de 500 gramas simplesmente parará alguns centímetros abaixo do alvo, porque a potência do motor iguala a gravidade e entra em perda (stall) aí.

2. Derivativo (D): O Futuro (Os Travões)

O termo Derivativo analisa a rapidez com que o erro está a mudar de um ciclo de execução para o seguinte. A sua função é atuar como um amortecedor ou travão.

Considere estacionar um carro numa garagem. Se a parede estiver a dez metros de distância, carrega no acelerador. Mas se vir a parede a aproximar-se rapidamente, não espera até que o para-choques esteja a um centímetro do tijolo para travar — trava com base na sua velocidade de aproximação.

No código, derivative = (current_error - previous_error) / time_elapsed. Quando o robô avança velozmente em direção ao seu alvo, o erro está a diminuir rapidamente, o que torna o termo derivativo negativo, subtraindo potência ao motor antes de este ultrapassar a posição pretendida. O D amortece as oscilações e permite utilizar um ganho P mais elevado sem fazer o robô vibrar descontroladamente.

3. Integral (I): O Passado (A Memória)

O termo Integral contabiliza o erro acumulado ao longo do tempo. Se um robô tiver estado ligeiramente fora do alvo durante vários segundos, a soma integral aumenta até dar aos motores o impulso adicional necessário para superar o atrito ou a gravidade.

Imagine empurrar um carrinho por uma inclinação acima. Empurra (P), mas a gravidade impede-o de atingir o topo por pouco. Se ficar parado ali durante cinco segundos incapaz de alcançar o topo, o termo Integral diz essencialmente: "Estivemos presos aqui durante demasiado tempo; adiciona mais potência até superarmos a crista."

O problema: O Integral é perigoso se for mal gerido. Se um braço encravar fisicamente, a soma integral disparará até ao infinito (um fenómeno chamado "integral windup" ou saturação do integral). Quando o bloqueio for removido, o motor baterá violentamente nos batentes mecânicos. Na FTC e na robótica escolar, o Integral deve ser limitado com um teto de acumulação ou utilizado apenas dentro de uma margem de erro estreita.

Uma Rotina de Afinação em 4 Passos para a Oficina

Não tente adivinhar os três valores de uma só vez. Peça aos seus alunos para seguirem uma sequência de afinação reproduzível com uma bateria totalmente carregada (as variações de tensão alteram a resposta dos motores):

PassoAçãoComportamento PretendidoSinais de Erro
1. Definir todos os ganhos para 0kP = 0, kI = 0, kD = 0Os motores não fazem nada.
2. Aumentar kPAumente o kP gradualmente até o mecanismo atingir o alvo rapidamente.Atinge o alvo com um pequeno ressalto ou oscilação consistente em torno do setpoint.Vibração violenta significa que o kP é demasiado elevado; ausência de movimento significa que é demasiado baixo.
3. Adicionar kDAumente gradualmente o kD até o ressalto ser eliminado.O mecanismo ajusta-se rapidamente à posição pretendida e para suavemente sem oscilar.Tremer ou zumbido de alta frequência significa que o kD é demasiado elevado (amplificando o ruído do sensor).
4. Adicionar kI (Apenas se necessário)Adicione um kI muito pequeno se o mecanismo parar 1–2 mm antes do alvo devido ao atrito.O erro final de regime estacionário desce para zero.Uma oscilação lenta em forma de onda (hunting) significa que o kI é demasiado elevado.

Erros Comuns nos Robôs dos Alunos

  • Ruído do Sensor: Os encoders óticos nas transmissões (drivetrains) da FTC são geralmente fiáveis, mas a folga mecânica livre baralhará o termo derivativo. Se a caixa de velocidades tiver folga, o D reagirá à folga mecânica em vez do movimento real.
  • Variabilidade do Tempo de Ciclo: Se o código da sua equipa estiver a executar processamento de visão em segundo plano numa única thread, o tempo de ciclo pode oscilar imprevisivelmente de 10 ms para 80 ms, arruinando os cálculos padrão de PID. Mantenha os ciclos de controlo isolados e leves.
  • Volantes de Inércia vs. Braços: O controlo de velocidade (flywheels) comporta-se de forma diferente do controlo de posição (braços). Os ciclos de velocidade raramente precisam de D, porque a inércia do sistema já atua como um filtro passa-baixo; funcionam excecionalmente bem com um termo base de feedforward (kV) associado a um P e I modestos.

Para equipas que estão a preparar-se para competições regionais, dominar o controlo em malha fechada é o que separa mecanismos erráticos de rotinas autónomas que pontuam de forma consistente em cada partida. Se a sua equipa se está a preparar para o circuito competitivo local e procura orientação técnica estruturada sobre cinemática de transmissões e integração de sensores, explore os nossos programas de robótica FTC para aceder a metodologias práticas de treino.

#robótica#ftc#educação stem#programação#sistemas de controlo

Mais Perspetivas