网站首页 > 技术教程 正文
入住头条有1年多了,第一次发文。我是一只在无人机领域的嵌入式工程狮,看了头条上很多的对PID解说的专业文章,几乎都是从控制上切入的,这里我从不同的角度来分析PID。
先说结论:PID的本质是跟随器,用于跟踪给定信号。
很多朋友在这里又会发问了,PID不是控制器吗?在某权威百科上面的解释就是:比例(P)积分(I)微分(D)控制,简称PID控制。这是没错的,PID算法从100年前开始出现,就开始广泛的用于工业控制,PID的起源就是用于做控制器。看起来PID和控制是分不开的,实则不然。
从PID的公式也可以看出,e是目标量和输出量的偏差,当误差e趋近0时,输出u将收敛到一个固定值。最终PID实现的效果就是将目标量和输出量两者的偏差归零,当目标量变化时,输出量也会跟随着目标量变化,也就是说输出量通过PID来跟随目标量。
下面我从两个例子来说明PID分别作为控制器使用和信号跟随器的使用。
PID作为控制器——水箱液位控制
这里水箱的液位我们假设没有延迟,设计一个PID控制器来控制液位,误差e为目标液位和输出量为液位之差。u为执行器输出,这里是阀门开度,大于0为注水,小于0为放水。具体代码不在此赘述。
刚开始的时候,把液位设置到5米,2秒后实际液位基本到达5米。在50s的时候,把目标液位设置为2米,液位下降,2秒后稳定到2米。说明PID完成了它原始的使命——作为控制器使用。
PID作为信号跟随器——倾角传感器的设计
这里倾角传感器的设计就不涉及到任何控制了。我们的目标是测量角度,硬件选用加速度计和陀螺仪构成。为了方便,我们只测量单轴角度,这里用2轴微电子加速度计和1轴微电子陀螺仪。
陀螺仪的输出量是角速度,角速度积分就是角度,这不是用陀螺仪就能解决了吗?为什么还要加速度计呢?是因为陀螺仪输出的角速度包含有各种噪声,积分得到的角度会随着时间误差越来越大。具体的可以看下面的图像分析。
上面左图是以1度/秒的角速度运动10秒,右图在角速度1度/秒的基础上加了±0.5度/秒的随机噪声,可以发现在10秒后角度值为106度(图可能看不清),这是因为角度值的获取是通过角速度积分得到的,存在累计误差。而加速度计具备良好的稳定性,测量的偏移也很小,最重要的是它测量的角度没有累计误差。
θ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度。
在0秒时以角速度10度/秒运动2秒,在2秒时角速度以-10度/秒运动4秒。下面是6s到10s的放大图。
真实角度(蓝色)为-21度,陀螺仪积分角度(紫色)漂移了2度左右,加速度计计算角度(绿)噪声为±2度,组合角度(红,即陀螺仪积分角度跟随加速度计计算角度的结果)保持在真实角度附近,误差不到1度,说明PID完成了它的本质工作——作为信号跟随器使用。
新人首次发文,文章中有问题的地方请指出,我会改正。后面计划普及一些在导航和控制上的一些专业知识。如果能开专栏,计划在专栏开源一个无人机的项目,通过项目来分享导航和控制的设计经验。
猜你喜欢
- 2024-10-31 PID与FID的区别,你知道吗? pid和fid的区别
- 2024-10-31 编程基础必备:PID运算指令说明 编程pid控制
- 2024-10-31 PID算法和PID控制原理 pid控制算法流程图
- 2024-10-31 转载--经典的自动控制算法 PID,大白话讲解了解一下!
- 2024-10-31 PID控制介绍 pid控制kp
- 2024-10-31 「PID知识」PID控制介绍说明 pid控制怎么理解
- 2024-10-31 想要学习温控仪,先要弄清楚控制原理以及接线方法
- 2024-10-31 关于PID的深度解析-I pid的d
- 2024-10-31 什么是PID算法?高端设备都在用的PID控制到底有何魔力?
- 2024-10-31 PID是什么及在TIA平台上的应用(附:PID模拟器)
你 发表评论:
欢迎- 01-11关于Vmware workstation的网络设置
- 01-11使用VMware Workstation虚拟机安装Windows 10详细教程
- 01-11VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- 01-11VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 01-11银河麒麟桌面操作系统安装VMware workstation pro
- 01-11VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 01-11发布VMware Workstation Pro 17.0稳定版
- 01-11VMware Workstation安装ESXi 7安装篇
- 最近发表
-
- 关于Vmware workstation的网络设置
- 使用VMware Workstation虚拟机安装Windows 10详细教程
- VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 银河麒麟桌面操作系统安装VMware workstation pro
- VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 发布VMware Workstation Pro 17.0稳定版
- VMware Workstation安装ESXi 7安装篇
- 如何安装虚拟机(vmware workstation)
- VMware Workstation之网络配置
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)