日志分析案例研究:飞线¶
分析飞行日志可以帮助您诊断任务中出现的问题。本案例研究为您提供了一个飞行实例,通过分析日志数据,我们的常驻专家安德鲁-特里吉尔(Andrew Tridgell)建议增加航点半径,以纠正飞机无法完成整齐导航路径的问题。原始论坛帖子 **这里***.
DIY Drones 会员 Iskess 发布了他的 X8 飞机使用 APM 代码 2.73 的日志。他描述了自动起飞时的一个问题,即他的飞机在 FBW 模式下没有达到足够的倾角(只有约 30 度),但在自动模式下却完美地使用了 60 度的倾角。Iskess 指出,飞行开始时,飞机在严格设置的航路点周围绕了几圈,直到飞行日志记录了 77.2% 时才开始使用 FBW-B。
5/23/2013 tlog 文件 (1.9 MB) - 从原始博文下载 **这里***.- X8 参数电子表格文件下载 (14 KB)
通过使用 `Mavgraph <http://qgroundcontrol.org/mavlink/mavproxy_startpage#mavgraphpy>`__特里奇提出了以下见解。
2013年5月29日,DIYDrones;发布到Plane 2.x软件论坛:**
"我们先来看看第二次自动飞行任务:
显然,它还需要改进。让我们看看能否找出问题所在。
首先,让我们绘制出需求滚动与实际滚动的对比图:
看起来不错!飞机正在快速、准确地实现所需的滚转。现在我们来检查俯仰:
虽然只偏差了几度,但效果并不理想。PTCH2SRV_* 参数还需要改进。我会在此基础上增加一些 I 术语(增加 PTCH_RATE_I 到 0.1),同时增加 PTCH_RATE_IMAX 到 1000 左右。
但这并不是导航问题的原因。让我们更仔细地查看一下您的关键导航参数:
WP_RADIUS: 8
NAVL1_PERIOD:18
NAVL1_DAMPING:0.8
ROLL_LIMIT_DEG: 60
对于这种航迹来说,偏离最远的是 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,以获得更快的转弯速度。
最后,让我们来看看您的海拔处理能力:
最明显的是,您开始执行任务时的高度远高于任务高度 61 米。这就增加了使用日志进行导航调整的难度,因为飞机在导航的同时还在努力下降。一旦到达目标高度,它就能很好地保持住,变化幅度约为 10 米。这并不是很好,但使用 APM 中的当前控制器很难调整 X8,使其在转弯时保持良好的高度操控性。您需要使用保罗正在开发的新型 TECS 控制器才能获得真正的好结果。因此,目前我不建议在这里做任何改动。
关于 FWB-B,分析起来可能有点棘手,这也是我添加 ELEVON_OUTPUT 的原因之一,因为它能让需求滚转分析变得更容易!正如您在下文中看到的,计算升降舵的需求侧倾有些棘手。
首先,我们应该抓住在 FBW-B 状态下的需求和实现的滚动:
可以看到,X8 很好地实现了要求的滚转。在平飞时,滚转有点抖动(可能是升降舵太松,还是风的影响?
现在,让我们来看看你的遥控输入与要求的翻滚对比情况。要求的滚动显示为蓝色,您的遥控输入显示为绿色和红色。
您设置的遥控限制是
从图中还可以看出,您对发射机进行了一些微调。从图中 nav_roll 为零的部分可以看出,每个通道的遥控输入都在 1420 左右。这一点很重要。
让我们放大一下 FBWB 飞行中你试图急速右转的部分:
您可以看到,发射机输出的数值与无线电校准时设置的限值相差甚远。两个通道的平均值略高于 1700,比微调值高 320,比 RC1_MAX 低 227。
现在我们知道它的输出是高于微调的 320 PWM,高于微调的全范围是 1420 至 1927,而滚动极限是 60 度。这是一个简单的线性比例来获得需求滚转,因此对应于 320/(1927-1420)*60 度的需求滚转,即 37.8 度。这与飞机获得的导航滚动和最终飞行的情况相符。
请注意,我在上面的计算中走了一些捷径。带升降舵的需求滚转的完整计算比较复杂。请参阅 radio.cpp 在 read_radio()
功能。
(如果你读过这段代码,就会明白为什么我不喜欢 ELEVON_MIXING 选项,而更喜欢更简单的 ELEVON_OUTPUT 代码!)。
要回答您的问题,您的发射机提供的遥控输出远小于 RC1_MAX 和 RC1_MIN 您在(飞行)控制器中设置的值(可能是您在进行无线电校准时设置的)。这就是为什么它的翻滚没有达到您的要求。
干杯,特里奇"