汽车动力性计算matlab程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%% 汽车动力性计算(自己编的动力性计算程序,供大家计算动力性时参考,具体参数大家根据所
给程序对应输入,并对坐标轴数值按需要进行修改)
clc; clear;
close all;
%%根据所给发动机数据拟合外特性曲线(发动机数据按照你所得到的数据进行输入)
n_test=[500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200];
T_test=[975 1108 1298 1496 1546 1620 1670 1785 1974 1974 1970 1889 1829 1748 1669 1700 1524 1105];
figure(1)
plot(n_test,T_test,'g');
hold on
grid on
%p=polyfit(n_test,T_test,7);
p=polyfit(n_test,T_test,2);
n=[450:1:2200];
Ttq=polyval(p,n);
plot(n,Ttq,'k');
xlabel('发动机转速n(r/min)');
ylabel('发动机转矩Ttq(N*m)');
title('发动机转矩曲线');
legend('测试曲线','拟合曲线');
%%所给车型动力总成相关参数
ig=[3.07 2.16 1.48 1.0 0.82];
i0=4.0; eta=0.78; r=0.57; M=25000; g=9.8; c=1.5; f0=0.01; f1=0.0002; f4=0.0005; CD=1;
A=8;Iw=3.6;If=0.04;
%% 发动机外特性曲线图
figure(2)
hold on
grid on
for i=length(n);
Pe=Ttq.*n/9550;
end
[AX,H1,H2]=plotyy(n,Ttq,n,Pe);
xlabel('发动机转速n(r/min)');
ylabel('发动机转矩Ttq(N*m)');
ylabel(AX(2),'发动机功率Pe(Kw)');
title('发动机外特性曲线');
%% 各挡位速度曲线
%计算各挡位车速
for i=1:length(ig);
ua(i,:)=0.377*r*n/ig(i)/i0;
end
%计算各档位最高车速
uamax=ua(:,length(ua(1,:)));
figure(3)
hold on
plot(n,ua(i,:),'k');
end
hold on
grid on
xlabel('转速n(r/min)');
ylabel('各挡位车速(km/h)');
title('各挡位车速-转速表');
legend('1挡车速','2挡车速','3挡车速','4挡车速','5挡车速'); %% 驱动力和行驶阻力平衡图
%计算滚动阻力系数
for i=1:length(ig);
f(i,:)=f0+f1*(ua(i,:)/100)+f4*(ua(i,:)/100).^4;
end
%计算滚动阻力
for i=1:length(ig);
Ff(i,:)=c*M*g*f(i,:);
end
%计算空气阻力
for i=1:length(ig);
Fw(i,:)=CD*A*(ua(i,:).^2)/21.15;
end
%计算行驶阻力
F(i,:)=Ff(i,:)+Fw(i,:);
end
%计算汽车驱动力
for i=1:length(ig);
Ft(i,:)=Ttq*ig(i)*i0*eta/r;
end
figure(4)
hold on
for i=1:length(ig);
plot(ua(i,:), Ft(i,:),'k');
plot(ua(i,:), F(i,:),'r');
plot(ua(i,:), Ff(i,:),'b');
end
hold on
grid on
xlabel('车速(km/h)');
ylabel('驱动力、行驶阻力(N)');
legend('驱动力Ft','行驶阻力Ff+Fw','滚动阻力Ff'); title('驱动力-行驶阻力平衡图');
%% 汽车功率平衡图
%计算各档位功率
for i=1:length(ig);
P(i,:)=Ft(i,:).*ua(i,:)/(3600*eta);
end
%计算风阻阻力功率
for i=1:length(ig);
Pw(i,:)=CD*A*ua(i,:).^3/(76140*eta); end
%计算滚动阻力功率
for i=1:length(ig);
Pf(i,:)=M*g*f(i,:).*ua(i,:)/(3600*eta); end
%计算总阻力功率
for i=1:length(ig);
Pz(i,:)=Pw(i,:)+Pf(i,:);
end
figure(5)
hold on
for i=1:length(ig);
plot(ua(i,:), P(i,:),'k');
plot(ua(i,:), Pz(i,:),'r');
end
hold on
grid on
xlabel('车速(km/h)');