MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 教程资料 > matlab教程 > HEV混动模型,用matlab建立的,可以自己修改进行相关实验

HEV混动模型,用matlab建立的,可以自己修改进行相关实验

以下是一个简单的混合动力车辆(HEV)模型的MATLAB源代码示例。该模型基于电动机和内燃机的动力学模型,并考虑了能量管理策略。

% HEV混动模型

% 参数定义
m = 1000; % 质量 (kg)
Cd = 0.3; % 阻力系数
A = 2.5; % 受力面积 (m^2)
rho = 1.2; % 空气密度 (kg/m^3)
g = 9.81; % 重力加速度 (m/s^2)
eta_m = 0.9; % 电机效率
eta_g = 0.8; % 齿轮传动效率
eta_d = 0.95; % 动力学效率
J_m = 0.01; % 电机惯性矩 (kg*m^2)
J_g = 0.02; % 齿轮惯性矩 (kg*m^2)
J_d = 0.03; % 动力学惯性矩 (kg*m^2)
r_g = 0.1; % 齿轮半径 (m)
r_d = 0.2; % 动力学半径 (m)
r_tire = 0.3; % 轮胎半径 (m)
F_brake_max = 1000; % 最大制动力 (N)

% 初始条件
v = 0; % 初始速度 (m/s)
x = 0; % 初始位置 (m)
w_m = 0; % 电机角速度 (rad/s)
w_g = 0; % 齿轮角速度 (rad/s)
w_d = 0; % 动力学角速度 (rad/s)

% 时间参数
dt = 0.01; % 时间步长 (s)
t_end = 10; % 模拟时长 (s)
t = 0:dt:t_end; % 时间向量

% 控制策略
SOC = 0.8; % 电池荷电状态
SOC_min = 0.2; % 最小允许电池荷电状态
SOC_max = 0.9; % 最大允许电池荷电状态
P_bat_max = 10000; % 最大电池功率 (W)
P_bat_min = -10000; % 最小电池功率 (W)

% 仿真主循环
for i = 1:length(t)
    % 计算阻力
    F_drag = 0.5 * Cd * A * rho * v^2;
    F_gravity = m * g * sin(0); % 坡度为0
    F_resistance = F_drag + F_gravity;
    
    % 计算电动机输出扭矩
    T_m = (F_resistance * r_tire + J_d * r_d + J_g * r_g) / (eta_d * eta_g * eta_m);
    
    % 能量管理策略
    if SOC > SOC_max
        P_bat = P_bat_min;
    elseif SOC < SOC_min
        P_bat = P_bat_max;
    else
        P_bat = 0;
    end
    
    % 电动机和内燃机动力学模型
    dw_m = (T_m - P_bat / w_m) / J_m;
    dw_g = (w_m - w_g) / (eta_m * eta_g * r_g);
    dw_d = (w_g - w_d) / (eta_g * r_d);
    
    % 更新状态变量
    w_m = w_m + dw_m * dt;
    w_g = w_g + dw_g * dt;
    w_d = w_d + dw_d * dt;
    v = w_d * r_d;
    x = x + v * dt;
    
    % 更新电池荷电状态
    SOC = SOC + (P_bat / 3600) / (1.2 * 100);
    
    % 绘制结果
    plot(t(1:i), v(1:i), 'r');
    xlabel('时间 (s)');
    ylabel('速度 (m/s)');
    title('混合动力车辆模拟');
    drawnow;
end

上述代码是一个简单的混合动力车辆模型,其中包含了车辆的动力学模型、能量管理策略和仿真主循环。你可以根据自己的需求修改模型参数、控制策略或添加其他功能。例如,你可以考虑更复杂的能量管理策略,添加车辆动力学的非线性特性或考虑实际驾驶循环等。