【无人机】回波状态网络(ESN)在固定翼无人机非线性控制中的应用(Matlab代码实现)

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

无人机为执行各种军事和民用任务提供了平台。这包括情报、监视和侦察( ISR )、战场损伤评估和部队保护等军事应用。民用应用包括遥感、科学研究、搜救任务、边境巡逻、受灾地区监测、航空摄影、航空测绘岩土工程、植被生长分析、农作物除尘、精准农业、地形变化评估等。无人机产业是航天工业中发展最快的部门,民用无人机的使用也在显著增长。据估计,在未来十年中,无人机的支出将从目前全世界每年52亿美元的支出翻一番。一旦技术成熟,将无人机集成到国家空间系统( NAS )中,本文是为无人机开发自适应飞行控制器。包括多层感知器( MLP )和回声状态网络( ESN )。MLP用于离线模型,而ESN用于在线模型。MLP将成为焦点,因为它的自适应和循环行为允许它自然地坚持经典控制律,并完成反馈回路。ESN采用有监督的时序方法进行机器学习。这使得它成为解决诸如飞行控制器等动态系统问题的备选方案。MLP将主要用于误差校正。ESN是稀疏连接的,隐藏层有12个神经元,具有单一的输入和输出信号。隐藏层充当一个储液器,因为它表现出电流已知的40 %泄漏率。详细文章讲解见第4部分。

📚2 运行结果

 

 部分代码:

% NSF Twin Engine Doublet Data

clc
clear

% Read log file
Data = xlsread('Fri May 24 14-54-11 2013e.xlsx');

% Read in time (ms) 
t = Data(:,1)-27081;

% Convert milli seconds to seconds
tsec = t./1000;

% Convert seconds to minutes
tmin = tsec./60;

% Determine the point at which 1 Hz recording to 10 Hz recording
tdiff = diff(tsec);

%Change time set to only contain 10 Hz data
tsec2 = tsec(829:4557);

%Roll Rate
P = Data(:,32).*(180/pi());
Pflight = P(829:4557);

% Pitch Rate
Q = Data(:,33).*(180/pi());
Qflight = Q(829:4557);

% Yaw Rate
R = Data(:,34).*(180/pi());
Rflight = R(829:4557);

% Roll
Roll = Data(:,38).*(180/pi());
Roll_flight = Roll(829:4557);

% Pitch
Pitch = Data(:,39).*(180/pi());
Pitch_flight = Pitch(829:4557);

% Yaw
Yaw = Data(:,40).*(180/pi());
Yaw_flight = Yaw(829:4557);

% Acknowledgement Ratio
AckRatio = Data(:,49);
AckRatio_flight = AckRatio(829:4557);

% RSSI
RSSI = Data(:,50);
RSSI_flight = RSSI(829:4557);

% Surface 0
% Aileron
Surface0 = Data(:,51);
Sur0_flight = Surface0(829:4557).*(180/pi());

% Looking for constant surface deflection
Aileron1_diff = diff(Sur0_flight);

% Surface 1
% Elevator
Surface1 = Data(:,52).*(180/pi());
Sur1_flight = Surface1(829:4557);

% Looking for constant surface deflection
Elevator1_diff = diff(Sur1_flight);

% Surface 2
% Throttle
Surface2 = Data(:,53);
Sur2_flight = Surface2(829:4557);

% Looking for constant surface deflection
Throttle1_diff = diff(Sur2_flight);

% Surface 3
Surface3 = Data(:,54).*(180/pi());
Sur3_flight = Surface3(829:4557);

% Looking for constant surface deflection
Sur3_diff = diff(Sur3_flight);

% Surface 4
Surface4 = Data(:,55).*(180/pi());
Sur4_flight = Surface4(829:4557);

% Looking for constant surface deflection
Sur4_diff = diff(Sur3_flight);

% Surface 5
% Aileron
Surface5 = Data(:,56).*(180/pi());
Sur5_flight = Surface5(829:4557);

% Looking for constant surface deflection
Aileron2_diff = diff(Sur5_flight);

% Surface 6
% Elevator
Surface6 = Data(:,57).*(180/pi());
Sur6_flight = Surface6(829:4557);

% Looking for constant surface deflection
Elevator2_diff = diff(Sur6_flight);

% Surface 7
% Throttle
Surface7 = Data(:,58);
Sur7_flight = Surface7(829:4557);

% Looking for constant surface deflection
Throttle2_diff = diff(Sur7_flight);

% Roll 3-2-1-1
% 1567-1624 No Elevator Movement
subplot(3,2,1)
plot(tsec2(1567:1624),Sur0_flight(1567:1624))
xlabel('time (seconds)')
ylabel('deflection (degrees)')
title('Roll 3-2-1-1')

subplot(3,2,2)
plot(tsec2(1567:1624),Roll_flight(1567:1624))
title('Roll Response')
xlabel('time (seconds)')
ylabel('roll angle (degrees)')

% 1733-1805 No Elevator Movement
subplot(3,2,3)
plot(tsec2(1733:1805),Sur0_flight(1733:1805))
xlabel('time (seconds)')
ylabel('deflection (degrees)')

subplot(3,2,4)
plot(tsec2(1733:1805),Roll_flight(1733:1805))
xlabel('time (seconds)')
ylabel('roll angle (degrees)')
% 2563-2628 No Elevator Movement

subplot(3,2,5)
plot(tsec2(2563:2628),Sur0_flight(2563:2628))
xlabel('time (seconds)')
ylabel('deflection (degrees)')

subplot(3,2,6)
plot(tsec2(2563:2628),Roll_flight(2563:2628))
xlabel('time (seconds)')
ylabel('roll angle (degrees)')

% Pitch 3-2-1-1
% 908 - 980 No Aileron Movement
figure
subplot(3,2,1)
plot(tsec2(908:980),Sur1_flight(908:980))
xlabel('time (seconds)')
ylabel('deflection (degrees)')
title('Pitch 3-2-1-1')

subplot(3,2,2)
plot(tsec2(908:980),Pitch_flight(908:980))
title('Pitch Response')
xlabel('time (seconds)')
ylabel('roll angle (degrees)')

% 1068 - 1148 No Aileron Movement
subplot(3,2,3)
plot(tsec2(1068:1148),Sur1_flight(1068:1148))
xlabel('time (seconds)')
ylabel('deflection (degrees)')

subplot(3,2,4)
plot(tsec2(1068:1148),Pitch_flight(1068:1148))
xlabel('time (seconds)')
ylabel('roll angle (degrees)')

% 2380 - 2437 No Aileron Movement
subplot(3,2,5)
plot(tsec2(2380:2437),Sur1_flight(2380:2437))
xlabel('time (seconds)')
ylabel('deflection (degrees)')

subplot(3,2,6)
plot(tsec2(2380:2437),Roll_flight(2380:2437))
xlabel('time (seconds)')
ylabel('roll angle (degrees)')

figure (3), subplot(2,1,1),plot(tsec2(1567:1624),Sur0_flight(1567:1624),'k-','linewidth',3)
grid
ylabel('Aileron (deg)','fontsize',25)
title('Roll Doublet','fontsize',25),set(gca,'fontsize',25)
subplot(2,1,2),plot(tsec2(1567:1624),Roll_flight(1567:1624),'k-','linewidth',3)
ylabel('Roll Angle (deg)','fontsize',25),grid,set(gca,'fontsize',25)
xlabel('Time (sec)')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码实现

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

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

相关文章

ChatGPT情商很高,但并不适合当搜索引擎

微软和谷歌正急于使用大型语言模型技术来强化搜索引擎。但有充分的理由认为,相比于提供事实性信息,这项技术更适合作为人们情感上的伴侣。 美媒评论称,目前基于大型语言模型的人工智能工具,例如ChatGPT,更擅长共情而不…

城市“一网统管”平台—智慧平安小区的场景应用

随着城市建设进程的不断加快,关于城市的智能化治理需求也随之增多。在国家发布的“十四五”规划中,已经明确指出,推进新型城市建设,推行城市运行一网统管。作为推动城市治理体系和治理能力现代化的重要探索,“一网统管…

Word中截取部分内容并保存为jpg图片的方法

private void button1_Click(object sender, EventArgs e) { var appWord new Microsoft.Office.Interop.Word.Application(); var doc new Microsoft.Office.Interop.Word.Document(); object oMissing System.Reflection.Missing.Value;//这个是什么东西,我始终…

基于云计算技术的B/S架构云HIS 云HIS 云HIS系统

传统的HIS经历了20多年的建设,已经从单机版发展到局域网的版本,更被深入应用到医院的各项业务活动,成为医院必不可缺的基础设施平台,724小时不间断地支撑医院运行。因此医院都十分重视信息化建设。随着医改的不断推进和医疗行业的…

Metasploit Framework-安全漏洞检测工具使用

一款开源的安全漏洞检测工具,简称MSF。可以收集信息、探测系统漏洞、执行漏洞利用测试等,为渗透测试、攻击编码和漏洞研究提供了一个可靠平台。 集成数千个漏洞利用、辅助测试模块,并保持持续更新。 由著名黑客、安全专家H.D. Moore主导开发…

随机模型预测控制(SMPC)——考虑概率约束(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 模型预测控制(MPC)又称为滚动时域控制和滚动时域控制,是一种强有力的工程应用技术。MPC的价…

信息安全技术 健康医疗数据安全指南 付下载地址

声明 本文是学习GB-T 39725-2020 信息安全技术 健康医疗数据安全指南. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 数据使用管理办法示例 第一章 总则 第一条 为规范数据使用流程,根据国家相关法律法规及相关规定,特制定本…

YOLOv5实时检测调用usb摄像头 [ jetson nano -Ubuntu18.4 - Astra pro相机 ]

在基于rosmaster小车的jetson nano主板部署yolo v5目标检测网络的时候发现无法打开摄像头Astra pro进行实时监测,所以记录一下解决方法: 0.确认摄像头可用 首先先参考我上一篇博客所记录的方法打开USB摄像头: Jetson Nano打开USB摄像头&…

MySQL(二)

MySQL - 常用命令 1. 常用命令2. 操作数据库2.1 操作数据库2.2 创建数据库表2.3 数据库存储引擎2.4 修改数据库(ALTER<改变>) 3. MySQL数据管理3.1 外键3.2 DML语言1. 添加 insert2. 修改 update3. 删除 delete 4. DQL查询数据4.1 基础查询4.2 条件查询4.3 分组查询4.4 连…

生成式AI火爆全球,你是否已经做好了准备?

2023年&#xff0c;随着ChatGPT的火爆全球&#xff0c;生成式AI也引发了各界人士的广泛关注。一时间&#xff0c;从国际科技巨头到国内人工智能企业&#xff0c;几乎所有我们耳熟能详的科技公司&#xff0c;都纷纷杀入了生成式AI市场。 作为全球云计算技术的开创者和领导者&…

HTML+CSS+JS 学习笔记(三)———Javascript(中)

&#x1f331;博客主页&#xff1a;大寄一场. &#x1f331;系列专栏&#xff1a;前端 &#x1f331;往期回顾&#xff1a;HTMLCSSJS 学习笔记&#xff08;三&#xff09;———Javascript(上) &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 JavaScrip…

yolov5-fastapi-demo更换中文标签

本章是基于yolov5-fastapi-demo项目的更改 WelkinU/yolov5-fastapi-demo: FastAPI Wrapper of YOLOv5 (github.com) 首先&#xff0c;因为训练的时候设置的标签是英文&#xff0c;换成中文要重新训练&#xff0c;而且使用中文训练也很繁琐要改很多东西&#xff0c;因此可以直…

获奖名单公布|香港BlockBooster x Moonbeam黑客松圆满收官

Moonbeam基金会赞助的”Into the Socialverse”主题的BlockBooster黑客松于近日落幕。该活动由BlockBooster、OKX、Gitcoin和OxU香港区块链俱乐部联合主办&#xff0c;共有22个开发团队参赛。经过多位评委的严格筛选&#xff0c;3支优秀团队脱颖而出&#xff0c;获得Moonbeam基…

汽车充电桩检测设备TK4860C交流充电桩检定装置

TK4860C是一款在交流充电桩充电过程中实时检测充电电量的标准仪器&#xff0c;仪器以新能源车为负载&#xff0c;结合宽动态范围测量技术、电能ms级高速刷新等技术&#xff0c;TK4860C实现充电全过程的累积电能精准计量&#xff0c;相比于传统的预设检定点的稳态计量&#xff0…

为什么建企业网站对企业来说非常重要?

随着互联网的飞速发展&#xff0c;建企业网站已经成为了企业重要的一部分。企业网站是企业与外界沟通的重要渠道&#xff0c;对于企业的品牌形象、市场推广和销售业绩都有着不可替代的作用。本文将从以下几个方面&#xff0c;阐述为什么建企业网站对企业来说非常重要&#xff0…

2023第十四届蓝桥杯 C/C++大学生A组省赛 满分题解

写在前面 以下代码&#xff0c;目前均可通过民间OJ数据&#xff08;dotcpp & New Online Judge&#xff09;&#xff0c; 两个OJ题目互补&#xff0c;能构成全集&#xff0c;可以到对应链接下搜题提交&#xff08;感谢OJ对题目的支持&#xff09; 如果发现任何问题&…

巧用千寻位置GNSS软件|如何快速完成道路桥涵放样

道路桥涵放样主要解决道路施工中正交、斜交涵洞的测量&#xff0c;正交涵洞放样是中心线的定线放样&#xff1b;斜交涵洞放养是涵洞中心线与线路成一固定夹角的情况下的放样。 那么如何运用千寻位置GNSS软件实现道路桥涵放样呢&#xff1f;下面为各位一一介绍。 点击【测量】-&…

Oracle:ORA-00600[4137]问题分析

背景: 在为用户的新机房环境Oracle 19.18版本数据库检查时&#xff0c;发现smon进程后台日志不断出现事务恢复报错Serial Transaction recovery caught exception 30319&#xff0c;进一步检查发现存在事务恢复失败报ORA-00600[4137] 问题: smon进程后台日志不断出现事务恢复报…

Steam-V Rising 私人服务器架设教程

一、安装前的准备 一台服务器 拥有公网IP并且做好了端口映射 二、使用SteamCMD安装服务器 1.下载SteamCMD SteamCMD是Steam专用的命令行式客户端程序&#xff0c;所有的安装方式可以参照&#xff1a;https://developer.valvesoftware.com/wiki/SteamCMD 或者在其他站点自行…

ThinkPHP6之数据库操作上

ThinkPHP6之数据库操作上 前言1. 数据库配置2. 数据库操作1. 查询操作2. 插入操作3. 修改4. 删除5. 其他 3.数据集总结 前言 注意&#xff0c;tp6在进行语法学习的时候都是在app/index.php中写代码的&#xff0c;代码写在index函数下面&#xff0c;而且tp6自带的文件都是由自动…