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

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

Betaflight遥控信号平滑功能的官方说明书

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-5 16:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 DusKing 于 2018-7-5 16:27 编辑

基于S.bus和F.port的遥控器信号基础上的输入信号平滑功能-官方说明书
由米克勒最后编辑
(注:Mikeller目前负责评审Betaflight固件功能,bug修正,并由他决定是否通过这些变更,然后编译到主程序中)

把遥控器的输出信号设定到8个通道,来获得最低的9ms延迟
在FrSky高频头X模式下(在OpenTX中称为“D16模式”),S.Bus和F.Port接收机协议每9ms发送一次数据包,但是每个数据包只能传输最大八个通道的数据。

如果你只需要八个通道的话就够用的话,包括基础的四个控制通道(横滚俯仰油门偏航)和四个辅助开关通道,请确保将“Model Setup”页面中的通道范围设置成1-8,如下图所示:
这样设置能够确保每9ms发送一次完整的数据包(即步长间隔为9ms),来确保RC信号平滑的性能水平。

为什么设置频道数量这么重要?
如果FrSky X模式下设置超过8个通道,有些通道的信号可能是每一个9ms的数据帧都会发送,有些通道是间隔一个9ms的数据帧发送,那些每一帧都发送数据的通道延迟就是9ms,那些间隔一个9ms数据帧发送的通道,延迟就是18ms。目前还没有搞清楚到底是哪些频道会受到影响(注:可能当Mikeller看过Frsky接收固件的代码之后就知道了)。
但是你可以很明显的感觉到这种延迟,这对飞行控制具有负面的影响,当移动摇杆的时候这些延迟还会在电机信号中产生不必要的波纹。

为什么通道数量的多少会和Betaflight中的RC插值平滑设置值有关?
飞控固件中的PID中的微分D或前馈分量,例如D set point weight 或者油门增压,需要使用RC信号平滑功能。如果不使用这个功能,那么最终进入电调的信号将是十分尖锐混乱的。这种情况下,频繁的进行摇杆操作的时候,这些信号尖峰和会使得电机频繁进行不必要的加速减速,这会导致发热,进而浪费电池电量,但是对于飞行来说又没啥用。通过适当的调整RC信号平滑设定值,这些信号的尖峰可以被抹平,电机的转动将更平滑而且不会变热。
为了提供最佳的RC信号平滑设置,飞控需要知道发送旧数据包与新数据包之间的时间间隔。
当保持RC信号平滑设置为AUTO自动模式时,运行Betaflight3.4+固件版本的飞控会自动测量数据包之间的时间间隔。但是飞控并不知道遥控器与接收机之间通讯协议到底是怎样配置的,所以飞控会假设是S.Bus和F.Port,并将数据帧的时间间隔设置成9ms。

综上所述,需要将FrSky X模式下的通道数限制为8个。
如果玩家配置了8个以上的通道,则应该手动配置RC平滑设置,而不要使用自动测量值。

我如果将通道数量限制为8的话,我可以使用自动/默认设置吗?
当然可以,那样的话就完全没有问题了!
在CLI里面输入下面的命令,那么Betaflight3.4会自动设置最佳的滤波器的设定值

set rc_interp = AUTO
save

什么时候我需要手动设置这个值?
在自动模式下,Betaflight会假设用户已经将FrSkyX模式的通道数限制到不大于8个,并且假设数据包的步长间隔为9ms。在此基础上,它通常将滤波器的频率设置为50hz,如果你还在使用旧版本的插值平滑功能,那么窗口区间的延迟是11ms。

你可以手动指定一个较低的滤波器频率来消除进入电调控制信号的RC输入信号尖峰,但通常来说这并不是必须的。如果用户将Dset point  weight或者油门增压的值调的比较高,造成了较大信号波纹的时候,较低的设定值确实可以使ESC信号更加平滑。但不幸的是这种平滑会增加延迟,会拖延并减少前馈的效果,这并不是一件好事。通常来说最好保持默认值的设定,这样会在控制信号内保持一部分噪声(注:考虑到完全消除的话,滤波就太严重了,会导致原始输入信号的失真)。如果S.Bus的步长间隔为9ms,则飞控会自动设置成50hz。在尝试降低低通滤波器频率来降低RC信号输入的波纹时,ctzsnooze建议最低设定值不要低于30Hz。

如果我需要使用8个以上的通道怎么办?
如果在FrSky X模式下需要用到超过8个S.Bus或者F.Port通道的话,那么最好将通道范围设置成1-16,这样所有的通道的步长间隔都相同,并将两个RC平滑滤波器手动配置为25hz,插值时间设置为19ms。
注:个人理解,这样只是便于飞控使用RC输入平滑功能,确保每一帧的数据都能被正确滤波,但是对于延迟来说,就是8通道的9ms VS16通道的18ms,虽说都是毫秒级别的响应,但是对于飞控来说,明显延迟越短越好。我也飞过一些烂控,如果控制延迟很长,的确能感觉出来。
如果通道的数量设置成8-16之间的数字,比方说是11通道,那么将在第13通道上面收到步长间隔为9ms的数据,在第3通道上面收到步长间隔为18ms的数据。这时就需要用黑匣子记录来识别那些通道是快的那些通道是慢的。如果所有的动态控制信号(注:油门,俯仰,横滚,方向)都在快速通道上面而所有辅助通道都在慢速通道上面的话,那么RC平滑插值的默认值足以优化性能。(注:问题在于现在还不知道接收机是如何分配这些通道信号的,不知道是不是真正的把控制飞行的4通道排在前面


为什么不用旧的插值方法而使用基于滤波器的RC平滑插值?
因为这种方法更快,延迟更低,可以保证输出的ESC信号更加平滑,受looptime抖动造成的负面影响更小,并且可以更好地处理接收机链路中数据包丢失的情况。

注:RC输入平滑在3.4的固件中默认是关闭的,3.4包括之前的固件仍然是使用老的两点插值平滑方法。

同样,鼓励大家去
https://github.com/betaflight/betaflight/wiki/SBus-FPort-and-RC-Smoothing
官方发布页面查询,获得更多第一手信息



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

沙发
发表于 2018-7-5 17:19 | 只看该作者
很深奧啊
3
发表于 2018-7-5 20:17 | 只看该作者
学习,虽然不太懂。
来自安卓客户端来自安卓客户端
4
发表于 2018-7-5 21:13 | 只看该作者
估计穿越很少超过8个通道
5
发表于 2018-7-5 21:52 | 只看该作者
我等新手表示看不懂也用不上
6
发表于 2018-7-5 22:42 | 只看该作者
楼主你的遥控器固件该升级了。新版固件在Channel Range后面会注明延迟,调到8时会自动提示9ms
来自安卓客户端来自安卓客户端
7
发表于 2018-7-6 11:18 | 只看该作者
技术贴要马克
8
发表于 2018-7-6 13:39 | 只看该作者
回去试试
来自苹果客户端来自苹果客户端
9
发表于 2018-7-10 13:16 | 只看该作者
奇怪,我的xm接收机设置到8个通道用不了
10
发表于 2018-7-29 09:36 | 只看该作者
isjfk 发表于 2018-7-5 22:42
楼主你的遥控器固件该升级了。新版固件在Channel Range后面会注明延迟,调到8时会自动提示9ms

没错,你说得对,更新到2.2以后就有这个选项了
来自苹果客户端来自苹果客户端
11
发表于 2018-7-29 09:36 | 只看该作者
stonewu163 发表于 2018-7-10 13:16
奇怪,我的xm接收机设置到8个通道用不了

接收机工作模式还是D16,只是把频道数变成ch1~ch8,8个通道而已。
来自苹果客户端来自苹果客户端
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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