快捷搜索:  汽车  科技

pid是一日一次还是一天两次(PID的本质纯干货分析)

pid是一日一次还是一天两次(PID的本质纯干货分析)从PID的公式也可以看出,e是目标量和输出量的偏差,当误差e趋近0时,输出u将收敛到一个固定值。最终PID实现的效果就是将目标量和输出量两者的偏差归零,当目标量变化时,输出量也会跟随着目标量变化,也就是说输出量通过PID来跟随目标量。下面我从两个例子来说明PID分别作为控制器使用和信号跟随器的使用。这里水箱的液位我们假设没有延迟,设计一个PID控制器来控制液位,误差e为目标液位和输出量为液位之差。u为执行器输出,这里是阀门开度,大于0为注水,小于0为放水。具体代码不在此赘述。

入住头条有1年多了,第一次发文。我是一只在无人机领域的嵌入式工程狮,看了头条上很多的对PID解说的专业文章,几乎都是从控制上切入的,这里我从不同的角度来分析PID。

先说结论:PID的本质是跟随器,用于跟踪给定信号。

很多朋友在这里又会发问了,PID不是控制器吗?在某权威百科上面的解释就是:比例(P)积分(I)微分(D)控制,简称PID控制。这是没错的,PID算法从100年前开始出现,就开始广泛的用于工业控制,PID的起源就是用于做控制器。看起来PID和控制是分不开的,实则不然。


pid是一日一次还是一天两次(PID的本质纯干货分析)(1)

从PID的公式也可以看出,e是目标量和输出量的偏差,当误差e趋近0时,输出u将收敛到一个固定值。最终PID实现的效果就是将目标量和输出量两者的偏差归零,当目标量变化时,输出量也会跟随着目标量变化,也就是说输出量通过PID来跟随目标量

下面我从两个例子来说明PID分别作为控制器使用和信号跟随器的使用。

PID作为控制器——水箱液位控制

这里水箱的液位我们假设没有延迟,设计一个PID控制器来控制液位,误差e为目标液位和输出量为液位之差。u为执行器输出,这里是阀门开度,大于0为注水,小于0为放水。具体代码不在此赘述。


pid是一日一次还是一天两次(PID的本质纯干货分析)(2)


刚开始的时候,把液位设置到5米,2秒后实际液位基本到达5米。在50s的时候,把目标液位设置为2米,液位下降,2秒后稳定到2米。说明PID完成了它原始的使命——作为控制器使用。

PID作为信号跟随器——倾角传感器的设计

这里倾角传感器的设计就不涉及到任何控制了。我们的目标是测量角度,硬件选用加速度计和陀螺仪构成。为了方便,我们只测量单轴角度,这里用2轴微电子加速度计和1轴微电子陀螺仪。

陀螺仪的输出量是角速度,角速度积分就是角度,这不是用陀螺仪就能解决了吗?为什么还要加速度计呢?是因为陀螺仪输出的角速度包含有各种噪声,积分得到的角度会随着时间误差越来越大。具体的可以看下面的图像分析。


pid是一日一次还是一天两次(PID的本质纯干货分析)(3)

上面左图是以1度/秒的角速度运动10秒,右图在角速度1度/秒的基础上加了±0.5度/秒的随机噪声,可以发现在10秒后角度值为106度(图可能看不清),这是因为角度值的获取是通过角速度积分得到的,存在累计误差。而加速度计具备良好的稳定性,测量的偏移也很小,最重要的是它测量的角度没有累计误差。


pid是一日一次还是一天两次(PID的本质纯干货分析)(4)

θacc是加速度计测量的倾角。定义当测量角为0时,az沿着重力方向竖直向下,和重力加速度的关系是az=g*cos(θacc),ax垂直于az,和重力加速度的关系是az=g*sin(θacc)。这就是加速度计测量倾角的原理。

那既然加速度计没有累计误差,测量比陀螺仪更好,用加速度计就够了嘛,为什么一定要用陀螺仪呢?因为加速度计测量的物理量是比力,而非加速度,加速度是通过比力计算得到的。加速度计不能分辨出是地球引力还是运动外力。所以在被测量物体运动的时候将无法得到准确的倾角。这个时候陀螺仪就起作用了,因为陀螺仪对运动加速度不敏感。

陀螺仪短时间内计算的角度很准确,但时间长了会产生累计误差,加速度计长时间内的稳定弥补了陀螺仪的短缺。加速度计在运动的情况下测量有误差,陀螺仪对运动不敏感。

所以可以用两者的互补关系,来设计一个倾角传感器。那这里面怎么用到PID的性质呢?

我们把加速度求得的角度θacc作为目标量,我们把陀螺仪积分角度θgyro作为输出量。让陀螺仪角度跟随着加速度角度。设计PI跟随器,调节参数,让陀螺仪积分角度θgyro慢慢跟随加速度计算的角度θacc。下图是计算周期为50ms时,kp=0.2,ki=0.005时的效果图像。角速度噪声±0.5度/秒。加速度受到运动的影响,角度噪声为±2度。


pid是一日一次还是一天两次(PID的本质纯干货分析)(5)

在0秒时以角速度10度/秒运动2秒,在2秒时角速度以-10度/秒运动4秒。下面是6s到10s的放大图。

pid是一日一次还是一天两次(PID的本质纯干货分析)(6)


真实角度(蓝色)为-21度,陀螺仪积分角度(紫色)漂移了2度左右,加速度计计算角度(绿)噪声为±2度,组合角度(红,即陀螺仪积分角度跟随加速度计计算角度的结果)保持在真实角度附近,误差不到1度,说明PID完成了它的本质工作——作为信号跟随器使用。



新人首次发文,文章中有问题的地方请指出,我会改正。后面计划普及一些在导航和控制上的一些专业知识。如果能开专栏,计划在专栏开源一个无人机的项目,通过项目来分享导航和控制的设计经验。

猜您喜欢: