混合动力汽车(HEV)的P2构型是目前市场上最主流的混动架构之一,其特点是电机位于发动机和变速箱之间。这种布局既能实现纯电驱动,又能进行混合驱动,但同时也带来了复杂的能量管理问题。在实际工程开发中,我们常常面临几个关键矛盾:
传统基于规则的控制策略往往难以兼顾这些多维度的优化目标。我在参与某自主品牌P2混动项目时,实测发现其NEDC工况下燃油消耗比理论值高出12%,问题就出在固定的模式切换阈值上。这促使我们转向动态规划(DP)这种全局优化方法。
混合动力汽车的能量管理本质上是一个典型的多阶段决策问题。以10秒的驾驶工况为例,如果把每秒作为一个阶段,就需要连续做出10次动力分配决策。动态规划通过贝尔曼最优性原理,将这些连续决策转化为递推求解过程。
具体到P2构型,每个时间步的状态变量可以表示为:
code复制x_k = [SOC_k, v_k, a_k]
其中SOC是电池荷电状态,v为车速,a为加速度。控制变量u_k则是发动机扭矩和电机扭矩的组合。
我们曾用三种方法对同一辆P2混动车进行优化对比:
| 方法 | 燃油消耗(L/100km) | 计算耗时 | SOC波动范围 |
|---|---|---|---|
| 规则控制 | 5.2 | 实时 | 20%-80% |
| 等效燃油消耗(ECMS) | 4.8 | 实时 | 25%-75% |
| 动态规划 | 4.3 | 离线5小时 | 30%-70% |
虽然DP不能直接用于实时控制,但其优化结果可以提炼出关键规则。例如我们发现当车速>60km/h且需求功率<30kW时,采用发动机单独驱动效率最优——这个规律后来被写入量产车的控制策略。
状态变量的离散化直接影响计算效率。经过多次尝试,我们确定了这样的离散方案:
实际项目中,我们采用非均匀离散化来提升效率:在SOC 40%-60%区间加密到0.005间隔,因为这个区间使用频率最高。
代价函数需要平衡多个目标。经过与整车厂的反复讨论,最终确定的表达式为:
code复制J = α·fuel_rate + β·|SOC_final - SOC_target| + γ·mode_switch_penalty
其中:
特别注意:γ参数对驾驶平顺性影响极大。某次调试中设置γ=0.05导致10km内发生23次模式切换,驾评人员明确表示无法接受。
原始DP算法在i7-11800H上处理一个CLTC工况(1800秒)需要6.8小时,完全无法满足工程需求。我们通过以下优化将时间缩短到23分钟:
cpp复制// 示例:扭矩分配并行计算核心代码
#pragma omp parallel for
for(int i=0; i<state_num; i++){
double min_cost = DBL_MAX;
for(int j=0; j<control_num; j++){
double cost = calc_instant_cost(x[i], u[j]);
if(cost < min_cost){
min_cost = cost;
opt_control[i] = u[j];
}
}
}
将DP优化结果转化为可量产的规则库,我们开发了专门的决策树挖掘工具。关键步骤包括:
最终得到的规则形式如:
code复制IF 车速 > 65km/h
AND 需求功率 < 25kW
AND SOC > 35%
THEN 选择发动机单独驱动模式
在台架测试阶段,我们遇到了几个关键问题:
SOC漂移现象:
模式切换振荡:
冷启动效率低:
经过3轮优化迭代,最终量产版本的性能表现:
| 指标 | 优化前 | 优化后 | 提升幅度 |
|---|---|---|---|
| NEDC油耗 | 5.1L | 4.4L | 13.7% |
| 0-100km/h加速 | 8.9s | 8.5s | 4.5% |
| 模式切换平顺性 | 3.2分 | 4.5分 | 40.6% |
(平顺性采用专业评审员1-5分主观评价)
在实际项目中,有几点经验值得特别分享:
采样周期选择:1秒间隔对高速工况不够精细,我们最终采用0.5秒+线性插值方案
扭矩分配优先级:
标定工具链:
这个项目让我深刻体会到,理论算法必须与工程实际紧密结合。比如最初我们严格遵循DP的全局最优解,但后来发现某些特殊工况(如长下坡)需要人工添加约束条件。好的控制策略应该像老司机的经验——既遵循基本原则,又懂得灵活变通。