Regulator aliran gas 5 kali lebih murah daripada solusi komersial

gambar

Pengontrol aliran gas (RRG) dirancang untuk mempertahankan laju aliran yang ditentukan pengguna. RWG digunakan di laboratorium industri dan penelitian untuk mengatur pasokan gas dari silinder dan jalan raya. Perangkat Eltochpribor, MKS, Bronkhorst, dll diwakili di pasaran.Biaya perangkat tersebut adalah 1000-2500 USD. Tujuan dari pekerjaan ini adalah untuk membuat regulator aliran gas dari komponen yang lebih mudah diakses. Idenya adalah untuk mengatur sistem umpan balik yang mencakup katup proporsional dan flow meter. Di bawah ini adalah deskripsi singkat tentang perangkat keras dan perangkat lunak sistem, yang memungkinkan mereproduksinya kepada semua orang yang menggunakan RRG dalam aktivitas mereka. Semua kode sumber tersedia di GitHub .

Kami menggunakan produk SMC, katup seri PVQ, dan meter aliran seri PFM5 tanpa indikasi. Dua RWG dirakit dengan rentang aliran yang dapat disesuaikan 0,2-5 L / mnt (PVQ13 + PFM510) dan 1-50 L / mnt (PVQ31 + PFM550), ditunjukkan dalam gambar. Biaya satu pengatur aliran dapat diperkirakan dari atas sebagai 100 USD (katup PVQ31) + 80 USD (meter PFM5) + 20 USD (mikrokontroler Arduino Nano, catu daya dan komponen radio) = 200 USD. Semua yang dijelaskan di bawah ini berlaku untuk RWG 1-50 l / mnt. Membuat regulator 0,2-5 l / mnt, serta regulator lainnya dari komponen serupa mengikuti skema yang sama, tetapi mungkin berbeda dalam detail kecil.

Perangkat keras


gambar

Perangkat keras ditunjukkan pada gambar dan terdiri dari:

  1. Katup Proporsional PVQ31
  2. PFM550 flow meter
  3. Saring
  4. Unit catu daya (24V, 1A)
  5. Sirkuit kontrol saat ini
  6. Mikrokontroler Arduino Nano dan skema dayanya

gambar

Diagram koneksi listrik dari komponen ditunjukkan pada gambar. Untuk memberi daya pada rangkaian, digunakan sumber DC 24 V, 1 A, yang lebih dari cukup, mengingat konsumsi katup kurang dari 200 mA dan meter kurang dari 35 mA. Katup Proporsional Seri PVQ dikontrol saat ini. Sesuai dengan dokumentasi, tidak disarankan untuk mengontrolnya dengan kontrol tegangan. Kontrol saat ini dapat diimplementasikan menggunakan sirkuit yang dibahas di sini , di sini dan lebih detail di sini . Sirkuit kontrol saat ini disorot pada sirkuit listrik umum (Gbr. 3) oleh persegi panjang putus-putus. Katup seri PVQ dihubungkan oleh dua kabel daya: merah - DC +, hitam - DC-.

Kekuatan arus diatur menggunakan sinyal PWM yang dihasilkan oleh pin analog mikrokontroler. Secara default, pengontrol berbasis ATmega328 (Arduino UNO / Nano / Pro Mini) menghasilkan sinyal PWM 8-bit (nilai 0-255) pada frekuensi 488 atau 976 Hz, tergantung pada pin. Lebar sinyal PWM rendah mengurangi keakuratan kontrol katup. Frekuensi rendah mengarah ke buzz-nya. Nilai-nilai ini dapat ditingkatkan secara pemrograman menjadi 10 bit (0-1023) dan 15,6 kHz, masing-masing. Kami menggunakan frekuensi 7,8 kHz. Deskripsi perintah yang perlu dimasukkan ke dalam fungsi setup()firmware Arduino diberikan di sini dan di sini .

Flow meter seri PFM5 memiliki 2 kabel sinyal (output analog - hitam, pengaturan waktu respons putih (tidak digunakan)) dan dua kabel power (coklat - DC +, biru - DC-). Didukung oleh sumber DC 24 V. Flow meter memberikan sinyal analog dalam kisaran 1-5 V. Nilai 1 V sesuai dengan laju aliran gas nol, 5 V - maksimum untuk meter ini. Menurut dokumentasi, hubungan antara aliran dan tegangan adalah linier. Sementara itu, tampaknya bermanfaat untuk mengalibrasi flowmeter secara teratur. Sinyal analog dari flow meter (kabel hitam) diterima oleh pin analog Arduino 10 bit (0-1023) untuk diproses dan ditampilkan. Kabel putih dirancang untuk mengatur waktu respons, kami tidak menggunakannya. Dalam hal ini, waktu respons adalah 50 ms.

Papan Arduino harus diberi daya melalui pin 5V, tegangan suplai tidak boleh melebihi 5,5 V. Daya tersebut dapat disediakan dari katup PSU dan flow meter melalui stabilizer L7805, seperti yang ditunjukkan pada diagram (Gbr. 3). Kemungkinan besar Anda akan membutuhkan radiator di stabilizer. Daya dari port USB komputer yang digunakan selama pengujian (Gbr. 2) tidak diinginkan karena dalam hal ini tegangan referensi tidak stabil saat menggunakan ADC. Untuk informasi lebih lanjut tentang daya papan, lihat di sini .

Software bagian
Bagian perangkat lunak terdiri dari firmware dari mikrokontroler Arduino Nano dan antarmuka pengguna grafis yang berjalan pada PC.

Program yang diunduh ke mikrokontroler secara siklik melakukan tindakan berikut:

  1. ,
  2. ,
  3. , -

Sistem dapat beroperasi dalam mode manual dan otomatis. Selama operasi manual, nilai bukaan katup yang diinginkan, dinyatakan oleh variabel valve(0 <= valve<1023), harus dikirim ke port serial . Nilai variabel ini menentukan hunian sinyal PWM, yang dikirim melalui output analog mikrokontroler ke sirkuit kontrol saat ini dan perintah katup proporsional analogWrite(valvepin, valve). Setelah dibuka, katup tetap dalam posisi yang disetel hingga perintah baru diterima melalui port serial.

Untuk beralih ke operasi otomatis, nomor negatif harus dikirim ke port serial -targetflow. Nilai variabeltargetflowterletak pada kisaran 0-1023 dan menentukan laju aliran gas yang harus dipertahankan. Laju aliran gas aktual ditentukan oleh pembacaan meter aliran, yang dibaca dari input analog mikrokontroler dengan perintah realflow = analogRead(fmpin)(0 <= realflow<1023). Dalam mode otomatis, sistem berusaha untuk menjaga kesetaraan antara targetflowdan dengan realflowmengendalikan katup proporsional. Nilai pembukaan katup dihitung menggunakan pengontrol proporsional-integral-diferensiasi (PID). Anda dapat membaca tentang pengontrol PID di sini , di sini dan di sini . Pustaka GyverPID digunakan untuk mengimplementasikan pengontrol .dengan beberapa perubahan dan tambahan. Karena perpustakaan telah dimodifikasi, gunakan perpustakaan yang dilampirkan ke kode ini, dan tidak diunduh dari tautan di atas.

Untuk menggunakan pengontrol PID, perlu untuk memilih koefisien dari komponen proporsional Kp, integral, Kidan diferensial Kd, serta waktu iterasi dtpid. Nilai variabel dtpidharus dipilih tergantung pada kelembaman sistem. Semakin inert sistem, semakin seharusnya dtpid. Berdasarkan peringkat dan hasil pengujian untuk perangkat yang dimaksud, kami memilih nilai dtpid= 100-330 ms. Koefisien Kp, Ki, Kddipilih pada nilai tetapdtpiddan sangat tergantung pada sistem. Rekomendasi tentang pemilihan koefisien dapat ditemukan di sini , di sini dan di sini .

Jadi, algoritma yang secara siklik dijalankan oleh mikrokontroler adalah sebagai berikut:

if(    )
	   inp
	if(inp >= 0 && inp < 1023)
		  
		    inp
	if(inp <= 0 && inp >= -1023)
		  
		     -inp 
if(  &&      dtpid )
	      -
	    
if(     dt )
	   
	   
	   

Antarmuka pengguna grafis ditulis dalam Python menggunakan kerangka kerja grafis PyQt. Desain dibuat dalam program Qt Designer, setelah itu kode file .ui dikonversi menjadi file Python. Untuk pengantar pengembangan GUI dan penggunaan PyQt, lihat di sini dan di sini .

Antarmuka grafis berinteraksi dengan firmware Arduino melalui port serial menggunakan perpustakaan pyserial. Program Python melakukan hal berikut:

  1. , ,
  2. 0-1023, ,
  3. .3
  4. , ( 0-1023)
  5. .5

Kode untuk menghubungkan ke port serial dipinjam dari sini .

Modul ini dimaksudkan untuk mentransfer dari unit pengguna ke kisaran 0-1023 units.py. Modul ini memudahkan untuk menambah unit baru. Pengguna diminta untuk menunjukkan nama unit dan formula konversi dari 0-1023 ke unit baru. Modul ini dilengkapi dengan komentar terperinci.

Data yang diterima dari flow meter dan output oleh firmware mikrokontroler ke port serial dibaca dari port oleh program Python dan, setelah unit dikonversi, ditampilkan dalam bentuk teks dan grafik. Perpustakaan digunakan untuk menggambar grafik konsumsi saat ini pyqtgraph.

hasil


Untuk mulai bekerja dengan RRG, Anda perlu: mem-flash mikrokontroler, menghubungkan daya, menjalankan program Python, membuat koneksi ke port serial. Setelah itu, pengguna dapat memilih mode operasi (manual atau otomatis) dan mengatur nilai pembukaan katup yang diperlukan dalam mode operasi manual atau nilai aliran yang didukung dalam mode otomatis. Laju aliran gas saat ini ditampilkan di bidang yang sesuai dan ditampilkan pada grafik. Grafik diperbarui secara siklis, setelah mencapai jumlah titik yang ditentukan, grafik dihapus dan gambar dimulai lagi. Pengguna dapat memilih unit yang digunakan.

gambar
Gambar tersebut menunjukkan tampilan antarmuka pengguna grafis dan grafik laju aliran gas yang diperoleh dalam mode otomatis dan menunjukkan pengalihan RGG antara nilai yang berbeda dari laju aliran yang didukung. Hasilnya diberikan dalam satuan 0-1023.

Untuk menunjukkan kemungkinan mempertahankan laju aliran gas konstan, kami mempertimbangkan kasus ketika laju aliran ketika katup proporsional dibuka oleh nilai konstan "mengambang", seperti yang ditunjukkan di sisi kiri grafik (x <950) pada gambar di bawah ini. Hasil operasi pemeliharaan otomatis laju aliran yang ditetapkan dapat dilihat di sisi kanan grafik (x> 1000). Pengujian menunjukkan bahwa penyimpangan dari laju aliran yang diatur dalam mode tahan otomatis tidak lebih dari 2%.

gambar

Catatan


Menggunakan mikrokontroler Arduino Nano tidak perlu karena hanya sebagian kecil dari pin yang terlibat. Di sisi lain, akan lebih baik menggunakan mikrokontroler dengan kapasitas bit input / output analog yang lebih besar untuk meningkatkan akurasi pengukuran dan penyesuaian. Saat mengubah jenis mikrokontroler, mungkin perlu menerapkan pengontrol PID Anda sendiri; ini seharusnya tidak menyebabkan kesulitan karena algoritmanya sederhana.

Pada tahap pengembangan, rangkaian listrik dirakit di atas papan tempat memotong roti (lihat Gambar 2). Untuk penggunaan lebih lanjut, perlu menyolder sirkuit dan menempatkannya di rumah.

Penulis artikel ini bukanlah insinyur elektronik atau pemrogram, oleh karena itu, tip perbaikan yang konstruktif dipersilahkan.

Bahan tambahan


Kode sumber untuk firmware Arduino dan program Python, serta dokumentasi untuk flow meter dan katup proporsional yang digunakan, tersedia di GitHub

Ucapan Terima Kasih


Kami berterima kasih kepada kolega kami untuk gagasan sistem yang diterapkan dalam pekerjaan ini. AlexGyver dan pengguna lain dengan murah hati membagikan pengalaman mereka untuk informasi yang kami gunakan dalam pekerjaan kami.

temuan


Menggunakan sistem umpan balik yang terdiri dari katup proporsional, flow meter, dan mikrokontroler memungkinkan Anda membuat RRG untuk mempertahankan aliran gas yang diberikan. Tes menunjukkan penyimpangan dari laju aliran yang dibutuhkan dalam waktu kurang dari 2%. Biaya sistem itu kurang dari 200 USD. Prototipe rakitan menunjukkan operabilitas dalam berbagai kondisi. Penggunaan lebih lanjut mungkin memerlukan penyempurnaan, termasuk pengkabelan sirkuit, pembuatan case, dll.

Source: https://habr.com/ru/post/undefined/


All Articles