总结上一节
在之前,我们用倒水的例子通俗易懂的解释了什么是PID算法。在这里先回顾一下之前的学习的内容。P表示对误差的比例系数。与目标值差多少,就在下一次修正中加上这个误差与P的乘积,同时会导致系统有一个超调量,即超出我们所需的高度。I表示对误差的积分的比例系数。用于消除静态误差。如果I越大,则系统的响应速度就会变得越缓慢,即达到目标值的速度也会更久了。D表示相邻两个误差之间的比例系数。用于降低系统的超调量。至此我们复习完了之前所学的PID。建议大家可以通过EXCEL进行演示一下PID的计算流程。同时修改参数,加深对PID的印象等哈哈。
什么是连续PID
接下来我们便开始学习新的PID章节了——连续系统的PID。看到这个连续系统的PID,可能大家就开始头疼了。什么是连续系统呢?其实很简单的理解,在之前学习的倒水问题上,我们对水位的要求是固定的值,因此这个系统便叫位置式的PID控制算法。就像打靶目标是不动的一样,我们不断的修正控制,使子弹能够尽可能的接近靶中心。但是到了实际中,目标是可能移动的,那么之前的控制算法就可能无法满足对移动目标的控制要求了。目标值在变化,便可以理解为连续系统的PID。
在这里我要解释一下,为什么位置式的PID与连续系统的PID的控制要求是不一样的。大学的自动控制原理里面有说过,控制有分两种,静态响应以及动态响应。
描述静态响应的有:稳态误差。以连续系统打靶来说,目标也是有可能不变的,这时候就可以计算目标值与实际值之间的误差,称位稳态误差。
而动态响应就有很多种了,有延迟(滞后)时间,上升时百间,峰值时间,调节时间。这时候用打靶的例子可以很好的解释位置PID与连续PID的控制区别了。如果目标不动,而且给了充足的时间进行控制,那我们的控制算法就可以尽可能的接近目标了,但是如果目标在运动的话,如果控制算法有延迟时间,那么击中目标的可能性就几乎是不可能了。
综上所述,其实连续性PID是位置式PID的一个扩展,将目标值从固定值转为随时间而发生变化的。PID这三个参数本质上并没有发生太大的变化,但是要注意在动态响应中是会发生相互影响的。
连续系统的P调节
与上一节类似,我们通过excel来模拟一个P调节吧!这是我们假定在一个2维平面上打靶,手枪的运动方向为上下,并且限定目标是在以正弦的方式运动的,横轴为时间,纵轴为运动的位置。如下图
枪在上下调节自己的位置,根据P调节,可以计算出以下数据:
时间轴 | 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
目标值 | 0 | 0.156434465 | 0.309017 | 0.45399 | 0.587785 | 0.707107 | 0.809017 | 0.891007 |
实际(=上一次实际+kp*当前的error) | 0 | 0 | 0.078217 | 0.193617 | 0.323804 | 0.455795 | 0.581451 | 0.695234 |
error(上一次的目标-上一次的实际) | | 0 | 0.156434 | 0.2308 | 0.260373 | 0.263981 | 0.251312 | 0.227566 |
kp | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 |
可以看到我们的P调节能够很好的跟踪到目标值,两个图像几乎是非常的相似了,同样,那为什么我们还需要I调节以及D调节呢?
接下来就是解决一个更困难的事情了,假如我们的枪手每次在射击之前,会被移动0.1M的距离,那么我们就可以得到以下图标,由图可知,我们的实际值与目标值存在一个稳态的误差。即当我们的射击范围和目标的运动范围不匹配。
I调节
D调节
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)