Tolong jelaskan dalam istilah awam bagaimana PID menyumbang inersia dalam kontrol suhu

9

Saya sedang membangun oven reflow yang dikendalikan oleh hobi saya sendiri. Saya menggunakan relay (mekanis) untuk menghidupkan atau mematikan pemanas (yaitu tabung kuarsa). Saya perhatikan pemanasan memudar beberapa detik sebelum suhu mulai naik.

Untuk saat ini saya mengelola profil suhu secara manual dengan bantuan Arduino, yang hanya mematikan pemanas ketika suhu yang ditetapkan tercapai. Misalnya ketika saya mengatur suhu ke, katakanlah 120 ° Celcius dan pemanas berhenti, suhu masih naik 10-20 derajat sehingga ada sedikit overshoot kemudian beberapa dering, yang menurun perlahan.

Saya telah membaca dan menyaksikan banyak contoh yang memanfaatkan PID untuk kontrol suhu yang lebih baik. Tanpa itu saya hanya akan menghentikan pemanas, seperti 10-20 derajat di bawah nilai yang ditetapkan dan menyalakannya dalam waktu singkat setelah itu sampai suhu stabil di sekitar nilai yang ditetapkan. Saya hanya tahu delta bervariasi dengan suhu sehingga mungkin tidak semudah itu - saya tahu tentang sifat eksponensial kenaikan suhu dengan nilai yang ditetapkan tetap.

Jadi siapa pun dapat menjelaskan dalam istilah awam bagaimana PID menyumbang inersia, misalnya apa peran bagian integral dan apa yang dimainkan bagian turunan dalam istilah sederhana, serta bagaimana / jika saya bisa mengetahui secara intuitif estimasi derivatif dan integral kuantitas tanpa menggunakan perhitungan yang rumit.

TonyM
sumber
Tantangannya adalah penundaan, seperti yang Anda lihat. Jadi kunci untuk mengendalikan adalah dalam memeriksa slewrate dan turunan dari slewrate
analogsystemsrf
@analogsystemsrf Saya pikir saya sudah benar-benar mendapatkannya. Seperti yang dapat Anda baca, saya hanya mengalami sedikit kesulitan untuk mencoba membuat hubungan antara ini (teori) dan itu (praktik). Singkatnya: apa bagian yang mengkompensasi keterlambatan dan bagaimana ?
1
Keterlambatan mengerikan untuk dihadapi. Mungkin disebabkan oleh sensor yang terlalu jauh dari pemanas. Atau pemanas yang terlalu besar, dengan terlalu banyak massa termal. Faktor penskalaan PID dapat sangat berubah ketika pengaturan fisik diubah. Mengurangi penundaan membantu mencapai faktor kontrol PID menghasilkan kesalahan yang lebih kecil.
glen_geek
Anda tidak dapat benar-benar menerapkan PID jika satu-satunya kontrol yang Anda miliki adalah menghidupkan dan mematikan pemanas dengan relay.
mkeith
2
Saya menggunakan pengontrol suhu industri untuk bekerja. Yang dengan output relai umumnya membatasi waktu siklus ke minimum 5 detik. Yang dengan output DC solid-state untuk menggerakkan SSR tidak memiliki batasan ini. Jika Anda berpikir tentang aplikasi dengan konstanta waktu yang lama - tungku gelas atau satu ton cokelat, misalnya - Anda dapat membayangkan bahwa siklus tugas 30-an mungkin cukup untuk mengendalikannya dengan baik.
Transistor

Jawaban:

12

Saya harus + komentar Glen. Dia secara konsisten memiliki otaknya di tempat yang tepat, IMHO. Tidak ada yang lebih sulit untuk ditangani dalam PID selain aΔtmenunda. Saya telah berurusan dengan kontrol suhu lampu-dipanaskan untuk IC wafer FAB, dalam beberapa cara atau lainnya, selama bertahun-tahun. Mari saya mulai dengan ikhtisar PID dan berbicara sedikit tentang di mana itu TIDAK akan berguna seperti dalam kasus lain. Saya juga akan menyarankan salah satu dari banyak domain lain dari metode kontrol yang dapat Anda jelajahi, tetapi dengan prioritas langkah-langkah yang harus Anda ambil terlebih dahulu sebelum pergi ke tempat lain.

Ekspresi kanonik untuk kontrol PID adalah:

kamut=K[et+1Tsaya0teτdτ+Tddetdt]

Dengan parameter pengontrol menjadi keuntungan proporsional K, waktu yang tidak terpisahkan Tsaya, dan waktu turunan Td.

  1. Kontrol proporsional : Tindakan kontrol di sini hanya sebanding dengan kesalahan kontrol. (Persamaan di atas berkurang menjadiut=Ket+ubdimana ub adalah bias pengontrol atau pengaturan ulang.) Analisis model proses statis menunjukkan bahwa proses yang dihasilkan memiliki residu offset atau bias pengontrol pada kondisi tunak (meskipun sistem dapat disesuaikan secara manual sehingga mungkin ada kesalahan kontrol nol). pada satu dan hanya satu nilai setpoint dengan pilihan yang tepat dari bias pengontrol.) Meningkatkan gain juga memberikan gain ke noise pengukuran (buruk), sehingga gain loop tidak boleh terlalu tinggi dan tidak ada gain loop "terbaik" karena itu tergantung pada tujuan.
  2. Kontrol proporsional + Integral : Fungsi utama aksi integral adalah untuk memastikan bahwa output proses setuju dengan setpoint dalam kondisi mapan. Dengan tindakan integral, kesalahan positif kecil akan selalu menghasilkan sinyal kontrol yang meningkat dan kesalahan negatif kecil akan selalu menghasilkan sinyal kontrol yang menurun. Ini benar, sekecil apa pun kesalahannya.
  3. Kontrol PID : Menambahkan kontrol derivatif meningkatkan stabilitas loop tertutup . (Ini akan memakan waktu sebelum perubahan kontrol diperhatikan dalam output proses. Jadi sistem kontrol akan terlambat, mengoreksi kesalahan itu. Hasil dari istilah derivatif adalah bahwa itu adalah semacam prediksi yang dibuat dengan mengekstrapolasi kesalahan menggunakan tangen ke kurva kesalahan, digunakan untuk mengantisipasi hasil yang tertunda.

Deskripsi di atas, ditambahkan ke deskripsi Anda sendiri tentang masalah keterlambatan Anda, akan menyarankan bahwa istilah turunan akan membantu Anda. Tapi seperti biasa, tidak ada yang semudah itu.

Kontrol proporsional-integral sudah cukup ketika dinamika proses berada di urutan pertama. Sangat mudah untuk menemukan ini dengan mengukur langkah-respons. (Jika kurva Nyquist hanya terletak pada kuadran ke-1 dan ke-4.) Ini juga dapat berlaku dalam kasus-kasus di mana prosesnya tidak membutuhkan kontrol yang ketat, bahkan jika bukan dari urutan pertama.

Kontrol PID cukup untuk proses di mana dinamika dominan berada di urutan ke-2. Kontrol suhu sering terjadi di sini. Jadi, sekali lagi, ini mungkin berargumen untuk menambahkan kontrol derivatif dalam situasi Anda.

Namun. Semua hal di atas hanya harus dipertimbangkan setelah Anda melakukan segala hal yang mungkin untuk meningkatkan beberapa hal:

  • Gunakan sensor suhu respons tercepat yang dapat Anda terapkan secara wajar (massa kecil, pyrometri, dll) dan terapkan dalam situasi dengan penundaan respons sesedikit mungkin untuk proses yang ingin Anda kontrol (dekat, tidak jauh.)
  • Kurangi variasi penundaan dalam melakukan pengukuran dan memberlakukan kontrol proses.

Saya ingin menguraikan sedikit tentang poin terakhir ini. Bayangkan proses kontrol seperti Anda berdiri di suatu tempat, mencoba menyodok tiang bambu yang tipis, sangat fleksibel dan goyah ke dalam lubang rumah burung yang jauh yang duduk di pohon di atas dan jauh dari Anda. Jika Anda dekat dan batang bambu pendek, mudah. Anda dapat melakukannya setiap saat dengan cepat dan mudah. Tetapi jika tiang bambu panjang dan rumah burung jauh dari Anda, itu sangat, sangat sulit dilakukan. Tiang terus berkeliaran dan itu membuat prediksi dan kontrol Anda sangat sulit.

(Jika belum jelas, panjang batang bambu seperti waktu tunda loop.)

Jadi penundaan mungkin MIMPI BURUK TERBURUK dari sistem kontrol. Lebih banyak penundaan sangat buruk. Jadi, sangat penting bagi Anda untuk melakukan segala daya untuk mengurangi keterlambatan ini. Tapi ada satu hal lagi yang penting.

Sekarang bayangkan situasi yang sama. Tapi sekarang tiang bambu juga terus berubah panjang. Terkadang lebih pendek, kadang lebih lama, dan bervariasi terus menerus tanpa prediksi dari pihak Anda. Anda sekarang harus terus mengubah sikap Anda dan Anda tidak pernah tahu kapan penundaan akan berubah. Ini adalah situasi yang ada jika PERANGKAT LUNAK Anda tidak mengontrol dengan sangat hati-hati dan dengan tangan besi, penundaan waktu dalam memproses nilai ADC Anda dan menghasilkan output kontrol DAC.

Jadi, sementara penundaan cukup buruk untuk sistem kontrol PID. Penundaan variabel bahkan lebih buruk. Jadi Anda harus memperhatikan desain perangkat lunak Anda - perhatian yang sangat ketat - sehingga Anda tidak memiliki pernyataan IF dan kode perhitungan bersyarat, atau penggunaan timer yang ceroboh, dll., Yang semuanya dapat menyebabkan variasi signifikan dalam keterlambatan antara sampel dan kontrol output.

Anda perlu memasukkan hal-hal di atas ke dalam manajemen sebelum MAKA mengkhawatirkan apakah Anda perlu kontrol turunan atau tidak. Hal pertama yang pertama. Bersihkan tindakanmu. Kemudian periksa sistem untuk menentukan apa yang masih harus dilakukan (menggunakan PI vs PID, misalnya.)


Saya sedang mengerjakan sistem kontrol PID menggunakan sistem pirometer yang sangat akurat (juga sangat mahal bagi pelanggan.) Saya menerima telepon dari seorang peneliti Kanada yang bekerja dengan pirometer kami, tetapi menggunakan pengontrol PID terpisah dari perusahaan komersial yang sangat besar (terbesar di dunia melakukan hal-hal ini.) Peneliti berjuang dengan riak di sisi boule gallium arsenide yang dia tarik dari lelehan. Dan ingin bantuan saya dalam mencari tahu variabel kontrol PID yang tepat. (Dalam boule-pulling, kamu menginginkan diameter yang sangat seragam.)

Kontroler yang ia gunakan cukup baik dengan ukuran standar apa pun. Tapi itu menambahkan penundaan --- dan penundaan itu bervariasi juga, karena perangkat lunak di dalamnya tidak secara ketat mengontrol penundaan yang diperkenalkan ke keseluruhan lingkaran kontrol.

Jadi, hal pertama yang saya katakan kepadanya adalah bahwa saya akan menambahkan kontrol PID ke perangkat lunak dalam pirometer kami dan bahwa ia harus PULL controller eksternal dari sistem yang ia gunakan. Saya menambahkan perangkat lunak itu dalam waktu kurang dari seminggu dan mengirimnya sistem piro yang dimodifikasi. Saya tidak melakukan apa pun dengan perangkat lunak PID. Namun, saya menjaga variabilitas saya dalam ADC ke DAC hingga kurang dari beberapa mikrodetik dan memperketat keterlambatan keseluruhan juga menjadi sekitar 100 mikrodetik. Saya mengirim itu kepadanya.

Saya menerima telepon Senin minggu depan. Jalan-jalan itu hampir terlepas dengan sempurna, tanpa riak sama sekali.

Itu sederhana seperti hanya mengurangi penundaan dan juga mengurangi variabilitas dalam penundaan itu. Tidak ada yang istimewa tentang kontrol PID, sama sekali. Itu adalah implementasi vanila sederhana yang akan menghasilkan siapa pun pertama kali belajar tentang vanila.

Ini menggambarkan pentingnya memeras keterlambatan dan keterlambatan variabilitas. Tentu saja, kontrol derivatif dapat memberikan semacam prediksi "garis potong / garis singgung" prediksi. Tapi tidak ada yang menggantikan penundaan dan menjaga variabilitas ke minimum absolut, juga.

Terus pikirkan tentang tiang bambu dan masalah lubang rumah burung.


Kesimpulan?

Kontrol sistem dengan waktu tunda yang dominan sangat sulit. Saya sudah menyarankan beberapa alasan Anda mungkinpercaya bahwa istilah turunan akan membantu penundaan waktu. Tetapi ada kesepakatan umum bahwa tindakan turunan tidak banyak membantu untuk proses yang memiliki penundaan waktu dominan. Inilah sebabnya saya segera menyarankan untuk membantu peneliti itu dengan menghilangkan semua penundaan yang dapat saya hapus dengan mudah (seperti kotak PID eksternal, misalnya.) Saya tidak membayangkan bahwa implementasi saya lebih baik daripada produk komersial. Saya tahu implementasi saya tidak akan hampir sama baiknya, pada kenyataannya. Cripes, saya harus menulisnya dari awal, menguji dan menginstalnya, dan mengirimkan unit dengan perangkat lunak baru yang belum pernah ada sebelumnya di dalamnya, dan melakukan semua itu dalam waktu seminggu. Tetapi saya juga tahu bahwa penundaan itu MEMBUNUH semua peluang yang dimiliki peneliti ini untuk mendapatkan hasil yang diinginkannya. Jadi saya segera tahu bahwa pendekatan terbaik adalah dengan menekan penundaan dan tidak menciptakan beberapa kode PID ajaib yang "cemerlang" yang diterapkan yang hanya bisa diikuti oleh seorang jenius. Ini semua tentang penundaan dan bagaimana penundaan itu berbeda, pertama dan terutama. Sisanya adalah prioritas yang jauh lebih rendah.

Ada beberapa hal yang disebut "kompensator waktu mati." Tetapi dalam analisis akhir, Anda perlu melakukan apa saja untuk menarik penundaan dan menarik variabilitas dalam penundaan itu. Dan kemudian, setelah Anda melakukan semua yang Anda bisa di sana, jika masih ada masalah, kemungkinan Anda membutuhkan kontrol yang lebih canggih daripada PID memungkinkan. Di sini, saya akan meraih transformasi fourier (dan menggunakan transformasi terbalik untuk menganalisis langkah-respons dan mengembangkan deskripsi respons sistem), mungkin. Anda dapat melakukan banyak hal dengan ini yang tidak dapat disentuh dengan PID. Nyaris hasil yang menakjubkan, pada kenyataannya, jika Anda dapat memodelkan fungsi respons dengan cukup baik.

Tetapi dalam kasus Anda saya akan fokus pada memeras penundaan dan variabilitas mereka. Saya pikir Anda harus, jika mungkin, mempertimbangkan untuk menghindari penggunaan kontrol lampu on / off sederhana. Alangkah baiknya jika Anda bisa mengontrol intensitas lampu. Tapi saya tidak tahu apakah Anda bisa mempertimbangkan itu.

jonk
sumber
1
Terima kasih banyak, Jonk, itu penjelasan yang cukup mendalam (untuk saya). Keterlambatan yang saya bicarakan dengan baik, saya khawatir saya tidak bisa menguranginya karena saya percaya itu adalah bagaimana oven dibuat - saya mengubah oven tujuan umum menjadi oven reflow seperti yang biasa ditemukan di internet. Namun meskipun menggunakan tabung kuarsa, kenaikan suhu setengah dari laju yang diperlukan (tidak lebih dari 1 ° C per detik, bukan 2-3). Adapun sensor saya menggunakan sepasang termokopel K dan saya memeriksanya memiliki sedikit atau tidak ada kelembaman. Satu hal yang saya perhatikan adalah penurunan suhu jika saya memanaskan oven lebih dulu, yaitu sekitar 50 ° C.
Sudahkah Anda mencoba Pengontrol Prediktor Smith untuk mengurangi penundaan?
Chu
@ Chu Belum, saya hanya mempelajarinya di sini :-D. Apalagi oven saya sebagian dibongkar saat ini dan saya tidak punya tangan di atasnya.
Saya telah menerima jawaban Anda terlebih dahulu untuk seberapa rumit dan detailnya. Juga karena saya terbuka untuk menggunakan apa pun yang cocok, bahkan jika itu tersirat bukan PID. Jawaban dan Transistor Anda memberi saya cukup petunjuk tentang apa yang harus dilakukan selanjutnya. Hanya ada satu [jawaban yang diterima]. Terima kasih banyak untuk semuanya .
4

Ini tidak langsung menjawab pertanyaan Anda tetapi memberi Anda beberapa alat untuk bermain untuk meningkatkan pemahaman Anda.

Ada simulator Excel sederhana di Engineers-Excel yang mungkin bermanfaat bagi Anda.

masukkan deskripsi gambar di sini

Gambar 1. Model simulator PID.

Bagian yang sulit adalah memodelkan proses Anda - oven - untuk menetapkan penguatan proses K , Ts - konstanta waktu respons dan Ls - jeda respons. Saya menyarankan:

  • Hidupkan oven Anda di, katakanlah daya 40% (P1) dan lihat pada suhu berapa stablises. Ulangi pada, katakanlah, daya 70% (P2) dan catat suhu. Gain proses diberikan (untuk rentang pengaturan ini) sebagai
    K=T2T1P2P1
    dan jawabannya akan memiliki satuan derajat /% yang agak aneh.
  • Plot respons suhu seiring waktu saat Anda beralih di antara keduanya P1 dan P2. LS, waktu jeda, adalah waktu antara perpindahan dan ketika suhu mulai naik.
  • TS adalah waktu (dari awal respons) hingga suhu mencapai 63% (satu kali konstan) dari arah T1 untuk T2.

Setelah itu Anda bisa bermain dengan parameter PID untuk melihat apakah Anda bisa mendapatkan respons yang Anda inginkan.

Mengambil beberapa tebakan liar:

  • P1=40% dan T1=92°C.
  • P1=70% dan T2=176°C.
  • K=176927040=2.8°C/%.
  • Ls=3s.
  • Dibutuhkan 50 detik untuk mencapai 63% dari 92 ° C hingga 176 ° C TS=50s.

masukkan deskripsi gambar di sini

Gambar 2. Output simulator PID Excel.

Anda biasanya lolos dengan istilah nol D jika proses Anda tidak mungkin mendapatkan gangguan seperti perubahan tiba-tiba pada setpoint atau perubahan mendadak pada beban termal. Itu menyederhanakan hal-hal ke pengaturan kontrol PI.

Untuk pemanasan, Anda dapat memperoleh daya proporsional dengan menghidupkan dan mematikan daya dengan cukup cepat relatif terhadap waktu respons termal.masukkan deskripsi gambar di sini

Gambar 3. Siklus tugas variabel untuk kontrol AC pemanas.

Transistor
sumber
Terima kasih atas informasi teknis yang dapat dimengerti. Hanya catatan tambahan: karena saya menggunakan relay, yang saya temukan lebih murah daripada SSR (sumber: Digi-Key), saya hanya bisa menghidupkan atau mematikan pemanas sepenuhnya, tidak mungkin menyesuaikan antara 0% dan 100%. Saya juga tidak bisa menggunakan zero-crossing untuk mematikan pemanas tapi saya rasa itu yang paling tidak penting. Bagaimanapun terima kasih banyak atas wawasan Anda.
2
Gambar 3 saya menunjukkan kontrol on-off dan itu yang akan Anda lakukan dan tidak apa-apa. Anda akan rata - rata di mana saja Anda inginkan antara 0 dan 100%. Secara efektif ini adalah modulasi lebar-pulsa lambat (PWM) dengan AC. Anda akan berdagang menjaga waktu siklus cukup singkat dengan umur estafet. Zero-crossing bagus karena mengurangi kebisingan listrik. Jika itu bukan masalah maka itu bukan masalah!
Transistor
2

Dalam PID ada 3 bagian: Proporsional, Integral dan Derivatif.

Proporsional adalah pengontrol yang paling sederhana. Ini memperkuat kesalahan antara sinyal yang diinginkan dan aktual. Misalnya jika suhu yang diinginkan adalah 100C, sebenarnya adalah 80C, maka output = 20 * Kp. Berapa banyak output yang diberikan disetel oleh Kp.

Jika Anda menyetel Kp terlalu rendah, tidak ada cukup pemanasan, dan itu mungkin tidak pernah mencapai suhu yang diinginkan.

Jika Anda menyetel Kp terlalu tinggi, mungkin akan naik terlalu cepat. Inersia dapat menyebabkan overshoot dan dering. Itu karena ada penundaan antara memberikan daya output tertentu dan mengukur efeknya.

Bagian integral diperlukan jika Anda ingin offset statis rendah. Perhatikan bahwa untuk pengontrol P untuk memberikan output, ia harus memiliki kesalahan saat ini untuk menghasilkan nilai output apa pun. Jika Anda ingin kesalahan menjadi sangat dekat dengan nol, Anda memerlukan bagian-I untuk mengambil alih dari P. Ini mungkin membutuhkan beberapa waktu.

Bagian turunannya mungkin paling menarik untuk masalah inersia Anda. Turunannya terlihat pada tingkat perubahan kesalahan. Jika ada tingkat perubahan besar dalam kesalahan, itu berarti ada inersia yang tinggi. Menggunakan faktor tuned Kd Anda dapat memastikan bahwa output akan melambat kembali dalam waktu. Ini agar inersia melambat sebelum mencapai nilai output akhir.

Ini memungkinkan Anda untuk menggunakan faktor P tinggi (er) untuk respons agresif yang memadai, saat menggunakan D untuk mencegah overshoot. Bagian I yang digunakan untuk membuat kesalahan statis pada akhirnya akan menjadi 0.

Hans
sumber
Sebenarnya, dalam jangka panjang itu adalah istilah P yang turun ke nol, karena istilah I terintegrasi ke titik setel, meninggalkan perbedaan output pada nol, dan P kali nol adalah nol.
WhatRoughBeast