Nie rozumiem integralnej części regulatora PID. Załóżmy ten pseudokod z Wikipedii:
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
Na początku całka jest zerowana. A potem w pętli z czasem integruje błąd. Kiedy dokonam (dodatniej) zmiany wartości zadanej, błąd stanie się dodatni, a całka „zje” wartości w czasie (od początku). Ale nie rozumiem, że gdy błąd ustabilizuje się ponownie do zera, integralna część nadal będzie miała pewną wartość (zintegrowane błędy w czasie) i nadal przyczyni się do wartości wyjściowej sterownika, ale nie powinna, ponieważ jeśli błąd wynosi zero, wyjście PID powinno również wynosić zero, prawda?
Czy ktoś może mi to wytłumaczyć?