3. 仿真验证环境总体架构
无人系统任务规划的验证,本质上是在“真实飞行”之前,用尽可能低的代价回答一个问题:这套任务规划结果,在真实平台上到底能不能按预期执行。要回答这个问题,单靠一种仿真手段是不够的。数字孪生、软件在环(SIL)、硬件在环(HIL)和半实物仿真,分别对应验证链条上不同的“真实度”与“介入点”。理解它们的组成、接口和选型原则,是搭建整套验证环境的第一步。
一、四种验证手段的定位与组成
数字孪生是物理对象在数字空间中的高保真映射。它不只是三维模型,而是包含几何、运动学、动力学、传感器特性、执行机构响应乃至环境扰动的可计算模型。在任务规划验证中,数字孪生通常由四部分组成:平台本体模型(质量、惯量、气动/水动参数)、任务载荷模型(相机、雷达、通信链路)、环境模型(地形、风场、电磁环境)以及数据接口层(与规划系统交换航路点、状态量、指令)。它的价值在于可以在规划阶段就预演任务全过程,并支持大量“如果……会怎样”的推演。
软件在环(SIL)把真实的飞控/任务管理软件编译后运行在通用计算机上,与被控对象模型闭环。它的组成是:真实机载软件 + 被控对象数学模型 + 虚拟传感器与执行机构接口。SIL 不依赖任何真实硬件,因此可以快速迭代、批量回归,适合验证控制律、任务逻辑、状态机切换和异常处理分支。
硬件在环(HIL)把真实的飞控计算机、任务计算机或关键板卡接入回路,用实时仿真机替代被控对象和环境。它的组成是:真实硬件 + 实时仿真机 + 信号调理与故障注入单元 + 监控上位机。HIL 能暴露时序、总线负载、接口电平和实时性等问题,是 SIL 无法覆盖的部分。
半实物仿真是介于 HIL 与真实飞行之间的形态,典型做法是接入真实传感器(如惯导、卫导接收机)或真实执行机构(如舵机、云台),其余部分由仿真提供。它比 HIL 更接近真实物理特性,但成本和复杂度也更高。
二、接口是四类环境能否“拼起来”的关键
四种手段能否协同,取决于接口是否统一。实践中需要重点约定三类接口。
第一类是任务规划接口。规划系统向仿真环境输出的是航路点序列、任务载荷动作指令、约束条件(如最小转弯半径、最大爬升率、禁飞区),仿真环境回传的是平台状态量(位置、姿态、速度、剩余能量)和执行结果。建议统一采用“航路点 + 动作 + 约束”的结构化描述,避免各环境各自定义格式。
第二类是总线与信号接口。HIL 和半实物必须面对真实总线,常见的有 1553B、CAN、RS-422 和以太网。需要明确消息周期、数据字定义、超时判据和故障码。例如某型任务计算机的航路点装订消息周期为 50 ms,若仿真机在 3 个周期内未收到应答,应判定为装订失败并触发告警。
第三类是时间同步接口。实时仿真对时间一致性要求很高,通常采用 PTP 或 IRIG-B 对时,确保仿真机、飞控计算机和监控上位机在同一时间基准下记录数据,否则事后分析会出现“因果倒置”的假象。
三、选型原则:按验证目标而不是按“越真越好”
选型的第一原则是目标匹配。如果验证的是任务逻辑和状态机,SIL 足够;如果验证的是总线时序和实时性,必须上 HIL;如果验证的是传感器融合精度或执行机构响应,才需要半实物。盲目追求高真实度,只会推高成本、拖慢迭代。
第二原则是风险前置。把高风险、高不确定性的环节尽早放到更高真实度的环境中验证。例如任务规划中的“突发威胁规避”逻辑,若在 SIL 中已发现分支覆盖不足,就应提前安排 HIL 验证,而不是等到外场飞行才暴露。
第三原则是可复用与可扩展。模型、接口定义、测试用例应尽量在 SIL、HIL 和半实物之间复用。一个实用的做法是:把被控对象模型做成可配置的“模型库”,SIL 用非实时版本,HIL 用实时版本,接口保持一致,这样从 SIL 迁移到 HIL 时只需替换运行环境和少量接口适配。
四、一个可参考的组合示例
以某型固定翼无人机任务规划验证为例,可按下述方式组合:
| 验证阶段 | 采用环境 | 主要验证内容 | 典型判据 |
|---|---|---|---|
| 方案预演 | 数字孪生 | 航路可行性、能量消耗、时间窗口 | 剩余能量 ≥ 15%,航路无冲突 |
| 算法回归 | SIL | 任务状态机、异常分支、重规划逻辑 | 分支覆盖率 ≥ 90%,无死锁 |
| 接口与时序 | HIL | 航路点装订、总线负载、超时处理 | 装订成功率 100%,总线负载 ≤ 60% |
| 物理闭环 | 半实物 | 惯导/卫导融合、舵机响应、闭环精度 | 航迹偏差 ≤ 10 m,舵面跟随误差 ≤ 2% |
需要说明的是,上表中的数值属于教学示例中的合理假设,用于说明判据的写法,并非某一型号的实测结果。实际项目中,判据应来自任务书、适航要求或历史数据统计。
总体来看,数字孪生、SIL、HIL 和半实物仿真构成了一条从“纯数字”到“部分真实”的验证链条。架构设计的核心不是把四种环境都建一遍,而是明确每一层要回答什么问题、层与层之间用什么接口衔接、什么条件下从低真实度升级到高真实度。把这三件事定清楚,仿真验证环境才真正具备工程可用性。