文章目录
PID介绍
why - 在讲是什么之前,先举个(也许不太恰当的)🌰来说说为什么需要PID
假设我们在烧水,我们现在希望把水控制在60度,一种简单粗暴的解决方案:当我们发现水温超过了60度我们就打开开关(假设目前只有最大功率[打开开关]和0功率[关闭开关]),结果打开开关后功率太大,水温立马超过了60度,我们又立刻关掉开关,这个时候水温很快就掉到60度以下。很显然,这个方案并不能稳定地将水温控制在60度,很容易在60度上下形成波动很大的曲线。
因此,我们需要一个方案,能够稳定控制水温。更直观地就反映在,如何控制某一个时刻的加热功率,让水温能够保持在目标温度上。
how - 如何解决上面场景的问题呢
相信大家很快可以想到,当刚开始烧水的时候,离目标温度比较远,我们就把功率开大一点,当离目标温度越来越近后,我们就逐渐调小功率。所以我们需要建立一个t时刻的烧水功率关于目标温度和当前温度的函数,用来计算t时刻应该有的烧水功率。
what - pid是什么
上述🌰中,t时刻的烧水功率我们设定用u(t)表示,t时刻目标温度和当前温度的差值用e(t)表示,PID的公式可以表示为:
可以看到公式分为三部分,即P、I、D&