-
Notifications
You must be signed in to change notification settings - Fork 3
PID
O nosso robô já tem estrutura, motores, sensores, e microcontroladores, mas sem uma sistema que faça um o robô reconhecer a linha e corrigir seu trajéto de a cordo com ela, ele nunca vai conseguir seguir a linha. Para isso usamos um sistema de controle, o PID. Mas o que é um sistema de controle?
Os sistemas de controle são projetados para regular o comportamento de sistemas dinâmicos, seja abrindo e fechando válvulas, ajustando velocidades de motores, ou qualquer outra ação necessária para atingir um objetivo específico. A escolha do tipo de sistema de controle e do controlador depende das características do sistema a ser controlado e dos requisitos de desempenho. Um sistema mantem um Controle de variáveis, tais como:
- Temperatura
- Velocidade
- Posição
- Pressão
Os sistemas de controle são utilizados em diversas áreas, como na indústria automotiva, aviação, robótica, automação residencial, entre outros.
Existem 2 tipos de sistemas de controle: Os de malha aberta, e Os de malha fechada.
- Sistemas de Controle de Malha Aberta:
- O controle de malha aberta é um tipo de controle que não utiliza feedback para ajustar a saída do sistema.
- As ações de controle são baseadas apenas na entrada e não há correção com base na saída do sistema.
- Exemplo: Um exemplo de controle de malha aberta é um temporizador de cozinha. Ao definir um tempo específico, o temporizador irá desligar após esse período, independentemente da quantidade ou tipo de alimento que está sendo cozido.
- Exemplos incluem também interruptores simples e sistemas de controle de tráfego semafórico.
- Sistemas de Controle de Malha Fechada:
- São sistemas onde a saída é controlada com base no feedback do sistema.
- O feedback é comparado com a referência desejada para determinar a ação de controle necessária.
- Exemplo: Um exemplo de controle de malha fechada é o ar condicionado. O termostato mede a temperatura ambiente e ajusta a saída do ar condicionado para manter a temperatura dentro do intervalo desejado.
- Exemplos também incluem sistemas de controle de posicionamento de robôs e sistemas de controle de velocidade de veículos.
- O Sistema que usamos é de malha fechada.
Existem várias Estratégias de controle, que são os métodos, técnicas ou abordagens utilizadas para fazer o controle propriamente dito. A que usamos é o Controle PID(Proportional–integral–derivative controller), mas antes de explicar como o PID funciona é interessante destacarmos as entradas e saídas que vão participar do Sistema.
Dado um esquema antigo como representação, mas a lógica continua a mesma independente das atualizações, existem 2 áreas destacadas, são as entradas e saídas que fazem parte do sistema, no componente marcado como "1" é o sensor que vai ler a linha, e o "2" os motores que movem o robô. O nosso sensor é formado por um array de 8 sensores que lêem de 0 a 2500(sendo 0 branco e 2500 Preto) a biblioteca da pololu que foi feita para esse sensor retorna o valor estimado de onde a linha branca está no sensor. A partir do input continuo(por isso é um sistema de controle de malha fechada) do sensor a velocidade dos motores serão alteradas para manter o robô com a linha no centro do sensor.
Dado tudo isso, O que é PID? São controladores comumente usados em sistemas de controle de malha fechada. Ele recebe o sinal de erro, que é a diferença entre a saída medida do sistema e a referência desejada. Eles ajustam a saída com base em três componentes: proporcional, integral e derivativo. Esses controladores são amplamente utilizados devido à sua simplicidade e eficácia em uma variedade de aplicações.
-
O controlador PID calcula três termos de controle:
- O termo proporcional (P ou kp) é proporcional ao valor atual do erro.
- O termo integral (I ou ki) é proporcional à integral do erro ao longo do tempo.
- O termo derivativo (D ou kd) é proporcional à taxa de variação do erro.
- O sinal de controle resultante é a soma ponderada desses três termos.
-
Atuação no Sistema:
- O sinal de controle calculado pelo controlador PID é então enviado ao atuador do sistema.
- O atuador ajusta as condições do sistema de acordo com o sinal de controle recebido.
- Isso pode envolver a aplicação de uma força, a variação de uma entrada de energia, ou qualquer outra ação necessária para controlar o sistema.
-
Feedback:
- À medida que o sistema é controlado, os sensores continuam monitorando seu estado atual.
- Essas informações de feedback são enviadas de volta ao controlador, fechando o loop de controle.
- O controlador PID ajusta continuamente a saída com base no feedback recebido, mantendo assim o sistema o mais próximo possível do ponto de ajuste.
Dada a definição, no nosso projeto o sistema recebe o feedback pelos sensores e apartir dele ajusta a velocidade dos motores fazendo a linha branca ficar ao centro, mas o PID tem um ponto negativo, para chegarmos nas constantes que usamos precisamos ficar testando até o robô completar a pista, depois de um longo tempo testando valores chegamos em valores que funcionam muito bem no nosso robô, conseguimos também adquirir uma experiência em como o PID se comportava de acordo com cada mudança que faziamos nos valores, mas esses pontos a seguir NÃO SÃO CERTEZA PARA OS PROJETOS EM GERAL, isso acontece provavelmente por conta de como nosso código foi implementado e nosso robô montado, mas não temos certeza, dado isso se estiverem seguindo nossa documentação talvez isso seja útil:
Proporcional
- É o erro: controla como vai fazer as curvas
- Controla como fazer curvas
- Se kp é pequeno:
- Ele vai fazer curvas suavemente ( quase em linha reta)
- Se kp for alto
- Ele vai fazer as curvas abruptamente
- Ou/e Vai oscilar em linhas retas
- Ou vai fazer a curva muito fechada e sai da pista
Integrativa:
- Acumula erro: objetiva eliminar o erro residual adicionando um efeito de controle. Quando o erro for eliminado o termo integral para aumentar.
- É inversamente proporcional a Kp (Kp diminiu com a diminuição do erro, mas o efeito integral aumenta
- Ajuda o robo a parar de oscilar
- Se Ki é muito alto ele vai oscilar mais ainda
Derivativa
- Calcula o erro atual e o erro anterior.
- Kd vai ser alto quando ele entrar em uma curva fechada
- Quanto mais rápida a mudança maior o controle e amortecimento.
- Se Kd for pequeno demais:
- Não tem efeito
- Se kd for alto demais:
- Se move muito lentamente
- Ou faz curvas que não existem
Agradecimento especial ao @joaosgotti por ter dado uma aula sobre sistemas de controle para o nosso Time