【轨迹跟踪】基于matlab LQR无人机轨迹跟踪【含Matlab源码 3501期】

这篇具有很好参考价值的文章主要介绍了【轨迹跟踪】基于matlab LQR无人机轨迹跟踪【含Matlab源码 3501期】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、模型预测控制MPC无人驾驶车辆轨迹跟踪简介

1 模型预测控制原理
模型预测控制(MPC)的最核心思想就是利用三维的空间模型加上时间构成四维时空模型,然后在这个时空模型的基础上,求解最优控制器。MPC控制器基于一段时间的时空模型,因此得到的控制输出也是系统在未来有限时间步的控制序列。 由于,理论构建的模型与系统真实模型都有误差;从而,更远未来的控制输出对系统控制的价值很低,MPC仅执行输出序列的中第一个控制输出。模型预测控制(以下简称 MPC)是一种依赖于系统模型进行数学优化的复杂控制器。它利用优化算法计算有限时间范围内一系列的控制输入序列,并优化该序列,但控制器仅执行序列中的第一组控制输入,然后再次重复该循环。MPC 主要分为 3 个关键步骤:模型预测、滚动优化、反馈校正。

2 MPC在轨迹跟踪过程中的应用
在轨迹跟踪应用领域,通常 MPC 建模可根据机器人的控制方式选择基于运动学运动状态方程建模或者基于动力学运动状态方程建模。前者是根据车辆转向的几何学角度关系和速度位置关系来建立描述车辆的运动的预测模型,一般只适用于低速运动场景;后者是对被控对象进行综合受力分析,从受力平衡的角度建模,一般应用在高速运动场景,如汽车无人驾驶。本文基于双轮差速运动学模型,推导实现差速运动的MPC轨迹跟踪控制。 双轮差速运动学线性 MPC 轨迹跟踪实现的基本思路是状态方程–线性化–离散化–预测方程–约束线性化–非线性目标函数转为二次规划–求解最优问题。其中线性化可采用泰勒级数展开忽略高次项的方式,离散化可采用后向差分法,这两个部分都有一定的模型精度丢失。

⛄二、部分源代码

function LQR_1()
%这里先从简单开始,给定一个直线车道和车辆位置偏差。
%参考轨迹的生成方法有两种:
%1.车辆在Path上投影,然后在PATH上选取一系列的点作参考点
%现在遇到的问题是Q R的参数怎么设置。而且通用性怎么办?%

clear all;
close all;
clc;
%% 给定参数:

vel = 6; % 纵向车速,单位:m/s
L=2.85;%轴距
T=0.05;% sample time, control period
% 给定圆形参考轨迹
CEN=[0,0]; % 圆心
Radius=20; % 半径

%% 设置参数
Hp =10;%predictive horizion, control horizon
N_l=200;% 设置迭代次数

Nx=3;%状态变量参数的个数
Nu=1;%控制变量参数的个数

FWA=zeros(N_l,1);%前轮偏角
FWA(1,1)= 0; %初始状态的前轮偏角

x_real=zeros(Nx,N_l);%实际状态
x_real(:,1)= [22 0 pi/2]; %x0=车辆初始状态X_init初始状态
% x_piao=zeros(N_l,Nx);%实际状态与参考轨迹的误差
%
% u_real=zeros(N_l,Nu);%实际的控制量
% u_piao=zeros(N_l,Nu);%实际控制量与参考控制量的误差

% X_PIAO=zeros(N_l,3Hp);%通过DR估计的状态
%
% XXX=zeros(N_l,3
Hp);%用于保持每个时刻预测的所有状态值

RefTraj=zeros(3,1);
Delta_x = zeros(3,1);

Q=[10 0 0; 0 10 0; 0 0 100];
R=[10];%r是对控制量误差的weighting matrice

Pk=[1 0 0; 0 1 0; 0 0 1]; %人为给定,相当于QN
Vk=[0 0 0]'; %人为给定,相当于QN

%% 算法实现
u_feedBackward=0;
u_feedForward=0;

%首先生成参考轨迹,画出图来作参考%
[RefTraj_x,RefTraj_y,RefTraj_theta,RefTraj_delta]=Func_CircularReferenceTrajGenerate(x_real(1,1),x_real(1,2),CEN(1),CEN(2),Radius,250,vel,T,L);

figure(1) %绘制参考路径
plot(RefTraj_x,RefTraj_y,‘k’)
xlabel(‘x’,‘fontsize’,14)
ylabel(‘y’,‘fontsize’,14)
title(‘Plot of x vs y - Ref. Trajectory’);
legend(‘reference traj’);
axis equal
grid on
hold on

for i=1:1:N_l

G_Test = 3;
%先确定参考点和确定矩阵A,B.这里姑且认为A和B是不变的
[RefTraj_x,RefTraj_y,RefTraj_theta,RefTraj_delta]=Func_CircularReferenceTrajGenerate(x_real(1,i),x_real(2,i),CEN(1),CEN(2),Radius,Hp,vel,T,L);
u_feedForward = RefTraj_delta(G_Test);%前馈控制量

% u_feedForward=0;
Delta_x(1,1) = x_real(1,i) - RefTraj_x(G_Test);
Delta_x(2,1) = x_real(2,i) - RefTraj_y(G_Test);
Delta_x(3,1) = x_real(3,i) - RefTraj_theta(G_Test);
if Delta_x(3,1) > pi
Delta_x(3,1) = Delta_x(3,1)-2pi;
else if Delta_x(3,1) < -1
pi
Delta_x(3,1) = Delta_x(3,1) +2*pi;
else
Delta_x(3,1) = Delta_x(3,1);
end
end

 % 通过Backward recursion 求K    
for  j=Hp:-1:2   
    Pk_1 = Pk;
    Vk_1 = Vk;     
    A=[1    0   -vel*sin(RefTraj_theta(j-1))*T; 0    1   vel*cos(RefTraj_theta(j-1))*T; 0    0   1;];

% B=[cos(RefTraj_theta(j-1))T 0; sin(RefTraj_theta(j-1))T 0; 0 velT/L;];
COS2 = cos(RefTraj_delta(j-1))^2;
B=[ 0 0 vel
T/(L*COS2)]';

    K = (B'*Pk_1*A)/(B'*Pk_1*B+R);
    Ku = R/(B'*Pk_1*B+R);
    Kv = B'/(B'*Pk_1*B+R);

    Pk=A'*Pk_1*(A-B*K)+Q;   
    Vk=(A-B*K)'*Vk_1 - K'*R*RefTraj_delta(j-1); 
end

 u_feedBackward = -K*(Delta_x)-Ku*u_feedForward-Kv*Vk_1;  

FWA(i+1,1)=u_feedForward+u_feedBackward;

 [x_real(1,i+1),x_real(2,i+1),x_real(3,i+1)]=Func_VehicleKineticModule_Euler(x_real(1,i),x_real(2,i),x_real(3,i),vel,FWA(i,1),FWA(i+1,1),T,L);  

end

%% 绘图
% figure(1);
% plot(RefTraj_x,RefTraj_y,‘b’)
% hold on;
plot(x_real(1,:),x_real(2,:),‘r*’);
title(‘跟踪结果对比’);
xlabel(‘横向位置X’);
% axis([-1 5 -1 3]);
ylabel(‘纵向位置Y’);

end

⛄三、运行结果

func_circularreferencetrajgenerate' 无法识别。,Matlab路径规划(进阶版),matlab

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李国杰、李建平、李建华.模型预测控制:算法与工程实现[D].

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合文章来源地址https://www.toymoban.com/news/detail-769299.html

到了这里,关于【轨迹跟踪】基于matlab LQR无人机轨迹跟踪【含Matlab源码 3501期】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现)

     📋📋📋 本文目录如下: ⛳️⛳️⛳️ ​ 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 随着传感器检测技术、智能控制技术和材料技术的快速发展,四轴无人机及其配套系统的发展越来越成熟。无人机遥感系统具有成本低、易维护、效率高、时效性强及对环境要求低

    2024年02月14日
    浏览(37)
  • 【无人机】采用最基本的自由空间路损模型并且不考虑小尺度衰落(多径多普勒)固定翼无人机轨迹规划(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 文献结果:  2.2 Matlab代码复现结果 🎉

    2024年02月01日
    浏览(57)
  • 【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 ​ 随着

    2023年04月22日
    浏览(79)
  • 【无人机】基于 ode45实现四旋翼无人机姿态仿真附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年02月03日
    浏览(32)
  • 【无人机通信】基于机器学习求解4G网络无人机基站布局优化问题附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信       无

    2024年04月15日
    浏览(45)
  • 无人机巡检路径规划:基于MATLAB蚁群算法

    无人机巡检路径规划:基于MATLAB蚁群算法 简介: 无人机巡检是一种高效且灵活的方法,用于监测和巡视大型设施、建筑物和地区。为了使无人机能够在最短的时间内覆盖目标区域并避免重复巡检,路径规划成为至关重要的问题。本文将介绍如何使用MATLAB中的蚁群算法来进行

    2024年02月06日
    浏览(40)
  • 【协同任务】基于matlab多无人机协同任务规划【含Matlab源码 2515期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年02月09日
    浏览(34)
  • 【无人机】基于蚁群算法实现无人机航迹任务规划(含目标和威胁)附Matlab实现

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年02月03日
    浏览(32)
  • 【无人机三维路径规划】基于飞狐算法FFO实现复杂地形无人机三维航迹规划附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信       无

    2024年03月14日
    浏览(58)
  • 基于EKF的四旋翼无人机姿态估计matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB        卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。这种滤波方法以它的发明者鲁道夫·E·卡尔曼(Rudolf E. Kalman)命名。卡尔曼最初提

    2023年04月23日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包