很常规的汽车燃油经济性理论知识
以及相对应理论知识在MATLAB中的仿真实现
对感兴趣的初学者很有用
(一般初学者最开始接触的是汽车动力性能仿真)
其次就是燃料经济性的建模仿真
包括之后的制动性、操纵稳定性、平顺性、先进驾驶辅助系统等建模与仿真
以及MATLAB各建模仿真对应在Simulink中模块搭建实现仿真
理论→MATLAB编程仿真→Simulink建模仿真→程序设计开发
难度会层层递进
以下是基础
目录
一、汽车等速行驶工况的燃料消耗量
汽车在水平路面等速行驶时,发动机功率等于滚动阻力功率和空气阻力功率之和,即:
其中,发动机转速为:
由上述关系公式可以绘制出发动机万有特性曲线,再根据该万有特性曲线,利用二维插值法可以确定发动机的燃料消耗率b。即:
——转速
——发动机转矩
从而计算出等速行驶时单位时间内的燃料消耗量为:
——燃料的密度
等速行驶S行程的燃料消耗量Q为:
↓↓↓↓↓
(折算成等速行驶工况百公里燃料消耗量)
汽车等速行驶工况的行驶距离
为:
仿真代码function子函数:
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; %汽车参数赋值
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.1 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=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=tp1.*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
二、汽车加速行驶工况的燃料消耗量
汽车加速行驶时,发动机需要克服滚动阻力、空气阻力和加速阻力所消耗的功率,即:
汽车加速行驶的燃料消耗量可以看成是由若干个等速行驶工况燃料消耗量的累加而成。如上图所示,从时间到
(
、
、
、...、
)的每个区间的燃料消耗量可以根据平均的单位时间燃料消耗量与行驶时间之积来求得。即各区间起始或终了的速度所对应时刻的单位时间燃料消耗量可由等速百公里燃料消耗量计算公式求得。
汽车行驶速度每增加1km/h所需要的时间为:
汽车从初速度加速至
+1的燃料消耗量
为:
同理可求得其他区间的燃料消耗量。则汽车整个加速工况的燃料消耗量消耗量为:
汽车加速工况的行驶距离为:
仿真代码function子函数:
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; %汽车参数赋值
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.1 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=regress(be,X); %多元线性回归函数
ne1=linspace(0,3000,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; %以1等间隔划分
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.711*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; %将Qa赋值为0
for j=2:x-1 %循环开始
Qa=Qa+Qt(j)*deltat; %计算总燃料消耗量
end %循环结束
Qa=Qa+(Qt(1)+Qt(x))/2*deltat; %计算总燃料消耗量
end
三、汽车减速行驶工况的燃料消耗量
减速工况燃料消耗量等于减速行驶时间与怠速油耗率的乘积(由于汽车减速行驶时,油门松开关闭至最小位置并进行轻微制动,发动机处于强制怠速状态,则燃料消耗量为正常怠速油耗)。
减速时间为:
——减速起始速度
——减速终了速度
汽车减速行驶工况的燃料消耗量为:
——怠速时燃料消耗功率
汽车减速工况的行驶距离为:
仿真代码function子函数:
function Qd=jiansu(a,u2,u3 )
Qi=1.5; %单位时间怠速燃料消耗率
t=(u2-u3)/3.6/a/3600; %计算减速时间
Qd=Qi*t; %减速工况百公里燃料消耗量
end
四、汽车怠速停车时的燃料消耗量
——怠速停车的燃料消耗量
——怠速时燃料消耗功率
——怠速停车时间
仿真代码function子函数:
function Qid=daisu(ts)
Qi=1.5; %单位时间怠速燃料消耗功率
Qid=Qi*ts; %怠速停车燃料消耗量
end
五、汽车循环行驶工况的百公里燃料消耗量
若循环行驶工况为上述四种行驶工况组合的情况,则百公里燃料消耗量为:
仿真代码主函数(没有考虑怠速停车时):
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('汽车综合工况燃料消耗量:%f\n',Q) %输出汽车综合工况油耗
fprintf('市区工况燃料消耗量:%f\n',Q1) %输出市区工况油耗
fprintf('市郊工况燃料消耗量:%f\n',Q2) %输出市郊工况油耗
得到如下仿真结果:
汽车综合工况燃料消耗量 | 8.698834 |
市区工况燃料消耗量 | 12.668478 |
市郊工况燃料消耗量 | 6.431331 |
完成上述仿真需要汽车燃料经济性相关参数,另外还需要汽车循环行驶工况中各工况的行驶速度和对应速度的行驶时间。