极限循环检测¶
ArduPilot 提供极限周期检测功能,以帮助减少或消除控制回路中因调整增益过大而产生的振荡。该算法会监控执行器的回转率,如果超过 _SMAX 参数设置的限制,就会降低控制回路增益,试图阻止振荡。这些参数是
PTCH_RATE_SMAX 对于间距
RLL_RATE_SMAX 用于滚动
为固定翼的俯仰和滚转控制面检测限值。
限值应设置为不超过推杆最大回转速率的 25%,以考虑负载效应。
例如,对于大多数指定 0.1s 速度为 60 度偏转(600deg/s)的舵机,该值不应超过 150,这是默认值。
用于 QuadPlane 执行器(电机、表面、倾斜伺服器,视机架类型而定):
q_a_rat_pit_smax 用于 VTOL 螺距
q_a_rat_rll_smax 用于 VTOL 左平移/横滚
q_a_rat_yaw_smax 用于 VTOL 偏航/航向
Q_P_ACCZ_SMAX 用于 VTOL 位置控制
它们的单位不同(每秒激活次数),默认值为 50,由于它们的单位过高,因此实际上会使其失效。目前,将它们设置为激活状态会干扰 QAUTOTUNE,这将在未来得到纠正,但它允许在 PIQx.SRate 日志信息中记录实际回转速率。
当超过这些值时,相应的 PID Dmod 日志数据(PIDR.Dmod、PIQP.DMod 等)将在图中显示低于 1 的尖峰值,表明增益降低。理想的调整会在运行过程中偶尔出现这种情况,但并不频繁。通过检查记录的 PIDx.SRate 信息,可以查看实际使用的回转速率,并适当设置这些 _ SMAX 值,使其处于或略高于一般峰值回转速率。
平面间距的例子: