If I may recommend "PID without a PHD"<p><a href="https://www.wescottdesign.com/articles/pid/pidWithoutAPhd.pdf" rel="nofollow">https://www.wescottdesign.com/articles/pid/pidWithoutAPhd.pd...</a>
I worked with a PID controller in college. It's a concept that's stuck with me to this day.<p><a href="https://en.wikipedia.org/wiki/PID_controller" rel="nofollow">https://en.wikipedia.org/wiki/PID_controller</a><p>Proportional–integral–derivative<p>P: proportional, this one is obvious. Water is WAY too cold, turn the knob WAY up<p>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.<p>D: derivative, a bit trickier.<p>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.
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.
There's an interesting crypto protocol called Reflexer[1] that uses a PID loop to alter interest rates and incentives to maintain the stability of a stablecoin/debt coupon called Rai.<p>This allows the asset to remain relatively stable[2] in response to actual market forces. At the time of posting there are over $35m worth of Rai in circulation[3].<p>[1]: <a href="https://reflexer.finance/faq" rel="nofollow">https://reflexer.finance/faq</a><p>[2]: <a href="https://stats.reflexer.finance/" rel="nofollow">https://stats.reflexer.finance/</a><p>[3]: <a href="https://coinmarketcap.com/currencies/rai/" rel="nofollow">https://coinmarketcap.com/currencies/rai/</a>
I've used PID controllers for some things in game development, but mostly for simple stuff like specifying a target velocity.<p>What I always have problems with, is using pid controllers for angular movements. Like turning an object to a desired angle or approaching a desired angular velocity. Are PID controllers suited for this task? For example: You want to turn right and specify a large angular velocity. But now, after a few turns the integral part adds up to a huge value. Then you want to turn back, but now the response is very slow, because of the large integral part. Never got around this problem. How would you approach this?
When you've figured out PIDs then its time to try a Linear Quadratic Regulator:<p><a href="https://twitter.com/The___Missile/status/1378190268520927234" rel="nofollow">https://twitter.com/The___Missile/status/1378190268520927234</a>
I remember using
<a href="https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method" rel="nofollow">https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method</a><p>in college to tune PID controllers in C. Fun times.