5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 90210|回复: 205
打印 上一主题 下一主题

写一篇betaflight调整pid的教程,新手老手都可以参考一下

  [复制链接]
跳转到指定楼层
楼主
发表于 2016-8-8 13:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
   此贴已被收录至论坛精选头条。更多精彩内容戳“5i上头条” 想知道上头条的方法戳“你也可以上头条”

国内不少人写pid调整的文章或者录视频,恕我直言好多是瞎扯,我之前也是看了几个国内的网友写的东西,调出来总是不理想,除了悬停没问题不抖以外,其他全是问题,再有就是看blockbox的motor曲线尖锐的不得了。我看好些人还说我这个飞机怎么才飞3分钟就报警,还有说我这个电机怎么这么烫手。其实大多数这种情况都是pid不合适造成的。
    万事还得找官方啊,人家bf官方清楚的写着一篇wiki叫做《PID tuning guide》,还好工作中经常使用英语,直接看没啥压力,我把这篇文章大概内容翻译出来,配上自己的调试心得供大家参考。原文链接:https://github.com/betaflight/betaflight/wiki/PID-Tuning-Guide
    括号中是我自己的话。然后这篇文章里面的值只适用于betaflight,不适用于cf或者cc3d,一定注意。

简介:
(我挑着重要的说)好的调试原则是在不产生震动的情况下P尽可能高。(这样会很跟手,飞机容易操控)P值越高力度越大,控制力越大,值越小控制力越小。I和D负责修正P值大了造成的错误(这个我下面给详细说,不要简单的理解这句话)

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

D值关系到飞机的某个轴是不是太快的达到目标值。如果飞机在打杆时非常快速的响应,那么它有可能超过了需要响应的预定位置,然后自己再向回纠正,这就造成了抖动,增加D值可以修正这种抖动。(引用原文的话bounce back{跳回},D只管跳回,其他的啥都不管。我下面详细讲。)D值尽可能小,太高的D值会导致电动机噪声太大(啥是电动机噪声,我下面详细说)。

调试步骤:
1、确保电动机和螺旋桨的平衡(调参的时候尽量不要用有泥土或者有伤痕的浆)。如果加速计信号不干净就调试PID就像没图纸盖房子,必须得先调试低通滤波器的设置,得到一条干净的加速计曲线。(好,我来说说这个。调参必须得用blockbox功能,不用这东西等于真眼瞎,蒙着调。怎么开怎么看我不说了,自己找找。bf这边儿记日志的时候按照50%记录就行,看的时候zoom到20%,这样明显一些。先看一个不干净的样子,pid的曲线幅度很大,gyro和motor都有那种尖锐的尖峰:)
(再看一个干净的gyro曲线的样子,你就得调整成这个样:)
(怎么让曲线干净,我来说说。首先你得把三个轴的p都降到很低,官方说roll和pitch降到40,我实验还是不够低,如果你的飞机在200轴距以下,请你降到30-32左右。yaw的P的请你降低到默认值的一半,也就是40,我试验这个值也没啥问题,不会快速抖动。为什么得先降低?因为足够低的P值才不会造成抖动,这样才能看出来电机和螺旋桨造成的抖动曲线,你不降,看到的曲线尖锐,你就没法判断是硬件毛病还是软件毛病。降完了P以后,无论你用自稳还是手动模式,记着开blockbox,然后飞起来,几秒钟就行,导出来看就行了。)
(有可能你的motor和gyro曲线不干净)
稍微有点有点噪声请用这个设置:
gyro_lowpass = 80
dterm_lowpass = 100
gyro_lpf = OFF

噪声比较严重请用:
gyro_lowpass = 50
dterm_lowpass = 100
gyro_lpf = 188HZ

(这个低通滤波器的设置很关键,如果你看见motor的曲线在飞机悬停时有尖锐的线条,这就说明电机在不停的加速减速,这样非常费电,你啥时候把这个滤波器设置好了,电机也不热了,飞机费的时间也长了。)

(睡醒了,继续写)

2、以下步骤的调整的基础是在手动模式,而不是自稳或半自稳。自稳或半自稳有他们自己的飞行参数。先得把TPA都置为零用来观察飞机的真实表现,调整完成后再调整TPA的值。(其实我实验的结果感觉自稳的P是叠加到了Roll和Pitch的P上,但是Yaw是独立的,不受自稳参数的影响,所以调整yaw的时候可以用自稳。说实话我也是新手,刚转手动也就几个月,手动没有想象的难,你只要自稳能3面目视悬停,直接换手动就行,没啥问题)

3、Roll和Pitch的P值从40开始慢慢向上加,把I调整为20,D调整为5,Yaw的P调整为默认值的一半(也就是40)。Yaw最后在进行调整。(我用210的架子,Roll和Pitch从40就开始是没问题的,用雪人的184,雪人的2206电机,P我记得是从30开始的,40就已经开始抖了,因为架子小,本身需要修正的力度就小,再加上电机的推力能达到1.3kg,P大了就开始抖,所以从30开始。你的飞机要是大,电机没劲儿的话,就从40开始,要是电机有劲,那你就从30开始。)
(调整成这个参数起飞就行,我敢保证肯定抖。这时你要目视飞行,观察飞机是怎么抖,99%的情况飞机会缓慢抖动,这就对了,继续往下看)

4、逐渐增加Roll的P值,直到你在全油门时会看到飞机高频的抖动,并且能听见电机声音也在抖动,这时把P值降低70%。(你把飞机悬停起来先看看听听,如果不是高频抖动,那你就然后左右打杆,在你杆回中的时刻观察飞机的抖动,什么时候飞机会一直高频抖动了,这就是那个P值了。实践操作中,反正我是不敢全油门观察,水平太差没办法,所以我就悬停后高频抖动降低了65%。实践证明65%很合适,后面会说到。)

5、重复以上步骤调整pitch的P值。(所有的飞机,包括正X,roll和pitch的P值肯定不一样,你就再是正X,你那个电池也是长方形的,不是正方形的,所以别一起调整roll和pitch)

(插一句,你就是降低到65%以后,你这个飞机有可能悬停时不抖,但是打杆回中时还是会抖,这就是所谓的bounce back,下面会讲)

6、测试看看飞机会不会保持roll的角度当飞机以一个固定的角度飞行的时候,然后满油拉升、收油自由落体几次。你给的这个角度应该不变,如果飞着飞着自己变了,那就要增加I值。I值不影响P和D。(这时候就得看屏幕了,目视是看不出来的,让飞机斜着往前飞,自己看着屏幕上的参照物,尤其是前方的树冠等等,角度不变千万别加I,变了你就每次加5或者10都行,别加太大,会让飞机飞起来像是robot)

7、重复上一步调整pitch。(这个不太好办,因为参照物不好找,roll和pitch可以用一个值)

8、只有bounce back发生时或者听到螺旋桨震动时才增加D值。如果你没这个问题,一定让D保持一个很低的值。(骑自行车的时候,要是有个人向左推了你一下,你肯定会向左打把防止摔倒,如果他推你推得很厉害,你就得很使劲的向左打把,这就是那个P,P就是那个力量大小。你要是很使劲的向左打,那就很有可能打过了,又开始向右倾斜了,那你就得再向右打把,再次纠正,你这不就抖起来了么,是吧,这就叫bounce back。调整D先可以看着飞机粗调,然后在看屏幕细调,每次加5就行,只要不再bounce back了,就别加了,别以为加多了好,加多了电动机会有噪声。)

(未完待续,尿尿去)

9、yaw经常需要最后调整。从你刚才降到的一半开始增加P值,每次加5,急加速向前飞,直到看到飞机粗糙的飞行或者抖动着飞行,然后降低一点点P。完美的Yaw P调整要观察blackbox,看曲线可能会抖,但是你看看这个抖动是不是真正的影响了gyro,如果yaw的gyro曲线看起来很好,很平滑,那就ok。(行了,这是我调整飞机的最有经验的部分,前前后后折腾了好几个月。来说说yaw怎么调整,你先按照官方说的调调,调完了以后你把rate设置为0.85,yaw的rc rate弄成1,应该是每秒1406度的旋转,然后自稳目视悬停起来,慢慢加Yaw P直到抖动,然后降低5-10都行。关键的来了,开blackbox,你目视着,把yaw杆达到低,让飞机迅速的自转,然后迅速回中。你看看你飞机失控么,如果失控栽头,那是你电调的毛病,我改天再写个帖子。如果不失控,但是飞机回在你yaw杆回中的时候迅速升高,那你把blockbox导出来,看看是不是跟我下面的图一样。你看看pid的yaw那根线,已经超出画面的范围了,按我的理解,你想让飞机每秒转1400度,但是他就能转1000度,达不到你的要求了,所以,你得降低一些rate的值,让他转慢点儿就好了)
备注:因为yaw的旋转力量很小,不像pitch和roll,所以一个很宽泛的值都是可以接受的。相对高的P和I值,相对低的D值都是很正常的。要想调整的完美,blackbox日志经常是很需要的。P太高导致的震动经常是来时roll和pitch,但是全油门时任何的粗糙感,都得通过blackbox看yaw是不是因为P太高导致了震动。

(行,官方的先说到这,后面他就说怎么调整自稳的P,那就很简单了。我说说blockbox,这也是这篇文章的精华部分了。很多人有误区,说用黑匣子干啥,屏幕调出来的就很好,我只能说呵呵。用blackbox调完了,你这电池续航提高30%不是吹的。说正事儿,blackbox好几组线,看哪个呢?我就看三个,motor,gyro和pid。上面官方说震动的线条,你说哪根线震动才是真的震动?motor代表了每个电机的输出功率,你要是看见motor有很密集的尖锐波形,多半是滤波器设置造成的。gyro代表了真实的飞机的震动,gyro波动你的飞机才是真正的在改变姿态。pid是cpu运算后的结果值,不是飞机姿态。上面那些步骤你都调完了吧,行,调完了有本事走两步,记上日志,导出来看看你那惨不忍睹的曲线,直到你为啥费电了吧。)

(好多魔友调完了pid都觉的我这飞的挺好啊,不抖啊,你试试这么几个动作,一是向前飞急加速,怎么滴时速也得超过100以上,然后直接掉头慢油向回飞,你看看掉头的瞬间抖不抖,第二,roll或者pitch翻滚,收油收到低你看看抖不抖,第三,从高空收油自由落体你看看。如果这三个动作有问题,你就把blackbox导出来看吧)
(pitch和roll的p值肯定不一样,那你怎么调,就是看blackbox,你看看悬停的时候pid的那组线,哪个振动大就把哪个轴的p调低点,直到两条线的震动差不多了为止,这个非常重要!然后你在打杆看看,如下图1位置,我是向左打杆然后回中的,2位置那个波峰就是bounce back,这就需要增加D值,你肉眼看屏幕虽然已经看不出来了,但是日志可是记录的清清楚楚的。当然,很小的bounce back也可以不用理他。)
(行了,就说到这把,看了我的文章调好了也不用谢我,记着我叫张雨就行了,哈哈哈)










评分

参与人数 12威望 +26 模币 +6 收起 理由
养生休闲转圈飞 + 1 + 1 很给力!
zhaolei254 + 2 + 5 赞一个!
sundayfox + 1 很给力!
cdzst + 4 很给力!
飞行的小牛 + 2 谢谢分享!

查看全部评分

欢迎继续阅读楼主其他信息

沙发
发表于 2016-8-8 13:16 | 只看该作者
收藏
3
发表于 2016-8-8 13:26 | 只看该作者
顶啊  楼主大神  愿意把自己摸索知识给大家 楼主辛苦了

4
发表于 2016-8-8 13:37 | 只看该作者
好贴!收藏!
来自苹果客户端来自苹果客户端
5
发表于 2016-8-8 14:30 | 只看该作者
4、逐渐增加Roll的P值,直到你在全油门时会看到飞机高频的抖动,并且能听见电机声音也在抖动,这时把P值降低70%。 这句话不对..是把P值降低为现有值的70% 而不是直接降低70%

评分

参与人数 1威望 +2 收起 理由
飞行的小牛 + 2 我也是看了原文才发现楼主写错了,这句话误.

查看全部评分

6
发表于 2016-8-8 14:35 | 只看该作者
而且还有就是D值太大会导致电机发烫
7
发表于 2016-8-8 14:35 | 只看该作者
赞一个,谢谢楼主了
来自苹果客户端来自苹果客户端
8
 楼主| 发表于 2016-8-8 14:50 | 只看该作者
爵爷 发表于 2016-8-8 14:30
4、逐渐增加Roll的P值,直到你在全油门时会看到飞机高频的抖动,并且能听见电机声音也在抖动,这时把P值降 ...

你说的对,我那个说法有歧义

9
发表于 2016-8-8 14:58 | 只看该作者
非常感谢楼主的经验分享
10
发表于 2016-8-8 15:05 | 只看该作者
就是不会看日志,一直调不好,太感谢楼主了。
11
发表于 2016-8-8 15:52 | 只看该作者
感谢楼主无私奉献。
12
发表于 2016-8-8 16:15 | 只看该作者
哈哈,我菜鸟一个,好的术语都没弄明白,羡慕各位大侠。努力学习!
13
发表于 2016-8-8 16:25 | 只看该作者
感谢楼主。请问黑盒子导出来的数据用什么软件看?
来自苹果客户端来自苹果客户端
14
发表于 2016-8-8 16:46 | 只看该作者
好文章
15
发表于 2016-8-8 17:05 | 只看该作者
爵爷 发表于 2016-8-8 14:30
4、逐渐增加Roll的P值,直到你在全油门时会看到飞机高频的抖动,并且能听见电机声音也在抖动,这时把P值降 ...

虽然我理解了楼主的意思,但表述确实不对
来自安卓客户端来自安卓客户端
16
发表于 2016-8-8 17:09 | 只看该作者
17
发表于 2016-8-8 17:15 | 只看该作者
18
发表于 2016-8-8 17:29 ——“来自手机” | 只看该作者
调到崩溃
19
发表于 2016-8-8 17:57 | 只看该作者
果断收藏学习
20
发表于 2016-8-8 18:47 | 只看该作者
有内涵的好贴子,收藏了!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表