📄 cvpowerprocessor.m
字号:
Ft=Tq*ig(k)*i0*nt/r; plot(Ua,Ft,'b') fFt=inline('-(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*ig*i0*nt/r','n','ig','i0','nt','r'); [nFtmax,Ftmax]=fminbnd(fFt,min(n),max(n),[],ig(k),i0,nt,r); text(0.377*r*nFtmax/(ig(k)*i0),-Ftmax,['Ft(',num2str(k),')_{max}=',num2str(-Ftmax),'N'],'Fontsize',8) hold on Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; plot(Ua,F,'r') hold on end pPe=inline('-(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4).*n/9550'); [nPemax,Pemax]=fminbnd(pPe,min(n),max(n)); igmax=ig(ignum); FUamax=inline('(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*igmax*i0*nt/r-CD*A*(0.377*r*n/(igmax*i0))^2/21.15-m*9.8*f'... ,'n','igmax','i0','nt','r','CD','A','m','f'); [nUamax,F0,exitflag]=fzero(FUamax,nPemax,[],igmax,i0,nt,r,CD,A,m,f); if exitflag<0 | nUamax>max(n) nUamax=nPemax; end Uamax=0.377*r*nUamax/(ig(ignum)*i0); text(Uamax,(-19.313+295.27.*nUamax/1000-165.44.*(nUamax/1000).^2+40.874.*(nUamax/1000).^3-3.8445.*(nUamax/1000).^4)*ig(ignum)*i0*nt/r,['Ua_{max}=',num2str(Uamax),'km/h'],'Fontsize',8) text(Uamax-20,(-19.313+295.27.*nUamax/1000-165.44.*(nUamax/1000).^2+40.874.*(nUamax/1000).^3-3.8445.*(nUamax/1000).^4)*ig(ignum)*i0*nt/r-500,'Ff+Fw','Fontsize',8) title('汽车驱动力--行驶阻力平衡图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('Ft(N)','Fontsize',10) igmin=ig(1); fFtmax=inline('-(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*igmin*i0*nt/r','n','igmin','i0','nt','r'); [UaFtmax1,Ftmax1]=fminbnd(fFtmax,min(n),max(n),[],igmin,i0,nt,r); axis([0 Uamax+30 0 -Ftmax1+1000]) hold off else if get1==0&get2==1 for k=1:ignum Ua=0.377*r*n/(ig(k)*i0); Ft=Tq*ig(k)*i0*nt/r; plot(Ua,Ft,'b') fFt=inline('-polyval(coeff,n)*ig*i0*nt/r','n','coeff','ig','i0','nt','r'); [nFtmax,Ftmax]=fminbnd(fFt,min(n),max(n),[],coeff,ig(k),i0,nt,r); text(0.377*r*nFtmax/(ig(k)*i0),-Ftmax,['Ft(',num2str(k),')_{max}=',num2str(-Ftmax),'N'],'Fontsize',8) hold on Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; plot(Ua,F,'r') hold on end pPe=inline('-polyval(coeff,n).*n/9550','n','coeff'); [nPemax,Pemax]=fminbnd(pPe,min(n),max(n),[],coeff); igmax=ig(ignum); FUamax=inline('polyval(coeff,n)*igmax*i0*nt/r-CD*A*(0.377*r*n/(igmax*i0))^2/21.15-m*9.8*f'... ,'n','coeff','igmax','i0','nt','r','CD','A','m','f'); [nUamax,F0,exitflag]=fzero(FUamax,nPemax,[],coeff,igmax,i0,nt,r,CD,A,m,f); if exitflag<0 | nUamax>max(n) nUamax=nPemax; end Uamax=0.377*r*nUamax/(ig(ignum)*i0); text(Uamax,polyval(coeff,nUamax)*ig(ignum)*i0*nt/r,['Ua_{max}=',num2str(Uamax),'km/h'],'Fontsize',8) text(Uamax-20,polyval(coeff,nUamax)*ig(ignum)*i0*nt/r-500,'Ff+Fw','Fontsize',8) title('汽车驱动力--行驶阻力平衡图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('Ft(N)','Fontsize',10) igmin=ig(1); fFtmax=inline('-polyval(coeff,n)*igmin*i0*nt/r','n','coeff','igmin','i0','nt','r'); [UaFtmax1,Ftmax1]=fminbnd(fFtmax,min(n),max(n),[],coeff,igmin,i0,nt,r); axis([0 Uamax+100 0 -Ftmax1+1000]) hold off end end case 3, if get1==1&get2==0 for l=1:ignum Ua=0.377*r*n/(ig(l)*i0); Ft=Tq*ig(l)*i0*nt/r; Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; deta=1+Iw/(m*r^2)+If*i0^2*nt*ig(l).^2/(m*r^2); Fa=(Ft-F)/m; a=Fa/deta; plot(Ua,a) na=inline('-(((-19.313+295.27.*(n/1000)-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*ig*i0*nt/r-CD*A*(0.377*r*n/(ig*i0))^2/21.15-m*9.8*f)/m/(1+Iw/(m*r^2)+If*i0^2*nt*ig^2/(m*r^2)))'... ,'n','ig','i0','nt','r','CD','A','m','f','Iw','If'); [Uaamax,amax]=fminbnd(na,min(n),max(n),[],ig(l),i0,nt,r,CD,A,m,f,Iw,If); text(0.377*r*Uaamax/(ig(l)*i0),-amax,['a(',num2str(l),')_{max}=',num2str(-amax),'m/s^2'],'Fontsize',8) hold on end title('汽车行驶加速度曲线','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('a(m/s^2)','Fontsize',10) igmin=ig(1); namax=inline('-(((-19.313+295.27.*(n/1000)-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*igmin*i0*nt/r-CD*A*(0.377*r*n/(igmin*i0))^2/21.15-m*9.8*f)/m/(1+Iw/(m*r^2)+If*i0^2*nt*igmin^2/(m*r^2)))'... ,'n','igmin','i0','nt','r','CD','A','m','f','Iw','If'); [Uaamax1,amax1]=fminbnd(namax,min(n),max(n),[],igmin,i0,nt,r,CD,A,m,f,Iw,If); Uaamax2=0.377*r*Uaamax1/(ig(ignum)*i0); axis([0 Uaamax2+60 0 -amax1+1]) hold off else if get1==0&get2==1 for l=1:ignum Ua=0.377*r*n/(ig(l)*i0); Ft=Tq*ig(l)*i0*nt/r; Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; deta=1+Iw/(m*r^2)+If*i0^2*nt*ig(l).^2/(m*r^2); Fa=(Ft-F)/m; a=Fa/deta; plot(Ua,a) na=inline('-((polyval(coeff,n)*ig*i0*nt/r-CD*A*(0.377*r*n/(ig*i0))^2/21.15-m*9.8*f)/m/(1+Iw/(m*r^2)+If*i0^2*nt*ig^2/(m*r^2)))'... ,'n','coeff','ig','i0','nt','r','CD','A','m','f','Iw','If'); [Uaamax,amax]=fminbnd(na,min(n),max(n),[],coeff,ig(l),i0,nt,r,CD,A,m,f,Iw,If); text(0.377*r*Uaamax/(ig(l)*i0),-amax,['a(',num2str(l),')_{max}=',num2str(-amax),'m/s^2'],'Fontsize',8) hold on end title('汽车行驶加速度曲线','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('a(m/s^2)','Fontsize',10) igmin=ig(1); namax=inline('-((polyval(coeff,n)*igmin*i0*nt/r-CD*A*(0.377*r*n/(igmin*i0))^2/21.15-m*9.8*f)/m/(1+Iw/(m*r^2)+If*i0^2*nt*igmin^2/(m*r^2)))'... ,'n','coeff','igmin','i0','nt','r','CD','A','m','f','Iw','If'); [Uaamax1,amax1]=fminbnd(namax,min(n),max(n),[],coeff,igmin,i0,nt,r,CD,A,m,f,Iw,If); Uaamax2=0.377*r*Uaamax1/(ig(ignum)*i0); axis([0 Uaamax2+60 0 -amax1+1]) hold off end endcase 4, if get1==1&get2==0 for kk=1:ignum Ua=0.377*r*n/(ig(kk)*i0); Ft=Tq*ig(kk)*i0*nt/r; Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; i=tan(asin((Ft-F)/(m*9.8)))*100; plot(Ua,i) ni=inline('-(tan(asin(((-19.313+295.27.*(n/1000)-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*ig*i0*nt/r-CD*A*(0.377*r*n/(ig*i0))^2/21.15-m*9.8*f)/(m*9.8)))*100)'... ,'n','ig','i0','nt','r','CD','A','m','f'); [Uaimax,imax]=fminbnd(ni,min(n),max(n),[],ig(kk),i0,nt,r,CD,A,m,f); text(0.377*r*Uaimax/(ig(kk)*i0),-imax,['i(',num2str(kk),')_{max}=',num2str(-imax),'%'],'Fontsize',8) hold on end title('汽车爬坡度图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('i(%)','Fontsize',10) igmin=ig(1); nimax=inline('-(tan(asin(((-19.313+295.27.*(n/1000)-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*igmin*i0*nt/r-CD*A*(0.377*r*n/(igmin*i0))^2/21.15-m*9.8*f)/(m*9.8)))*100)'... ,'n','igmin','i0','nt','r','CD','A','m','f'); [Uaimax1,imax1]=fminbnd(nimax,min(n),max(n),[],igmin,i0,nt,r,CD,A,m,f); Uaimax2=0.377*r*Uaimax1/(ig(ignum)*i0); axis([0 Uaimax2+60 0 -imax1+10]) hold off else if get1==0&get2==1 for kk=1:ignum Ua=0.377*r*n/(ig(kk)*i0); Ft=Tq*ig(kk)*i0*nt/r; Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; i=tan(asin((Ft-F)/(m*9.8)))*100; plot(Ua,i) ni=inline('-(tan(asin((polyval(coeff,n)*ig*i0*nt/r-CD*A*(0.377*r*n/(ig*i0))^2/21.15-m*9.8*f)/(m*9.8)))*100)'... ,'n','coeff','ig','i0','nt','r','CD','A','m','f'); [Uaimax,imax]=fminbnd(ni,min(n),max(n),[],coeff,ig(kk),i0,nt,r,CD,A,m,f); text(0.377*r*Uaimax/(ig(kk)*i0),-imax,['i(',num2str(kk),')_{max}=',num2str(-imax),'%'],'Fontsize',8) hold on end title('汽车爬坡度图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('i(%)','Fontsize',10) igmin=ig(1); nimax=inline('-(tan(asin((polyval(coeff,n)*igmin*i0*nt/r-CD*A*(0.377*r*n/(igmin*i0))^2/21.15-m*9.8*f)/(m*9.8)))*100)'... ,'n','coeff','igmin','i0','nt','r','CD','A','m','f'); [Uaimax1,imax1]=fminbnd(nimax,min(n),max(n),[],coeff,igmin,i0,nt,r,CD,A,m,f); Uaimax2=0.377*r*Uaimax1/(ig(ignum)*i0); axis([0 Uaimax2+60 0 -imax1+10]) hold off end endcase 5, if get1==1&get2==0 for ll=1:ignum Ua=0.377*r*n/(ig(ll)*i0); Ft=Tq*ig(ll)*i0*nt/r; Fw=CD*A*Ua.^2/21.15; D=(Ft-Fw)/(m*9.8); plot(Ua,D) nD=inline('-(((-19.313+295.27.*(n/1000)-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*ig*i0*nt/r-CD*A*(0.377*r*n/(ig*i0))^2/21.15)/(m*9.8))'... ,'n','ig','i0','nt','r','CD','A','m'); [UaDmax,Dmax]=fminbnd(nD,min(n),max(n),[],ig(ll),i0,nt,r,CD,A,m); text(0.377*r*UaDmax/(ig(ll)*i0),-Dmax,['D(',num2str(ll),')_{max}=',num2str(-Dmax),],'Fontsize',8) hold on end title('汽车动力特性图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('D','Fontsize',10) igmin=ig(1); nDmax=inline('-(((-19.313+295.27.*(n/1000)-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*igmin*i0*nt/r-CD*A*(0.377*r*n/(igmin*i0))^2/21.15)/(m*9.8))'... ,'n','igmin','i0','nt','r','CD','A','m'); [UaDmax1,Dmax1]=fminbnd(nDmax,min(n),max(n),[],igmin,i0,nt,r,CD,A,m); UaDmax2=0.377*r*UaDmax1/(ig(ignum)*i0); axis([0 UaDmax2+60 0 -Dmax1+0.1]) hold off else if get1==0&get2==1 for ll=1:ignum Ua=0.377*r*n/(ig(ll)*i0); Ft=Tq*ig(ll)*i0*nt/r; Fw=CD*A*Ua.^2/21.15; D=(Ft-Fw)/(m*9.8); plot(Ua,D) nD=inline('-((polyval(coeff,n)*ig*i0*nt/r-CD*A*(0.377*r*n/(ig*i0))^2/21.15)/(m*9.8))'... ,'n','coeff','ig','i0','nt','r','CD','A','m'); [UaDmax,Dmax]=fminbnd(nD,min(n),max(n),[],coeff,ig(ll),i0,nt,r,CD,A,m); text(0.377*r*UaDmax/(ig(ll)*i0),-Dmax,['D(',num2str(ll),')_{max}=',num2str(-Dmax),],'Fontsize',8) hold on end title('汽车动力特性图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('D','Fontsize',10) igmin=ig(1); nDmax=inline('-((polyval(coeff,n)*igmin*i0*nt/r-CD*A*(0.377*r*n/(igmin*i0))^2/21.15)/(m*9.8))'... ,'n','coeff','igmin','i0','nt','r','CD','A','m'); [UaDmax1,Dmax1]=fminbnd(nDmax,min(n),max(n),[],coeff,igmin,i0,nt,r,CD,A,m); UaDmax2=0.377*r*UaDmax1/(ig(ignum)*i0); axis([0 UaDmax2+60 0 -Dmax1+0.1]) hold off end endcase 6, if get1==1&get2==0 for kkk=1:ignum Ua=0.377*r*n/(ig(kkk)*i0); Ft=Tq*ig(kkk)*i0*nt/r; Pe=Tq.*n/9550; plot(Ua,Pe,'b') hold on Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; Pe1=F.*Ua/(nt*3600); plot(Ua,Pe1,'r') end pPe=inline('-(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4).*n/9550'); [nPemax,Pemax]=fminbnd(pPe,min(n),max(n)); text(0.377*r*nPemax/(ig(1)*i0),-Pemax,['Pe_{max}=',num2str(-Pemax),'kw'],'Fontsize',8) pPe=inline('-(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4).*n/9550'); [nPemax,Pemax]=fminbnd(pPe,min(n),max(n)); igmax=ig(ignum); PeUamax=inline('(-19.313+295.27.*n/1000-165.44.*(n/1000).^2+40.874.*(n/1000).^3-3.8445.*(n/1000).^4)*n/9550-(CD*A*(0.377*r*n/(igmax*i0))^2/21.15+m*9.8*f)*(0.377*r*n/(igmax*i0))/3600/nt'... ,'n','igmax','i0','nt','r','CD','A','m','f'); [nUa1max,F01,exitflag1]=fzero(PeUamax,nPemax,[],igmax,i0,nt,r,CD,A,m,f); if exitflag1<0 | nUa1max>max(n) nUa1max=nPemax; end Ua1max=0.377*r*nUa1max/(ig(ignum)*i0); text(Ua1max,(-19.313+295.27.*nUa1max/1000-165.44.*(nUa1max/1000).^2+40.874.*(nUa1max/1000).^3-3.8445.*(nUa1max/1000).^4).*nUa1max/9550,['Ua_{max}=',num2str(Ua1max),'km/h'],'Fontsize',8) text(Ua1max,(-19.313+295.27.*nUa1max/1000-165.44.*(nUa1max/1000).^2+40.874.*(nUa1max/1000).^3-3.8445.*(nUa1max/1000).^4).*nUa1max/9550-10,'(Pf+Pw)/nt','Fontsize',8) title('汽车功率平衡图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('Pe(kw)','Fontsize',10) axis([0 Ua1max+30 0 -Pemax+10]) hold off else if get1==0&get2==1 for kkk=1:ignum Ua=0.377*r*n/(ig(kkk)*i0); Ft=Tq*ig(kkk)*i0*nt/r; Pe=Tq.*n/9550; plot(Ua,Pe,'b') hold on Ff=m*9.8*f; Fw=CD*A*Ua.^2/21.15; F=Ff+Fw; Pe1=F.*Ua/(nt*3600); plot(Ua,Pe1,'r') end pPe=inline('-polyval(coeff,n).*n/9550','n','coeff'); [nPemax,Pemax]=fminbnd(pPe,min(n),max(n),[],coeff); text(0.377*r*nPemax/(ig(1)*i0),-Pemax,['Pe_{max}=',num2str(-Pemax),'kw'],'Fontsize',8) pPe=inline('-polyval(coeff,n).*n/9550','n','coeff'); [nPemax,Pemax]=fminbnd(pPe,min(n),max(n),[],coeff); igmax=ig(ignum); PeUamax=inline('polyval(coeff,n).*n/9550-(CD*A*(0.377*r*n/(igmax*i0))^2/21.15+m*9.8*f)*(0.377*r*n/(igmax*i0))/3600/nt'... ,'n','coeff','igmax','i0','nt','r','CD','A','m','f'); [nUa1max,F01,exitflag1]=fzero(PeUamax,nPemax,[],coeff,igmax,i0,nt,r,CD,A,m,f); if exitflag1<0 | nUa1max>max(n) nUa1max=nPemax; end Ua1max=0.377*r*nUa1max/(ig(ignum)*i0); text(Ua1max,polyval(coeff,nUa1max).*nUa1max/9550,['Ua_{max}=',num2str(Ua1max),'km/h'],'Fontsize',8) text(Ua1max,polyval(coeff,nUa1max).*nUa1max/9550-10,'(Pf+Pw)/nt','Fontsize',8) title('汽车功率平衡图','FontWeight','bold','Fontsize',10) xlabel('Ua(km/h)','Fontsize',10) ylabel('Pe(kw)','Fontsize',10) axis([0 Ua1max+100 0 -Pemax+10]) hold off end endend% --------------------------------------------------------------------function varargout = checkbox1_Callback(h, eventdata, handles, varargin)x=get(handles.checkbox1,'Value');onoff='off';if x==1 onoff='on';endset(handles.axes,'XGrid',onoff);% --------------------------------------------------------------------function varargout = checkbox2_Callback(h, eventdata, handles, varargin)y=get(handles.checkbox2,'Value');onoff='off';if y==1 onoff='on';endset(handles.axes,'YGrid',onoff);% --------------------------------------------------------------------function varargout = checkbox3_Callback(h, eventdata, handles, varargin)zm=get(handles.checkbox3,'value');zm==0;if zm==1 zoom on;else zoom off;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -