Controle simples liga-desliga para sistemas de primeira ordem e sobremodulados
Controle Bang-Bang: um controle de planta de primeira ordem fácil de programar e calibrar quando a saída do sistema é um atuador liga-desliga.
Para que serve isso?
O objetivo deste documento é apresentar um controle de planta de primeira ordem fácil de programar e calibrar quando a saída do sistema é um atuador liga-desliga. Este algoritmo é baseado no Controle Bang-Bang, que usa histerese para ligar e desligar a saída do controle com um aprimoramento de um filtro de primeira ordem em uma malha de realimentação interna para aumentar a modulação da saída.
O tipo de saídas que este controle pode acionar são:
- Válvulas solenoides.
- Válvulas motorizadas com 2 posições (Abrir/Fechar).
1. Relés de estado sólido (para acionar resistores de aquecimento).
2. Contatores eletromecânicos.
Essa solução foi testada em sistemas físicos de aquecimento térmico e aquecimento/resfriamento descritos na ferramentas e pré-requisitos seção (veja abaixo) como o equipamento de teste, e em sistemas de controle de nível (testados em sistema industrial não mostrado aqui) onde 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 interna de realimentação na saída liga/desliga por meio de um filtro de primeira ordem.
O efeito final do filtro de primeira ordem de realimentação no controle Bang-Bang é compensar o tempo morto entre o atuador que afeta a variável medida e o sensor que reporta 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 à medida que 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 sistemas de segunda ordem criticamente amortecidos e superamortecidos (ζ ≥ 1). Sistemas não amortecidos podem 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 de primeira ordem e de segunda ordem criticamente amortecido ou superamortecido.
(Documentação completa disponível aqui)
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 o diagrama mostra, o sistema ligará quando a entrada [e2] for maior que H, mas permanecerá ligado até que [e2] seja menor que L.
Normalmente, essa é toda a funcionalidade bang-bang, mas adicionamos uma malha interna de realimentação na saída liga/desliga por meio de um filtro de primeira ordem. Esse filtro é implementado matematicamente no algoritmo.
Esse filtro de primeira ordem (FOF) receberá o status do bloco de saída bang-bang (BB) (histerese), que é 1 (um) ou 0 (zero), dependendo se a saída está ligada ou desligada. O resultado será uma carga ou descarga de capacitância, dependendo do estado da saída do bloco Bang-Bang. A tendência da saída do FOF será K quando a saída do 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 do BB.
O elemento de controle final permanecerá aberto até que a planta atinja a diferença declarada por e2 ≤ L; a saída do BB será desligada mesmo quando a planta ainda não atingiu o Setpoint, 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 do BB.
O processo continuará a alternar entre ligado/desligado até que a PV atinja a SP.
Ajuste do Bang-Bang
O método de ajuste é bastante intuitivo, mas é melhor começar com um pequeno ganho no filtro de realimentação e poucas unidades de erro para ligar o controle e poucas unidades para desligar o controle. 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 amostragem 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 se estabilizar, faça [K] igual ao overshoot e [Tao] igual ao tempo morto (t₀); para estimar esse tempo (não precisa ser preciso), meça o tempo entre a saída do atuador ativar e quando você pode ver uma mudança perceptível de 0.5% na variável de controle.
Isso configurará o Bang-Bang para o ajuste da 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 do ponto de ajuste [SP].
Você também pode reduzir ou aumentar o período de liga/desliga modificando [Tao] no controle. Isso aprimorará a precisão da saída do sistema, mas criará e aumentará os 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 do atuador será inversamente proporcional ao número de ciclos de liga/desliga, portanto, você precisará fazer um compromisso entre a vida útil do atuador e a precisão do controle.
Resfriamento Bang-Bang (atuador para diminuir a variável de controle)
O algoritmo para diminuir a variável de controle, como 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 de diminuição é multiplicada por −1 antes de alimentar a entrada do filtro da malha interna. Os parâmetros de controle diferem: agora a histerese liga o atuador de diminuição quando e₂ < SP no ponto DecON e desliga o atuador de diminuição quando e₂ > ponto DecOFF.
Bang-Bang de aquecimento e resfriamento
O último caso para Bang-Bang é quando você tem ambos os atuadores para o mesmo sistema; este é o caso de aplicações como cromagem ou galvanização, onde os sistemas precisam estar a uma determinada temperatura para iniciar o processo, mas, uma vez que o processo está em operação, ele gera mais calor devido à corrente de galvanoplastia e, portanto, precisa ser resfriado.
Neste caso, precisamos usar o Bang-Bang em modo duplo, conforme mostrado na figura 3:
Como você pode ver na figure 8, temos 2 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 de desligamento de ambos os parâmetros não se cruzem. É preferível que ambos os histereses sejam configurados como mutuamente exclusivos.
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).
- CompactLogix Universal Analog Input Card (5069-IY4).
- CompactLogix 16 24 VDC output card (5069-OB16F).
- PanelView Plus 7 Performance 700 (2711P-T7C22A9P).
Componentes do sistema de teste:
- 1 Pc aquário de 8 litros.
- 1 pc sensor de temperatura RTD PT100.
- 1 pc relé de estado sólido bobina de entrada 24 VDC / saída 125 VAC.
- 1 pc resistor de aquecimento de 400 watts.
Arquivos:
- BB.acd Logix Designer Addon Instruction
Entradas e saídas para o sistema de teste.
As entradas e saídas utilizadas são:
- 1 sensor de temperatura PT100 RTD 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 VDC no Remote Compact I/O no slot 2 saída 0 & 1. Compact_Ethernet_Adapter:2:O.Pt00.Data & Compact_Ethernet_Adapter:2:O.Pt01.Data.
Bang-Bang Add On Instruction (AOI).
A Bang-Bang Add On Instruction contém os parâmetros de instrução, variáveis de entrada e variáveis de saída para fazer o controle funcionar, bem como a lógica. Os parâmetros que são 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 dado definido para nomear cada sistema de controle por seu nome exclusivo. No caso deste exemplo, o nome do sistema é “Acuarium”, que tem o tipo de dado {aoi_Bang_Bang}.
Habilitar/Desabilitar parâmetros:
Lista e descrição de parâmetros.
[BB_is_ON] Variável de entrada boleana para ligar ou desligar o controle.
[Has_inc_element] Variável de entrada boleana para indicar se o controle possui atuador de aumento variável.
[Has_dec_element] Variável de entrada boleana para indicar se o controle possui atuador de diminuição variável.
Parâmetros de operação:
[PV] Variável de processo: este é um parâmetro real de ponto flutuante. Você deve atribuir a variável escalada do cartão de entrada a essa variável.
[SP] Set Point: este é um parâmetro real de ponto flutuante. Essa variável será definida na IHM ou em qualquer dispositivo de entrada que defina a referência para o controle.
Parâmetros de calibração:
[Inc_On] Parâmetro real de ponto flutuante. Esta é parte da histerese do Bang-Bang que, se o erro de entrada para a histerese for maior que este valor, a saída para aumentar a variável de controle é ativada.
[Inc_Off] Parâmetro real de ponto flutuante. Esta é parte da histerese do Bang-Bang que, se o erro de entrada para a histerese for menor que este valor, a saída para aumentar a variável de controle é desativada.
[Dec_On] Parâmetro real de ponto flutuante. Esta é parte da histerese do Bang-Bang que, se o erro de entrada para a histerese for menor que este valor, a saída para diminuir a variável de controle é ativada.
[Dec_Off] Parâmetro real de ponto flutuante. Esta é parte da histerese do Bang-Bang que, se o erro de entrada para a histerese for maior que este valor, a saída para diminuir a variável de controle é desativada.
[tsample] Parâmetro real de ponto flutuante. Este parâmetro deve ser igual ao tempo definido para o tempo de varredura da tarefa periódica do Bang-Bang.
[Tao] Parâmetro real de ponto flutuante. Esta é a constante de tempo, em segundos (s), para o filtro de primeira ordem no realimentador da malha interna.
[K] Parâmetro real de ponto flutuante. Este é o ganho para o qual a saída do sistema de primeira ordem tenderá após um longo período de tempo (normalmente 7 × Tao). Se K = 3, então após 7 × Tao, a saída do filtro estará próxima de 3.
Parâmetros de monitoração
[e] Variável real de ponto flutuante. Indica a diferença entre o setpoint e a variável de processo ([e] = [SP] − [PV]).
[e2] Variável real de ponto flutuante. É a diferença entre o erro [e] e a saída do filtro de primeira ordem [FB_Filter_Out].
[FB_Filter_In] Variável real de ponto flutuante. É a entrada para o filtro de realimentação, que é o resultado da soma 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 booleanos, para somar esses parâmetros é necessário usar variáveis inteiras antes de atribuir à entrada do filtro.
[FB_Filter_Out] Variável real de ponto flutuante. É a saída do filtro de realimentação, que é o resultado 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
[INC_OUT] Parâmetro de saída boleana. Esta é a saída que deve ser conectada à placa de saída para acionar o atuador da variável de controle de aumento.
[DEC_OUT] Parâmetro de saída boleana. 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 Add On Instruction possui outras variáveis internas necessárias para executar a instrução, como conversão de boleana para número inteiro. Não descreveremos 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 PanelView Plus 7 Machine Edition é fornecida como faceplate para o controle Bang-Bang.
O faceplate é fornecido como exemplo para um sistema e está incluído no pacote de documentação.
Conhecimento prévio
Definição de um sistema de primeira ordem e de segunda ordem criticamente amortecido ou superamortecido. Você pode encontrar o documento completo aqui.
Downloads
Observe: Você precisará concordar com os Termos & Condições para cada download.
Precisa de ajuda?
Se precisar de ajuda com uma aplicação ou tiver feedback do Centro de Inovação, entre em contato conosco.
Guia de instalação
Para implementar a Instrução Add On, verifique as seguintes etapas.
Studio 5000 AOI
Etapa 1:
Extraia os arquivos de BB.ZIP para o seu diretório de trabalho
Etapa 2:
Abra o arquivo BB.acd no Studio 5000
Etapa 3:
Abra o projeto onde deseja usar o Bang-Bang (presume-se que o mapeamento de I/O do seu projeto já esteja feito).
Etapa 4:
Destacar Selecione a instrução aoi_Bang_Bang no menu Assets na seção do organizador do controlador do Logix Designer.
Etapa 5:
Clique com o botão direito do mouse e selecione Copiar conforme mostrado na Figura.
Etapa 6:
Vá para o programa que deseja usar o Bang-Bang e, em Assets, destaque e selecione a pasta Add-On Instructions.
Etapa 7:
Verifique se o programa de destino possui o novo AOI colado e, em tipo de dados, você também deve ter uma nova estrutura em Add-On-Defined.
Etapa 8:
Crie uma tarefa periódica onde deseja usar o Controle Bang-Bang ou copie e cole a tarefa de amostra do programa BB.acd. Se você optar por copiar a tarefa periódica, isso deve ser feito em 2 etapas:
a. Selecione a tarefa Bang_Bang (10 ms), clique com o botão direito do mouse e selecione copiar.
b. Vá para o programa de destino e, na pasta Task, clique com o botão direito e selecione colar. A tarefa periódica será criada no programa de destino.
c. No programa BB.acd, na tarefa Bang_Bang (10 ms), clique com o botão direito, selecione a rotina BB_Logic e selecione copiar.
d. No programa de destino, selecione Bang_Bang (10 ms) e clique com o botão direito para colar a lógica.
Etapa 9:
Em Controller Tags, defina uma nova variável “Acuarium” (porque este é o nome do sistema na rotina BB_Logic).
Etapa 10:
Na rotina BB_Logic, no programa chamado {IOAssignments_n_Scaling}, altere o endereço de entrada analógica de E/S para corresponder ao seu projeto. Também altere a saída digital para os atuadores de controle para corresponder ao seu projeto.
Etapa 11:
Seu Bang-Bang deve estar pronto para funcionar em seu programa de destino.
FactoryTalk View ME
Para usar o modelo para o PanelView Plus 7 Performance, será necessário recuperar o projeto do arquivo .mer no Studio 5000 View ME.
Etapa 12:
A partir do arquivo zip, descompacte o arquivo chamado PV7P_BB.mer (lembre-se de que este arquivo está na versão 12 para ViewME).
Etapa 13:
Use o FactoryTalk ViewME Application Manager no menu de ferramentas dentro do aplicativo FactoryTalk ViewME.
Etapa 14:
Selecione "Restaurar aplicação de tempo de execução".
Step 15:
Selecione o arquivo BB.mer file.
Step 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 para recuperar