3、仿真技术概述:数字仿真、软件在环(SIL)、硬件在环(HIL)、半实物仿真的区别与联系

在飞控系统研制过程中,仿真技术贯穿于需求验证、算法开发、代码生成、硬件集成与系统联试的全生命周期。工程师常听到“数字仿真”“软件在环(SIL)”“硬件在环(HIL)”“半实物仿真”等术语,但它们之间的边界、适用阶段和工程代价往往容易混淆。本章从定义、建模对象、实时性要求、接口耦合深度四个维度展开,厘清四类仿真范式的本质区别与内在联系,并给出在飞控HIL项目中选型与切换的实操建议。

仿真技术演进与耦合深度对比 数字仿真 纯数学模型 无实时性要求 无硬件参与 开发早期算法验证 软件在环 SIL 控制代码+被控对象模型 同一PC上运行 验证逻辑正确性 非实时或软实时 硬件在环 HIL 真实飞控硬件 实时仿真机运行模型 信号级/功率级接口 强实时性要求 半实物仿真 HIL + 真实传感器/舵机 物理效应模拟器 全系统闭环 最接近真实飞行 耦合加深 耦合加深 耦合加深 实时性分级: 非实时 软实时 硬实时(ms级) 硬实时(μs级) 典型应用阶段与数据流 需求分析 数字仿真 控制算法开发 SIL验证 代码生成 HIL验证 系统集成 半实物仿真 关键区别: • 数字仿真/SIL:被控对象与控制器均为模型,无真实硬件,用于算法与逻辑验证 • HIL:控制器为真实硬件,被控对象为实时模型,用于接口与实时性验证

3.1 核心原理:从“全虚拟”到“半实物”的递进

仿真技术的本质是建立被研究对象的数学模型,并在一定计算环境上运行该模型以替代真实物理系统。飞控系统仿真按照“控制器—被控对象—物理环境”三个环节中哪些是真实的、哪些是虚拟的,可以划分为四个层次。

数字仿真(Digital Simulation)是最基础的形式,控制器算法和被控对象(飞机动力学、舵机、传感器)全部用数学方程描述,在通用计算机(如MATLAB/Simulink、Python)上离线运行。其特点是计算步长可自由设定,不要求实时,可以反复迭代、批量跑参数扫描。例如在飞控设计初期,用六自由度非线性模型验证控制律的稳定性与鲁棒性。

软件在环(SIL)将控制器算法从仿真模型转换为实际嵌入式代码(C/C++或模型生成代码),但代码仍然运行在开发PC或工控机上,被控对象模型也运行在同一台机器上。SIL的核心目的是验证“代码实现”与“算法设计”的一致性,排除编码错误、定点/浮点转换问题、数据溢出等缺陷。SIL通常采用软实时或非实时调度,通过文件或共享内存交换数据。

硬件在环(HIL)将真实的飞控计算机(FCU)接入仿真回路,被控对象模型运行在专用的实时仿真机(如NI PXI、dSPACE、Speedgoat)上。仿真机通过I/O接口(ADC/DAC、离散量、串口、CAN、ARINC429等)与飞控硬件连接,模拟传感器信号并采集舵机指令。HIL要求仿真机具备硬实时能力,仿真步长通常在0.1~1ms量级,以保证信号时序与真实飞行一致。

半实物仿真(Hardware-in-the-Loop with Physical Effects)是HIL的扩展,不仅飞控计算机是真实的,部分传感器(如惯性测量单元IMU、GPS接收机)、执行机构(舵机、电机)或环境模拟设备(转台、风洞、气压舱)也接入回路。例如将真实IMU安装在三轴转台上,转台根据仿真机计算的姿态角驱动IMU旋转,IMU输出的角速度/加速度信号直接进入飞控计算机,形成“物理激励—真实传感—实时计算—指令输出”的完整闭环。

3.2 判断方法:如何根据研制阶段选择仿真范式

在工程实践中,选择哪种仿真方式取决于三个关键因素:验证目标、硬件可用性、实时性要求。下表给出了四类仿真的对比与选型建议。

对比维度 数字仿真 软件在环(SIL) 硬件在环(HIL) 半实物仿真
控制器 模型 嵌入式代码(PC运行) 真实飞控硬件 真实飞控硬件
被控对象 数学模型 数学模型 实时数学模型 实时模型+物理效应设备
传感器/舵机 模型 模型 信号模拟(电气仿真) 真实部件或物理模拟器
实时性 无要求 软实时/非实时 硬实时(ms级) 硬实时(μs~ms级)
主要验证目标 控制律算法、参数优化 代码逻辑、覆盖率 接口时序、实时性能、故障注入 传感器/舵机与飞控的物理匹配
典型工具 MATLAB/Simulink、Python Simulink Desktop、QEMU NI PXI、dSPACE、Speedgoat 转台、舵机加载台、环境舱

判断流程上,建议遵循“先算法后代码、先逻辑后时序、先电气后物理”的原则。在项目早期,飞控硬件尚未完成或成本高昂,优先使用数字仿真和SIL完成控制律设计与代码验证;当硬件原型(工程样机)交付后,立即开展HIL测试,重点验证飞控计算机的I/O接口、中断响应、通信协议和故障处理逻辑;当需要验证传感器在真实运动环境下的性能或舵机带载能力时,才引入半实物仿真。

经验提醒:不要盲目追求“全半实物”。半实物仿真成本高、搭建周期长(通常需要2~4周),且引入的物理设备本身存在误差和不确定性。如果HIL已经能覆盖接口与时序验证,且传感器/舵机已通过单独台架测试,则不必强行做半实物仿真。反之,若飞控对传感器延迟极其敏感(如多旋翼姿态控制),则半实物仿真不可跳过。

3.3 案例拆解:某固定翼无人机飞控HIL测试中的仿真范式切换

某型固定翼无人机项目在飞控研制过程中,完整经历了四种仿真范式的切换,其经验具有典型参考价值。

背景与约束:项目周期12个月,飞控硬件采用双余度STM32H743方案,传感器包括IMU(BMI088)、空速计(MS4525)、GPS(UBX-M8030)。研制初期硬件未投产,但控制律需要先行验证;后期硬件交付后,要求在2周内完成HIL测试并发现接口隐患。

阶段一(第1~3个月):数字仿真。在MATLAB/Simulink中建立飞机六自由度模型、舵机一阶惯性模型、传感器噪声模型。控制律采用PID+角速率阻尼结构。通过蒙特卡洛方法扫描不同重心位置和气动参数下的稳定性,确定了控制增益的鲁棒区间。此阶段发现原始气动数据在低速段存在非线性,修正了模型。

阶段二(第4~5个月):SIL验证。将Simulink控制模型通过Embedded Coder生成C代码,在PC上与被控对象模型联合运行。采用Simulink Desktop Real-Time的软实时模式,步长设为1ms。通过代码覆盖率分析发现,俯仰角速率反馈支路在特定条件下未被执行(因使能逻辑错误),修正了状态机转换条件。SIL阶段共发现12处代码生成问题,避免了后续硬件测试的无效劳动。

阶段三(第6~8个月):HIL测试。飞控硬件样机交付后,接入NI PXI实时仿真机。仿真机运行飞机模型,通过板卡输出模拟电压(模拟空速计压力)、PWM信号(模拟舵机位置反馈)、串口(GPS数据)与飞控交互。测试中发现两个关键问题:一是飞控的ADC采样在电机启动时存在±20mV的噪声耦合,导致空速读数跳变;二是串口DMA接收在GPS数据帧间隔小于1ms时出现丢帧。通过HIL的故障注入功能(模拟传感器断线、短路),验证了飞控的余度切换逻辑正确。

阶段四(第9~10个月):半实物仿真。将真实IMU(BMI088)安装在单轴速率转台上,转台由仿真机控制,模拟飞机俯仰角速率。IMU的SPI输出直接连接飞控。测试发现IMU在高速旋转(>200°/s)时,其内部低通滤波器引入约8ms的相位延迟,导致角速率阻尼增益裕度下降。通过调整控制律中的相位补偿环节,将延迟影响降至可接受范围。同时,将真实舵机(HS-5086)接入HIL回路,通过弹簧加载模拟气动铰链力矩,验证了舵机在最大偏转速率下的跟随误差。

结果与复盘:整个流程共发现并修复问题27项,其中数字仿真阶段6项、SIL阶段12项、HIL阶段7项、半实物仿真阶段2项。如果跳过SIL直接做HIL,预计会浪费约3周的硬件调试时间;如果跳过半实物仿真,IMU延迟问题将在首飞中暴露,可能导致振荡发散。复盘经验:仿真范式的切换节点应与硬件成熟度对齐,且每个阶段都要有明确的“出口准则”——例如SIL的出口准则是代码覆盖率>90%且无未定义行为,HIL的出口准则是所有接口时序满足设计要求。

3.4 常见误区与总结复盘

在飞控仿真实践中,工程师常陷入以下误区,需要特别警惕。

  • 误区一:认为SIL可以替代HIL。SIL只验证代码逻辑,不验证硬件接口、电气特性、实时调度和中断优先级。飞控的很多故障源于硬件时序(如看门狗超时、DMA冲突),这些在SIL中完全无法暴露。
  • 误区二:HIL仿真步长设置过大。有些团队为了追求模型复杂度,将仿真步长设为2~5ms,导致PWM信号分辨率不足、传感器采样混叠。飞控HIL的步长应至少为控制周期(通常1ms)的1/5~1/10,即0.1~0.2ms。
  • 误区三:半实物仿真中忽略物理设备的延迟。转台、舵机加载台本身有响应延迟和带宽限制,如果不对这些设备进行动态补偿,测试结果会失真。例如转台的带宽通常只有10~20Hz,而飞控的角速率环带宽可能达到30Hz,此时需要采用前馈补偿或频率响应校正。
  • 误区四:数字仿真模型过度简化。在数字仿真阶段,如果忽略执行器饱和、传感器量化噪声、计算延迟等非线性因素,后续SIL/HIL阶段会频繁出现“模型与实物不符”的困惑。建议在数字仿真阶段就加入这些工程约束。

总结复盘:四种仿真范式不是相互替代的关系,而是递进互补的关系。数字仿真解决“算法对不对”,SIL解决“代码对不对”,HIL解决“接口和时序对不对”,半实物仿真解决“物理设备匹配对不对”。在飞控HIL课程中,理解这四者的区别与联系,是搭建测试环境、编写测试用例、分析测试结果的前提。后续章节将深入HIL的实时仿真机选型、I/O接口配置、故障注入方法等具体技术细节。

风险提示:在从SIL切换到HIL时,务必先进行“开环测试”——即飞控输出固定指令,仿真机只采集不闭环,确认所有信号通道的极性和量程正确后再进行闭环测试。否则,一旦闭环极性接反,飞控会立即发散,可能损坏舵机或飞控硬件。