3. 航空航天HIL测试数据的类型与特征

在航空航天HIL(硬件在环)测试中,被测对象往往是飞控计算机、作动器控制单元、发动机控制器或综合航电设备。这些设备在真实飞机上通过传感器、总线、离散线和视频链路与外界交互,HIL台架必须用等效的电气信号和协议数据把这些交互"伪造"出来。因此,HIL测试数据并不是单一形态,而是由模拟量、数字量、总线数据、视频流和日志文本等多类数据共同构成的混合数据体。理解它们的分类与时空特性,是后续数据采集、存储、回放和判读的基础。

一、按物理形态与语义分类

模拟量是连续变化的电压或电流信号,典型如迎角传感器输出的0~5V、±10V的舵面位置反馈、4~20mA的压力变送器信号。它的核心特征是"连续":在时间轴上无间断,在幅值上可取区间内任意值。HIL中通常由D/A板卡或模拟信号板卡产生,采样率常见为1kHz~10kHz,量化位数为16位或24位。模拟量的难点在于精度与噪声——例如一个±10V、16位量化的通道,理论分辨率为20V/65536≈0.305mV,但若地线处理不当,引入的共模噪声可能达到数毫伏,直接淹没小信号。

数字量是离散的开关或电平信号,如起落架收放到位开关、离散指令、使能信号。它只有高/低两种状态,通常以TTL电平或28V离散量形式存在。数字量的时间特性比幅值更重要:一个"起落架收上到位"信号从0变1的时刻,可能对应着飞控逻辑中的关键状态迁移。因此数字量采集必须记录边沿时刻,抖动和去抖时间(如20ms)需要在数据中体现。

总线数据是航空航天HIL中最具代表性的数据形态,包括ARINC 429、MIL-STD-1553B、CAN、AFDX等。以ARINC 429为例,它是一条单向总线,以32位字为单位,典型速率12.5kbps或100kbps,每个字包含标号(Label)、源/目的标识(SDI)、数据域和奇偶校验。1553B则是命令/响应式双冗余总线,消息以1Mbps传输,每条消息包含命令字、状态字和数据字。总线数据的时空特性体现在"帧/消息"粒度上:它不是连续采样,而是按协议周期或事件触发成组出现。例如某飞控ARINC 429输出周期为50ms,意味着每50ms才有一组完整数据更新,HIL采集必须与这个周期对齐,否则会读到重复或跳变的数据。

视频流在航空航天HIL中主要来自平视显示器(HUD)、多功能显示器(MFD)、红外/可见光吊舱或视觉导航相机。它以帧为单位,典型分辨率1920×1080、帧率30fps或60fps,数据率可达数百Mbps到数Gbps。视频流的时间特性是"等间隔帧",但空间特性是"二维像素阵列",与一维时间序列完全不同。HIL中视频流常用于验证显示画面与飞行状态的同步性,例如检查地平线是否随俯仰角正确移动。

日志文本是测试过程中由被测软件、仿真模型或测试脚本产生的结构化或半结构化文本,如"2024-06-01T10:23:45.123 [FC] Pitch rate limit active"或"ARINC429 Label 203 timeout"。它的时间戳精度可能到毫秒或微秒,但产生时刻不规律,属于事件驱动型数据。日志文本的价值在于提供上下文和异常线索,但它的非结构化特征给自动分析带来困难。

HIL测试数据类型与时空特性总览 模拟量 连续电压/电流 • 0~5V / ±10V / 4~20mA • 采样率 1k~10kHz • 16/24bit 量化 • 时间连续、幅值连续 • 关注:精度、噪声、漂移 • 示例:迎角、舵面位置 压力、温度反馈 数字量 离散开关/电平 • TTL / 28V 离散量 • 高/低 两态 • 边沿时刻关键 • 去抖 10~50ms • 时间离散、幅值离散 • 示例:起落架到位 使能、离散指令 总线数据 协议帧/消息 • ARINC 429 / 1553B • CAN / AFDX • 12.5k~1Mbps • 周期/事件触发 • 帧粒度、非连续采样 • 示例:Label 203 周期50ms姿态数据 视频流 二维像素帧序列 • 1920×1080 / 30fps • 60fps 可选 • 数百Mbps~Gbps • 等间隔帧 • 空间二维、时间一维 • 示例:HUD/MFD 视觉导航画面 日志文本 事件驱动文本 • 时间戳 ms/μs • 非结构化/半结构化 • 产生时刻不规律 • 上下文线索 • 时间离散、事件触发 • 示例:超限告警 总线超时记录 时间特性对比(同一测试窗口内) 模拟量 连续 数字量 边沿 总线数据 帧 视频流 等间隔 日志文本 事件 五类数据在时间粒度、连续性、触发方式上差异显著,HIL数据管理需按类型分别设计采集、存储与同步策略

二、时空特性的工程含义

把上述五类数据放在同一时间轴上观察,会发现它们的"时间粒度"和"空间维度"完全不同。模拟量是连续时间序列,适合用等间隔采样和插值回放;数字量是稀疏边沿事件,适合用状态变化记录;总线数据是周期性或事件性的帧序列,必须保留帧边界和协议字段;视频流是等间隔二维帧,需要与飞行状态做帧级对齐;日志文本是随机事件点,适合做时间索引和上下文关联。

这种差异直接决定了HIL数据管理中的几个关键设计。第一,统一时基。所有类型的数据都必须打上同一时钟源的时间戳,通常使用IRIG-B或PTP(IEEE 1588)同步,精度要求到微秒级。如果模拟量用板卡本地时钟、总线数据用协议时间戳、视频流用帧计数,三者之间就会产生漂移,回放时无法还原真实因果关系。第二,采样率与存储策略分离。模拟量按10kHz连续存储,一小时就是3.6×10⁷个样本;而日志文本可能一小时只有几百条。若统一按最高速率存储,会造成巨大浪费;若统一降采样,又会丢失数字量边沿和总线帧的精确时刻。第三,空间维度的对齐。视频流的每一帧需要与同一时刻的模拟量、总线数据建立映射,例如用帧号作为索引,把该帧对应的俯仰角、滚转角、总线Label 203的值关联起来,才能验证显示画面是否正确。

三、一个可操作的分类记录示例

假设某型飞控HIL测试中,需要同时记录迎角模拟量、起落架离散量、ARINC 429姿态数据、HUD视频和飞控日志。可以按如下字段设计记录结构(示例参数,非实测):

数据类型 典型通道/标识 采样/更新率 时间戳精度 存储粒度
模拟量 AOA_1(迎角) 5kHz 1μs 连续样本
数字量 LG_UP_LOCK 边沿触发 1μs 状态变化记录
总线数据 ARINC429 Label 203 50ms周期 10μs 帧
视频流 HUD_VIDEO 30fps 帧起始时刻 帧
日志文本 FC_LOG 事件驱动 1ms 行

在实际操作中,可以用如下伪代码描述采集循环的骨架,重点在于不同数据走不同分支、但共享同一时间基准:

t0 = sync_clock()          # 统一时基,IRIG-B/PTP
while test_running:
    t = now() - t0

    # 模拟量:等间隔采集
    if t >= next_analog_t:
        aoa = read_analog("AOA_1")
        store_analog(t, "AOA_1", aoa)
        next_analog_t += 0.0002   # 5kHz

    # 数字量:边沿检测
    lg = read_digital("LG_UP_LOCK")
    if lg != last_lg:
        store_event(t, "LG_UP_LOCK", lg)
        last_lg = lg

    # 总线:按帧接收
    frame = recv_arinc429("Label203")
    if frame:
        store_frame(t, frame)

    # 视频:按帧抓取
    if video_frame_ready():
        store_video_frame(t, get_frame())

    # 日志:按行读取
    line = read_log_line()
    if line:
        store_log(t, line)

这段骨架说明了一个核心原则:不同数据类型的采集触发条件不同,但时间戳必须来自同一时钟。模拟量按固定周期触发,数字量按边沿触发,总线按帧到达触发,视频按帧就绪触发,日志按行可读触发。如果忽略这一点,把日志文本的"读取时刻"当作"事件发生时刻",就会引入毫秒级甚至更大的误差,在分析飞控逻辑时序时可能得出错误结论。

判读要点:当回放数据发现"迎角已经超限,但飞控日志显示限制逻辑延迟了200ms才触发"时,先检查两类数据的时间戳是否来自同一时基。若模拟量用板卡时钟、日志用主机系统时间,200ms可能只是时钟偏差,而非真实逻辑延迟。

四、数据特征对存储与回放的约束

从存储角度看,模拟量和视频流是"带宽大户",总线数据是"结构大户",数字量和日志文本是"事件大户"。一个典型的HIL测试小时级数据量可能达到:模拟量数十GB、视频流数百GB、总线数据数GB、日志文本数MB。因此,实际工程中常采用分级存储:模拟量按原始采样率存短期环形缓冲,降采样后存长期;视频流用H.264/H.265压缩后存;总线数据保留完整帧和协议字段;日志文本直接存文本并建时间索引。

从回放角度看,五类数据必须能按同一时间轴对齐播放。例如,在回放某次着陆测试时,需要同时看到:迎角模拟量曲线、起落架离散量状态、ARINC 429中的无线电高度、HUD视频画面、以及飞控日志中的"接地"事件。只有五类数据的时间戳一致、索引可关联,才能还原出完整的着陆过程。这也是HIL数据管理区别于普通数据记录的核心难点——它不是记录单一信号,而是维护一个多源、多速率、多模态的时间对齐数据体。

理解这些类型与特征之后,后续的采集配置、存储格式选择、回放工具设计才有明确的依据。例如,知道总线数据是帧粒度,就不会用连续采样去"猜"帧边界;知道视频流是等间隔帧,就会用帧号而不是绝对时间做索引;知道日志文本是事件驱动,就会为它单独建时间索引而不是强行插值到固定采样率上。