首页 / 资讯中心 / 文章详情

HIL实时仿真器选型指南:从实时性、FPGA到软件生态的工程实践

HIL实时仿真器选型指南:从实时性、FPGA到软件生态的工程实践 ★ FEATURED ARTICLE
1. 先搞清楚你要仿的到底是什么很多人一上来就问哪款HIL实时仿真器性价比高这个问题本身就问错了。就像你去买鞋不先量脚长直接问哪双鞋最好答案对你来说大概率是错的。HIL选型的第一步不是看产品参数表而是把你自己的被控对象和测试需求彻底拆解一遍。1.1 HIL到底在仿什么HIL全称Hardware-in-the-Loop中文叫硬件在环。它的核心逻辑是把你真实的控制器硬件比如整车控制器VCU、电机控制器MCU、电池管理系统BMS接到一个实时仿真器上仿真器里跑的是被控对象的数学模型——比如电机模型、电池模型、整车动力学模型。控制器以为自己接的是真电机、真电池实际上接的是一台在实时操作系统上以固定步长运行的仿真计算机。这里有个关键点容易被忽略HIL仿的是被控对象不是控制器。你的控制器是真的仿真器里跑的是虚拟的那部分。所以选型时第一个要问自己的问题就是——我的被控对象是什么是永磁同步电机是三相异步电机是电池包还是整车级别的多物理域耦合系统不同的被控对象对仿真器的要求天差地别。一个只做电机控制算法验证的HIL和一个做整车热管理加能量管理联合仿真的HIL完全不是一个量级的东西。1.2 你的模型跑在哪里决定了硬件选型被控对象的数学模型通常来自几个地方Simulink/Simscape搭建的物理模型、Carsim或Adams提供的车辆动力学模型、Maxwell等电磁仿真工具导出的电机有限元降阶模型、以及各种SPICE类电路仿真模型。这些模型最终都要编译成实时仿真器能跑的代码。这里就出现了一个核心分水岭你的模型是CPU跑还是FPGA跑CPU跑模型的优势是通用性强Simulink模型通过Embedded Coder生成C代码部署到实时CPU上适合系统级、多速率、逻辑复杂的模型。但CPU的短板也很明显——步长做不小。一般CPU实时仿真的步长在10微秒到100微秒之间对于开关频率20kHz的电力电子系统10微秒步长意味着每个开关周期只有5个计算点精度堪忧。FPGA跑模型则适合处理高速、并行、固定步长的场景。比如电机的高频PWM仿真、电力电子变换器的小步长仿真FPGA可以把步长做到100纳秒甚至更低。但FPGA开发门槛高模型不能直接拖拽部署需要专门的工具链做模型到HDL的转换。一个实用的判断标准如果你的被控对象里包含开关频率超过10kHz的电力电子变换器或者需要仿真电磁暂态过程FPGA几乎是必选项。如果只是做整车级别的能量管理策略验证CPU方案足够。1.3 测试场景的复杂度决定了I/O规模HIL仿真器不是孤立运行的它需要和你的控制器硬件进行物理连接。你的控制器有多少路模拟输入、多少路模拟输出、多少路CAN/CAN FD通道、多少路LIN通道、有没有FlexRay、有没有以太网通信需求——这些直接决定了你需要多少块I/O板卡。我见过太多项目在选型时只盯着仿真器的CPU性能结果买回来发现I/O通道不够用再追加板卡的成本比主机还贵。更麻烦的是有些仿真器的I/O板卡是专用接口只能从原厂买价格没有谈判空间。所以选型前一定要做一张I/O清单表把所有需要和控制器交互的信号列出来包括信号类型、电压范围、采样率要求、通道数量。这张表做完了你才能和供应商坐下来谈配置。信号类型典型通道数采样率要求备注模拟输入8-32路10k-100k SPS注意电压范围匹配模拟输出4-16路10k-100k SPS驱动能力要够数字输入16-64路事件触发注意电平标准数字输出16-64路事件触发注意驱动电流CAN/CAN FD2-8路1M-8Mbps终端电阻要匹配LIN1-4路20kbps主从模式要确认2. 实时性这个指标别被数字忽悠了实时仿真器最核心的指标就是实时性但实时这两个字在宣传册上被用得太随意了。供应商说我们的仿真器是实时的这句话本身没有意义你得追问步长多少抖动多少最小步长下的CPU占用率是多少2.1 步长和抖动的真实含义步长step size是仿真模型每计算一次的时间间隔。抖动jitter是实际计算周期和设定周期之间的偏差。这两个指标必须一起看。举个例子某仿真器标称步长10微秒但抖动达到±5微秒。这意味着实际步长在5到15微秒之间波动。对于闭环控制系统来说这种抖动会直接反映在控制效果上——你的控制器以为每个周期是10微秒但仿真器给它的响应时间在变控制参数整定就会变得非常困难。真正靠谱的实时仿真器抖动应该控制在步长的1%到5%以内。10微秒步长下抖动应该在0.1到0.5微秒之间。这个指标在选型时一定要让供应商提供实测数据不能只看标称值。2.2 CPU占用率留多少余量才安全CPU占用率是另一个容易被忽视的指标。供应商演示时跑一个简单模型CPU占用率30%看起来余量很大。但你的实际模型复杂度可能是演示模型的5倍再加上I/O通信开销、上位机通信开销、数据记录开销CPU占用率很容易冲到80%以上。我的经验是在最大模型复杂度下CPU占用率不要超过70%。留30%的余量给以下开销模型后续迭代增加的逻辑、I/O通信的峰值负载、上位机数据采集的突发流量、以及实时操作系统的后台任务。如果供应商告诉你我们的仿真器CPU占用率可以跑到95%你听听就好。跑到95%的系统任何一个小扰动都可能导致超时超时在HIL里意味着仿真结果不可信严重时会导致控制器误动作。2.3 多速率仿真的调度策略实际项目里你的模型很少是单一速率的。电机模型可能需要1微秒步长整车动力学模型10毫秒步长就够了电池热模型甚至1秒步长都行。这种多速率模型怎么在实时仿真器上调度是选型时必须问清楚的技术细节。好的实时仿真器应该支持多速率任务调度不同速率的任务独立运行通过共享内存或信号总线交换数据。差的仿真器可能要求所有模型统一到一个步长结果就是要么电机模型精度不够要么整车模型浪费计算资源。问供应商一个具体问题如果我的模型里有1微秒、100微秒、10毫秒三个速率的子系统你们怎么调度如果对方支支吾吾或者只说支持多速率没有具体调度策略那就要小心了。3. FPGA和CPU的分工钱要花在刀刃上FPGA在HIL里的角色越来越重要但也不是所有场景都需要FPGA。搞清楚什么时候用FPGA、什么时候用CPU能帮你省下不少预算。3.1 FPGA真正擅长的三类任务第一类是高速电力电子仿真。比如永磁同步电机的磁场定向控制开关频率20kHzPWM周期50微秒。如果用CPU仿真10微秒步长下每个PWM周期只有5个计算点电流波形严重失真。用FPGA可以把步长做到100纳秒每个PWM周期500个计算点波形精度完全不一样。第二类是高频信号生成和采集。比如你要给控制器发送一个模拟的旋转变压器信号载波频率10kHz需要FPGA来生成高精度的正弦调制信号。CPU的中断响应延迟和DAC更新速率往往达不到要求。第三类是并行多通道处理。比如多电机驱动系统三个电机同时运行每个电机都需要独立的电流环仿真。FPGA的并行架构可以同时处理多路信号CPU只能分时复用。3.2 FPGA开发的隐性成本FPGA方案听起来很美但隐性成本很高。首先是开发工具链的成本把Simulink模型转换成FPGA可执行的HDL代码需要专门的工具比如HDL Coder或者供应商自研的转换工具。这些工具本身价格不菲而且学习曲线陡峭。其次是开发周期。一个中等复杂度的电机模型从Simulink模型到FPGA上跑通有经验的工程师也需要2到4周。如果模型里有复杂的坐标变换、锁相环、观测器时间会更长。最后是调试难度。FPGA内部信号没法像CPU那样在线打印你需要用逻辑分析仪或者供应商提供的在线调试工具来抓信号。调试效率比CPU方案低不少。3.3 CPUFPGA混合架构的性价比对于大多数项目CPUFPGA混合架构是最务实的选择。CPU负责系统级模型、通信协议、数据记录、上位机交互FPGA负责高速电力电子仿真和高速I/O。两者通过高速总线交换数据。这种架构的好处是你不需要把所有模型都塞进FPGA只需要把对步长要求最苛刻的部分放进去。FPGA的规模可以小一点成本可控。CPU部分可以用通用的实时操作系统开发效率高。选型时要问清楚CPU和FPGA之间的数据交换延迟是多少交换带宽够不够如果延迟太大混合架构的优势就没了。架构类型适用场景步长范围开发难度成本纯CPU系统级、逻辑复杂10μs-1ms低中纯FPGA高速电力电子50ns-1μs高高CPUFPGA混合场景100ns-1ms中高中高4. 模型兼容性你的Simulink模型能不能直接跑这个问题看起来简单实际上坑最多。很多供应商说我们支持Simulink模型但支持的程度差别很大。4.1 支持Simulink不等于支持你的SimulinkSimulink模型里可能包含各种工具箱Simscape电气库、Simscape机械库、Stateflow状态机、Simulink Control Design控制器、以及各种第三方工具箱。不同的实时仿真器对这些工具箱的支持程度完全不同。有些仿真器只支持基本的Simulink模块和StateflowSimscape模型需要手动转换成常微分方程。有些仿真器支持Simscape但只支持特定版本。还有些仿真器对第三方工具箱完全不支持。选型时最靠谱的做法是拿你实际项目中最复杂的那个模型让供应商现场演示编译和运行。不要用他们准备好的Demo模型Demo模型都是精心挑选的跑不通才怪。4.2 模型分割和降阶的工程现实实际项目的模型往往太大没法直接塞进实时仿真器。这时候就需要做模型分割和降阶。比如整车模型可能包含发动机、变速箱、电池、电机、热管理、底盘等多个子系统全部放在一个仿真器里跑CPU扛不住。常见的做法是把模型分割成多个部分分布到多台仿真器上通过高速网络同步。或者对模型做降阶处理比如把有限元电机模型降阶成查表模型或者等效电路模型。这些工作的工作量往往被低估。一个复杂的整车模型从原始模型到实时可运行模型可能需要2到3个月的模型工程工作。选型时要把这部分工作量算进去问清楚供应商能提供多少模型工程支持。4.3 代码生成工具的版本兼容性Simulink模型最终要生成C代码或HDL代码这个过程依赖Embedded Coder、HDL Coder等工具。这些工具和MATLAB版本强绑定。如果你的团队用的是MATLAB 2020b供应商的仿真器只支持2022a以上的代码生成你就得升级MATLAB这又涉及工具箱授权、现有模型兼容性等一系列问题。一个容易被忽略的细节问供应商他们的仿真器支持哪些MATLAB版本以及他们自己用的是哪个版本。如果供应商的版本比你的新太多你的模型可能在他们那里编译不过。5. 别只看硬件软件生态才是长期成本HIL仿真器买回来只是开始后续的日常使用、模型维护、测试自动化都依赖软件生态。软件不好用硬件再强也是摆设。5.1 上位机软件的易用性上位机软件是你每天都要打交道的工具。它要能方便地下载模型、启动仿真、监控信号、记录数据、回放数据。这些功能听起来基础但不同仿真器的上位机软件体验差距巨大。我评价一个上位机软件好不好用主要看三点第一信号监控能不能自定义布局能不能保存布局第二数据记录能不能自动分段长时间测试时文件不会大到打不开第三能不能脚本化操作比如用Python批量跑测试用例。第三点特别重要。HIL测试往往需要跑大量测试用例手动一个个跑效率太低。如果上位机软件提供Python API或者COM接口你就可以写脚本自动化测试。如果没有那就只能人工值守测试效率天差地别。5.2 测试自动化框架的集成现代HIL测试越来越强调自动化。你需要把HIL测试集成到CI/CD流程里每次控制器软件更新后自动跑一遍回归测试。这就要求HIL仿真器能提供标准的自动化接口比如ASAM XIL API、dSPACE AutomationDesk、或者通用的Python接口。选型时要问清楚支持哪些自动化测试框架有没有现成的测试用例管理工具能不能和Jenkins/GitLab CI集成这些问题决定了你的HIL系统能不能真正融入研发流程而不是变成一个孤立的测试设备。5.3 技术支持和社区生态HIL仿真器是专业设备出了问题往往需要原厂支持。供应商的技术支持响应速度、技术支持工程师的水平、以及是否有活跃的用户社区都是选型时要考虑的因素。我经历过一次仿真器I/O板卡故障供应商的响应时间是48小时备件从国外寄过来又花了一周。这一周项目就停摆了。后来我们选了另一家供应商他们在国内有备件库技术支持响应时间4小时备件第二天就到。这种差异在项目紧张的时候是致命的。用户社区也很重要。有些仿真器有活跃的论坛用户之间互相帮助很多问题不用等原厂就能解决。有些仿真器用户少遇到问题只能找原厂效率低很多。6. 预算怎么分配才不浪费HIL仿真器的预算分配是个技术活。钱花在什么地方直接决定了系统的实用性和寿命。6.1 主机性能和I/O板卡的预算比例一个常见的误区是把大部分预算花在主机性能上I/O板卡能省则省。结果就是主机性能过剩I/O通道不够用项目做了一半发现要加板卡预算已经花完了。合理的预算分配大概是主机和实时系统占40%到50%I/O板卡占30%到40%软件授权和模型工程服务占10%到20%。具体比例取决于你的项目类型。如果是电力电子仿真为主FPGA和高速I/O的预算要往上提。如果是整车系统仿真为主CPU性能和CAN通信板卡的预算要保证。6.2 软件授权的隐藏费用HIL仿真器的软件授权模式五花八门。有些是一次性买断有些是年度订阅有些是按模块收费。选型时一定要问清楚实时操作系统的授权怎么算代码生成工具的授权怎么算上位机软件的授权怎么算后续升级要不要额外付费我见过一个项目硬件预算80万软件授权又花了30万因为实时操作系统按CPU核心数收费代码生成工具按模型大小收费上位机软件按并发用户数收费。这些费用在初期报价里往往不会全部列出来要主动问。6.3 模型工程服务的价值很多供应商提供模型工程服务帮你把Simulink模型转换成实时可运行的模型。这项服务的价格不便宜但对于缺乏实时仿真经验的团队来说价值很大。我的建议是第一个项目可以买模型工程服务让供应商帮你把模型跑通同时你的工程师全程参与学习模型转换的方法和技巧。第二个项目开始自己做遇到问题再找供应商支持。这样既保证了项目进度又培养了团队能力。7. 选型清单拿着这张表去和供应商谈说了这么多最后给你一张实用的选型清单。拿着这张表去和供应商谈能帮你问出关键信息避免被销售话术带偏。维度关键问题为什么重要实时性最小步长抖动CPU占用率决定仿真精度和稳定性I/O通道数信号类型采样率决定能接多少控制器信号FPGA支持哪些模型开发工具决定高速仿真能力模型兼容支持哪些Simulink工具箱决定现有模型能否复用软件上位机功能自动化接口决定日常使用效率支持响应时间备件库社区决定长期使用体验预算硬件、软件、服务各多少决定总拥有成本这张表里的每一个问题都建议让供应商提供书面答复或者现场演示。口头承诺在项目出问题的时候没有任何约束力。最后提醒一句HIL仿真器是研发工具不是消费品。选型的核心不是买最便宜的也不是买参数最漂亮的而是买最适合你当前项目需求、同时留有一定余量的。余量留多少我的经验是I/O通道留20%余量CPU性能留30%余量FPGA资源留40%余量。这样未来两到三年的项目扩展都不用换硬件。我在实际项目里踩过的最大的坑是早期为了省预算选了一台CPU性能刚好够用的仿真器。结果半年后模型复杂度增加CPU占用率冲到90%以上仿真开始不稳定只能重新买一台。算下来比当初直接买高配还贵。所以如果预算允许主机性能宁可过剩一点后面会感谢自己当初的决定。
阅读完成 · 觉得有帮助?
咨询建站