1. HIL验证工程导入
TI C2000系列(如F28004x、F2837x、F28002x等)在电机驱动与数字电源中承担的是“实时控制内核”的角色:它要在微秒级控制周期内完成采样、坐标变换、环路计算与PWM更新。以一台三相永磁同步电机FOC为例,典型控制链路是:ADC在PWM中点触发采样三相电流与母线电压,经Clarke/Park变换得到Id、Iq,两个PI调节器输出Vd、Vq,再经反Park与SVPWM生成六路占空比写入EPWM比较寄存器。若开关频率为10 kHz,则整个链路必须在100 μs内闭环完成,且ADC采样时刻、PWM装载时刻、中断响应延迟三者必须严格对齐,否则电流波形会出现明显畸变。
问题在于:把这样一套控制代码直接烧进真实功率板去调试,风险与成本都很高。功率器件炸管、电机飞车、母线过压都可能发生,而且很多故障是偶发的、难以复现的。硬件在环(Hardware-in-the-Loop,HIL)正是为解决这一矛盾而出现的验证手段:把真实的C2000控制器(或至少其控制代码)保留在环内,用实时仿真器替代被控对象——电机、逆变器、电网、负载——通过真实的ADC/DAC、PWM、GPIO、通信接口与被测控制器交换信号。
HIL验证的目标与价值
HIL的核心目标可以概括为三点。第一是安全性:在仿真环境中可以任意制造短路、缺相、过流、母线跌落等极端工况,而不会损坏任何硬件。第二是可复现性:仿真器的时间步长与激励完全可控,同一个故障场景可以精确重放,便于定位偶发问题。第三是覆盖率:可以在短时间内遍历大量参数组合(不同转速、不同负载转矩、不同母线电压、不同PI参数),这是实机测试难以做到的。
对C2000项目而言,HIL还有一个特殊价值:它验证的不只是算法,还包括外设配置本身。ADC的采样窗口是否足够、EPWM的同步链是否正确、中断优先级是否会导致丢拍、CLA与CPU之间的数据交换是否有时序冲突——这些问题在纯软件仿真(MIL/SIL)中往往被简化掉,只有在HIL中保留真实外设行为时才会暴露。
典型HIL工作流
一个完整的C2000 HIL验证工程通常按以下顺序推进:先在MATLAB/Simulink或PLECS中建立被控对象模型(电机d-q方程、逆变器开关模型、负载模型),并做离线仿真确认模型行为合理;然后把模型编译下载到实时仿真器(如Speedgoat、Typhoon HIL、dSPACE SCALEXIO或基于TI自身处理器的实时平台);接着把C2000控制板的PWM输出接到仿真器的数字输入,仿真器的模拟输出接到C2000的ADC输入,完成信号闭环;之后运行测试用例,采集波形与关键变量;最后根据结果修改控制参数或模型,迭代直至满足指标。
图中左侧是保留在环内的真实C2000控制器,右侧是实时仿真器中的被控对象模型,中间两条箭头分别代表PWM数字信号与电流/电压模拟信号。底部是贯穿整个工程的工具链。需要强调的是,HIL不是“仿真替代实机”,而是把实机测试中危险、昂贵、难复现的部分前移到实验室环境中完成,最终仍需实机确认。
课程路线图与工具链概览
本课程围绕“建模—接口—闭环—测试—分析”这条主线展开,共30章。前几章建立HIL的基本概念与工程环境,包括实时仿真器选型、C2000控制板与外设配置、信号接口电平匹配与保护。中间部分进入具体对象:电机FOC的HIL建模与验证、数字电源(Buck/Boost、PFC、LLC)的HIL建模与验证、以及ADC采样时序、PWM同步、中断延迟等实时性问题的专项排查。后段则覆盖自动化测试、故障注入、覆盖率统计与结果判读。
工具链方面,建模常用MATLAB/Simulink与PLECS,实时平台可选Speedgoat、Typhoon HIL或dSPACE,C2000侧使用Code Composer Studio(CCS)与C2000Ware、MotorControl SDK、DigitalPower SDK。上位机可用仿真器自带软件或Python脚本通过SCPI/Modbus采集数据。需要提醒的是,不同实时平台的IO电平、采样率、通道数差异很大,选型时必须先确认:PWM输入通道数是否够6路、模拟输出是否能覆盖±10 V或0~3.3 V、仿真步长是否满足10 kHz以上开关频率的精度要求。
最后需要建立的一个观念是:HIL验证的成败,往往不取决于模型有多精细,而取决于接口是否对齐、时序是否一致、异常是否被正确注入。一个步长1 μs、模型精度一般的HIL平台,只要接口和时序正确,就能发现绝大多数控制逻辑与外设配置问题;反之,模型再精细,若ADC采样时刻与仿真器输出更新时刻错位,得到的波形也没有参考价值。因此本课程会把大量篇幅放在“接口与时序”这一层,而不是单纯追求模型复杂度。