纯电动车Cruise与Simulink联合仿真模型搭建及参数校准实践
做纯电动车性能仿真真正跑到实车测试之前总得有一台能反复改策略、快速验证续航和动力性的整车模型。之前在一个预研项目里我们用Cruise和Simulink联合搭了一整套纯电动车实际项目模型从电池、电机到整车控制策略全部打通。这套组合在业内不算新鲜但真要把模型精度做到能和实测对标坑远比想象中多。这篇就把从模型架构、联合仿真接口到实测修正的完整实践整理出来给准备用Cruise加Simulink做纯电项目的人做个参考。1. 为什么选 Cruise 加 Simulink 组合而不是其他仿真路线1.1 扭矩、续航和控制器之间的缝隙需要联合仿真来填纯电动车仿真无非两条路一是全在Simulink里从零搭整车数学模型二是用专业车辆仿真软件包办。全在Simulink搭好处是自由度高想要什么策略都能写但车辆动力学细节、驾驶员模型、坡度、载荷转移这些东西全得自己实现稍微一个轮胎模型参数没给对加速仿真就能差出一截。专业软件呢能快速把整车物理模型搭好标准工况一跑动力性指标全都给可控制策略只能在内置模块里配来配去想实现复杂的再生制动协调、SOC管理、扭矩滤波根本不够用。联合仿真的价值就是把两头接起来Cruise里建真实的整车物理模型Simulink里放自己的控制策略。物理问题和逻辑问题分清楚出问题也好定位。实际做下来纯电动车项目里最耗精力的不是车辆本身而是能量管理策略这恰恰是纯Simulink路线做不动、纯Cruise路线做不精的部分。1.2 Cruise负责车辆物理Simulink负责策略逻辑分工才清楚这套分工的底层逻辑是车辆物理模型需要大量查表数据和连续积分Cruise已经把这些模块化比如轮胎、减速器、电池、电机的模型都被验证过直接拖进来配置参数就行。而控制策略天然是离散逻辑、状态机、查表和滤波放在Simulink里最顺手。联合仿真时Cruise是主求解器Simulink模型作为一个被调用的控制单元。每个步长里Cruise先算出当前的车速、转速、SOC、踏板位置等信号送给SimulinkSimulink跑一遍控制逻辑把电机扭矩指令、制动扭矩指令等信号返回给CruiseCruise再更新整车状态。听上去简单实际做的时候信号对不齐、单位搞混、步长不匹配都是最常见的翻车点。我们选这个组合前也犹豫过要不要直接用另一款纯电专用仿真工具。后来比较下来项目里需要自己开发扭矩解析和能量回收策略Simulink这边的自由度不可替代。而且Cruise有现成的工况库和报告模块不用自己写后处理两边结合效率最高。2. 纯电动车模型的子系统拆解电池、电机、传动与整车参数2.1 先把整车参数表做全质量、阻力、转动惯量不能拍脑袋一套能用的整车模型前提是参数完整。我们项目里第一版参数表直接沿用上一代车型的估算值结果续航仿真比实车高了不少后来才发现滚动阻力和转动惯量都低估了。分享一份我常用的参数清单整车整备质量、半载/满载质量分配前后轴荷比和质心高度。外形尺寸、迎风面积、风阻系数这两项直接影响高速能耗。滚动阻力系数最好能覆盖干燥、湿滑、低附着等路面。轮胎自由半径、动态半径以及单轮转动惯量。减速器传动比、传动效率、半轴和车轮的等效转动惯量。旋转质量换算系数谨慎起见直接输入转动惯量数值。很多人在Cruise里不设转动惯量或者随便填个经验系数看似加速仿真能过但遇到需要精确能量流分析的工况结果就会偏。转动惯量相当于把一部分能量存在旋转部件里加速时释放减速时吸收不设它等于把这部分能量省掉了百公里加速成绩会偏快。2.2 电池模型和电机效率MAP是整车性能的两块基石纯电动车模型里电池和电机的模型精度直接决定了续航和动力性的可信度。Cruise自带电池模型一般选用等效电路模型需要输入OCV-SOC曲线和充放电内阻随SOC、温度变化的二维查表。如果项目处在早期手头只有电芯样本数据先做HPPC测试得到内阻表再填进Cruise。这里有一个容易忽略的点内阻随温度的变化远比很多人想象得大。我们第一次跑冬季工况时直接用了25摄氏度的内阻结果低温打压特别猛续航一下子掉很多。后来把-20、0、25、40摄氏度四组内阻数据填进去仿真趋势才和实测吻合。电机模型方面除了峰值扭矩-转速外特性、峰值功率-转速曲线外最关键的是效率MAP。效率MAP必须以转速和扭矩为坐标包含驱动和发电两个象限。很多建模失败案例是只给了驱动效率发电效率统一填80%导致能量回收的续航贡献被严重错估。我们从台架实测数据导入效率MAP后回收能量占比从虚高的32%回落到合理的22%和实测一致。2.3 传动比与车轮模型会影响加速和最高车速的仿真精度纯电动车大多用单级减速器传动比的选择既要满足最高车速对应的电机最高转速又要在中低速区间给出足够的轮端扭矩。在Cruise里减速器模块配置时必须填传动效率和输入、输出端惯量。效率上别乐观填0.99工程上0.96到0.98比较常见。如果填得太高百公里加速仿真会偏快能耗会偏小。车轮模块主要设置自由半径、动态半径和滚动阻力模型。动态半径和自由半径的差异直接影响车速计算和轮端转速匹配尤其在滑行工况下动态半径不准会让反拖扭矩都算歪。还有一个常见坑Cruise默认路面附着系数如果没改在做爬坡或低附着工况时会误导能量回收策略因为制动力受附着限制。3. Simulink 控制策略与 Cruise 模型联合仿真接口配置与信号映射3.1 建立Cruise与Simulink的接口模块信号列表必须先对齐联合仿真第一步是在Cruise模型里插入Simulink接口模块。操作流程不复杂但有几个细节决定了后面能不能顺利跑起来在Cruise车辆模型中新建一个Simulink模块选择联合仿真模式。从组件库拖入Simulink接口Interface模块定义输入输出端口。打开MATLAB先把工作目录设到模型文件夹路径一定不能有中文否则S-Function加载必挂。在Simulink中通过Cruise提供的接口S-Function模块建立连接把端口和Cruise侧定义的一一对应。信号列表的制定我建议以控制策略为导向。比如我们需要车速、加速踏板开度、制动踏板开度、挡位、SOC、电机转速、电池电流这些作为输入电机扭矩指令、回收扭矩指令、DC-DC使能等作为输出。所有信号单位统一写在命名里比如VehV_kmh和AccPed_pct一眼就能看清楚避免后面混单位。3.2 扭矩解析与能量回收策略在Simulink里的落地方法控制策略的骨架是驾驶员需求扭矩解析这一步直接影响整车驾驶性。我们用的是踏板开度加车速的双维查表小踏板在小车速下扭矩增长平缓避免起步窜动大踏板在中等车速段给出接近峰值扭矩的响应。查表出来的是初始需求扭矩随后串一串修正模块。修正链条包括SOC低压限制、电机外特性限制、电池可用功率限制、扭矩变化率限制。SOC低压限制容易被人忽略但锂电池在低SOC下内阻大、允许放电功率小如果不限制扭矩仿真里会冒出超出电池能力的功率实际不可能发生。能量回收策略我们放在Simulink状态机里实现。基本逻辑是制动踏板踩下后优先让电机发电制动机械制动只补足不足的部分扭矩变化率必须做斜坡限制否则回收介入瞬间会有明显顿挫。我们在早期版本里直接把回收扭矩和制动踏板开度挂钩结果仿真曲线很激进实车验证时驾驶员主观感受极差后来加了一阶惯性滤波才解决。3.3 仿真步长与求解器配置联合仿真卡住的常见原因联合仿真最磨人的部分是求解器配置。Cruise侧可以设置固定步长Simulink侧必须选择离散定步长否则两边时间推进不一致信号时序乱套。我们统一用0.01秒固定步长做离线仿真计算量可接受控制效果也够。如果做实时的硬件在环步长要压到0.001秒但对主机性能要求高。另一个容易踩的问题是Simulink模型里混用了连续模块。如果策略里出现连续积分器或者连续传递函数定步长求解器会报错或反复迭代。解决办法是把所有需要积分的变量改造成离散积分器采样时间设为仿真步长。还有一个经验是Simulink里尽量不要放高频噪声源和连续随机过程否则联合仿真每一步都会卡一次。4. 仿真结果与实际测试对不上项目里最常见的修正案例4.1 续航仿真偏高SOC估算与电池内阻修正我们第一版纯电模型跑CLTC续航仿真结果比实车测试高了大约8%。刚开始怀疑是电机效率MAP太乐观后来逐项排查才发现主要问题在电池模型。当时初始SOC直接设成95%但BMS实际显示的可用SOC受温度和放电电流影响OCV曲线在低SOC段很陡内阻又偏大导致后期可用能量迅速缩水。修正思路是把手头电芯的HPPC测试数据完整重新填一遍重点补上低温内阻和放电末期的极化内阻。另外模型里的附件电耗也要从固定常数改成随温度和车速变化的查表尤其冬季加热和夏季空调的功率差距能到4倍。这两项改完续航偏差从8%缩到了2%这个精度对预研阶段已经够用。4.2 加速时间偏慢电机外特性与电池电压降的协同调整另一个项目里0-100km/h仿真加速时间比实测慢了0.3秒。起初以为是减速器效率设置低了把效率调到0.99后仿真还是慢。后来去查实测数据发现电机外特性扭矩曲线一直被低估台架实测的峰值扭矩比供应商给的曲线高出5%。仿真里把外特性修正后加速时间提高了0.2秒还剩0.1秒的差距。剩下这0.1秒来自电池电压降。我们原来把电池看成一个理想电压源加固定内阻忽略了放电电流增大时内阻的非线性抬升。改成电流-内阻二维表后大扭矩起步阶段电池压降更接近实测加速时间总算对齐。这里的关键是外特性决定电机能出多少力电池压降决定这个力能不能持续两者必须同时校准。4.3 能量回收介入突兀制动请求与回收扭矩的时序标定最开始做再生制动策略我们只关注能量回收量和制动距离忽视了一个驾驶性问题回收扭矩介入时机太生硬。在联合仿真里司机模型和驾驶员主观感受不一样但模型输出会出现明显的减速度突变。通过调整策略里回收扭矩的上升斜率以及加入踏板死区判断最终修正了介入突兀的问题。具体做法是在Simulink策略里加入回收扭矩变化率限制器允许的上升斜率不宜超过每10毫秒10牛米同时把制动踏板开度2%以内设为死区避免轻踩刹车时回收突然介入。另一个细节是滑行能量回收的退出也要平滑否则车辆会有被向后拽一下的感觉。这些标定参数在联合仿真里可以先粗调再到实车精调。5. 从零开始搭建纯电模型的实操清单与参数准备5.1 搭建一套可复用模型的最小步骤清单如果你想快速搞出一套能用于预研的纯电模型按下面顺序来能少走弯路收集整车、电池、电机、减速器参数整理成统一的参数表。在Cruise里搭建基础车辆模型不接Simulink控制策略先用软件默认的控制模块跑通动力性和续航。确认基础模型结果在合理区间后再在Simulink里建控制策略先用离线数据单步验证。创建联合仿真接口从简单的开环信号开始逐步接上闭环策略。用标准工况跑一遍跟目标指标对比逐项校准参数。这五步看起来普通但很多人急着接策略结果基础模型本身有错联调时根本分不清是物理模型问题还是控制策略问题。我的经验是基础模型的验证至少要花掉一半时间。5.2 参数准备与验证顺序表参数准备不是把所有值填进表格就算完每项参数都得有验证途径。我习惯按下面的顺序准备和验证参数项典型来源验证方法整车质量/质心概念阶段估算或实测实车称重、轴荷测量风阻系数CFD或风洞滑行阻力拟合对比滚动阻力系数轮胎供应商或经验滑行试验、胎压修正电池OCV/内阻电芯HPPC测试不同温度充放电功率对比电机效率MAP台架测试驱动与发电功率积分对比传动效率经验值或台架能量流分析对比这里说一个实操技巧滑行试验数据是校验整车阻力的金标准。让车辆在平路上空挡滑行记录减速曲线换算成阻力再和仿真里输入的滚动阻力加风阻对比如果差值超过5%不是参数错了就是模型里少了什么。我们处理过好几回最后都靠滑行试验把阻力系数拉回到实测水平。5.3 团队协作时模型版本与标定数据的管理建议联合仿真项目往往不止一个人碰模型版本管理做不好就变成互相覆盖的灾难。我们内部定了几条规矩Cruise模型文件和Simulink模型分开存用版本管理工具统一管理每次参数变更都写清楚对应工况和版本号。电池内阻表、效率MAP这类标定数据不直接塞在模型里用独立的Excel表管理再通过脚本批量生成查表数据。这样做的收益很直接当某个工况仿真结果异常时可以快速定位是哪一版参数引入的变化。尤其是扭矩map和SOC修正表经常会被不同的人微调没有版本追踪的话回溯问题几乎不可能。另一个建议是在自动化脚本里加入一键运行标准工况并输出报告的功能每次模型改动后都能自动回归一遍看看有没有把核心指标搞坏。最后说点个人体会。建纯电动车模型这件事真正花时间的地方不是拖模块和连信号而是把每一项参数来源、验证结果和版本变更记录清楚。模型本身是产品开发的一个支点支点稳不稳取决于底下的参数有没有被较真地核对过。多花点时间在前两周长测数据上后面的联合仿真和实测对标会顺畅很多。