6- Usando PID para controlar o fan cooler

Antes de prosseguir:

No artigo anterior ->aqui<- foi abordado como se faz para ler e controlar a rotação de um ventilador em malha aberta.

Recapitulando, conforme o figura 1 abaixo, um sinal de referência é enviado ao controlador, que por sua vez faz a modulação de um sinal PWM acionando o motor (Drive), sendo que o mesmo irá atingir a rotação de acordo com o sinal aplicado.

Se você curtir esse artigo, não esqueça de dar uns cliques nos anúncios para ver o que os anunciantes tem para te oferecer. Vou ficar muito contente.

A rotação é lida, apresentada na IHM e também pode ser utilizada em outros blocos de programação, porém essa configuração não permite um controle dinâmico da rotação de acordo com a carga aplicada ao motor.

Se o motor ficar mais pesado, a rotação irá diminuir e vice versa. Conforme já abordado, trata-se de um sistema operando em malha aberta.

Figura 1: Sistema operando em malha aberta – Sem realimentação

Alguns livros e considerações:

Normalmente se coloca os livros com assuntos adicionais ao fim do artigo. Eu prefiro colocar no início, porque se você tiver alguma dúvida pode ir direto à fonte sem ter que ficar lendo tudo para depois ir na livraria.

O foco desta página é apresentar uma aplicação prática do PID para controlar uma ventoinha, usando CLP da Unitronics. Figuras e exemplos são voltados para essa aplicação específica.

É importante lembrar que o sistema PID tem larga aplicação podendo ser utilizado no controle de temperatura, posicionamento, nível ou de qualquer outra grandeza que deva ser monitorada e mantida dentro de um valor específico.

O controle PID pode ser implementado em hardware ou software em CLPs, há extensa literatura sobre o assunto sem contar a abordagem teórica que demanda um bom conhecimento matemático, sendo que abaixo seguem três referências para ajudar:

ALVES, José Luiz Loureiro. Instrumentação, Controle e Automação de Processos. 2. ed. Rio de Janeira: Ltc, 2013. 201 p. ISBN 978-85-216-1762-4.

PETRUZELLA, Frank D.. Controladores Lógicos Programáveis. Porto Alegre: Mc Graw Hill, 2014. ISBN 978-85-8055-283-6.

BRYAN, L. A.; BRYAN, E. A.. Programable Controllers: Theory and Implementation. 2. ed. Marietta, Georgia: Industrial Text And Video Company, 1997. 1047 p. ISBN 0-944107-32-X.


O sistema PID

Conforme figura 2 abaixo a proposta do sistema Proporcional Integral Derivativo (PID) visa permitir um controle dinâmico do processo, que no exemplo trata-se do controle da rotação do motor da ventoinha. Necessário ressaltar que se a intenção fosse controlar o fluxo de ar, o sinal de feedback teria que ser coletado a partir da medição do fluxo de ar em si.

Figura 2: Sistema operando em malha fechada – controle à realimentação

Acompanhe a seguir o detalhamento dos componentes do sistema PID exibidos na figura 2.

Componentes do sistema PID

  • Bloco de ajuste (Set Point): Esse bloco fornece um sinal ajustável que corresponde ao valor da rotação desejada para a ventoinha.
  • Bloco de realimentação (Feedback): O bloco de Feedback faz a leitura do RPM da ventoinha e o converte para um sinal compatível com o sinal do Set Point, permitindo a comparação entre o Set Point e a rotação atual da ventoinha.
  • Bloco somador ou comparador (): Esse bloco soma algebricamente o valor do Set Point  com o valor de Feedback. O resultado dessa conta é um sinal de erro que pode assumir valores positivos ou negativos. Esse sinal de erro é processado pelo bloco de controle.
  • Bloco de controle (Control): O bloco Control possui os algoritmos PID e processa o sinal de erro. O resultado desse processamento é a geração do sinal de correção (Correction), responsável por alterar o ciclo de trabalho (Duty Cycle) do sinal PWM que aciona a ventoinha.

Funcionamento do sistema PID:

Um operador ajusta o “Set Point” definindo a rotação desejada para a ventoinha, digamos 2000RPM.

O bloco comparador (∑) faz a soma entre o Set Point (2000) e o valor do Feedback (0). O resultado é o sinal de erro.

Set Point – Feedback = Error
2000 – 0 = 2000

O sinal de erro é injetado no módulo de controle (Control) que o processa, causando o início da rotação da ventoinha.

Essa comparação entre o valor do Set Point e o valor do Feedback é realizada ciclicamente, de acordo com a programação do módulo PID do CLP.

À medida em que a rotação da ventoinha aumenta, o valor do erro vai diminuindo. Quando o valor do erro chegar a zero, significa que o valor do Feedback é igual ao valor do Set Point e o sistema está em equilíbrio.

Caso a rotação da ventoinha e consequentemente o sinal de Feedback fique maior que o valor do Set Point, digamos 2050RPM, o sinal de erro assume um valor negativo conforme mostrado abaixo

Set Point – Feedback = Error
2000 – 2050 = -50

Quando o sinal de erro assume um valor negativo, o controlador PID diminui a energização da ventoinha provocando a redução da rotação e a diminuição do erro no sistema.

Durante seu funcionamento, o sistema PID fica constantemente comparando o valor de Feedback com o valor do Set Point gerando o sinal de erro. Também fica ajustando o sinal PWM do motor, procurando manter esse erro em “0” e consequentemente a mantendo a rotação conforme o ajuste do Set Point.

Utilizando a ferramenta de acesso remoto do CLP Vision 350, a figura 3 abaixo mostra uma curva típica do PID controlando a ventoinha:

Figura 3: Controle fan cooler – Curva típica PID

O Set Point é a linha azul. De acordo com a linha verde, o fan cooler foi ligado, a rotação subiu até cerca de 3500 RPM (overshoot) e depois foi reduzindo até atingir o valor programado e ficou girando em torno do checkpoint. Informações mais aprofundadas sobre o sistema PID podem ser encontradas na bibliografia sugerida.

Na prática:

Programa Ladder:

A seguir temos o detalhamento de um programa Ladder que implementa um sistema PID.

Main:

A rotina principal (Main) é bem simples e segue na figura 4.

Ao ligar o CLP, o sinal “SB 2 – Power-up bit” desencadeia as seguintes operações na “net 1”:

  • Inicializa o cartão de rede,
  • Reseta a bobina “MB1” garantindo que o módulo PID esteja inativo no power up
  • Reseta as bobinas “MB3” e “MB5” responsáveis pela atualização da tela gráfica,
  • Inicializa o módulo “PID Auto-tune” com os valores listados na tabela abaixo. Note que na inicialização somente são pré configuradas as variáveis: “Sample time”, “PID Action” e os limites dos sinais de entrada e de saída.
  • Ainda as entradas e saídas do módulo “PID Auto-tune” são atribuídas às respecivas variáveis tipo bit ou inteiro. Destaque para a área dos parâmetros do Auto-tune que reserva uma área de memória que vai da “MI1101” até a “MI1133” (32 MIs), nesse exemplo.

Em relação aos limites, o sinal de entrada “MI36” que é o Set Point e o sinal de saída “MI32” que controla o duty cycle do sinal PWM, podem assumir valores de 0 à 1000 (decimal).

Figura 4: Rotina principal

A “net 2” converte o valor de “MI19” em RPM. “MI19” é a frequência do sinal de entrada “I0”, que faz a leitura do tacômetro do fan cooler.

A “net 3” da figura 4 por sua vez faz a chamada para as rotinas PWM Control e PID Control.

Gráfico RPM X PWM

Neste capítulo e conforme gráfico da figura 5, é exibida a relação entre a rotação da ventoinha e o valor do duty cycle. Como o sinal PWM é ajustado dinâmicamente de acordo com os cálculos efetuados pelo módulo de controle, nesse tipo de gráfico podemos acompanhar a variação do sinal PWM à medida que o módulo de controle faz o ajuste automático da rotação do ventilador.

Figura 5: RPM_PWM.

PWM Control:

A rotina PWM Control é bem semelhante à aquela utilizada no capítulo Parte 2 – Controlando o sinal PWM do Fan Cooler com CLP.

A rotina PWM, de acordo com as figuras 6 e 7 tem as seguintes funções:

  • Troca das telas.
  • Criação e posicionamento do cursor.
  • Atualização do gráfico RPM x PWM descrito acima.

A “net 1” da figura 6 é responsável pelo controle de navegação entre as telas da IHM.

A “net 2” da figura 6 faz a inicialização do cursor no gráfico RPM x PWM

Nets 3, 4, 5 e 6 são responsáveis pela movimentação nas coordenadas XY do cursor. O cursor se move de acordo com a fórmula inserida nos blocos de fórmula das nets 3, 4, 5 e 6 que possuem respectivamente as seguintes fórmulas:

Movimentação horizontal do cursor:
“Net3”: ( MI32 * 0.25 ) + 25
“Net4”: ( MI32 * 0.25 ) + 30
Lembrando que “MI32” corresponde ao duty cycle do sinal PWM.

Movimentação vertical do cursor:
“Net5”: (( MI20 * ( -200 / 500 )) + 23 + 200 )
“Net6”: (( MI20 * ( -200 / 500 )) + 29 + 200 )
Lembrando que “MI20” corresponde ao RPM do fan cooler.

Figura 6: Móduo PWM parte 1

De acordo com a figura 7:

  • as nets 7 e 8 trabalham em conjunto garantindo que o cursor somente seja atualizado se a alteração de “MI34” for maior que |1|. Quando essa condição é atingida, a bobina “MB6 Alterou V” é energizada disparando a rotina de atualização do cursor na “net 11” e “net 12”.
  • as nets 9 e 10 trabalham em conjunto garantindo que o cursor somente seja atualizado se a alteração de “MI35” for maior que |12|. Quando essa condição é atingida, a bobina “MB8 Alterou P” é energizada disparando a rotina de atualização do cursor na “net 11” e “net 12”.

Durante o funcionamento do sistema, as variáveis “MI20” (RPM) e “MI32” (PWM) possuem um certo grau de incerteza, sendo assim, o valor de ambas variáveis flutuam em torno de um ponto central mesmo com o sistema em equilíbrio. Atualizar a posição do cursor a cada leitura de “MI20” e “MI32” não provoca uma movimentação expressiva na tela, porém faz a tela piscar (causa o efeito flickering). Essa configuração das nets 7, 8, 9 e 10 tem por objetivo minimizar o flickering da tela disparando a atualização da mesma somente quando as variáveis “MI20” e ou “MI32” sofrerem mudanças além dos limites configurados.

Figura 7: Módulo PWM, parte 2

Repetindo, caso as bobinas “MB6” da “net 8” ou “MB8” da “net 10” sejam energizadas, as nets 11 e 12 são ativadas provocando a limpeza da IHM e uma nova escrita do cursor na IHM conforme já abordado no capítulo anterior Parte 2 – Controlando o sinal PWM do Fan Cooler com CLP.

PID Control:

Nets 1, 2 e 3 ajustam o valor do set point para variar entre 0 e 1000, garantindo que o Set Point “MI36” somente seja atualizado se o valor de “MI37” for maior que |2|.

Para fins de apresentação na IHM, o valor do Set Point é trabalhado na “net 4” de acordo com a fórmula MI126 = ((MI36 * 5) + 35)

Figura 8: Controle PID parte 1

“Net 5” faz o tratamento do sinal de “MI19”, gerando o sinal de feedback “MI124” que é injetado no módulo PID.

A “net 6” é responsável por ativar o processo de Auto-tune. O Auto-tune é um processo automático de calibração do módulo PID que é disparado pela chave “I6”.

Quando a chave “I6” da “net 6”  é acionada (figura 8), a bobina “MB111” é ativada ligando o contado de “MB111” na “net 7” da figura 9, iniciando o módulo “PID Auto-tune”.

As demais bobinas da “net 6” figura 8 “MB112 – Auto-tune done”, “O4 PID running” e “MB1 Liga PID” são desligadas.

Durante o processo de Auto-tune o algoritmo do CLP causa uma perturbação no sistema e analisa o comportamento da variável “MI124” na “net 1” da figura 4, que é o sinal de feedback.

Baseado nesse feedback, o algoritmo do CLP faz a configuração dos 32 registros dos parâmetros do Auto-tune que são as memórias “MI1101” até “MI1133”, conforme configurado na figura 4 do tópico “Main”, quadro “PID Auto-tune Configuration Parameters”.

Ao término do processo de Auto-tune, a variável “MB112 Auto-tune done” da “net 7” – figura 9 vai a nível alto. Isso desencadeia os seguintes eventos na “net 8” da figura 9:

  • Reset da bobina “MB111”,
  • Ativação da bobina “MB1” ligando o módulo PID Run lá na “net 10”
  • Ativação da bobina “O4” acendendo o led “PID running”.

Note que o reset da bobina “MB111” na “net8” faz com que o contato “MB111” da “net 7” figura 9 desligue o módulo de Auto-tune, garantindo que o sistema volte para o estado “PID running”.

Enfim, a “net 8” é a lógica para controlar o desligamento do Auto-tune e ativar o módulo PID após o Auto-tune.

A “net 9” tem por função pausar o PID (quando se abre uma porta por exemplo). Quando “I8” é acionado, o PID para de ler o set point e o sinal de feedback, bem como deixa de corrigir o sinal de saída. O sistema permanece em pausa até que “I8” seja desligada.

A “net 10” liga o módulo PID se o Auto-tune tiver sido previamente efetuado.

Figura 9: Controle PID parte 2

As nets 11 e 12 da figura 9 fazem a leitura e apresentam os registros internos do módulo PID. Essa informação, no caso, é utilizada para debug.

Concluindo:

Conforme prometido, fecha-se o ciclo.

Neste artigo e nos anteriores foi apresentado o princípio de funcionamento de um fan cooler, incluindo o interfaceamento e processo de leitura do RPM usando o CLP bem como no acionamento do sinal PWM para controle de velocidade da ventoinha. Finalizando aplicou-se todo esse conhecimento na construção de um sistema PID usando um CLP de mercado, voltado para controlar a rotação do fan cooler.

Trata-se de uma aplicação prática, é a aplicação do conhecimento adquirido pela leitura de dezenas de artigos, livros e em publicações colhidas da Internet, transformadas em algo palpável e possível de se reproduzir com poucos recursos, conforme mostrado no conjunto de artigos e vídeos publicados nesse site.

Espero que tenha ajudado no entendimento do assunto. Como de costume a aplicação descrita pode ser baixada clicando ->aqui<- e a plataforma de desenvolvimento da Unitronics pode ser baixada direto do site do fabricante clicando ->aqui<-.

Como sempre, tutoriais sempre podem ser melhorados e precisados. Então se você ver algo para melhorar a qualidade deste material, ficarei muito contente com sua colaboração.

Desde já, muito obrigado e grande abraço!

Em tempo: Este artigo é para fins didáticos e sem qualquer garantia de funcionamento ou de performance. Caso você deseje aplicar essa informação para fins comerciais, a fim de assegurar o correto funcionamento do sistema, estudos adicionais devem ser feitos considerando o contexto da aplicação, caso a caso.

Extra:

Baseado nesse site, Moura, Duarte, Sousa e Costa (2016) fizeram o trabalho de graduação, uma bancada didática conforme foto abaixo. Enquanto o minha proposta mantém a rotação do motor constante, o trabalho deles se propõe a manter o fluxo de ar constante, -> O download do TCC pode ser feito nesse link aqui <-.

foto extraída do TCC de Moura, Duarte, Sousa e Costa (2016)

MOURA, Aldrigis; DUARTE, CecÍlio; SOUSA, Emerson Rennan; COSTA, Fabrício Nunes. SISTEMA DE CONTROLE DIDÁTICO PARA TESTES EM LABORATÓRIO. 2016. 76 f. TCC (Graduação) – Curso de Engenharia de Controle e Automação, Faculdade Anhanguera, Guarulhos, 2016.


By Renato de Pierri

11/Março/2016 – Atualizado em 06/04/2018

Last updated by at .

Deixe um comentário