mathlab汽车动力匹配程序.docx
《mathlab汽车动力匹配程序.docx》由会员分享,可在线阅读,更多相关《mathlab汽车动力匹配程序.docx(19页珍藏版)》请在冰豆网上搜索。
mathlab汽车动力匹配程序
附:
计算使用的MATLAB程序代码及其含义
%不同i0对应车速为40、50、60时的发动机转数
clear
clc
closeall
r=0.4275;%车轮半径
u0=[405060];%速度
i0=[4.224.684.885.015.285.48];%主减速比
n=(i0'*u0)/(0.377*r);%对应发动机转数
n
%加速燃油消耗率
clear
clc
closeall
yita=0.89;G=9160*9.8;f=0.02;CDA=4.64;a=0.1704;Iw1=1.798;Iw2=3.598;r=0.4275;
m=9160;If=0.218;ig=1;i0=[4.22,4.68,4.88,5.01,5.28,5.48];
forx=1:
1:
6
n=1000:
100:
2800;%等距取数
ua5=(0.377*r.*n)/i0(x);%求转数对应车速
F5=f*G+CDA*(ua5.^2)/21.15;%求阻力
P_fw5=F5.*ua5./(yita*3.6*1000);%阻力功率
ua0=50:
1:
60;%50到60公里加速
ua1=50:
1:
60;
delta=1+(Iw1+Iw2)/(m*r^2)+(If*ig^2*i0(x)^2*yita)/(m*r^2);
%求旋转质量换算系数
P0=(G*f.*ua0./3600+CDA.*ua0.^3/76140+(delta*m.*ua0/3600)*a)/yita;
%初速度为ua0时的阻力功率
P=(G*f.*ua1/3600+CDA.*ua1.^3/76140+(delta*m.*ua1/3600)*a)/yita;
%末速度为ua1时的阻力功率
b1=0.0133.*P.^2-2.0715.*P+287.47;%燃油消耗率
Qt=P.*b1./(367.1.*8);%燃油消耗
i1=size(Qt);%求Qt向量长度
i=i1
(2);
Qt1=Qt(2:
i-1);
dt=1/(3.6*a);%速度每增加1km/h所需要的时间
q=(Qt
(1)+Qt(i))*dt./2+sum(Qt1)*dt;%加速段燃油消耗量
q
end
%减速油耗
clear
clc
closeall
ua1=60;ua2=40;a=0.2584;Qi=191;
Q=(8*Qi)/(367.1*8);%计算怠速燃油消耗
Qd=((ua1-ua2)*Q)/(3.6*a);%减速燃油消耗
Qd
%六工况油耗
clear
clc
closeall
Q=[237.1422238.6344241.21566241.6732244.3986246.7512];
Qs=(Q./(125+175+1000))*100%六工况燃油消耗量
clear
clc
closeall
n1=linspace(0,50000);%先求各个档位的驱动力
nmax=2800;nmin=1000;r=0.4275;yita=0.89;CDA=4,64;f=0.02;G=(9160)*9.8;ig=[8.69,5.01,2.91,1.7,1.00];i0=5.01;
fori=1:
1:
5%i为档数
uamax(i)=chesu(nmax,r,ig(i),i0);%计算各个档位的最大速度与最小速度
uamin(i)=chesu(nmin,r,ig(i),i0);
ua(i,:
)=linspace(uamin(i),uamax(i),30);
n(i,:
)=zhuansu(ua(i,:
),r,ig(i),i0);%计算各个档位的转速范围
Ttq(i,:
)=zhuanju(n(i,:
));%求出各档位的转矩范围
Ft(i,:
)=qudongli(Ttq(i,:
),ig(i),i0,yita,r);%求出驱动力
F(i,:
)=f*G+CDA*(ua(i,:
).^2)/21.15;%求出滚动阻力和空气阻力的和
delta(i,:
)=1+(1.798+3.598+0.218*(ig(i)^2)*(i0^2)*yita)/(9160*r^2);%转动质量换算系数
a(i,:
)=1./(delta(i,:
).*14000./(Ft(i,:
)-F(i,:
)));%求出加速度
c=1./a(i,:
);
plot(ua,c);
title('加速度倒数曲线');
xlabel('ua');%x轴名称
ylabel('1/a');%y轴名称
F2(i,:
)=Ft(i,:
)-F(i,:
);
end
temp1(1,:
)=ua(2,:
)/3.6;%下面分各个档位进行积分,求出加速时间
temp1(2,:
)=1./a(2,:
);
n1=1;
forj1=1:
1:
30
ifua(3,j1)>max(ua(2,:
))&&ua(3,j1)<=90
temp2(1,n1)=ua(3,j1)/3.6;
temp2(2,n1)=1./a(3,j1);
n1=n1+1;
end
end
n2=1;
forj1=1:
1:
30
ifua(4,j1)>max(ua(3,:
))&&ua(4,j1)<=90;
temp3(1,n2)=ua(4,j1)/3.6;
temp3(2,n2)=1./a(4,j1);
n2=n2+1;
end
end
n3=1;
forj1=1:
1:
30
ifua(5,j1)>max(ua(4,:
))&&ua(5,j1)<=90;
temp4(1,n3)=ua(5,j1)/3.6;
temp4(2,n3)=1./a(5,j1);
n3=n3+1;
end
end
y=temp1(1,1)*temp1(2,1)+qiuji(temp1(1,:
),temp1(2,:
))+qiuji(temp2(1,:
),temp2(2,:
))+qiuji(temp3(1,:
),temp3(2,:
))+qiuji(temp4(1,:
),temp4(2,:
));
y
gtext('ig1'),gtext('ig2'),gtext('ig3');gtext('ig4');gtext('ig5');
functionua=chesu(n,r,ig,i0);%由转速计算车速
ua=0.377*r.*n/(ig*i0);
functionn=zhuansu(ua,r,ig,i0);%求转速
n=ig*i0.*ua./(0.377*r);
end
functiony=zhuanju(n);%求转矩函数
y=-6.4e-5*n.^2+0.2453*n+139.69;
functiony=qudongli(Ttq,ig,i0,yita,r);%求驱动力函数
y=(ig*i0*yita.*Ttq)/r;
end
%C曲线
clear
clc
closeall
b=[18.241718.590218.799918.9809];%燃油消耗
t=[36.184833.897932.015428.4538];%加速时间
plot(b,t,'+r')%绘制i0散点图用+表示
holdon;%保持图像
b1=linspace(b
(1),b(4),100);%b1到b4划100点
t1=spline(b,t,b1);%三次样条差值
plot(b1,t1);%绘制c曲线
title('燃油经济性—加速时间曲线');%图表标题
xlabel('百公里油耗(L/100km)');%x轴名称
ylabel('加速时间s');%y轴名称
gtext('i0=4.22'),gtext('i0=5.01'),gtext('i0=5.28');gtext('i0=5.48');
%驱动力图
clear
clc
closeall
m=9160;
uamax=90;%最大车速
imax=0.3;%最大爬坡度
Ttqmax=380;%发动机最大转矩
nPemax=2800;%最大功率转数
d=0.855;%轮胎直径
r=d/2;%轮胎半径
Ttq=[331,341,355,367,375,386,370,351,340,323];%发动机转矩
n=[1000,1200,1400,1600,1800,2000,2200,2400,2600,2800];%发动机转数
io=(0.377*r*2800)/uamax;%最小传动比
afamax=atan(imax);%最大爬坡度角度
aitT=0.89;
g=9.8;
f=0.02;
ig1=8.69;
ig5=1;
ig4=1.7
ig3=2.91;
ig2=5.01;
ua1=(0.377*r*n)/(ig1*io);%一档对应车速
ua2=(0.377*r*n)/(ig2*io);
ua3=(0.377*r*n)/(ig3*io);
ua4=(0.377*r*n)/(ig4*io);
ua5=(0.377*r*n)/(ig5*io);
Ft1=(Ttq*ig1*io*aitT)/(1000*r);%一档对应驱动力
Ft2=(Ttq*ig2*io*aitT)/(1000*r);
Ft3=(Ttq*ig3*io*aitT)/(1000*r);
Ft4=(Ttq*ig4*io*aitT)/(1000*r);
Ft5=(Ttq*ig5*io*aitT)/(1000*r);
figure,plot(ua1,Ft1,ua2,Ft2,ua3,Ft3,ua4,Ft4,ua5,Ft5);
title('驱动力图');
xlabel('车速/(km/h)'),ylabel('驱动力(kN)');
gtext('ig1'),gtext('ig2'),gtext('ig3');gtext('ig4');gtext('ig5');
%动力特性图
clear
clc
closeall
Ttq=[331,341,355,367,375,386,370,351,340,323];%发动机转矩
io=5.01;
nt=0.89;%机械效率%
r=0.4275;
g=9.8;
m=9160;
G=m*g;
CDA=4.64;
n=[1000,1200,1400,1600,1800,2000,2200,2400,2600,2800];%发动机转数
ig1=8.69;
ua=0.377*r*n/ig1/io;%1档对应车速
D=(Ttq.*ig1.*io.*nt/r-CDA*ua.*ua/21.15)/G;%求1档动力因数
plot(ua,D);
holdon;
ig2=5.01;
ua=0.377*r*n/ig2/io;
D=(Ttq.*ig2.*io.*nt/r-CDA*ua.*ua/21.15)/G;
plot(ua,D);
holdon;
ig3=2.91;
ua=0.377*r*n/ig3/io;
D=(Ttq.*ig3.*io.*nt/r-CDA*ua.*ua/21.15)/G;
plot(ua,D);
holdon;
ig4=1.7;
ua=0.377*r*n/ig4/io;
D=(Ttq.*ig4.*io.*nt/r-CDA*ua.*ua/21.15)/G;
plot(ua,D);
ho