Category Archives: Coding

Proportional on Measurement – The Code

In the previous post I spent all my time explaining the benefits of Proportional on Measurement. In this post I’ll explain the code. People seemed to appreciate the step-by-step way I explained things last time, so that’s what I’ll do … Continue reading

Posted in Coding, PID | Comments Off on Proportional on Measurement – The Code

Arduino PID Autotune Library

At long last, I’ve released an Autotune Library to compliment the Arduino PID Library. When I released the current version of the PID Library, I did an insanely extensive series of posts to get people comfortable with what was going … Continue reading

Posted in Coding, PID | Tagged , , | 21 Comments

PID Library moved to GitHub

As per the request by the Arduino Team, I’ve moved the Arduino PID Library to GitHub. I’ve also used this opportunity to: Make the Library Arduino 1.0 compliant Release the Library under a GPLv3 License The google code site will … Continue reading

Posted in Coding, PID | Tagged , | 2 Comments

PID: When Should I Compute the Integral Term?

Recently there was a suggestion posted to the Beginner’s PID Series. The contention was that if you solve things in the Laplace domain, it specifies a different way of executing the Integral Term. Rather than looking at the sum of … Continue reading

Posted in Coding, PID | 2 Comments

Improving the Beginner’s PID: Direction

(This is the last modification in a larger series on writing a solid PID algorithm) The Problem The processes the PID will be connected to fall into two groups: direct acting and reverse acting. All the examples I’ve shown so … Continue reading

Posted in Coding, PID | Tagged , , | 92 Comments

Improving the Beginner’s PID: Initialization

(This is Modification #6 in a larger series on writing a solid PID algorithm) The Problem In the last section we implemented the ability to turn the PID off and on. We turned it off, but now let’s look at … Continue reading

Posted in Coding, PID | Tagged , , | 7 Comments

Improving the Beginner’s PID: On/Off

(This is Modification #5 in a larger series on writing a solid PID algorithm) The Problem As nice as it is to have a PID controller, sometimes you don’t care what it has to say. Let’s say at some point … Continue reading

Posted in Coding, PID | Tagged , , | 10 Comments

Improving the Beginner’s PID: Reset Windup

(This is Modification #4 in a larger series on writing a solid PID algorithm) The Problem Reset windup is a trap that probably claims more beginners than any other. It occurs when the PID thinks it can do something that … Continue reading

Posted in Coding, PID | Tagged , , | 13 Comments

Improving the Beginner’s PID: Tuning Changes

(This is Modification #3 in a larger series on writing a solid PID algorithm) The Problem The ability to change tuning parameters while the system is running is a must for any respectable PID algorithm. The Beginner’s PID acts a … Continue reading

Posted in Coding, PID | Tagged , , | 6 Comments

Improving the Beginner’s PID – Derivative Kick

(This is Modification #2 in a larger series on writing a solid PID algorithm) The Problem This modification is going to tweak the derivative term a bit. The goal is to eliminate a phenomenon known as “Derivative Kick”. The image … Continue reading

Posted in Coding, PID | Tagged , , | 9 Comments