✅作者简介:热爱科研的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电子书和数学建模资料