基于MATLAB/Simulink的纯电动汽车模型(
(包括驾驶员模型,电机模型,电池模型,传动模型,纵向动力学模型),比较简单,适合零基础或初学者,
在这里插入图片描述
标准的 Simulink 纯电动汽车(EV)前向仿真模型架构图。

它模拟了驾驶员(踏板)发出指令,经过整车控制器逻辑,控制电机和电池,最终驱动车辆行驶并计算动力学反馈的完整闭环过程。

核心物理模型代码

你可以将这段代码保存为 .m 文件,它定义了下图中各个关键子系统(电池、电机、车辆动力学)的数学模型。

classdef EV_System_Model
%% 纯电动汽车仿真核心模型
% 对应图片中的 Motor, Battery, Vehicle Model 等模块
% 基于物理公式的数学实现

properties
    % 车辆参数
    Mass = 1500;          % 整车质量 (kg)
    g = 9.81;             % 重力加速度
    Crr = 0.015;          % 滚动阻力系数
    Cd = 0.32;            % 风阻系数
    A = 2.4;              % 迎风面积 (m^2)
    R_wheel = 0.3;        % 轮胎半径 (m)

    % 电池参数
    Capacity_Ah = 60;     % 电池容量
    Voc = 360;            % 开路电压 (V)
    R_int = 0.1;          % 内阻 (Ohm)
    SOC = 0.9;            % 初始电量

    % 电机参数 (简化效率图)
    Efficiency = 0.92;
end

methods
    function obj = EV_System_Model()
        % 构造函数
    end

    %% 1. 对应图中 "Battery" 模块
    % 计算电池输出功率及SOC消耗
    function [Voltage, Current, SOC_new] = fcn_battery(obj, Power_req, SOC_old, dt)
        % Power_req: 需求功率 (正值为放电,负值为充电)

        % 简化的一阶等效电路模型
        % V = Voc - R => P = VI = (Voc - R)I
        % 求解电流 I 的二次方程: I^2 - VocI + P = 0

        if Power_req  0
            % 驱动模式
            Power_elec = P_mech / obj.Efficiency;
        else
            % 发电模式 (再生制动)
            Power_elec = P_mech * obj.Efficiency;
        end

        Torque_out = Torque_req; % 理想转矩响应
    end

    %% 3. 对应图中 "Vehicle Model" / Dynamics
    % 计算纵向动力学
    function [Accel, F_resist] = fcn_dynamics(obj, Torque_wheel, Speed_m_s)
        % Torque_wheel: 轮端总转矩
        % Speed_m_s: 车速 (m/s)

        % 计算阻力 F = F_roll + F_air
        F_roll = obj.Mass * obj.g * obj.Crr;
        F_air = 0.5 * 1.225 * obj.Cd * obj.A * Speed_m_s^2;
        F_resist = F_roll + F_air;

        % 驱动力 F_drive = T / R
        F_drive = Torque_wheel / obj.R_wheel;

        % 牛顿第二定律 F = ma
        F_net = F_drive - F_resist;
        Accel = F_net / obj.Mass;
    end
end

end

如何在 Simulink 中搭建(对应图中连线)

如果你需要在 Simulink 界面中手动连线,请参考以下逻辑:

输入层(左侧):使用 Inport 模块创建 speed_ref(目标速度)和 Brake(制动信号)。
控制层(中间上部):
使用一个 PID Controller 模块,输入是 speed_ref 和实际车速的差值,输出是需求转矩 Te_req。
执行层(中间):
Battery 模块:使用 MATLAB Function 模块粘贴上述 fcn_battery 代码。
Motor 模块:使用 MATLAB Function 模块粘贴上述 fcn_motor 代码。
对象层(底部):
Vehicle Model 模块:使用 MATLAB Function 模块粘贴上述 fcn_dynamics 代码。
积分环节:在 Vehicle Model 输出加速度 Accel 后,连接一个 Integrator 模块得到车速 Speed,并将此信号反馈回最左端的输入端和 Motor 模块。在这里插入图片描述

以上代码和搭建步骤涵盖了该模型的核心逻辑与实现方式。
在这里插入图片描述
这是一段 MATLAB 脚本代码,主要用于 电动汽车(EV)仿真模型的参数初始化。

代码内容复现

你可以直接复制以下代码并在 MATLAB 中运行,以初始化工作区变量。

close all
clear, clc

%% ======= initial values
SOC_initial = 0.8;

%% =======
% load mod_tabs
%
% R = 0.017;
% C = 32000;

% Ts = 0.1; % time step
% Decimation = 10;

%% =constants==%%
g = 9.81; % Acceleration of gravity
radiance = 0.2;

%% vehicle parameters==%%
m_Curb_WoBat_kg = 826; % curb weight without battery (整备质量-不含电池)
r_Wheel = 0.284; % wheel radius (车轮半径)

f0 = 0.021; % rolling resistant coefficients (滚动阻力系数)
% f1 = 0;
% f4 = 0;

% C_D = 0.42; % wind resistant coefficients (风阻系数-选项1)
% C_D = 0.35; % wind resistant coefficients (风阻系数-选项2)
% C_D = 0.28; % wind resistant coefficients (风阻系数-选项3)
% A = 1.87; % frontal area (迎风面积)

代码详细解析

这段代码主要分为三个部分:

环境清理与初始状态

close all, clear, clc:标准的 MATLAB 开头,用于关闭所有图形窗口、清除工作区变量和清空命令行,确保仿真环境干净。
SOC_initial = 0.8:设置电池的 初始荷电状态 为 80%。这是电池仿真中非常关键的初始条件。

常数定义

g = 9.81:定义重力加速度,用于计算车辆的重力分量(如坡道阻力)。
radiance = 0.2:这个变量名比较特殊,可能是指轮胎的滚动半径系数或者某种辐射系数,但在标准车辆动力学中不常见,可能是特定模型的自定义参数。

车辆物理参数

这是代码的核心部分,定义了车辆的物理属性:

质量参数:m_Curb_WoBat_kg = 826 表示 不含电池的整备质量。这意味着电池的 weigh 将会在后续代码中单独加上,这种写法常见于电池选型优化的仿真中。
几何参数:r_Wheel = 0.284 定义了车轮半径(约 28.4 厘米),用于将电机的转速/扭矩转换为车辆的线速度/驱动力。
阻力参数:
f0 = 0.021:这是滚动阻力系数的基础值。
注释掉的 C_D 和 A:这里列出了几组不同的 风阻系数 和 迎风面积。通过注释/取消注释不同的行,仿真者可以快速切换不同的车型气动布局(例如:普通轿车 vs 跑车 vs 卡车)进行对比测试。

这段代码通常作为主仿真脚本的 第一部分。后续通常会紧跟以下逻辑:

加载电池质量:根据电池容量计算电池重量,加上 m_Curb_WoBat_kg 得到总质量。
加载工况循环:导入车速-时间曲线(如 UDDS 或 NEDC 工况)。
运行仿真循环:计算每一步的阻力(滚动阻力 + 空气阻力 + 加速阻力),进而求出电机所需的扭矩和功率。
在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐