Saya tidak mengerti bagian integral dari kontroler PID. Mari kita asumsikan kodesemu ini dari Wikipedia:
previous_error = 0
integral = 0
start:
error = setpoint - measured_value
integral = integral + error*dt
derivative = (error - previous_error)/dt
output = Kp*error + Ki*integral + Kd*derivative
previous_error = error
wait(dt)
goto start
Integral diatur ke nol di awal. Dan kemudian dalam loop itu mengintegrasikan kesalahan dari waktu ke waktu. Ketika saya membuat perubahan (positif) dalam setpoint, kesalahan akan menjadi positif dan integral akan "memakan" nilai-nilai dari waktu ke waktu (dari awal). Tapi apa yang saya tidak mengerti adalah, ketika kesalahan menstabilkan kembali ke nol, bagian integral masih akan memiliki beberapa nilai (kesalahan terintegrasi dari waktu ke waktu) dan masih akan berkontribusi pada nilai output pengontrol, tetapi seharusnya tidak, karena jika kesalahan adalah nol, output PID harus nol juga, bukan?
Adakah yang bisa menjelaskannya pada saya?
Bayangkan Anda memasang pengontrol PID di lengan Anda sendiri, sehingga Anda bisa memegang secangkir kopi langsung di depan Anda.
Kedengarannya seperti bagian dari kode yang Anda tempati adalah bahwa sistem entah bagaimana harus mengukur berat kopi, dan salah satu cara untuk melakukannya adalah dengan mengakumulasi kesalahan posisi dari waktu ke waktu. Sebagian besar pengontrol PID memiliki istilah tambahan untuk menentukan batas yang masuk akal pada ukuran elemen integral.
sumber
Berikut adalah video yang memberikan pemahaman "intuitif" tentang loop PID. Ini memiliki penjelasan tentang istilah integral, serta istilah proporsional dan derivatif.
https://www.youtube.com/watch?v=l03SioQ9ySg
Ada video lanjutan yang menjelaskan matematika dan menunjukkan cara menurunkan kode dari rumus umum.
https://www.youtube.com/watch?v=sDd4VOpOnnA
sumber