[HN Gopher] PID Controller: A Simple Control Loop Mechanism ___________________________________________________________________ PID Controller: A Simple Control Loop Mechanism Author : vackosar Score : 38 points Date : 2021-05-28 18:34 UTC (4 hours ago) (HTM) web link (vaclavkosar.com) (TXT) w3m dump (vaclavkosar.com) | oceanghost wrote: | If I may recommend "PID without a PHD" | | https://www.wescottdesign.com/articles/pid/pidWithoutAPhd.pd... | Animats wrote: | Wasn't there an HN article recently which linked to a useful site | on PID controller tuning? That was interesting. PID controllers | are easy to create but hard to tune. | shawnz wrote: | See https://news.ycombinator.com/item?id=27273399 | valbaca wrote: | I worked with a PID controller in college. It's a concept that's | stuck with me to this day. | | https://en.wikipedia.org/wiki/PID_controller | | Proportional-integral-derivative | | P: proportional, this one is obvious. Water is WAY too cold, turn | the knob WAY up | | I: integral, how long does it take for feedback to take effect. | You don't want to turn the knob up and up each second if it takes | 10 seconds for the change to take effect. | | D: derivative, a bit trickier. | | What's really interesting is seeing how humans apply these | concepts, which are so intuitive to things like balance, we don't | even think about them. In face we'll apply them to where they | don't apply or are faulty. You'll see it when people learn to | back up a car for the first time or start winning at blackjack. | chowells wrote: | Your description for Integral is how the Derivative term is | used. | | Proportional: set the control based on a multiple of the | difference between the current and the target. | | Integral: adjust that setting based on cumulative difference | over time. This handles the case where the proportional setting | isn't providing enough of a change. | | Derivative: adjust the setting based on how fast the current | value is approaching the target value. This provides damping | when the error is decreasing rapidly to minimize overshoot and | oscillation around the target. | | What's interesting is that a lot of controllers leave out the | derivative term. Car cruise controls are often only PI, for | instance. This works best when it's ok to approach the target | slowly anyway, so oscillation is minimal. | jbay808 wrote: | > What's interesting is that a lot of controllers leave out | the derivative term | | This is because a PD controller controlling system X is | equivalent to a PI controller for the system (dX/dt). For | example, a PI controller adjusting force to control velocity | is equivalent to a PD controller adjusting force to control | position. | | If your system has a strong "momentum-like" term (larger than | its damping), you need a derivative term to stabilize it. So | a force-position controller needs D, but a room heater does | not, because when you stop heating the room, the temperature | doesn't keep coasting upwards (usually - there can be some | phase lag if your sensor is far from your heater, or if your | room is on fire). | | A force-velocity controller (cruise control) also does not | have "momentum", as you can see from the fact that if you | stop applying force, velocity stops increasing immediately. | thrdbndndn wrote: | Speaking of room heater, I remembered when I was studying | on control theory in university and learned PID, I was | thinking "this thing is so simple and yet so effective, it | gotta be everywhere!". | | It's a little bit disappointing when I later realized that | most of heater/air conditioner basically just use on/off | control with a deadband. I guess the limiting factor here | isn't the controller but the actuator part, but still a | let-down to see them being so primitive. | analog31 wrote: | Interestingly, I've seen mechanical on/off controllers | with a tiny heater on the sensor, turning it into a time | proportioning controller. | jay3ss wrote: | From what I can recall from my optimal controls course | using on/off is actually an optimal controller. | | Edit: It's called a bang-bang controller [0] | | [0]: | https://en.wikipedia.org/wiki/Bang%E2%80%93bang_control | jbay808 wrote: | Yeah, hysteresis control aka "bang bang" control can also | be unreasonably effective. | | It's a natural choice when your furnace can't throttle, | or can but operates most efficiently at one output level | anyway. | | Since the system always pushes as hard as it can, it | automatically reaches the setpoint in the minimum | possible time. It's almost like a PID controller with | infinite gain. But the tradeoff is jitter -- all the | error gets pushed up to the highest frequency bands. As | long as you don't care about that in your system, it's a | great choice and effortless to tune. | | It can also be a bad choice if there's any cost to | changing or toggling the output, like if your furnace | wears out from switching on and off a lot. | shawnz wrote: | On-off or "bang-bang" control actually makes a lot of | sense for home thermostats. For example consider: | | - With a home thermostat you probably want it to reach | the desired temperature as quickly as possible. PID will | never reach the setpoint as fast as bang-bang control | since bang-bang control will always use the maximum | possible power. | | - PID might help you avoid overshooting the desired | temperature but that's not really an important issue for | a home furnace. In fact it might be better if it | overshoots the desired temperature a bit on very cold | days. | | - The air in the home acts like a big thermal battery | that helps negate the need for a sophisticated | controller. | | PID works very good for a wide variety of situations but | it's important to remember it is not always the best tool | for every job. In that way it is kind of like | "quicksort". ___________________________________________________________________ (page generated 2021-05-28 23:00 UTC)