Autotune

You might have heard of "Auto Tuning" as a way to filter a singing voice to hit perfect pitches. Auto-tuning a PID controller is not quite the same thing - instead of improving your mediocre singing voice, it can help you to set the initial tuning parameters for your controller. Every 'system' has different parameters inherent in the physical world. For example, the sous vide controller has to account for how many Watts of power the rice cooker uses, how fast it takes to start up, the specific heat of water, etc.

The autotune function attempts to characterize the performance of your sous vide system by disrupting (essentially 'poking') the controller output to see how it responds. This is sort of like poking your cat to see about how much prodding he will take before you get the response you desire (say, jumping off the table) but not so much that you get a bad response (say, scratching you)

Based on the response to the disruption, the algorithm calculates the Kp, Ki and Kd tuning parameters. Autotune is not perfect and may not find the optimal tuning for your system, but it should get you in the ballpark.

For more detail on how the autotune algorithm works, read Brett's blog post on the topic here: Arduino PID Autotune Library

This guide was first published on Jun 10, 2013. It was last updated on Jun 10, 2013. This page (Autotune) was last updated on Jun 14, 2019.