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

news2025/7/10 7:03:49

模型辨识篇

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

  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完成控制器的设计—建模——古月居可查看全文

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

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

相关文章

LabVIEW与Matlab联合编程的途径及比较

​ LabVIEW和Matlab联合编程可以通过多种途径实现,包括调用Matlab脚本节点、使用LabVIEW MathScript RT模块、利用ActiveX和COM接口,以及通过文件读写实现数据交换。每种方法都有其独特的优势和适用场景。本文将详细比较这些方法,帮助开发者…

【Kubernetes】集群学习

常见的 Kubernetes 集群类型 Kubernetes 集群可以根据不同的标准进行分类,但通常我们根据其部署环境和用途来区分集群类型。以下是几种常见的 Kubernetes 集群类型: 开发集群(Development Cluster): 用于开发和测试环…

RAG优化技巧|7大挑战与解決方式|提高你的LLM能力

在当今快速发展的人工智能领域,大型语言模型(LLM)已经成为无处不在的技术,它们不仅改变了我们与机器交流的方式,还在各行各业中发挥着革命性的影响。 然而,尽管LLM RAG的能力已经让人惊叹,但我…

分享一下,如何搭建个人网站的步骤

在这段充满探索与创造的奇妙旅途中,我就像一位耐心的建筑师,在数字世界的荒原上精心雕琢,两周的时光缓缓流淌。每天,我与代码共舞,手执HTML、CSS与JavaScript这三大构建魔杖,一砖一瓦地筑起了梦想中的网络城…

string类(C++)

文章目录 一.引言二.string类:成员函数:构造函数:析构函数 遍历:operator[]迭代器(iterator)范围for反向遍历(反向迭代器reverse_iterator)const迭代器 容器:capacity扩容clear清数据shrink_to_…

Azure数据分析Power BI

Azure数据分析Power BI 一、Power BI简介二、Power BI 如何匹配角色三、Power BI 构建基块四、使用 Power BI 服务一、Power BI简介 Microsoft Power BI 是一系列的软件服务、应用和连接器,这些软件服务、应用和连接器协同工作,将不相关的数据源转化为合乎逻辑、视觉上逼真的…

Web渗透:XSS-反射型存储型

跨站脚本攻击(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,它允许攻击者将恶意脚本注入到网页中,其他用户在浏览这些页面时,可能会执行这些恶意脚本,从而导致各种安全问题,如…

关于STM32上用HID HOST调鼠标数据的解析

一、前言 关于这章主要是基于我前面的那篇文章 链接: 关于怎么用Cubemx生成的USBHID设备实现读取一体的鼠标键盘设备(改进版) https://blog.csdn.net/qq_29187987/article/details/139535648?spm1001.2014.3001.5501 引用的文章的简介 引用的这篇文…

【文末附gpt升级秘笈】AI音乐大模型崛起:版权归属与创意产业的新挑战

AI音乐大模型崛起:版权归属与创意产业的新挑战 随着科技的飞速发展,人工智能(AI)已经深入到社会生活的各个领域,音乐领域也不例外。最近一个月,轮番上线的音乐大模型不仅为普通人打开了音乐创作的大门&…

am62x芯片安全类型确认(HS-SE, HS-FS or GP)

文章目录 芯片安全类型设置启动方式获取串口信息下载脚本运行脚本示例sk-am62x板卡参考芯片安全类型 AM62x 芯片有三个安全级别。 • GP:通用版本 • HS-FS:高安全性 - 现场安全型 • HS-SE:高安全性 - 强制安全型 在SD卡启动文件中,可以查看到, 但板上的芯片,到底是那…

手把手教你挖赏金系列(2)如何挖掘短信验证码漏洞

免责声明 由于传播、利用本公众号所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担。LK安全公众号及原文章作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢&#…

计算机网络 —— 应用层(DHCP)

计算机网络 —— 应用层(DHCP) 什么是DHCPDHCP工作过程DHCP DISCOVERDHCP OFFERDHCP RQUESTDHCP ACK DHCP租约机制中继代理工作原理功能与优势 我们今天来计网的DHCP: 什么是DHCP DHCP(Dynamic Host Configuration Protocol&…

人工智能这么厉害,比如GPT-4,为什么没有看到程序员大量失业?

从ChatGPT第一版发布到现在,还不到一年的时间中,可是它使用的GPT架构已经从3.5版本进化到现在的4.0版本,随之而来的是其能力的极大提升。下面是GPT-4在其官网的介绍中的一句话: GPT-4是OpenAI最先进的系统,可以产生更安…

FlowUs:打造沉浸式协作体验感受

直观的用户体验 从我个人的角度来看,FlowUs的界面设计非常符合现代审美,简洁而不失功能性。每次打开FlowUs,我都能迅速找到我需要的功能,这大大提升了我的工作效率。 实时协作的流畅性 在FlowUs中,我最喜欢的功能之一就…

记录:[android] SSLHandshakeException: Handshake failed 问题;已解决!

1、问题描述:在使用Retrofit2 时在安卓老设备上(安卓6.0)网络无法请求、安卓 10 、 11 未出现此问题?what? 原因:服务端 TLS 版本过高 2、废话不多说、解决方案A 、添加依赖:implementation org.conscrypt…

[面试题]Kafka

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

如何才能入手到好的开放式耳机,总结六招耳机亲测好方法

作为一款当代年轻人基本离不开的数码产品,很有理由进入这次618的必买清单;但是如果不是耳机领域或者是数码领域的,对于耳机的参数、数据和使用等都不了解,就很容易造成踩雷,不仅浪费钱,还浪费时间&#xff…

国际版游戏陪练源码电竞系统源码支持Android+IOS+H5

🎮电竞之路的得力助手 一、引言:电竞新纪元,陪练小程序助力成长 在电竞热潮席卷全球的今天,每一个电竞爱好者都渴望在竞技场上脱颖而出。然而,独自一人的游戏之路往往充满了挑战和困难。幸运的是,国际版游…

14:补充-变量作用域-页面加载

试问:在控制台打印person1、person2结果是什么? var person2{name:"张三",age:21}//页面加载完成执行的事件window.onloadfunction(){var person1{name:"李四",age:18}} 打印结果:在控制台中发现person1这个变量不存在 原…

iptables(3)规则管理

简介 上一篇文章中,我们已经介绍了怎样使用iptables命令查看规则,那么这篇文章我们就来介绍一下,怎样管理规则,即对iptables进行”增、删、改”操作。 注意:在进行iptables实验时,请务必在个人的测试机上进行,不要再有任何业务的机器上进行测试。 在进行测试前,为保障…