ฉันไม่เข้าใจส่วนหนึ่งของตัวควบคุม PID สมมติว่าใช้ pseudocode นี้จาก 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
ปริพันธ์ถูกตั้งค่าเป็นศูนย์ในการเริ่มต้น จากนั้นในวงก็จะรวมข้อผิดพลาดในช่วงเวลา เมื่อฉันทำการเปลี่ยนแปลง (บวก) ใน setpoint ข้อผิดพลาดจะกลายเป็นบวกและครบถ้วนจะ "กิน" ค่าในช่วงเวลา (จากจุดเริ่มต้น) แต่สิ่งที่ฉันไม่เข้าใจคือเมื่อข้อผิดพลาดเสถียรกลับไปที่ศูนย์ส่วนหนึ่งจะยังคงมีค่าบางอย่าง (รวมข้อผิดพลาดในช่วงเวลา) และจะยังคงมีส่วนร่วมกับค่าผลลัพธ์ของตัวควบคุม แต่ไม่ควรเพราะถ้าข้อผิดพลาดเป็นศูนย์ เอาต์พุตของ PID ควรเป็นศูนย์เช่นกันใช่ไหม
ใครช่วยอธิบายหน่อยได้ไหม?