3. 被控对象建模与HIL模型架构
HIL(Hardware-in-the-Loop)仿真的核心矛盾在于:真实控制器以微秒级节拍运行,而被控对象模型必须在同样的实时约束下完成求解。如果模型精度不足,测试结论不可信;如果模型过于复杂,实时步长无法满足,仿真就会丢步甚至崩溃。因此,被控对象建模与HIL模型架构的设计,本质上是在物理保真度与计算实时性之间寻找可工程化的平衡点。
一、物理建模:从物理方程到可实时求解的形式
被控对象建模通常从物理机理出发。以电机驱动系统为例,其电气侧可用定子电压方程描述:
u_d = R·i_d + L_d·di_d/dt − ω_e·L_q·i_q
u_q = R·i_q + L_q·di_q/dt + ω_e·(L_d·i_d + ψ_f)
机械侧则用转动惯量方程:
J·dω_m/dt = T_e − T_L − B·ω_m
T_e = 1.5·p·[ψ_f·i_q + (L_d − L_q)·i_d·i_q]
这些微分方程在离线仿真中可以用变步长求解器高精度积分,但在HIL中必须转换为固定步长的离散形式。常用方法包括前向欧拉、梯形法和四阶龙格-库塔。以电流环为例,若步长 Ts = 10 μs,电感 L_d = 0.5 mH,电阻 R = 0.1 Ω,则前向欧拉离散为:
i_d[k+1] = i_d[k] + (Ts/L_d)·(u_d[k] − R·i_d[k] + ω_e[k]·L_q·i_q[k])
这里需要特别注意:离散化会引入数值阻尼和相位滞后。当 Ts 接近系统最小时间常数的 1/10 时,误差尚可接受;若接近 1/2,则可能产生虚假振荡。因此,物理建模阶段就要预估各状态变量的时间常数,为后续步长选择提供依据。
二、信号接口:控制器与模型之间的“契约”
HIL系统中,真实控制器通过I/O板卡与实时模型交换信号。接口设计必须明确四类信息:信号方向、电气形式、量程与偏置、更新速率。以某电机控制器HIL测试为例:
| 信号名 | 方向 | 电气形式 | 量程/偏置 | 更新率 |
|---|---|---|---|---|
| 三相电流 ia/ib/ic | 模型→控制器 | 模拟 ±10 V | ±50 A,0 A→0 V | 10 μs |
| 旋变 sin/cos | 模型→控制器 | 模拟差分 | 1 Vrms,2.5 V偏置 | 1 μs |
| PWM 门极信号 | 控制器→模型 | 数字 3.3 V | 0/1 | 100 ns |
| 母线电压 | 模型→控制器 | 模拟 0–5 V | 0–400 V | 100 μs |
接口映射中常见的错误是忽略偏置与比例因子。例如,控制器内部按 0 A → 2.5 V 解析电流,而模型输出按 0 A → 0 V 映射,会导致零点偏移,进而使电流环积分饱和。因此,接口表必须在建模前冻结,并在模型中以显式增益和偏置实现,而不是隐含在物理方程中。
三、模型分区:按时间尺度与耦合强度切分
一个完整的被控对象往往包含多个时间尺度:电力电子开关周期约 10 μs,电流环约 100 μs,转速环约 1 ms,热模型约 1 s。若全部放在同一任务中以最小步长求解,计算量将不可接受。模型分区的原则是:按时间尺度分层,按耦合强度决定是否解耦。
典型分区如下:
- 快速区:逆变器开关模型、电机电流动态,步长 1–10 μs,运行在FPGA或高优先级实时任务中。
- 中速区:转速、位置、母线电压动态,步长 100 μs–1 ms,运行在CPU实时任务中。
- 慢速区:温度、损耗、老化模型,步长 1 s 以上,可离线或低优先级运行。
分区之间的数据交换通过零阶保持器或一阶保持器完成。快速区向中速区输出平均转矩,中速区向快速区输出转速和角度。若耦合过强,例如弱磁工况下电流与转速强耦合,则需将相关状态合并到同一分区,或采用迭代耦合,但迭代会引入额外延迟,需在实时调度中预留时间。
四、实时调度框架:任务、优先级与超时保护
实时调度框架决定模型能否稳定运行。常见架构基于抢占式实时操作系统,任务按周期和优先级组织。以下是一个典型的双速率调度配置:
任务名 周期 优先级 执行时间预算 超时动作
fast_task 10 μs 最高 6 μs 输出保持,置错误标志
medium_task 1 ms 中 200 μs 使用上一周期值
slow_task 100 ms 低 5 ms 跳过本周期
comm_task 1 ms 中 100 μs 重发或丢弃
调度设计的关键是最坏执行时间必须小于周期。若 fast_task 在 10 μs 周期内需要 12 μs,则必须降阶模型或提高处理器性能。超时保护同样重要:当快速任务超时,模型输出应保持最后有效值,并通知测试系统,而不是输出随机值导致控制器误动作。
五、精度与实时性的初始权衡
精度与实时性的权衡不是一次性决策,而是贯穿建模、分区和调度的迭代过程。初始权衡可从三个维度入手:
- 模型阶数:电机电流环用一阶或二阶模型即可,若加入高频开关纹波,则需提高步长或改用平均模型。
- 求解方法:前向欧拉计算量最小但精度低;梯形法精度高但需迭代;四阶龙格-库塔精度最高但计算量约为欧拉法的四倍。
- 步长选择:步长减小提高精度但增加计算量。经验上,步长应小于最小时间常数的 1/10,同时满足实时任务预算。
一个实用的初始权衡流程是:先建立离线高精度模型作为基准,再逐步降阶并观察关键波形误差。若电流峰值误差小于 5%、相位滞后小于 5°,且实时任务未超时,则可认为初始权衡可接受。后续再通过参数辨识和在线校正进一步优化。
上图展示了控制器、I/O接口与实时模型分区之间的信号流向和调度关系。快速区承担最高动态,中速区处理机电能量转换,慢速区负责热与老化。三者通过明确的接口和调度预算协同工作,而初始权衡的目标就是让每个分区都在自己的时间尺度内“够用且不超时”。