汽车动力性计算matlab程序

  • 格式:docx
  • 大小:26.70 KB
  • 文档页数:14

______________________________________________________________________________________________________________

精品资料 %% 汽车动力性计算(自己编的动力性计算程序,供大家计算动力性时参考,具体参数大家根据所给程序对应输入,并对坐标轴数值按需要进行修改)

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

for i=1:length(ig);

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

%计算行驶阻力

for i=1:length(ig);

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)');

ylabel('发动机功率、阻力功率(kW)');

legend('发动机功率P','阻力功率Pz','Location','NorthWest');

title('功率平衡图');

%% 动力特性图(动力因数图) ______________________________________________________________________________________________________________

精品资料 for i=1:length(ig);

D(i,:)= (Ft(i,:)- Fw(i,:))/M/g;

end

figure(6)

hold on

for i=1:length(ig);

plot(ua(i,:), D(i,:),'k');

plot(ua(i,:), f(i,:),'r');

end

hold on

grid on

xlabel('车速(km/h)');

ylabel('动力因数D');

legend('动力因数D','滚动阻力系数f');

title('动力特性图');

%% 爬坡度曲线图

for i=1:length(ig);

I(i,:)= (tan(asin((Ft(i,:)-(Ff(i,:)+Fw(i,:)))/(M*g))))*100;

end

figure(7) ______________________________________________________________________________________________________________

精品资料 hold on

for i=1:length(ig);

if i==1

plot(ua(i,:),I(i,:),'r');

else

plot(ua(i,:),I(i,:),'k');

end

end

hold on

grid on

xlabel('车速(km/h)');

ylabel('最大爬坡度(%)');

legend('Ⅰ挡','高速档');

title('爬坡度曲线图');

%% 加速度曲线图

deta=1+1/M*4*Iw/r^2+1/M*If*ig.^2*i0^2*eta/r^2;

for i=1:length(ig);

a(i,:)=(Ft(i,:)-Ff(i,:)-Fw(i,:))./deta(i)/M;

if i==5

for j=1:length(n)