PXI Hawk 飞控笔记
第八章:PID 控制的牛之一毛 ——sw 笨笨 编写
1. PID 介绍
今天笨笨来做个尝试,不提公式,不提数学,看看能不能谈谈 PID 的九牛之
一毛呢?呵呵,专业人士免进把,本文不是给你们看的,笨笨是自控系的非典型
学渣。
1)反馈和控制律
说 PID 之前需要先聊聊自动控制,聊自动控制必须先侃侃什么是反馈,什么
是控制律。
举个例子,我们要把自己的右手举起,如果大脑只告诉肌肉收紧多少,然后
任凭肌肉去运动不再管了,这个过程是开环控制;如果大脑告诉肌肉收紧,然后
眼睛随时监视手抬到哪里了,并告诉大脑来随时调节发给肌肉的力度,那么眼睛
所做的工作就叫做反馈,这个有反馈的控制过程才叫做闭环控制,就是我们常说
的自动控制。
而大脑根据眼睛提供的反馈,手距离抬起的位置越远肌肉就越用力,手距离
抬起的位置越近肌肉的力度就要减小,那么这个肌肉力度与手位置的关系,用数
学公式表达出来就是控制律了,所以控制律其实就是一个表达反馈和控制输出关
系的数学算法。能看明白么?如果大脑只根据手的高度差来控制肌肉,这叫做比
例控制;如果大脑还要根据手的移动速度,加速度来调节肌肉的力度,这恐怕就
算是 PID 算法了的卡通化解释了吧。
2)什么是 PID
PID 算法,按照字母说是比例(proportion)、积分(integration )、微分
(differentiation)组成的一种控制律算法。大家知道,飞机在空中飞行一共需要
控制 6 个自由度,分别是高度、经度、纬度三个水平自由度,以及俯仰、航向、
滚转三个旋转自由度。所以 PID 针对水平自由度就是指的位置差,速率和加速度;
针对旋转自由度是指的角度差,角度率和角加速度。我们的飞控就是通过各种传
感器芯片得到或者计算这些参数的。
3)为什么用 PID
说起来 PID 算法已经有七八十年的历史了,是目前应用最广泛的控制律算法,
没有之一。因为其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的
主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模
型时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID
控制技术最为方便。我们的模型飞机往往就是这样的典型,随着飞机种类不同,
布局不同,重量不同……很难找到一个通行的数学模型,即使针对一个飞机,测
量全部的参数需要风洞仿真等等,成本无法接收啊,只有军工这种超越高富帅的
行业才能弄得起。像模型飞机这种矮穷挫,您还是算了吧,我们只能用 PID 调参
的方法来控制啊!
2. PID 调参
1)调什么
PID 算法里面需要调参的就是 P、I、D 这三个参数,也就是调整者三种反馈
信息在控制律中所占的比重。P 调整控制力度,P 作用越大手抬得越快,但是太
快就难停下哦,造成来回找目标点变成抖动;I 是调节误差的,可以使运动更加
精确,但是会使控制过程变慢;D 的作用是提供运动的预测,根据预测预先控制,
可以在即将到达目标的情况下减小超过的幅度(这个叫做超调),从而加快整个
过程。
有些飞控比如 TauLabs 飞控,具有内外环双 PID 参数调节,内环调节速率,
外环调节姿态。这种做法是从直升机陀螺发展而来的,基本上可以把内环整个当
做速率参数来理解吧。
2)怎么调
基本上 PID 的调节大多采用试凑法。就是调整参数,观察实际效果,再调整,
再观察……如此循环,直至得到满意的结果。
当然这种方法有如下几个问题需要注意,首先需要有个初始参数,如果飞机
根本不能离地,怎么观察呢?其次,这么多参数,哪个先调哪个后调呢?再者,
调节的幅度多大合适?我们先来看看这是不知哪位先贤、理科男、学霸、牛人……
他编的顺口溜。这文学水准我们就不多讨论了,跟祖“万里江山红旗飘,三座大
山不弯腰”一个水平,啥时候我们也仿照他来个“自控体”。不过过程写的相当
牛啊,大家参考吧:
参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低 4 比 1
一看二调多分析,调节质量不会低
哎,坚持着看完了,估计晚饭就免了,下面谈谈我的看法。关于前面三个问
题,初始参数我建议大家使用飞控所带的参数就可以了,一般问题不大;调整顺
序一般我喜欢先调整参数 P,再加入 I,至于 D 嘛很少用到。
3)效果会是怎样的
PID 调参的结果大概有四个,最佳的收敛,最糟糕的是发散,人品不佳则临
界振荡,还有很少出现的响应缓慢。
看下面的图片,左上曲线就是发散,飞机越振越厉害,直到翻倒;右上所示
的是振荡,来回振动不稳定;左下图表示的是飞机控制正常状态,控制的时候每
个动作会感觉到非常短时间的振动,但是这个振动很硬,就是很快能够达到稳定
的姿态;右下的图示很少碰到,就是每个动作都慢慢接近稳定,但是就是达不到
想要的状态。
按照我的飞控调参经验,如果出现了发散的情况,要么是初始参数有问题,
要么就是是飞机有故障。一般飞控出厂固件没调过参数的时候,很少出现这种问
题,所以大部分情况是飞机故障。最典型的就是电机安装顺序有误,或者螺旋桨
旋转方向有误,这就需要你好好检查飞机排除故障。
如果出现了振荡的情况,只能说明你人品不好。为啥这么说呢?因为你调的
参数离调好不远啦,可就是差了那么一点点,一点点……
大部分情况还是控制正常,飞机姿态比较好,但是需要你继续调参让它变成
很稳,很硬的样子,这就可望而不可及的事情啦,要看你的调参水平和经验了。
一句话,勤学苦练没有捷径!
我没碰到过第四种情况,哪位有见过可以给我补充补充吧。
3. 解决四旋翼的爬、抖、晃
在实际调参过程中我的四旋翼最常出现的问题就是爬、抖、晃了,这里分享
一下经验。当然作为非典型自控学渣,我不保证这些都正确,我只能保证里面一
定有错误,呵呵,所以希望大家给补充和改正。
1)爬
所谓“爬”指的是飞机在地上蹭来蹭去,蹭来蹭去,就是不起飞;你给大油
门他就干脆翻个不玩儿了。
根据纯经验,减小 I 的数值可以解决问题。
2)抖
所谓“抖”指的是飞机起飞后,高频抖动,电机的声音就像得了帕金森。
根据前面的内容,这基本上就是 P 过大造成的不断高速超调,所以减小 P 的
数值基本上可以解决这个问题。
3)晃
所谓“晃”指的是飞机飞起来一切感觉良好,但是你让他一挪地方,他就在
那里刷碗,晃晃再稳定住。
根据经验,I 的数值还是大了,造成过程极其缓慢,所以适当减小 I 可以解决
问题。