Perhaps I'm missing something about the autotune process.
I've put my system (an espresso machine) near the setpoint temp and executed autotune as described in this thread. The result of that process yields: Kp=2.55, Ki=0.01, Kd=0.0. However, when I actually use these tuning parameters to run my system, bringing water up from ambient to setpoint brew temp, the following results are achieved (that initial blip in the output is just me taking the output from manual to automatic before starting the run):
So if the autotune parameters are used, then there is still a material degree of overshoot. Why is this?
Not knowing the answer to this question, I thought that the system should include a Kd parameter to help anticipate the overshoot before it occurs. Rather than taking the manual guess 'n check approach, I looked at the Autotune description page (http://brettbeauregard.com/blog/2012/01/arduino-pid-autotune-library/
) to read up and try to calculate the Kd parameter that I think I need. Using the Autotune inputs that I used to get the above parameters, I calculated a set of PID parameters that *should* make sense, or at least be reasonable - they are Kp=3.82, Ki=0.04, Kd=105.04 (see below for a snapshot of my calcs)
Ok, great! Let's take this for a spin:
Whoa - that's a lot of overshoot - and a lot of noise around that output line!
Now I've lost a lot of faith in the ability of Autotune to point me at all in the right direction. What's going on here? Why would Autotune give me only PI parameters and not PID parameters? Are my tuning problems associated with the fact that the delta between cold startup temp and brew temp is so large (approx 80C)? Is there a way to force Autotune to perform a test over a much larger temperature span (producing oscillations from, say, 20C to 100C)?
I've done over 65 test runs to manually tune the PID (each at over 5 min test time) and I'm losing my patience with the manual approach as well. Any input to the above questions is appreciated.