【无人机】基于SDRE对NPS II无人机进行点对点(调节)控制(Matlab代码实现)

news2025/8/3 22:00:19

 👨‍🎓个人主页:研学社的博客 

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

水下航行器在6自由度下的非线性动力学是高度非线性的,并且在控制中是非仿射的。NPS II是一种著名的无人机模型。这些代码在非仿射模式下对NPS II无人机进行SDRE控制,其中输入关系是非线性的。动态和控制结构可以遵循这篇文献:

Geranmehr, Behdad, and Saeed Rafee Nekoo. "Nonlinear suboptimal control of fully coupled non-affine six-DOF autonomous underwater vehicle using the state-dependent Riccati equation." Ocean Engineering 96 (2015): 248-257.

📚2 运行结果

 

 

 

 

 

 

 

 

 

 

 

 

部分代码:

UB=20*pi/180;

xin1=6;                         %x
xin2=4;                         %y
xin3=-5;                        %z
xin4=0.2;                       %phi
xin5=-0.15;                     %theta
xin6=0.25;                      %psi

xin7=0;                         %u
xin8=0;                         %v
xin9=0;                         %w
xin10=0;                        %p
xin11=0;                        %q
xin12=0;                        %r

xin13=0;                        %delta_r
xin14=0;                        %delta_s
xin15=0;                        %delta_b
xin16=0;                        %delta_bp
xin17=0;                        %delta_bs
xin18=100;                      %n

xdes1=0;
xdes2=0;
xdes3=0;
xdes4=0;
xdes5=0;
xdes6=0;
xdes7=0;
xdes8=0;
xdes9=0;
xdes10=0;
xdes11=0;
xdes12=0;

L=5.3;                          %The length of the AUV (m)
g=9.81;                         % (m/s^2)
rho=1000;                       %density of water (kg/m^3)
m=5454.54;                      %The mass of the AUV (kg)
W=53400;                        %weight (N)
Buoy=53400;                     %buoyancy (N)
Ix=2038;Iy=13587;Iz=13587;                      % (Nms^2)
Ixy=-13.58;Iyz=-13.58;Ixz=-13.58;               % (Nms^2)
xG=0;yG=0;zG=0.061;
xB=0;yB=0;zB=0;
I_O=[Ix,-Ixy,-Ixz;...
    -Ixy,Iy,Iyz;...
    -Ixz,-Iyz,Iz];
r_G=[xG;yG;zG];
r_B=[xB;yB;zB];
%Non-Dimensional Hydrodynamic coefficients---------------------------------
Xpp=7.0e-3;Xqq=-1.5e-2;Xrr=4.0e-3;Xpr=7.5e-4;
Xudot=-7.6e-3;Xwq=-2.0e-1;Xvp=-3.0e-3;Xvr=2.0e-2;
Xqds=2.5e-2;Xqdb2=-1.3e-3;Xrdr=-1.0e-3;Xvv=5.3e-2;
Xww=1.7e-1;Xvdr=1.7e-3;Xwds=4.6e-2;Xwdb2=0.5e-2;
Xdsds=-1.0e-2;Xdbdb2=-4.0e-3;Xdrdr=-1.0e-2;Xqdsn=2.0e-3;
Xwdsn=3.5e-3;Xdsdsn=-1.6e-3;Xu=0;

Ypdot=1.2e-4;Yrdot=1.2e-3;Ypq=4.0e-3;Yqr=-6.5e-3;
Yvdot=-5.5e-2;Yp=3.0e-3;Yr=3.0e-2;Yvq=2.4e-2;
Ywp=2.3e-1;Ywr=-1.9e-2;Yv=-1.0e-1;Yvw=6.8e-2;
Ydr=2.7e-2;

Zqdot=-6.8e-3;Zpp=1.3e-4;Zpr=6.7e-3;Zrr=-7.4e-3;
Zwdot=-2.4e-1;Zq=-1.4e-1;Zvp=-4.8e-2;Zvr=4.5e-2;
Zw=-3.0e-1;Zvv=-6.8e-2;Zds=-7.3e-2;Zdb2=-1.3e-2;
Zqn=-2.9e-3;Zwn=-5.1e-3;Zdsn=-1.0e-2;

Kpdot=-1.0e-3;Krdot=-3.4e-5;Kpq=-6.9e-5;Kqr=1.7e-2;
Kvdot=1.2e-4;Kp=-1.1e-2;Kr=-8.4e-4;Kvq=-5.1e-3;
Kwp=-1.3e-4;Kwr=1.4e-2;Kv=3.1e-3;Kvw=-1.9e-1;
Kdb2=0;Kpn=-5.7e-4;Kprop=0;

Mqdot=-1.7e-2;Mpp=5.3e-5;Mpr=5.0e-3;Mrr=2.9e-3;
Mwdot=-6.8e-3;Muq=-6.8e-2;Mvp=1.2e-3;Mvr=1.7e-2;
Muw=1.0e-1;Mvv=-2.6e-2;Mds=-4.1e-2;Mdb2=3.5e-3;
Mqn=-1.6e-3;Mwn=-2.9e-3;Mdsn=-5.2e-3;Mq=-0.068;

Npdot=-3.4e-5;Nrdot=-3.4e-3;Npq=-2.1e-2;Nqr=2.7e-3;
Nvdot=1.2e-3;Np=-8.4e-4;Nr=-1.6e-2;Nvq=-1.0e-2;
Nwp=-1.7e-2;Nwr=7.4e-3;Nv=-7.4e-3;Nvw=-2.7e-2;
Ndr=-1.3e-2;Nprop=0;
%Dimensional Coefficients--------------------------------------------------
% Xu_au=0;
% Yv_av=2.065e-4;
% Zw_aw=3.381e-4;
% Kp_ap=0;
% Mq_aq=0.295e-3;
% Nr_ar=0.231e-3;

Xu_au=-30.9;
Yv_av=-206.5;
Zw_aw=-338.1;
Kp_ap=0;
Mq_aq=-214.66;
Nr_ar=-346.26;
%Main----------------------------------------------------------------------
[t,n]=ode45('sdre_6DOF_Fullstates',0:tf/N:tf,[xin1,xin2,xin3,xin4,xin5,xin6,...
    xin7,xin8,xin9,xin10,xin11,xin12,xin13,xin14,xin15,xin16,xin17,xin18]');

save matlab

n1=n(:,1);
n2=n(:,2);
n3=n(:,3);
n4=n(:,4);
n5=n(:,5);
n6=n(:,6);
n7=n(:,7);
n8=n(:,8);
n9=n(:,9);
n10=n(:,10);
n11=n(:,11);
n12=n(:,12);
%Plots---------------------------------------------------------------------
figure(1)
axes1=axes('Parent',figure(1),'FontSize',10,'FontName','Cambria');
box(axes1,'on');
hold(axes1,'all');
plot(t,n1,'k','linewidth',2)
plot(t,n2,':b','linewidth',2)
plot(t,n3,'--r','linewidth',2)
xlabel('t (s)','FontSize',10,'FontName','Cambria');
ylabel('Position (m)','FontSize',10,'FontName','Cambria');
box on
grid on

🎉3 参考文献

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

Geranmehr, Behdad, and Saeed Rafee Nekoo. "Nonlinear suboptimal control of fully coupled non-affine six-DOF autonomous underwater vehicle using the state-dependent Riccati equation." Ocean Engineering 96 (2015): 248-257.

🌈4 Matlab代码实现

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

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

相关文章

iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入

目录 文章目录 前言 第01关 数字型注入 1.源码分析 2. sqlmap渗透 总结 前言 iwebsec靶场的SQL注入关卡共13关SQL注入漏洞,覆盖了数字型注入、字符型注入、报错型盲注、布尔型盲注、时间型盲注以及各种过滤绕过的注入,外加上二次注入,…

Recommendation Fairness: From Static to Dynamic 阅读笔记

论文链接https://arxiv.org/abs/2109.03150v1 Section 1 引言 越来越多的推荐系统开始将推荐建模为一个马尔可夫决策过程,并使用强化学习来解决这个问题。从而推荐系统场景下的公平性研究便面临着一个从静态评价与一次性干预static evaluation and one-shot interv…

CSS3 动画

变形 transform 在CSS3中,动画效果包括3个部分:变形(transform)、过渡(transition)、动画(animation) translate()平移 transform: translateX(x);    /*沿x轴方向平移*/ tran…

(十)死信队列

死信队列1、概念2、死信产生的原因3、代码实现3.1. 流程图3.2. 消息TTL 过期3.3. 队列达到最大长度3.4. 消息被拒1、概念 某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有 后续的处理,就变成了死信,有死信自然就…

(九)RabbitMQ交换机(Exchange)

交换机Exchange1、交换机1.1. Exchanges 概念1.2. Exchanges 的类型1.3. 无名exchange(默认交换机)2、临时队列3、绑定(bindings)4、Fanout(发布/订阅)5、Direct exchange、6、Topics在这里插入图片描述1、…

学生HTML个人网页作业作品 基于HTML+CSS+JavaScript明星个人主页(15页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

0105 蓝桥杯真题08

/* * 中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。 * 它的前几项是:0、2、4、8、12、18、24、32、40、50 ... * 其规律是:对偶数项,是序号平方再除2,奇数项,是序号…

【RT-Thread Studio更新】英飞凌 PSOC62-IFX-PROTO-KIT 开发环境搭建指南

本文将介绍在 RT-Thread Studio 上如何基于 PSOC62-IFX-PROTO-KIT 开发板搭建开发环境进行开发、烧录、调试功能。开发环境搭建步骤1、PSOC62-IFX-PROTO-KIT 开发板资源包安装打开Studio,点击工具栏上的SDK管理器在Board_Support_Packages 找到 Infineon 下的 PSOC6…

TOWER 成就徽章 NFT 系列介绍——TOWER 生态系统的第一个灵魂通证(SBT)

2022 年 7 月,团队推出了成就徽章 NFT 系列,记录每个成员在 TOWER 生态系统中的努力。这是第一个不可转让的灵魂 NFT 系列(SBT),代表了每个玩家的独特身份。 关于灵魂通证(SBT) 以太坊联合创始人…

力扣(LeetCode)809. 情感丰富的文字(C++)

模拟 分析单词可扩张条件 : 对于某个字母&#xff0c;设目标字母长度 c1c1c1 &#xff0c;待扩张字母长度 c2c2c2 当 c1<c2c1<c2c1<c2&#xff0c;目标字母比待扩张字母少&#xff0c;false 当 c1≥c2c1\ge c2c1≥c2&#xff0c;目标字母比待扩张字母多或者相等&…

大数据开发——Hive实战案例

文章目录1. 创建表结构1.1 视频表结构1.2 用户表结构2. 准备工作2.1 创建临时表2.2 创建最终使用表2.3 对创建表进行解读3. 业务分析1. 创建表结构 1.1 视频表结构 1.2 用户表结构 2. 准备工作 2.1 创建临时表 由于使用的是orc方式进行存储&#xff0c;所以我们需要建立一个…

OpenFlow协议原理及基本配置-网络测试仪实操

一、OpenFlow协议原理 1.OpenFlow技术背景 ●转发和控制分离是SDN网络的本质特点之一。在SDN网络架构中&#xff0c;控制平面与转发平面分离&#xff0c;网络的管理和状态在逻辑上集中到一起&#xff0c;底层的网络基础从应用中独立出来&#xff0c;由此&#xff0c;网络获得…

不知道照片上怎么文字翻译成英文?来看看这篇文章

不知道你们在遇到看不懂的英文图片时&#xff0c;是不是和以前的我一样&#xff0c;一个一个的把图片内容输到翻译软件里&#xff0c;然后再进行翻译&#xff0c;其实这种办法不仅费时还费力&#xff0c;而且一旦遇到其它的外文就彻底没辙了&#xff0c;那怎么办呢&#xff1f;…

[附源码]java毕业设计音乐交流平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

我做数画ai绘画教程日赚过千,良心分享给想兼职赚钱的人

ai绘画能实现日赚过千&#xff0c;你信吗&#xff1f; 现在什么是风口&#xff1f;当然是ai绘画。而AI绘画里&#xff0c;什么最受欢迎&#xff0c;不用说&#xff0c;自然是二次元。 然后&#xff0c;很多人一拥而上&#xff0c;都去拍自己的二次元照片&#xff0c;然后在各…

10000m3d城镇生活污水处理工艺设计

目 录 1前 言 1 1.1 设计任务 2 1.2 设计目的 2 1.3 设计要求 2 1.4设计的数据以及资料 2 1.5 处理程度的计算 3 2 总体设计 5 2.1工艺比较的选择 5 2.2设计流量 8 2.2.1 设计规模 8 2.2.2 设计最大流量 8 2.3 格栅的设计计算 8 2.3.1格栅的作用及种类 8 2.3.2格栅的设计原则 8…

Linux系统编程(一)——环境搭建

准备写系统的总结Linux系统的一些知识以及Linux系统编程。这一篇先讲Linux搭建常用的开发环境。 目录 0x01 Linux开发环境搭建 一、远程链接操作 0x02 GCC 一、安装 二、了解GCC 0x03 静态库的制作及使用 一、库的介绍 二、静态库 0x04 动态库的制作和使用 一、配置…

Python遥感开发之批量掩膜和裁剪

Python遥感开发之批量掩膜和裁剪1.使用arcpy进行批量掩膜1.1 批量掩膜代码1.2 单个掩膜代码2.使用GDAL进行批量掩膜3.使用rasterio进行批量裁剪前言&#xff1a;主要介绍了使用arcpy、gdal、rasterio对遥感影像进行批量掩膜和裁剪。 1.使用arcpy进行批量掩膜 注意&#xff1a;…

Spring Boot——日志文件

文章目录1.日志的作用2.日志的用法3.自定义日志打印日志格式的说明4.日志级别5.在配置文件中设置日志级别5.1设置全局的日志级别和局部文件夹的日志级别6. 日志持久化7. 更简单的日志输出-lombok1.日志的作用 日志的作用&#xff1a;用来排除和定位问题 通过日志还可以具有以…

Greenplum数据库故障排查及修复

场景一&#xff1a;gp服务正常&#xff0c;存在部分segment实例丢失 1、异常现象 主节点切换gpadmin用户输入gpstate查看状态 如果红色框内有指向左边的箭头则说明存在部分segment实例丢失。 2、排查思路 首先查看主节点日志&#xff0c;重点关注发生segment丢失那段时间的…