Showing results for 
Search instead for 
Did you mean: 

PID autotuning


I find it difficult to understand the PID auto-tuning functionality. Can anyone send some tutorial on how to proceed with the auto-tuning process 

0 Kudos
Message 1 of 3

This link might be helpful for you:


There is additionally an example that can be found by clicking Help >> Find Examples... then searching (Search tab on left) for "pid" - choose one of the autotuning examples and read the comments. The "online" versions might be more what you're looking for?


Message 2 of 3

I found the PID tuning to have a bit of a learning curve. First off, I do recommend the online help to explain the various parameters. If you don't understand them then you are unlikely to achieve optimum results.


Methods and success will vary greatly depending upon the characteristics of the system you are attempting to control. I will explain what worked for me, but without knowing more about your particular system I cannot guarantee results.


I have used it with excellent results to control pressure and humidity in a vacuum chamber to levels close to the measurement error, but this took time. Pressure control has a rapid linear response with essentially no hysteresis. Humidity control is nonlinear and has a lag and hysteresis of many minutes.


In my case I settled on the following procedure. First I achieved a steady state for the system (constant pressure or humidity). This could be far from my desired setpoint (the closer the better however). I used manual control and set a constant output value. Eventually the system would stabilize at some relatively constant process variable value.


I then used the Step Closed Loop technique. I chose an amplitude that generated a small but measurable change in the system state. After that I just waited for it to complete. Once I had a starting point from the autotuned parameters I could then vary alpha, beta, and gamma individually depending upon what I wanted to improve. Since humidity control was problematic, I also carried out experiments varying *one parameter at a time only* to fine tune the results for optimal results.


I should point out that I made sure to have steady loop timing, so that the algorithm is called at regular intervals each iteration.


My final message is that this all will take time. My early efforts to cut corners and skip reading documentation ended up costing me time in the end. Slow and steady. . . Good luck!

Message 3 of 3