Betaflght是穿越机中使用相当广泛的一款开源飞控,为了让国内更多玩家了解betaflght的更新和调试,我现将官方wiki上的调试笔记翻译过来。
官方链接在此:https://github.com/betaflight/betaflight/wiki/3.5-tuning-notes
Betaflight 3.5介绍:
****一种新的前馈PID系统
****反重力改进
****错误修复和优化
实际上,这些变化应该:
****显着改善偏航(yaw)性能并使调整更容易
****允许更集中的噪音接收和/或更少的延迟,特别是在制作工艺良好的四轴上。
3.5 RC1是实验性的。 请在飞行前确认CLI中的所有PID更改。完整的配置器,Lua,Blackbox和OSD支持将会发生,但还不会出现。
Configurator 10.4和Log Viewer 3.2或更高版本即将推出,可与3.5配合使用。
我可以更新并飞行吗?
是的,特别是直接使用默认值飞行......但是:
****如果您从3.4之前的版本进行更新,请阅读Betaflight 3.4 Tuning Notes(),因为它们也适用于3.5。
****如果您有自定义的D weight和过渡,您对快速杆输入的敏感度可能会有所不同。您可能需要修改新的前馈和前馈过渡值以反映旧设置。
****新的Anti Gravity代码默认为SMOOTH,并且应该比之前更好,但是如果你讨厌它,你可以回到旧STEP方法。
****你将获得比以前更好的动态陷波功能,但为了在一架良好的四轴上真正改善滤波,应该从默认值修改设置。
****D weight设置(包括通过OSD或Lua进行的更改)将被忽略。
再见D Setpoint Weight:
您好前馈(Feed Forward)!
这可能是近年来最大的变化: 不再是D Setpoint Weight。
前馈(Feed Forward)现在接管D Setpoint Weight的作用,并且可以针对每个轴(俯仰,滚转和偏航)单独配置。
set f_pitch = 60,
set f_roll = 60,
set f_yaw = 60,
Allowed range: 0 - 2000
FF(即Feed Forward)的默认值(60)与之前的3.4默认值相当。
注意:在从先前版本更新时,在每个PID配置文件中,您的旧D重量设置将丢失。
要开始使用具有与旧D加权方法完全相同的前馈行为的3.5,请将FF计算为(D/26)*D_Weight,其中D是您的PID'D'值,D_Weight是D_Weight滑块值的100倍,或者您的确切dterm_setpoint_weight值来自CLI。例如,如果你的D是26,你的D重量滑块是1.0,那么等效的FF就是100.如果你的D是52,而D的重量是100,那么200的FF会在那个轴上飞行。Yaw FF被进一步覆盖。
您可能还必须手动更新过渡值,但数值单位和操作方法是相同的。
前馈提供“动态打杆增强”或“动态打杆响应”。当摇杆快速移动时,它会更快地将四轴推入转弯响应中。使用前馈,杆移动得越快,推动越大。并且它不会等待任何错误发展,响应是瞬间的。
前馈效果通过过渡参数在中心杆周围衰减,因此通过设置过渡到0.5或0.1,可以使四轴在自由式飞行中心周围更加阻尼(更少抽搐)但是对于比赛和直接响应它是最好将转换保留为0。
零前馈允许D始终抑制四边形,即使指示四轴快速转动也是如此。前馈太多可能会使四轴过于抽搐,并可能导致过冲。
默认FF值为60是“中等范围”值。
通常,对于响应性竞赛导向四轴,大约100的FF值是合理的量。
对杆输入的总体响应性取决于P和FF。不再需要或不希望保持增加P以改善瞬态杆响应性。添加FF是一种比添加P更好的实现棒响应的方法。
偏航前馈
偏航性能在历史上一直弱于俯仰和滚转,导致人们偏航高水平的偏航P,导致噪音和摇摆,过冲和反弹的摆动。
不再! 在3.5中,偏航通常与俯仰和滚转一样响应和精确。
在所有四轴上推荐至少50个偏航的FF。默认值为60。
为了获得更好的偏航响应性,P不需要超过40-60,实际上较低的P会降低偏航噪声并反弹。
非常高的偏航我在大多数四轴上工作得很好,而且(奇怪的是)当与偏航前馈相结合时,实际上减少了反弹。
随着这些变化,偏航响应性将比俯仰和滚动更好或更好。使用前馈和偏航时的高I,反弹将是最小的,并且不需要在这些设置上运行iTerm_Relax。(I值释放)
** Yaw D是实验性的。对于普通四轴,不要向偏航添加任何D,否则你可能会发生偏航振动。** Yaw D 可能对于三轴有用。
这些是我个人推荐用于典型穿越机的偏航相关值:
set iterm_relax = RP
set p_yaw = 40
set i_yaw = 120
set d_yaw = 0
set f_yaw = 100
更平滑的Anti_Gravity(反重力)
四轴,特别是电池放在底部的穿越机,其重心低于推力中心,或者增加气流倾向于使四边形向后旋转。这就需要累积i值以保持设定的俯仰角。穿越机向前飞行时,当油门杆在飞行中快速上下移动,这样的穿越机(电池下置)可能会上下抬头,即俯仰角不能保持。反重力是Betaflight功能,可帮助我们更快地适应油门快速变化后所需的新i值。
在3.5之前,Anti_Gravity使用“全部或没有”方法。每次新的油门值到达时,如果油门的步骤变化超过阈值,则乘以Anti_Gravity_Gain量。但如果下一步只是低于阈值,那么什么都不会发生。
由于RC步骤之间的时间间隔因无线电而异,因此每步的节流阀更改量可能会发生很大变化。因此,反重力效应是否真正起作用是一种碰运气的事。
新的默认set anti_gravity_mode = SMOOTH模式增加I与油门变化率的平滑比例。没有突然的步骤,也没有担心的阈值 - 旧的阈值被忽略。
可以通过增加或减少anti_gravity_gain参数来改变效果的整体强度。您的旧值应该是一个很好的起点,但建议使用默认值5000。
注意:当踩油门难以归零时,流入道具可以反转,造成明显的俯仰和滚动不稳定,所以不要指望飞机在这些条件下保持的角度坚如磐石。
可以通过选择选择旧方法set anti_gravity_mode = STEP。
动态陷波滤波器调整
Dynamic Notch是有效噪声管理的重要因素。
3.5改进了算法并允许通过CLI进行调整。在许多设置中,适当的改变可以导致更少的延迟和/或甚至更好的噪声控制。
使用默认值可保留旧行为。
具有相对坚硬的框架,良好的马达和新道具的四轴飞行器通常具有干净的噪声曲线,除了一个噪声峰值随着电动机噪声增加而增加。
在这些四轴上,旧的动态陷波代码在高油门时段期间往往过低,在不消除噪声的情况下显着增加延迟。
对于嘈杂的四轴(自身噪声大),旧的动态陷波最终保持在200到300Hz之间的范围内,更像是一个固定的陷波。
代码更改为:
对后置滤波器,后陷波输入数据进行操作,这样如果你添加一个陷波,动态就不会在同一点上结束
忽略有时将其推得太低的低频输入
更好地跟踪峰值
如果没有峰值,则达到最高值,以尽量减少延迟
允许用户配置品质因数,以便它可以跟踪更广泛的输入数据
允许用户设置凹口的宽度,更窄,导致更少的延迟。
重要提示:电机发热的自身噪声大的四轴应保留默认值。
调整动态过滤器 - 对于自身噪声小的四轴
dyn_notch_quality是CLI值,用于设置允许陷波滤波器移动的范围。从技术上讲,这设置了输入带通滤波器的Q因子。
旧的动态陷波Q因子和当前默认值是70.这限制了动态到相对窄带的移动范围,通常在240和300Hz之间。将dyn_notch_quality设置为5可以将带宽打开到150到600Hz之间的范围。这在干净的四边形上非常有效,它具有明确的电机速度相关峰值,运行频率高达600Hz。
dyn_notch_width_percent设定动态缺口的宽度。如果设置为20,则陷波将是中心频率的+/- 20%。如果算法将中心频率设置为300,则20%宽的陷波将覆盖240到360的范围。
当前默认值为50%,即旧动态过滤器的宽度。给定旧滤波器的典型中心值,这导致宽的陷波,这导致有意义的额外延迟。
在干净的四轴(自身噪声小的意思)上,动态可以缩小到20%,并且仍然可以很好地工作。
对于中等噪声的四轴,请尝试:
set dyn_notch_quality = 15
set dyn_notch_width_percent = 30
对于非常干净的四边形,请尝试:
set dyn_notch_quality = 5
set dyn_notch_width_percent = 20
要查看缺口的中心频率在黑盒中的每个轴上的作用,并记录原始陀螺:
set debug_mode = FFT_FREQ
关于Feed Forward的更多细节3.5
在3.5之前,前馈因子包含在D计算中,并且每当您添加D时都会增加。
由于以下原因,旧的D weight方法是不合需要的:
从概念上讲,这令人困惑。我们将一个提高棒响应能力的因素与一个应该抑制反应的因素联系起来。这有很好的理由,但确实很复杂。
以前,当在快速棒输入之后添加D以调出摆动时,转弯率同时增加,因此不可能“仅添加更多D”。现在,当添加更多D时,你得到的只是......更多D.所以D可以通过添加它来控制P摆动的经典方法进行调整。
以前,D的任何变化都会改变你的前馈或坚持响应的程度。现在他们完全独立了。
我们现在可以在黑盒日志查看器中独立绘制前馈和D元素,准确显示D的作用,以及D和FF对pidSum的贡献。这简化了黑盒辅助调整。
前馈需要启用RC平滑(滤波方法最好)。如果没有RC平滑,前馈将在电机走线中产生尖峰,并防止固件在任何未平滑的通道上禁用前馈。因此,默认值已更改为启用所有通道的平滑(rc_interp_ch = RPYT)。
网友评论