Seguidor de Linha com controle PID: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 61: Linha 61:
#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.  
#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'''.  
#: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'''<ref>http://wiki.foz.ifpr.edu.br/wiki/index.php/Sistemas_de_Controle#Sistemas_de_Controle</ref> existente em alguns controles de ação proporcional.
#:Vemos esta ação como equivalente a eliminação do '''erro residual'''<ref name="OGATA">OGATA, Katsuhiko. Engenharia de Controle Moderno, LTC, 2011.</ref> 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.  
;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.
: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.

Edição das 17h17min de 18 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:
  1. O robô segue a linha com erro zero.
  2. 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.
  3. 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.

Quando o erro diminiu, o controle derivativo atua atenuando a ação do controle proporcional.

Análise de algumas situações de destaque
  1. 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.
  2. 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 e Ponte H
Com o Arduíno equipado com um módulo Ponte H permite o controle de motores de corrente contínua através de saídas digitais e analógicas:
  1. O sentido de rotação dos motores é realizado a partir de saídas digitais, com LOW para um sentido e HIGH para o outro.
  2. O controle da velocidade dos motores é realizado a partir de "saídas analógicas", 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, dependendo dos motores, a faixa de ajuste da velocidades geralmente varia de 100 a 255, onde o primeiro valor é a modulação PWM mínima para romper a inércia dos motores.
Funcionamento do Seguidor de Linha e a ação do Controle
  1. Suponha que um Seguidor de Linha seja programado para percorrer a pista com uma velocidade estabelecida com a modulação PWM velPista = 180 e que tenhamos somente o controle proporcional ativo, com Kp = 20.
  2. Suponha que em dado momento tenhamos erro = 1, com o robô derivando para esquerda.
Neste caso, a ação do controle proporcional modificará a trajetória do robô aumentando a velocidade do motor esquerdo e diminuindo a velocidade do motor direito:
velMotorEsq = velPista + Kp * erro = 180 + 20 * 1 = 200
velMotorDir = velPista - Kp * erro = 180 - 20 * 1 = 160
Ajuste dos parâmetros PID
O projeto apresentado em [1] utiliza motores de passo também controlados por modulação PWM. O autor sugere iniciar com Kp = 25, com Ki = 0 e Kd = 0.
  • Experimentalmente foi aumentando o valor de Kp de forma que o robô continuasse a seguir linha de forma estável. O autor chegou a um valor de Kp = 50 após testes.
  • Posteriormente, ajustou novo valor para Kp e Kd para 1/2 Kp utilizado com o controle proporcional único e prosseguiu com novos testes.
  • O autor não implementou o controle Ki.




Materiais sobre Seguidor de Linha com controle PID

Projetos
Artigos e TCCs

Referências


--Evandro.cantu (discussão) 08h58min de 16 de maio de 2018 (BRT)