From the bottom graph, you can see that I (the integrator part) is rising much too quickly.
This is because of a few issues:
Your PID output value dips under 100% around 16:40, then the integral starts to rise. Whenever the output is at 100%, the integral anti-windup is active and the integral is kept at zero.
Your D value is probably too much. It starts to decrease the output value early and by too much. Try leaving D at zero at first.
Your overshoot is caused entirely by the integral. P dips under zero at 17:50, but the integral already has built up too much.
So what can we learn from this graph, which is an excellent example:
The SS brewtech heating pad is pretty weak, I think you can probably run it at full power until you are 1 degree from the setpoint. This would mean a Kp of 100.
The overshoot caused by just the proportional part will be almost nothing probably. So Td can be zero, 5 or 10 min max.
A normal heating step takes about 2-3 hours. Your integral time constant should be 6-9 hours. It should only slowly increase, so it only reaches significant values if an error is present for 6 hours or more. Ti is the time it takes for the I part to grow as big as the P part for a constant error. It should do its work after the step is over.
Yep these graphs are with Kp at 100% that seems to have worked well for me, i notice it seems to do 1c every 30 minutes on my setup with water filled fermenter 50L at least goiing from 10c to 12c.
Yeah i’ve been playing about with Td in the 1 to 5 range so think just need to home in on that value
Yes this is the bit i’m really struggling with because on the heating side im sure the larger i made the Ti the bigger overshoot i was seeing which was what was confusing but i’ve really only had it set to between 1 - 3 hours. It only seemed to rear its head after the ramp up part of the square steps test on the maintaining steady state(holding at 10c) after the crash cool i didnt see any serious overshoots.
I’m running a test now with Kp 100, Ti 6h and Td 5m and will report back!
It should be equal in both PIDs and at least 6 hours. Increasing Ti should reduce overshoot that is caused the by integral. It should be long enough to not have much effect until your lines are flat.
If you have Ti too low, it will increase too quickly and cause overshoot. It will also decrease quicker, perhaps that is what you have seen. But it really should be soo long that it only does something when the graph is nearly flat.
A ramp, a setpoint constantly moving away, will cause the integral to do some work. Because it has the same effect as a constant external disturbance. So the integral can indeed cause overshoot after a ramp.
So with 6 hours of Ti the integrator as built up to 6.34 by the time its almost at 12 setpoint had to lower Td to 1 minute otherwise it just seemed to hover around 11.94 for ages and didnt move. See below
I’m assuming from looking at the PID that output of 6.34 is going to remain for a period of time until the Integral degrees centigrade an hour is zero currently 0.38, im assuming i’m loosing heat to the environment and the output is compensating for this?
Right makes sense now just watching what happened there on the live PID graph, so in the case of the heating the I part grew to around +6.xx and the P had to grow in the opposite direction -6.xx before they then cancelled each other out and the output became zero.
Jings I just couldnt get my head around how the heating was going to stop, light bulb moment. Hence why if that I element grow too much it takes longer for the P part to cancel out the output driven by the Integrator and hence you end up with overshoot yes?
So i obviously want to tweak the Ti until the integrator doesnt grow very much if at all so that when when P passes zero it quickly cancels out I and you end up with as minimal a overshoot initially as practically possible without limiting system performance.
Sounds like it clicked!
Looks pretty much perfect now.
The only purpose of the integral is this.
Assume you are loosing some heat to environment at all times.
Your proportional part P will bring your temperature to the setpoint, but it might just reach a value where it is 19.8 degrees instead of 20. So with Kp at 100, P is now 20%. If that 20% equals what you are losing to the environment, this is the state it will remain in. It is in equilibrium.
Now with Ti at 6 hours, the integral will also grow to 20% in about 6 hours. So Kp will now be zero, because you are at the setpoint. And the integral will have taken over the 20%. You are still in equilibrium, but at the right value.
Technically, it will take a bit longer than 6 hours, because 0.2 / 6h will be added to I every second at first, but only 0.1 / 6h later.
[Edit: should the cooling be a bit smoother on the cool down from 12 to 10, obviously its stopped around maybe 10.5 and then cooled another twice to get to setpoint, just wondering if that should be a bit more curved rather than the stop start that it is currently?]