跳转至

日志采集、解码与质量门禁

“有日志”不等于“日志能回答问题”。一个文件可能完整记录模式切换,却因采样不足无法判断高频振动;也可能包含姿态曲线,却因关键时段发生日志丢帧(dropout)而无法解释失控起点。

本节把日志质量判定放在故障解释之前。分析者先提出具体问题,再判断身份、时间、字段、采样和缺口是否足以回答该问题。

日志适用性四级门禁

前提条件

  • 已完成证据保全与初始分诊中的现场安全、原件封存和初始清单;
  • 证据主副本已计算摘要并限制写入,当前使用分析副本;
  • 飞行器、固件、配置、任务和时钟身份先记录已知部分;允许通过本节只读初步解码回填未知项;
  • 已记录日志设备、记录配置、取得工具和取得过程;
  • 分析问题已具体化,例如“解锁拒绝的首个条件是什么”,而不是“看看哪里不对”;
  • 不会为取得日志而重新装桨、解锁或覆盖现场状态。

从问题反推所需证据

问题 最低字段或证据 常见不足
为什么无法解锁 解锁请求、禁用标志、健康检查、模式、传感器与消息 未解锁时未记录日志
是否发生飞控重启 启动标识、运行时间、日志边界、电源、地面站事件 只有飞行中单一日志
是否先失联再触发安全动作 接收状态、链路质量、输入、模式、失效保护状态和动作 发射机与飞控时钟未对齐
是否为机械振动 原始或足够高频的惯性数据、采样率、转速/输出和稳定窗口 低抽取率、混叠、削波
是否为控制振荡 目标、实际、误差、控制项、执行器输出和饱和状态 只看陀螺仪,不看命令
是否为动力故障 输出命令、电压、电流、转速/遥测、姿态响应和物理证据 传感器刷新慢、无单路反馈
是否为导航异常 估计器状态、创新或一致性、传感器质量、模式、任务和位置 只有地图轨迹截图
是否为串口或遥测拥塞 字节/包计数、错误、队列、消息率、端口配置和供电 只看到“无数据”

字段存在仍不等于字段可信。还要核对单位、更新率、量程、传感器实例和固件语义。

原始取得

机载存储仍可安全读取

  1. 记录存储介质外观、标签和安装位置;
  2. 按01区分位流镜像和逻辑取得;事故级可拆卸介质优先写阻断成像;
  3. 不运行格式化、修复、清理或“优化存储”;
  4. 保存介质或逻辑目录结构、文件名、大小和时间戳;
  5. 计算镜像或第一次逻辑副本的摘要,并记录输入输出错误;
  6. 对可能相关的前后日志一并保存;
  7. 将第一次读取失败、重试和错误信息写入处理记录。

只能通过飞控下载

  1. 先评估上电是否会新建日志、覆盖环形空间或改变配置;
  2. 拆除螺旋桨并隔离执行器;
  3. 使用受控电源,记录上电时间;
  4. 禁用会自动同步、升级或写参数的软件行为;
  5. 使用与固定版本兼容的官方下载路径;
  6. 下载后立即计算摘要;
  7. 保留工具输出和失败记录;
  8. 断电并重新封存设备。

文件损坏

恢复工具只能作用于介质镜像或工作副本。保存:

  • 损坏原件;
  • 镜像摘要;
  • 恢复工具和版本;
  • 完整命令;
  • 恢复前后文件;
  • 被跳过、插补或重建的区间;
  • 恢复文件的用途限制。

修复后“能够打开”不表示缺失内容已恢复。

固定解码环境

每次分析记录:

原始文件摘要:
工作副本摘要:
固件平台和固定版本:
日志格式版本:
解码器、查看器和版本:
插件、脚本和提交:
操作系统或容器标识:
解码命令:
警告与错误:
输出文件摘要:

优先使用与固定固件版本对应的官方或项目维护工具。不同版本的解码器可能改变字段名、单位、枚举和错误恢复方式。

网页查看器若要求上传日志,应先评估数据敏感性、访问控制、保留政策和合规要求。位置、视频、任务、设备标识和操作者信息都可能属于敏感数据;不能确认边界时使用本地工具或脱敏副本。

日志适用性门禁Q0至Q3

Q0:不可用

满足任一情况:

  • 文件为空、无法识别或解码失败;
  • 固件、飞行器或事件身份无法对应;
  • 时间轴大范围倒退、重复或断裂;
  • 目标时段完全缺失;
  • 只有截图或二次导出的曲线,没有原始数值;
  • 文件曾被覆盖,且无法证明剩余内容属于当次事件。

Q0日志不能用于判断根因。可以保留“文件为何不可用”这一事实,并转向视频、地面站、发射机、物证和现场记录。

Q1:有限

典型情况:

  • 文件可解析,能确认启动、模式或告警顺序;
  • 采样率不足以分析目标动态;
  • 关键字段缺失或字段更新率不明;
  • 时间同步误差较大;
  • dropout存在,但未完全覆盖全部事件;
  • 参数快照缺失,无法确定部分语义。

Q1只支持明确、低频、粗粒度事实。不得从低频记录推断高频振动,也不得把没有记录到事件解释为事件没有发生。

Q2:可诊断

针对当前问题同时满足:

  • 飞行器、固件、参数和事件身份可对应;
  • 目标时段可定位且时间戳连续;
  • 所需字段存在,单位、实例、量程和更新率已确认;
  • 采样链与问题带宽匹配;
  • dropout已量化且不覆盖关键动作;
  • 命令、状态、响应和环境证据可以对齐;
  • 原始文件与派生处理可追溯。

Q2允许检验当前问题的假设,不代表日志对所有问题都可用。

Q3:可复核

在Q2基础上还具备:

  • 原始文件、解码器、脚本、处理参数和输出摘要已固定;
  • 时间窗口、排除规则、单位和坐标转换完整;
  • 独立分析者能够从同一证据主副本复现解码数据、图表和日志内结论。

Q3只提高日志处理的可复核性,不修补历史日志缺失,也不自动增强因果结论。正常对照、外部测量、故障注入和纠正前后复测应另按因果证据强度记录;不得为了追求Q3而重演故障。

时间连续性

检查:

  • 起始与结束时间是否合理;
  • 时间戳是否单调;
  • 相邻样本间隔的中位数、最大值和分布;
  • 是否有重启后从零开始的片段;
  • 每类记录是周期发布、事件触发还是变化触发;
  • 不同主题是否使用相同时间基准;
  • 字段使用硬件采样时间、记录时间、发送时间还是接收时间;
  • 队列、传输、缓存和滤波延迟;
  • 视频帧率是否恒定;
  • GNSS校时是否在事件中发生跳变。

对周期字段建议输出:

样本数:
持续时间:
中位采样间隔:
第95百分位间隔:
最大间隔:
缺口数量:
覆盖关键事件的缺口:

只看平均采样率会掩盖短时大缺口。事件触发或变化触发字段没有固定样本间隔,不能套用周期字段的缺口算法。

采样率、更新率和带宽

必须区分:

  • 控制循环频率;
  • 传感器内部输出数据率;
  • 主题或字段更新率;
  • 日志抽取率;
  • 存储写入节奏;
  • 解码后的重采样率。

若记录率为控制循环的(n/d),理想有效采样率近似:

[ f_s=f_{loop}\times\frac{n}{d} ]

理想奈奎斯特频率为:

[ f_N=\frac{f_s}{2} ]

实际可信带宽还取决于抽取前抗混叠滤波、时间抖动、字段异步更新和dropout。把低率数据插值到高率不会产生新的信息。

dropout判定

先区分:

  • 记录器明确报告的dropout;
  • 由帧序号、记录序号或平台统计确认的丢失;
  • 生产者停止发布;
  • 事件或变化触发字段本来就没有周期更新;
  • 解码器因损坏记录而跳过的恢复区间。

分别使用平台证据:ULog的dropout记录、DataFlash的DSF等统计、Blackbox帧与解码统计,或协议序列计数。不能仅因某字段一段时间未变化就认定日志丢失。

对每个已确认或疑似缺口记录:

  • 开始时间和持续时间;
  • 受影响字段;
  • 是否覆盖命令、状态转换或异常起点;
  • 缺口前后值是否连续;
  • 解码器是否报告损坏记录;
  • 存储、处理器负载或通信是否有同步异常;
  • 当前问题是否仍可回答。

禁止用直线连接跨越缺口后再判断过冲、频率或先后顺序。

如果已知关键动作实际发生但落在缺口内,应记为已执行但不可观测/不可判定未测试只用于动作确实没有执行。

单位、坐标系和实例

分析前固定:

  • 角度与弧度;
  • 度每秒与弧度每秒;
  • 重力加速度与米每二次方秒;
  • 电压、电流、功率和容量;
  • 机体系、导航系和地理坐标系;
  • 正方向、轴映射和传感器安装旋转;
  • 原始、滤波后和估计后的信号;
  • 主传感器与备用传感器实例;
  • 目标值、测量值和误差值。

同名字段在不同平台不能直接拼接。坐标转换必须保留公式、输入单位和验证样例。

四平台日志入口

Betaflight 2026.6.2

  • 保存原始Blackbox文件和完整配置导出;
  • 核对目标板、实际PID循环、Blackbox记录比例和日志设备;
  • 设备为NONE时,界面存在Blackbox配置不代表有机载记录;
  • 检查日志头、帧类型、时间、丢帧和调试模式;
  • 诊断所需字段可能依赖固定版本、目标资源和debug_mode
  • 用工作副本进入Blackbox Explorer或兼容解码器。

若改变debug_mode或记录率来补证,该改动属于新的诊断配置,必须记录并在拆桨条件验证;新日志不能反向证明历史事件中未记录的信号。

INAV 9.1.0

  • 保存Blackbox原始文件、完整配置和固定版本信息;
  • 核对记录设备、控制循环抽取比例和字段配置;
  • 低记录率适合延长时长,不自动适合振动和快速控制诊断;
  • 导航问题同时保存模式、估计状态、GNSS、航向、任务和遥控字段;
  • 先处理文件损坏和dropout,再解释曲线。

ArduPilot Copter 4.7.1

  • 保存DataFlash原始日志、参数和地面站遥测日志;
  • 使用消息、模式、错误、估计器、输入、输出、电源和惯性字段建立时间线;
  • 通过日志统计或DSF等记录核对丢失记录,字段存在性以固定版本消息定义为准;
  • 无法解锁问题可能发生在正常飞行日志开始前;
  • 经专项批准可在拆桨状态配置未解锁日志以捕获预解锁事件,但不能借此关闭检查或直接解锁;
  • 新增日志配置后检查存储空间、性能影响和恢复步骤。

PX4 v1.17.0

  • 保存原始ULog、参数、机型配置、事件和地面站日志;
  • 核对ULog元数据、主题实例、更新率、dropout和日志开始条件;
  • 默认日志不保证包含高频分析需要的全部主题;
  • Flight Review或其他查看器输出是派生结果;
  • 上传第三方服务前评估位置和任务数据的隐私;
  • dropout覆盖异常起点时,不得把前后两段强行拼成连续因果链。

派生处理

每次处理只解决一个问题,并记录:

  1. 输入文件摘要;
  2. 选取时间窗口及理由;
  3. 排除起飞、着陆、撞击或缺口的规则;
  4. 单位和坐标转换;
  5. 去趋势、滤波、窗函数、重叠率和FFT长度;
  6. 插值或重采样方法;
  7. 输出图表和数据;
  8. 处理脚本摘要或提交;
  9. 结果适用范围。

若处理会改变峰值、相位或事件时间,应保留处理前后对照。

日志质量审查步骤

  1. 明确待回答问题和目标时间段;
  2. 核对原始摘要和工作副本;
  3. 用固定版本工具解码并保存警告;
  4. 确认平台、固件、飞行器和配置身份;
  5. 检查时间单调性、重启边界和多源时钟偏差;
  6. 列出所需字段及实际存在字段;
  7. 核对单位、实例、坐标系、量程和更新率;
  8. 量化dropout和损坏区间;
  9. 判断采样链是否覆盖问题带宽;
  10. 对每个问题分别给出Q0至Q3;
  11. 写明允许结论和禁止结论;
  12. 决定补证方法,优先选择最低风险环境。

通过标准

日志质量审查完成应得到:

  • 原件、工作副本和派生文件的摘要链;
  • 固定解码环境;
  • 统一时间线和同步误差;
  • 字段、单位、实例和更新率清单;
  • dropout和损坏区间清单;
  • 针对每个问题的Q0至Q3等级;
  • 独立记录E0至E2因果证据强度;
  • 允许与禁止结论;
  • 缺失证据和最低风险补证方案。

只有当前问题达到Q2,才进入基于该日志的详细故障判断。Q1可以用于分诊,但不能越级承担因果结论。本篇通过只表示日志适用性审查完整,不改变飞行批准。

停止条件

  • 工具准备修改或覆盖原始文件;
  • 文件摘要与清单不一致;
  • 固件或格式版本无法识别;
  • 解码警告被工具静默忽略;
  • 时间跳变、单位或坐标系无法解释;
  • 关键区间dropout;
  • 采样率或字段更新率不明,却准备做频谱或快速动态结论;
  • 上传服务的隐私和保留边界不清;
  • 为补日志需要装桨、解锁或飞行,但没有专项授权。

恢复措施

日志分析本身不改变飞行器。若为补证修改过日志配置:

  1. 保留修改前全量配置;
  2. 在拆桨状态写入单一日志改动;
  3. 重启后读取并验证;
  4. 完成低风险记录测试;
  5. 取得所需证据后撤销临时日志配置并回到旧基线作差异核对;
  6. 再次读取全量配置并比较差异;
  7. 未完全恢复时保持阻断

补证所得新日志与历史事件分开编号。

若旧基线本身含故障,只把它作为比较对象,不重新投入运行;修复内容另建纠正候选,完成分层回归和批准后才能成为新基线。

质量报告模板

问题编号与具体问题:
原始日志摘要:
固定解码环境:
飞行器/固件/参数身份:
目标时间段:
时间同步误差:
所需字段:
存在字段、单位、实例与更新率:
dropout与损坏:
采样链和可信带宽:
质量等级:Q0 / Q1 / Q2 / Q3
因果证据强度:E0 / E1 / E2
允许结论:
禁止结论:
待补证据:
最低风险补证方法:
当前飞行批准:阻断 / 部分恢复 / 恢复
批准范围、批准人与到期条件:

检查理解

  1. 为什么日志质量必须针对具体问题评级?
  2. 平均采样率正常时,为什么仍要检查最大样本间隔?
  3. 把低频数据插值到更高频率能否补回高频信息?
  4. 关键动作落在dropout内应如何标记?
  5. 为什么新配置取得的日志不能证明历史事件中的未记录信号?

主要参考