Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte V


No último post escrevi uma introdução sobre PID (controle Proporcional, Integral e Derivativo), onde descrevi a teoria envolvida e o "P", ou seja, o controle Proporcional.

Os posts que compõem essa série podem ser clicados abaixo:

Controle de Pot. em CA - PID, Arduino e TRIAC - Parte I
Controle de Pot. em CA - PID, Arduino e TRIAC - Parte II
Controle de Pot. em CA - PID, Arduino e TRIAC - Parte III
Controle de Pot. em CA - PID, Arduino e TRIAC - Parte IV

Neste post, vamos falar dos controles Integral e Derivativo.

O controle Derivativo procura fazer com que o nosso sistema atue mais rápido ou mais devagar segundo a taxa de resposta do PV. Ou seja, a resposta do sistema será inversamente proporcional à taxa de variação (derivada, aí o nome) do PV. Quanto mais devagar o PV estiver variando, maior será a correção calculada.

Por fim, o controle Integral procura levar em conta quanto tempo estivemos afastados do set point. Ele é importante para tentar evitar que o sistema fique oscilando em torno do set point, oscilação que é causada pelas componentes Integral e Derivativa.

Resumindo:

Controle Proporcional: calcula o MV levando em conta a distância entre o set point e o valor da variável PV em um determinado instante.

Controle Integral: calcula o MV levando em conta o tempo em que o sistema fica distante do set point (SP). 

Controle Derivativo: calcula o MV levando em conta a taxa de variação (velocidade com que varia, ou derivada) do PV.

Definindo parâmetros

A chave do controle PID é a gente definir qual é a proporção relativa de cada componente em nosso sistema de controle. Essa proporção, ou peso, é dada pelas contantes KpKi e Kd.

Agora, como escolher o valor de cada constante no nosso controle? Bom, cada caso é um caso. Eu acho (e é minha opinião mesmo) que a gente tem que considerar vários fatores, já que o que importa é a curva que a gente quer de controle. Vc então tem que responder perguntas como: 

- É necessário que o controle responda o mais rápido possível a uma perturbação? 

- Ou isso não é tão importante, mas sim o valor presente deve evitar ao máximo ultrapassar o set point? Quando VP ultrapassa SP tempos uma sobrecarga, que pode ser importante ou não.

- O set point muda ou é constante? 

- Se ele se altera às vezes, qual a faixa de valores em que ele varia? Ele varia bruscamente ou suavemente?

Todas essas questões vão influenciar a escolha dos parâmetros, que no fim é o que determina a forma da curva.

Como são três parâmetros que atuam de forma "coordenada", quer dizer, o valor de um parâmetro influencia no comportamento das outras componentes, o ajuste pode ser difícil. Pode-se adotar três caminhos:

- Ajuste manual (no popular, tentativa e erro): vai-se testando diferentes valores e verificando o resultado até que o sistema funcione do jeito que queremos.

Ao usar essa técnica, devemos levar em conta a seguinte tabela. Ela mostra o reflexo que um aumento num determinado parâmetro provoca no sistema: 









Ou seja, vamos "mexendo" nos parâmetros considerando o seu efeito conforme a tabela acima.

- Cálculo dos parâmetros: nesse caso, a gente usa alguma regra para calcular os valores dos parâmetros de maneira a obter o resultado desejado.

Vou descrever um dos métodos para se calcular KpKi e Kd, o método de Ziegler-Nichols. Consta que é o mais utilizado.

Esse método é heurístico, ou seja, uma vez que vc o use, não há garantia matemática que a solução é a melhor possível (nesse caso, o método seria chamado determinístico).  Contudo, é bastante eficaz na maioria dos casos.

O método Z-N consiste em:

- Primeiro, zera-se Ki e Kd. Em seguida, varia, começando de zero, o valor de Kp até obter o valor de Ku,  definido como o menor valor de Kp em que o sistema fica oscilando em torno do SP com uma velocidade constante. No gráfico abaixo vc vê o comportamento do circuito com Kp=KuKi=0, Kd=0.










O período Tu da onda e o valor de Ku serão usados para calcular os outros parâmetros, conforme a tabela abaixo:









Se vc usar o Z-N para calcular seus parâmetros, tenha em mente que:

Os valores de Kp  Ki e Kd calculados com o Z-N tendem a levar o comportamento do sistema para um ganho agressivo (o sistema se aproxima rapidamente do SP) e com isso, a tendência a sobrecarga. Se a sobrecarga for muito problemática, esse não é o método adequado para estimar os parâmetros, mas mesmo assim pode servir como ponto de partida.

Mistura das técnicas acima: primeiro a gente calcula os parâmetros usando Z-N, mede o efeito. Em seguida, vamos tentando um ajuste fino "brincando" com as constantes para chegar ao resultado desejado.

Agora já temos todas as ferramentas para implementar um controle PID como se deve. No próximo e último post da série, vamos ver uma implementação prática do PID com o Arduino, baseada no circuito de controle que discutimos na parte III do nosso circuito.


Comentários

  1. Mauro, se eu entendi direito, ajustando corretamente os valores de Kp, Ki e Kd eu terei (teoricamente) uma constante no meu controle, ou seja, a minha leitura de feedback (sensor) terá uma variação de tensão próxima a 0, correto? MAAASSSS e se meu sistema se comportar bem com uma histerese razoavelmente alta? Nesse seu exemplo, vamos supor que meu sistema se comporte bem entre 55º a 65º? Eu consigo fazer isso sem fritar meu triac???

    ResponderExcluir
    Respostas
    1. Por partes:

      1) Ajustando corretamente os valores de Kp, Ki e Kd eu terei (teoricamente) uma constante no meu controle?

      Não necessariamente. Disso depende o sistema que está sendo controlado. Se é um sistema de controle de temperatura, a troca de calor com o ambiente faz com que a MV seja maior que zero a maioria das vezes. Se for manter o nível de um tanque, a MV só será zero se o dreno do tanque estiver em zero.

      Quanto às outras questões: como eu digo no texto, para escolher os k* vc tem que primeiro saber o que é problema para vc e o que não é. Se a histerese não é problema, um controle só proporcional daria. Mas existe alguma outra questão? Ex:

      - Ocorrem variações de set point? Se ocorrem, quão rápido o sistema deve responder a elas?

      - Quando o sistema é ligado (normalmente nesses casos a distância entre PV e SP é grande), é importante que ele atinja o set point rapidamente?

      Ou seja, o ajuste de kp* não necessariamente garante uma saída próxima de zero, e a escolha depende dos seus objetivos.

      Quanto a fritar o TRIAC, não sei se entendi: o que frita TRIAC é a corrente. Se ele estiver bem dimensionado, não é o fato dele estar sendo usado num controle PID que vai fritá-lo.

      Excluir
  2. Este comentário foi removido pelo autor.

    ResponderExcluir
  3. Boa tarde uma questão estou a fazer um projecto com o arduino em que tenho 3 sensores de corrente e tenho uma tensão fixa. Como se calcula a potencia e corrente hora e posteriormente como se calcula potencia e corrente dia???
    O meu problema também é fazer a programação disto portanto se me puderem dar uma ajuda agradeço.
    cumprimentos

    ResponderExcluir
    Respostas
    1. Wilson,

      Existem 3 tipos de potência em corrente alternada. Se a sua carga for só resistiva (não tiver motor, por exemplo), a potência é o produto da tensão pela corrente.
      Não sei se entendi bem a sua pergunta, se não, insista...
      [],
      Mauro

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte III

Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte I

Dividindo um programa (sketch) do Arduino em mais de um arquivo