ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

增程式混动AVL Cruise整车仿真建模与控制策略落地指南

增程式混动AVL Cruise整车仿真建模与控制策略落地指南 你拿到一个增程式混动项目想用AVL Cruise做整车仿真但看着界面里那一堆模块和信号线又不知道从哪下手我见过太多人卡在这一步增程式的串联构型看似简单真正在Cruise里搭模型、调控制、跑工况的时候各种细节问题全部冒出来——发动机启停逻辑和SOC滞环怎么配合、发电机扭矩响应延迟怎么模拟、联合仿真时Cruise和Simulink的信号类型对不上怎么办。这篇内容我从构型原理讲到模型搭建、控制策略落地、仿真验证和常见坑全程按照实操顺序来把我的做法和思路原原本本拆给你看。这篇内容主要面向三类人正在做增程式混动控制系统开发的工程师、用Cruise做整车能量管理策略验证的研究生以及想从纯电仿真转向混动仿真的测试岗位同学。不需要你有太深的Simulink基础但如果你用过Cruise的basic功能理解速度会快很多。如果你完全没碰过Cruise也没关系我会把每个关键操作背后的原理讲清楚你照着做就能把第一版模型跑起来。1. 先把增程式这条技术路线说透——串联构型为什么值得单独建一套模型增程式混合动力汽车本质上是串联式混合动力构型发动机不直接驱动车轮只带动发电机发电发出的电能一部分给驱动电机一部分给动力电池充电。车轮始终由驱动电机直接驱动发动机和车轮之间没有任何机械连接。这是一个非常关键的设计取向发动机可以永远工作在高效区间因为车速和发动机转速完全解耦。这种构型在仿真模型里有个很大的优势——动力系统建模的拓扑结构非常清晰。你不需要像并联混动那样去处理离合器的结合与分离、发动机与电机的扭矩耦合、变速箱挡位切换这些复杂的机械动态过程。串联构型的物理连接就一条链发动机-发电机-母线-电机-减速器-车轮。建模时发动机和发电机作为一个APU包处理电池挂在母线上驱动电机直接面对整车阻力。但结构简单不代表仿真简单。串联构型的控制策略核心在于能量管理和分配什么时候启动发动机、发电机发多少电、电池充放电需求怎么协调、发动机功率跟随还是恒功率工作、SOC怎么滞环控制这些问题全部在控制层。而Cruise恰恰是个多物理域仿真平台擅长把车辆动力学、动力部件、电气部件放在同一个时域里解算所以它非常适合做增程式的整车级验证。1.1 为什么增程式的建模重点在控制而不是在机械传动机械传动被简化掉之后整车仿真的主体就变成了四个核心物理对象发动机的燃油消耗和排放、发电机的发电效率、电池的SOC变化、电机的驱动扭矩输出。再往下挂的是车辆纵向动力学——车速、坡度、风阻、滚阻。最后是驾驶员模型和工况输入形成一个闭环模拟驾驶员踩加速踏板整车控制器根据需求功率分配能量流各部件在各自的效率map上工作最终折算成油耗和电耗。在这一套模型里发动机转速和车速不存在机械锁定的关系所以发动机的工况点完全由能量管理策略决定。这就带来了一个建模上的便利发动机模型可以简化成一个转速-扭矩-燃油消耗率map表发电机简化成转速-扭矩-效率map表而不用去做进排气、燃烧、爆震这类详细物理模型。这个简化对整车级仿真完全够用但对控制策略的覆盖要求极高——策略好不好直接决定仿真结果的好坏。1.2 Cruise在增程式仿真里的不可替代性有人问Cruise能做的东西Simulink自己搭一套数学模型不一样能算吗能算但很痛苦。Simulink里你得自己写车辆纵向动力学方程、自己定义驾驶员PID模型、自己处理工况跟随还要维护一大堆积分模块。Cruise把这些都内置封装好了你只需要填参数、选部件、连信号线。更重要的是Cruise自带的标准工况库NEDC、WLTC、CLTC可以直接调用驾驶员模型、道路阻力模块、制动模块都是现成的仿真结果的油耗、电耗、排放、车速跟随误差都有标准输出。做工程验证的时候这节省的时间不是一天两天。用Cruise做增程式仿真的另一个价值是可以直接做控制策略的无损验证。你的能量管理策略写在Simulink里通过DLL方式嵌入CruiseCruise跑整车模型Simulink跑控制算法两边在同一时钟下联合仿真。这相当于在真实车辆控制器调试之前先把策略在整车环境下完整验证一遍包括信号通信时间、控制周期、限值保护这些工程化要素。2. 从空白模型到整车跑通——Cruise里搭增程式模型的分步实操搭建增程式整车的Cruise模型看起来就是把部件模块拖进界面、连上线实际上有几个关键的先后顺序先把整车纵向动力学的骨架搭好再往上面挂动力部件最后才接控制逻辑。倒过来做十有八九要返工。2.1 模型骨架整车参数、驾驶员、道路工况Cruise模型里的第一个对象是整车Vehicle这里填的是整车基本参数——整备质量、迎风面积、风阻系数、滚动阻力系数、轴距、质心高度等。这些参数决定了车辆纵向动力学计算的基准。稍不注意就会出问题的往往是旋转惯量系数如果你建的是带传动系统的模型这个参数直接影响加速性能仿真结果但很多人直接填默认值1.05左右。根据车型不同实际值可能在1.1到1.3之间建议查一下整车数据不要拍脑袋。驾驶员模块Driver是Cruise自带的用来模拟油门踏板和制动踏板的操作行为。增程式和纯电动在这个模块上没有区别但要注意驾驶员模型的PID参数——车速跟随的PID如果整定不好低速工况或者循环切换点附近会出现车速持续振荡。用默认参数大多数情况能跑但如果遇到车速跟随问题优先调整PID而不是调整工况阻力参数。道路阻力模块一般直接用Cruise的行驶阻力计算功能输入风阻系数、迎风面积和滚阻系数软件自动生成阻力曲线。需要注意CLTC工况低速段有很多停车起步起步瞬间的阻力计算对轮胎模型和制动模块的响应速度有要求如果模型里没有加制动器模块低速蠕行工况就会算得不对。2.2 动力部件建模发动机、发电机、驱动电机、电池增程器APU在Cruise里通常用发动机模块配发电机模块组合搭建。发动机的建模核心是万有特性数据至少要有部分负荷燃油消耗率map格式是转速-扭矩-燃油消耗率BSFC再配上外特性扭矩曲线。如果你手里只有发动机台架试验报告里的几个点不能直接填进Cruise需要先插值成完整的map表。最稳妥的方式是用AVL的BOOST或其他发动机仿真工具先把万有特性补齐再导入Cruise。发电机的建模主要依赖效率map即转速-扭矩-效率。发电机在增程式系统里工作范围是跟随发动机的所以这里不要求像驱动电机那么宽的转速范围但map数据的覆盖区必须完整覆盖发动机的工作区间。还有一个容易忽视的问题发电机和发动机之间如果存在机械传动比一定要在发动机与发电机之间加一个齿轮箱模块并在控制策略计算的时候把这个传动效率算进去。驱动电机按峰值功率和峰值转矩选型效率map同样用二维表格。电池用Cruise自带的等效电路模型即可输入开路电压-OCV-SOC曲线、内阻-SOC曲线、容量、初始SOC等参数即可。CRUISE电池库里有多种选项增程式仿真建议用Rint模型即带内阻的等效电压源模型精度足够计算效率高。像Thevenin这种带极化电阻电容的模型如果做电芯级热管理分析再用做整车能量流分析用Rint反而更省事。2.3 连接整个模型机械连接和电气连接机械连接要确认动力传递路径正确驱动电机输出轴-减速器-差速器-半轴-车轮。电气连接则是把发电机、电池、驱动电机连接到同一个高压母线上。Cruise的电气连接是通过Bus总线模块实现的双击模块之间的连接线把对应的电气端口配对连好这里必须注意连接导线本身也带电阻参数很多人忽略这个默认值导致仿真的电气损耗偏小。增程式车型的高压线束总长按量产车的线束长度取一般每米5-8毫欧的电阻值来做初算。连接完成后的自检至关重要。Cruise自带元件连接检查功能能自动检测出机械轴没连上、电气母线没接上、信号线断开的错误。但自检显示无错误不代表模型就一定正确——很多逻辑错误在自检阶段是检查不出来的比如惯性质量参数填写不一致、SOC初始条件和控制策略里不一致。我第一次搭模型时这些坑都踩过后面在故障诊断部分我会把典型问题列出来。3. 控制策略的数字化落地——让增程器“懂事”地工作和休息模型的物理层搭好了接下来是最有技术含量的一步把增程式的能量管理策略写进模型里。这一步决定了整车的仿真结果是否可信也直接反映你对增程式的理解深度。3.1 控制策略选择规则控制优先优化控制做对比增程式的能量管理策略主流两种基于规则的逻辑门限策略和基于优化的策略。基于规则的策略简单、可靠、容易调试适合做第一版模型验证基于优化的策略如等效燃油消耗最小策略、动态规划策略适合在规则策略验证通过后对标寻优评估规则的燃油经济性离最优值差多少。我在第一版模型里强烈建议先用规则策略把仿真链路打通。规则少、逻辑简单定位问题快。等模型稳定运行了再去改控制算法部分做优化对比。不要一上来就上MPC这类复杂算法控制模型和整车物理模型耦合在一起出问题很难定位。3.2 模式划分和SOC滞环控制增程式的运行模式大致可以划分为纯电模式CD、增程模式CS、混合模式。CD模式下发动机不启动电池放电整车就是一台纯电动车。CS模式下发动机-发电机组按策略启动发电维持SOC在目标范围。模式切换的核心控制量是SOC。SOC滞环控制是增程式最经典的控制方式。设定SOC下限值比如25%和上限值比如35%当SOC掉到下限发动机启动发电当SOC充到上限发动机关闭回到纯电模式。这个滞环区间的设置需要考虑几个因素电池的循环寿命、发动机的启停频率、整车油耗。区间设小了发动机频繁启停NVH差、油耗高区间设大了电池频繁深度充放电影响寿命。一般中间值设20%到30% SOC范围是常见做法。在Simulink里实现这套逻辑用Stateflow做状态机最方便。状态有纯电行驶、发动机启动、发动机停机关闭输入是SOC、车速、扭矩需求输出是发动机开关指令和发电机功率指令。要注意的是启动过程不是一个瞬时过程发动机从停机到怠速需要时间怠速到目标功率也需要时间。在控制策略里必须增加启动延时和功率爬升限制。3.3 发动机工作点选择与发电机功率分配发动机转速、扭矩怎么定是油耗仿真结果好坏的决定性因素。最基础的做法是让发动机工作在最优点在发动机万有特性图上找到不同功率下的最低BSFC点连成一条最优工作线OL控制策略查表得到目标功率对应的最优转速和扭矩组合然后控制发动机和发电机往这个目标点走。如果策略再进一步可以加一个功率跟随修正当整车驱动功率大于某个阈值时APU输出功率等于驱动功率加上一个偏置给电池充电当驱动功率低于阈值时APU维持最低发电功率运行多余的功率用来充电。这样能避免发动机频繁启停同时保证电池SOC不会过度下降。在Simulink里实现时要注意工作点切换时的平滑处理。突然从一个工作点到另一个工作点如果转速、扭矩直接阶跃仿真会出现冲击效应——不仅是控制上不现实仿真数值上也会引起振荡容易被误判成模型数值发散。正确的做法是对目标转速和目标扭矩加一阶低通滤波限幅处理。3.4 联合仿真接口把Simulink控制策略接进CruiseCruise和Simulink联合仿真经过多次版本迭代比较稳定的方式是Simulink模型编译成DLL/DEMO模块嵌入Cruise。具体做法是在Simulink里把控制策略模型打包成子系统用Cruise Interface模块定义输入输出端口设置数据映射然后编译在Cruise里加载该DLL模块连接控制信号。Cruise Interface模块的输入输出信号一般包括车速、SOC、驱动需求扭矩、加速踏板开度、制动指令等输入发动机开关指令、发动机目标转速、目标扭矩、发电机目标功率、制动能量回收请求、电池目标功率等输出。信号要在Simulink侧先做数据类型一致性处理——Cruise默认是double/SI单位如果你在Simulink侧引入了一些uint8的逻辑信号连接时要做类型转换否则联合仿真会报错。考虑到编译DLL模式调试流程长比较适合模型稳定后做批量工况仿真。实时调试阶段我用的是Cruise-VSM虚拟整车仿真方案可以实时交互控制策略参数但那是另一套环境这里不展开。如果你急着要第一版结果DLL模式足够用。4. 仿真验证的三层闭环——从启动台架到工况油耗分析模型建好了控制策略联上了接下来就是验证。直接全工况跑一把是很多新手常犯的错误。正确做法是分层验证先把启动停机、单体部件响应这些基础项调好再跑短工况最后跑全循环。4.1 静态校验先让模型在纯电模式下跑通第一个要验证的是纯电模式。强制让发动机不启动只靠电池驱动整车在CLTC工况下跑。这一步能验证整车阻力计算是否正确、电机扭矩输出是否满足动力性要求、电池SOC下降趋势是否合理、车速跟随误差是否在允许范围。如果纯电模式都跑不稳增程模式不用指望能跑好。纯电模式下检查SOC下降速率和电动车续航仿真结果可以初步判断电池容量标定是否合理。一个常见的错误是电池容量选了电芯容量而不是整包容量导致仿真续航里程严重偏小。另外一个细节是驱动电机的制动能量回收功能——增程式车型的制动能量回收功能在纯电模式下和纯电动车完全一样先把回收功率和回收策略调好增程模式的油耗会更低。4.2 增程模式验证SOC滞环和发动机启停的逻辑验证纯电模式跑通后把Control策略模块的发动机启停条件使能跑一个短的验证工况比如一个简化循环或10分钟的工况段观察SOC围绕滞环区间变化时发动机能否正确启动和停机发电机功率是否平滑电池充放电功率是否在合理范围。我在这个阶段遇到过一个问题增程器启动时发动机功率设定好了发电机也在发电但电池SOC一直往下掉没有回充趋势。排查下来是发电机功率方向符号写反了——Cruise里动力系统的功率正方向默认是从电机到车轮发电机的功率正方向如果也按这个逻辑来结果就是发电功率被当成耗电功率SOC肯定只降不升。所以做电气模块连接时一定要核对功率信号的正负号含义。4.3 整车动力性验证加速、爬坡、最高车速增程式的动力性仿真往往被忽略因为理论上发动机不直驱车轮动力性基本靠驱动电机。但验证还是要做的尤其是三种情况的对比纯电模式下做0-100km/h加速测试、增程模式下做同样的加速测试、电池低SOC下的加速测试。低SOC下的加速测试是最值得做的一项。电池亏电时母线电压下降驱动电机可用的峰值功率被限制如果APU发电功率不够整车的动力性会明显下降。这个环节在仿真里很容易暴露问题加速时间比高SOC时多出几秒都是正常的但如果是几十秒的差距说明APU的发电功率选小了。爬坡性能验证也建议做选一个6%坡道或12%坡道从静止起步看驱动电机扭矩是否足够克服坡度阻力并维持期望车速。Cruise的爬坡工况可以在任务编辑器里直接定义坡度不需要额外搭道路模块。4.4 经济性验证多工况油耗循环和能量流分析增程式油耗仿真要做三组满电状态下的CD-CS组合工况油耗通常叫综合油耗、亏电状态下的CS模式油耗、以及特定场景如市区拥堵、高速巡航的工况油耗。CLTC循环是当前国内项目跑得最多的工况低速段、中速段、高速段的占比能很好地覆盖日常驾驶场景。跑CLTC循环时建议在开始仿真前记录初始SOC和结束时SOC算油耗时如果不是净SOC平衡状态需要做SOC修正。简单做法是如果结束SOC比初始SOC低说明有一部分能量来自电池油耗应该往上修正反之则往下修正。分析仿真结果时Cruise的能耗分析工具可以导出整车的能量流图可以直观看到发动机输出的能量多少去了轮端、多少变成了电池充电能量、多少在发电机里损耗掉了。这个环节很容易发现一些“意料之外”的问题比如电池充电效率在低SOC区间和高SOC区间差异很大导致CS模式的等效油耗升高。5. 仿真踩坑实录与排查工具清单下面把我实际调试中遇到过的典型问题列出来这些问题在项目交付评审时经常被提出来提前避掉会省很多麻烦。问题现象可能原因排查方法SOC持续下降增程器启动了也不回充发电机功率方向配置错误查发电机模块的电气端口方向和功率符号发动机频繁启停SOC波动大滞环区间太窄增大滞环区间或增加启动后最短运行时间车速在低速段震荡驾驶员PID参数不合适调整驾驶员模型PID参数联合仿真时DLL加载失败输出信号数据类型不匹配在Simulink侧统一信号类型加速时间远大于预期电池峰值放电功率限值设置太小核查电池参数表的连续/峰值放电功率油耗计算结果异常偏高发动机map缺低转速低负荷区数据补全万有特性数据后再仿发动机工作点异常跳变工作点切换没有加平滑处理对目标转速、扭矩加限幅滤波爬坡工况车速上不去驱动电机峰值扭矩不足或减速比偏小核算最大驱动力与行驶阻力的关系5.1 经验技巧三个层面的标定顺序我的经验是把所有参数调整按三层来管第一层是物理参数层包括整车质量、风阻系数、轮胎半径、传动效率这些参数以实车数据和设计数据为基础不能随便调第二层是部件层主要是发动机、电机、电池的效率map数据这部分一定要用台架和测试数据仿真调优不能替代实测第三层才是控制策略层逻辑门限、PID参数、工作点规划都在这层调。实际操作中越是仿真结果和预期差别大的时候越应该回头检查第一、第二层的数据质量。控制策略调参只能弥补小偏差弥补不了部件数据的重大错误。5.2 联合仿真效率提升技巧联合仿真最怕的是每次改一个参数都要重新编译DLL来回编译加载一次就是几分钟一天下来大量时间在等编译。我的做法是把需要在调参阶段频繁修改的参数做成Cruise侧的参数变量与Simulink模型通过接口传递。这样改参数只需在Cruise界面上改不用重新编译仿真效率提升非常明显。如果要批量跑多工况、多参数组合的仿真建议用Cruise自带的Batch功能或通过外部脚本控制仿真任务把参数扫描、工况切换、结果导出做成批处理。我做过一个项目需要对比16组参数组合、4种工况手动跑完一整天批处理自动化后一个晚上全部完成还顺手生成了对比表格。5.3 仿真和实车数据的对标修正仿真模型做得再好最终必须对标实车数据才有说服力。标定的第一原则是先对纯电模式再对增程模式。纯电模式下对比仿真和实测的车速跟随、SOC下降曲线、能量回收量如果偏差在5%以内说明物理模型基本可信。再对增程模式的发动机启停次数、平均发电功率、百公里油耗偏差目标一般控制在3%以内。对标修正的时候最考验功力的是定位偏差来源。如果实测油耗比仿真高8%你先别急着调控制策略——先看轮胎阻力参数、制动能量回收强度、空调等附件功率是否已经在仿真里考虑进去了。现实中车载空调、转向助力、低压用电器这些附件功率在仿真里经常被忽略而这部分对油耗的影响可以达到5%以上。所以建增程式仿真模型时务必在模型里加一个附件功耗模块哪怕是一个恒定功率值。6. 关于模型扩展——从整车仿真到更多的应用方向增程式Cruise模型建好、验证通过后这套模型的价值远不止于算个油耗。它可以作为整车的“数字底座”支撑后续多个方向的开发工作。6.1 控制策略开发的硬件在环测试把Cruise整车模型编译成实时仿真模型部署到硬件在环台架上就可以把真实的VCU接上去做控制策略测试。增程式VCU的很多测试项——SOC管理策略、发动机启停逻辑、故障降级处理——都可以在台架上跑几千公里的循环比实车路试安全、省钱、可重复。如果项目组已经在用NI或dSPACE的实时机把Cruise模型跑成实时版本是可行的但要注意实时仿真对模型复杂度有要求之前为仿真精度加的一些高频动态结构可能需要简化。6.2 能量管理优化算法的快速评估模型搭好后在做等效燃油消耗最小策略或者动态规划策略优化时不需要再搭一套整车主模型直接基于现有Cruise模型接口替换控制策略模块即可。同一套整车物理模型做多策略对比结果公平性也更好。6.3 面向整车热管理的联合仿真增程式车型的热管理比纯电复杂——发动机有冷却回路发电机有冷却需求电池有加热和冷却回路电机和电控也要冷却。这些热系统如果全在Simulink里搭流体网络模型复杂度太高。常见的做法是把Cruise整车模型的电功率、热功率输出作为边界条件导入到KULI或用AMEsim搭建的热管理模型里做联合分析。电功率和热功率算不准热管理设计就无从谈起所以整车仿真模型输出的边界条件质量直接决定热管理仿真的可靠性。我个人在实际操作中的体会是增程式Cruise仿真难点从来不在软件操作而在于对系统架构和控制策略的理解深度。模型里每一个模块参数、每一个控制逻辑本质上都对应着实车里的一个零部件和一段真实行为。把这个逻辑想清楚了Cruise就是个执行你思路的工具精度和效率都会让你满意。如果你也是刚起步做增程式仿真先从纯电模式把模型逻辑跑顺再逐步把增程器加进去一步步来这套模型一定会成为后续项目开发里很有价值的一份资产。
返回列表