极限循环检测

ArduPilot 提供极限周期检测功能,以帮助减少或消除控制回路中因调整增益过大而产生的振荡。该算法会监控执行器的回转率,如果超过 _SMAX 参数设置的限制,就会降低控制回路增益,试图阻止振荡。这些参数是

为固定翼的俯仰和滚转控制面检测限值。

限值应设置为不超过推杆最大回转速率的 25%,以考虑负载效应。

例如,对于大多数指定 0.1s 速度为 60 度偏转(600deg/s)的舵机,该值不应超过 150,这是默认值。

用于 QuadPlane 执行器(电机、表面、倾斜伺服器,视机架类型而定):

它们的单位不同(每秒激活次数),默认值为 50,由于它们的单位过高,因此实际上会使其失效。目前,将它们设置为激活状态会干扰 QAUTOTUNE,这将在未来得到纠正,但它允许在 PIQx.SRate 日志信息中记录实际回转速率。

当超过这些值时,相应的 PID Dmod 日志数据(PIDR.Dmod、PIQP.DMod 等)将在图中显示低于 1 的尖峰值,表明增益降低。理想的调整会在运行过程中偶尔出现这种情况,但并不频繁。通过检查记录的 PIDx.SRate 信息,可以查看实际使用的回转速率,并适当设置这些 _ SMAX 值,使其处于或略高于一般峰值回转速率。

平面间距的例子:

./_images/dmod.png