1. 项目概述
前后双电机纯电动汽车的驱动控制就像指挥一支交响乐团——前轴和后轴电机需要完美配合才能奏出和谐的驾驶体验。作为一名在新能源汽车控制领域摸爬滚打多年的工程师,我想分享一个基于Cruise和Simulink的联合仿真项目,重点解析驱动转矩控制策略的设计与优化。
这个项目的核心挑战在于:如何将整车控制器(VMS)发出的总扭矩需求,智能地分配给前后两个电机。这不仅关系到车辆的动力性和经济性,更直接影响行驶稳定性和安全性。我们采用了基于效率最优的扭矩分配策略,并通过联合仿真验证了其有效性。
提示:联合仿真中最大的坑往往不是控制算法本身,而是不同软件间的接口匹配和参数单位统一。我们团队就曾因为Cruise的转速单位(rpm)与Simulink的(rad/s)不一致,浪费了两天调试时间。
1.1 系统架构设计
整个系统采用典型的"软件在环"(SIL)架构:
- Cruise侧:负责车辆动力学建模
- 包含前后电机、减速器、差速器、轮胎等完整传动链
- 使用参数化建模方法,便于快速调整车型配置
- Simulink侧:实现控制策略
- 整车控制器(VMS)模型
- 扭矩分配算法模块
- 电机特性MAP处理模块
两平台通过FMI(Functional Mock-up Interface)标准进行数据交换,采样周期设置为1ms以保证实时性。在实际工程中,我们发现Cruise的求解器步长对仿真稳定性影响很大,推荐使用0.001s固定步长。
2. 扭矩分配策略详解
2.1 基础分配算法
核心算法采用基于分配系数K的加权方法,其数学表达为:
code复制T_front = K * T_total
T_rear = (1-K) * T_total
其中K∈[0,1]为动态调整的分配系数。
但在实际车辆中,我们加入了两个工程修正因子:
- 前轴扭矩衰减系数0.95(抑制前轮打滑)
- 后轴扭矩增益系数1.05(增强操控响应)
matlab复制function [T_front,T_rear] = torque_distribution(K_opt,T_total)
% 工程化扭矩分配函数
T_front = K_opt * T_total * 0.95;
T_rear = (1-K_opt) * T_total * 1.05;
% 硬件保护限制
T_front = min(max(T_front, -500),500);
T_rear = min(max(T_rear, -500),500);
end
2.2 最优分配系数计算
K值的动态优化是本项目的技术核心。我们采用效率MAP查表法结合动态修正的策略:
-
离线准备阶段:
- 通过台架测试获取前后电机的效率MAP图
- 建立二维插值表:K_opt=f(车速,需求扭矩)
-
在线计算阶段:
matlab复制% 基于效率MAP的K值插值计算
K_opt = interp2(motor_speed, motor_torque, efficiency_map,
current_speed, demand_torque, 'spline');
% 动态工况下的模糊PID修正
K_opt = fuzzy_pid_correction(K_opt, delta_speed);
注意:纯查表法在瞬态工况下会出现数值振荡,必须配合动态修正算法。我们最终采用的模糊PID参数为:比例系数0.6,积分时间0.2s,微分时间0.05s。
3. 联合仿真实现
3.1 模型配置技巧
在Simulink中,我们特意采用了异构电机建模:
- 前轴:异步感应电机(IM)
- 优点:宽调速范围
- 参数:峰值功率80kW,基速4500rpm
- 后轴:永磁同步电机(PMSM)
- 优点:高功率密度
- 参数:峰值功率100kW,基速3000rpm
这种配置方案源自实车项目经验:前轴需要更宽的速域应对城市工况,后轴则需要强劲爆发力满足加速需求。
3.2 接口关键配置
| 参数名称 | Cruise侧 | Simulink侧 | 转换关系 |
|---|---|---|---|
| 车速信号 | km/h | m/s | ÷3.6 |
| 电机扭矩 | Nm | Nm | 1:1 |
| 踏板开度 | % | 0-1标幺值 | ÷100 |
| 电池SOC | % | 0-1标幺值 | ÷100 |
警告:单位不匹配是联合仿真失败的首要原因。建议建立专门的信号转换层,而非在算法模块中分散处理。
4. 典型问题与解决方案
4.1 高速工况扭矩异常
当车速>120km/h时,前轴扭矩会出现异常波动。通过以下步骤定位问题:
- 检查Simulink控制信号——正常
- 对比Cruise轮胎模型输出——发现滑移率计算异常
- 解决方案:
- 调整轮胎魔术公式参数
- 增加前轴扭矩变化率限制
matlab复制% 在分配函数中加入斜率限制 delta_T = T_front - prev_T_front; if abs(delta_T) > 50 T_front = prev_T_front + sign(delta_T)*50; end
4.2 低SOC工况优化
当电池SOC<20%时,系统自动调整K值偏向0.7(前轴主导),这是基于:
- 前轴电机效率MAP在低负载区更优
- 减少后轴大扭矩请求导致的电池压降
- 实测可提升续航5%(NEDC工况)
实现逻辑:
matlab复制if soc < 0.2
K_opt = 0.7 * (1 - soc/0.2) + K_opt * (soc/0.2);
end
5. 工程经验总结
-
参数标定顺序:
- 先标定单轴扭矩特性
- 再调试分配算法
- 最后优化动态响应
-
仿真加速技巧:
- 在Cruise中简化悬架模型
- 关闭不必要的可视化模块
- 使用Simulink的Fast Restart功能
-
黄金法则:
- 前后轴扭矩差不宜超过15%(影响ESP工作)
- 分配系数变化率建议<0.1/s
- 优先保证前轴扭矩平滑性
这个项目最让我意外的发现是:在某些工况下,双电机驱动反而比单电机更耗能。特别是在低速大扭矩请求时,如果分配策略不当,系统效率可能下降8-10%。后来我们引入了基于效率最优的实时优化算法,成功解决了这个问题。