基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现

2023-05-16

1、内容简介


489-可以交流、咨询、答疑

2、内容说明

  无人机,英文名称UAV C Unmanned Aerial Vehicle,是一种特殊的飞行器,

可以按照预先设定的轨迹进行各种运动,无需人操纵。它的运动是依据空气动力学,再利用合理的控制算法来实现稳定的运动。在飞行过程中,无人机的飞行位置以及飞行姿态是依靠机身携带的微处理器和各种传感器在飞行运动中收集各项数据并进行处理,然后将调节指令输出给动力系统来实现对自身位置及姿态的控制。随着微电子技术以及计算机技术的高速发展,无人机的体积在不断变小,使得无人机在进行飞行任务时的运动更加灵活;无人机的性能不断提升,使得无人机自身可以在不依赖大型计算机的情况下有着更快的对数据处理的速度,可以完成更加复杂的任务。

随着科学技术的不断进步,无人机的技术的也在突飞猛进,这就使得其应用领域越来越广泛。在军事领域,无人机的轻便性和灵活性让其拥有代替军人完成危险环境的侦查及探索任务且更加的隐蔽,不容易被发现;在遭遇恐怖袭击等特殊情况时,可以在无人机上装载武器等攻击型武器对恐怖分子进行军事打击。在民用方面,无人机可以进行危险环境下的数据采集、灾害时的通信与救援、复杂路况时的道路交通监测、影视航拍以及农作物的高空施肥喷药等工作具备很高的研究价值和研究意义。

 一般情况下,无人机可以大致分为以下三类:固定翼无人机、旋翼无人机和扑翼无人机,如图1.1所示。固定翼无人机的结构就是常见的载人客机,由于不具备垂直起降能力,对起飞和降落场地大小和地形的要求较为苛刻,缺乏灵活性,很难完成较为复杂的任务。相比之下,旋翼无人机的结构就相对比较简单,对起飞场地的要求不高,一般可以实现垂直起降,且灵活性及操纵性强,对需要完成复杂任务的场景具有很强的适应性。

旋翼无人机也有着旋翼数量不同的区分,如二旋翼、三旋翼、六旋翼等,但奇数翼类型的无人机会使几个旋翼产生的内部转矩无法抵消,从而导致系统的稳定控制更加困难,旋翼数量的增加也会加大控制难度。对众多不同旋翼数量的多旋翼进行综合对比分析,可以得出,四旋翼无人机相对结构简单,但同样具备较大的负载,且加工装配难度及制造成本低,易于实际生产应用。此外,它还能实现6个自由度上的运动,极具灵活性,但在进行户外飞行作业时容易受到气流、压强及其他外界环境因素的影响,导致四旋翼无人机的飞行稳定性降低,其中飞行控制算法的设计是最关键的内容,它影响着无人机在进行飞行任务时的效率和稳定性。控制器的优劣直接决定了无人机的性能,只有基础打的牢靠,使用在无人机上的其他上层算法才会得到更好的效果,因此四旋翼无人机的控制算法具备很高的研究价值。

1.2国内外研究现状和发展趋势

1.2.1研究现状

四旋翼受到越来越多的关注,国内外对其飞行策略的研究也越来越深入,以求在这一领域能够有所突破。由于飞行器本身是一个复杂系统,加上外界环境也很复杂,所以对无人机的控制非常困难。飞行器是通过建立机体坐标系和地理坐标系来进行分析建模,结合自身受力和外界环境的变化,根据内外的联系,实时做出反应,以维持飞行器的稳定飞行。对四旋翼控制系统的设计常用的方法和理论如下:

 PID控制:主要有经典PID控制和现代LQ两种技术。经典PID控制目前仍旧是工业中应用最广泛的控制方式,它的适应性较强,易于在工程上去实现,其基本原理就是对偏差的修正,其中比例环节是用来修正当前时刻的偏差,积分是过去时刻偏差的修正,微分是将来时刻偏差的修正。现代LQ控制是具有状态反馈的线性二次型最优控制,在模型较精确的情况下进行控制系统的研究。

 模糊控制:模糊控制是几个模块组合的控制技术,包括模糊集合、模糊语言变量以及模糊逻辑推理,如果被控对象的精确模型无法得到或者难以建立,可以选用该种控制方式,对于非线性、大时滞、时变系统「16],模糊控制可以将设计变得相对简单。浙江大学利用模糊PID控制设计一款农用无人机,控制效果更为稳定,具有较好的自适应能力,对于随机的干扰有较强的抑制能力。

反步法控制:文献[f171中,假设四旋翼飞行器飞行环境理想,没有外界干

扰,使用backstepping控制算法,可以实现比较好的控制效果。文献「18]是针对外界环境变化,以及自身机构受到的外界影响,运用反步法结合PID控制算法,有效抑制外界干扰对飞行稳定度的影响。

    神经网络控制:在控制系统中,运用神经网络的技术,对难以建立精确模

型的复杂控制对象进行辨识,进行优化计算,此种控制方式具有很强的自适应

能力、鲁棒性和学习能力。但是神经网络控制仅停留在理论层面,目前并未应

用于实际工程中。文献「19]以神经网络作为主导,利用黎卡笛微分方程来实现

控制系统的设计。

    滑模控制:此种控制方式的优点是可以克服系统的不确定性,对外界的干

扰和未建模动态具有比较强的鲁棒性,尤其是对于非线性系统具备很好的控制

效果。针对参数不确定性提出分等级控制结构以简化控制器的设计[}ZO}。国防科技大学在2006年对四旋翼应用滑模控制算法完成了全自主飞行[[21-23]

1.2.2发展趋势:

当前在应用领域飞行控制技术仍以PID控制为主流,其技术较为成熟,其他先进的控制技术在飞行控制方面的应用呈现多点开花的形势。随着军事领域和民用领域市场需求的发展结合当前四旋翼飞行控制的缺陷可以判断,四旋翼飞行器的自主化控制技术和集群化控制技术将是未来飞行控制技术的发展趋势。

实现自主控制和智能化是四旋翼发展的主要方向。未来智能化的四旋翼不仅要具备自主飞行能力,还需具备自主决策能力,要能够借助自身搭载的传感器实时分析周围环境,并对环境中的动态因素和不确定性因素做出及时判断和处理,进而实现自主避障、自主航迹规划、自主导航等功能。近两年,许多新的尝试和探索不断推动四旋翼智能化的发展。例如,Ait-Jellal R 和 Zell A 两人将基于特征的 SLAM 和直接构建的 SLAM 相结合,设计了一种基于关键帧的即时定位与地图构建算法,使控制系统能即时高效地获取周围环境信息,并使用RRT*算法规划安全航迹,帮助四旋翼在 GPS 失效区域确定自身所处空间位置并实现自主避障飞行[19];为使基于视觉导航的四旋翼连续穿越位置实时变化的多个目标拱门,如图 7 所示,Kaufmann E 等人将卷积神经网络(CNN)与路径规划和四旋翼控制系统相结合,采取多次实验训练四旋翼系统处理即时图像,并生成合理航迹的能力,最终实现了四旋翼在动态环境中的自主航迹规划以及自主导航飞行[20]。

集群化控制技术是指实现多飞行器之间组网编队,协同执行任务的控制技术,在控制策略上可分为集中式和分布式的控制策略。近年来,飞行器集群化控制技术正在快速发展。在理论研究方面, 程鹏研究了基于 Mesh 通信网络的多个四旋翼分布式编队控制和协同避障的问题,实现了多个飞行器之间自组织和协同控制的功能[21];马鸣宇等人分析了以往基于特殊正交群 SO(3)的编队协同控制存在的问题并做出改进,采用 SO(3)统一描述飞行器姿态[22]。可见,无论是在理论研究方面还是在实际应用方面,飞行器集群化控制技术都体现出了重要意义,其巨大价值正在被不断发掘。

3、仿真分析

 

 

4、参考论文


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现 的相关文章

  • 在CSDN发布博客怎么改变代码块颜色

    第一步 CSDN首页 xff0c 最右侧点击创作中心 第二步 左侧导航栏滑到最下面 xff0c 点击博客设置 第三步 找到代码片样式 xff0c 简单吧 xff08 又水了一篇 xff09
  • 裸机驱动与Linux设备驱动的区别

    裸机驱动一般针对没有操作系统支持的层面 不用考虑操作系统对它的调用 Linux驱动是在裸机驱动基础上 按照一定的规范来实现 虽然实现的都是同一个东西 不过你发现在 Linux驱动 搀杂 了许多维护信息 总之 xff0c Linux设备驱动就
  • 使用2020版IDEA创建Servlet

    使用2020版IDEA创建一个完整的Web项目的整个过程分为四步 第一步 创建一个普通的Java项目 1 打开IDEA xff0c 选择菜单File gt New gt Project 2 选择Java xff0c 以及自己的JDK xff
  • Apache IoTDB 系列教程-5:常见问题汇总(1)

    在过去的一段时间 xff0c 收集了不少大家在使用过程中反馈的问题 xff0c 今天把一些常见问题列出来 xff0c 给更多人提供参考 开了个交流群二维码 xff0c 可以扫码进群 正文 1974 字 xff0c 预计阅读时间 5 分钟 常
  • Apache IoTDB 系列教程-6:性能优化(0.8-0.10)

    今天的内容包括建模优化 读写性能优化 xff0c 会涉及一些简单的原理介绍 主要面向 0 8 0 10 版本 正文 3754 字 xff0c 预计阅读时间 10 分钟 建模指南 关于存储组 现在每个存储组是一个相对独立的引擎 xff0c 而
  • Apache IoTDB 系列教程-8:文件同步工具

    在官网用户手册的系统工具 xff08 System Tools xff09 一栏 xff0c 有一个同步工具 xff08 Sync Tool xff09 xff0c 有很多人问这个东西怎么用 xff0c 延迟是多少 xff0c 今天就介绍一
  • Apache IoTDB failed to start RPC ServerService, because Could not create ServerSocket on address

    原因 一般是端口占用 xff0c 可以 jps 检查是不是已经启动了一个 IoTDB
  • Apache IoTDB Query is time out (-1ms)

    现象 查询超时 xff0c 服务器出现一下日志 2022 01 05 15 57 05 724 pool 12 IoTDB query time manager 1 WARN o a i d q c QueryTimeManager 71
  • 解读事务的ACID!

    事务的ACID特性大学数据库课程基本都学过 xff0c 但是学完也就大概知道是干嘛的 xff0c 后来也没仔细想这个东西了 xff0c 后来接触了NoSQL系统的一致性 xff0c 于是重新学习 ACID xff0c 发现还有很多误区 今天
  • 欢迎加入 Apache IoTDB !

    官方网站 xff1a http iotdb apache org zh IoTDB 是清华自研时间序列数据库 xff0c 2014年项目启动 xff0c 2018年11月18号 IoTDB 正式进入 Apache 孵化器 xff0c 成为中
  • Xavier(2):Xavier NX刷机步骤及报错解决

    1 下载和安装NVIDIA SDK Manager 官方网站 xff1a https developer nvidia com embedded jetpac 选择sdk manager xff0c sdk manager版本没有要求 安装
  • 模型评估与优化1--基本概念与最优化问题

    模型评估与优化1 基本概念与最优化问题 首先先看一下基本术语和概念 1 数据集的划分 xff08 1 xff09 数据集 dataset xff1a 在机器学习任务中使用的一组数据 数据集中每一个数据称为一个样本 反映样本在某方面的表现或性
  • windows中vscode编译运行c++程序

    1 vscode 安装 c 43 43 扩展 在vscode中创建一个后缀为 01 cpp 的程序 xff0c 程序文件如下 xff0c vscode会自动提示安装 c 43 43 扩展 xff0c 点击进行安装 01 cpp includ
  • leetcode 刷题指南 & 刷题顺序

    1 刷题方法 amp 顺序 xff1a 按类型刷 xff0c 这样能总结出每种类型题目的规律 优先树 链表 二分查找 DFS BFS 动态规划数目 xff1a 常见类型刷10道 43 顺序 xff1a 先做2 4道简单题 xff0c 然后做
  • 北邮计算机学院2017届复试经验分享

    北邮计算机学院2017届复试经验分享 建议初试完了再来担心复试 xff0c 有看复试经验的时间还不如多做两道数学题 xff01 导师 xff1a 了解导师的情况 xff0c 最差也不要找一个人不好的老师 xff0c 其次尽量选自己喜欢的方向
  • STM32 Cube BMP180 获取温度、气压、海拔

    一 介绍 BMP180中内置有E2PROM xff0c 所以要获取数据 xff0c 就要使用I2C读写E2PROM来实现获取数据 xff01 BMP180的整个流程 xff1a 1 首先要初始化 xff0c 读取几个E2PROM地址上的值共
  • int 类型究竟多少字节?

    今天发现NEON技术中 int类型的字节数是2 xff0c 感觉很奇怪 xff0c 最早写51单片机时也是2 xff0c 后来到了观念转变成了4 xff0c 现在有遇到了2 一 转自 http www tuicool com article
  • python实现K均值聚类算法

    之前做大作业的时候本来想用聚类法给点集分类的 xff0c 但是太复杂了 xff0c 于是最后没有采用这个方案 现在把之前做的一些工作整理出来写个小博客 K means聚类法原理 xff1a 聚类是一个将数据集中在某些方面相似的数据成员进行分
  • 复合型自适应步长的Gauss型求积(附代码)

    复合型自适应步长的Gauss型求积 先前在做数值分析实验时 xff0c 把高斯型求积公式和复合型 自适应步长的求积融合到了一起 xff0c 但是后来发现题目没有这个要求 现在就把这个思路分享一下 上题目 xff1a 实验目的 xff1a 学
  • pid摄像头循迹(opencv和openmv)

    pid摄像头循迹 xff08 opencv和openmv xff09 用摄像头进行循迹的方法参考硬件选型方面软件思路一 图像预处理 xff1a 代码部分二 线性拟合opencv线性拟合 xff1a 实际在树莓派上运行时 xff0c 帧率也比

随机推荐

  • 通过云端自动生成openmv的神经网络模型,进行目标检测

    通过云端自动生成openmv的神经网络模型 xff0c 进行目标检测 OpenMV训练神经网络模型 xff08 目标识别 xff09 一 准备材料 xff1a 二 软件下载三 准备数据集 xff1a 四 数据集的上传与训练 OpenMV训练
  • opencv学习(9):cv::Scalar、cv::Mat::zeros

    1 cv Scalar cv Scalar是opencv的一个结构体 xff0c 其定义如下 xff1a xff08 c 43 43 中的结构体如下 xff0c 可以存放1 4个数值 xff09 various constructors S
  • 德国大陆ARS408系列毫米波雷达数据解析

    本人已完成对该型号系列毫米波雷达的解析工作 xff0c 有需求请私信联系
  • nmap使用详解

    nmap介绍 nmap xff08 Network Mapper xff09 是一款开源免费的针对大型网络的端口扫描工具 xff0c nmap可以检测目标主机是否在线 主机端口开放情况 检测主机运行的服务类型及版本信息 检测操作系统与设备类
  • OLED屏幕花屏的原因(I2C+DMA)

    OLED屏幕在通电后花屏 xff0c 呈雪花状 在网上查询原因 xff0c 开始了尝试 xff1a 1 可能是由于杜邦线的问题 xff0c 可能接触不良导致 xff0c 但更换了杜邦线依然花屏 2 可能是OLED屏幕问题 因为经常在工作 x
  • 竞赛保研(自动化专业)

    一 感谢 从大三的五月份一直到9 28号推免结束 xff0c 最终也是保研到了梦校 xff0c 还好我坚持到了最后一刻 感谢父母 xff0c 感谢远方的她 xff0c 感谢老师 xff0c 感谢实验室的平台 xff0c 也要感谢每一位一起拼
  • 随机森林的简单学习记录

    随机森林小记 这里采用的随机森林的库选择sklearn库 1 首先是导入数据 xff1a path span class token operator 61 span span class token string 34 D Epilept
  • Linux的c++环境配置与cmake的使用

    Ubuntu18 04安装 虚拟机安装 虚拟机软件版本 xff1a VMware Workstation 16 Pro 版本号 xff1a Ubuntu18 04 安装参考 xff1a http t csdn cn P71XR 虚拟机分辨率
  • 用KDevelop来编辑与编译ROS文件

    新建一个ROS工程 xff1a 首先在工作目录下打开终端 xff0c 创建一个src目录 xff0c 放置源代码 xff08 系统要求 xff09 xff0c 并将当前目录切换到src目录中 xff1a mkdir src cd src s
  • 自制三维激光扫描建模

    看图片就是我做的东西 xff0c 很炫酷是不是 好吧 xff0c 开玩笑 xff0c 这是电影普罗米修斯的截图 当初看这个电影的时候就感觉这东西好眩酷 xff0c 我能不能做出来 最近借着帮做毕业设计的机会我也做了一个 就是这个丑丑的东西啦
  • ICE C++ Hello World

    ICE C 43 43 Hello World实例教程 1 概述 本文演示了如何编写一个最简单的C 43 43 ICE Internet Communications Engine 应用程序 xff0c 包括必要环境的安装 该应用程序包含客
  • 华为工作的感悟

    参考 xff1a http www openlab net cn forums thread 1002986 1 p10035795 北邮北 xff0c 清华硕 xff0c 一年两个月的华为生活总结 xff0c 算了 xff0c 贴出来了
  • MRCP 媒体资源控制协议

    媒体资源控制协议 xff08 Media Resource Control Protocol MRCP xff09 是一种通讯协议 xff0c 用于语音服务器向客户端提供各种语音服务 如语音识别和语音合成 MRCP并不定义会话连接 xff0
  • matlab(1):使用matlab处理excel数据进行画图

    目录 0 说明 1 直接使用xlsread读取出错 2 解决办法 3 绘图 0 说明 Excel数据示例 xff08 number filter radius 0 8 3 csv xff09 xff0c 一共99行数据 xff08 4列 x
  • Hadoop中VIntWritable编码方式解析

    最近因为实验室的云计算项目 xff0c 开始学习Hadoop xff0c 有时间就记录一下自己在学习过程中的一些小收获吧 Hadoop权威指南 在序列化这一节有个例子程序 xff0c 叫做TextPair xff0c 代码略长 xff0c
  • MapReduce中的二次排序

    在MapReduce操作时 xff0c 我们知道传递的 lt key value gt 会按照key的大小进行排序 xff0c 最后输出的结果是按照key排过序的 有的时候我们在key排序的基础上 xff0c 对value也进行排序 这种需
  • 基于哈夫曼编码的文件压缩解压

    这个程序是研一上学期的课程大作业 当时 xff0c 跨专业的我只有一点 C 语言和数据结构基础 xff0c 为此 xff0c 我查阅了不少资料 xff0c 再加上自己的思考和分析 xff0c 实现后不断调试 测试和完善 xff0c 耗时一周
  • 2020-12-29 Matlab自动化控制-Adrc自抗扰控制参数调节

    Matlab自动化控制 Adrc自抗扰控制参数调节 上篇参看 xff1a https blog csdn net qingfengxd1 article details 111830762 以最简单的线性组合方法 xff08 1 xff09
  • 单级倒立摆的神经网络控制

    倒立摆系统是一种典型的多变量 非线性 强耦合模型 xff0c 它作为一种被控对象 xff0c 用来检验控制理论的可行性和控制的稳定性 人工神经网络由于具有信息的分布存储 并行处理以及自学习能力等优点 xff0c 在信息处理 模式识别 智能控
  • 基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现

    1 内容简介 略 489 可以交流 咨询 答疑 2 内容说明 无人机 xff0c 英文名称UAV C Unmanned Aerial Vehicle xff0c 是一种特殊的飞行器 xff0c 可以按照预先设定的轨迹进行各种运动 xff0c