【四旋翼飞行器】【模拟悬链机器人的动态】设计和控制由两个四旋翼飞行器推动的缆绳研究(Matlab代码实现)

2023-12-05

???????????????? 欢迎来到本博客 ❤️❤️????????

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

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

???????????? 本文目录如下: ????????????

目录

????1 概述

????2 运行结果

????3 参考文献

????4 Matlab代码实现


????1 概述

四旋翼飞行器是一种能够垂直起降和悬停的飞行器,由四个独立的旋翼推进器提供动力。它们通常被用于航拍、搜救和军事应用等领域。而悬链机器人是一种由缆绳悬挂并由外部推动的机器人,常用于高空作业和建筑清洁等领域。

设计和控制由两个四旋翼飞行器推动的缆绳研究,可以将两个四旋翼飞行器连接在一起,通过缆绳将它们与悬链机器人连接。这样的设计可以使悬链机器人具有更强的动力和稳定性,从而提高其在高空作业和其他领域的应用效率。

在控制方面,需要设计一套复杂的控制系统来协调两个四旋翼飞行器的动作,确保它们能够有效地推动悬链机器人并保持平衡。这可能涉及到对飞行器的姿态控制、飞行路径规划和动力分配等方面的研究。

综上,设计和控制由两个四旋翼飞行器推动的缆绳研究是一项复杂而具有挑战性的工作,但它有望为悬链机器人的应用带来新的突破和进展。通过充分发挥四旋翼飞行器的优势,可以为悬链机器人赋予更大的动力和灵活性,从而拓展其在各种领域的应用范围。

???? 2 运行结果

部分代码:

%% plot function
function plott(t,x,xdA,posA_err_fx,velA_err_fx, xdB,posB_err_fx,velB_err_fx, xC, xdC,params)
disp('Plotting graphs...');
index = round(linspace(1, length(t), round(1*length(t))));
figure(1);
subplot(3,1,1);
plot(t(index),x(index,1),'Color',[0.3010 0.7450 0.9330],'LineWidth',2); hold on;
%         plot(t(index),xdA(index,1),':r','LineWidth',2);
plot(t(index),x(index,19),'Color',[0.9290 0.6940 0.1250],'LineWidth',2);
%         plot(t(index),xdB(index,1),':r','LineWidth',2);
plot(t(index),xC(index,1),'b','LineWidth',2);
plot(t(index),xdC(index,1),':r','LineWidth',2);


hold off;
%axis equal;
grid on;
legend('$x_A$','$x_B$','$x_C$','$x_C$ desired','Interpreter','latex');%axis equal;
ylabel('$x(m)$','Interpreter','latex');set(gca,'xticklabel',[])

subplot(3,1,2);
plot(t(index),x(index,2),'Color',[0.3010 0.7450 0.9330],'LineWidth',2); hold on;
%         plot(t(index),xdA(index,2),':r','LineWidth',2);
plot(t(index),x(index,20),'Color',[0.9290 0.6940 0.1250],'LineWidth',2);
%         plot(t(index),xdB(index,2),':r','LineWidth',2);
plot(t(index),xC(index,2),'b','LineWidth',2);
plot(t(index),xdC(index,2),':r','LineWidth',2);hold off;
%axis equal;
grid on;
legend('$x_A$','$x_B$','$x_C$','$x_C$ desired','Interpreter','latex');
ylabel('$y(m)$','Interpreter','latex');set(gca,'xticklabel',[])

subplot(3,1,3);
plot(t(index),x(index,3),'Color',[0.3010 0.7450 0.9330],'LineWidth',2); hold on;
plot(t(index),x(index,21),'Color',[0.9290 0.6940 0.1250],'LineWidth',2);
plot(t(index),xC(index,3),'b','LineWidth',2);
plot(t(index),xdC(index,3),':r','LineWidth',2);hold off;
%axis equal;

grid on;
legend('$x_A$','$x_B$','$x_C$','$x_C$ desired','Interpreter','latex');
xlabel('$t(s)$','Interpreter','latex');ylabel('$z(m)$','Interpreter','latex');
print('../results/FigTrajectory','-dpng')

figure(2)
plot3(x(index,1),x(index,2),x(index,3),'-b','LineWidth',2); hold on;
plot3(xdA(index,1),xdA(index,2),xdA(index,3),'-.r','LineWidth',3.5);

plot3(x(index,19),x(index,20),x(index,21),'-k','LineWidth',2);
plot3(xdB(index,1),xdB(index,2),xdB(index,3),':r','LineWidth',3.5);

plot3(xC(index,1),xC(index,2),xC(index,3),'Color',[0.4660 0.6740 0.1880],'LineWidth',2);
plot3(xdC(index,1),xdC(index,2),xdC(index,3),'or','LineWidth',5);
plot3(x(end,1),x(end,2),x(end,3),'ok','LineWidth',4);
plot3(x(end,19),x(end,20),x(end,21),'ok','LineWidth',4);

plot3(x(1,1),x(1,2),x(1,3),'or','LineWidth',2);
plot3(x(1,19),x(1,20),x(1,21),'or','LineWidth',2);

????3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]宋曜先.四旋翼无人飞行器编队控制算法的研究[D].杭州电子科技大学[2023-11-22].DOI:CNKI:CDMD:2.1017.133374.

[2]庞庆霈,李家文,黄文浩.四旋翼飞行器设计与平稳控制仿真研究[J].电光与控制, 2012, 19(3):5.DOI:10.3969/j.issn.1671-637X.2012.03.012.

[3]曹健,丁力.四旋翼飞行器的动态滑模轨迹跟踪控制研究[J].组合机床与自动化加工技术, 2019(8):5.DOI:CNKI:SUN:ZHJC.0.2019-08-022.

???? 4 Matlab代码实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【四旋翼飞行器】【模拟悬链机器人的动态】设计和控制由两个四旋翼飞行器推动的缆绳研究(Matlab代码实现) 的相关文章

  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • MATLAB 图中轴标签与轴之间的距离

    我正在使用 MATLAB 绘制一些数据 我想调整轴标签与轴本身之间的距离 但是 只需向标签的 位置 属性添加一点即可使标签移出图窗窗口 是否有 保证金 属性或类似的东西 在上图中 我想增加数字和标签 Time s 之间的距离 同时自动扩展数
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 如何每次使用按钮将数据添加到 MATLAB 中的现有 XLSX 文件?

    我有一个函数可以生成一些变量 例如分数 对 错 未回答 使用按钮调用此功能 问题是如何每次将函数生成的这些值添加 附加到 XLSX 文件中 或者 如何创建 MAT 文件以便可以添加它 可能的解决方案是什么 附加到 xls 文件所涉及的挑战是
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • for 循环中的绘图没有可见点

    我正在努力解决我想使用 for 循环制作的情节 我知道当我在循环之后添加它时它会起作用 只是一个简单的图 但我想用另一种方式尝试一下 fib ones 1 10 for k 3 10 hold on fib k fib k 1 fib k
  • matlab中更快的插值方法

    我正在使用 interp1 来插值一些数据 temp 4 30 4 rand 365 10 depth 1 10 dz 0 5 define new depth interval bthD min depth dz max depth ne
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 如何在 MATLAB 编译的应用程序中运行外部 .m 代码? [复制]

    这个问题在这里已经有答案了 我有一个 MATLAB 项目 我使用 MCC 对其进行编译以获得单个可执行文件 然后我想知道外部程序员是否可以在 exe 中执行他的一些 m 文件 而无需重新编译整个项目 重点是提供一个应用程序 其他开发人员可以
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • 将向量(或弧)绘制到玫瑰图上。 MATLAB

    我有两个数据集 其中详细列出了angles 我正在绘制玫瑰图 angles 0 8481065519 0 0367932161 2 6273740453 n 另一个 从这组角度详细说明方向统计 angle error 0 848106563
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得

随机推荐