日志分析案例研究:飞线

分析飞行日志可以帮助您诊断任务中出现的问题。本案例研究为您提供了一个飞行实例,通过分析日志数据,我们的常驻专家安德鲁-特里吉尔(Andrew Tridgell)建议增加航点半径,以纠正飞机无法完成整齐导航路径的问题。原始论坛帖子 **这里***.

DIY Drones 会员 Iskess 发布了他的 X8 飞机使用 APM 代码 2.73 的日志。他描述了自动起飞时的一个问题,即他的飞机在 FBW 模式下没有达到足够的倾角(只有约 30 度),但在自动模式下却完美地使用了 60 度的倾角。Iskess 指出,飞行开始时,飞机在严格设置的航路点周围绕了几圈,直到飞行日志记录了 77.2% 时才开始使用 FBW-B。

通过使用 `Mavgraph <http://qgroundcontrol.org/mavlink/mavproxy_startpage#mavgraphpy>`__特里奇提出了以下见解。

2013年5月29日,DIYDrones;发布到Plane 2.x软件论坛:**

"我们先来看看第二次自动飞行任务:

../_images/auto2.jpg

显然,它还需要改进。让我们看看能否找出问题所在。

首先,让我们绘制出需求滚动与实际滚动的对比图:

../_images/rolldemand.jpg

看起来不错!飞机正在快速、准确地实现所需的滚转。现在我们来检查俯仰:

../_images/pitchdemand.jpg

虽然只偏差了几度,但效果并不理想。PTCH2SRV_* 参数还需要改进。我会在此基础上增加一些 I 术语(增加 PTCH_RATE_I 到 0.1),同时增加 PTCH_RATE_IMAX 到 1000 左右。

但这并不是导航问题的原因。让我们更仔细地查看一下您的关键导航参数:

对于这种航迹来说,偏离最远的是 WP_RADIUS。您的平均飞行速度约为 18 米/秒,而 uBlox GPS 的滞后时间约为 0.6 秒,也就是约 11 米的飞行距离,这意味着您在经过航点之前不会转弯。如果这是您想要的,那就没问题,但如果您想让飞机整齐地转向下一个航迹,那就需要提前转向。

您的 ROLL_LIMIT_DEG 飞机改变姿态也需要一两秒的时间。(X8 并非快速反应飞机!它更像是在驾驶鳐鱼)。如果我们将 1 秒钟的飞行时间用于改变姿态,再加上 GPS 滞后和转弯半径,那么在 90 度转弯之前,您需要转弯大约 48 米,这样才能在轨道上整齐地转弯。(当然,这只是粗略估计,但不会相差太远)。所以 WP_RADIUS 48 左右,会产生更整齐的轨迹。

我还认为可以降低 NAVL1_PERIOD 再多一点。我没有看到任何编织,只是 X 轨道发生了变化,所以我想试试 15,看看是否能编织。你甚至会发现 13 也很有效。您需要进行试验,因为正确的值与机身有很大关系(甚至取决于您使用的舵机类型!)。您还可以将 ROLL_LIMIT_DEG 增加到 65,以获得更快的转弯速度。

最后,让我们来看看您的海拔处理能力:

./_images/alt.png

最明显的是,您开始执行任务时的高度远高于任务高度 61 米。这就增加了使用日志进行导航调整的难度,因为飞机在导航的同时还在努力下降。一旦到达目标高度,它就能很好地保持住,变化幅度约为 10 米。这并不是很好,但使用 APM 中的当前控制器很难调整 X8,使其在转弯时保持良好的高度操控性。您需要使用保罗正在开发的新型 TECS 控制器才能获得真正的好结果。因此,目前我不建议在这里做任何改动。

关于 FWB-B,分析起来可能有点棘手,这也是我添加 ELEVON_OUTPUT 的原因之一,因为它能让需求滚转分析变得更容易!正如您在下文中看到的,计算升降舵的需求侧倾有些棘手。

首先,我们应该抓住在 FBW-B 状态下的需求和实现的滚动:

../_images/fbwbdemroll.jpg

可以看到,X8 很好地实现了要求的滚转。在平飞时,滚转有点抖动(可能是升降舵太松,还是风的影响?

现在,让我们来看看你的遥控输入与要求的翻滚对比情况。要求的滚动显示为蓝色,您的遥控输入显示为绿色和红色。

../_images/rcin.jpg

您设置的遥控限制是

从图中还可以看出,您对发射机进行了一些微调。从图中 nav_roll 为零的部分可以看出,每个通道的遥控输入都在 1420 左右。这一点很重要。

让我们放大一下 FBWB 飞行中你试图急速右转的部分:

./_images/rczoom.png

您可以看到,发射机输出的数值与无线电校准时设置的限值相差甚远。两个通道的平均值略高于 1700,比微调值高 320,比 RC1_MAX 低 227。

现在我们知道它的输出是高于微调的 320 PWM,高于微调的全范围是 1420 至 1927,而滚动极限是 60 度。这是一个简单的线性比例来获得需求滚转,因此对应于 320/(1927-1420)*60 度的需求滚转,即 37.8 度。这与飞机获得的导航滚动和最终飞行的情况相符。

请注意,我在上面的计算中走了一些捷径。带升降舵的需求滚转的完整计算比较复杂。请参阅 radio.cppread_radio() 功能。

(如果你读过这段代码,就会明白为什么我不喜欢 ELEVON_MIXING 选项,而更喜欢更简单的 ELEVON_OUTPUT 代码!)。

要回答您的问题,您的发射机提供的遥控输出远小于 RC1_MAXRC1_MIN 您在(飞行)控制器中设置的值(可能是您在进行无线电校准时设置的)。这就是为什么它的翻滚没有达到您的要求。

干杯,特里奇"