RflySim | 定点位置控制器设计实验二

基础实验

1.复现四旋翼Simulink仿真,分析控制作用在obxb轴和obyb轴的解耦。

2.对系统进行扫频以绘制Bode图,分析闭环位置控制系统稳定裕度。

3.完成硬件在环仿真。

本实验对应demo文件对于RflySim v3.0以下版本地址为:*\PX4PSP\RflySimAPIs\Exp02_FlightControl\e6-PositionCtrl\e6.1;

对于RflySim v3.0及以上版本地址为:*\PX4PSP\RflySimAPIs\5.RflySimFlyCtrl\1.BasicExps\e6-PositionCtrl\e6.1。

Simulink仿真——通道解耦:打开”e6-PositionCtrl\PID-Config\e6.1\Sim\Init_control.m 文件。如图,点击运行,进行参数初始化。此时,PosControl_Sim.slx将会自动打开,如下图。

图片

打开Rflysim3D.exe,然后点击Simulink“Run”按钮开始仿真。此时可以在UE5中观察多旋翼的状态,如下图可以看到多旋翼先上升到空中,然后向OeOy轴方向飞行,最后悬停。

图片

通道解耦分析:在PosControl_Sim.slx文件中双击Scope2可以观测四旋翼的位置信息,如下图所示。

图片

图片

稳定裕度:打开文件“e6-PositionCtrl\PID-Config\e6.1\tune\Init_control.m”文件初始化参数,”PosControl_tune.slx”将会自动打开。如下图,双击打开上述文件的”Control System”,进入子模块,双击子模块中的”position_control”模块,进入目标模块,将期望x通道输入线设为”Open-loop Input”,x通道的实际输出设置为”Open-loop Output”。

图片

选择Simulink上面菜单中的”Analysis”,在下拉菜单中选择”Control Design”,选择”Linear Analysis”。在弹出的窗口选择”LINEAR ANALYSIS”,点击Bode得到Bode图。

图片

在曲线中点击鼠标右键,选择”Characteristics”-“All Stability Margins”,可得到幅值裕度为15.3dB,此时的频率为3.97rad/s;相位裕度为65.5,频率为1.04 rad/s。

图片

硬件在环仿真:运行文件” e6-PositionCtrl\PID-Config\e6.1\HIL\Init_control.m”进行参数初始化,”PosControl_HIL.slx” 将会自动打开,如下图所示。

图片

将遥控器与遥控器接收器对码完成并在飞控中插入SD卡后,如图将遥控器接收机和飞控连接好。

图片

注意:电源线接线顺序从上到下依次为黑红黄

代码编译及下载:将硬件在环仿真模型编译并下载文件到Pixhawk 自驾仪中。这样就可以在Pixhawk自驾仪中运行我们自己设计的位置控制程序。

将飞控连接好后,通过数据线连接到PC。然后进入”PosControl_HIL.slx”界面,进行如下图操作。

图片

烧录成功显示如下图所示:

图片

上传成功后,在QGC中校准遥控器并设置飞行模式,完成后双击打开"*\桌面\RflyTools\HITLRun.lnk"或"*\PX4PSP\RflySimAPIs\HITLRun.bat"文件,在弹出的CMD对话框中输入插入的飞控Com端口号,即可自动启动RflySim3D、CopterSim、QGroundControl软件,等待CopterSim的状态框中显示:PX4: GPS 3D fixed & EKF initialization finished。

图片

遥控器的设置如下图,通过控制不同的通道即可在RflySim3D中观察到无人机的飞行姿态,完成硬件在环仿真。

图片

通过CH5解锁之后,在RflySim3D中即可看到飞机正常起飞,通过Step 12中CH1~CH4调整飞机姿态和高度。

参考文献:

[1] 全权,杜光勋,赵峙尧,戴训华,任锦瑞,邓恒译.多旋翼飞行器设计与控制[M],电子工业出版社,2018.

[2] 全权,戴训华,王帅.多旋翼飞行器设计与控制实践[M],电子工业出版社,2020.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode每日一题】2085. 统计出现过一次的公共字符串(哈希表)

2024-1-12 文章目录 [2085. 统计出现过一次的公共字符串](https://leetcode.cn/problems/count-common-words-with-one-occurrence/)思路:哈希表计算 2085. 统计出现过一次的公共字符串 思路:哈希表计算 1.用两个哈希表分别统计word1和word2中字符出现的…

gcc/g++工具详解

目录 一、安装gcc/g 二、背景知识 三、相关选项 四、gcc如何工作 1.预处理 2.编译 3.汇编 4.链接 5.函数库的概念 6.动静态库 一、安装gcc/g gcc/g -v : 用来查看当前你使用的gcc/g版本 因为我的gcc/g是升级过的所以版本更高,如果你用的是centos7.6的话…

PyCharm连接服务器(利用PyCharm实现远程开发)

利用PyCharm实现远程开发 注:该功能只有在PyCharm专业版下才可以使用,并且必须是官方的正版许可,破解版的是不可以使用的!!!可以通过免费教育许可申请使用权限(申请流程)。 pycharm…

使用C语言调用 liblapack.a 的使用方法及其原理探析

1&#xff0c; 使用方法 1.1 源代码 #include <stdio.h> //#include <lapack/lapacke.h> extern void dgesv_(int*m, int* n, double*A, int*k, int*IP, double*B, int*j, int*info);#define M 2 #define N 2int main() {int i, j, nN, mM;int info, IPIV[N];doub…

x-cmd pkg | busybox - 嵌入式 Linux 的瑞士军刀

目录 简介首次用户功能特点竞品和相关作品 进一步阅读 简介 busybox 是一个开源的轻量级工具集合&#xff0c;集成了一批最常用 Unix 工具命令&#xff0c;只需要几 MB 大小就能覆盖绝大多数用户在 Linux 的使用&#xff0c;能在多款 POSIX 环境的操作系统&#xff08;如 Linu…

大数据实时抓取软件:Maxwell学习网站的高效框架!

介绍&#xff1a;Maxwell是由美国Zendesk开源的&#xff0c;使用Java编写的MySQL实时抓取软件。它能够实时读取MySQL的二进制日志&#xff08;Binlog&#xff09;&#xff0c;并将这些信息生成为JSON格式的消息。进一步地&#xff0c;Maxwell将这些消息作为生产者发送给Kafka、…

腾讯云COS桶文件上传下载工具类

1&#xff0c;申请key和密钥 2&#xff0c;引入依赖 <dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.24</version></dependency>3&#xff0c;工具类 package com.example.activi…

python包管理工具:pipenv的基本使用

很多语言都提供了环境隔离的支持&#xff0c;例如nodejs的node_module&#xff0c;golang的go mod&#xff0c;python也有virtualenv和pyvenv等机制。 为了建立依赖快照&#xff0c;通常会用pip freeze > requirements.txt 命令生成一个requirements.txt文件&#xff0c;在…

手敲Mybatis(16章)-一级缓存功能实现

1.实现目的 这一节的目的主要是实现SqlSession级别的缓存&#xff0c;也就是一级缓存&#xff0c;首先看下图一&#xff0c;用户可以通过设置来进行是否开启一级缓存&#xff0c;不设置的化默认开启一级缓存&#xff0c;localCacheScopeSESSION为要设置一级缓存&#xff0c;lo…

Android开发基础(二)

Android开发基础&#xff08;二&#xff09; 上篇主要描述了Android系统架构&#xff0c;代码是通过Java表示的&#xff1b; 本篇将从介绍Android组件去理解Android开发&#xff0c;代码将对Java和Kotlin进行对比。 Android组件 Android应用程序由一些零散的有联系的组件组成…

JS-DOM树和DOM对象

作用和分类 作用&#xff1a;就是使用JS去操作html和浏览器 分类&#xff1a;DOM&#xff08;文档对象模型&#xff09;、BOM&#xff08;浏览器对象模型&#xff09; 什么是DOM DOM&#xff08;Document Object Model--文档对象模型&#xff09;是用来呈现以及与任意HTML或…

Python商业数据挖掘实战——爬取网页并将其转为Markdown

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 ChatGPT体验地址 文章目录 前言前言正则表达式进行转换送书活动 前言 在信息爆炸的时代&#xff0c;互联网上的海量文字信息如同无尽的沙滩。然而&#xff0c;其中真正有价值的信息往往埋…