Category Archives: PID

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

Reflow Oven Shield [PID Showcase]

The reason I created the PID library was to make it easier for people to integrate PID control into their projects. Surprisingly, it’s actually happening! I’m starting to see a lot of really cool implementations out there. As a result, … Continue reading

Posted in PID, Showcase | Tagged , | 1 Comment

PID Q&A Group

Over the past week I’ve had several great conversations regarding the new PID Library, and regarding PID in general. Of course those are all in my email, so you can’t see them. This highlights another problem with the previous version … Continue reading

Posted in PID | Tagged , | Comments Off on PID Q&A Group

How Fast is the Arduino PID Library?

A couple people have asked me about speed since v1 was released. Since I had no idea, I decided I should do a little benchmarking. (Tests were done on a Duemilanove with the ATMega168.) The Test The code above is … Continue reading

Posted in PID | Tagged , | 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