Closed RubenKelevra closed 1 year ago
You are suffering of what is called pid windup! If your PID gets saturated, meaning that it never reaches the set point, no matter the time it runs, your integral (the I) will keep growing and growing!
In a PID, the output is the sum of all 3 componentes (p+i+d), in the end it calculates the output. Since your integral is huge, your integral alone will max out the output. To avoid this set the windup parameter to the max that you would like to get from the integral!
I was looking at the code and I think there is a bug calculating the min a max windup of the integral! I'll make some tests and then report back
I downgraded to 1.12 and there's the same issue:
It might be related to the sample time setting, which I wasn't using before.
Try to add some value to the windup! This is the maximum number that the integral should supply! Try to set it to something like 1
Ah somehow HACS messed up the downgrade. So the screenshot before was also with 1.1.3.
Using 1.1.2 the issue is gone.
1.1.2 had a issue that was not calculating the integral part ok! Probably that's what's happening now to you! Did you tried to set the windup on 1.1.3?
I did set the windup now on 1.1.3 to 1
.
I'll report back after having it running a bit like that :)
I was looking at the code and I think there is a bug calculating the min a max windup of the integral! I'll make some tests and then report back
I was waiting on the tests on possible code issues :)
1.1.2 had a issue that was not calculating the integral part ok! Probably that's what's happening now to you! Did you tried to set the windup on 1.1.3?
Looks much better, but the "effort" is now too low.
How do I influence the response to be a bit higher (choose higher output if the values are too high) than 1? Increase windup or lower windup?
Please open issue again if problem still occurs in current versions!
Looks like there's some calculation error going on. My setpoint is 10 and the sensor reports below 10 for hours and the output stays at maximum.
The internal state shows an extremely high value for I which seems to be wrong.