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

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 53: Linha 53:
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'''.
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===
====Hipótese 1: Análise sobre a ação do controle integral====
Alguns pontos de análise do controle integral sobre o robô Seguidor de Linha:
Algumas hipóteses de análise do controle integral sobre o robô Seguidor de Linha:
;Caso de uma RETA: Algumas situações possíveis são:
;Caso de uma RETA: Algumas situações possíveis são:
#O robô '''segue a linha''' com '''erro zero'''.
#O robô '''segue a linha''' com '''erro zero'''.
Linha 70: Linha 70:
O tempo integral é o tempo da ação do controle integral.
O tempo integral é o tempo da ação do controle integral.


====Hipótese II: Delimitação do tempo integral na pista do Seguidor de Linha====
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'''.
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'''.


Linha 84: Linha 85:
Quando o '''erro diminiu''', o '''controle derivativo''' atua '''atenuando''' 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:
====Hipótese III: Análise sobre a ação do controle derivativo====
;Algumas hipóteses de análise do controle derivativo sobre o robô Seguidor de Linha::
#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 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.  
#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.  
Linha 100: Linha 102:


Em muitos controladores PID industriais, o ajuste dos parâmetros fica a cargo do operador especialista na planta a ser controlada.
Em muitos controladores PID industriais, o ajuste dos parâmetros fica a cargo do operador especialista na planta a ser controlada.
===Regras de sintonia de Ziegler-Nichols===
Ziegler e Nichols sugeriram regras de sintonia para controladores PID, através dos valores de  '''Kp''', '''Ti''' e '''Td''', baseadas em respostas experimentais.
Estas regras devem ser testadas e experimentadas para o caso do Seguidor de Linha.


===Controle de velocidade de robô Seguidor de Linha===
===Controle de velocidade de robô Seguidor de Linha===

Edição das 11h15min de 6 de junho 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.

Hipótese 1: Análise sobre a ação do controle integral

Algumas hipóteses 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.

Hipótese II: Delimitação do tempo integral na pista do Seguidor de Linha

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.

Hipótese III: Análise sobre a ação do controle derivativo

Algumas hipóteses de análise do controle derivativo sobre o robô Seguidor de Linha
:
  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.

Regras de sintonia de Ziegler-Nichols

Ziegler e Nichols sugeriram regras de sintonia para controladores PID, através dos valores de Kp, Ti e Td, baseadas em respostas experimentais.

Estas regras devem ser testadas e experimentadas para o caso do Seguidor de Linha.

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 valorMínimo a 255, onde o valorMínimo é a modulação PWM mínima para romper a inércia dos motores (algo entre 40 e 100, dependendo do tipo de motores e do peso do robô).
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 = 120 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 = 120 + 20 * 1 = 140
velMotorDir = velPista - Kp * erro = 120 - 20 * 1 = 100
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)