✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 具体问题可以私信或扫描文章底部二维码。
(1)动力传动系统参数匹配与整车模型搭建
插电式混合动力汽车(PHEV)的动力传动系统参数对其性能起着关键作用。首先研究 ISG 电机峰值功率、发动机最大功率与整车动力性能的紧密关联。当 ISG 电机峰值功率较大时,车辆在起步、加速等工况下能够获得更强的动力支持,尤其在低速爬坡或急加速时,电机的辅助作用可显著提升车辆的动力响应;发动机最大功率则直接影响车辆在高速行驶、持续爬坡等工况下的动力储备,确保车辆能够维持稳定且强劲的行驶性能。
对于动力电池组容量与纯电动续驶里程的关系,电池组容量越大,理论上纯电动续驶里程越长,但同时也会增加车辆成本与重量。因此,需要在两者之间找到平衡点。在确定了各部件的基本参数范围后,以动力性为约束条件,将整车能耗成本最小设为目标函数,对主减速器速比进行优化。通过优化算法,不断调整主减速器速比,在满足车辆动力性能要求的前提下,使车辆在不同工况下的能耗成本尽可能降低。
完成上述参数确定后,搭建整车仿真模型。在仿真环境中,设置多种行驶工况,如城市拥堵工况、城郊快速路工况、高速公路工况等,模拟车辆在实际行驶中的加速、减速、匀速行驶等状态,对车辆的动力性和经济性进行仿真分析。动力性方面,关注车辆的最高车速、加速时间、爬坡能力等指标;经济性方面,统计车辆在不同工况下的燃油消耗和电能消耗情况。通过与传统动力传动系统配置的对比,验证了优化后的动力传动系统匹配的合理性,为后续能量管理策略的制定提供了坚实的基础。
(2)能量管理策略的初步优化
为充分发挥 PHEV 的节能优势,利用从电网获取的低成本电能,将发动机的燃油成本与电网的电能成本之和最小作为目标进行优化。采用遗传算法对电量消耗(CD)模式与电量维持(CS)模式切换的电池荷电状态(SOC)目标值、CS 模式下电池 SOC 波动的上限值与下限值进行优化。遗传算法通过模拟自然选择和遗传机制,对不同的参数组合进行迭代搜索,找到使总成本最低的一组参数值。
同时,利用瞬时优化算法计算不同工作模式下的 CVT 速比、发动机转矩和 ISG 电机转矩 MAP 图。瞬时优化算法根据车辆当前的行驶状态,如车速、加速度、电池 SOC 等信息,实时计算出最优的动力系统工作点,使车辆在该瞬间的能耗最低。在此基础上,提出逻辑门限与瞬时优化算法相结合的实时优化能量管理策略。逻辑门限策略根据预先设定的电池 SOC、车速等阈值,判断车辆应处于何种工作模式(如纯电驱动、发动机单独驱动、混合动力驱动等),然后结合瞬时优化算法确定各部件的具体工作参数。通过仿真评价该能量管理策略的节能效果,结果表明在多种工况下,车辆的能耗均有明显降低,尤其是在城市拥堵工况下,纯电驱动的比例增加,有效减少了燃油消耗。
然而,实时优化能量管理策略存在局限性,它往往只能获得局部最优解,无法实现能耗经济性的全局最优。为解决这一问题,采用极小值原理求解整车能耗成本最小的目标函数极值。极小值原理通过建立车辆的动态数学模型,考虑各种约束条件,如电池 SOC 范围、发动机和电机的工作特性等,求解出在整个行驶过程中使能耗成本最低的控制策略。通过分析行驶里程、电池初始 SOC 及能量价格比对能耗经济性的影响,发现较长的行驶里程会使车辆在后期更多地依赖发动机驱动,从而增加燃油消耗;较高的电池初始 SOC 有利于在前期更多地采用纯电驱动,降低能耗;而合理的能量价格比则会影响 CD 和 CS 模式的切换时机,进一步优化能耗。
(3)基于工况识别的能量管理策略改进
基于极小值原理的全局优化能量管理策略对循环工况存在较强的依赖性,不同的工况下其性能表现差异较大。为解决这一问题,提出基于工况识别的能量管理策略。选取代表市区拥堵、城市城郊、高速公路等六种循环路况作为标准工况,采用复合等分法将标准工况分割成工况块并计算特征参数。复合等分法通过将工况按照时间或行驶距离等维度进行细分,提取每个工况块的速度、加速度、行驶时间等特征参数,这些参数能够反映不同工况的特点,如市区拥堵工况下加速度变化频繁且幅度较小,而高速公路工况下车速相对稳定且较高。
应用极限学习机完成循环工况识别。极限学习机是一种快速的机器学习算法,它通过对大量已知工况数据的学习,建立工况特征参数与工况类型之间的映射关系。在实际行驶中,根据车辆实时采集的行驶数据计算特征参数,然后利用极限学习机模型判断当前车辆所处的工况类型。利用极小值原理进行离线优化获得若干标准工况对应的优化参数库,针对每种标准工况,通过极小值原理计算出最优的能量管理策略参数,如发动机工作点、电机转矩分配、电池 SOC 控制范围等,并将这些参数存储在参数库中。结合工况识别结果,实时更新控制策略参数,实现了基于工况识别的 PHEV 能耗优化控制。当车辆识别到当前处于市区拥堵工况时,从参数库中调用相应的优化参数,调整能量管理策略,使车辆更多地采用纯电驱动,减少发动机的启停次数,从而降低能耗。
(4)考虑驾驶意图的能量管理策略完善
PHEV 冷起动时,在获得第一个工况块信息之前的行驶数据是未知的,若基于工况识别的全局优化能量管理策略的控制参数选用不当,会导致能耗经济性大幅下降。驾驶意图对整车的行驶数据有着重要影响,例如急加速、急减速等激进驾驶意图会使车辆能耗显著增加,而平稳驾驶意图则有利于节能。采用模糊控制器识别驾驶意图,模糊控制器通过对车速变化率、加速踏板开度变化率等输入信号进行模糊化处理,利用模糊规则推理判断驾驶意图的强弱程度(如激进、适中、平缓)。
结合实时优化能量管理策略,构建控制策略参数库。根据不同的驾驶意图,从参数库中选取合适的能量管理策略参数,如在平缓驾驶意图下,适当放宽电池 SOC 的控制范围,优先采用纯电驱动;在激进驾驶意图下,提高发动机的参与度,确保车辆的动力性能。实现了基于驾驶意图识别的 PHEV 能耗优化控制。最后,通过对基于工况识别的全局优化能量管理策略和基于驾驶意图的实时优化能量管理策略的节能效果的对比分析,确定以基于驾驶意图的控制参数库作为全局优化能量管理策略的初始化参数,进而提出基于驾驶意图与工况识别的综合能量管理策略。该综合策略充分考虑了车辆行驶过程中的工况变化和驾驶意图的多样性,在不同的行驶场景下都能有效地优化能耗,提高车辆的能源利用效率。
(5)试验验证
搭建插电式混合动力传动系统的试验台,利用 Matlab/Simulink 仿真平台和 D2P 实时控制工具,开发台架测控软件和整车控制程序。Matlab/Simulink 提供了强大的建模和仿真功能,用于构建车辆的动力系统模型、能量管理策略模型等,并进行离线仿真分析;D2P 实时控制工具则将仿真模型转化为可在试验台上实时运行的控制代码,实现对硬件设备的精确控制。采用 ATI-VISION 平台建立数据采集和标定控制系统,能够实时采集车辆在试验过程中的各种参数,如发动机转速、转矩、电机电流、电池 SOC 等,并对控制策略中的参数进行标定和优化。
完成台架试验和实车道路试验,台架试验主要模拟车辆在不同工况下的运行情况,对动力传动系统的性能和能量管理策略的有效性进行初步验证;实车道路试验则更加真实地反映车辆在实际道路行驶中的能耗表现。试验结果验证了所建立的 PHEV 仿真模型的正确性,部分验证了所提出能量管理策略的有效性。在实际道路试验中,与传统能量管理策略相比,基于驾驶意图与工况识别的综合能量管理策略在多种工况下均表现出更好的节能效果,尤其是在城市综合工况下,能耗降低较为明显,但在某些极端工况下,仍存在进一步优化的空间,为后续研究指明了方向。
% 主函数
clc;
clear all;
close all;
% 车辆参数定义
vehicle_params;
% 工况数据加载
cycle_data = load('cycle_data.mat');
speed_profile = cycle_data.speed;
time_profile = cycle_data.time;
% 初始化状态变量
SOC = initial_SOC;
engine_status = 0; % 0 表示关闭,1 表示启动
motor_status = 0;
% 能量管理策略参数
CD_CS_SOC_threshold = 0.3; % CD 与 CS 模式切换 SOC 阈值
CS_SOC_upper_limit = 0.8;
CS_SOC_lower_limit = 0.4;
% 循环模拟车辆行驶
for i = 1:length(time_profile) - 1
% 当前车速和加速度
current_speed = speed_profile(i);
acceleration = (speed_profile(i + 1) - speed_profile(i)) / (time_profile(i + 1) - time_profile(i));
% 根据能量管理策略确定工作模式和动力分配
[engine_torque, motor_torque, power_mode] = energy_management_strategy(current_speed, acceleration, SOC, CD_CS_SOC_threshold, CS_SOC_upper_limit, CS_SOC_lower_limit);
% 更新发动机和电机状态
if power_mode == 1 % 纯电模式
engine_status = 0;
motor_status = 1;
elseif power_mode == 2 % 混动模式
engine_status = 1;
motor_status = 1;
elseif power_mode == 3 % 发动机单独模式
engine_status = 1;
motor_status = 0;
end
% 根据发动机和电机转矩计算能耗
if engine_status == 1
fuel_consumption = calculate_fuel_consumption(engine_torque);
else
fuel_consumption = 0;
end
if motor_status == 1
electricity_consumption = calculate_electricity_consumption(motor_torque);
else
electricity_consumption = 0;
end
% 更新电池 SOC
SOC = update_SOC(SOC, electricity_consumption);
% 存储结果
fuel_consumption_history(i) = fuel_consumption;
electricity_consumption_history(i) = electricity_consumption;
SOC_history(i) = SOC;
end
% 绘制结果
figure;
subplot(3, 1, 1);
plot(time_profile(1:end - 1), speed_profile);
xlabel('时间 (s)');
ylabel('车速 (km/h)');
title('车速曲线');
subplot(3, 1, 2);
plot(time_profile(1:end - 1), fuel_consumption_history);
hold on;
plot(time_profile(1:end - 1), electricity_consumption_history);
xlabel('时间 (s)');
ylabel('能耗');
legend('燃油消耗', '电能消耗');
title('能耗曲线');
subplot(3, 1, 3);
plot(time_profile(1:end - 1), SOC_history);
xlabel('时间 (s)');
ylabel('SOC');
title('电池 SOC 曲线');
% 能量管理策略函数
function [engine_torque, motor_torque, power_mode] = energy_management_strategy(current_speed, acceleration, SOC, CD_CS_SOC_threshold, CS_SOC_upper_limit, CS_SOC_lower_limit)
% 根据车速和加速度判断需求功率
required_power = calculate_required_power(current_speed, acceleration);
% 判断工作模式
if SOC > CD_CS_SOC_threshold
power_mode = 1; % 纯电模式
elseif SOC < CS_SOC_lower_limit
power_mode = 3; % 发动机单独模式
else
power_mode = 2; % 混动模式
end
% 根据工作模式分配转矩
if power_mode == 1
engine_torque = 0;
motor_torque = calculate_motor_torque(required_power);
elseif power_mode == 2
[engine_torque, motor_torque] = hybrid_mode_torque_allocation(required_power, SOC);
elseif power_mode == 3
engine_torque = calculate_engine_torque(required_power);
motor_torque = 0;
end
end
% 计算需求功率函数
function required_power = calculate_required_power(current_speed, acceleration)
% 根据车辆动力学方程计算需求功率
mass = 1500; % 车辆质量
g = 9.81; % 重力加速度
drag_coefficient = 0.3; % 风阻系数
frontal_area = 2.5; % 迎风面积
rolling_resistance_coefficient = 0.01; % 滚动阻力系数
air_resistance = 0.5 * drag_coefficient * frontal_area * current_speed ^ 2;
rolling_resistance = mass * g * rolling_resistance_coefficient;
inertial_force = mass * acceleration;
required_power = (air_resistance + rolling_resistance + inertial_force) * current_speed / 3600; % 单位转换为 kW
end
% 计算电机转矩函数
function motor_torque = calculate_motor_torque(required_power)
motor_speed = convert_speed_to_motor_speed(current_speed); % 转换车速为电机转速
motor_efficiency = 0.9; % 电机效率
motor_torque = required_power * 1000 / (2 * pi * motor_speed * motor_efficiency); % 单位转换为 Nm
end
% 计算发动机转矩函数
function engine_torque = calculate_engine_torque(required_power)
engine_speed = convert_speed_to_engine_speed(current_speed); % 转换车速为发动机转速
engine_efficiency_map = load('engine_efficiency_map.mat'); % 加载发动机效率 MAP 图
[~, index] = min(abs(engine_speed - engine_efficiency_map.speed));
engine_torque = required_power * 1000 / (2 * pi * engine_speed * engine_efficiency_map.efficiency(index)); % 单位转换为 Nm
end
% 混动模式转矩分配函数
function [engine_torque, motor_torque] = hybrid_mode_torque_allocation(required_power, SOC)
% 简单的转矩分配策略,可根据实际情况优化
if SOC > 0.6
motor_torque = 0.7 * calculate_motor_torque(required_power);
engine_torque = calculate_engine_torque(required_power - motor_torque * 2 * pi * convert_speed_to_motor_speed(current_speed) / 1000);
else
motor_torque = 0.3 * calculate_motor_torque(required_power);
engine_torque = calculate_engine_torque(required_power - motor_torque * 2 * pi * convert_speed_to_motor_speed(current_speed) / 1000);
end
end
% 更新电池 SOC 函数
function SOC = update_SOC(SOC, electricity_consumption)
battery_capacity = 20; % 电池容量,单位 kWh
SOC = SOC - electricity_consumption / battery_capacity;
end
% 速度转换函数
function motor_speed = convert_speed_to_motor_speed(current_speed)
gear_ratio = 3; % 传动比
wheel_radius = 0.3; % 车轮半径
motor_speed = current_speed / (2 * pi * wheel_radius) * 60 * gear_ratio; % 单位转换为 rpm
end
function engine_speed = convert_speed_to_engine_speed(current_speed)
final_drive_ratio = 4; % 主减速器速比
engine_speed = current_speed / (2 * pi * 0.3) * 60 * final_drive_ratio; % 单位转换为 rpm
end