各位同行,深夜调增程器的兄弟们,你们有没有这种感觉——纯电车跑高速,电池像漏了一样掉电;燃油车市区代步,油耗又高得肉疼。增程器这个“和事佬”就是来解决这个矛盾的:平时让电机干活,亏电了发动机出来发电,不直接驱动车轮,只在必要时候站出来搭把手。但问题来了,怎么证明这玩意儿靠谱?整车厂不可能每改一版策略就拉台架去跑几百公里,成本和周期都扛不住。所以仿真就成了那个撬动价值的杠杆。我今天要聊的,就是怎么用CRUISE把增程器这个“中间商”做成一个有说服力的仿真模型,让它在深夜调模型的时候,能真正告诉你这车能跑多远、油够不够、电够不够、动力够不够。
这篇东西更适合谁看?正在做增程动力系统选型、能量管理策略标定、整车经济性仿真评估的工程师,以及想从纯电或燃油转过来接触增程技术的朋友。模型本身不复杂,难点全在细节的取舍和对原理的理解上。我会把从模型搭建到策略调试,再到结果分析的过程完整捋一遍,把我踩过的坑和验证过的方法一起放出来。
1. 内容整体设计与思路拆解
1.1 增程器方案的基本盘
先说清楚增程器在整车里到底扮演什么角色。它的基本盘就三块:发动机、发电机、功率控制器。发动机不直接怼到车轮上,它只管烧油带动发电机,发出来的电先给电池补能,也可以直接给驱动电机供电。这种串联拓朴最大的好处,是发动机可以长期工作在最优油耗区间,不用像燃油车那样一会儿加速一会儿怠速,转速和负荷忽高忽低,燃烧效率稀碎。
但这里面的坑也很明显。能量每多转换一次,就有一次损耗。化学能转机械能,机械能转电能,电能再进电池补能再取出来,这链条扯得越长,损耗越多。所以增程器并不是什么黑科技,它就是拿“效率换灵活”的和事佬——发动机高效区间再窄,只要始终压着那个区间跑,综合效率反而有得打。这也是为什么做仿真的时候,发动机的万有特性数据(BSFC)那么重要,因为它直接决定了增程器在什么点工作是更合算的。
1.2 为什么选CRUISE这类整车仿真工具
市面上做整车性能仿真的工具有不少,有通用的多体动力学仿真平台,也有专门搞发动机热力过程的专业软件,还有做控制策略的纯代码环境。但搞增程器这块,CRUISE这类整车能量管理仿真工具是业界最常用的舞台。原因是它能在一个模型里把机械、电气、控制几条链路同时贯通起来。
你没有必要在发动机里面直接算活塞压缩燃烧那一堆东西,也不需要自己写电机矢量控制的底层代码,你要的是“这个发动机此刻烧了多少油”、“这个发电机此刻发了多少电”、“电池SOC此刻掉了多少百分比”。CRUISE这种模块化能量仿真平台正好就干这个事。每个部件都被抽象成一个带输入输出接口的物理模型,你把整车、发动机、电机、电池、控制策略各自拖进模型,连好线,设定参数,它就能把整车在一个标准工况下跑出油耗、电耗、动力性指标。
我最初入行的时候,也试过用通用仿真软件从零搭一套增程器的能量流模型,结果发现光是把电池内阻随SOC和温度变化的曲线填准、把发动机的油耗MAP和排放MAP处理好,就要写一大堆查表逻辑。在CRUISE里这些物理特性本身就是模块的默认属性,你只需要灌数据。这就像在毛坯房里做装修和从打地基开始砌房子的区别,周期完全不是一个量级。
1.3 模型搭建前的思路规划
动手搭模型之前,我习惯先画一张粗线条的能量流脑图。增程器仿真模型里,能量管理的核心就是回答几个问题:
- 发动机什么时候启动?是以SOC阈值做判断,还是以驱动功率需求做判断?
- 发动机启动以后,以什么功率点运行?固定功率点,还是沿着最优油耗曲线滑动?
- 电池在中间扮演什么角色?是缓冲垫,还是主力电源?
这三个问题,说穿了就是能量管理策略的全部。CRUISE建模型,怎么连机械轴、怎么接高压线束,反而是最不烧脑的部分。真正的功夫在于把这三个问题的答案翻译成控制模块里的逻辑,再落到模型中跑起来。
2. 核心细节解析与实操要点
2.1 整车模块的参数细节
CRUISE里整车模块是承载所有负载计算的地基。很多人草草填一个整备质量就开跑,后面做动力性指标时发现加速时间老是差着一截,回头查才发现迎风面积和风阻系数都是从某个参考车型抄的。这种参数错一个,在CLTC这类低速工况里看着没啥大问题,但一上WLTC高速段,风阻的影响会被迅速放大。
整车模块里需要关注的几个关键参数:
| 参数 | 说明 | 对结果的影响 |
|---|---|---|
| 整备质量 | 包括电池、增程器在内的整车重量 | 直接关系加速、爬坡、能耗 |
| 迎风面积 | 车辆正面投影面积 | 高速工况油耗/电耗敏感 |
| 风阻系数 | 空气动力学特性 | 同上 |
| 滚动阻力系数 | 轮胎与路面摩擦特性 | 中低速工况占比大 |
| 轮胎动态半径 | 影响车速计算结果 | 偏小则车速偏低,易掩盖动力问题 |
关于整备质量这里有个细节。增程器一整套东西加进去,会比同平台纯电版重上几十甚至上百公斤,因为发动机、发电机、油箱、排气管路这些都是额外加的。如果一开始就用纯电版的整车质量数据,后面算出来的电耗和油耗会偏乐观。我实操时会在质量参数里留一个修正余量,至少预留50kg给增程系统的附加结构件。
2.2 发动机模块的正确打开方式
发动机模型在CRUISE里的核心是外特性和万有特性数据。外特性给你看这台机器在节气门全开时能输出多大扭矩,万有特性告诉你等油耗率跟着转速和负荷是怎么分布的。
增程器最讲究的就是万有特性。因为增程器的发动机运行点完全由策略决定,你不用管低负荷怠速区域的油耗有多难看,你只需要找到油耗最低的那一小片区域,然后想办法把发动机摁在那一带干活。
实操中特别容易犯的错,是直接把发动机台架数据甩进模型,却不检查转速轴和扭矩轴的分辨率。万有特性MAP的分辨率很关键,分辨率太粗,油耗最低点的位置会偏移,策略输出跟着歪掉。我一般会要求数据源至少在转速方向上每隔500rpm给一组数据,扭矩方向每隔10%负荷给一组,这样插值出来才有参考价值。
2.3 电池建模的核心不只在SOC
电池在增程器仿真里经常被当做一个不声不响的储能水池。很多人设一个电池容量,一个初始SOC,就撒手不管了。但增程器模型里,电池更像一个带自我损耗的缓冲池。
CRUISE里电池模型一般用等效电路模型来算,涉及开路电压和内阻这两条随SOC变化的曲线。这两条曲线如果偷懒用固定值,电池在低SOC区的行为就会失真。增程器策略一般允许电池在25%到70%之间反复充放,如果用固定内阻去算,低SOC区的大电流放电压降被严重低估,你就看不到电池在这个区间效率下降的真实情况,策略优化方向也跟着被带偏。
还有一点是充放电功率限制。电池不是一个只能乖乖听话的电源,它有最大充电功率和最大放电功率。增程器发的电多的时候,电池能不能全吃下?急加速的时候,电池能不能顶住驱动电机的峰值功率需求?这些都在电池模块里通过功率限制曲线定义。做仿真模型时,一定要把这些漂移的约束条件加进去,否则SOC变化曲线看起来如丝般顺滑,实际真车跑起来完全不是那么回事。
2.4 电机模块的效率MAP
驱动电机在增程车上吃的是高压母线的电,出力输给车轮。这个模块建模最简单,就是给一张效率MAP,横轴转速、纵轴扭矩、颜色区域是效率。但简单归简单,MAP数据本身质量要过关,尤其要注意低转速大扭矩和高转速小扭矩这两个极端区域的效率值。这两个地方的效率通常都偏低,如果数据是补出来的,仿真电耗会偏乐观。
我就见过一台电机效率MAP在低扭区被人为做成95%,结果整车WLTC电耗仿真比竞品车低一大截。一查,原来那个区间压根没台架实测数据,建模的人拉了一条平线充数的。这种坑,对着一堆数据看半天都发现不了,最后只能靠对照同级别电机的典型效率水平来做交叉验证。
2.5 增程器控制策略模块:整个模型的灵魂
CRUISE仿真模型里的所有物理组件都是“四肢”,控制策略才是“大脑”。在增程器模型里,常见的方式是用CRUISE自带的逻辑控制模块或者外接Stateflow/C代码做策略闭环。
控制策略我一般会拆成三个子模块来写:
第一个是SOC维持模块。它读取电池当前SOC,和上下限阈值做比较。SOC掉到下限了,启动发动机;SOC充到上限了,停机。这里面还要加上滞回区间,不然发动机会在阈值附近反复横跳。
第二个是功率跟随模块。发动机启动后,它的输出功率可以定在某个固定值,也可以根据当前整车功率需求做调整。固定功率模式标定简单,但电池充电功率忽大忽小,冲击比较大;功率跟随模式舒适性好,但发动机工作点会飘,油耗跟着变。
第三个是发动机启停保护模块。这主要管启动转速、暖机时间、停机延迟这些工程细节。发动机刚起机那几十秒机油压力没上来、水温没起来,是不适合满负荷发电的,这时候功率要限住,这些逻辑不进模型,仿真结果对整车的标定参考价值就会大打折扣。
这三个子模块里,最容易被低估的是滞回逻辑。第一次调策略的时候我的SOC阈值设的是30%启动、35%停止,结果在一个陡坡工况里,发动机刚起动跑了2分钟,SOC冲过35%停了,结果下一段又是加速工况,SOC又掉回来了,发动机又得重新起机。这来来回回,油耗数据和启停体验全崩。后来改成30%启动、45%停止,发动机每一次工作都时长拉满带了好一会儿电,油耗和NVH都顺了。
3. 实操过程与核心环节实现
3.1 模型拓扑搭建的五个步骤
在CRUISE里搭增程器模型,说难不难,但我建议从头就养成一套标准操作习惯,后面排查问题能省很多事。
第一步,新建一个整车项目,选好车辆类型。增程器属于串联混合动力,模型拓扑和并联混动、纯电是不同模板,这一步千万不要选错,否则后面摸组连线全是乱的。
第二步,把整车、驾驶员、发动机、发电机、驱动电机、电机控制器、电池、油箱、车轮、制动器、主减速器等模块拖进模型界面。按能量流顺序摆好,机械轴连机械线,高压线束连电气线,信号线连控制线。
第三步,依次双击每个模块,填入对应的参数。整车参数和部件参数我建议分成两个Excel表管理,一个是整车端参数,一个是各部件总成参数,这样后续改车型配置就不用重新建模。
第四步,搭控制策略。我习惯直接把控制逻辑做成一个独立模块,模块的输入是SOC、车速、整车功率需求这些信号,输出是发动机启停命令和功率指令。这块不急着一口气写完,先做一个最简单的SOC阈值策略让模型跑通,再一步步往上加逻辑。
第五步,配置工况任务,仿真并查结果。这一步一定不要同时跑十几个任务,先跑一个CLTC工况,确认基本动作逻辑没问题了,再批量跑WLTC和高速工况。
3.2 参数输入的前后顺序
参数输入的顺序直接影响后面调试的效率。我总结了一套固定顺序:
- 先灌整车参数。质量、风阻、滚阻、轮胎这些是基础项,不填对,后面所有结果都没有意义。
- 再灌发动机数据。外特性曲线、BSFC万有特性、怠速转速、许用最高转速。
- 接着灌电机和发电机数据。效率MAP、峰值扭矩外特性、持续功率边界。
- 然后灌电池数据。容量、初始SOC、开路电压曲线、内阻曲线、充放电功率限制。
- 最后才是控制策略参数和工况任务配置。
这顺序有什么讲究?因为模型运行过程是从整车负载算到部件输出,再算到控制策略动作,物理参数不稳定,策略怎么调都像在沙滩上建堡垒。次序倒了,后面排查问题时会搞不清到底是数据坏了还是逻辑坏的。
3.3 工况选择对仿真结果的实际影响
增程器的仿真结果和工况强相关。同一个模型,CLTC、WLTC、高速巡航三种工况跑出来,油耗和电耗可能差出两倍。
CLTC工况低速段占比高,整车功率需求小,增程器的启动频次也偏低,电池是主力,这个时候仿真模型主要考验的是电池电耗的精度。WLTC工况高速段更多,车速更高,整车需求功率大,增程器启动更频繁,这个时候仿真模型更多考验的是发动机工作点控制和油耗计算精度。高速巡航工况则是最恶劣的场景——整车持续大功率需求,电池SOC一路下探,增程器长期压在最高功率点上干活,油耗和热负荷都会暴露问题。
我做增程器项目时,通常是先把CLTC和WLTC都跑一遍,重点观察两种工况下的SOC维持能力。如果CLTC下SOC一直没有跌破下限,说明策略偏省油取向;如果WLTC下SOC下探速度过快,就要考虑是不是某些工况点上增程器的发电功率不够用,或者电池放电功率限制卡得过紧。
3.4 跑完仿真后先看什么
模型跑完之后,不要立刻盯着一堆结果图发愣。我一般先看三条曲线:
第一条是车速跟随曲线。先把驾驶员的PI参数和工况车速放在一起对比,如果车速跟随有稳态误差或者抖动,那说明驾驶员模块参数没调好,整车负载计算结果也会跟着出错,这时候看油耗数据就是自欺欺人。
第二条是SOC曲线。一般的增程器在CLTC工况下,SOC应该在一个窄带里波动。如果SOC像开闸泄洪一样往下掉,而且增程器启动后也止不住跌势,那要么是增程器功率限制过小,要么是电池容量和放电限制配置不合理。
第三条是发动机工作点分布图。把发动机在万有特性上的运行点标出来,可以很直观地看到发动机是不是被摁在最省油的区域。如果工作点星星点点散了一大片,说明策略的功率跟随逻辑有问题,发动机一直在追着需求跑,而不是稳在高效点上发电。
4. 常见问题与排查技巧实录
4.1 SOC掉电掉得刹不住车
这是增程器仿真中出现频率最高的典型问题。模型跑了两百秒,SOC从初始的50%直掉到30%,启动了增程器之后还在往下走,只是斜率变缓了。
排查思路我建议沿着这条线走:先看增程器在额定功率点发的电够不够中期功率需求。CLTC工况下平均功率需求通常不大,但如果整车质量大、风阻强,或者路况里持续爬坡段多,增程器固定功率点发出来的电就喂不饱整车。这时候要么把增程器工作点功率提上去,要么把电池SOC下限调高一点,让电池的缓冲容量更大。
另外一个容易被忽略的原因是电池最大充电功率限制。电池SOC越低,允许的充电功率往往也会下降。如果策略里给的发电功率大于电池能吸收的功率上限,那么多余的电就只能供给电机,如果电机需求没那么大,发出来的电没处去,增程器就只能降低发电功率。这种情况下的现象就是SOC依然掉,但增程器已经满负荷在跑了。
4.2 发动机启停像抽风一样频繁
增程器策略的滞回区间如果设计得不合理,发动机启停频次会高到让你怀疑模型是不是疯了。
我遇到过一次典型场景:SOC阈值设为30%启动、35%停止,但驾驶工况是一个车速波动较大的城市循环。急加速段电池放电快,SOC快速下探到30%,发动机启动;紧接着滑行制动段整车需求功率负值,制动回收给电池充电,SOC很快又冲到35%上方,发动机停;然后又是下一个急加速,SOC又掉,发动机又启。
一圈下来发动机启动次数翻了倍,油耗数据和实际体验都一塌糊涂。解决办法有三个方向:一是扩大滞回区间,把启动阈值和停止阈值之间的带宽拉开;二是给发动机设置一个最短运行时间,比如启动后至少运行5分钟,不许中途停机;三是在SOC判断之外增加一个功率判断,当整车需求功率持续低于某个值时即使SOC偏低也延后发动机启动。这三个措施组合起来,启停频次可以大幅下降。
4.3 仿真结果和台架数据对不上
很多人在仿真做完之后,兴冲冲拿结果去和实测数据对比,结果发现油耗差个10%到20%,立马开始怀疑模型精度。
我做过几轮对比之后的感觉是,仿真和实测之间的偏差,很大一部分来自损耗项。台架标定的时候,发动机水泵、风扇、转向助力泵、空调压缩机这些附件功率消耗往往没有完全打进仿真模型里。一台增程器在巡航工况下,附件消耗个3kW到5kW是常态。别小看这几点几千瓦,放到整车上它可能占了总需求功率的10%以上。
处理办法是在整车负载里加一个附件功率的补偿项。我是习惯在模型里单独做一个基础附件负载模块,按照车速和空调开关状态给一个分段函数。这样做完之后,仿真油耗和台架数据的贴合度明显提高。
4.4 仿真跑起来特别慢
增程器模型的仿真速度慢,最终极因素一般是步长设得太小。CRUISE默认的仿真步长可以满足精度要求,但如果你把步长压到微秒级别,几十分钟的工况可能要跑一下午。
提速思路很简单:在满足精度需求的前提下,把步长放到毫秒级别;如果控制策略里有高频PWM信号或者特别快的响应逻辑,把响应快的部分从主仿真模型里摘出去,单独在外部验证,主模型里用等价平均值替代。
我见过最极端的一次,整个模型里放了几个频率极高的信号源,那玩意儿精度倒是足了,但整车仿真任务跑了整整一个通宵。后来把这些高频信号换成平均值等效模型,整个工况两分钟跑完,结果差异完全在工程允许误差范围内。
4.5 模型能跑但结果明显违反物理常识
还有一种情况是所有曲线都正常收敛,但结果数据一看就不对劲。比如电耗算出来只有百公里8度电,或者油耗算出来百公里3升,比同级别车低了快一半。
这种反常识的数据,我通常优先检查的是一堆不起眼的单位。CRUISE里功率、扭矩、转速的单位有工程值和国际单位制两套体系,如果某些老数据是从参考项目搬到新模型里用的,极容易出现单位混用的情况。我吃过一次亏,一台电机的外特性数据是国际制单位,结果灌进一个英制单位模板里,峰值扭矩直接翻了大概1.3倍,加速成绩一下子变得离谱得好,真跑起来根本不是那么回事。
所以我的习惯是,灌数据的时候,每个模块的单位制强制统一,输入完成之后把几个关键指标的期望值放在手边比对,比如发动机峰值功率应该在什么范围、电机峰值扭矩能推动多大的车。数值偏差超过20%,就要停下来回头查,不要怕费事。
5. 实操经验与心得分享
5.1 仿真模型的价值边界在哪
增程器仿真模型做到后期,会越来越逼近一个真相:它帮不了你完成真正精密的硬件选型,但它能帮你把策略方向框在一个不太会犯大错的范围内。
到项目后期,我养成了一个习惯——仿真结果只做相对评价,不做绝对判断。就是说我常关注的是“A策略和B策略比,谁的油耗低5%”,而不是“这个车的油耗就是百公里6升”。绝对数值要交给台架验证,相对比较结果用来做方案排序,这才是仿真模型在这个链条里最正确的姿势。
5.2 建模型过程中最值得多花时间的地方
如果要我推荐一个最值得多花时间打磨的模块,我会毫不犹豫地推荐能量管理策略里的边界条件。SOC上下限、发动机启停的滞回带宽、电池功率限制、增程器最大持续发电功率,这些东西每一个单拎出来看都是个简单参数,但它们排列组合在一起,决定了一台增程车是更像“带充电宝的电动车”还是“带电池的燃油车”。
我在边界条件的调参上有一个笨办法:把每一个参数做成一个可扫描的量,然后跑几组设计工况矩阵,看这组参数在工况范围内是不是都能稳住SOC、都能压住油耗。这个做法前期看起来费时间,但相比你拿着三四个参数在模型里手动来回试,效率能提一个数量级。
5.3 后续可以扩展的方向
模型搭到能稳定跑工况的程度之后,还可以往这几个方向扩展。
一个方向是给增程器加上油耗和排放的联合约束,把排放MAP一起拉进模型,这样策略优化目标就不只是油耗最低,而是油耗和排放的加权最优。另一个方向是加进去温度因素,把电池温度和发动机水温对能耗的影响建模进来,尤其是冬天低温环境下电池活性下降、发动机冷启动油耗偏高这一类闭环效应,把它搬到模型里之后,整车的冬季能耗评估会更接近真实。还有一个方向是做驾驶员模型的高级化,把驾驶风格参数变成可变的,模型就能覆盖从平稳驾驶到激进驾驶的全谱系工况,策略的鲁棒性也能更全面地评估。
这套增程器CRUISE仿真模型,说到底就是一台思想实验机器。你不需要开真车跑十万公里才能验证一种策略思路,只需要在深夜办公室里把参数改一改、点一下仿真运行,几十个工况过去,数据自己会说话。模型永远不会替代台架和实车路试,但它能让你在深夜下班前,对未来要做的造车决策多一分底气。