利用matlab对二自由度汽车操控性进行仿真(行驶速度一定)

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值