汽车系统动力学Matlab
汽车系统动力学Matlab

汽车系统动力学Matlab作业报告小组成员:一、组任务分配二、Matlab程序与图形1、不同转向特性车辆在不同车速下的系统特征根m=1000;I=1500;a1=1.15;b1=1.35;Caf=53000;Car=53000; i=1;R=[];for uc=10:5:100;D=(I*(Caf+Car)+m*(a1^2*Caf+b1^2*Car))/(m*I*uc);S=(a1+b1)^2*Caf*Car/(m*I*uc^2)+(b1*Car-a1*Caf)/I;P=[1 D S];r=roots(P);R(i,1)=r(1,1);R(i,2)=r(2,1);i=i+1;endplot(real(R(:,1)),imag(R(:,1)),'bo');holda2=1.25;b2=1.25;t=1;S=[];for uc=10:5:100P=[m 0;0 I];Q=[(Caf+Car)/uc,m*uc+(a2*Caf-b2*Car)/uc;(a2*Caf-b2*Car)/uc,(a2 ^2*Caf+b2^2*Car)/uc];R=[Caf;a2*Caf];A=-P^(-1)*Q;d=eig(A);i=imag(d);r=real(d);S(t,1)=r(1);S(t,2)=i(1);t=t+1;endplot(S(:,1),S(:,2),'*')a3=1.35;b3=1.15;for uc=10:5:100P=[m 0;0 I];Q=[(Caf+Car)/uc,m*uc+(a3*Caf-b3*Car)/uc;(a3*Caf-b3*Car)/uc,(a3^2*Caf+b3^2*Car)/uc];R=[Caf;a3*Caf];A=-P^(-1)*Q;d=eig(A);i=imag(d);r=real(d);S(t,1)=r(1);S(t,2)=i(1);t=t+1;endgrid onplot(S(:,1),S(:,2),'d');axis([-14 2 0 3]);xlabel('实轴(Re)');ylabel('虚轴(Im)');text(-8,2.8,'不足转向');text(0,0.2,'过多转向');text(-3,0.2,'中性转向')set(gca,'FontName','Helvetica','FontSize',10)title(['不同转向特性车辆在不同车速下的系统特征根'],'FontSize',12);2.1、具有不同转向特性车辆的横摆角速度幅频和相频响应m=1000;I=1500;a1=1.15;a2=1.25;a3=1.35;b1=1.35;b2=1.25;b3=1.15;Caf=53000;Car=53000;D=[];C=[];M=[];uc=20;i=1;for f=0.1:0.1:10w=2*pi*f;E=[1 0;0 1];P=[m 0;0 I];R1=[Caf;a1*Caf];R2=[Caf;a2*Caf];R3=[Caf;a3*Caf];Q1=[(Caf+Car)/ucm*uc+(a1*Caf-b1*Car)/uc;(a1*Caf-b1*Car)/uc (a1^2*Caf+b1^2*Car)/uc];Q2=[(Caf+Car)/ucm*uc+(a2*Caf-b2*Car)/uc;(a2*Caf-b2*Car)/uc (a2^2*Caf+b2^2*Car)/uc];Q3=[(Caf+Car)/ucm*uc+(a3*Caf-b3*Car)/uc;(a3*Caf-b3*Car)/uc (a3^2*Caf+b3^2*Car)/uc];A1=-inv(P)*Q1;A2=-inv(P)*Q2;A3=-inv(P)*Q3;B1=inv(P)*R1;B2=inv(P)*R2;B3=inv(P)*R3;Hw1=-inv(A1-1i*w*E)*B1;Hw2=-inv(A2-1i*w*E)*B2;Hw3=-inv(A3-1i*w*E)*B3;D(i,1)=angle(Hw1(2))*180/pi;D(i,2)=abs(Hw1(2));C(i,1)=angle(Hw2(2))*180/pi;C(i,2)=abs(Hw2(2));M(i,1)=angle(Hw3(2))*180/pi;M(i,2)=abs(Hw3(2));i=i+1;endsubplot(2,1,1)f=0.1:0.1:10;semilogx(f,D(:,2),'k',f,C(:,2),'r-.',f,M(:,2))grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)legend('不足转向','中性转向','过多转向')title(['具有不同转向特性车辆的横摆角速度幅频响应'],'FontSize',12); xlabel('频率/Hz')ylabel('横摆角速度增益/{(°/s)/(°)}')subplot(2,1,2)f=0.1:0.1:10;semilogx(f,D(:,1),'k',f,C(:,1),'r-.',f,M(:,1))m=1000;I=1500;a1=1.15;a2=1.25;a3=1.35;b1=1.35;b2=1.25;b3=1.15;Caf=53000;Car=53000;D=[];C=[];M=[];uc=20;i=1;for f=0.1:0.1:10w=2*pi*f;E=[1 0;0 1];P=[m 0;0 I];R1=[Caf;a1*Caf];R2=[Caf;a2*Caf];R3=[Caf;a3*Caf];Q1=[(Caf+Car)/ucm*uc+(a1*Caf-b1*Car)/uc;(a1*Caf-b1*Car)/uc (a1^2*Caf+b1^2*Car)/uc];Q2=[(Caf+Car)/ucm*uc+(a2*Caf-b2*Car)/uc;(a2*Caf-b2*Car)/uc (a2^2*Caf+b2^2*Car)/uc];Q3=[(Caf+Car)/ucm*uc+(a3*Caf-b3*Car)/uc;(a3*Caf-b3*Car)/uc (a3^2*Caf+b3^2*Car)/uc];A1=-inv(P)*Q1;A2=-inv(P)*Q2;A3=-inv(P)*Q3;B1=inv(P)*R1;B2=inv(P)*R2;B3=inv(P)*R3;Hw1=-inv(A1-1i*w*E)*B1;Hw2=-inv(A2-1i*w*E)*B2;Hw3=-inv(A3-1i*w*E)*B3;D(i,1)=angle(Hw1(2))*180/pi;D(i,2)=abs(Hw1(2));C(i,1)=angle(Hw2(2))*180/pi;C(i,2)=abs(Hw2(2));M(i,1)=angle(Hw3(2))*180/pi;M(i,2)=abs(Hw3(2));i=i+1;endsubplot(2,1,1)f=0.1:0.1:10;semilogx(f,D(:,2),'k',f,C(:,2),'r-.',f,M(:,2))grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)legend('不足转向','中性转向','过多转向')title(['具有不同转向特性车辆的横摆角速度幅频响应'],'FontSize',12); xlabel('频率/Hz')ylabel('横摆角速度增益/{(°/s)/(°)}')subplot(2,1,2)f=0.1:0.1:10;semilogx(f,D(:,1),'k',f,C(:,1),'r-.',f,M(:,1))grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)legend('不足转向','中性转向','过多转向')title(['具有不同转向特性车辆的横摆角速度相频响应'],'FontSize',12); xlabel('频率/Hz')ylabel('横摆角速度相位(°)')grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)legend('不足转向','中性转向','过多转向')title(['具有不同转向特性车辆的横摆角速度相频响应'],'FontSize',12); xlabel('频率/Hz')ylabel('横摆角速度相位(°)')2.2、具有不同转向特性车辆的侧向加速度和相频响应m=1000;I=1500;a1=1.15;a2=1.25;a3=1.35;b1=1.35;b2=1.25;b3=1.15;Caf=53000;Car=53000;D=[];C=[];M=[];uc=20;L=a1+b1;i=1;for f=0.1:0.1:10w=2*pi*f;E=[1 0;0 1];Vi=w*I*Caf;Rr=L*Caf*Car/uc;Vr1=(L*b1*Caf*Car/uc-m*a1*Caf*uc);Vr2=(L*b2*Caf*Car/uc-m*a2*Caf*uc);Vr3=(L*b3*Caf*Car/uc-m*a3*Caf*uc);Ri1=w*m*a1*Caf;Ri2=w*m*a2*Caf;Ri3=w*m*a3*Caf;Dr1=-w^2*m*I+L^2*Caf*Car/(uc^2)+m*(b1*Car-a1*Caf);Dr2=-w^2*m*I+L^2*Caf*Car/(uc^2)+m*(b2*Car-a2*Caf);Dr3=-w^2*m*I+L^2*Caf*Car/(uc^2)+m*(b3*Car-a3*Caf);Di1=w*(I*(Caf+Car)+m*(a1^2*Caf+b1^2*Car))/uc;Di2=w*(I*(Caf+Car)+m*(a2^2*Caf+b2^2*Car))/uc;Di3=w*(I*(Caf+Car)+m*(a3^2*Caf+b3^2*Car))/uc;Hay1=1i*w*(Vr1+1i*Vi)/(Dr1+1i*Di1)+uc*(Rr+1i*Ri1)/(Dr1+1i*Di1);Hay2=1i*w*(Vr2+1i*Vi)/(Dr2+1i*Di2)+uc*(Rr+1i*Ri2)/(Dr2+1i*Di2);Hay3=1i*w*(Vr3+1i*Vi)/(Dr3+1i*Di3)+uc*(Rr+1i*Ri3)/(Dr3+1i*Di3);D(i,1)=angle(Hay1)*180/pi;D(i,2)=abs(Hay1);C(i,1)=angle(Hay2)*180/pi;C(i,2)=abs(Hay2);M(i,1)=angle(Hay3)*180/pi;M(i,2)=abs(Hay3);i=i+1;endsubplot(2,1,1)f=0.1:0.1:10;semilogx(f,D(:,2)*(pi/(180*9.8)),'k',f,C(:,2)*(pi/(180*9.8)),'r-.',f,M(:,2)*( pi/(180*9.8)))grid onset(gca,'XTick',[0.1 0.3 1 3 10])set(gca,'FontName','Helvetica','FontSize',10)legend('不足转向','中性转向','过多转向')title(['具有不同转向特性车辆的侧向加速度幅频响应'],'FontSize',12); xlabel('频率/Hz')ylabel('侧向加速度增益/[g/(°)]')subplot(2,1,2)f=0.1:0.1:10;semilogx(f,D(:,1),'k',f,C(:,1),'r-.',f,M(:,1))grid onlegend('不足转向','中性转向','过多转向')set(gca,'XTick',[0.1 0.3 1 3 10])set(gca,'FontName','Helvetica','FontSize',10)title(['具有不同转向特性车辆的侧向加速度幅频响应'],'FontSize',12); axis([0.1 10 -120 120])xlabel('频率/Hz')ylabel('侧向加速度相位(°)')2.3、ABS控制器设计w0=120;v0=30;Tb=600;ki=4500;kd=5000;Ts=0.05;Iw=12; rd=0.25;uh=0.8;ug=0.6;s0=0.2;m=300;g=9.8;w=[];v=[];s=[];w(1)=120;v(1)=30;s(1)=0;k=0;i=2;while(v0>0)k=k+1;sb=(v0-rd*w0)/v0;s(i)=sb;if sb<=s0u=uh/s0*sb;else u=(uh-ug*s0)/(1-s0)-rd*sb; endFxb=u*m*g;if sb>0.22Tb=Tb-kd*Ts;elseif sb<0.18Tb=Tb+ki*Ts;else Tb=Tb;endw0=w0+(Fxb*rd-Tb)/Iw*Ts;w(i)=w0;v0=v0-Fxb/m*Ts;v(i)=v0;i=i+1;endt=[0:Ts:Ts*k];subplot(2,1,1)plot(t,v,t,w*rd);grid onlegend('车轮前进速度','车轮线速度');set(gca,'FontName','Helvetica','FontSize',10)title(['车轮前进速度与车轮线速度关系曲线'],'FontSize',12); xlabel('时间/(s)');ylabel('速度/(m/s)');axis([0,Ts*k,0,32]);subplot(2,1,2)plot(t,s);axis([0,Ts*k,0,1]);grid onset(gca,'FontName','Helvetica','FontSize',10)title(['ABS控制的滑移率时域仿真结果'],'FontSize',12); xlabel('时间/(s)');ylabel('滑移率');set(gca,'Ytick',0:0.2:1)3、扭振系统振型图J1=[1.986*10^(-3);1.910*10^(-3);1.931*10^(-3);1.931*10^(-3);1.91 0*10^(-3);1.924*10^(-3);7.8426*10^(-2);2.258*10^(-3);2.641*10 ^(-2);2.91*10^(-3);2.51*10^(-3);1.77*10^(-3);7.836*10^(-2);3.238];K1=[7.95*10^4;7.95*10^4;6.95*10^4;7.95*10^4;7.95*10^4;6.90*10 ^4;8.93*10^3;1.41*10^4;1.02*10^4;4.4*10^3;1.38*10^4;1.616*10^2;2.51*10^2];J=diag(J1);K(1,1)=K1(1);K(1,2)=-K1(1);i=2;for i=2:13;K(i,i-1)=-K1(i-1);K(i,i)=K1(i-1)+K1(i);K(i,i+1)=-K1(i);endK(14,13)=-K1(13);K(14,14)=K1(13);A=inv(J)*K;[G,D]=eig(A);f=sqrt(D)/(2*pi);m=1;while m<=14G(:,m)=G(:,m)/G(1,m)m=m+1endsubplot(3,2,1)plot((G(:,13)))xlabel('质点号');set(gca,'FontName','Helvetica','FontSize',10) grid ontitle(['单节点振型图(4.26Hz)'],'FontSize',12)axis([1 15 -0.2 1.1])subplot(3,2,2)plot(G(:,12))xlabel('质点号');set(gca,'FontName','Helvetica','FontSize',10) grid onaxis([1 15 -5 1.2])title(['双节点振型图(11.99Hz)'],'FontSize',12) subplot(3,2,3)plot(G(:,11))xlabel('质点号');set(gca,'FontName','Helvetica','FontSize',10) grid onaxis([1 15 -7 1.2])title(['三节点振型图(73.9Hz)'],'FontSize',12) subplot(3,2,4)plot(G(:,10))xlabel('质点号');set(gca,'FontName','Helvetica','FontSize',10) grid ontitle(['四节点振型图(147.7Hz)'],'FontSize',12) axis([1 15 -9 37])subplot(3,2,5)plot(G(:,9))xlabel('质点号');set(gca,'FontName','Helvetica','FontSize',10) grid onaxis([1 15 -0.2 1.1])title(['五节点振型图(252Hz)'],'FontSize',12)5、福特Granada轿车后悬架单轮模型频率响应函数和系统相应输入功率谱密度mb=317.5;mw=45.4;ks=22000;kt=192000;cs=1500;Go=5*10^(-6); Uc=20;n=1;B=[];D=[];for f=0:0.01:15w=2*pi*f;Sf=4.47*10^(-4)*power(f,-2.5);A=[i*cs*w+(ks+kt-w^2*mw),-i*cs*w-ks;-i*cs*w-ks,i*cs*w+(ks-mb*w ^2)];C=[kt;0];D=-A^(-1)*C;B(1,n)=abs(D(2)-D(1));B(2,n)=abs(-D(2)*w^2);B(3,n)=abs(kt*(D(1)-1));B(4,n)=Sf;B(5,n)=B(2,n)^2*Sf;B(6,n)=B(1,n)^2*Sf;B(7,n)=B(3,n)^2*Sf;n=n+1;endf=0:0.01:15subplot(3,2,1)plot(f,B(1,:));xlabel('频率/Hz')ylabel('悬架动行程增益')grid onsubplot(3,2,2);plot(f,B(2,:));grid onxlabel('频率/Hz')ylabel('不舒适性参数增益/[(m/s^2)/m]') subplot(3,2,3);plot(f,B(3,:));grid onxlabel('频率/Hz')ylabel('轮胎动载荷增益/[N/m]')subplot(3,2,4)plot(f,B(6,:));xlabel('频率/Hz')ylabel('悬架动行程功率谱密度/[m^2/Hz]') grid onsubplot(3,2,5);plot(f,B(5,:));grid onxlabel('频率/Hz')ylabel('不舒适性功率谱密度/[(m/s^2)^2/Hz]') subplot(3,2,6);plot(f,B(7,:));grid onxlabel('频率/Hz')ylabel('轮胎动载荷功率谱密度/[N^2/Hz]')6、魔术公式xdata = [0 0.78 1.88 2.79 3.80 4.82 6.29 7.82 9.31 11.80];ydata = [0 7.99 16.05 20.65 23.82 26.00 27.78 28.87 29.65 30.09]; zdata = [0 1.65 1.61 0.77 -0.21 -1.03 -1.90 -2.59 -2.61 -2.68];a0 = [11 1 0.8 1];b0 = [1 1 0.8 1];a = lsqcurvefit(fun1, a0, xdata, ydata);b = lsqcurvefit(fun2, b0, xdata, zdata);yy = fun1(a,xdata);zz = fun2(b,xdata);subplot(2,1,1)hold onscatter(xdata, ydata);grid onplot(xdata, yy);set(gca,'FontName','Helvetica','FontSize',10)title(['MF公式拟合轮胎侧偏力-侧偏角曲线'],'FontSize',12);xlabel('侧偏角α/(°)')ylabel('侧偏力Fy/(N)')subplot(2,1,2)hold on;scatter(xdata,zdata);grid onplot(xdata, zz);set(gca,'FontName','Helvetica','FontSize',10)title(['MF公式拟合轮胎回正力矩-侧偏角曲线'],'FontSize',12);xlabel('侧偏角α/(°)')ylabel('回正力矩Mz/(N·m)')function y = fun1(a,xdata);y=a(1)*sin(a(2)*atan(a(3)*xdata-a(4)*(a(3)*xdata-atan(a(3)*xdata))))function z = fun2(b,xdata);z=b(1)*sin(b(2)*atan(b(3)*xdata-b(4)*(b(3)*xdata-atan(b(3)*xdata))) )三、结论通过实际Matlab编程,不仅巩固了课堂知识,并且学以致用,更加深入地了解到了应该如何运用,解决问题。
[精品]基于MATLAB的汽车动力性和燃油经济性仿真
![[精品]基于MATLAB的汽车动力性和燃油经济性仿真](https://img.taocdn.com/s3/m/71c35698f424ccbff121dd36a32d7375a517c648.png)
[精品]基于MATLAB的汽车动力性和燃油经济性仿真1. 简介汽车动力性和燃油经济性是评价一辆汽车性能的两个重要指标。
基于MATLAB的仿真可以帮助工程师和研究人员更好地理解汽车的动力性能和燃油经济性,从而优化设计和改进汽车技术。
本文将介绍基于MATLAB的汽车动力性和燃油经济性仿真的方法和技术。
2. 动力性仿真汽车的动力性指的是汽车加速性能、最高速度、扭矩特性等。
基于MATLAB的动力性仿真可以通过建立数学模型来预测和评估汽车的动力性能。
以下是一个基本的汽车动力性仿真流程:- 建立车辆动力学模型:可以使用MATLAB的Simulink工具箱,将汽车的运动学、动力学和能量转换等方程建立为一个系统模型。
- 定义输入信号:输入信号可以包括驾驶员的驾驶指令、动力系统的输入等。
例如,加速踏板的输入信号可以用一个阶跃函数模拟。
- 仿真和分析:运行仿真模型,获取汽车的速度、加速度、油耗等数据。
通过对仿真结果的分析,可以评估汽车的动力性能,比较不同设计和控制策略的效果。
3. 燃油经济性仿真燃油经济性是指车辆在单位里程下消耗的燃油量,通常以百公里行驶的油耗来表示。
基于MATLAB的燃油经济性仿真可以通过模拟车辆的行驶过程和能量转换来评估汽车的油耗。
以下是一个基本的燃油经济性仿真流程:- 建立车辆行驶模型:可以使用MATLAB的Simulink工具箱,将车辆的行驶阻力、发动机效率、行驶工况等建立为一个系统模型。
- 设置行驶循环:选择合适的行驶循环来模拟不同的驾驶工况,如城市驾驶、高速驾驶等。
- 仿真和分析:运行仿真模型,获取车辆的行驶速度、驱动力、油耗等数据。
通过对仿真结果的分析,可以评估汽车的燃油经济性,比较不同设计和控制策略的效果。
4. 结论基于MATLAB的汽车动力性和燃油经济性仿真可以为汽车工程师和研究人员提供一个快速、准确和可靠的评估工具。
通过仿真分析,可以优化汽车的设计和控制策略,提高汽车的性能和燃油经济性。
汽车动力性matlab仿真源程序

汽车动力性matlab仿真源程序clcn=[1500:500:5500];%转速范围T=[78.59 83.04 85.01 86.63 87.09 85.87 84.67 82.50 80.54];%对应各转矩dt=polyfit(n,T,3);%对发动机输出转矩特性进行多项式拟合,阶数取4n1=1000:100:5500;%t=polyval(dt,n1);figure(1)title('发动机外特性')plot(n1,t,n,T,'o'),grid on%图示发动机输出转矩特性%汽车驱动力计算G=input('整车重力/N,G=');%输入970*9.8ig=[3.416 1.894 1.28 0.914 0.757];%变速器速比k=1:5;%5个前进档r=0.272;i0=4.388;eta=0.9;ngk=[800 800 800 800 800];ngm=[5500 5500 5500 5500 5500];ugk=0.377.*r.*ngk(k)./(ig(k).*i0);%计算每一档发动机800rpm 时的最低行驶速度ugm=0.377.*r.*ngm(k)./(ig(k).*i0);%计算每一档发动机5400rpm最高行驶速度for k=1:5%依次计算5个档的驱动力u=ugk(k):ugm(k);n=ig(k)*i0.*u./r/0.377;t=54.8179+2.2441.*(n./100)-4.8003.*(n./1000).^2+2.815e-10.*n.^3Ft=t.*ig(k).*i0*eta/r;figure(2)plot(u,Ft)hold on,grid on %保证K的每次循环的图形都保留显示end%行驶阻力计算f0=0.009;f1=0.002;f4=0.0003;%三者都是轿车滚动阻力系数% disp'空气阻力系数Cd=0.3--0.41,迎风面积A=1.7--2.1'Cd=input('空气阻力系数Cd=');%输入0.3A=input('迎风面积/m2,A=');%输入2.3u=0:10:180;f=f0+f1.*(u./100)+f4.*(u./100).^4;Ff=G*f;%计算滚动阻力Fw=Cd*A.*u.^2./21.15;%计算空气阻力F=Ff+Fw;%滚动阻力、空气阻力之和title('驱动力-阻力图(五档速比为3.416 1.894 1.28 0.914 0.757)')plot(u,F,'mo-');grid on%图解法求最高车速for u=50:180;k=5;n=ig(k)*i0.*u./r/0.377;t=54.8179+2.2441.*(n./100)-4.8003.*(n./1000).^2+2.815e-10.*n.^3;Ft=t.*ig(k).*i0*eta/r;f=f0+f1.*(u./100)+f4.*(u./100).^4;Ff=G*f;Fw=Cd*A.*u.^2./21.15;F=Ff+Fw;if abs(Ft-F)<1;umax=u;breakendenddisp('== == =汽车动力性能仿真计算结果== == =')disp('驱动力-行驶阻力平衡图及最高车速')fprintf('汽车理论最高车速(驱动力与行驶阻力曲线交点)Vmax=%3.3f km/h\n',umax)(注:文档可能无法思考全面,请浏览后下载,供参考。
matlab 系统动力学模型

matlab 系统动力学模型Matlab 系统动力学模型引言:系统动力学是研究动态系统行为的数学方法,通过描述和分析系统在时间上的演化过程,揭示系统内部的关系和相互作用规律。
Matlab是一种强大的数值计算软件,广泛应用于系统动力学模型的建立和仿真。
本文将介绍Matlab在系统动力学建模中的应用,并结合实例进行说明。
一、系统动力学基本概念系统动力学是一种描述系统行为的数学工具,它将系统划分为不同的部分,并研究它们之间的相互作用。
系统动力学模型通常由一组关于系统部分之间关系的微分方程或差分方程组成。
在建立模型时,需要考虑系统的输入、输出以及系统内部的状态变量,并通过数学表达式描述它们之间的关系。
二、Matlab在系统动力学模型中的应用Matlab提供了丰富的数学函数和工具箱,使得系统动力学模型的建立和仿真变得更加简单和高效。
下面将以一个简单的例子来说明Matlab在系统动力学建模中的应用。
假设有一个简单的机械系统,由弹簧和质量构成。
假设弹簧的刚度为k,质量为m,阻尼系数为b。
我们想要建立一个系统动力学模型,来描述质点的运动过程。
我们需要确定系统的状态变量和输入输出。
在这个例子中,质点的位移x是系统的状态变量,外力F是系统的输入,质点的加速度a 是系统的输出。
根据牛顿第二定律,我们可以建立如下的微分方程:m * a = F - b * v - k * x其中,v是质点的速度。
为了建立系统的动力学模型,我们需要对该微分方程进行求解。
在Matlab中,可以使用ode45函数来解决常微分方程。
具体的Matlab代码如下:```matlabfunction dxdt = system_dynamics(t, x)m = 1;k = 10;b = 0.5;F = 5;v = x(2);a = (F -b * v - k * x(1)) / m;dxdt = [v; a];end[t, x] = ode45(@system_dynamics, [0, 10], [0, 0]);plot(t, x(:, 1));xlabel('Time');ylabel('Displacement');title('System Dynamics');```在上述代码中,system_dynamics函数定义了系统的微分方程,其中包括质点的加速度和速度的计算。
基于Matlab的汽车运动控制系统设计

基于Matlab的汽车运动控制系统设计
Matlab是一款强大的工具,它可以用于汽车动力学控制系统
的建模、仿真和优化。
下面是基于Matlab的汽车运动控制系
统的设计流程:
1. 汽车运动学建模,包括车辆加速度、速度、位置等基本变量的建模,并建立数学模型。
2. 汽车动力学建模,包括发动机、传动系统、制动系统等的建模,推导出相关的动力学方程。
3. 设计控制器,选择合适的控制算法,并根据模型参数进行控制器设计。
4. 建立仿真模型,将汽车运动学、动力学模型以及控制器整合在一起,建立仿真模型,并进行仿真。
5. 分析仿真结果,通过仿真结果分析系统的性能,包括控制效果、鲁棒性等。
6. 修改设计,对仿真结果进行修改,优化设计,重新进行仿真。
7. 实现控制器,将控制器转换为代码并实现到实际控制系统中。
8. 验证系统性能,进行实车测试,验证系统性能及仿真结果的准确性。
总体而言,基于Matlab的汽车运动控制系统设计可以提高设计效率,减少设计成本,确保系统性能及仿真结果的准确性。
汽车整体动力性MATLAB仿真计算

车各种性能中最基本、最重要的性能。
动力性评价指标
汽车动力性评价指标有最高车速、加速 时间、最大爬坡度等,与之对应的试验内容 有最高车速的测试、汽车起步连续换挡加速 时间与超车加速时间的测试和汽车最大爬坡 度的测试。另外,按照我国标准,动力性评 价试验均在满载情况下进行。
M文件
发动机输出功率计算,具体程序如下:
for k=1:5 u=ugk(k):ukm(k); n=ig(k)*i0*u/r/0.377; pe=polyval(dp,n); figure(4) plot(u,pe) hold on,grid on%保证每次循环的图形都保留显示
end
M文件
发动机阻力功率计算,具体程序如下:
M文件
图解法求解最高车速,具体程序如下:
for u=50:0.1:180; k=5; n=ig(k)*i0*u/r/0.377; t=polyval(dt,n); Ft=t*ig(k)*i0*eta/r; f=f0+f1*(u/100)+f4*(u/100).^4; Ff=G*f; %计算滚动阻力 Fw=Cd*A*u.^2./21.15; %计算空气阻力 F=Ff+Fw; if abs(Ft-F)<1; %当驱动力与行驶阻力差值小于1N时,近似认为为理论最高车速 umax=u;break end
仍然取先前国产某小型轿车进行仿真计算,整车综合性 能参数如前所述。发动机输出功率特性可由台架试验获得, 如下表2所示:
表2 发动机输出功率特性
转矩/(r/min) 1500 2000 2500 3000 3500 4000 4500 5000 5500 输出功率/kW 10.6 13.4 17.6 21.8 25.2 27.5 31.1 35.4 31.6
matlab汽车动力系统设计

matlab汽车动力系统设计汽车动力系统设计是现代汽车工程中的一个重要环节。
它涉及到了汽车动力源、传动系统和控制系统等多个方面,对汽车的性能和燃油效率有着直接影响。
本文将从汽车动力系统设计的角度出发,探讨其中的关键要素和设计原则。
汽车动力源是汽车动力系统设计的核心。
目前,常见的汽车动力源主要包括内燃机和电动机。
内燃机可以进一步分为汽油机和柴油机。
选择适合的动力源是汽车动力系统设计的首要任务。
在选择动力源时,需要考虑到车辆的用途、性能要求和环境影响等因素。
例如,对于城市代步车型,电动机可能更加适合,而对于跑车或越野车型,内燃机可能更具优势。
传动系统是汽车动力系统设计中的另一个重要组成部分。
传动系统的设计目标是将动力源产生的扭矩和转速传递到车轮上,以实现汽车的运动。
传动系统一般包括离合器、变速器和驱动轴等。
离合器的作用是在换挡时断开动力源和传动系统的连接,变速器则可以根据驾驶需求调整输出扭矩和转速。
在传动系统设计中,需要考虑到传动效率、换挡顺畅性和可靠性等因素。
控制系统在汽车动力系统设计中也起着重要作用。
控制系统包括发动机控制单元(ECU)和车辆动力控制系统等。
发动机控制单元通过对发动机的点火、喷油和气门控制等进行精确调整,以实现动力输出和燃油经济性的平衡。
车辆动力控制系统则通过对传动系统和车轮的控制,提供更好的操控性能和稳定性。
在设计控制系统时,需要考虑到系统的可调性、响应速度和稳定性等因素。
除了上述要素,汽车动力系统设计还需要考虑其他一些因素。
例如,车辆的质量分布、空气动力学特性和轮胎参数等。
车辆的质量分布会影响车辆的平衡性和操控性能,因此需要在设计中充分考虑。
空气动力学特性则决定了车辆的空气阻力和气动性能,对于高速车型尤为重要。
轮胎参数包括轮胎类型、尺寸和胎压等,会直接影响到车辆的牵引力和操控性能。
在汽车动力系统设计中,需要遵循一些基本原则。
首先,要确保动力系统的可靠性和安全性。
汽车是一种复杂的机械装置,因此在设计中要考虑到各种可能的故障和安全风险,并采取相应的措施来保证车辆的安全性。
Matlab在汽车工程中的应用示例

Matlab在汽车工程中的应用示例引言:汽车工程是一个综合性的学科,涉及到多个领域的知识和技术。
在汽车的设计、测试、控制和优化等方面,Matlab都有着广泛的应用。
本文将针对几个具体的应用领域,介绍Matlab在汽车工程中的应用示例。
一、汽车动力学仿真汽车动力学仿真是汽车工程中的重要组成部分。
通过建立系统的动力学模型,可以模拟汽车在不同条件下的运行行为,为汽车设计与控制提供可靠的依据。
Matlab具备强大的数值计算和仿真功能,极大地方便了汽车动力学仿真的实施。
1. 制动系统仿真:Matlab可以用来建立汽车的制动系统仿真模型,包括制动器、制动液压系统和车轮等部件。
通过对制动力、制动距离、制动时间等参数的计算,可以评估和改进汽车的制动性能。
此外,还可以通过调整摩擦系数、制动液流动压力等参数,优化制动系统的设计。
2. 悬挂系统仿真:汽车的悬挂系统对行驶的稳定性和舒适性有着重要影响。
利用Matlab,可以建立汽车悬挂系统仿真模型,预测悬挂系统的动态响应、滤波效果等性能指标,并进行悬挂系统的参数优化。
此外,还可以通过调整悬挂系统的刚度、阻尼等参数,来改善汽车的操控性和乘坐舒适性。
二、车辆动力学测试数据处理在汽车工程中,进行车辆动力学测试是评估汽车性能的重要手段之一。
通过采集汽车在实际情况下的运行数据,可以进行各种性能指标的分析和评估。
而Matlab的数据处理和分析功能,为车辆动力学测试提供了强大的支持。
1. 加速性能分析:通过采集汽车的实际加速数据,可以分析汽车的加速性能,如加速时间、加速度等指标。
在Matlab中,可以利用数据处理和统计分析的函数,快速计算出汽车的平均加速时间、最大加速度等参数,并与其他车型进行对比分析。
2. 操控性能评估:通过分析汽车在连续驱动和急转弯等情况下的动力学数据,可以评估汽车的操控性能。
利用Matlab的信号处理和频谱分析工具,可以提取出汽车的横向加速度、侧向加速度等指标,并进行综合评估。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汽车系统动力学Matlab作业报告小组成员:'组内任务分配二、 Matlab 程序与图形1、不同转向特性车辆在不同车速下的系统特征根m=1000;I=1500;a1=1.15;b1=1.35;Caf=53000;Car=53000; i=1;R=[];for uc=10:5:100;D=(l*(Caf+Car)+m*(a1^2*Caf+b1^2*Car))∕(m*l*uc);S=(a1+b1)^2*Caf*Car∕(m*l*uc^2)+(b1*Car-a1*Caf)∕l;P=[1 D S];r=roots(P); R(i,1)=r(1,1);R(i,2)=r(2,1);i=i+1;end plot(real(R(:,1)),imag(R(:,1)),'bo');holda2=1.25;b2=1.25;t=1;S=[];for uc=10:5:100P=[m 0;0 l];Q=[(Caf+Car)∕uc,m*uc+(a2*Caf-b2*Car)∕uG(a2*Caf-b2*Car)∕uc,(a2^2*Caf+b 2^2*Car)∕uc];R=[Caf;a2*Caf];A=-P^(-1)*Q;d=eig(A);i=imag(d); r=real(d);S(t,1)=r(1);S(t,2)=i(1); t=t+1;end plot(S(:,1),S(:,2),'*') a3=1.35;b3=1.15;for uc=10:5:100P=[m 0;0 l];Q=[(Caf+Car)∕uc,m*uc+(a3*Caf -b3*Car)∕uc;(a3*Caf-b3*Car)∕uc,(a3^2*Caf+b3^2*Car)∕uc];R=[Caf;a3*Caf];A=-P^(-1)*Q;d=eig(A);i=imag(d);r=real(d);S(t,1)=r(1);S(t,2)=i(1);t=t+1;endgrid OnPlot(S(:,1),S(:,2),'d');axis([-14 2 0 3]);xlabel('实轴(Re)');ylabel('虚轴(Im)');text(-8,2.8,'不足转向');text(0,0.2,'过多转向');text(-3,0.2,'中性转向')set(gca,'Fo ntName','Helvetica','Fo ntSize',10)title(['不同转向特性车辆在不同车速下的系统特征根'],'FontSize',12);E 一書不同转向特杵乍辆在不同乍速下的系统待征戕2.1、具有不同转向特性车辆的横摆角速度幅频和相频响应m=1000;I=1500;a1=1.15;a2=1.25;a3=1.35;b1=1.35;b2=1.25;b3=1.15;Caf=53000;Car=53000;D=[];C=[];M=[];uc=20;i=1;for f=0.1:0.1:10w=2*pi*f;E=[1 0;0 1];P=[m 0;0 I];R1=[Caf;a1*Caf];R2=[Caf;a2*Caf];R3=[Caf;a3*Caf];Q1=[(Caf+Car)/uc m*uc+(a1*Caf-b1*Car)/uc;(a1*Caf-b1*Car)/uc (a1^2*Caf+b1^2*Car)∕uc];Q2=[(Caf+Car)/uc m*uc+(a2*Caf-b2*Car)/uc;(a2*Caf-b2*Car)/uc (a2^2*Caf+b2^2*Car)∕uc];Q3=[(Caf+Car)∕uc m*uc+(a3*Caf-b3*Car)/uc;(a3*Caf-b3*Car)/uc (a3^2*Caf+b3^2*Car)∕uc];A1=-inv(P)*Q1;A2=-inv(P)*Q2;A3=-inv(P)*Q3;B1=inv(P)*R1;B2=inv(P)*R2;B3=inv(P)*R3;Hw1=-inv(A1-1i*w*E)*B1;Hw2=-inv(A2-1i*w*E)*B2;Hw3=-inv(A3-1i*w*E)*B3;D(i,1)=angle(Hw1(2))*180/pi;D(i,2)=abs(Hw1(2));C(i,1)=angle(Hw2(2))*180/pi;C(i,2)=abs(Hw2(2));M(i,1)=angle(Hw3(2))*180/pi;M(i,2)=abs(Hw3(2));i=i+1;endsubplot(2,1,1)f=0.1:0.1:10;semilogx(f,D(:,2),'k',f,C(:,2),'r-.',f,M(:,2))grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)Iegend('不足转向’,中性转向','过多转向')title([' 具有不同转向特性车辆的横摆角速度幅频响应 '],'FontSize',12); xlabel('频率 /Hz')y∣abel('横摆角速度增益/{( /°)/( )}')subplot(2,1,2)f=0.1:0.1:10;semilogx(f,D(:,1),'k',f,C(:,1),'r-.',f,M(:,1))m=1000;I=1500;a1=1.15;a2=1.25;a3=1.35;b1=1.35;b2=1.25;b3=1.15;Caf=53000;Car=53000;D=[];C=[];M=[];uc=20;i=1;for f=0.1:0.1:10w=2*pi*f;E=[1 0;0 1];P=[m 0;0 I];R1=[Caf;a1*Caf];R2=[Caf;a2*Caf];R3=[Caf;a3*Caf];Q1=[(Caf+Car)/uc m*uc+(a1*Caf-b1*Car)/uc;(a1*Caf-b1*Car)/uc(a1^2*Caf+b1^2*Car)∕uc];Q2=[(Caf+Car)/uc m*uc+(a2*Caf-b2*Car)/uc;(a2*Caf-b2*Car)/uc(a2^2*Caf+b2^2*Car)∕uc];Q3=[(Caf+Car)/uc m*uc+(a3*Caf-b3*Car)/uc;(a3*Caf-b3*Car)/uc(a3^2*Caf+b3^2*Car)∕uc];A1=-inv(P)*Q1;A2=-inv(P)*Q2;A3=-inv(P)*Q3;B1=inv(P)*R1;B2=inv(P)*R2;B3=inv(P)*R3;Hw1=-inv(A1-1i*w*E)*B1;Hw2=-inv(A2-1i*w*E)*B2;Hw3=-inv(A3-1i*w*E)*B3;D(i,1)=angle(Hw1(2))*180/pi;D(i,2)=abs(Hw1(2));C(i,1)=angle(Hw2(2))*180/pi;C(i,2)=abs(Hw2(2));M(i,1)=angle(Hw3(2))*180/pi;M(i,2)=abs(Hw3(2)); i=i+1;endsubplot(2,1,1)f=0.1:0.1:10;semilogx(f,D(:,2),'k',f,C(:,2),'r-.',f,M(:,2))grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)Iegend('不足转向’,中性转向','过多转向')title([' 具有不同转向特性车辆的横摆角速度幅频响应xlabel('频率 /Hz')y ∣abel('横摆角速度增益/{( /°)/( )}')subplot(2,1,2)f=0.1:0.1:10;semilogx(f,D(:,1),'k',f,C(:,1),'r-.',f,M(:,1))grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)Iegend('不足转向’,中性转向','过多转向') title([' 具有不同转向特性车辆的横摆角速度相频响应 xlabel('频率/Hz')y ∣abel('横摆角速度相位(° ')grid onset(gca,'Xtick',[0.1,0.3,1.5,3,10])set(gca,'FontName','Helvetica','FontSize',10)legend('不足转向’,中性转向','过多转向') title([' 具有不同转向特性车辆的横摆角速度相频响应 xlabel('频率 /Hz')ylabel('横摆角速度相位(° ')'],'FontSize',12); '],'FontSize',12); '],'FontSize',12);15 频率Λ⅛2.2、具有不同转向特性车辆的侧向加速度和相频响应 m=1000;l=1500;a1=1.15;a2=1.25;a3=1.35;b1=1.35;b2=1.25;b3=1.15;Caf=53000;Car=53000;D=[];C=[];M=[];uc=20;L=a1+b1;i=1;for f=0.1:0.1:10w=2*pi*f;E=[1 0;0 1];Vi=w*I*Caf;Rr=L*Caf*Car∕uc;VrI=(L*b1*Caf*Car∕uc -m*a1*Caf*uc);Vr2=(L*b2*Caf*Car∕uc -m*a2*Caf*uc); Q 具有不同转向特件车辆的横摆ft 速度幅频响应 100 IA03 15 3 I O I 理。