% 基本参数
m = 3880; % 总质量 (kg)
g = 9.8; % 重力加速度 (m/s²)
G = m * g; % 车辆重力 (N)
r = 0.367; % 车轮半径 (m)
eta_t = 0.83; % 传动系统机械效率
f = 0.020; % 滚动阻力系数
CdA = 2.77; % 空气阻力系数×迎风面积 (m²)
i0 = 5.58; % 主减速器传动比
ig = [6.09, 3.09, 1.71, 1.00]; % 变速器传动比 (1-4档)
% 发动机参数
n_min = 600; % 最低转速 (r/min)
n_max = 4000; % 最高转速 (r/min)
Q_idle = 0.299; % 怠速油耗 (mL/s),对应400r/min
n_idle = 400; % 怠速转速 (r/min)
% 转动惯量
I_f = 0.218; % 飞轮转动惯量 (kg·m²)
I_w1 = 1.798; % 前轮转动惯量 (kg·m²)
I_w2 = 3.598; % 后轮转动惯量 (kg·m²)
I_w_total = I_w1 + I_w2; % 总车轮转动惯量
% 其他参数
rho = 1.2258; % 空气密度 (kg/m³)
fuel_density = 0.742; % 汽油密度 (kg/L)
% 发动机万有特性数据 (转速, B0, B1, B2, B3, B4)
n_data = [815, 1207, 1614, 2012, 2603, 3006, 3403, 3804];
B0 = [1326.8, 1354.7, 1284.4, 1122.9, 1141.0, 1051.2, 1233.9, 1129.7];
B1 = [-416.46, -303.98, -189.75, -121.59, -98.893, -73.714, -84.478, -45.291];
B2 = [72.379, 36.657, 14.524, 7.0035, 4.4763, 2.8593, 2.9788, 0.71113];
B3 = [-5.8629, -2.0553, -0.51184, -0.18517, -0.091077, -0.05138, -0.047449, -0.00075215];
B4 = [0.17768, 0.043072, 0.0068164, 0.0018555, 0.00068906, 0.00035032, 0.00028230, -0.000038568];
% 假设的发动机外特性曲线 (转矩 vs 转速)
n_engine = linspace(n_min, n_max, 100); % 发动机转速范围
T_e = 250 * exp(-((n_engine - 2000)/800).^2) + 200 * exp(-((n_engine - 3500)/500).^2); % 外特性转矩 (N·m)
P_e = T_e .* n_engine / 9549; % 发动机功率 (kW)
%% 1. 绘制发动机外特性曲线
figure;
yyaxis left;
plot(n_engine, T_e, 'b-', 'LineWidth', 1.5);
ylabel('发动机转矩 T_e (N·m)');
yyaxis right;
plot(n_engine, P_e, 'r-', 'LineWidth', 1.5);
ylabel('发动机功率 P_e (kW)');
xlabel('发动机转速 n (r/min)');
title('发动机外特性曲线');
grid on;
legend('转矩特性', '功率特性');
%% 2. 绘制功率平衡图 (最高档)
gear = 4; % 最高档
i_gear = ig(gear);
v_max = n_engine * 0.377 * r / (i0 * i_gear); % 车速 (km/h)
% 计算行驶阻力功率
v_kmh = linspace(0, 160, 100); % 车速范围 (km/h)
v_ms = v_kmh / 3.6; % 车速 (m/s)
F_roll = G * f * ones(size(v_kmh)); % 滚动阻力 (N)
F_air = 0.5 * rho * CdA * v_ms.^2; % 空气阻力 (N)
F_resist = F_roll + F_air; % 总行驶阻力 (N)
P_resist = F_resist .* v_ms / 1000; % 行驶阻力功率 (kW)
% 计算发动机功率曲线
P_engine = interp1(v_max, P_e, v_kmh, 'linear', 'extrap');
figure;
plot(v_kmh, P_engine, 'b-', 'LineWidth', 1.5);
hold on;
plot(v_kmh, P_resist / eta_t, 'r-', 'LineWidth', 1.5); % 考虑传动效率
xlabel('车速 v (km/h)');
ylabel('功率 P (kW)');
title('最高档功率平衡图');
legend('发动机功率', '行驶阻力功率');
grid on;
xlim([0, 160]);
ylim([0, 120]);
%% 3. 最高档和次高档等速燃油消耗率
gear_high = 4; % 最高档
gear_sub = 3; % 次高档
v_range = 10:1:120; % 车速范围 (km/h)
% 预分配数组
be_high = zeros(size(v_range));
be_sub = zeros(size(v_range));
for i = 1:length(v_range)
v = v_range(i);
% 计算行驶阻力功率
v_ms = v / 3.6;
F_resist = G * f + 0.5 * rho * CdA * v_ms^2;
P_resist = F_resist * v_ms / 1000; % kW
P_e_req = P_resist / eta_t; % 发动机需求功率 (kW)
% 最高档
n_high = (v * i0 * ig(gear_high)) / (0.377 * r);
be_high(i) = calc_fuel_consumption(n_high, P_e_req, n_data, B0, B1, B2, B3, B4);
% 次高档
n_sub = (v * i0 * ig(gear_sub)) / (0.377 * r);
be_sub(i) = calc_fuel_consumption(n_sub, P_e_req, n_data, B0, B1, B2, B3, B4);
end
% 绘制燃油消耗率
figure;
plot(v_range, be_high, 'b-', 'LineWidth', 1.5);
hold on;
plot(v_range, be_sub, 'r-', 'LineWidth', 1.5);
xlabel('车速 v (km/h)');
ylabel('燃油消耗率 b_e (g/kWh)');
title('等速行驶燃油消耗率');
legend('最高档', '次高档');
grid on;
%% 4. 最高档和次高档等速百公里油耗
% 计算百公里油耗 (L/100km)
fuel_cons_high = (be_high .* (P_e_req * ones(size(v_range)))) ./ (10 * fuel_density * v_range);
fuel_cons_sub = (be_sub .* (P_e_req * ones(size(v_range)))) ./ (10 * fuel_density * v_range);
figure;
plot(v_range, fuel_cons_high, 'b-', 'LineWidth', 1.5);
hold on;
plot(v_range, fuel_cons_sub, 'r-', 'LineWidth', 1.5);
xlabel('车速 v (km/h)');
ylabel('百公里油耗 Q (L/100km)');
title('等速百公里油耗曲线');
legend('最高档', '次高档');
grid on;
%% 5. 六工况百公里油耗计算
% 六工况参数 [起始车速, 结束车速, 时间, 距离]
cycles = {
[25, 25, 7.2, 50]; % 工况I: 等速
[25, 40, 16.7, 150]; % 工况II: 加速 (25->40)
[40, 40, 22.5, 250]; % 工况III: 等速
[40, 50, 14.0, 175]; % 工况IV: 加速 (40->50)
[50, 50, 18.0, 250]; % 工况V: 等速
[50, 25, 19.3, 200] % 工况VI: 减速 (50->25)
};
dt = 0.1; % 时间步长 (s)
total_fuel = 0; % 总燃油消耗 (mL)
gear_cycle = 4; % 循环中使用最高档
for k = 1:length(cycles)
cycle = cycles{k};
v_start = cycle(1);
v_end = cycle(2);
t_cycle = cycle(3);
s_cycle = cycle(4);
t_steps = 0:dt:t_cycle;
a_cycle = (v_end - v_start) / t_cycle * 1000/3600; % 加速度 (m/s²)
for t = t_steps
v = v_start + (v_end - v_start) * t / t_cycle; % 当前车速 (km/h)
a = a_cycle; % 当前加速度 (m/s²)
% 计算需求功率
v_ms = v / 3.6;
F_roll = G * f;
F_air = 0.5 * rho * CdA * v_ms^2;
F_accel = m * a;
F_total = F_roll + F_air + F_accel;
if F_total > 0 % 发动机提供动力
P_wheel = F_total * v_ms; % 车轮功率 (W)
P_e_req = P_wheel / (eta_t * 1000); % 发动机需求功率 (kW)
n_engine = (v * i0 * ig(gear_cycle)) / (0.377 * r);
be = calc_fuel_consumption(n_engine, P_e_req, n_data, B0, B1, B2, B3, B4);
fuel_rate = (P_e_req * be) / (3600 * fuel_density); % 燃油消耗率 (mL/s)
else % 滑行或制动 (断油)
fuel_rate = 0;
end
total_fuel = total_fuel + fuel_rate * dt;
end
end
% 计算百公里油耗
total_distance = 1075; % 总行驶距离 (m)
fuel_per_100km = (total_fuel / 1000) / (total_distance / 100000); % L/100km
fprintf('六工况百公里油耗: %.2f L/100km\n', fuel_per_100km);
%% 6. 经济性总体评价
% 基于计算结果进行评价
fprintf('\n经济性总体评价:\n');
fprintf('1. 最高档在经济车速区间(60-80km/h)的百公里油耗约为%.2f L/100km\n', ...
mean(fuel_cons_high(v_range>=60 & v_range<=80)));
fprintf('2. 次高档在相同车速下的油耗比最高档高约%.1f%%\n', ...
100 * (mean(fuel_cons_sub(v_range>=60 & v_range<=80)) / mean(fuel_cons_high(v_range>=60 & v_range<=80)) - 100));
fprintf('3. 六工况测试油耗为%.2f L/100km,接近等速经济性\n', fuel_per_100km);
fprintf('4. 建议在实际驾驶中使用最高档,保持车速在60-80km/h以获得最佳经济性\n');
%% 辅助函数: 计算燃油消耗率
function be = calc_fuel_consumption(n, P_e, n_data, B0, B1, B2, B3, B4)
% 确保转速在合理范围内
n = max(min(n, max(n_data)), min(n_data));
% 找到最近的转速点
[~, idx] = min(abs(n_data - n));
% 使用该转速点的系数
b0 = B0(idx);
b1 = B1(idx);
b2 = B2(idx);
b3 = B3(idx);
b4 = B4(idx);
% 计算燃油消耗率
be = b0 + b1*P_e + b2*P_e^2 + b3*P_e^3 + b4*P_e^4;
% 确保be为正
be = max(be, 0);
end 请验证上述代码错误地方要求如下% 基本参数
m = 3880; % 总质量 (kg)
g = 9.8; % 重力加速度 (m/s²)
G = m * g; % 车辆重力 (N)
r = 0.367; % 车轮半径 (m)
eta_t = 0.83; % 传动系统机械效率
f = 0.020; % 滚动阻力系数
CdA = 2.77; % 空气阻力系数×迎风面积 (m²)
i0 = 5.58; % 主减速器传动比
ig = [6.09, 3.09, 1.71, 1.00]; % 五档变速器传动比
% 发动机参数
n_min = 600; % 最低转速 (r/min)
n_max = 4000; % 最高转速 (r/min)
Q_idle = 0.299; % 怠速油耗 (mL/s),对应400r/min
n_idle = 400; % 怠速转速 (r/min)
% 转动惯量
I_f = 0.218; % 飞轮转动惯量 (kg·m²)
I_w1 = 1.798; % 前轮转动惯量 (kg·m²)
I_w2 = 3.598; % 后轮转动惯量 (kg·m²)
I_w_total = I_w1 + I_w2; % 总车轮转动惯量
% 其他参数
rho = 1.2258; % 空气密度 (kg/m³)
fuel_density = 0.742; % 汽油密度 (kg/L)。
n/(r/ min) B₀ B₁ B₂ B₃ B₄
815 1326.8 -416.46 72.379 -5.8629 0.17768
1207 1354.7 -303.98 36.657 -2.0553 0.043072
1614 1284.4 -189.75 14.524 -0.51184 0.0068164
2012 1122.9 -121.59 7.0035 -0.18517 0.0018555
2603 1141.0 -98.893 4.4763 -0.091077 0.00068906
3006 1051.2 -73.714 2.8593 -0.05138 0.00035032
3403 1233.9 -84.478 2.9788 -0.047449 0.00028230
3804 1129.7 -45.291 0.71113 -0.00075215 -0.000038568
怠速油耗 (怠速转速400r/ min)。
六工况循环的参数如下:
工 况 累积行程/m 时间/s 累积时间/s 车速/(km/h) 说 明
I 50 7.2 7.2 25 等 速
Ⅱ 200 16.7 23.9 25~40 匀加速度为
Ⅲ 450 22.5 46.4 40 等 速
Ⅳ 625 14.0 60.4 40~50 匀加速度为
V 875 18.0 78.4 50 等 速
Ⅵ 1075 19.3 97.7 50~25 匀加速度为 1)根据书上所给的发动机使用外特性曲线拟合公式,绘制功率外特性和转矩外特性曲线;
2)绘制功率平衡图;
3)绘制汽车最高挡和次高档等速在水平路面上行驶时发动机的燃油消耗率b,见图2
图2 最高两挡等速行驶发动机燃油消耗率
4)绘制最高挡和次高档等速百公里油耗曲线;
5)求解六工况(GB/T 12545.2-2001)行驶的百公里油耗;
经济性计算时,取汽油密度0.742g/mL,柴油密度0.830g/mL
6)对经济性进行总体评价,请用matlab解决上述问题
最新发布