matlab计算汽车动力性经济性(已编好程序)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

axis([0 270 0 300]); %% 动力特性图(动力因数图) 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('动力特性图'); axis([0 270 0 0.6]); %% 爬坡度曲线图 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('爬坡度曲线图'); axis([0 270 0 50]); %% 加速度曲线图 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)
if a(i,j)<0 a(i,j)=0; else end end end end figure(8) hold on for i=1:length(ig); if i==1 plot(ua(i,:),a(i,:),'r'); else plot(ua(i,:),a(i,:),'k'); end end hold on grid on xlabel('车速(km/h)'); ylabel('加速度a(m/s^2)'); legend('Ⅰ档','高速档'); title('加速度曲线图'); axis([0 270 0 4.5]) %% 加速度倒数曲线 for i=1:length(ig); for j=1:length(n) b(i,j)=1./a(i,j); end end figure(9) hold on for i=1:length(ig) plot(ua(i,:),b(i,:),'k'); end hold on grid on xlabel('车速(km/h)'); ylabel('各档加速度倒数1/a'); legend('各档加速度倒数1/a曲线','Location','NorthWest'); title('各档加速度倒数曲线图'); axis([0 160 0 6]) ad1=b(1,:); ad2=ua(1,:); for i=1:(length(ig)-1);
[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挡车速'); axis([1000 5000 0 270]); %% 驱动力和行驶阻力平衡图 %计算滚动阻力系数 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;
%% 汽车动力性计算(自己编的动力性计算程序,供大家计算动力性时参考,具体参数大家 根据所给程序对应输入,并对坐标轴数值按需要进行修改) clc; clear; close all; %%根据所给发动机数据拟合外特性曲线(发动机数据按照你所得到的数据进行输入) n_test=[1000 1200 1400 1800 2200 2400 2600 2800 3000 3200 3400 3600 3800 4000 4200 4400 4600 5000]; T_test=[201 206 216 218 221 221 227 228 235 246 228 227 223 215 210 208 205 109]; figure(1) plot(n_test,T_test,'g'); hold on grid on p=polyfit(n_test,T_test,7); n=[1000:1:5000]; Ttq=polyval(p,n); plot(n,Ttq,'k'); xlabel('发动机转速n(r/min)'); ylabel('发动机转矩Ttq(N*m)'); title('发动机转矩曲线'); legend('测试曲线','拟合曲线'); axis([1000 5000 100 300]); %%所给车型动力总成相关参数 ig=[4.148 2.37 1.556 1.115 0.859 0.686]; i0=3.394; eta=0.9; r=0.307; M=1700; g=9.8; c=1.2; f0=0.009; f1=0.00018; f4=0.0003; CD=0.3; A=2.54; Iw=3.0; If=0.04; %% 发动机外特性曲线图 figure(2) hold on grid on for i=length(n); Pe=Ttq.*n/9550; end
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('驱动力-行驶阻力平衡图'); axis([0 270 0 5000]); %% 汽车功率平衡图 %计算各档位功率 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 j=1:length(n) if ua(i+1,j)>=ua(i,length(n)) flag(i)=j; break; end end ad1=[ad1 b(i+1,j:length(n))]; ad2=[ad2 ua(i+1,j:length(n))]; end figure(10) hold on plot(ad2,ad1,'k'); hold on grid on xlabel('车速(km/h)'); ylabel('加速度倒数1/a'); legend('加速度倒数1/a曲线','Location','NorthWest'); title('加速度倒数曲线图'); axis([0 160 0 6]) %% 加速时间曲线 k=length(n); for i=1:length(ig); t(i,1)=0; for j=2:k t(i,j)=abs(ua(i,j)-ua(i,j-1))*(b(i,j)+b(i,j-1))/2; end end for i=1:length(ig); for j=1:k at(i,j)=sum(t(i,1:j))/3.6; end end totalat=at(1,:); for i=1:(length(ig)-1); for j=flag(i):k totalat=[totalat totalat(length(totalat))+t(i+1,j)/3.6]; end end figure(11) hold on plot(totalat,ad2,'k'); hold on grid on xlabel('时间(s)');
ylabe9;加速时间','Location','NorthWest'); title('加速时间曲线图'); axis([0 50 0 150])
相关文档
最新文档