1. 增程汽车 cruise 仿真模型的定位与设计拆解
先说结论:增程汽车仿真模型 + 恒功率控制,这是目前做混动/增程整车预研和架构验证时性价比最高的一套组合。cruise 在咱们汽车圈子里指的是 AVL Cruise,一套经典的整车纵向动力学仿真工具。很多人一开始接触它就是拿现成模型改参数,而标题里提到的 base 模型,恰恰是所有工作的起点——它不是最终交付物,而是用来把整车定义、能量流逻辑、控制策略接口先跑通的原型骨架。没有这个 base 模型,后面谈优化、谈选型、谈标定都容易跑偏。
我在实际项目里,base 模型最核心的三个作用分别是:版本基线、定值基准和策略载体。先说版本基线:整车参数每天都可能变,电池换供应商了、电机换型号了、风阻系数改了,如果没有一个稳定的 base 模型把当前配置固化下来,开发后期很难定位到底是参数漂移还是策略问题导致的结果变化。再说定值基准:增程器的恒功率控制本质上先把增程器的工作点固定在一个高效区域,那么整车性能上传下来的油耗、电耗、馈电状态的动力表现,都围绕这个固定点展开评估。最后是策略载体:base 模型上预留了控制策略输入输出端口,标定组、策略组、仿真组都能在同一版本上做联合,避免各干各的。
这套模型适合谁来用?搞整车性能仿真的人、刚开始接触 AVL Cruise 的入门工程师、以及正在做增程架构预研但还没定控制策略的开发团队。如果你只是用 Simulink 搭整车模型但缺一套能跑工况的整车环境,拿 cruise base 模型做外部环境耦合也完全可行。恒功率控制特别适合在 base 模型阶段先验证增程器能不能稳定工作在高效点、电池能不能扛住功率波动、整车电量能否在目标 SOC 区间附近波动。它解决问题的方式很简单:先把变量稳住,再谈优化。
2. 恒功率控制在增程器模型里的原理与实现
2.1 为什么首选恒功率控制
增程器在整车里扮演的角色是"车载发电站",它的核心矛盾在于发动机是一个既需要负载又不能瞬间变负载的设备。你要是让增程器实时跟随驾驶员功率需求走,发动机就要频繁踩转速、推扭矩,热效率上不去不说,振动噪声还大,油耗和使用体验两头都占不到便宜。恒功率控制的思路则干脆得多:让增程器按一个预先设定好的功率值稳定运行,功率偏差由电池来补偿。
这个逻辑展开一下:整车需求功率 = 驱动功率 + 附件功率;增程器输出功率 = 恒功率设定值;电池输出功率 = 整车功率需求 - 增程器输出功率。当整车需求功率波动时,电池自然地把差额吸收或补充掉。这种"增程器稳、电池动"的控制方式,是把整车能量管理这个大问题拆成两部分来解决。base 模型阶段最怕的就是多个控制目标互相耦合,恒功率控制能把增程器那一路彻底解耦,让仿真的不确定因素集中到电池和驱动系统上去排查。
2.2 恒功率设定值的选取逻辑
很多人上来就拍脑袋设一个 30kW 或者 25kW,其实这个值应该从发动机万有特性曲线上推出来。我在项目里的习惯做法是,先拿到发动机的 BSFC 油耗 map,找出最低油耗区对应的转速区间和扭矩区间,然后按"覆盖大多数驾驶工况的平均功率需求"来选恒功率点。
以一个典型中型增程 SUV 为例:整车质量大概 2.2 吨,高速巡航需要功率约 25~30kW,城市综合平均需求功率约 12~15kW。如果恒功率点设得太高(比如 40kW),电池小功率充电很快充满,增程器启停频率上升;如果设得太低(比如 10kW),发动机点落在低负载区间,油耗反而偏高,因为发动机在低负荷的空燃控制效率并不好。比较稳妥的做法是取"发动机万有特性最低油耗区间的中点功率",一般落在发动机最大输出功率的 40%~60% 之间,再用电池的容量去校核 SOC 波动幅值是否符合预期,反复迭代几次才能定。
2.3 恒功率控制逻辑的模型输入
在 cruise 模型里实现恒功率控制,一般两种做法:一种是在 cruise 内部通过 Function 模块写逻辑,另一种是走 Simulink 联合仿真接口。我这里给 base 模型阶段一个建议:直接先在 cruise 内部做简化逻辑,不要一上来就联合仿真。联合仿真耗时、调接口麻烦,而恒功率控制在 cruise 内部几行逻辑就能搞定。
标准逻辑大概这样走:SOC 高于增程器停机阈值(比如 0.3),增程器不启动;SOC 低于启动阈值(比如 0.25),增程器按预设恒功率值启动;SOC 再次充到停机阈值,增程器关停。增程器输出功率本身不做 PID 调解,只做功率修正——根据高压附件耗电量和电池允许充电功率做一个限幅。上限是发动机能输出的最大功率,下限在 0.5 到 1kW 之间防止增程器空转产生额外损耗。
3. cruise 增程 base 模型的搭建流程与关键参数
3.1 整车动力学模型的骨架搭建
增程车和纯电车的 cruie 模型差别并不大,整车骨架就是那套:驾驶员模块、车轮、制动器、减速器、电机、电池、车身阻力模块、以及一个控制模块。区别在新增了发动机、发电机、油箱、以及增程器(发动机+发电机组合)的功率耦合环节。第一次搭这个模型时,别急着堆参数,先把模块选型和机械连接顺序理顺。
搭建顺序上我习惯从后往前搭:先搭车轮和制动器,然后接减速器、接驱动电机,再把电池高压线束接上,这部分能直接借用纯电车型的模板。接下来才加增程器回路:发动机输出轴接发电机,发电机的电气端接高压总线。这里注意一个关键点,cruise 里的机械连接是有方向性的,发电机扭矩方向和转速方向不能搞错,否则会出现功率流反灌的报错。
电池的电气参数也不能随便填。先查电池供应商给的额定电压、容量、SOC-OCV 曲线、内阻矩阵,填进电池模型里。base 模型阶段如果拿不到内阻矩阵,可以用恒内阻替代,但直流内阻的取值有讲究:一般取电池在 50% SOC 附近的中高倍率内阻,别取低倍率下的内阻,不然仿真出来的母线电压压降跟实车差得太多。
3.2 增程器模型与发动机地图处理
发动机模型是整个增程仿真模型中最容易偷懒又最不能偷懒的模块。AVL Cruise 官方自带的发动机模型一般是外特性 map + 部分负荷油耗 map,只要你填了转速-扭矩外特性和油耗 map,它就能按查表方式计算出瞬时的燃油消耗量。base 模型阶段,我不建议用详细的燃烧模型或一维热力学模型,太慢、太敏感,没必要。
关键的输入数据是这三张表:转速点数组、扭矩点数组、油耗比例因子矩阵(或者直接放各工况点的油耗值)。把发动机万有特性数据从试验报告整理成表格时,注意单位换算,这边是 Nm 和 rpm,那边是 kW 和 rad/s,搞错一个数量级仿真结果直接不可信。发电机模型相对简单,填发电效率 map 就行,但记得把机械输入侧与发动机的连接选成刚性连接,中间不必加离合器——严格来说增程器在整车运行时本就没有解耦需求,加离合器反而多了一个控制变量。
3.3 恒功率控制模块的 cruise 内部实现
在 cruise 的 Functions 文件里新建一个控制函数,输入是电池 SOC 信号,输出是增程器使能指令和发电机目标扭矩。具体逻辑代码逻辑如下:
- 判断 SOC 是否低于启动阈值,如果低于且增程器未运行,置为使能;
- 若增程器处于运行状态,按当前发动机转速计算目标扭矩(目标功率和当前转速相除得到扭矩);
- 对目标扭矩做限幅,上和下都不能超出发动机外特性;
- 判断 SOC 是否高于停机阈值,如果是,增程器使能信号清零。
发电机控制用扭矩下限模式(Min Torque)比较方便,把上面算出的目标扭矩作为发电机扭矩请求,发电机的转速由发动机转速带动,电气端再连高压总线向电池和驱动电机供能。初始调试时把 PID 环节完全去掉,就用一个纯增益的比例环节都可能稳定,因为发电机扭矩和发电压的关系在 base 模型阶段不需要那么精细。
3.4 参数初始化与仿真工况设置
Base 模型跑不通、跑不稳,七成问题出在初始条件设置上。SOC 初始值、电池温度初始值、整车初始速度这几个必须调一致。我遇到过一个问题:SOC 设置 90% 启动仿真,跑 NEDC 之后就出现增程器疯狂启停,根本原因是电池初始 SOC 太高,增程器介入在停车工况下没法持续发电,阈值逻辑反复触达边界。后来把初始 SOC 调到 60%,冷却温度设置 25℃,这个问题立刻消失。
工况选择上,增程车性能开发阶段至少要看三个:CLTC(中国工况)、WLTC(全球工况)、以及一段固定坡度连续爬坡工况。恒功率控制模型阶段,CLTC 是最关键的评价工况,覆盖了低速蠕行、中速城市跟车、高速稳定行驶三类典型状态。建议电动车续驶里程限制参数不用调的太紧,但在结果输出里一定要记录每个工况段的起始 SOC 和结束 SOC,用来排除数据记录窗口不一致导致的统计误差。
4. 仿真结果解读:恒功率控制能验证什么
4.1 关键输出指标的选择与预分析
恒功率控制跑完工况以后,第一个要看的是 SOC 包络轨迹。理想情况是整车在 CLTC 工况循环结束时 SOC 保持在目标区间内,不要出现跌破下限或者持续冲高的走势。如果 SOC 持续下降,说明恒功率设定值低于实际整车消耗的净功率;如果 SOC 持续上升,则说明设定功率偏高,公交场景就很容易出现电池过充。base 模型阶段的结论不必纠结具体油耗数字,重点看趋势是否合理。
第二个指标是增程器运行时间和启停次数。增程器单次运行至少要在 10 分钟以上,才能避免频繁启停对发动机零部件寿命的不利影响。恒功率模型跑完 CLTC 之后,数一数增程器的启停次数,通常会暴露阈值区间设置过窄的问题。把启动阈值和停机阈值拉开到 5% 以上的 SOC 宽容度,基本能解决绝大多数频繁启停问题。
油耗和电耗是最终体现结果。油耗计算要注意单位口径:百公里综合油耗代表值为 L/100km,但增程车的油耗和电耗是有耦合的,最严谨的口径是把整个工况的电耗折算成油耗再相加(依据 GB/T 19753 插电混动能耗折算方法)。在 base 模型阶段你可以先用未折算的油耗值对比不同恒功率设定值带来的变化,这里增程器的总油耗基本等同于发动机 map 查表结果乘以运行时长的累积。
4.2 恒功率点灵敏度分析:尝试多功率点对比
选三个功率点做对比即可明确性能差异,比如选择 30kW、35kW、40kW 三档。以恒功率 40kW为例,发动机效率相对最高,油耗数值看着最漂亮,但因为发电功率比驱动功率大不少,电池很快就充到停机阈值,增程器启停次数明显上升,总油耗和多启停带来的整车整备质量变化可能让综合能耗反而不划算。恒功率 30kW 工况下油耗略高,但启动频率降低,NVH 体验更好,更适合馈电城市通勤。
这类对比实验的结果用表格呈现非常直观,列项目:恒功率目标、CLTC 总油耗、增程器耗时、停机次数、SOC 终点。多跑几组你就能看到,发动机万有特性的最优油耗区和恒功率区间并不完全重合,因为还需要兼顾电池的充放电窗口限制,base 模型存在的意义正是在这个环节帮你把这些矛盾约束显性化。
4.3 与功率跟随控制结果的方向性差异
base 模型阶段一般只跑恒功率,但后期总要对比功率跟随控制。恒功率控制本质上是"发动机制造电能,电池只是缓冲池",功率跟随控制则是"让增程器跟着整车功率需求走,电池只在特殊工况时补峰填谷"。前者标定简单、工况适应性好,尤其适合高速巡航占比较高的场景;后者整体效率更高,但控制参数多,起停频繁,且对电池 SOC 维持精度要求高,很容易出现 SOC 大起大落。
我个人经验是,base 模型期间用恒功率模型把整车模型标到"状态可信"之后,再拉入功率跟随策略做公平对比,这样你就知道两套策略的差值来自哪些部件,而不是被整车模型的系统性误差干扰。恒功率控制在这个阶段还是判断整车模型能量流正确性的手段,而不是最终量产策略的定稿方案。
5. 常见问题与排查技巧实录
5.1 仿真结果出现 SOC 突然飙升或突降
SOC 轨迹出现异常跳变时,先不要怀疑控制逻辑,优先检查电池管理器模块的电气接线是否完整。常见问题是发电机电气端与电池高压总线的连接节点遗漏,导致增程器发出的电能无处可去,仿真器直接按系统开路电压处理,SOC 出现异常敏感波动。第二个排查点是电池当前允许充电功率被限为负值,导致增程器发出的功率受限,SOC 持续下探。
5.2 增程器启动后功率一直震荡
典型表现是增程器启动后,发动机转速在目标值上下反复波动,发电功率忽高忽低。先排除发电机扭矩限值设置错误——如果发电机请求扭矩高于发动机外特性,巡航内部插值就会出现来回抖动。再检查发电机转速传感器的信号处理延迟,在 base 模型里把这个信号平滑系数调大一点就能消除大部分震荡。最后注意控制函数里的驱动逻辑,如果功率按目标功率与瞬时转速相除计算,转速一波动功率就跟着抖,改成按目标转速查表并锁定功率系数可以更稳定。
5.3 恒功率模型跑不出合理油耗
这类问题往往出在发动机 map 数据。部分原始数据转速点稀疏,巡航在中间区段做了粗糙线性插值,油耗系数可能偏离真实值。把你的原始实验点按 50rpm 间隔加密以后重新跑,结果会显著变化。此外踩过的一个坑是发动机 map 表里冷启动修正系数按默认值全为 1.0 处理,但实测数据里 -10℃ 冷态油耗比热态高 30%,base 模型阶段需要把冷启动系数至少在 1.0 左右留有排查确认的余地。
5.4 联合仿真接口超时或数据不同步
cruise 与 Simulink 联仿时经常出现时间步长不一致导致的结果振荡。最简单的解决办法是固定 cruise 侧仿真步长为固定值(比如 0.01 秒),然后让 Simulink 侧使用与 cruise 相同的步长,避免变步长插值。另外接口里每个信号量纲单位一定要再三核对,我见过发电机扭矩在 Simulink 里按 Nm 发、cruise 里按 kNm 读的接口配置,整个仿真结果直接偏离物理意义,排查起来特别浪费时间,不如在模型脚本里先写个断言判断信号范围内的合理性。
6. 我的实操心得总结
做增程车 cruise base 模型做了几个项目之后,我对恒功率控制的定位理解越来越清晰。它就是整车仿真模型在早期阶段的一根"稳定锚",先把不确定度最多的控制策略调整从模型验证流程里剥离掉,让结构、参数、能量流这些基础元素先经受测试。别小看这么简单的逻辑,它帮团队稳定住了整车项目开发初期最大的变量——没有一套可信的仿真平台,任何向下延伸的策略标定都是空中楼阁。
我也建议后来者别急着追求模型复杂度。base 模型的最大价值是"快而不散"。模型越复杂,仿真越慢、问题越难排查。先让模型跑起来,然后逐步加电控策略、加温度模型、加老化参数,每加一块,单独校验一次,保持模型基线不崩。这样的一套节奏,同一份 base 模型能支撑完整个增程架构预研阶段的验证需求。
最后分享一个细节:每次改完恒功率设定值,跑完工况之后记得把对应的 SOC 轨迹、发动机工作点、电池充放电功率三个信号按工况时间对齐存储,建立一套自己的数据库。积累多了之后,你就能一眼看出某个恒功率点适不适合当前的整车配置,而不是每次重新看一遍仿真曲线。这种经验沉淀,比任何一份分析报告都来得珍贵。