1. 双电机四驱系统概述
前后轴双电机四驱系统(Dual-Motor AWD)已成为新能源汽车领域的主流动力配置方案。作为某新势力品牌量产车型的核心控制系统,这套Simulink模型完整实现了从驾驶模式选择到最终扭矩分配的全套算法逻辑。
在实际工程开发中,这类系统需要同时满足三个核心需求:
- 驾驶性:不同模式下的动力响应特性差异要明显可感知
- 安全性:滑移率控制必须快速精准,防止车辆失控
- 经济性:在保证性能的前提下优化能耗
我们团队基于量产项目经验,将系统分解为6个关键模块:
- 驱动模式选择与映射
- 车速计算与信号处理
- 滑移率计算算法
- 电机扭矩限制逻辑
- 四驱扭矩分配核心算法
- 电机控制指令生成
每个模块都经过台架测试和实车验证,下面将详细解析各部分的实现要点。
2. 系统初始化与参数标定
2.1 参数初始化脚本解析
初始化文件(init_params.m)定义了三大类参数:
matlab复制% 车辆物理参数
VEH_PARAM.Mass = 1800; % 影响扭矩需求计算
VEH_PARAM.Radius = 0.32; % 轮速换算关键参数
VEH_PARAM.FrontWeightDist = 0.52; % 影响轴荷分配
% 电机性能参数
MOTOR_PARAM.Front_MaxTq = 250; % 前电机峰值能力
MOTOR_PARAM.Rear_MaxTq = 350; % 后电机峰值能力
% 控制策略参数
CTRL_PARAM.TCS_Threshold = 0.15; % 滑移率干预阈值
CTRL_PARAM.Mode_Eco_RearRatio = 0.3; % 经济模式分配比
实际项目中这些参数会通过A2L文件管理,支持在线标定。例如滑移率阈值就需要根据轮胎特性在冰雪/干地等不同工况下调整。
2.2 参数关联性分析
参数之间存在复杂的耦合关系:
- 前轴荷分配比(52%)会影响:
- 经济模式的最佳分配比例
- TCS干预时的扭矩转移量
- 电机峰值转速限制决定了:
- 车速极值计算
- 高速时的扭矩降额策略
3. 核心算法模块实现
3.1 驱动模式选择器
模式切换不只是改变扭矩分配比,而是一个系统工程:
matlab复制case 1 % Eco模式
Base_Rear_Ratio = 0.3; // 前驱为主
Tq_Filter_Const = 0.15; // 柔和响应
Max_Power_Limit = 0.8; // 限制峰值功率
case 2 % Sport模式
Base_Rear_Ratio = 0.65; // 后驱倾向
Tq_Filter_Const = 0.02; // 快速响应
Max_Power_Limit = 1.0; // 全功率输出
实际测试发现,滤波时间常数对驾驶感受影响显著。经济模式需要0.15s左右的滤波来保证平顺性,而运动模式通常设置在0.02-0.05s。
3.2 车速计算算法
量产车采用多传感器融合方案:
- 轮速信号预处理:
- 无效值过滤(<0.5m/s时启用特殊处理)
- 信号跳变检测(加速度>2g视为异常)
- 参考速度计算:
- 无打滑时:四轮平均
- 打滑时:最大轮速结合加速度积分
- 卡尔曼滤波:
- 状态量:车速、加速度偏差
- 观测量:轮速、IMU加速度
matlab复制% 简化的打滑检测逻辑
Slip_Suspect = (V_Max - V_Min) > 5.0;
if ~Slip_Suspect
Vx_Ref = mean(Wheel_Speeds);
else
Vx_Ref = V_Max; % 保守估计
end
3.3 滑移率计算
精确计算需要处理多个边界条件:
matlab复制% 防止除零
Denom_FL = max(Wheel_FL, 0.1);
Slip_FL = (Wheel_FL - Vx_Ref) / Denom_FL;
% 低速补偿
if Vx_Ref < 0.5
Slip_FL = 0; % 低速不计算滑移率
end
实测数据显示,当车速低于0.5m/s时,轮速信号噪声会导致滑移率计算失真。量产方案会在此工况下禁用TCS功能。
4. 扭矩分配核心逻辑
4.1 基础分配策略
根据驾驶模式确定基准分配比:
- 经济模式:前70%后30%
- 运动模式:前35%后65%
- 雪地模式:固定50:50
matlab复制% 基础分配
Tq_Base_F = Tq_Driver_Total * (1.0 - Base_Rear_Ratio);
Tq_Base_R = Tq_Driver_Total * Base_Rear_Ratio;
4.2 滑移率干预
动态扭矩转移算法要点:
- 当某轴滑移率超过阈值(15%)时:
- 计算滑移偏差:Δλ = 实际滑移 - 阈值
- 按比例减少该轴扭矩:ΔT = Δλ × 增益系数
- 转移的扭矩加到另一轴
- 增益系数需要标定:
- 干燥路面:0.6-0.8
- 低附路面:0.3-0.5
matlab复制if Slip_Avg_Front > 0.15
Delta_Tq = (Slip_Avg_Front - 0.15) * 200 * 0.8;
Tq_Base_F = Tq_Base_F - Delta_Tq;
Tq_Base_R = Tq_Base_R + Delta_Tq;
end
4.3 低速解耦策略
当满足以下条件时切换为前驱:
- 需求扭矩<50Nm
- 车速<20km/h
- 经济模式
- 无打滑发生
matlab复制if Tq_Driver_Total < 50 && Mode_Index == 1
Tq_Base_F = Tq_Driver_Total;
Tq_Base_R = 0;
end
5. 电机扭矩限制
5.1 温度降额曲线
电机温度保护采用分段线性降额:
code复制温度区间 降额系数
<110°C 100%
110-140°C 70%
>140°C 40%
matlab复制if Motor_Temp_F > 140
Temp_Factor_F = 0.4;
elseif Motor_Temp_F > 110
Temp_Factor_F = 0.7;
end
5.2 转速降额策略
基于反电动势限制:
- 前电机:>10000rpm开始降额
- 后电机:>12000rpm开始降额
5.3 电池功率限制
总需求功率计算:
matlab复制P_Req = (abs(Tq_F)*RPM_F + abs(Tq_R)*RPM_R)/9550;
if P_Req > P_Max_Bat
Scale = P_Max_Bat / P_Req;
Tq_F = Tq_F * Scale;
Tq_R = Tq_R * Scale;
end
6. 模型实现与测试
6.1 Simulink建模要点
- 采样时间设置:
- 主控制循环:10ms
- 慢环控制(如温度监控):100ms
- 信号处理:
- 轮速信号:先经过20Hz低通滤波
- 踏板信号:死区+斜坡处理
- 子系统划分:
- 按功能划分原子子系统
- 关键算法用MATLAB Function实现
6.2 代码生成配置
- 优化选项:
- 开启Inline parameters
- 使用single精度浮点
- 接口定义:
- 输入信号:CAN信号映射
- 输出信号:PWM控制指令
- 存储类别:
- 标定参数:__flash
- 临时变量:auto
6.3 测试用例设计
典型测试场景包括:
- 模式切换测试:
- 运动模式下急加速验证后轴扭矩优先
- 经济模式验证前驱倾向
- TCS功能测试:
- 低附路面全油门起步
- 对开路面加速
- 故障注入测试:
- 模拟电机过温
- 模拟CAN信号丢失
matlab复制%% 雪地模式验证
Tq_Drv = 100; Mode = 3;
[TqF, TqR] = fcn_AWDDistribution(Tq_Drv, Mode, 0, 0, true);
assert(abs(TqF - TqR) < 1, "雪地模式应保持50:50分配");
7. 量产移植经验
7.1 标定数据管理
- 参数分类:
- 车型通用参数(如车重)
- 电机特性参数
- 路面适配参数
- 标定工具链:
- CANape用于在线标定
- INCA用于数据记录
7.2 功能安全实现
- 监控机制:
- E-Gas三级监控架构
- 信号合理性检查
- 降级策略:
- 单电机故障时切换为前驱/后驱
- 通信故障时固定分配比
7.3 性能优化技巧
- 计算效率提升:
- 将浮点运算转换为定点数
- 查表法替代实时计算
- 通信优化:
- 关键信号提高发送频率
- 非关键信号降低周期
经过多个量产项目验证,这套控制架构可实现:
- 模式切换响应时间<200ms
- 扭矩分配控制周期10ms
- 滑移率控制精度±2%
- 整体能耗较固定分配方案降低8-12%