Simple On-Off Control for First Orders and Overdamped Systems
Controle Bang-Bang – Um controle de planta de primeira linha que é fácil de programar e calibrar quando a saída do sistema é um atuador liga-desliga.
Qual é a finalidade disso?
O objetivo deste documento é apresentar um controle de fábrica de primeira ordem fácil de programar e calibrar quando a saída do sistema é o atuador liga-desliga. Este algoritmo é baseado no controle Bang-Bang, que usa histerese para ligar e desligar a saída do controle com o aprimoramento de um filtro de primeira ordem em uma malha de realimentação interna para aumentar a modulação da saída.
Os tipos de saídas que este controle pode acionar são:
- Válvulas solenoides
- Válvulas motorizadas com duas posições (abre/fecha)
- Relés de estado sólido (para acionar resistores de aquecimento)
- Contatores eletromecânicos
Esta solução foi testada em sistemas de aquecimento/resfriamento e aquecimento térmico físico descritos na seção Ferramentas e pré-requisitos como equipamento de teste e em sistemas de controle de nível (testada em um sistema industrial não mostrado aqui) em que temos fluxo de entrada e saída.
Isso é útil para mim?
O princípio de operação bang-bang é o controle liga/desliga com histerese, mas adicionamos uma malha de realimentação interna na saída liga/desliga por meio de um filtro de primeira ordem.
O efeito definitivo do filtro de primeira ordem de realimentação no controle bang-bang é compensar o tempo morto que leva entre o atuador que afeta a variável medida e que o sensor informe a medição real.
Com o filtro de realimentação, a oscilação na saída de controle começará mais cedo do que se tivesse apenas o comparador de histerese, limitando assim a quantidade de calor fornecida ao tanque e ajudando a evitar o overshoot quando o líquido aquecido chega ao sensor.
Esse algoritmo pode substituir uma malha de controle proporcional-integral que precisa ser conectada a uma saída proporcional ao tempo; é mais simples de ajustar e tem menos parâmetros para configurar.
Observação: Sugerimos usar este algoritmo para sistemas de primeira ordem e apenas para sistemas de segunda ordem criticamente amortecidos e superamortecidos (ζ≥1). Um sistema não amortecido pode produzir oscilações indesejáveis que podem ter um comportamento inesperado.
Como posso fazer isso funcionar?
Conhecimento prévio:
- Teoria de operação do algoritmo bang-bang aprimorado.
- Definição de um sistema criticamente amortecido ou superamortecido de primeira e segunda ordem.
* Documentação completa disponível aqui (em inglés).
O diagrama de blocos para o algoritmo de controle bang-bang aprimorado é mostrado na Figura 1:
O princípio de operação bang-bang é o controle liga/desliga com histerese. Como mostra o diagrama, o sistema será ligado quando a entrada [e2] for maior que H, mas permanecerá até que [e2] seja menor que L.
Normalmente, essa é toda a funcionalidade do bang-bang, mas adicionamos uma malha de realimentação interna na saída liga/desliga por meio de um filtro de primeira ordem. Este filtro é implementado matematicamente no algoritmo.
Este filtro de primeira ordem (FOF) receberá o status do bloco de saída de bang-bang (BB) (histerese) que é 1 (um) ou 0 (zero), dependendo do fato de a saída estar ligada ou desligada. O resultado será uma carga ou descarga de capacitância, dependendo do estado da saída do bloco de bang-bang. A tendência da saída do FOF será K quando a saída de BB estiver ligada e tenderá a zero quando a saída estiver desligada.
A saída do FOF é subtraída do erro [e], produzindo um [e2] reduzido que tenderá a K; isso significa que, quando o erro (e=SP-PV) for maior por tempo suficiente, e2 tenderá a e-Kr, portanto e2 será maior que H, ligando a saída de BB.
O elemento de controle final ficará aberto até que a fábrica atinja a diferença indicada por e2 ≤ L, a saída de BB será desligada mesmo que a fábrica ainda não tenha atingido a configuração, mas então o filtro de realimentação iniciará uma descarga, provocando um aumento em e2. A descarga continuará até que e2 atinja H, o que ligará novamente a saída de BB.
O processo continuará nesse ciclo entre ligar/desligar até que PV atinja SP.
Ajustar o bang-bang
O método de ajuste é bastante intuitivo. Mas é melhor começar com um pequeno ganho no filtro de realimentação e algumas unidades de erro para ligar o controle e algumas para desligá-lo. Isso pode começar centrado sobre zero. Por exemplo, comece com [H = 0,5% da variável de controle] e [L=- 0,5% da variável de controle]. Faça K=0 para ver como o sistema reage a um bang-bang puro.
O tempo de amostra deve ser igual à chamada de função periódica para a função Bang-Bang. Esse parâmetro é importante porque determinará o tempo do sistema para as etapas seguintes.
Verifique o overshoot após o sistema estabilizar, faça [K] igual ao overshoot e [Tao] igual ao tempo morto (t0); para estimar esse tempo (não precisa ser preciso) meça o tempo entre a ativação da saída do atuador e quando você pode ver uma mudança perceptível de 0,5% na variável de controle.
Isso vai configurar o bang-bang para o ajuste de primeira passagem.
Ao observar a capacidade do sistema, você pode reduzir a diferença entre [H] e [L] para reduzir a magnitude das flutuações em torno da configuração [set point, SP].
Você também pode reduzir ou aumentar o período de liga/desliga; para isso, modifique [Tao] no controle. Isso vai aumentar a precisão da saída do sistema, mas vai criar um aumento de ciclos de liga/desliga no atuador.
Esteja ciente de que, se o atuador tiver uma operação mecânica, como um relé, contator ou válvula solenoide, a vida útil dele será inversa ao número de ciclos de liga/desliga. Portanto, você precisará fazer uma compensação entre a vida útil do atuador e a precisão do controle.
Resfriar o bang-bang (atuador para diminuir a variável de controle)
O algoritmo para diminuir a variável de controle, como o resfriamento em um tanque aquecido ou válvula de alívio de pressão em um tanque de pressão, é muito semelhante ao diagrama de aquecimento, mas com algumas alterações, conforme mostrado na figura 2.
A diferença no algoritmo é que a saída decrescente é multiplicada por -1 antes de alimentar a entrada do filtro da malha interna. Os parâmetros de controle são diferentes, agora a histerese liga o atuador de diminuição quando e2 é menor que SP no ponto DecON e desliga o atuador de diminuição quando e2 é maior que o ponto DecOFF.
Aquecer e resfriar o bang-bang
O último caso para o bang-bang é quando você tem os dois atuadores para o mesmo sistema. É o caso de aplicações como cromagem ou galvanização, em que os sistemas precisam estar em uma certa temperatura para iniciar o processo, mas depois de entrar em operação, esse processo gera mais calor devido à corrente de eletrodeposição e, portanto, precisa ser resfriado.
Neste caso, precisamos usar o bang-bang em modo duplo, conforme a figura 3.
Como você pode ver na figura 8, temos duas histereses, uma para acionar o atuador de aumento e outra para acionar o atuador de diminuição. A chave para ajustar essa opção é garantir que o parâmetro [DecON] seja sempre menor que [IncON,] e é preferível que o ponto desligado de ambos os parâmetros não se cruze. É preferível que ambas as histereses sejam configuradas como mutuamente excludentes.
Ferramentas e pré-requisitos
Software:
- Studio 5000 Logix Designer v35
- FactoryTalk View ME v12.00.00
Hardware:
- ControlLogix Logix (1756-L83) FW v35
- CompactLogix I/O Adapter (5069-AEN2TR)
- Placa de entrada analógica universal CompactLogix (5069-IY4)
- Placa de saída CompactLogix 16 24 VCC (5069-OB16F)
- PanelView Plus 7 Performance 700 (2711P-T7C22A9P)
Componentes do sistema de teste:
- 1 aquário de 8 litros
- 1 sensor de temperatura RTD PT100
- 1 bobina de entrada de relé de estado sólido 24 VCC /saída de 125 VCA
- 1 resistor de aquecimento de 400 watts
Arquivos:
- Instrução add-on do Logix Designer BB.acd
Entradas e saídas para o sistema de teste
As entradas e saídas usadas são:
- 1 sensor de temperatura RTD PT100 conectado à entrada Remote Compact I/O no slot 3, entrada 0 (5069-IY4). Tag do controlador: Compact_Ethernet_Adapter:3:I.Ch00.Data.
- 2 saídas CC conectadas à placa de saída 24 CC em Remote Compact I/O no slot 2, saídas 0 e 1. Compact_Ethernet_Adapter:2:O.Pt00.Data e Compact_Ethernet_Adapter:2:O.Pt01.Data.
Instrução add-on (AOI) do bang-bang
A instrução add-on do bang-bang contém os parâmetros de instrução e as variáveis de entrada e saída para fazer o controle funcionar, bem como a lógica. Os parâmetros que são de entrada e saída são mostrados no faceplate feito para o PanelView Plus 7.
Estrutura da AOI
A instrução AOI tem um tipo de dados definido para nomear cada sistema de controle por um nome exclusivo. Neste exemplo, o nome do sistema é “Acuarium” e tem o tipo de dados {aoi_Bang_Bang}.
Ativar/desativar parâmetros:
Descrição e lista de parâmetros.
Variável de entrada booliana para ligar ou desligar o controle [BB_is_ON].
Entrada booliana para indicar se o controle tem atuador de aumento variável [Has_inc_element].
Entrada booliana para indicar se o controle tem atuador de diminuição variável [Has_dec_element].
Parâmetros de operação:
Variável de processo [PV]: Este é um parâmetro de ponto flutuante real. Você deve atribuir a variável escalonada da placa de entrada a esta variável.
Configuração [SP, set point]: Este é um parâmetro de ponto flutuante real. Esta variável será configurada na IHM ou em qualquer dispositivo de entrada que estabeleça a referência para o controle.
Parâmetros de calibração:
Parâmetro de ponto flutuante real [Inc_On]. Faz parte da histerese do bang-bang de que, se o erro de entrada para a histerese for maior que esse valor, a saída para aumentar a variável de controle será ligada.
Parâmetro de ponto flutuante real [Inc_Off]. Faz parte da histerese do bang-bang de que, se o erro de entrada para a histerese for menor que esse valor, a saída para aumentar a variável de controle será desligada.
Parâmetro de ponto flutuante real [Dec_On]. Faz parte da histerese do bang-bang de que se, o erro de entrada para a histerese for menor que esse valor, a saída para diminuir a variável de controle será ligada.
Parâmetro de ponto flutuante real [Dec_Off]. Faz parte da histerese do bang-bang de que, se o erro de entrada para a histerese for maior que esse valor, a saída para diminuir a variável de controle será desligada.
Parâmetro de ponto flutuante real [tsample]. Este parâmetro deve ser igual ao tempo definido para o tempo de varredura da tarefa periódica do bang-bang.
Parâmetro de ponto flutuante real [Tao]. É a constante de tempo em segundos para o filtro de primeira ordem na realimentação da malha interna.
Parâmetro de ponto flutuante real [K]. É a tendência de ganho que a saída do sistema de primeira ordem terá após um longo período (normalmente 7 vezes Tao). Se K = 3, depois de 7 vezes Tao, a saída do filtro será próxima de 3.
Parâmetros de monitoramento
Variável de ponto flutuante real [e]. Indica a diferença entre a configuração (set point) e a variável do processo ([e] = [SP] – [PV]).
Variável de ponto flutuante real [e2]. É a diferença entre o erro [e] e a saída do filtro de primeira ordem [FB_Filter_Out].
Variável de ponto flutuante real [FB_Filter_In]. É a entrada para o filtro de realimentação que é o resultado da adição dos parâmetros de saída [INC_OUT] – [DEC_OUT]. Esses parâmetros são as saídas reais para os elementos do atuador. Como os parâmetros [INC_OUT] e [DEC_OUT] são boolianos, para adicioná-los é necessário usar variáveis de números inteiros antes de atribuir à entrada do filtro.
Variável de ponto flutuante real [FB_Filter_Out]. É a saída do filtro de realimentação que resulta da digitalização da função de transferência de um sistema de primeira ordem. Para fins de simplificação, a equação diferencial de primeira ordem é transformada em amostragem digital com o método de Euler.
A equação do filtro é a seguinte:
Parâmetros de saída
Parâmetro booliano de saída [INC_OUT]. Esta é a saída que deve ser conectada à placa de saída para acionar o atuador da variável de controle de aumento.
Parâmetro booliano de saída [DEC_OUT]. Esta é a saída que deve ser conectada à placa de saída para acionar o atuador da variável de controle de diminuição.
Variáveis internas da AOI
A Instrução add-on tem outras variáveis internas necessárias para executar a instrução, como a conversão de booliano para número inteiro. Não vamos descrever cada uma dessas variáveis neste documento, pois a instrução AOI está aberta para revisão e edição.
Telas do PanelView Plus 7
A tela do PanelView 7 Machine Edition é fornecida como faceplate para o controle de bang-bang.
O faceplate é fornecido como uma amostra para um sistema e está incluído no pacote de documentação.
Conhecimento prévio
Definição de um sistema criticamente amortecido ou sobreamortecido de primeira e segunda ordem. Confira o documento completo aqui.
Downloads
Observação: você precisará concordar com os Termos e Condições de cada download.
Precisa de ajuda?
Se você precisar de ajuda com uma inscrição ou tiver um feedback do centro de inovação, escreva para nós.
Guia de instalação
Para implementar a Instrução add-on, verifique os passos a seguir.
Studio 5000 AOI
Passo 1
Extraia arquivos de BB.ZIP para seu diretório de trabalho.
Passo 2
Abra o arquivo BB.acd no Studio 5000.
Passo 3
Abra o projeto onde deseja usar o bang-bang (presume-se que o mapeamento de E/S do seu projeto já esteja feito).
Passo 4
Selecione a instrução aoi_Bang_Bang no menu Assets na seção do organizador do controlador do Logix Designer.
Passo 5
Clique com o botão direito do mouse e selecione Copy, como mostrado na figura.
Passo 6
Acesse o programa em que deseja usar o bang-bang e, em Assets, selecione a pasta Add-On Instructions.
Passo 7
Verifique se o programa de destino tem a nova AOI colada e, no tipo de dados, também deve haver uma nova estrutura em Add-On-Defined.
Passo 8
Crie uma tarefa periódica na qual deseja usar o controle de bang-bang ou copie e cole a tarefa de amostra do programa BB.acd. Se você optar por copiar a tarefa periódica, isso deverá ser feito em duas etapas:
a. Selecione a tarefa Bang_Bang (10ms), clique com o botão direito do mouse e selecione Copy.
b. Acesse o programa de destino e, na pasta Task, clique com o botão direito do mouse e selecione Paste. A tarefa periódica será criada no programa de destino.
c. No programa BB.acd, na tarefa Bang_Bang (10ms), clique com o botão direito do mouse e selecione a rotina BB_Logic e depois Copy.
d. No programa de destino, selecione Bang_Bang (10ms) e clique com o botão direito para colar a lógica.
Passo 9
Em Controller Tags, defina uma nova variável “Acuarium” (porque este é o nome do sistema na rotina BB_Logic).
Passo 10
Na rotina BB_Logic, no programa denominado {IOAssignments_n_Scaling}, altere o endereço de entrada analógica de E/S para corresponder ao seu projeto. Altere também a saída digital para os atuadores de controle para corresponder ao seu projeto.
Passo 11
O bang-bang deve estar pronto para funcionar em seu programa de destino.
Ver Studio ME
Para usar o modelo para o PanelView Plus 7 Performance, será preciso recuperar o projeto do arquivo .mer no Studio 5000 View ME.
Passo 12
No arquivo zip, descompacte o arquivo chamado PV7P_BB.mer (lembre-se de que este arquivo está na versão 12 para o ViewME).
Passo 13
Use o FactoryTalk ViewME Application Manager no menu de ferramentas da aplicação FactoryTalk ViewME.
Passo 14
Selecione “Restore runtime application”.
Passo 15
Selecione o arquivo BB.mer.
Passo 16
Selecione Open application e a aplicação deve ser restaurada.
Você também pode encontrar muitos vídeos sobre como restaurar uma aplicação .mer.