【无人机设计与控制】滑模控制、反步控制、传统PID四旋翼无人机轨迹跟踪控制仿真

news2024/10/16 22:18:31

摘要

本文基于滑模控制、反步控制和传统PID控制,设计了针对四旋翼无人机的轨迹跟踪控制系统。通过对比这三种控制策略在四旋翼无人机轨迹跟踪中的表现,分析了各自的优缺点和适用场景。仿真结果表明,滑模控制具有更强的鲁棒性,反步控制在响应速度上具有优势,而传统PID控制方法相对简单易实现但精度略逊一筹。

理论

四旋翼无人机的运动控制是一个复杂的非线性系统问题,传统PID控制策略在某些线性场景下有着较好的效果,但在面对复杂轨迹跟踪任务时,受非线性因素和外界干扰影响较大。为了提高控制系统的鲁棒性和跟踪精度,本文引入了滑模控制和反步控制策略。

  1. 滑模控制:通过设计滑模面,使得系统状态能够快速到达并保持在该面上,进而实现对系统的不确定性和外部扰动的鲁棒控制。

  2. 反步控制:通过将控制目标逐步分解,逐步设计虚拟控制量,使系统从高阶逐步稳定到低阶,最终达到全局控制目标。

  3. 传统PID控制:经典的比例-积分-微分控制器,通过调整三个参数,调节系统的误差响应。

实验结果

通过Matlab仿真,对比了三种控制策略的轨迹跟踪性能。以下为部分结果:

  • 在X轴、Y轴和Z轴的轨迹跟踪精度对比中,滑模控制表现出了最小的误差波动,反步控制的误差次之,传统PID控制的误差相对较大。

  • 反步控制在系统响应时间方面优于滑模控制,PID控制方法的响应时间相对较慢。

  • 对于抗干扰能力,滑模控制具有显著优势,能够更好地应对外部扰动。

部分代码

% 四旋翼无人机轨迹跟踪PID控制仿真代码
% 定义系统参数
Kp = [1.2, 1.2, 1.5];  % 比例增益
Ki = [0.1, 0.1, 0.1];  % 积分增益
Kd = [0.3, 0.3, 0.3];  % 微分增益

% 初始化变量
X_ref = 10; Y_ref = 10; Z_ref = 10;  % 参考轨迹
X = 0; Y = 0; Z = 0;                 % 初始位置
dt = 0.01;                           % 时间步长
t = 0:dt:10;                         % 仿真时间

% PID 控制器
for i = 1:length(t)
    % 误差计算
    e_x = X_ref - X(i);
    e_y = Y_ref - Y(i);
    e_z = Z_ref - Z(i);

    % PID 控制计算
    u_x = Kp(1) * e_x + Ki(1) * sum(e_x) * dt + Kd(1) * (e_x - X(i)) / dt;
    u_y = Kp(2) * e_y + Ki(2) * sum(e_y) * dt + Kd(2) * (e_y - Y(i)) / dt;
    u_z = Kp(3) * e_z + Ki(3) * sum(e_z) * dt + Kd(3) * (e_z - Z(i)) / dt;

    % 更新位置
    X(i+1) = X(i) + u_x * dt;
    Y(i+1) = Y(i) + u_y * dt;
    Z(i+1) = Z(i) + u_z * dt;
end

% 绘制结果
figure;
plot3(X, Y, Z);
xlabel('X'); ylabel('Y'); zlabel('Z');
title('PID控制的四旋翼无人机轨迹跟踪');

参考文献

  1. Slotine, J. J. E., & Li, W. (1991). Applied Nonlinear Control. Prentice-Hall.

  2. Isidori, A. (1995). Nonlinear Control Systems. Springer.

  3. Khalil, H. K. (2002). Nonlinear Systems. Prentice Hall.

  4. Madani, T., & Benallegue, A. (2006). "Backstepping Control for a Quadrotor Helicopter". In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

  5. Utkin, V. I. (1992). Sliding Modes in Control Optimization. Springer-Verlag.

(文章内容仅供参考,具体效果以图片为准)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2209654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows 远程桌面提示没有远程桌面授权服务器可以提供许可证 无法保存对 graceperiod 权限所作的更改

参考文章:远程连接提示 由于没有远程桌面授权服务器提供许可证 Windows 远程桌面提示没有远程桌面授权服务器可以提供许可证 远程桌面到windows服务器上时报错:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员…

系统缺失mfc140.dll的修复方法,有效修复错误mfc140.dll详细步骤

mfc140.dll丢失原因分析 1 系统文件损坏或病毒感染 系统文件损坏或被病毒感染是导致mfc140.dll丢失的常见原因之一。根据用户反馈和安全研究报告,大约有30%的mfc140.dll丢失案例与系统文件损坏或病毒感染有关。病毒、木马或其他恶意软件可能会破坏或删除系统中的m…

kafka-manager修改zookeeper端口号后启动仍然连接2181端口

问题描述: zookeeper默认端口号修改为了2182,kafka-manager的配置文件application.conf中也已经修改了zkhosts为新的端口号,然而启动kafka-manger时报错连接连接超时,发现连接的还是2181端口,很奇怪?&…

大语言模型入门(五)——思维链

一、什么是思维链 思维链(Chain-of-Thought,简称CoT)是一种在大型语言模型(LLMs)中使用的技术,旨在提升模型在复杂推理任务上的表现。这种方法通过模拟人类解决问题时的思考过程,将问题分解为一…

信号量(Semaphore)是什么,如何使用?

信号量(Semaphore)是 Java java.util.concurrent 包中的一种同步辅助类,用于控制对共享资源的访问。在并发编程中,信号量常用于限制同时访问特定资源的线程数量,避免过多线程同时访问可能导致的资源竞争或性能下降。 …

verilog 介绍(附状态机实例)

author: hjjdebug date: 2024年 10月 12日 星期六 15:02:56 CST description: verilog 介绍(附状态机实例) 初学者可以把菜鸟教程中的verilog 当参考手册. 但那里介绍的太多了,精简入门(或者入门后的概括)看看本博就够了. 1. 什么是HDL ? HDL, hardware descrip…

FPM工具制作RPM包

文章目录 一、fpm工具介绍1、什么是fpm?2、fpm技术分析3、fpm应用场景4、fpm与rpmbuild的区别 二、fpm安装及构建操作1、安装fpm工具1.1、安装ruby环境1.2、Ruby Gems源更换为国内的源1.3、删除官方源1.4、查看当前源列表1.5、安装fpm版本1.5.1、报错解决 2、fpm常用参数 三、…

Kaggle竞赛——森林覆盖类型分类

目录 1. 竞赛简要2. 数据分析2.1 特征类型统计2.2 四个荒野区域数据分析2.3 连续特征分析2.4 离散特征分析2.5 特征相关性热图2.6 特征间的散点关系图 3. 特征工程3.1 特征组合3.2 连续特征标准化 4. 模型搭建4.1 模型定义4.2 绘制混淆矩阵和ROC曲线4.3 模型对比与选择 5. 测试…

详解安卓和IOS的唤起APP的机制,包括第三方平台的唤起方法比如微信

网页唤起APP是一种常见的跨平台交互方式,它允许用户从网页直接跳转到移动应用程序。 这种技术广泛应用于各种场景,比如让用户在浏览器中点击链接后直接打开某个应用,或者从网页引导用户下载安装应用。实现这一功能主要依赖于URL Scheme、Univ…

线性代数 行列式

一、行列式 1、定义 一个数学概念,主要用于 线性代数中,它是一个可以从方阵(即行数和列数相等的矩阵)形成的一个标量(即一个单一的数值) 2、二阶行列式 ,像这样将一个式子收缩称为一个 2*2 的…

校车购票微信小程序的设计与实现(lw+演示+源码+运行)

摘 要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改…

基于深度学习的细粒度图像分析综述【翻译】

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 基础信息0 摘要1 INTRODUCTION2 识别与检索 RECOGNITION VS. RETRIEVAL3 问题和…

腾讯云视立方TRTCCalling Web 相关

基础问题 什么是 TRTCCalling? TRTCCalling 是在 TRTC 和 TIM 的基础上诞生的一款快速集成的音视频的解决方案。支持1v1和多人视频/语音通话。 TRTCCalling 是否支持接受 roomID 为字符串? roomID 可以 string,但只限于数字字符串。 环境问题 Web …

QD1-P24 CSS 组合选择器

本节学习:CSS 组合选择器 本节视频 https://www.bilibili.com/video/BV1n64y1U7oj?p24 组合选择器是使用多个基础选择器组合在一起来选择更具体的目标元素的方法。以下是几种常见的组合选择器: 下面四个选择器是本节学习内容 后代选择器(De…

在线Ipv4转Ipv6工具

具体请前往:Ipv4到Ipv6在线转换工具--可将Ipv4换算为Ipv6地址和Ipv6的缩写格式

.NET 通过C#设置Excel工作表的页面设置

Excel文件数据准备就绪并需要以报告形式呈现时,调整Excel文件的页面设置变得尤为重要,不仅关乎文档的专业外观,还直接影响到打印或电子分享时的可读性和实用性。通过C#来自动化这一过程,不仅可以节省大量手动配置的时间&#xff0…

yum仓库安装rabbitmq

yum仓库安装rabbitmq 1、配置yum仓库 vim /etc/yum.repos.d/rabbitmq.repo # In /etc/yum.repos.d/rabbitmq.repo## ## Zero dependency Erlang ##[rabbitmq_erlang] namerabbitmq_erlang baseurlhttps://packagecloud.io/rabbitmq/erlang/el/7/$basearch repo_gpgcheck1 gpg…

C++调试方法(Vscode)(一) ——本地调试

初学者在调试一段代码的时候,经常出于不明原因,写出bug,导致程序崩溃。但是定位崩溃的地方时,往往采用简单而朴素的方法:即采用cout或者printf进行输出。这种方式既原始,又低效。一个合格的工程师应该是通过…

龙信科技:引领电子物证技术,助力司法公正

文章关键词:电子数据取证、电子物证、手机取证、计算机取证、云取证、介质取证 在信息技术飞速发展的今天,电子物证在司法领域扮演着越来越重要的角色。苏州龙信信息科技有限公司(以下简称“龙信科技”)作为电子数据取证领域的先…

电脑健康检查用什么软件好 电脑健康状况检查工具在哪里

随着信息技术的日益发展,电脑已成为人们生活和工作不可或缺的重要工具。但是长时间使用电脑也会给电脑自身带来一些隐患,影响电脑的运行效率和使用寿命。因此,定期对电脑进行健康检查尤为重要,这样才能发现和解决潜在的问题。关于…