【Tello无人机】使用Matlab完成控制器的设计—建模

模型辨识篇

  在实际的无人机系统中,控制器的设计至关重要,它直接影响无人机的稳定性和响应能力。然而,要设计出高效、可靠的控制器,首先必须准确理解无人机的动态行为,这就需要通过收集输入输出数据来辨识其运动学模型。运动学模型是描述无人机在空间中运动规律的数学模型,它通常包含了无人机的位置、速度、加速度以及与之相关的控制输入等参数。通过辨识运动学模型,能够理解无人机在受到不同控制输入时的响应方式,这对于控制器设计极为重要。具体来说,这个过程包括以下几个步骤:

  1. 数据采集:在实际飞行测试中,通过无人机上的传感器收集关于其位置、速度、姿态等的数据,同时记录下相应的控制输入信息,如推力、方向控制等。

  2. 模型假设:在数据分析之前,需要先建立运动学模型的基本形式。这通常涉及到选择合适的数学结构来描述无人机的运动,如线性模型、非线性模型或是混合模型等。

  3. 参数辨识:使用统计或机器学习方法,如最小二乘法、神经网络等,根据收集到的数据来估计模型的参数。这一步的目标是找到一组参数,使得模型能够尽可能准确地预测无人机的实际行为。

  4. 模型验证:通过将模型预测的结果与实际飞行数据进行对比,评估模型的准确性和可靠性。如果模型表现不佳,可能需要返回上一步调整模型结构或参数,或者收集更多数据进行分析。

完成运动学模型的辨识后就可以基于该模型设计控制器。

1.数据采集

期望速度输入:

desv_{x}= 0.3\cdot cos(\theta )

desv_{y}= 0.2\cdot sin(\theta )

input_data = [desv_x, desv_y]

位置差分得到速度输出:

output_{data}=[\underset{\Delta t}{real_{x}- lastreal_{x}},\underset{\Delta t}{real_{y}- lastreal_{y}}]

output_data = np.array([real_x - last_real_x, real_y - last_real_y]) / 0.001

其中0.001为采样时间

仿真环境中运动轨迹:

这样得到了无人机的输入输出速度,可进行下一步的模型辨识。

2.模型辨识

2.1数据查看

将保存的数据导入Matlab,x,y方向的输入输出速度关系如下:

2.2辨识工具箱

打开系统辨识工具箱:【System ldentification】

导入数据:选择时域

选择要导入的数据名称

成功导入:

点击Time plot查看导入的数据是否正确:

数据预处理:Matlab系统辨识工具箱提供了一系列数据预处理功能,我们这里选择去均值

  1. Select channels…:选择数据通道功能允许用户从多通道数据中选择特定的通道进行分析。适用于处理多变量系统时,当用户仅对系统中的部分变量感兴趣或需要排除某些变量的干扰时使用。
  2. Select experiments…:选择实验功能用于从数据集中选择特定的实验或数据批次进行分析。这在处理包含多个实验条件或批次的数据集时特别有用,允许用户专注于特定条件下的系统行为。
  3. Merge experiments…:合并实验功能允许用户将来自不同实验或数据批次的数据合并为一个单一数据集。这对于增加数据量以提高系统模型的鲁棒性和泛化能力特别有用。
  4. Select range…:选择范围功能使用户能够指定数据集中的特定时间范围或数据点范围进行分析。这适用于专注于特定事件或系统响应阶段的分析。
  5. Remove means:去除均值功能用于从数据中去除平均值,通常用于消除静态偏置或将数据中心化,有助于突出数据的动态变化。
  6. Remove trends:去除趋势功能用于消除数据中的线性或非线性趋势。这对于处理具有时间相关趋势的数据非常有用,可以帮助揭示系统的内在动态行为。
  7. Filter…:滤波功能允许用户应用各种滤波器来处理数据,以去除噪声或提取感兴趣的信号频段。这在数据含有高频噪声或需要分析特定频率内容时非常有用。
  8. Resample…:重采样功能用于改变数据的采样率,通过插值或降采样来适应不同的分析需求。适用于处理采样率不一致的数据或优化处理速度。
  9. Transform data…:数据转换功能提供了多种数据转换方法,如对数变换、幂律变换等,用于改善数据的统计特性或适应特定的分析方法。
  10. Quick start:快速开始指南为用户提供了一个简易的操作流程,帮助用户快速开始数据预处理,尤其适用于初学者或需要快速处理数据的场景。

将预处理完成后,需要进行辨识的数据拖入working区域:

点击【Tello无人机】使用Matlab完成控制器的设计—建模——古月居可查看全文

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

天池人脸识别项目复现

1 项目背景 #c 概述 项目的目的 图像分类是整个计算机视觉领域中最基础的任务,也是最重要的任务之⼀,最适合拿来进⾏学习实践。为了让新⼿们能够⼀次性体验⼀个⼯业级别的图像分类任务的完整流程,本次我们选择带领⼤家完成⼀个对图片中⼈脸进…

从0开始C++(二):类、对象、封装

目录 类&对象的概念 类的内容 对象的创建 ● 栈内存对象 ● 堆内存对象 封装 类&对象的概念 类和对象是一个比较抽象的概念,这里直接用一个实例方便理解。 类:类是一个抽象的概念,用来描述同一类对象的特点(比如&am…

从零开始如何学习人工智能?

说说我自己的情况:我接触AI的时候,是在研一。那个时候AlphaGo战胜围棋世界冠军李世石是大新闻,人工智能第一次出现我面前,当时就想搞清楚背后的原理以及这些技术有什么作用。 就开始找资料,看视频。随着了解的深入&am…

第 三 方 组 件 e l e m e n t - u i[Vue]

一、组件之间的传值 组件可以由内部的Data提供数据&#xff0c;也可以由父组件通过prop的方式传值。 兄弟组件之间可以通过Vuex等统一数据源提供数据共享 第一种 Movie.vue <template><div><h1>我才不要和你做朋友</h1></div></template&…

怎么为自己的VPS选择合适的CPU和RAM?

为网站选择VPS&#xff08;虚拟专用服务器&#xff09;与为家庭或办公室选择台式机或笔记本电脑没有什么不同。基本上&#xff0c;您要做的就是查看硬件配置并比较功能和价格。 然而&#xff0c;虽然您可能对个人计算机所需的资源类型有一个粗略的估计&#xff0c;但为服务器获…

API接口测试要注意什么?API接口如何开发?

API接口怎么保证数据安全&#xff1f;如何安全调用邮件API接口&#xff1f; API接口不仅能够确保系统的稳定性和可靠性&#xff0c;还能提高开发效率和用户满意度。然而&#xff0c;要进行有效的API接口测试&#xff0c;需要注意多个方面。AokSend将介绍一些关键点&#xff0c…

全面赋能,永久免费!讯飞星火API能力正式免费开放

2023年5月&#xff0c;讯飞星火正式发布&#xff0c;迅速成为千万用户获取知识、学习知识的“超级助手”&#xff0c;成为解放生产力、释放想象力的“超级杠杆”。 2024年5月&#xff0c;讯飞星火API能力正式免费开放&#xff0c;携手生态开发者加快大模型赋能刚需场景。 领…

【软件工程】【22.10】p1

关键字&#xff1a; 软件需求分类、性能需求、数据流图加工、用例关系、捕获系统功能用例、RUP设计层术语、故障、调试、集成测试、需求分析过程、CMMI实践部件、CMMI能力等级 软件需求规约基本性质、模块控制、协作、UML结点、事件、RUP体系结构、RUP移交、静态评估技术、测…

Java共享台球室无人系统支持微信小程序+微信公众号

共享台球室无人系统 &#x1f3b1; 创新台球体验 近年来&#xff0c;共享经济如火如荼&#xff0c;从共享单车到共享汽车&#xff0c;无一不改变着我们的生活方式。而如今&#xff0c;这一模式已经渗透到了更多领域&#xff0c;共享台球室便是其中之一。不同于传统的台球室&a…

DOPE-FITC在细胞定位、动态追踪等方面的应用-星戈瑞

DOPE-FITC作为一种荧光标记磷脂&#xff0c;在细胞生物学研究中发挥着科研作用。其荧光特性和与细胞膜的亲和性&#xff0c;使其成为细胞定位、动态追踪等方面的工具。 细胞定位 DOPE-FITC能够有效地标记细胞膜&#xff0c;使得细胞膜在荧光显微镜下呈现出明亮的绿色荧光。这种…

triton矩阵乘以及缓存优化

这里triton.cdiv(M, META[BLOCK_SIZE_M]) * triton.cdiv(N, META[BLOCK_SIZE_N])&#xff0c;所以grid的形状是一维的。 观察函数内部 pid tl.program_id(axis0)&#xff0c;因为grid是一维的&#xff0c;所以这里就是总块数&#xff0c;我们假设实际A*BC&#xff0c; A&…

ubuntu链接mysql

C链接mysql 报错 sudo apt-get update sudo apt-get install libmysqlclient-dev 指令编译 g -o mysql_example mysql_example.cpp -I/usr/include/mysql -lmysqlclient g mysql_test.cpp mysql_config --cflags --libs 安装mysql sudo apt updatesudo apt install mysql-…

跟着ChatGPT4o学全栈,我看到未来“学习”的模样

引言 大模型是否会取代人类&#xff0c;以及它将取代哪些工作&#xff0c;这或许是许多人焦虑的问题。对此&#xff0c;众说纷纭&#xff0c;网络上各种观点层出不穷。虽然这些问题对未来的重要性不容忽视&#xff0c;但它们对于当下的我们缺少实际的指导意义。因此&#xff0…

SpringMVC系列十一: 文件上传与自定义拦截器

文章目录 SpringMVC文件上传基本介绍需求分析 / 图解应用实例-代码实现 自定义拦截器什么是拦截器自定义拦截器执行流程分析图自定义拦截器应用实例快速入门注意事项和细节Debug执行流程 多个拦截器多个拦截器执行流程示意图应用实例1代码实现注意事项和细节 应用实例2 作业布置…

[创业之路-118] :制造业企业的必备管理神器-ERP-制造业的基本方程式与ERP的发展历程,哪些企业需要ERP?

目录 一、制造业的基本方程式 1.1 基本方程式 1.2 制造的数学模型 二、ERP的发展历程 2.1 发展历程 2.2 比较 三、过往产品回顾 3.1 定货点法 3.2 时段式ERP 3.3 闭环式MRP 3.4 ERP 四、哪些企业需要ERP 4.1 概述 4.2 软件企业需要ERP吗&#xff1f; 一、制造业的…

【计算机网络篇】数据链路层(6)共享式以太网_网络适配器_MAC地址

文章目录 &#x1f354;网络适配器&#x1f354;MAC地址&#x1f5d2;️IEEE 802局域网的MAC地址格式&#x1f4d2;IEEE 802局域网的MAC地址发送顺序&#x1f95a;单播MAC地址&#x1f95a;广播MAC地址&#x1f95a;多播MAC地址&#x1f50e;小结 &#x1f354;网络适配器 要将…

汇川h3U用modbus配置扩展IO

扩展IO模块为4个艾莫迅RTU简易版&#xff0c;16输入&#xff0c;16输出。物理连接为RS485&#xff0c;A B两根线。 下面为H3Umodbus配置&#xff0c;关键是协议选择为&#xff1a;MODBUS主站配置。协议配置&#xff1a;和从站保持一致 通过下图的程序及配置&#xff0c;已经可…

VB打开word文档

在编码之前&#xff0c;先安装Microsoft.Office.Interop.Word Imports Microsoft.Office.InteropModule Module1Sub Main() 创建Word应用程序实例Dim wordApp As New Word.Application() 设置为可见wordApp.Visible True 打开指定的Word文档Dim doc As Word.Document wordA…

期货分仓软件的搭建流程

期货分仓软件的搭建流程&#xff0c;是一个涉及多个环节的复杂过程。首先&#xff0c;明确功能需求是至关重要的&#xff0c;这有助于更好地规划软件的开发和设计。接下来&#xff0c;技术选型是关键一步&#xff0c;需要根据开发经验和项目需求&#xff0c;选择适合的编程语言…

maven archetype项目构架

1、设置环境变量 set MAVEN_HOMED:\SF\java\apache-maven-3.6.3 set path%path%;%MAVEN_HOME%\bin;2、制作archetype mvn -s "D:\SF\java\apache-maven-3.6.3\conf\settings.xml" archetype:create-from-project -DpackageNamecom.demo.esb-s:指定maven的setting文…