Saya memiliki pengaturan berikut:
- Arduino Duemilanove
- Pemanas air kecil terhubung dengan relay optik (PWM baik-baik saja)
- Sensor suhu tahan air DS18B20
- Jumlah air yang tidak diketahui (tetapi sensor suhu dan pemanas selalu di bawah air).
Bagaimana cara mengontrol suhu air secara akurat, berdasarkan pembacaan sensor suhu? Secara akurat, maksud saya hingga keakuratan sensor suhu (dalam hal ini, ± 0,5 ° C). Semuanya harus berjalan di Arduino, jadi tidak ada penyimpanan data tambahan atau kekuatan pemrosesan yang tersedia. Untuk debugging, saya jelas dapat menggunakan komputer.
Saya sudah mencoba menjalankan PID, tetapi sepertinya sangat sulit
- Hindari overshooting - melampaui suhu target baik pada awalnya, atau ketika air (dingin) ditambahkan
- Stabilkan dengan benar setelah menambahkan air dingin.
Jawaban:
Anda perlu mengetahui waktu respons sistem Anda dan pengulangan pengukuran Anda untuk mengkarakterisasi data Anda (membangun kepercayaan diri). Saya sarankan mengambil sampel dan rata-rata sebelum menyalakan pemanas kembali.
Imho, air tidak akan dengan senang hati tetap dalam 0,5 ° C. Bisakah Anda mengizinkan mode kasar dan halus? Gunakan PWM yang lebih tinggi untuk perbedaan besar dan PWM yang lebih rendah ketika dekat dengan target.
Setelah diarahkan pada target Anda, ada beberapa cara yang dapat Anda coba untuk meningkatkan stabilitas suhu. Sementara hal-hal yang sudah dibuat sebelumnya seperti PID berfungsi untuk banyak orang, saya biasanya mengimplementasikan fungsionalitas seperti ini secara manual.
sumber
BrettAM, dE (laju perubahan kesalahan) akan berubah sebagai parameter kontrol, dalam hal ini lebar pulsa sinyal elemen pemanas dimodulasi, divariasikan oleh PID. Kata-kata saya mengatakan bahwa tingkat perubahan kesalahan suhu adalah pilihan yang buruk. Istilah turunan juga akan berfungsi untuk merawat variasi kecil dalam panas air spesifik dengan suhu (4,186 kJ / (kg K) @ 20C hingga 4,219 kJ / (kg K) @ 100C).
Maksud saya adalah, ya istilah turunannya menghitung tingkat perubahan dE. Karena kesalahan di sini adalah perbedaan antara suhu yang diinginkan dan suhu aktual, turunan kemudian menghitung perubahan dalam tingkat di mana air dipanaskan.
Masalahnya adalah seringkali sulit untuk membuat sistem yang stabil dengan istilah turunan. Sistem PID harus didasarkan terutama pada istilah proporsional. Ketika Anda memvariasikan jumlah air, menurut pendapat saya, Anda menciptakan lebih banyak non-linearitas daripada yang bisa dikompensasi oleh PID. Untuk alasan ini, PID perlu diulang dan jika level air sangat bervariasi, sistemnya tidak lagi dapat diulang.
KEPADA OP: Dalam desain saya yang serupa, saya akan mencoba menggunakan radiator / fan combo kecil dan pompa 12V DC untuk mengalirkan air sebagai metode pendinginan air kembali. Saya merasa ini mungkin bekerja lebih baik. Jika berhasil, saya akan memberi tahu Anda.
sumber
Anda perlu menjaga agar jumlah air yang dipanaskan konstan. Laju kenaikan suhu air akan berubah ketika Anda memvariasikan jumlah air (menambahkan air dingin seperti yang Anda sebutkan). Pengontrol derivatif proporsional-integral (PID) bekerja dengan mengamati turunan (laju perubahan) dari variabel yang Anda coba kendalikan. PID Anda tidak akan pernah berfungsi dengan baik jika laju perubahan suhu tidak (wajar) konstan.
Lihatlah panas air tertentu, terutama persamaan Q = cm dT. Q adalah panas yang ditambahkan, yang saya anggap konstan dalam pengaturan Anda. m adalah massa zat yang dipanaskan (harus dijaga konstan!). c adalah panas spesifik air, yaitu 4,186 Joule / gram * derajat C. Jika Q, m, dan c adalah konstan maka dT, laju di mana suhu air Anda akan naik juga akan konstan (pada kenyataannya c bervariasi sedikit dengan suhu tetapi saya akan mengatakan ini dapat diabaikan jika Anda bekerja dari 0 100C). Coba setel PID Anda dengan jumlah air yang konstan dan Anda mungkin mendapatkan hasil yang lebih baik.
Pemanas air apa yang Anda gunakan? Saat ini saya melakukan sesuatu yang serupa tetapi mencoba menggunakan plat panas dari laboratorium kimia dan mengalami overshoot besar. Saya sudah mempertimbangkan beralih ke pemanas akuarium tetapi ingin tahu apa yang Anda gunakan?
-Matt
sumber