clear all; close all; clc;
%% 1. 自定义汽车参数
% 汽车基本参数
m = 1800; % 整车质量 (kg)
r = 0.325; % 车轮半径 (m)
cd = 0.28; % 空气阻力系数
A = 2.3; % 迎风面积 (m²)
f = 0.010; % 滚动阻力系数
g = 9.8; % 重力加速度 (m/s²)
% 传动系统参数
it = 7.8; % 总传动比
at = 0.95; % 主减速器传动比
% 电机性能参数
Pm = 150; % 峰值功率 (kW)
Tm = 350; % 峰值扭矩 (N·m)
Pr = 100; % 额定功率 (kW)
Tr = 200; % 额定扭矩 (N·m)
%% 2. 参数验证与计算
% 验证参数合理性
if m <= 0
error('整车质量必须大于0');
end
if r <= 0
error('车轮半径必须大于0');
end
if cd <= 0 || cd > 1
warning('空气阻力系数应在0-1之间,当前值: %f', cd);
end
if A <= 0
error('迎风面积必须大于0');
end
if f < 0 || f > 0.1
warning('滚动阻力系数通常在0-0.1之间,当前值: %f', f);
end
if Pm <= 0
error('峰值功率必须大于0');
end
if Tm <= 0
error('峰值扭矩必须大于0');
end
% 计算额定转速
nm = Pr * 9550 / Tr; % 电机额定转速 (r/min)
fprintf('参数设置完成:\n');
fprintf('整车质量: %.0f kg\n', m);
fprintf('车轮半径: %.3f m\n', r);
fprintf('空气阻力系数: %.3f\n', cd);
fprintf('迎风面积: %.2f m²\n', A);
fprintf('滚动阻力系数: %.4f\n', f);
fprintf('总传动比: %.2f\n', it);
fprintf('峰值功率: %.0f kW\n', Pm);
fprintf('峰值扭矩: %.0f N·m\n', Tm);
fprintf('额定功率: %.0f kW\n', Pr);
fprintf('额定扭矩: %.0f N·m\n', Tr);
fprintf('电机额定转速: %.0f r/min\n', nm);
fprintf('\n');
%% 3. 性能曲线计算
% 速度范围设置
v_step = 0.1; % 速度步长 (km/h)
v_max = 250; % 最大计算速度 (km/h)
v = v_step:v_step:v_max; % 速度数组 (km/h)
% 初始化数组
n = zeros(size(v)); % 电机转速数组 (r/min)
Ft = zeros(size(v)); % 驱动力数组 (N)
F = zeros(size(v)); % 总行驶阻力数组 (N)
Fw = zeros(size(v)); % 空气阻力数组 (N)
Ff = zeros(size(v)); % 滚动阻力数组 (N)
a = zeros(size(v)); % 加速度数组 (m/s²)
angle = zeros(size(v)); % 爬坡度数组 (%)
% 预计算常数
Ff_const = m * g * f; % 恒定滚动阻力系数
% 循环计算各速度点的性能参数
for i = 1:length(v)
% 计算电机转速
n(i) = it * v(i) / r / 0.377;
% 计算驱动力(基于电机外特性)
if n(i) < nm
% 恒扭矩区
Ft(i) = Tm * it * at / r;
else
% 恒功率区
Ft(i) = (Pm * 9550 / n(i)) * it * at / r;
end
% 计算空气阻力
Fw(i) = cd * A * (v(i)^2) / 21.15;
% 计算滚动阻力(假设坡度为0)
Ff(i) = Ff_const;
% 计算总行驶阻力
F(i) = Fw(i) + Ff(i);
% 计算加速度
a(i) = (Ft(i) - F(i)) / m;
% 计算爬坡度
available_force = Ft(i) - Fw(i) - Ff(i);
if available_force > 0 && m * g > 0
slope_angle = asin(min(1, available_force / (m * g)));
angle(i) = tan(slope_angle) * 100; % 转换为百分比
else
angle(i) = 0;
end
end
% 找到最高车速(驱动力与行驶阻力平衡点)
[~, balance_idx] = min(abs(Ft - F));
vmax = v(balance_idx);
fprintf('性能计算完成,最高车速: %.2f km/h\n', vmax);
%% 4. 加速性能计算
% 0-100km/h加速时间计算
target_speed = 100; % 目标速度 (km/h)
time_step = 0.01; % 时间步长 (s)
% 初始化加速过程变量
va = [0]; % 速度历史 (km/h)
ta = [0]; % 时间历史 (s)
current_speed = 0; % 当前速度
current_time = 0; % 当前时间
% 加速过程仿真
while current_speed < target_speed
% 计算当前速度对应的电机转速
current_n = it * current_speed / r / 0.377;
% 计算当前驱动力
if current_n < nm
current_Ft = Tm * it * at / r;
else
current_Ft = (Pm * 9550 / current_n) * it * at / r;
end
% 计算当前行驶阻力
current_Fw = cd * A * (current_speed^2) / 21.15;
current_F = current_Fw + Ff_const;
% 计算当前加速度
current_a = (current_Ft - current_F) / m;
% 更新速度和时间
current_speed = current_speed + current_a * time_step * 3.6; % 转换为 km/h
current_time = current_time + time_step;
% 避免超调
if current_speed > target_speed
current_speed = target_speed;
end
% 记录历史
va = [va, current_speed];
ta = [ta, current_time];
% 防止无限循环
if current_time > 100
break;
end
end
accel_time = current_time;
fprintf('0-100km/h加速时间: %.2f s\n', accel_time);
%% 5. 结果分析
% 最大爬坡度
max_climb = max(angle);
fprintf('最大爬坡度: %.2f %%\n', max_climb);
%% 6. 绘图
% 图1:驱动力-行驶阻力平衡图
figure(1);
plot(v, Ft, 'b-', 'LineWidth', 2, 'DisplayName', '驱动力');
hold on;
plot(v, F, 'r--', 'LineWidth', 2, 'DisplayName', '行驶阻力');
grid on;
xlabel('速度 (km/h)');
ylabel('力 (N)');
title('驱动力-行驶阻力平衡图');
legend('show');
xlim([0, max(v)]);
ylim([0, max([max(Ft), max(F)]) * 1.1]);
% 图2:加速度曲线
figure(2);
plot(v, a, 'g-', 'LineWidth', 2);
grid on;
xlabel('速度 (km/h)');
ylabel('加速度 (m/s²)');
title('加速度曲线');
xlim([0, max(v)]);
ylim([0, max(a) * 1.1]);
% 图3:爬坡度曲线
figure(3);
plot(v, angle, 'm-', 'LineWidth', 2);
grid on;
xlabel('速度 (km/h)');
ylabel('爬坡度 (%)');
title('最大爬坡度曲线');
xlim([0, max(v)]);
ylim([0, max_climb * 1.1]);
% 图4:各阻力分量曲线
figure(4);
plot(v, Fw, 'c-', 'LineWidth', 2, 'DisplayName', '空气阻力');
hold on;
plot(v, Ff, 'y-', 'LineWidth', 2, 'DisplayName', '滚动阻力');
plot(v, F, 'r--', 'LineWidth', 2, 'DisplayName', '总阻力');
grid on;
xlabel('速度 (km/h)');
ylabel('阻力 (N)');
title('各阻力分量曲线');
legend('show');
xlim([0, max(v)]);
ylim([0, max(F) * 1.1]);
% 图5:加速时间曲线
figure(5);
plot(ta, va, 'b-', 'LineWidth', 2);
grid on;
xlabel('时间 (s)');
ylabel('速度 (km/h)');
title('加速时间曲线');
xlim([0, max(ta)]);
ylim([0, max(va) * 1.1]);
%% 7. 性能汇总报告
fprintf('\n');
fprintf('========== 电动汽车动力性能汇总报告 ==========\n');
fprintf('整车质量: %.0f kg\n', m);
fprintf('车轮半径: %.3f m\n', r);
fprintf('空气阻力系数: %.3f\n', cd);
fprintf('迎风面积: %.2f m²\n', A);
fprintf('滚动阻力系数: %.4f\n', f);
fprintf('总传动比: %.2f\n', it);
fprintf('主减速器传动比: %.2f\n', at);
fprintf('峰值功率: %.0f kW\n', Pm);
fprintf('峰值扭矩: %.0f N·m\n', Tm);
fprintf('额定功率: %.0f kW\n', Pr);
fprintf('额定扭矩: %.0f N·m\n', Tr);
fprintf('额定转速: %.0f r/min\n', nm);
fprintf('\n');
fprintf('最高车速: %.2f km/h\n', vmax);
fprintf('0-100km/h加速时间: %.2f s\n', accel_time);
fprintf('最大爬坡度: %.2f %%\n', max_climb);
fprintf('================================================\n');
%% 8. 关键性能指标评估
% 评估结果
fprintf('\n');
fprintf('========== 关键性能指标评估 ==========\n');
if vmax >= 180
fprintf('最高车速: 优秀 (≥180 km/h)\n');
elseif vmax >= 150
fprintf('最高车速: 良好 (150-179 km/h)\n');
elseif vmax >= 120
fprintf('最高车速: 一般 (120-149 km/h)\n');
else
fprintf('最高车速: 需改进 (<120 km/h)\n');
end
if accel_time <= 8
fprintf('0-100km/h加速: 优秀 (≤8s)\n');
elseif accel_time <= 10
fprintf('0-100km/h加速: 良好 (8-10s)\n');
elseif accel_time <= 12
fprintf('0-100km/h加速: 一般 (10-12s)\n');
else
fprintf('0-100km/h加速: 需改进 (>12s)\n');
end
if max_climb >= 30
fprintf('爬坡能力: 优秀 (≥30%%)\n');
elseif max_climb >= 20
fprintf('爬坡能力: 良好 (20-29%%)\n');
elseif max_climb >= 15
fprintf('爬坡能力: 一般 (15-19%%)\n');
else
fprintf('爬坡能力: 需改进 (<15%%)\n');
end
fprintf('====================================\n');
%% 9. 参数敏感性分析(可选)
fprintf('\n');
fprintf('========== 参数敏感性分析 ==========\n');
fprintf('当前配置参数已应用于计算\n');
fprintf('如需分析其他参数组合,请修改第1节中的参数值并重新运行\n');
fprintf('====================================\n');
========== 电动汽车动力性能汇总报告 ==========
整车质量: 1800 kg
车轮半径: 0.325 m
空气阻力系数: 0.280
迎风面积: 2.30 m²
滚动阻力系数: 0.0100
总传动比: 7.80
主减速器传动比: 0.95
峰值功率: 150 kW
峰值扭矩: 350 N·m
额定功率: 100 kW
额定扭矩: 200 N·m
额定转速: 4775 r/min
最高车速: 248.80 km/h
0-100km/h加速时间: 7.14 s
最大爬坡度: 49.33 %
================================================
========== 关键性能指标评估 ==========
最高车速: 优秀 (≥180 km/h)
0-100km/h加速: 优秀 (≤8s)
爬坡能力: 优秀 (≥30%)
====================================