2. 被控对象与验证边界建模

在MIL/SIL/HIL一致性验证中,最容易出问题的环节往往不是仿真工具本身,而是验证边界定义不清:同一个功能,在MIL里验证的是理想模型,在SIL里验证的是带接口的代码,在HIL里验证的是真实控制器加实时被控对象,如果三者的被控对象、接口、激励和观测点没有对齐,那么“一致性”就无从谈起。本节要解决的核心问题是:如何从需求与架构中提取被控对象、接口、激励与观测点,并明确MIL/SIL/HIL各自可验证的边界。

一、从需求中提取“被控对象”

被控对象(Plant)不是控制器,而是控制器输出所作用、并产生反馈的物理或逻辑实体。从需求文档中提取被控对象,可以按“执行器—被控对象—传感器”这条链来梳理。例如某电机控制需求:“MCU输出PWM占空比驱动H桥,控制直流电机转速,霍尔传感器反馈转速,目标转速2000rpm,超调≤5%,稳态误差≤2%”。这里被控对象是直流电机及其负载,执行器是H桥,传感器是霍尔元件,控制器是MCU中的控制算法。

提取时建议建立一张“被控对象清单”,字段包括:对象名称、输入量(来自控制器的驱动信号)、输出量(反馈给控制器的信号)、关键参数(如电机电阻、电感、转动惯量、负载转矩)、工作范围、失效模式。这张清单是后续MIL/SIL/HIL建模的共同基准,任何一层验证都不能随意增删对象或改变参数含义。

二、接口、激励与观测点的提取

接口是控制器与被控对象之间的信号边界。从架构图中提取接口时,要区分三类:驱动接口(控制器→被控对象,如PWM、CAN指令、继电器触点)、传感接口(被控对象→控制器,如ADC采样、编码器脉冲、CAN反馈)、辅助接口(使能、故障、电源状态)。每个接口都要标注方向、数据类型、量程、更新周期和物理单位。

激励是施加在验证边界上的输入,用于激发系统行为。激励分两类:一类是控制指令激励,如目标转速阶跃、模式切换;另一类是环境/扰动激励,如负载突变、电压跌落、温度变化。观测点是用于判断功能正确性的信号,通常包括:控制器输出、被控对象状态、传感器反馈、内部关键变量、故障标志。观测点必须与需求中的验收指标一一对应,例如“超调≤5%”对应转速反馈的峰值观测,“稳态误差≤2%”对应稳态段均值观测。

提取技巧:把需求中的每一条量化指标,反向映射到一个观测点和一个激励条件。如果某条指标找不到观测点,说明该指标在当前验证边界内不可验证,需要调整边界或补充观测手段。

三、MIL/SIL/HIL的验证边界划分

三层验证的边界差异,本质上是“哪些部分用模型、哪些部分用真实代码、哪些部分用真实硬件”的差异。可以用一张边界对照表来固化:

层级控制器被控对象接口可验证内容不可验证内容
MIL控制算法模型被控对象模型模型信号线算法逻辑、控制律、理想动态代码实现、实时性、硬件接口
SIL自动生成/手写C代码被控对象模型代码接口/仿真适配代码与模型一致性、定点/浮点差异真实硬件时序、电气特性
HIL真实ECU实时仿真模型真实IO/CAN/ADC实时性、硬件接口、故障响应真实机械负载、极端环境

边界划分的关键原则是:同一观测点在三层中必须语义一致。例如“转速反馈”在MIL中是模型输出变量,在SIL中是代码中的全局变量,在HIL中是ADC采样值,三者的物理含义、量纲、采样周期必须对齐,否则一致性比对就失去意义。

四、边界建模的实操示例

以直流电机转速控制为例,假设需求为:目标转速2000rpm,阶跃响应超调≤5%,稳态误差≤2%,负载转矩在0.1s时从0.05N·m突增至0.15N·m,恢复时间≤0.2s。按以下步骤建立边界模型:

  1. 被控对象建模:电机电气方程 L·di/dt = u - R·i - Ke·ω,机械方程 J·dω/dt = Kt·i - B·ω - TL。示例参数:R=1.2Ω,L=0.5mH,Ke=Kt=0.05V·s/rad,J=1e-5kg·m²,B=1e-6N·m·s/rad。
  2. 接口定义:驱动接口为PWM占空比(0~100%,更新周期1ms),传感接口为转速(rpm,更新周期1ms),扰动接口为负载转矩TL(N·m)。
  3. 激励设计:0~0.1s目标转速0→2000rpm阶跃;0.1s时TL由0.05→0.15N·m阶跃;仿真步长0.1ms,总时长0.5s。
  4. 观测点设置:转速反馈ω_rpm、PWM占空比、电流i、负载转矩TL。超调量取0~0.1s段峰值与2000rpm之差;稳态误差取0.4~0.5s段均值与2000rpm之差;恢复时间取0.1s后转速回到±2%带内的时间。

在MIL中,上述全部用模型实现,可快速验证控制律是否满足超调和稳态误差。在SIL中,控制器替换为C代码,被控对象仍为模型,重点观察代码实现是否引入额外延迟或量化误差。在HIL中,控制器为真实ECU,被控对象模型运行在实时仿真机上,PWM和ADC走真实IO,此时可验证1ms控制周期是否真的被满足、ADC采样噪声是否影响稳态误差。

MIL / SIL / HIL 验证边界与信号流 MIL 边界 控制算法模型 (理想控制律) 被控对象模型 (电机+负载) 观测点 转速/电流/占空比 PWM 转速反馈 SIL 边界 控制C代码 (自动生成/手写) 被控对象模型 (与MIL一致) 观测点 代码变量/模型信号 PWM 转速反馈 HIL 边界 真实ECU (硬件+代码) 实时仿真模型 (电机+负载) 观测点 IO/CAN/ADC实测 真实PWM 真实ADC 同一观测点在三层中语义一致:转速、PWM、电流、负载转矩

五、边界一致性检查要点

完成边界建模后,建议做一次“三层对齐检查”,重点核对以下五项:

  • 对象对齐:MIL/SIL/HIL的被控对象参数是否来自同一套标定数据,是否允许HIL使用简化模型。
  • 接口对齐:信号方向、量纲、采样周期、饱和限幅是否一致,特别是PWM占空比与ADC转速的更新率。
  • 激励对齐:阶跃幅值、扰动时刻、仿真步长是否一致,HIL中需考虑实时步长与模型步长的差异。
  • 观测点对齐:同一指标在三层中的计算窗口和判据是否相同,例如超调量取峰值还是取滤波后峰值。
  • 边界外声明:明确哪些内容不在当前层验证,例如MIL不验证实时性,HIL不验证真实机械磨损。
常见误区:在HIL中直接沿用MIL的观测点定义,却忽略了真实ADC的量化噪声和滤波延迟,导致稳态误差判据被噪声触发,误判为控制算法不一致。正确做法是在观测点定义中明确是否加滤波、滤波截止频率和统计窗口。

被控对象与验证边界建模的最终产出,是一份可被三层复用的边界定义文件,它至少包含:被控对象清单及参数、接口清单、激励序列、观测点及判据、各层边界声明。这份文件是后续MIL/SIL/HIL一致性比对的基础,也是排查“同一功能在不同层结果不一致”时的第一手依据。