汽车燃油经济性仿真

汽车燃油经济性是指汽车在一定行驶条件下,以最小的燃油消耗量完成一定行驶里程的能力,汽车燃油经济性评价指标主要有等速百公里燃油消耗量和汽车综合燃油消耗量,其中汽车综合燃油消耗量又包括市区工况燃油消耗量和市郊工况燃油消耗量。

主要任务:

1.建立汽车燃油经济性数学模型。

2.预测汽车等速百公里燃油消耗量。

3.采用ABC工况预测汽车燃油消耗量。

汽车燃油经济性仿真所需参数见表3-1。

汽车质量/kg滚动阻力系数空气阻力系数迎风面积/m^2滚动半径/m
24700.0120.422.70.358
旋转质量换算系数传动效率主减速器传动比变速器各档传动比
1.10.954.14.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工况请见其他部分介绍,关于燃油消耗请参考汽车理论教材

 

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值