3、仿真技术概述:数字仿真、软件在环(SIL)、硬件在环(HIL)、半实物仿真的区别与联系
在飞控系统研制过程中,仿真技术贯穿于需求验证、算法开发、代码生成、硬件集成与系统联试的全生命周期。工程师常听到“数字仿真”“软件在环(SIL)”“硬件在环(HIL)”“半实物仿真”等术语,但它们之间的边界、适用阶段和工程代价往往容易混淆。本章从定义、建模对象、实时性要求、接口耦合深度四个维度展开,厘清四类仿真范式的本质区别与内在联系,并给出在飞控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接口、中断响应、通信协议和故障处理逻辑;当需要验证传感器在真实运动环境下的性能或舵机带载能力时,才引入半实物仿真。
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接口配置、故障注入方法等具体技术细节。