本文源自约舒华·邦德威尔的youtube教学视频,由于是听译,不是一字一句都翻译出来,但是把关键的意思应该都翻译到位了,这个暂时还没有找到书面的材料,尽快的把这个关键信息传递出来!
=========开始了!耳机戴好!键盘敲起来!==========
不要被这个参数名字骗了。。。它不是让你的飞机能够对抗重力3D飞行,或者是能上你悬在天上飘啊飘和失重一样。
我们知道在我们猛轰油门,或者猛收油门的时候,飞机的高度会发生变化,这个时候会发生一些事情比如(油门会干预俯仰方向,使得俯仰角度发生变化)。你可以把你的I值,设置到10左右,飞一下就能很明显的看到这个现象。
有时也会是yaw方向角度发生变化。这个时候最好的方法就是增加I值,增加I值可以抑制这种飞机在轴线方向的漂移,但是我们也知道,这个I值不是越高越好,高了飞机的动作会很硬,或者引起震颤。
这个原因是一直以来都存在的,因为I值的响应是很慢的,I值只能纠正一些缓慢的漂移(这个也是I值的作用),但是当你猛轰猛收油门大机动飞行的时候,I值根本就跟不上飞机的机动变化。P值的响应非常迅速,但是P值的作用时间很短,它无法纠正轴线上面累积起来的漂移,为了解决这个问题,BF引入了Anti_gravity这个参数。
之所以叫“反重力参数”,主要是考虑你突然加油门弹射飞出去,或者收油门掉下来,看上去你就是在飞跃,有点反重力的意思,所以取了这个名字(译者注:老外真是脑洞大开)
这个anti_gravity_gain的作用,是当你在一瞬间短时间的时候,快速的移动油门的时候,这个gain参数会短暂的将I值迅速的增大,获得一个很高的I值。意味着当你油门增加最需要I值的时候,这个参数会迅速的将I值放大。但是当你平飞或者油门变化不大的时候,你可以保持一个很小的I值。
接着约舒华就演示了一下I值从30~60(60他认为已经很高了),主要是加油门,然后迅速收到零的,这是从FPV里面看到飞机在收油的时候是在左右飘的。30比较明显,60以后好一些,但是从FPV里面还是能看出来(他用了一棵树当参照物,很明显)
然后把anti_gravity_gain = 2.0 再搞了一次,还是用一棵树当参照物,做一个弹射的动作,可以看到几乎没有漂移,飞机几乎是固定位置的,然后让飞机倾斜一些角度,可以发现在roll方向有很小的一点点漂移。
然后这个约舒华建议把所有的飞机都引入这个参数调整,这个值可以在2,2.5到3之间都可以。(是多少就是当引入这个I值的时候,放大多少倍)。他也说到,有些飞机的D flaut参数是设置为零的,可能造成飞机进入横滚以后,因为引入了这个参数,造成I值溢出,就一直横滚下去直到炸鸡。这个几率很小,约舒华自己的飞机弄了一圈说没有这个问题,他认为anti_gravity_gain 在2~3之间是安全的。或许这个功能需要更多时间来完善,就会很完美了。
解释一下anti_gravity_gain 后面的2 和3 是什么意思,这里的2 和3 就是加倍的意思,也就是当这个参数生效的时候,I值会和这个gain的设置值相乘以后,把这个I值引入PID计算。如果I值是30,gain是2,那么当这个作用生效的时候,I值就变成60。
约舒华建议你PID的I值,按照普通飞行的I值设置就可以了。然后来做一些弹射,瞬间坠落,等等大油门变化量大机动动作,来看飞机的漂移,然后把anti_gravity_gain 慢慢的增大来试试这些情况有没有改善。按照他的测试结果,gain的值从2~5,总能解决你的问题。(5都是乘以5倍了……%)
还有一个参数是anti_gravity_gain_threshold 默认值是35,这个参数是用来检测你的油门变化幅度的,然后来决定是不是要启用anti_gravity_gain的加成,注释是当你的油门变化率在百万分之一秒的时间里面(还是十分之一秒的时间内,这个没有听的太清楚)你的油门变化率超过35%,那么作为一个引入gain的判断标准。所以这个值越小,你的油门变化比较慢的时候,这个gain的参数就引入了,你的这个值越大,你的油门得变化的比较快,这个gain参数才能引入。
约舒华建议这个参数保持默认,因为如果设置的比较小,可能你油门动的比较慢的时候,I值就开始翻倍了,忽然发现飞机怎么锁定了,动的很机械。设置的比较高的话,你需要I值增加,但是就是不来。这个默认参数至少是经过测试的,适合大多数人,如果你不是特别清楚自己在干什么的话,还是保持默认吧。
约舒华建议这个anti_gravity 功能生效的话,最好在OSD上面做个显示,这样至少你知道怎么样的油门变化,这个功能就参与PID计算了。然后你就知道应该怎么改这个参数了。反正约舒华建议不要修改threshold,就只修改gain就可以了。他建议gain的值对于大多数飞机来说,2~2.5就足够了(毕竟2都是I值翻了两倍嗯,虽说是一瞬间的事情)
所以这个anti_gravity(反重力)听上去是个很酷炫的名字,实际解决的就是一个飞机在大机动情况下瞬间增大I值提高大机动下的轴向抑制漂移的问题。
考虑到BF固件3.1.5和3.1.6里面,anti_gravity_gain=1.0,这就基本是禁用了。
3.1.7里面 anti_gravity_gain=3.0 模型这也有点高了,其他版本没有刷过,详情可以查阅一下我翻译的更新说明。
当然建议还是刷3.1.7吧,可以设置一个辅助开关来关闭这个anti_gravity功能,这样就可以试试看手感变化了。
PS:需要注意的是,3.1.7 固件,默认PID数值改变了,Pitch 和Roll 的D值分别为35和30,这个D值相对较高一些,可以有效的抑制洗桨震颤,当然也会造成飞机姿态过于锁定,恢复到原来默认的21~22,飞起来基本一致,但是飞power Loop最后那改出的一下,洗桨震颤还是比较难避免。
另外3.1.7,PID感觉算法修改过了,按照3.1.5调整好的P值全部都偏小,需要放大很多飞机修正的力度才够用。另外加上反重力参数的影响,基本上可以说原来调整PID的步骤和经验,都需要调整才能适应新的固件变化。现在飞3.1.7大约有将近2小时的飞行时间,总体感觉PID调试就是P需要放大,D大一些没有太大关系,电机不会过热。I基本可以保持非常小的数值基本可以不用调整(反正有反重力参数么)。
祝大家飞的开心!
|