Os controladores de fluxo de gás (RRG) são projetados para manter uma taxa de fluxo definida pelo usuário. Os RWGs são usados em laboratórios da indústria e de pesquisa para organizar o fornecimento de gás de cilindros e rodovias. Os aparelhos Eltochpribor, MKS, Bronkhorst, etc. estão representados no mercado e o custo desses aparelhos é de 1000 a 2500 USD. O objetivo deste trabalho é criar um regulador de fluxo de gás a partir de componentes mais acessíveis. A idéia é organizar um sistema de feedback que inclua uma válvula proporcional e um medidor de vazão. Abaixo está uma breve descrição do hardware e software do sistema, que permite reproduzi-lo para todos que usam o RRG em suas atividades. Todos os códigos-fonte estão disponíveis no GitHub .Utilizamos produtos SMC, válvulas da série PVQ e medidores de vazão da série PFM5 sem indicação. Dois RWGs foram montados com faixas de fluxo ajustáveis de 0,2-5 L / min (PVQ13 + PFM510) e 1-50 L / min (PVQ31 + PFM550), mostradas na figura. O custo de um regulador de fluxo pode ser estimado acima de 100 USD (válvula PVQ31) + 80 USD (medidor PFM5) + 20 USD (microcontrolador Arduino Nano, fonte de alimentação e componentes de rádio) = 200 USD. Tudo descrito abaixo se aplica ao RWG 1-50 l / min. A criação de um regulador de 0,2 a 5 l / min, bem como de outros reguladores de componentes similares, segue o mesmo esquema, mas pode diferir em pequenos detalhes.Hardware
O hardware é mostrado na figura e consiste em:- Válvula Proporcional PVQ31
- Medidor de vazão PFM550
- Filtro
- Fonte de alimentação (24V, 1A)
- Circuitos de controle de corrente
- Microcontrolador Arduino Nano e seus esquemas de energia
O diagrama de conexão elétrica dos componentes é mostrado na figura. Para alimentar o circuito, é usada uma fonte CC de 24 V, 1 A, o que é mais do que suficiente, dado o consumo da válvula inferior a 200 mA e um medidor inferior a 35 mA. As válvulas proporcionais da série PVQ são controladas por corrente. De acordo com a documentação, não é recomendável controlá-los por controle de tensão. O controle de corrente pode ser implementado usando o circuito discutido aqui , aqui e com mais detalhes aqui . O circuito de controle de corrente é destacado no circuito elétrico geral (Fig. 3) por um retângulo tracejado. As válvulas da série PVQ são conectadas por dois fios de energia: vermelho - DC +, preto - DC-.A força da corrente é regulada usando o sinal PWM produzido pelo pino analógico do microcontrolador. Por padrão, os controladores baseados em ATmega328 (Arduino UNO / Nano / Pro Mini) geram um sinal PWM de 8 bits (0-255) a uma frequência de 488 ou 976 Hz, dependendo do pino. A baixa largura do sinal PWM reduz a precisão do controle da válvula. Baixa frequência leva ao seu burburinho. Esses valores podem ser aumentados programaticamente para 10 bits (0-1023) e 15,6 kHz, respectivamente. Usamos uma frequência de 7,8 kHz. Uma descrição dos comandos que precisam ser inseridos na função de setup()
firmware do Arduino é fornecida aqui e aqui .Os medidores de vazão da série PFM5 possuem 2 fios de sinal (saída analógica preta, ajuste de tempo de resposta branco (não usado)) e dois fios de alimentação (marrom - DC +, azul - DC-). Alimentado por uma fonte de 24 V. O medidor de vazão fornece um sinal analógico na faixa de 1-5 V. Um valor de 1 V corresponde ao fluxo de gás zero, 5 V - o máximo para esse medidor. De acordo com a documentação, a relação entre fluxo e tensão é linear. Enquanto isso, parece útil calibrar regularmente o medidor de vazão. O sinal analógico do medidor de fluxo (fio preto) é recebido por um pino analógico Arduino de 10 bits (0-1023) para processamento e exibição. O fio branco é projetado para definir o tempo de resposta, não o usamos. Nesse caso, o tempo de resposta é de 50 ms.A placa do Arduino deve ser alimentada por um pino de 5V, a tensão de alimentação não deve exceder 5,5 V. Essa energia pode ser fornecida a partir da PSU da válvula e do medidor de vazão através do estabilizador L7805, conforme mostrado no diagrama (Fig. 3). Provavelmente você precisará de um radiador no estabilizador. A energia da porta USB do computador usado durante o teste (Fig. 2) não é desejável, pois nesse caso a tensão de referência é instável ao usar o ADC. Para mais informações sobre a potência da placa, consulte aqui .Parte dosoftware A parte do software consiste no firmware do microcontrolador Arduino Nano e em uma interface gráfica do usuário que roda em um PC.O programa baixado para o microcontrolador executa ciclicamente as seguintes ações:- ,
- ,
- , -
O sistema pode operar no modo manual e automático. Durante a operação manual, o valor da abertura da válvula desejada, expressa por uma variável valve
(0 <= valve
<1023), deve ser enviada para a porta serial . O valor dessa variável determina a ocupação do sinal PWM, que é enviado pela saída analógica do microcontrolador para o circuito de controle de corrente e o comando proporcional da válvula analogWrite(valvepin, valve)
. Após a abertura, a válvula permanece na posição definida até que um novo comando seja recebido via porta serial.Para mudar para a operação automática, um número negativo deve ser enviado para a porta serial -targetflow
. Valor variáveltargetflow
está na faixa de 0 a 1023 e determina a taxa de fluxo de gás que deve ser mantida. A vazão real do gás é determinada pelas leituras do medidor de vazão, que são lidas na entrada analógica do microcontrolador com um comando realflow = analogRead(fmpin)
(0 <= realflow
<1023). No modo automático, o sistema se esforça para manter a igualdade entre targetflow
e realflow
controlando a válvula proporcional. O valor da abertura da válvula é calculado usando o controlador de diferenciação integral integral (PID). Você pode ler sobre o controlador PID aqui , aqui e aqui . A biblioteca GyverPID é usada para implementar o controlador .com algumas alterações e adições. Como a biblioteca foi modificada, use a biblioteca anexada a esse código e não faça o download no link acima.Para usar o controlador PID, é necessário selecionar os coeficientes dos componentes proporcional Kp
, integral Ki
e diferencial Kd
, bem como o tempo de iteração dtpid
. O valor da variável dtpid
deve ser selecionado dependendo da inércia do sistema. Quanto mais inerte o sistema, mais ele deve ser dtpid
. Com base nas classificações e nos resultados do teste para o dispositivo em questão, escolhemos valores dtpid
= 100-330 ms. Os coeficientes Kp
, Ki
, Kd
seleccionam-se um valor fixodtpid
e dependem significativamente do sistema. Recomendações sobre a seleção de coeficientes podem ser encontradas aqui , aqui e aqui .Portanto, o algoritmo executado ciclicamente pelo microcontrolador é o seguinte:if( )
inp
if(inp >= 0 && inp < 1023)
inp
if(inp <= 0 && inp >= -1023)
-inp
if( && dtpid )
-
if( dt )
A interface gráfica do usuário é escrita em Python usando a estrutura gráfica do PyQt. O design foi criado no programa Qt Designer, após o qual o código do arquivo .ui foi convertido em um arquivo Python. Para uma introdução ao desenvolvimento da GUI e ao uso do PyQt, veja aqui e aqui .A interface gráfica interage com o firmware do Arduino através da porta serial usando a biblioteca pyserial
. O programa Python faz o seguinte:- , ,
- 0-1023, ,
- .3
- , ( 0-1023)
- .5
O código para conectar-se à porta serial é emprestado aqui .O módulo é destinado à transferência de unidades de usuário para o intervalo de 0 a 1023 units.py
. Este módulo facilita a adição de novas unidades. O usuário deve indicar o nome das unidades e a fórmula de conversão de 0 a 1023 para as novas unidades. O módulo é fornecido com comentários detalhados.Os dados recebidos do medidor de vazão e emitidos pelo firmware do microcontrolador para a porta serial são lidos da porta pelo programa Python e, após a conversão das unidades, são exibidos em texto e forma gráfica. Uma biblioteca é usada para desenhar um gráfico do consumo atual pyqtgraph
.resultados
Para começar a trabalhar com o RRG, você precisa: piscar o microcontrolador, conectar a energia, executar o programa Python, estabelecer uma conexão com a porta serial. Depois disso, o usuário pode selecionar o modo de operação (manual ou automático) e definir o valor de abertura da válvula necessário no modo de operação manual ou o valor do fluxo suportado no modo automático. A vazão atual do gás é exibida no campo correspondente e exibida no gráfico. O gráfico é atualizado ciclicamente, após atingir o número especificado de pontos, o gráfico é limpo e o desenho é iniciado novamente. O usuário pode selecionar as unidades usadas.
A figura mostra a aparência da interface gráfica do usuário e um gráfico da vazão de gás obtida no modo automático e mostra a alternância do RWG entre diferentes valores da vazão suportada. Os resultados são apresentados em unidades de 0 a 1023.Para demonstrar as possibilidades de manter uma vazão constante de gás, consideramos o caso em que a vazão quando a válvula proporcional é aberta por um valor constante “flutua”, conforme mostrado no lado esquerdo do gráfico (x <950) na figura abaixo. O resultado da operação da manutenção automática da vazão definida pode ser visto no lado direito do gráfico (x> 1000). Os testes mostraram que o desvio da vazão definida no modo de espera automática não é superior a 2%.
Observações
O uso do microcontrolador Arduino Nano é desnecessário, pois apenas uma pequena parte de seus pinos está envolvida. Por outro lado, seria melhor usar microcontroladores com uma maior capacidade de bit de entradas / saídas analógicas para aumentar a precisão da medição e ajuste. Ao alterar o tipo de microcontrolador, pode ser necessário implementar seu próprio controlador PID, o que não deve causar dificuldades, pois o algoritmo é simples.No estágio de desenvolvimento, o circuito elétrico foi montado em uma tábua de pão (veja a Figura 2). Para uso posterior, é necessário soldar o circuito e colocá-lo no alojamento.Os autores do artigo não são engenheiros eletrônicos nem programadores; portanto, dicas construtivas para melhoria são bem-vindas.Materiais adicionais
Os códigos-fonte do firmware do Arduino e dos programas Python, bem como a documentação dos medidores de vazão e válvulas proporcionais usadas, estão disponíveis no GitHubAgradecimentos
Somos gratos aos nossos colegas pela idéia do sistema implementado neste trabalho. AlexGyver e outros usuários compartilham generosamente suas experiências pelas informações que usamos em nosso trabalho.achados
O uso de um sistema de feedback composto por uma válvula proporcional, um medidor de vazão e um microcontrolador permite que você faça o RRG para manter um determinado fluxo de gás. Os testes mostraram um desvio da vazão necessária em menos de 2%. O custo do sistema foi inferior a 200 USD. O protótipo montado mostrou operabilidade em uma ampla gama de condições. O uso adicional pode exigir refinamento, incluindo a fiação dos circuitos, a fabricação da caixa etc.