模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

1381查看 | 6回复

【外文翻译】飞控里面的Looptime是个什么鬼?

[复制链接]
发表于 2016-9-28 23:12:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
原帖地址 来自<https://oscarliang.com/best-looptime-flight-controller/>


AdrielPerkins 和我们分享了一篇关于解释飞控的looptime的含义以及是否looptime速度越快就越好的文章。同样在这篇文章中他解释了电调的刷新时间是不是和飞控刷新时间同样的重要的问题。
现在穿越机里面使用的新技术越来越多,要跟上技术发展的脚步会有些困难,Looptime和refresh rate这两个概念被越来越多的FPV论坛谈及,这对于飞控和电调的发展都是一件好事。
飞控中不同的Looptime
现在大概有四种主流的飞控软件,Betaflight,Cleanflight,Raceflight,和Kissflight,所有这些固件都可以运行在不同的Looptime上面。
有些飞控软件可以运行在1Khz(1000us looptime),或者更高的8Khz(125us looptime),Raceflight里面已经开始考虑运行在32Khz的频率上面。
很多人仍然在尝试4Khz的循环时间,但是对于最新版本的Betaflight来说,已经可以运行在8Khz的频率上。Kissflight使用1Khz的频率(1000us looptime)。
但是是不是更高的刷新频率(更低的循环时间)对于操纵飞机来说就是更好?这更快的运行速度真的对飞行有帮助?还是只是一个纸面上的高指标参数而已?

为了搞清楚这些,我们首先需要明白什么是Looptime(循环时间)。大家都知道,飞控有他自己的循环时间,电调也有一个电调自己的循环时间。
飞控的循环时间主要是说飞控完成一个PID控制的时间,然后把参数通过PWM信号发送给电调
电调有它自己的循环时间,电调的循环时间越快,它就能够以更快的速度来拾取飞控的PWM信号。电调的循环时间应该比飞控的循环时间更短(电调的运行频率要比飞控更高),这样才能保证电调能够以比飞控发送信号更快的速度来拾取飞控的信号。这样才能让电调有时间把这些信号发送给电机。如果电调的循环时间比飞控更短,那么在等待飞控给予电调发送新的信号之前,电调才能够有足够的时间把信号发送给电机。

越来越多的电调支持Oneshot125信号,这种电调的运行时间在125us到250us之间,这意味着电调能够更有效率的读取飞控的输出信号。现在飞控发送信号的速度(取决于硬件)能够在在1000us到125us之间自由调整,并在这个循环时间内,完成一次PID计算,并将计算结果发送给电调
在这篇文章中,looptime和刷新时间(循环时间)其实是一回事,仅仅只是单位不同,looptime的单位通常是微秒,刷新率通常是用频率表示。
  • 1000us =     1khz
  • 500us = 2khz
  • 250us = 4khz
  • 125us = 8khz

Oneshot125,Oneshot42,和Multishot与飞控循环时间的关系
在改变飞控的循环时间之前,你需要注意不同的电调协议之间的关系
像上文中说的,Oneshot125电调协议运行时间为125~250us之间,同样的,Oneshot42电调协议的运行时间为42~84us,Multishot电调协议运行时间为5~25us。现在Oneshot125协议几乎已经是所有运行Blheli程序电调的标配了。暂时只有Kiss电调支持Oneshot42,而只有使用Silabs F39X芯片的电调比如DYS XM20A能够较好的运行Multishot协议。

建议你的电调运行频率一定要比飞控频率稍高一点,但是如果反过来,飞控运行频率比电调更高,那就有问题了。如果你的飞控运行频率比电调高,那就意味着电调来不及读取飞控的信号,大量来不及读取的信号会造成电调过载。这也是为什么使用Oneshot125协议的电调不能和使用8Khz运行频率的飞控匹配的原因。8Khz的频率会造成电调读取信号的速度远远落后于飞控,因为Oneshot125会运行在250us循环时间上,这个循环时间比飞控的125us时间要长的多。

举个例子,如果多轴以满油门拉升,那么对于此时飞控输出的PWM信号来说,PWM信号的上升沿和下降沿挨的很近,信号的间隔非常小,以至于PWM信号看起来像是一条直线,那么对于读取和写入PWM信号,会造成一定的影响。所以如果你的电调运行Oneshot125,那么不建议飞控的运行频率超过3.8Khz。这是为了让电调能够正确分辨出飞控输出的PWM信号之间的间隔。(不正确的信号会导致电调关闭)
如果电调运行的是Multishot协议,那么哪怕使用8Khz的飞控运行频率,都不会有任何问题。在你选择飞控的运行频率的时候,一定要注意和电调运行频率的匹配。
实际使用情况
事实上如果你使用越短的循环时间,尤其是越短的电调运行时间(比如Oneshot125,Oneshot42,Multishot)你能够把你的飞机调整到一个更高的更好的状态。飞机的反应会更迅速,姿态的保持能够更稳定。对于飞控的循环时间,也是越短越好。但是越短的运行时间有时候也会带来一点点不好的效果,尤其是你已经调整好了一架飞机,想要再优化参数的时候,你很难发现你改变了这些参数以后,飞机有什么变化。
实际上最重要的一点,当飞控的运行频率越快,控制器会试图将滤波器关闭,更快的采样频率会导致更多的额外噪声通过滤波器被采集到数据中去。大多数飞控都有一个低通滤波器(LPF)。低筒滤波器运行非常低的频率通过,然后滤出那些高频率的信号。这样滤波器就可以减少由震动产生的噪声,并且让采集到的信号更容易被飞控识别。(坏处是滤波器会增加一点点延迟)

因此,如果你使用更快的飞控运行频率会使你的飞机变得更吵闹(陀螺仪拾取了更多的噪声信号),当PID工作循环混进了更多噪声的时候,飞控没法读取那些好的信号。这些噪声多多少少会混进到控制信号中,这样调试变得困难,有些极端情况下噪声造成的过载会导致炸鸡。
我们来总结一下,飞控的运行频率主要取决于以下两点:
1:你的硬件支持的频率(电调,飞控)
2:哪种运行频率你飞起来的手感更好,你可以改变设置来尝试不同的运行频率

对于现在大多数穿越机使用的机架和电调来说,我认为1Khz或者2khz是一个比较靠谱的运行频率。如果你有一个高质量电调飞控和高刚性的机架,那么你可以想用什么频率运行就用什么频率运行。但是需要注意的是,你是不是一个好的飞手,并不是取决于你到底是用1khz的频率还是8khz的频率。重要的是,你是不是经常练习,以及是否正确的调试好你的飞机。我最喜欢的kissflight飞控只使用1khz的运行频率,但是飞机调试的非常跟手,并能跟上我自己独特的操作风格。我也在装Cyclone飞控的250多轴上面运行过4khz的频率,可以注意到尽管有大量噪声产生(不是非常严重)但是飞机的操控依然很好,飞起来也很有乐趣。







发表于 2016-9-28 23:55:48 | 显示全部楼层
路过!
发表于 2016-9-28 23:59:13 | 显示全部楼层
程序里面的主循环叫loop,looptime就是主循环完整执行一遍的时间,所有的其他函数都由主循环调用。
发表于 2016-9-29 08:02:04 | 显示全部楼层
看看……
发表于 2016-9-29 09:09:01 | 显示全部楼层
路过帮顶
发表于 2017-11-14 11:11:01 | 显示全部楼层
路过,学习中。。。谢谢
发表于 2017-12-6 09:12:15 | 显示全部楼层
好贴,学习!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!