Bagaimana cara belajar Kontrol PID?

26

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.

Daniel Grillo
sumber
Saya mencoba untuk mendapatkan proyek dasar yang dapat dipelajari seseorang, saya pikir matematika juga menarik. Orang mengabdikan hidup mereka untuk itu.
Kortuk
Anda ingin mengontrol suhu apa?
J. Polfer
3
Karena Anda tidak dapat menghilangkan panas, Anda perlu memastikan bahwa sistem Anda akan tetap dingin bahkan ketika menerapkan arus kecil atau pid Anda dapat memiliki masalah regulasi. Saya mungkin akan menambahkan kipas atau es ketika Anda melakukan percobaan. Anda ingin naik ketika Anda kenyang dan turun saat Anda pergi. Jika demikian, umpan balik akan mengatur untuk Anda.
Rex Logan
1
Itu ditentukan oleh suhu tangki air yang dibutuhkan. Jika dia ingin 80C maka suhu lingkungan akan cukup, jika dia ingin 25C maka dia akan memiliki masalah. PID ketika disetel dengan benar harus dapat menangani kehilangan temp yang lambat.
Kortuk

Jawaban:

27

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!

J. Polfer
sumber
tidak dapat mengingat ke mana tautan ke PID tanpa gelar PhD. Saya sudah lupa tentang namanya dan tidak bisa mengingat apa yang saya baca dulu. +1 pak.
Kortuk
3
PID tanpa PhD adalah artikel yang bagus! Namun, well, mikrokontroler 8-bit saya tidak suka aritmatika titik apung ..
abdullah kahraman
Luar biasa! PID tanpa PHD sempurna. Saya memiliki PHD, tetapi saya telah melakukan yang terbaik untuk menjauh dari teori kontrol :) Juga, suka pengikut mini line.
@Bistromath Tolong jangan tambahkan "terima kasih" sebagai jawaban. Setelah Anda memiliki reputasi yang cukup , Anda akan dapat memilih pertanyaan dan jawaban yang menurut Anda bermanfaat.
m .lin
10

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.

Kortuk
sumber
Ini adalah saran yang bagus untuk mencoba memahami cara kerja loop PID.
J. Polfer
1

Simulator PID yang bagus tersedia untuk Scilab.

Leon Heller
sumber
1

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.

Saya menemukan kesalahan terbesar adalah di lokasi dan perubahan kecil dalam tekanan air pada sensor. (Saat itu saya kecil, hanya £ 185 tetapi di atas tempat tidur air £ 2000 <10% perubahan tekanan air kecil)

Resistensi termal antara sensor dan waterbed menciptakan kesalahan offset kecil tergantung pada tekanan air terhadap sensor. Dalam skenario tangki air Anda, kesalahan sensor dapat dipengaruhi oleh ukuran tangki dan jarak antara sensor dan pemanas atau sensor dan permukaan terjauh air atau laju aliran air atau gelembung antara sensor dan pemanas.

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.

(Pelajaran yang dipelajari. Jangan mengabaikan sumber gangguan dan efeknya pada kesalahan Sistem Kontrol)

Tony Stewart Sunnyskyguy EE75
sumber