Seguidor de Linha com controle PID: mudanças entre as edições
Linha 108: | Linha 108: | ||
;Ajuste dos parâmetros PID: Para o Seguidor de Linha, <ref NAME=LabGaragem/> sugere iniciar com '''Kp = 25''', com '''Ki = 0''' e '''Kd = 0'''. | ;Ajuste dos parâmetros PID: Para o Seguidor de Linha, <ref NAME=LabGaragem/> sugere iniciar com '''Kp = 25''', com '''Ki = 0''' e '''Kd = 0'''. | ||
*Experimentalmente vai-se aumentando o valor de '''Kp''' de forma que o robô siga linha de forma estável. O autor chegou a um valor de Kp = 50 após testes. | :*Experimentalmente vai-se aumentando o valor de '''Kp''' de forma que o robô siga linha de forma '''estável'''. O autor chegou a um valor de '''Kp''' = 50 após testes. | ||
*Posteriormente, ajustou Kp e Kd para 1/2 de Kp e prosseguiu com novos testes. | :*Posteriormente, ajustou '''Kp''' e '''Kd''' para '''1/2 de Kp''' e prosseguiu com novos testes. | ||
:*O autor não implementou o controle '''Ki'''. | |||
Edição das 01h56min de 17 de maio de 2018
Seguidor de Linha com controle PID
Teoria sobre Sistemas de Controle PID
- Sistemas de Controle
- Um resumo da teoria sobre Sistemas de Controle em Malha Fechada e do Controle Proporcional Integral Derivativo.
Vetor de Sensores e Determinação do Erro
O Seguidor de Linha utiliza um vetor com sete sensores para seguir a linha e determinar o erro do robô em relação a linha.
Dependendo da posição do vetor sobre a linha, apenas um ou dois sensores podem reconhecer a linha ao mesmo tempo, como mostra as figuras abaixo [1]:
- Apenas sensor central (s3) reconhece a linha.
- Sensor central (s3) e sensor (s4) reconhecem a linha.
- Possibilidades para o vetor de sensores
- Quando o sensor central está sobre a linha o erro é zero.
- Quando o carrinho deriva para esquerda, sensibilizando os sensores a direita do ponto central, o erro é positivo. Quando deriva para direita, sensibilizando os sensores a esquerda do ponto central, o erro é negativo.
Sensores 0 1 2 3 4 5 6 ------------- 1 0 0 0 0 0 0 --> Erro -6 1 1 0 0 0 0 0 --> Erro -5 0 1 0 0 0 0 0 --> Erro -4 0 1 1 0 0 0 0 --> Erro -3 0 0 1 0 0 0 0 --> Erro -2 0 0 1 1 0 0 0 --> Erro -1 0 0 0 1 0 0 0 --> Erro 0 0 0 0 1 1 0 0 --> Erro 1 0 0 0 0 1 0 0 --> Erro 2 0 0 0 0 1 1 0 --> Erro 3 0 0 0 0 0 1 0 --> Erro 4 0 0 0 0 0 1 1 --> Erro 5 0 0 0 0 0 0 1 --> Erro 6
Ação de Controle Proporcional
A ação de controle proporcional do Seguidor de Linha vai corrigir a trajetória do robô, ajustando a velocidades dos motores a partir de um ganho Kp, proporcional ao erro:
Caso o robô derive para esquerda, a velocidade dos motores é ajustada para que o robô volte para a linha:
- a velocidade do motor esquerdo é acrescida do valor ;
- a velocidade do motor direito é diminuída do valor .
Caso o robô derive para direita, a ação de controle ajusta a velocidade dos motores para corrigir a trajetória para o outro lado.
Ação de Controle Proporcional Integral
A ação de controle proporcional integral do vai corrigir a trajetória do robô combinando a ação proporcional e a integral.
O controle integral ajusta a ação de controle em função ao somatório do erro em um dado intervalo de tempo, chamado tempo integral.
Análise sobre a ação do controle integral
Alguns pontos de análise do controle integral sobre o robô Seguidor de Linha:
- Caso de uma RETA
- Algumas situações possíveis são:
- O robô segue a linha com erro zero.
- O robô deriva aleatoriamente para um lado e para outro resultando, provavelmente, em somatório de erro também zero.
- Nestes dois casos, portanto, como o somatório de erro é zero, controle integral tem ação nula.
- O robô deriva sistematicamente para um lado devido a possíveis desequilíbrios de velocidades dos motores, levando com o passar do tempo a um somatório de erro diferente de zero para um dos lados.
- Neste caso, inicialmente somente o controle proporcional atua, ajustando a trajetória do robô em função do desequilíbrio de velocidades. Entretanto, a medida que o somatório do erro cresce, o controle integral passa a atuar. Quando o robô passar a seguir linha com erro instantâneo zero, o controle integral continua agindo equilibrando as velocidades a partir do somatório de erro acumulado.
- Vemos esta ação como equivalente a eliminação do erro residual[2] existente em alguns controles de ação proporcional.
- Caso de uma CURVA
- O somatório de erros será diferente de zero em função do lado da curva.
- Inicialmente somente o controle proporcional atua, ajustando a trajetória do robô à curva. Entretanto, a medida que o somatório do erro cresce, o controle integral passa a atuar. A partir de um dado momento, o controle integral passa a prevalecer, fazendo o robô acompanhar a curva com erro instantâneo zero, portanto, sem ação proporcional.
Tempo integral
O tempo integral é o tempo da ação do controle integral.
Para os casos relatados acima, seria interessante reiniciar o tempo de integração a cada início de reta e a cada início de curva.
- Marcações de pista do seguidor de linha
- No caso da pista para o Seguidor de Linha, as marcações de início e fim de curva poderiam ser utilizadas como delimitadores dos tempos integração. Neste caso, a cada marcação encontrada, se poderia zerar o somatório de erros, iniciando, portanto, um novo tempo de integração.
Ação de Controle Proporcional Derivativa
A ação do controle derivativo é proporcional a taxa de variação do erro atuante. Vai ter ação, portanto, nos períodos transitórios quando o erro cresce ou diminui.
No caso do robô Seguidor de Linha, quando o erro cresce, o controle derivativo atua reforçando a ação do controle proporcional. Entretanto algumas situações merecem destaque:
- Quando o erro estabiliza, isto é, permanece constante, o controle derivativo passa a ter ação nula e somente o controle proporcional atua levando o robô de volta a linha.
- Quando a ação do controle proporcional corrigir a trajetória, fazendo o erro diminuir, o controle proporcional também diminui, e o controle derivativo atua em sentido inverso, atenuando o controle proporcional e evitando que saia para fora do outro lado da linha.
- Esta última ação do controle derivativo visa diminuir a ação do controle proporcional a medida nos aproximamos do ponto de referência.
Tempo Derivativo
O tempo derivativo está relacionado a taxa de amostragem dos sensores, que corresponde ao loop de execução do programa.
Acelerar ou retardar o tempo derivativo pode fazer uma diferença significativa no desempenho do robô. Isso é definido pelas declarações de delay presentes no código [1].
Ajuste dos parâmetros do controlador PID
Um dos pontos chaves do bom funcionamento de controladores PID está no ajuste dos parâmetros do controlador, ou seja, os ganhos Kp, Ki e Kd.
Em muitos controladores PID industriais, o ajuste dos parâmetros fica a cargo do operador especialista na planta a ser controlada.
Controle de velocidade de robô Seguidor de Linha
Um robô Seguidor de Linha equipado com motores de corrente contínua tem seu controle de velocidade e sentido de rotação a partir de tensão elétrica variável aplicada em seus terminais:
- Sentido de rotação: Tensão positiva gira em um sentido e tensão negativa em outro sentido;
- Velocidade: Controlada pela amplitude da tensão aplicada.
- Arduíno
- Com o Arduíno o controle da velocidade dos motores é realizado a partir de saídas com modulação PWM de 8 bits, correspondendo a valores decimais entre O e 255. Estes valores correspondem a faixa entre 0 V e 5 V em caso de tensão nominal de 5 V.
- Entretanto, a faixa de ajuste da velocidades dos motores geralmente varia de 100 a 255, onde o primeiro valor é a modulação mínima para romper a inércia dos motores.
- Ajuste dos parâmetros PID
- Para o Seguidor de Linha, [1] sugere iniciar com Kp = 25, com Ki = 0 e Kd = 0.
- Experimentalmente vai-se aumentando o valor de Kp de forma que o robô siga linha de forma estável. O autor chegou a um valor de Kp = 50 após testes.
- Posteriormente, ajustou Kp e Kd para 1/2 de Kp e prosseguiu com novos testes.
- O autor não implementou o controle Ki.
Referências:
- http://labdegaragem.com/profiles/blogs/tutorial-rob-seguidor-de-linha-com-controle-pid-e-ajustes-por
- http://www.roboliv.re/conteudo/pid-controle-proporcional-integral-derivativo
- http://www.andrix.com.br/robo-seguidor-de-linha-utilizando-um-controlador-proporcional-derivativo-pd-com-arduino/
Artigos:
- http://www2.uesb.br/computacao/wp-content/uploads/2014/09/ROB%C3%94-SEGUIDOR-DE-LINHA-AUT%C3%94NOMO-UTILIZANDO-O-CONTROLADOR-PROPORCIONAL-DERIVATIVO-EM-UMA-PLATAFORMA-DE-HARDWARE-SOFTWARE-LIVRE.pdf
- http://sistemaolimpo.org/midias/uploads/230c61ca8833329f9ffc867a89566dcd.pdf
Referências
--Evandro.cantu (discussão) 08h58min de 16 de maio de 2018 (BRT)