clc;
clear;%清理工作区与命令行窗口
ma=1818.2;%总质量
aa=1.463;%质心至前轮距离
ba=1.585;%质心至后轮距离
k1a=-62618;%前轮总侧偏刚度
k2a=-110185;%后轮总侧偏刚度
Iza=3885;%绕Oz轴转动惯量
ua=1;%速度
x=zeros(1,300);%x轴变量
y=zeros(1,300);%y轴变量
for i=1:4
pa=i*pi/6;%前轮角变化范围
[v,wr]=dsolve('(k1+k2)*v/u+(a*k1-b*k2)*wr/u-k1*p=m*(u*wr+Dv),(a*k1-b*k2)*v/u+(a^2*k1+b^2*k2)*wr/u-a*k1*p=Iz*Dwr','v(0)=0,wr(0)=0','t');
syms m a b k1 k2 Iz p u t;%定义函数变量
for sum=1:300%循环次数
V=subs(v,{t,k1,k2,a,b,Iz,u,p,m},{sum,k1a,k2a,aa,ba,Iza,ua,pa,ma});
Wr=subs(wr,{t,k1,k2,a,b,Iz,u,p,m},{sum,k1a,k2a,aa,ba,Iza,ua,pa,ma});%解方程
V1=double(V);
Wr1=double(Wr);%转变为数值进行后续计算
if(sum==1)%初始量
Q=pi/3;
else
Q=Q+Wr1;
end
vy=V1*cos(Q)+ua*sin(Q);%求解相当于大地坐标系x轴
vx=ua*cos(Q)-V1*sin(Q);%求解相当于大地坐标系y轴
if(sum==1)%求每秒汽车行驶距离
x(sum)=vx;
y(sum)=vy;
else
x(sum)=x(sum-1)+vx;
y(sum)=y(sum-1)+vy;
end
end
plot(x,y);
hold on;
end
xlabel('x/m');
ylabel('y/m');
legend('pi/6','pi/3','pi/2','2pi/3');
利用matlab对二自由度汽车操控性进行仿真(行驶速度一定)
最新推荐文章于 2022-06-07 20:45:19 发布