汽车燃油经济性是指汽车在一定行驶条件下,以最小的燃油消耗量完成一定行驶里程的能力,汽车燃油经济性评价指标主要有等速百公里燃油消耗量和汽车综合燃油消耗量,其中汽车综合燃油消耗量又包括市区工况燃油消耗量和市郊工况燃油消耗量。
主要任务:
1.建立汽车燃油经济性数学模型。
2.预测汽车等速百公里燃油消耗量。
3.采用ABC工况预测汽车燃油消耗量。
汽车燃油经济性仿真所需参数见表3-1。
汽车质量/kg | 滚动阻力系数 | 空气阻力系数 | 迎风面积/m^2 | 滚动半径/m |
2470 | 0.012 | 0.42 | 2.7 | 0.358 |
旋转质量换算系数 | 传动效率 | 主减速器传动比 | 变速器各档传动比 | |
1.1 | 0.95 | 4.1 | 4.018,2.318.1.401,1,0.778 |
任务实施:
一、预测汽车等速行驶百公里燃油消耗量
编写预测汽车等速行驶百公里燃油消耗量的MATLAB程序:
m = 2470; %汽车质量
f = 0.012; %滚动阻力系数
Cd = 0.42; %迎风阻力系数
A = 2.7; %迎风面积
nt = 0.95; %传动效率
R = 0.358; %滚动半径
sigma =1.1; %旋转质量换算系数
g = 9.8; %重力加速度
midu = 0.7; %燃油密度
u = input('请输入车速:'); %输入制定车速
%发动机转速赋值
ne = [1400 1400 1400 1400 1400 1400 1400 1400 1400 1400 1600 1600 1600 1600 1600 1600 1600 1600 1600 1600 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2200 2200 2200 2200 2200 2200 2200 2200 2200 2200 2400 2400 2400 2400 2400 2400 2400 2400 2400 2400 2600 2600 2600 2600 2600 2600 2600 2600 2600 2600 2800 2800 2800 2800 2800 2800 2800 2800 2800 2800]';
%发动机转矩赋值
tp = [399.8 354.1 318.5 278.1 236.2 203.6 185.3 157.2 117.2 80.8 409.1 365.7 328.3 284.1 243.7 203.2 164.3 123.9 83.5 39.7 408.3 368.3 328.3 289 244.4 208.8 167.7 132.2 89.5 46.1 425.6 380.3 332.7 290.9 244.4 205.1 160.2 114.5 68.8 30.7 420.7 379.6 334.6 291.6 244.4 202.8 157.5 116 74.1 37.8 404.6 360.5 322.7 283 243.3 205.5 162.1 124.7 86.8 52.4 378 344.7 310.3 264.3 226.1 186.8 154.2 115.3 76.3 34.1 315.6 275.5 242.5 210.3 178.5 145.6 118.6 72.6 52.8 22.4]';
%发动机燃油消耗率赋值
be = [222.8 220.4 232.4 228.5 227.8 232.6 248.5 245.9 272.4 329.7 222 221.7 235.4 226.5 230.5 236.8 249.1 276.1 407.9 487 226 225.3 226.4 233.9 242.1 283.3 253.9 271.4 323.5 468.6 206.5 231.1 231.1 233 242 244.9 265 299.8 398 596.8 234.7 259.8 235.5 237.6 242.8 292.3 277.9 308.7 396.2 605.9 174.2 242.2 252.1 287.4 253.6 264.6 290.6 316.8 378 518.8 256.9 253.7 253.5 260 303.8 280.7 300.6 346.6 435.6 812.9 257.9 295.3 282.4 288.7 301.9 329.7 357 475.4 580.3 1080.1]';
% 多元线性回归设置
X = [ones(80,1),ne,tp,ne.^2,ne.*tp,tp.^2,ne.^3,ne.^2.*tp,ne.*tp.^2,tp.^3];
% 多元线性回归函数
[b,bint,r,rint,stats] = regress(be,X);
ne1 = linspace(1400,4000,200); %定义转速范围
tp1 = linspace(0,600,200); %定义转矩范围
[X,Y] = meshgrid(ne1,tp1); %生成二维网格矩阵
%计算燃油消耗率
be1 = b(1)*ones(200,200)+b(2)*X+b(3)*Y+b(4)*X.^2+b(5)*X.*Y+b(6)*Y.^2+b(7)*X.^3+b(8)*X.^2.*Y+b(9)*X.*Y.^2 + b(10)*Y.^3;
pe1 = tp1.*ne1/9550; %计算功率
it = 0.778*4.1; %计算最高档传动比
pe =1/nt*(m*g*f*u/3600+Cd*A*u^3/76140); %计算匀速行驶所需功率
n =u*it/(0.377*R); %计算发动机转速
be = interp2(pe1 ,ne1 ,be1 ,pe ,n); %差值得到燃油消耗率
Qs = pe *be /1.02/midu/g/u; %计算百公里燃油消耗量
fprintf('最高档等速百公里油耗Qs= %.2f L/100km\n',Qs); %输出等速百公里燃油消耗量
运行结果如下图所示:
二、采用NEDC工况预测汽车燃油消耗量
该部分仿真程序主要分为主程序部分和函数部分,主程序来计算NDEC工况燃油消耗量,在主程序内调用了三个函数,三个函数分别来计算NDEC工况中的匀速部分油耗,加速部分油耗,以及减速部分油耗。
在Matlab中,新建4个脚本文件,分别保存以下4个部分程序,主程序可以任意命名,函数部分文件保存时使用默认函数名,另外注意4个文件应保持在同一路径下,保存好的主程序编辑器里点击运行按钮命令窗口就会输出仿真结果。
1. 匀速工况燃油消耗量计算函数。
function[Q] = yunsu(u,t)
m = 2470; %汽车质量
f = 0.012; %滚动阻力系数
Cd = 0.42; %迎风阻力系数
A = 2.7; %迎风面积
nt = 0.95; %传动效率
R = 0.358; %滚动半径
sigma =1.1; %旋转质量换算系数
g = 9.8; %重力加速度
midu = 0.7; %燃油密度
u = input('请输入车速:'); %输入制定车速
%发动机转速赋值
ne = [1400 1400 1400 1400 1400 1400 1400 1400 1400 1400 1600 1600 1600 1600 1600 1600 1600 1600 1600 1600 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2200 2200 2200 2200 2200 2200 2200 2200 2200 2200 2400 2400 2400 2400 2400 2400 2400 2400 2400 2400 2600 2600 2600 2600 2600 2600 2600 2600 2600 2600 2800 2800 2800 2800 2800 2800 2800 2800 2800 2800]';
%发动机转矩赋值
tp = [399.8 354.1 318.5 278.1 236.2 203.6 185.3 157.2 117.2 80.8 409.1 365.7 328.3 284.1 243.7 203.2 164.3 123.9 83.5 39.7 408.3 368.3 328.3 289 244.4 208.8 167.7 132.2 89.5 46.1 425.6 380.3 332.7 290.9 244.4 205.1 160.2 114.5 68.8 30.7 420.7 379.6 334.6 291.6 244.4 202.8 157.5 116 74.1 37.8 404.6 360.5 322.7 283 243.3 205.5 162.1 124.7 86.8 52.4 378 344.7 310.3 264.3 226.1 186.8 154.2 115.3 76.3 34.1 315.6 275.5 242.5 210.3 178.5 145.6 118.6 72.6 52.8 22.4]';
%发动机燃油消耗率赋值
be = [222.8 220.4 232.4 228.5 227.8 232.6 248.5 245.9 272.4 329.7 222 221.7 235.4 226.5 230.5 236.8 249.1 276.1 407.9 487 226 225.3 226.4 233.9 242.1 283.3 253.9 271.4 323.5 468.6 206.5 231.1 231.1 233 242 244.9 265 299.8 398 596.8 234.7 259.8 235.5 237.6 242.8 292.3 277.9 308.7 396.2 605.9 174.2 242.2 252.1 287.4 253.6 264.6 290.6 316.8 378 518.8 256.9 253.7 253.5 260 303.8 280.7 300.6 346.6 435.6 812.9 257.9 295.3 282.4 288.7 301.9 329.7 357 475.4 580.3 1080.1]';
% 多元线性回归设置
X = [ones(80,1),ne,tp,ne.^2,ne.*tp,tp.^2,ne.^3,ne.^2.*tp,ne.*tp.^2,tp.^3];
% 多元线性回归函数
[b,bint,r,rint,stats] = regress(be,X);
ne1 = linspace(100,4000,200); %定义转速范围
tp1 = linspace(0,600,200); %定义转矩范围
[X,Y] = meshgrid(ne1,tp1); %生成二维网格矩阵
%计算燃油消耗率
be1 = b(1)*ones(200,200)+b(2)*X+b(3)*Y+b(4)*X.^2+b(5)*X.*Y+b(6)*Y.^2+b(7)*X.^3+b(8)*X.^2.*Y+b(9)*X.*Y.^2 + b(10)*Y.^3;
pe1 = tp 1.*ne1/9550; %计算功率
if(u>=0&&u<=15) %如果是一档车速范围
it = 4.016*4.1; %计算一档传动系统传动比
end %结束
if(u>15&&u<=25) %如果是二档车速范围
it = 2.318*4.1; %计算二档传动系统传动比
end %结束
if(u>25&&u<=35) %如果是三档车速范围
it = 1.401*4.1; %计算三档传动系统传动比
end %结束
if(u>35&&u<=55) %如果是四档车速范围
it = 4.1; %计算四档传动系统传动比
end %结束
if(u>55) %如果是五档车速范围
it = 0.778*4.1; %计算五档传动系统传动比
end %结束
pe =1/nt*(m*g*f*u/3600+Cd*A*u^3/76140); %计算匀速行驶所需功率
n =u*it/(0.377*R); %计算发动机转速
b = interp2(pe1 ,ne1 ,be1 ,pe ,n); %差值得到燃油消耗率
Qs = pe *b /1.02/midu/g/u; %计算百公里燃油消耗量
Ss = u*t/3600; %计算行驶距离
Q =Qs *Ss/100; %计算这段距离的燃油消耗量
end %循环结束
2. 加速部分燃油消耗量计算函数
function[Qa] = jiasu(a,u1,u2)
m = 2470; %汽车质量
f = 0.012; %滚动阻力系数
Cd = 0.42; %迎风阻力系数
A = 2.7; %迎风面积
nt = 0.95; %传动效率
R = 0.358; %滚动半径
sigma =1.1; %旋转质量换算系数
g = 9.8; %重力加速度
midu = 0.7; %燃油密度
u = input('请输入车速:'); %输入制定车速
%发动机转速赋值
ne = [1400 1400 1400 1400 1400 1400 1400 1400 1400 1400 1600 1600 1600 1600 1600 1600 1600 1600 1600 1600 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2200 2200 2200 2200 2200 2200 2200 2200 2200 2200 2400 2400 2400 2400 2400 2400 2400 2400 2400 2400 2600 2600 2600 2600 2600 2600 2600 2600 2600 2600 2800 2800 2800 2800 2800 2800 2800 2800 2800 2800]';
%发动机转矩赋值
tp = [399.8 354.1 318.5 278.1 236.2 203.6 185.3 157.2 117.2 80.8 409.1 365.7 328.3 284.1 243.7 203.2 164.3 123.9 83.5 39.7 408.3 368.3 328.3 289 244.4 208.8 167.7 132.2 89.5 46.1 425.6 380.3 332.7 290.9 244.4 205.1 160.2 114.5 68.8 30.7 420.7 379.6 334.6 291.6 244.4 202.8 157.5 116 74.1 37.8 404.6 360.5 322.7 283 243.3 205.5 162.1 124.7 86.8 52.4 378 344.7 310.3 264.3 226.1 186.8 154.2 115.3 76.3 34.1 315.6 275.5 242.5 210.3 178.5 145.6 118.6 72.6 52.8 22.4]';
%发动机燃油消耗率赋值
be = [222.8 220.4 232.4 228.5 227.8 232.6 248.5 245.9 272.4 329.7 222 221.7 235.4 226.5 230.5 236.8 249.1 276.1 407.9 487 226 225.3 226.4 233.9 242.1 283.3 253.9 271.4 323.5 468.6 206.5 231.1 231.1 233 242 244.9 265 299.8 398 596.8 234.7 259.8 235.5 237.6 242.8 292.3 277.9 308.7 396.2 605.9 174.2 242.2 252.1 287.4 253.6 264.6 290.6 316.8 378 518.8 256.9 253.7 253.5 260 303.8 280.7 300.6 346.6 435.6 812.9 257.9 295.3 282.4 288.7 301.9 329.7 357 475.4 580.3 1080.1]';
% 多元线性回归设置
X = [ones(80,1),ne,tp,ne.^2,ne.*tp,tp.^2,ne.^3,ne.^2.*tp,ne.*tp.^2,tp.^3];
% 多元线性回归函数
[b,bint,r,rint,stats] = regress(be,X);
ne1 = linspace(1400,4000,200); %定义转速范围
tp1 = linspace(0,600,200); %定义转矩范围
[X,Y] = meshgrid(ne1,tp1); %生成二维网格矩阵
%计算燃油消耗率
be1 = b(1)*ones(200,200)+b(2)*X+b(3)*Y+b(4)*X.^2+b(5)*X.*Y+b(6)*Y.^2+b(7)*X.^3+b(8)*X.^2.*Y+b(9)*X.*Y.^2 + b(10)*Y.^3;
pe1 = tp1.*ne1/9550; %计算功率
x=u2-u1+1; %加速过程以1km/h等间距划分
Qt =zeros(x,1); %生成x*1维矩阵Qt
for i = 1:x %循环语句
u =u1+i-1; %计算速度
if(u>=0&&u<=15) %如果是一档车速范围
it = 4.016*4.1; %计算一档传动系统传动比
end %结束
if(u>15&&u<=25) %如果是二档车速范围
it = 2.318*4.1; %计算二档传动系统传动比
end %结束
if(u>25&&u<=35) %如果是三档车速范围
it = 1.401*4.1; %计算三档传动系统传动比
end %结束
if(u>35&&u<=55) %如果是四档车速范围
it = 4.1; %计算四档传动系统传动比
end %结束
if(u>55) %如果是五档车速范围
it = 0.778*4.1; %计算五档传动系统传动比
end %结束
pe =1/nt*(m*g*f*u/3600+Cd*A*u^3/76140+sigma*m*u*a/3600); %计算加速行驶所需功率
n =u*it/(0.377*R); %计算发动机转速
b = interp2(pe1 ,ne1 ,be1 ,pe ,n); %差值得到燃油消耗率
Qt(i) = (pe *b)/367.1/midu/g/1000; %计算加速工况百公里燃油消耗量
end %循环结束
deltat =1/3.6/a; %计算每一段的加速时间
Qa =0; %将总燃油消耗量赋值为0
for j=1:x-1 %循环语句
Qa=Qa+Qt(j)*deltat; %计算总的燃油消耗量
end %循环结束
Qa=Qa+(Qt(1)+Qt(x))/2*deltat; %计算总的燃油消耗量
end %循环结束
3. 减速部分燃油消耗量计算
function[Qd] = jiansu(a,u2,u3)
Qi=1.5; %单位时间怠速燃油消耗量
t=(u2-u3)/3.6/a/3600; % 计算减速时间
Qd=Qi*t; %减速工况百公里燃油消耗量
end %循环结束
4.主程序
%计算城市部分等速行驶工况燃油消耗量和行驶阻力
Qs1=yunsu(15,8)+yunsu(32,24)+yunsu(35,13)+yunsu(50,12);
Ss1=(15*8+32*24+35*13+50*12)/3.6/1000;
%计算市郊部分等速行驶工况燃油消耗量和行驶阻力
Qs2=yunsu(70,50)+yunsu(50,69)+yunsu(70,50)+yunsu(100,30)+yunsu(120,10);
Ss2=(70*50+50*69+70*50+100*30+120*10)/3.6/1000;
%计算城市部分加速行驶工况燃油消耗量和行驶阻力
Qa1=jiasu(1.04,0,15)+jiasu(0.83,0,15)+jiasu(0.94,15,32)+jiasu(0.83,0,15)+jiasu(0.62,15,35)+jiasu(0.52,35,50);
Sa1=(15^2/1.04+15^2/0.83*2+(32^2-15^2)/0.94+(35^2-15^2)/0.62+(50^2-35^2)/0.52)/25.92/1000;
%计算市郊部分加速行驶工况燃油消耗量和行驶阻力
Qa2=jiasu(0.83,0,15)+jiasu(0.62,15,35)+jiasu(0.52,35,50)+jiasu(0.43,50,70)+jiasu(0.43,50,70)+jiasu(0.27,70,100)+jiasu(0.28,100,120);
Sa2=(15^2/0.83+(35^2-15^2)/0.62+(50^2-35^2)/0.52+(70^2-50^2)/0.43*2+(100^2-70^2)/0.27+(120^2-100^2)/0.28)/25.92/1000;
%计算城市部分减速行驶工况燃油消耗量和行驶阻力
Qd1=jiansu(0.69,15,10)+jiansu(0.92,10,0)+jiansu(0.75,32,10)+jiansu(0.92,10,0)+jiansu(0.52,50,35)+jiansu(0.86,35,10)+jiansu(0.92,10,0);
Sd1=((15^2-10^2)/0.69+10^2/0.92+(32^2-10^2)/0.75+10^2/0.92+(50^2-35^2)/0.52+(35^2-10^2)/0.86+(10^2)/0.92)/25.92/1000;
%计算市郊部分减速行驶工况燃油消耗量和行驶阻力
Qd2=jiansu(0.69,70,50)+jiansu(0.69,120,80)+jiansu(1.04,80,50)+jiansu(1.39,50,0);
Sd2=((70^2-50^2)/0.69+(120^2-80^2)/0.69+(80^2-50^2)/1.04+50^2/1.39)/25.92/1000;
Qi=3;
Qid1=Qi*60/3600;%怠速工况单位时间燃油消耗计算城市部分怠速工况燃油消耗量
Qid2=Qi*40/3600;%怠速工况单位时间燃油消耗计算市郊部分怠速工况燃油消耗量
S1=4*(Ss1+Sa1+Sd1); %市区部分行驶距离
Q1=4*(Qs1+Qa1+Qd1+Qid1)/S1*100; %市区部分平均燃油消耗量
S2=Ss2+Sa2+Sd2; %市郊部分行驶距离
Q2=(Qs2+Qa2+Qd2+Qid2)/S2*100;%市郊部分平均燃油消耗量
s=S1/(S1+S2); %计算市区行驶距离比例
Q=Q1*s+Q2*(1-s); %计算综合燃油消耗量
fprintf('汽车综合工况燃油消耗量: %.2f L/100km\n',Q); %输出汽车综合工况油耗
fprintf('汽车市区工况燃油消耗量: %.2f L/100km\n',Q1);%输出汽车市区工况油耗
fprintf('汽车市郊工况燃油消耗量: %.2f L/100km\n',Q2);%输出汽车市郊工况油耗
运行结果如图所示:
关于NEDC工况请见其他部分介绍,关于燃油消耗请参考汽车理论教材