Saya ingin mempelajari kontrol PID (Proportional-Integral-Derivative) terutama untuk suhu.
Saya ingin belajar lebih disukai melalui proyek yang mudah dilakukan.
Bisakah Anda merekomendasikan sesuatu yang akan memakan waktu beberapa minggu untuk dipelajari?
Sunting: Saya ingin mengontrol suhu tangki air. Pemanasan dilakukan oleh resistor.
microcontroller
control-system
pid-controller
Daniel Grillo
sumber
sumber
Jawaban:
Mengontrol suhu (tergantung media Anda) tidak terlalu sulit. Itu adalah proyek pertama saya ketika saya mulai. Maafkan saya, jika saya ulangi hal-hal yang sudah Anda ketahui.
Saya berasumsi Anda sudah memiliki cara untuk mengendalikan sistem (yaitu, unit pemanas atau pendingin), dan cara mendapatkan umpan balik dari sistem (sensor suhu seperti termistor atau sesuatu). Anda perlu keduanya untuk mengimplementasikan loop PID, yang merupakan jenis kontrol loop tertutup. Yang benar-benar perlu Anda lakukan setelah itu adalah menulis sedikit perangkat lunak untuk mengirim perintah kontrol, membaca umpan balik, dan membuat keputusan atas umpan balik itu.
Saya akan mulai dengan membaca PID tanpa gelar PhD . Ini adalah artikel yang saya gunakan ketika saya pertama kali harus mengatur suhu dalam percobaan sains. Ini memberikan beberapa gambar yang mudah dipahami, dan kode sampel yang bagus (loop dasar yang dapat Anda atur hanya membutuhkan 30 baris) yang menjelaskan cara mengontrol 'tanaman' Anda - dalam hal ini, hal yang ingin Anda kontrol suhu .
Inti dari kontrol PID - Proportional-Integral-Diferensial - adalah menggunakan kinerja masa depan yang instan, lampau, dan diprediksi (masing-masing) untuk menentukan bagaimana mengontrol suatu sistem pada titik tertentu dalam waktu untuk mencapai set point yang ditentukan. Dalam banyak kasus, Anda harus menyetel faktor penguatan algoritme untuk mendapatkan kinerja yang diinginkan yang Anda butuhkan - seberapa cepat suhu akan naik, seberapa banyak Anda ingin menghindari overshoot, dll. Anda bahkan mungkin menemukan Anda tidak memerlukan diferensial atau bahkan kontrol integral untuk mencapai tempat yang Anda inginkan!
sumber
Iya nih. Dapatkan termistor dan resistor. Pilih resistensi yang dapat menarik arus cukup besar (> 100mA).
Gunakan pasta termal di antara mereka dan rekatkan dengan pita. Kaitkan sirkuit termistor ke mikrokontroler melalui ADC. Gunakan transistor untuk mengontrol resistor dan mengendalikannya dengan PWM.
Kembangkan PID yang memungkinkan Anda untuk mengontrol suhu dengan tombol dan berlatih membuat PID yang melampaui dan berdering suhu. Buat terlalu lembab dan perlu waktu lama untuk mencapai suhu, dan cobalah untuk membuatnya kritis teredam dan sampai ke suhu dengan kecepatan maksimal.
Beri tahu saya jika lebih detail akan membantu.
Setelah Anda selesai mengurangi konduktivitas termal mereka, cobalah menambahkan tahap yang akan menunda perambatan suhu dan mencoba membuatnya terkendali dengan baik.
Ini juga dapat dilakukan dengan LED dan foto-transistor.
sumber
Selain aplikasi kontrol suhu yang jelas, berikut adalah proyek yang indah yang membutuhkan kontrol PID. Jadikan diri Anda bot yang mengikuti baris: http://elm-chan.org/works/ltc/report.html
sumber
Simulator PID yang bagus tersedia untuk Scilab.
sumber
Hanya menambahkan 2 sen saya sudah layak untuk tanggapan yang baik.
Penggunaan praktis PID untuk kontrol suhu sering memiliki perilaku non-linier jika deteksi kesalahan temeprature terbatas (gain op jenuh output) dan daya yang tersedia untuk mengontrol suhu tetap.
Pertimbangkan pengontrol hidup-mati. Sistem akan memiliki latensi sejak saat panas diterapkan dan perubahan suhu terdeteksi. Tanpa loop PID, latensi ini menghasilkan loop tidak stabil yang berosilasi dan jika ada histeria, siklus daya dengan noise (On-Off-On) Namun kenaikan yang sangat tinggi (seperti pembanding) menghasilkan kesalahan suhu residual kecil. Latensi memengaruhi waktu siklus dan overshoot.
Jika ada gangguan eksternal seperti lampu tangki yang dapat menambah panas yang signifikan, regulator pemanas harus merespons segera setelah kenaikan suhu terdeteksi dari panas lampu. Jika Lamp swith Anda bukan bagian dari loop PID, maka itu tidak dapat "mengantisipasi" efek (keuntungan umpan balik derivatif) Jelas, jika lampu menghasilkan terlalu banyak panas maka suhu tidak dapat diatur dan akan melebihi setpoint.
Kontrol panas Anda dengan kontrol PID mungkin harus memiliki inoput untuk status sakelar Lampu dan kontrol output untuk mengatur daya cahaya sebagai sumber panas sekunder, sekali lagi jika terlalu banyak.
Menentukan persyaratan Anda untuk kesalahan kontrol absolut,% overshoot, dan waktu respons adalah beberapa input desain yang diperlukan untuk mengoptimalkan loop PID Anda. Sama pentingnya adalah mendefinisikan gangguan sistem Anda dan memasukkannya ke dalam sistem kontrol Anda untuk input dan output. misalnya. Daya panas lampu dan pilihan sensor dan lokasi.
Selain pengalaman.
Pengalaman pertama saya menggunakan pemanas air adalah selama era genangan air tahun 70-an ketika saya masih mahasiswa, saya mendesain temp-controller saya sendiri menggunakan termistor, rangkaian kontrol, dan triac switch zero-crossing untuk pemanas. Saya mulai dengan kontrol pembanding dan menemukan respons yang tidak biasa dari melompat di tempat tidur. Jadi saya menambahkan kontrol proporsional menggunakan noise tanpa filter pada sensor untuk memberi saya "siklus yang hilang" secara proporsional ketika triac ZCS ON dekat ambang batas. Saya bisa mengatur suhu dalam 0,1'C. Responnya lebih lembut tetapi hasilnya sama.
Dalam kasus saya setiap kali saya melompat ke tempat tidur resistensi termal turun sedikit dari tekanan tambahan dan lampu daya akan menyala redup selama satu atau dua menit sampai suhu turun sepersepuluh derajat atau untuk mencocokkan kenaikan suhu yang terlihat dari penambahan berat dan tekanan kasur air melawan termostat.
sumber