基于模型预测控制的车辆轨迹跟踪问题附MATLAB代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

无人驾驶车辆运动规划与控制需要通过对车辆运动学或者动力学系统的控制来实现。建立合理的车辆系统模型不仅是设计模型预测控制器的前提,也是实现车辆道路跟踪功能的基础。因此,在建立模型预测控制器时,必须根据无人驾驶车辆的具体行驶工况,通过选取合适的控制变量,建立能够准确描述无人驾驶车辆运动关系约束的运动学模型。

车辆在地面运动的动力学过程是非常复杂的,为了尽量描述车辆运动,需要建立复杂的微分方程组,并用多个状态变量来描述其运动。用于模型预测控制的模型只要能够表现出车辆运动学与动力学约束,就可以使模型预测控制器实现预定控制目的。本文通过建立能够尽量准确反映车辆运动特性,并且有利于模型预测控制器设计的简化车辆运动学模型。在此基础上,对建立的模型进行验证。

⛄ 部分代码

%第一部分

% 参考轨迹生成

N=100;   %参考轨迹点数量

T=0.05;  %采样周期

Xout=zeros(N,3);    %N行3列矩阵

Tout=zeros(N,1);    %N行1列矩阵

for k=1:1:N

    Xout(k,1)=k*T;

    Xout(k,2)=2;

    Xout(k,3)=0;

    Tout(k,1)=(k-1)*T;

end

% 第二部分

%仿真系统基本情况介绍

Nx=3;    %状态量个数

Nu=2;    %控制量个数

[Nr,Nc]=size(Xout);  %返回Xout的行数和列数

Tsim=20;   %仿真时间

X0=[0 0 pi/3];  %车辆初始状态

L=1;           %车辆轴距

vd1=1;         %参考系统的纵向速度

vd2=0;         %参考系统的前轮偏角

%第3部分

%矩阵定义

x_real=zeros(Nr,Nc);

x_piao=zeros(Nr,Nc);

u_real=zeros(Nr,Nu);

u_piao=zeros(Nr,Nu);

x_real(1,:)=X0;

x_piao(1,:)=x_real(1,:)-Xout(1,:);

X_PIAO=zeros(Nr,Nx*Tsim);

XXX=zeros(Nr,Nx*Tsim);   %用于保存每个时刻预测的所有状态值

q=[1 0 0;0 1 0;0 0 0.5];

Q_cell=cell(Tsim,Tsim);

for i=1:1:Tsim

    for j=1:1:Tsim

        if i==j

            Q_cell{i,j}=q;

        else

            Q_cell{i,j}=zeros(Nx,Nx);

        end

    end

end

Q=cell2mat(Q_cell);

R=0.1*eye(Nu*Tsim,Nu*Tsim);

⛄ 运行结果

⛄ 参考文献

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值