1. 增程式混合动力汽车建模概述
增程式混合动力汽车(Range-Extended Electric Vehicle, REEV)是一种特殊的混合动力架构,其核心特点是发动机不直接驱动车轮,而是作为发电机为电池充电,由电机单独驱动车辆。这种串联式结构特别适合城市工况,能够充分发挥电机的高效区优势。
1.1 串联式架构特点
串联式架构与传统并联式混合动力的主要区别在于:
- 发动机与车轮完全解耦,仅作为增程器(Range Extender)使用
- 动力传递路径单一:发动机→发电机→电池→电机→车轮
- 发动机可始终工作在最佳效率区间(Brake Specific Fuel Consumption, BSFC最优曲线)
- 整车控制策略相对简单,特别适合基于规则(Rule-Based)的能量管理
1.2 MATLAB/Simulink建模优势
使用MATLAB/Simulink进行整车建模具有以下优势:
- 图形化建模:通过拖拽模块搭建系统,直观展示能量流动路径
- 多域仿真:可同时处理控制系统(如PID)、电气系统(电池模型)和机械系统(动力学)
- 参数化设计:方便调整车辆参数(质量、风阻等)进行灵敏度分析
- 代码生成:成熟的Simulink Coder可将模型直接转为嵌入式代码
提示:对于初学者,建议从简化模型入手,先实现基本功能再逐步增加复杂度。本文介绍的"恒温器式"控制策略就是最基础的实现方案。
2. 整车模型架构设计
2.1 模型子系统划分
完整的串联式REEV Simulink模型应包含以下子系统:
| 子系统 | 功能描述 | 关键输入输出 |
|---|---|---|
| 驾驶员模型 | 根据目标车速与实际车速差计算需求扭矩 | 目标车速、实际车速 → 需求扭矩 |
| 能量管理策略 | 基于SOC控制发动机启停 | SOC → 发动机启停信号 |
| 发动机模型 | 模拟发动机发电功率 | 启停信号 → 发电功率 |
| 电机模型 | 将电功率转化为机械扭矩 | 需求扭矩、转速 → 实际扭矩 |
| 电池模型 | 计算SOC变化 | 充放电功率 → SOC |
| 整车动力学 | 将扭矩转化为车速 | 电机扭矩 → 车速 |
2.2 信号流设计
模型的核心信号流应遵循以下路径:
- 工况模块生成目标车速v_target
- 驾驶员PID控制器比较v_target与实际车速v_actual,输出需求扭矩T_req
- 能量管理策略根据SOC决定发动机状态
- 发动机和电机功率在电池处进行平衡
- 电机扭矩通过传动系统作用到车轮
- 整车动力学计算实际车速,反馈给PID控制器
3. 核心模块实现细节
3.1 驾驶员PID控制器实现
在Simulink中实现PID控制器有两种推荐方式:
方案一:使用Simulink内置PID模块
code复制1. 从Library Browser添加"PID Controller"模块
2. 设置参数:
- Proportional (P): 2000
- Integral (I): 50
- Derivative (D): 100
- Sample time: 0.01s
3. 添加Anti-Windup保护(输出限制±5000N)
方案二:MATLAB Function Block实现
matlab复制function T_demand = pid_controller(v_target, v_actual, dt)
persistent error_int error_prev
% 初始化持久变量
if isempty(error_int)
error_int = 0;
error_prev = 0;
end
% PID计算
error = v_target - v_actual;
error_int = error_int + error * dt;
error_int = max(min(error_int, 100), -100); % 抗饱和
error_deriv = (error - error_prev) / dt;
% 输出需求力
Kp = 2000; Ki = 50; Kd = 100;
F_demand = Kp*error + Ki*error_int + Kd*error_deriv;
T_demand = F_demand * params.r; % 转换为轮上扭矩
end
3.2 能量管理策略实现
恒温器式控制策略的Simulink实现步骤:
- 添加两个Constant模块设置SOC_min(0.3)和SOC_max(0.7)
- 使用Relational Operator比较当前SOC与阈值
- 通过Switch模块实现状态切换:
- SOC < SOC_min → 发动机ON
- SOC > SOC_max → 发动机OFF
- 添加Unit Delay模块实现状态保持(滞回特性)
注意:实际工程中会加入延时逻辑防止频繁切换,例如发动机启动后至少运行2分钟。
3.3 电池SOC计算模型
简化电池模型采用Ah计数法,在Simulink中的实现:
- 建立电池功率平衡方程:
matlab复制P_net = P_motor - P_gen; % 净充放电功率 I_batt = P_net / V_nom; % 电池电流 - 使用Integrator模块计算SOC:
code复制SOC = Initial_SOC - ∫(I_batt/(3600*Q))dt - 设置积分器初始值为0.5(50% SOC)
- 添加Saturation模块限制SOC在0-1之间
4. 模型参数配置指南
4.1 整车基本参数示例
在MATLAB脚本中定义车辆参数结构体:
matlab复制params.m = 1500; % 整车质量 [kg]
params.r = 0.3; % 车轮半径 [m]
params.i0 = 4.0; % 主减速比
params.f = 0.015; % 滚动阻力系数
params.Cd = 0.3; % 风阻系数
params.A = 2.2; % 迎风面积 [m²]
params.rho = 1.225; % 空气密度 [kg/m³]
% 电池参数
params.Q = 40; % 电池容量 [Ah]
params.V_nom = 350; % 标称电压 [V]
params.SOC_min = 0.3;
params.SOC_max = 0.7;
% 动力系统参数
params.P_eng = 40000; % 发动机额定功率 [W]
params.eta_gen = 0.9; % 发电机效率
params.eta_mot = 0.92; % 电机效率
4.2 仿真配置建议
-
求解器选择:
- Type: Variable-step
- Solver: ode45 (Dormand-Prince)
- Max step size: 0.01
-
仿真时间:
- 市区工况:建议600s
- 完整NEDC工况:1180s
-
信号记录:
- 勾选"Save to Workspace"选项
- 格式选择"Structure With Time"
5. 典型问题排查与调试
5.1 常见问题速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| SOC不变化 | 电池功率计算错误 | 检查P_net符号(放电为正) |
| 车速振荡 | PID参数不合适 | 降低P增益,增加D增益 |
| 发动机频繁启停 | SOC滞回区间过小 | 增大SOC_max与SOC_min差值 |
| 加速无力 | 电机功率限制 | 检查电机效率图设置 |
5.2 调试技巧
-
分阶段验证:
- 先验证纯电模式(固定SOC=0.5,禁用发动机)
- 再测试增程模式(初始SOC=0.25,观察发动机启动)
-
信号监测:
matlab复制% 添加临时监测点 add_exec_event_listener('Model/Subsystem',... 'PostOutputs',@(src,evt)disp(get_param(src,'Output'))); -
参数敏感性分析:
matlab复制P_eng_range = 30000:5000:50000; for i = 1:length(P_eng_range) params.P_eng = P_eng_range(i); simout = sim('REEV_Model'); fuel_consumption(i) = calculate_fuel(simout); end
6. 模型扩展与进阶方向
6.1 从简化模型到高保真模型
-
发动机模型升级:
- 添加BSFC MAP图
- 考虑热机状态与冷启动惩罚
-
电池模型改进:
- 等效电路模型(Rint模型)
- 考虑温度影响和内阻变化
-
驾驶循环扩展:
matlab复制% 加载WLTC工况 load('wltc_cycle.mat'); cycle.time = wltc_time; cycle.signals.values = wltc_speed;
6.2 控制策略进阶
-
优化型能量管理:
- 瞬时优化(ECMS)
- 全局优化(动态规划)
-
预测性能量管理:
- 基于GPS的路况预测
- 机器学习预测需求功率
matlab复制% ECMS等效因子计算示例
soc = simout.SOC;
lambda = 0.5 + 0.3*(0.5 - soc); % 自适应调整
cost = fuel_rate + lambda*P_batt;
6.3 硬件在环测试
- 使用Simulink Real-Time
- 配置xPC Target
- 与实车VCU通信测试
提示:在模型开发早期就考虑MIL→SIL→HIL的验证流程,可显著减少后期调试时间。建议使用Simulink Test模块建立测试用例库。