Live data from Hacker News

PID Controller Explainer (2022)

ben.bolte.cc

21–30 of 40 posts

Re: PID Controller Explainer (2022)

#21
post #3

In the ‘what is a PID controller’ section, it doesn’t mention time delay. PID controllers solve problems where there is a time delay in the system between inputs and corresponding outputs. If there is no time delay, then a PID controller won’t help. My favorite analogy is a suspension, like a car or mountain bike shock absorber. A PID controller is basically a unitless suspension system. P is like the spring, I is (s…

I have tuned mountain bike suspension (recently) and took undergrad control systems theory class (ages ago). And I am struggling with the PID analogy here. It seems to me that a suspension system has two separate PD controllers which share the same P factor (spring rate), but have the sign reversed in one direction. Then independent control rates on the velocity, as all suspension systems with which I am familiar all…

If our variable here is position (which I'm assuming since the spring rate is proportional), wouldn't the damper settings be a coefficient of the derivative term?

Re: PID Controller Explainer (2022)

#22
post #21

Earlier quoted context omitted.

I have tuned mountain bike suspension (recently) and took undergrad control systems theory class (ages ago). And I am struggling with the PID analogy here. It seems to me that a suspension system has two separate PD controllers which share the same P factor (spring rate), but have the sign reversed in one direction. Then independent control rates on the velocity, as all suspension systems with which I am familiar all…

If our variable here is position (which I'm assuming since the spring rate is proportional), wouldn't the damper settings be a coefficient of the derivative term?

Yes, thank you. Fixed it (in a still-clumsy way).

Re: PID Controller Explainer (2022)

#23
I ended up learning about PID's when playing the game From the Depths, where you have to use PID's alongside thruster mechanisms to keep your craft balanced. It felt like I picked up how they worked better by using a 'hands on' example of them, in this case a game.

Re: PID Controller Explainer (2022)

#24
post #19
post #3

In the ‘what is a PID controller’ section, it doesn’t mention time delay. PID controllers solve problems where there is a time delay in the system between inputs and corresponding outputs. If there is no time delay, then a PID controller won’t help. My favorite analogy is a suspension, like a car or mountain bike shock absorber. A PID controller is basically a unitless suspension system. P is like the spring, I is (s…

Are you saying that a PID controller would not work in a system without time delay? Or in a system without time delay, a PID controller would function identically to a simpler controller (A proportional-only controller perhaps)? My understanding and experience has been that large time delays force less aggressive tuning of the controller. I've been meaning to experiment with model based controllers to try and improve…

I’m saying PID controllers are unnecessary and don’t help solve any problems if there’s no time delay (which can happen in software). The I and D terms are based on time, i.e. integrating/differentiating with respect to time, so talking about time delay is perhaps obvious, but it wasn’t obvious to me the first time I heard about PID controllers, and even in the article we’re commenting on, the problem statement isn’t super clear. I think the time delay is the most important part to understand, the time delay is what causes the problems that PID controllers are designed to solve. And yeah, exactly, a proportional-only controller is fine for vehicle steering, for example, if you have a fictional vehicle that can make instantaneous changes in angle.

Re: PID Controller Explainer (2022)

#25
post #3

In the ‘what is a PID controller’ section, it doesn’t mention time delay. PID controllers solve problems where there is a time delay in the system between inputs and corresponding outputs. If there is no time delay, then a PID controller won’t help. My favorite analogy is a suspension, like a car or mountain bike shock absorber. A PID controller is basically a unitless suspension system. P is like the spring, I is (s…

I have tuned mountain bike suspension (recently) and took undergrad control systems theory class (ages ago). And I am struggling with the PID analogy here. It seems to me that a suspension system has two separate PD controllers which share the same P factor (spring rate), but have the sign reversed in one direction. Then independent control rates on the velocity, as all suspension systems with which I am familiar all…

There are different ways to think about it, and I don’t quite get what you mean about 2 separate PD controllers, but that might also be a valid analogy. This is partly why I qualified my comments about the I and D terms with “sort-of” ;). But I’m also trying to boil it down to the simplest analogy possible, and I might sacrifice a little precision along the way. The mechanism and forces of PIDs do not exactly correspond to physical suspensions, but if you stand back and look at it, they are surprisingly similar at a conceptual level. The most important part is that the problems are the same, it’s a system that’s trying to smooth out the bumps and prevent overshoot. PID controllers are more abstract than suspensions, and they can be used in ways that feel different, but the basic problem is more or less one of absorbing shocks smoothly. Like your oven or your thermostat, they’re trying to keep the temperature you set and minimize overshoot and oscillation, even though they only have a binary on/off output mechanism.

Here’s how I think about it: the P term is the spring. In a physical spring the force is quadratic in position or “error”, while a PID controller’s P term is linear. No reason you can’t make a P controller quadratic or anything you want, but the analogy between P and the spring seems clear enough to me.

Now compression damping is trying to slow down or resist fast compression and prevent overshooting, prevent having too much spring force from accumulating on the rebound. Sometimes there are even separate high and low speed compression damping mechanisms (I’m sure you know that). In a PID controller, the D term is also designed to resist proportional changes from happening too fast, it resists change in proportion to how fast things are changing.

And back to physical suspension again, rebound damping is designed to prevent rebound force from accumulating. You want to return to neutral position as fast as possible without a rebound force. The idea is to balance 2 different goals: 1- don’t buck you off the bike, and 2- don’t let the suspension pack down and stop working. The PID controller’s I term does this, in a way, it prevents the pack-down by monitoring the average position and if it stays too far away from neutral for too long, it pushes things back to neutral.

If you’re paying attention, you might notice I swapped I & D in my analogy here compared to above. It can (sort-of) be argued either way, which maybe goes to your point that the analogy ain’t perfect, and you could maybe look at it as 2 PD terms. I think it’s best not to try to fix the analogy, but just to see it as a very blunt instrument for understanding - a suspension and a thermostat and a robot steering a car all have a common type of problem to understand and at least conceptually, a solution that looks similar from a distance.

Re: PID Controller Explainer (2022)

#26
PID controllers are one way to control systems described by differential equations.

Given a certain desired value of the solution they can be used to force the dynamics to converge towards that value.

For certain types mostly linear equations they are the optimal way to achieve this.

I have no idea why, but the topic is almost never presented that way. Instead people talk about valves and pistons and whatsoever, but in the end it’s just that:

You have an ODE and some desired value for the solution ; you have some control over the inhomogeneous part. PID control is just a tried and well understood way of excepting this control.

Re: PID Controller Explainer (2022)

#27
post #6
post #3

In the ‘what is a PID controller’ section, it doesn’t mention time delay. PID controllers solve problems where there is a time delay in the system between inputs and corresponding outputs. If there is no time delay, then a PID controller won’t help. My favorite analogy is a suspension, like a car or mountain bike shock absorber. A PID controller is basically a unitless suspension system. P is like the spring, I is (s…

Why won't it help if there is no delay? What system truly has no time delay and no inertia? PID systems are basically a differential equation and optimal coefficients are just solutions to that system which maximize responsiveness and minimize ringing, so I would think the effect of decreasing time delay just adjusts the Ki and Kd to account for the smaller Tc value.

All physical systems have time delay, but software doesn’t necessarily. I bumped into PID controllers writing software for video games where I had the option to not have a time delay in the system, if I wanted to do something less physically realistic. In a game, you can (and I often did) use a proportional-only controller for certain things. Then I got surprised when that didn’t work, after a time delay was introduced. I mainly called out the time delay because the delay is what causes the problem that needs solving, so it seems reasonable and important to state. But I wouldn’t argue with anyone who said the delay part seems obvious. ;)

Re: PID Controller Explainer (2022)

#28
post #25

Earlier quoted context omitted.

I have tuned mountain bike suspension (recently) and took undergrad control systems theory class (ages ago). And I am struggling with the PID analogy here. It seems to me that a suspension system has two separate PD controllers which share the same P factor (spring rate), but have the sign reversed in one direction. Then independent control rates on the velocity, as all suspension systems with which I am familiar all…

There are different ways to think about it, and I don’t quite get what you mean about 2 separate PD controllers, but that might also be a valid analogy. This is partly why I qualified my comments about the I and D terms with “sort-of” ;). But I’m also trying to boil it down to the simplest analogy possible, and I might sacrifice a little precision along the way. The mechanism and forces of PIDs do not exactly corresp…

@anthomtb, Oh I get it now! You’re right, and your analogy is better than mine from a physical perspective. A bike suspension really is just a PD controller with independently adjustable D coefficients, depending on sign.

Maybe it’s valuable to think of suspension pack-down and controller drift as the same problem, or maybe not. They have similarities, but they’re not the same problem. My thinking of the I term as preventing pack-down is perhaps the main justification for saying a PID controller is like a suspension. But, on a real bike, packdown is being solved by the spring (P) and tuning the rebound (D), and drift isn’t something that happens.

Re: PID Controller Explainer (2022)

#29
If you study linear control theory and you can characterize the dynamics of the system you're trying to control, you can just solve the differential equations analytically with a Laplace transform* and write down the proper values of the coefficients instead of searching for them.

*or Z transform if the system is discrete

Furthermore, the equations will tell you whether you even need the "I" and "D" parts of PID.

Re: PID Controller Explainer (2022)

#30
post #27
post #6

Earlier quoted context omitted.

Why won't it help if there is no delay? What system truly has no time delay and no inertia? PID systems are basically a differential equation and optimal coefficients are just solutions to that system which maximize responsiveness and minimize ringing, so I would think the effect of decreasing time delay just adjusts the Ki and Kd to account for the smaller Tc value.

All physical systems have time delay, but software doesn’t necessarily. I bumped into PID controllers writing software for video games where I had the option to not have a time delay in the system, if I wanted to do something less physically realistic. In a game, you can (and I often did) use a proportional-only controller for certain things. Then I got surprised when that didn’t work, after a time delay was introduc…

> but software doesn’t necessarily.

Is this true? I mean the delay may be inconsiderable but there is a delay, right?

Post reply on HN