有关穿越机的装配与调试之三:比例积分微分控制(PID)

您所在的位置:网站首页 pid控制中p值越大 有关穿越机的装配与调试之三:比例积分微分控制(PID)

有关穿越机的装配与调试之三:比例积分微分控制(PID)

2024-07-14 05:53| 来源: 网络整理| 查看: 265

本人通过各种网络资源找到的相关资料,如有侵权,请私聊我 作者:千年轻松 https://www.bilibili.com/read/cv13556815 出处:bilibili

PID是连续系统中技术最为成熟、应用最为广泛的一种控制算法。当外界输入改变的时候,PID研究的是如何又快又好地让系统的输出进行调整。其中P、I、D分别代表了Propotional(比例)、Integral(积分)和Differential(微分)三种控制策略。

在正式了解PID之前,我们先了解一下为什么要调PID

由于惯性等其他变量的存在,使飞机没法快速准确地停留在目标高度,这就是我们需要调PID的原因。

PID在穿越机调参中的主要作用有两个:

1.  排除飞机故障(如飞机抖动等)

2. 提升飞机的性能,让飞机响应更灵敏

如果你已经掌握了基本的飞行技巧和原理,想进一步优化你的飞行手感,就可以开始调整PID了。

这个过程可能很痛苦,需要你花大量的时间,不断地进行微调,然后实践,再微调,实践……直到找到你最喜欢的飞行手感为止。

在穿越机飞行时的在动态控制中,我们通过调整PID三个参数来获得动力,同时消除振荡,找到对你当前的飞行场景来说更优的手感。

首先讲P:

P(Propotional)是比例的简称。“P”单元控制着控制系统的所有动力,以达到所需的输出。如果“P”单元没有足够的输出,无人机就没有足够的动力来反馈你的控制命令;如果“P”单元输出过大,无人机就会反应过度,发生振荡。它的特点和弹簧完全一致。

简单的来说,P在穿越机飞行给过程中就代表一个有目标的力,P的数值就代表力的大小

所以,在合适的范围内,尽可能的调大P值能增加穿越机的跟手度

在动态控制中,P和D是最需要调整的两个参数,接下来讲D。

D(Differential)是微分的简称。微分在数学中的定义:由函数B=f(A),得到A、B两个数集,在A中当dx靠近自己时,函数在dx处的极限叫作函数在dx处的微分,微分的中心思想是无穷分割。这不难让我们想到高中数学的导数,想起了当年被数学支配的恐惧。

在PID控制中D就是通过微分的方法来计算运动速度。用人话来说,就是D越大在物体运动时的阻力就越大。这个阻力和物体的运动方向相反。

但如果D值过大,这个阻力会抵消回复力,让控制变得非常迟钝,整个运动过程就会显得有些迟缓,这就是D在穿越机飞行控制中的作用。

P和D是两个比较重要的参数,P越高,回复力越大,飞机就会越跟手,但是到达目标后往往不能立即停下手来,这就是过冲,增大D值能有效减少过冲,但是也会让飞机变得迟钝,如果穿越机的质量比较小,那么P和D的值的范围就相对较大,如果穿越机的质量较大时,P和D就要有所取舍了。

I(Integral)是积分的简称。

积分在穿越机动态控制的作用是:

“I”积分单元对外界干扰或存在的系统误差进行纠正,以确保最后的输出符合预期。

飞机会不停地检测位置是否存在偏差,如果存在的偏差越大、持续时间越长,就会产生一个越大的力来矫正。

一般情况下,我们可以把I值设的高一点,但需要注意的是,I值过大也会产生振荡。

I修正P的累计错误(什么叫累计,就是长时错误,表现在飞机上就是漂移,你让飞机成一定角度飞出去,没打杆,但是飞机自己就栽头或者上扬,这就是累计错误。记住I只管这个事儿,除了漂移啥都不管)

总的来说,P、I、D三个值是互相影响的关系,要调整到最佳比例,需要反复不断地实践。

bf官方清楚的写着一篇wiki叫做《PID tuning guide》,就以这篇文章为基准来讲一下调试步骤。

我们在实际调试的过程中需要用到blackbox(黑匣子)功能,不用这东西等于蒙着调。怎么开怎么看我不说了,自己找找。

在调PID之前,确保你的穿越机滤波设置正确,这步很关键,否则会有干扰。

还没进行滤波的飞友们可以看看之前一期的教程

接下来的调参是在设置好滤波的情况下进行的。

这是PID的调参界面,第一步要做的就是先去寻找适合的P和D的比例

先把I值调小一点,以免影响P和D ,接着保存后去外场试飞一下

试飞结束后,激活飞控的大容量存储模式,把黑匣子的数据导出来到软件上去观察,打开响应曲线,通过观察黑匣子曲线来确定合适的PD比例,如果过冲了,就调小P值或增大D,反之则增大P或减小D,但一定要在合理的范围

这便需要你不断调试飞机才得出要减少多少P的值

注意:在调节PD值的比例时,我们是希望P值能尽可能打,D值能尽可能小,并且使得响应曲线尽快地接近1

我们只需找到Roll和pitch这两个轴的最佳PD值就行,因为yaw的旋转力量很小,不像pitch和roll,所以一个很宽泛的值都是可以接受的。相对高的P和I值,相对低的D值(甚至是0)都是很正常的。

在找到适合的PD比例后,在维持比例的同时提高PD的值,直到电机有点烫手,或者飞机有明显的震动,这时减小PD值直到电机不烫手或者震动消失就行了,这样PD值就接近完美了

接下来继续去观察曲线,并且去逐渐提高I值使得,直至曲线收敛目标位置

最后可以适当提高FF(feedforward)前馈的值缩短到目标位置的时间,使得飞机跟手一点

到这里PID的调参基本算是完成了,接下来的就是些对PID控制的补充设置了,这些设置能让你的飞机在基本环境中都能有比较完美的控制,早期的Betaflight中是没有这些设置的,后来经过不断完善才发明这些功能的

你调完PID开开心心的去飞了,在飞的时候,你发现,飞机在某个特定油门区间会抖,但明明已经调好PID了怎么会呢?

因为穿越机的电机动力跨度很大!电池动不动就6S120C。动力跨度这么大用一个PID肯定不合适嘛。

所以Betaflight官方也发现了,在新版本就加入了动态的PID控制。为了能更好的控制暴力的飞机,就有了几个能动态控制PID的东西。

第一个动态控制就是TPA

TPA就是PID原本值*你输入的值,一般默认0.65,意思是把PID值减小为原来的0.65倍

TPA起始点就是从你输入的油门位置开始,PID的数值开始减小,这时就有一种线性关系,自变量是油门位置,因变量是PID减小的数值,默认是1250,意思是当油门到1250时PID开始减小,加油门到2000时,PID就减小到原来数值的相应倍数(0.65)

调整方法是:TPA调0,从悬停推全油。看高油门飞机抖不抖。不抖就不用调直接飞就好了。抖的话记住在哪抖。最好用OSD里的摇杆位置图+DVR录像。回来看DVR很简单看油门在什么位置以上画面抖动。没有DVR的就要记住大概位置。

还有一个调节动态PID的东西,但这个东西有点鸡肋 :Dmin

那么什么是Dmin呢?顾名思义就是D的最小值,当这个功能打开后,原本设置好的D值就自动变为Dmax了

Dmin允许我们的飞机在飞行过程中有不同的D,Dmin和TPA不一样,Dmin没有线性关系,而是和陀螺仪和打杆的杆量有关,从而改变D的值

注意,不是所有的飞机都建议打开Dmin,在正常飞行中比平常低的 D 量具有以下优点:

噪音更小,电机温度更低

全油门时更干净的电机噪声

对快速输入时有更快的陀螺仪响应

D相关的振荡或启动时磨损的可能性较小

但是,低D也有缺点:

更大的洗桨

更大的过冲和反弹

由于 P 高时缺乏阻尼,P 在快速移动附近振荡

平稳向前飞行时的低空缓慢振荡

所以如果你的飞机本身洗桨抖动很严重,就不太建议去开Dmin。克服洗桨震动需要相对较大的D值,而Dmin的作用就是尽可能减小D值

它由增益(gain)和超前(advance)两个参数控制

增益(gain)对陀螺仪敏感,当陀螺仪检测到飞机运动速率变高,或者发生了洗桨,增益就会检测到并且增大一些D值

超前(advance)对遥控器打杆的杆量和速度敏感,当快速大幅度打杆时,超前就会检测到并且增大一些D的值

注意:当你开启了Dmin后,在进行正常飞行的过程中,D的值会紧贴Dmin的值往上变化,所以,一般会把Dmax的值调整为高出原来值的20%到30%,以帮助控制螺旋桨和过冲

接下来讲最后一项动态PID控制,针对I值的动态控制:I值释放和“反重力”

I值释放有三个可调的东西:截止频率,类型,轴

先讲截止频。截止值越低,早期的 I 项积累被抑制。反之则相反

更高的‘’截止频率‘’可以在过弯时提供更具有锁定感的体验,所以我认为I值释放这个功能对于竞速选手来说比较重要,较高的截止值允许对快速抽动输入进行更好的设定点跟踪。见下图

对于像Freestyle这样的平稳飞行,当极快和激进的转弯很少见时,我可以在机动过程中完全抑制它,Freestyle可能需要较低的截止值,如下图

调完上述两个参数后会有一点小问题,就是在进入快速机动之前I被“锁定”到预先存在的值,当它回到旧的I值时需要一点时间来解决。

这种效果在陀螺模式下更加突出,因为与设定点相比,I 项锁定略有延迟。

名称中带有_INC的两种模式仅在I值增大的时候把I锁定,不需要的时候就可以快速释放 

默认情况下,Betaflight 使用RP模式,因此如果您想删除此累积,您可以将其更改为RP_INC

最后来讲讲这个“反重力”。不要被这个参数名字骗了,它不是让你的飞机能够对抗重力3D飞行,或者是能上你悬在天上飘啊飘和失重一样,这个功能会在飞行时大幅度的提高I值,你会在过弯时明显感受到“反重力”所带来的区别

何为反重力呢,就是当你飞机在迅速加油或收油的时候,飞机由于受到自身重心的影响,导致出现抬头或低头的现象,于是就通过在快速加油或收油时,瞬间提高I值,使得飞机的姿态能更好的固定。

一般只需打开这个功能即可,所有的参数都默认就行

到此为止,关于Betaflight的PID控制算是全部讲完了。

接下来就大胆的去飞吧,所有的调试都已完成,接着就是自己不断的练习,才能早日成为别人眼中的大神!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3