导航飞行稳定调整¶
使用 L1 控制器进行导航飞行稳定调整¶
从 Plane 2.72 开始,新的导航控制器被称为 "L1 控制器"。与之前的串行跟踪和 PID 控制器相比,该控制器能生成更精确的航点和位置悬停飞行路径。
调整导航控制器通常需要调整一个关键参数,称为 NAVL1_PERIOD.默认值为 20,这可以为大多数遥控飞机提供合理的转弯。较小的 NAVL1_PERIOD 将导致更激烈的导航(更锐利的拐角)。数值越大,导航效果越柔和。您还可以调整 NAVL1_DAMPING 和 WP_RADIUS 进行进一步调整。
调整 L1 控制器的步骤¶
确保已经调试好滚转和俯仰控制器,正确修整飞机,并确保飞机在转弯时不会增加或降低高度。
确保您已设置 ROLL_LIMIT_DEG 根据飞机飞行时不会失速的倾角来确定合适的值。对于慢速飞行的电动滑翔机来说,5000(50 度)左右的数值是一个良好的开端。对于快速飞行的特技飞机,您可能希望使用更大的值,例如 6500(65 度)。
为飞机设置一个矩形飞行任务,并设置一个循环,让飞机不断重复飞行任务。确保任务的大小足够小,以便您能随时看到飞机的全貌
设置 NAVL1_PERIOD 为默认值 20,以及 NAVL1_DAMPING 为默认值 0.75。设置 WP_RADIUS 相当于飞机以巡航速度飞行 2 秒钟的距离。
起飞,使用发射机开关将飞机调至自动模式
观察飞机转弯时的表现。如果转弯太慢,则减小 NAVL1_PERIOD 如果转一圈后出现 "摆动",则增加 NAVL1_PERIOD 1或2
如果您要调试以获得最高性能,一旦您完成了对 NAVL1_PERIOD 您可以将 NAVL1_PERIOD 乘以 1,然后修改 NAVL1_DAMPING 以 0.05 为单位,以获得所需的响应。不要减少 NAVL1_DAMPING 过多--您不太可能需要低于 0.6 的值。
调整航点过渡行为¶
要控制 Plane 是飞过航点后转弯还是在航点前转弯,以便在下一段任务中整齐排列,您应该通过 WP_RADIUS 参数。如果想让 Plane 飞过航点,则设置 WP_RADIUS 为一个很小的数字,可能是 10 米。如果想让 Plane 在航点前转向,以便与下一段任务保持一致,那么设置 WP_RADIUS 为更大的数字。一个好的起始值是将其设置为飞机可以轻松实现的转弯半径。这通常与您的位置悬停半径相同 WP_LOITER_RAD.
L1 控制员背景及说明¶
L1 控制器概念基于以下技术论文:
S. 公园, J. 代斯特, 和 J. P. 如何, "一种新的非线性制导逻辑
轨迹 跟踪,美国航空航天协会制导、导航和飞行会议记录
控制 会议, 八月 2004. 美国航空航天协会-2004-4900.
这就是布兰登-琼斯最初提出拉取请求的依据: https://github.com/ArduPilot/ardupilot/pull/101
随后,保罗-里兹伯勒对这些算法进行了修改,修改内容如下:
L1 长度是动态计算的,以便用户能够指定跟踪环路的恒定周期,并使导航环路增益能够根据飞机地面速度的变化自动调整。为制导环路设定一个恒定的周期,可在不同的空速下提供一致的响应,并使调整参数与滚动飞机和测量其响应所需的时间相关联。
指导增益从固定值 2 改为根据以下因素计算 NAVL1_DAMPING 由用户设定值。这样就可以指定额外的阻尼,以补偿速度测量和飞机滚动响应的延迟。
使用一个融合 GPS 速度、空速和飞机航向的互补滤波器来估计地面速度矢量。这样就可以利用全球定位系统速度的精确性,而不受其内在延迟的限制。
对轨迹捕捉算法进行了修改,以实现对轨迹捕捉角度的明确控制。
对 RTL、GUIDED 和 LOITER 模式中使用的航点圆跟踪算法进行了修改,以使用修改后的 PD 控制律,而不是 L1 控制律。这样做是必要的,因为这样可以使较小的闲置半径与较大的 NAVL1_PERIOD.
从下一个航点到开始转向下一个轨迹段的距离被修改为使用算法动态计算的 L1 长度,但不得大于 WP_RADIUS.这样,用户就可以选择是飞过航点后再转向,还是提前转向并平稳地拦截下一个航迹。