纯电动汽车两档ATM变速箱Simulink模型

张开发
2026/4/9 17:14:16 15 分钟阅读

分享文章

纯电动汽车两档ATM变速箱Simulink模型
纯电动汽车两档ATM变速箱simulink模型模型实现了两档AMT换挡策略和换挡过程仿真内含详细文档和注释模型可运行两档AMT变速箱在电动车领域是个挺有意思的课题。传统单速变速箱虽然结构简单但在高速工况下的能耗表现总让人觉得差那么点意思。今天咱们来盘一个自己捣鼓的Simulink模型看看怎么用状态机实现自动换挡顺便聊聊模型里几个关键模块的代码实现。模型的核心是换挡决策模块这里用Stateflow搭了个状态机。看这段状态转移条件% 换挡触发条件 if (VehicleSpeed 23 CurrentGear 1) || (VehicleSpeed 18 CurrentGear 2) gearShiftFlag true; else gearShiftFlag false; end这个阈值设定考虑了车速滞后区间防止在临界速度附近频繁换挡。实测中发现在22km/h左右会出现震荡后来加了0.5s的延迟判断才解决。动力中断补偿是AMT的老大难问题。模型里电机扭矩在换挡时并不是粗暴归零而是走了个斜坡函数function torqueRamp torqueRamp(currentTorque, targetTorque) rampRate 50; % Nm/s if abs(currentTorque - targetTorque) rampRate*0.001 torqueRamp currentTorque sign(targetTorque - currentTorque)*rampRate*0.001; else torqueRamp targetTorque; end这个0.001的时间步长对应模型1ms的仿真步长。调试时发现rampRate超过80Nm/s会导致传动系冲击最后折中选了50Nm/s的参数。换挡过程的状态迁移用了个五段式划分扭矩卸载→摘挡→同步→挂挡→扭矩恢复。每个阶段都配置了独立的状态监测case SYNC_PHASE if abs((OutputShaftSpeed - InputShaftSpeed)/InputShaftSpeed) 0.02 phase ENGAGE_GEAR; syncTimer 0; elseif syncTimer 0.3 phase FAULT; end同步阶段允许2%的转速差超过300ms未完成则报错。这个容差参数是从实车CAN数据里反推出来的比教科书上说的5%要严格得多。模型里还藏了个彩蛋——在文档注释里写了十几条调试小故事。比如这条纯电动汽车两档ATM变速箱simulink模型模型实现了两档AMT换挡策略和换挡过程仿真内含详细文档和注释模型可运行% 2023.02.14 情人节debug记录当电机转速信号毛刺超过500rpm时% 同步器会误触发增加移动平均滤波后问题消失这种注释比干巴巴的参数说明有意思多了建议各位建模时也保留这种调试日志。最后说下仿真结果NEDC工况下两档比单速方案能耗降低约8%特别是在80km/h等速时电机效率从82%提升到89%。不过代价是换挡时会有0.3s左右的动力中断这个在模型里用加速度传感器数据验证过和实车测试的0.35s基本吻合。模型里有个叫plotShiftMetrics.m的脚本跑完仿真直接生成带萌猫表情包的诊断报告别问为什么用猫问就是程序员的情怀。比如换挡冲击度计算部分jerk diff(diff(vehicleAcceleration))/0.001; plot(jerk,LineWidth,1.5); title(换挡冲击度,FontName,微软雅黑); text(find(jerk2.5), jerk(jerk2.5), \bf 喵这里有问题,Color,r);这种可视化比纯数字表格直观多了红色猫猫头标注的位置正好对应扭矩斜坡设置不当的工况。要跑这个模型记得把Simulink库里的Vehicle Dynamics模块更新到最新版老版本有个传动系惯量计算的bug会导致同步时间异常。完整文档在Github的Wiki页面上包括七种典型故障的注入方法——比如故意把同步器摩擦系数改成0.1看看模型会不会崩spoiler alert真的会炸出火花效果。

更多文章