为自主特技飞行进行调试¶
首先,确保您的飞机能够进行精确特技飞行。它不仅要能机头向上原地盘旋,还要能从盘旋中垂直加速,即具有无限垂直爬升能力。它还必须能够进行持续的刀锋飞行,即有足够的侧翼面积进行刀锋飞行。
其次,普通的 ArduPilot Autotune 可为大多数载具提供安全、稳定的 PID 调整。因此,它并不适合需要严格调整的精密特技飞行。
本文将讨论如何获得更优化的调整。
设置¶
确保 COG 设置正确。车头重的载具性能会很差。尾部重型载具需要大量维修。
设置 调度循环速率 = 200
设置 ONESHOT_MASK 与控制飞行表面的伺服器相匹配,假设这些伺服器是数字伺服器,信号频率为 200Hz
设置 ins_gyro_filter = 40Hz 以增加相位余量。确保电机/螺旋桨平衡良好,控制面铰链无松动,以尽量减少滤波升高时的振动。
根据机身侧面积的大小,要获得足够的刀刃性能,可能需要设置
AEROM_KE_ANGLE
将 plane_aerobatics.lua 参数设置为 5-15 度,以便在刀刃、滚圈等情况下保持足够的高度。
验证速率功能¶
"这款" 螺距速率, ACRO_ROLL_RATE和 ACRO_YAW_RATE 必须设置为小于机身的能力。每秒分别为 180、360 和 90 度的值足以满足特技飞行的需要,但应核实这些值小于飞行器的最大能力。
在手动模式下进行一次飞行,在所有轴上完全移动操纵杆,以确定可以获得的最大旋转率。使用 IMU[0].GyrX(以弧度/秒为单位的滚转)、IMU[0].GyrY(以弧度/秒为单位的俯仰)和 IMU[0].GyrZ(以弧度/秒为单位的偏航)分析飞行日志信息,将显示所获得的速率。
下图是 MAVExplorer 中的日志信息图(转换为度数/秒),这些日志信息来自 MANUAL 中飞行器的飞行日志,该飞行器进行了全摇杆移动,以建立最大速率能力:
该飞行器绝对能够达到 360 度/秒的滚转速度,而 180 度/秒的俯仰速度也是可以接受的(由于空速的变化,它在循环过程中会有所变化,但 180 度/秒是平均值),90 度/秒的偏航速度也是可以接受的。
请注意,偏航率检查应在短时间内移动操纵杆,而不是长时间完全偏转操纵杆,以防止载具在气流中剧烈滑动时速度过快。
自动飞行稳定调整¶
设置 AUTOTUNE_LEVEL = 8,并进行 自动调整 飞行。一定要准备好 启用偏航速率 =1,并调整所有三个轴。
备注
启用偏航控制器后,转弯时不仅需要副翼,还需要自动调整方向舵!
检查 PIDS¶
从自动调整飞行开始,检查日志中是否有正确的 FF PID,并收紧 P 和 D 项。下面我们将查看实际日志,并通过比较自动调整俯仰过程中摇杆运动所要求的 "目标"(PIDP.Tar 日志信息)速率与 IMU 测得的实际俯仰旋转速率(PIDP.Act),检查自动调整的俯仰部分结果如何。
随着在整个调整过程中调整 FF(首先优化 D,然后优化 P),匹配效果越来越好,正如预期的那样。
FF¶
这一调整确定的数值为 0.285,即 PTCH_RATE_FF.我们可以利用该值绘制下图来验证其准确性。
由于两幅图的大小非常接近,我们知道在这种情况下,FF 项是正确的。如果存在差异,可以调整第一个图形中的 FF 值,直到获得匹配为止。这就是该轴的正确 FF 值。
P 和 D 拉伸¶
通常情况下,自动调整后的 FF 会非常精确,但为了确保大多数载具的安全,D 值和 P 值会一直调整到出现不稳定性为止,然后再降低 1/3,以保证较大的安全系数。自动调整过程中的日志图说明了这一点,图中显示 D 值和 P 值一直调整到出现不稳定(PIDP.Dmod <1),然后再降低 1/3。虽然这样做是安全的,但并不是响应的最佳方式,因此将这些值调回 1.5-2 倍将会提高响应速度。不过,如果出现不稳定情况,请做好切换回手动模式的准备。
因此,在这个例子中,我们将更改 PTCH_RATE_D 从 0.0016 到 0.0032,以及 PTCH_RATE_P 从 0.11 到 0.22,然后进行试飞。
确认试飞¶
对所有轴进行上述分析。
验证并修改 PIDS 后,再次飞行,如果不稳定,随时准备恢复 MANUAL 控制。滚圈技巧是最难使用软调整飞行器执行的技巧之一,因此请尝试该技巧。如果不能很好地保持高度,则应分析该动作中的俯仰或偏航调整,并进行调整,前提是没有其他问题,如动力或机身侧表面积不足。