主要内容gydF4y2Ba

multirotorgydF4y2Ba

指导模型multirotor无人机gydF4y2Ba

自从R2018bgydF4y2Ba

描述gydF4y2Ba

一个gydF4y2BamultirotorgydF4y2Ba对象表示一个降维指导模型的无人驾驶飞行器(无人机)。闭环系统模型近似的行为由一个自动驾驶仪控制器和一个multirotor 3 - d运动的运动学模型。gydF4y2Ba

固定翼无人机,请参阅gydF4y2BafixedwinggydF4y2Ba。gydF4y2Ba

创建gydF4y2Ba

模型= multirotorgydF4y2Ba创建一个multirotor运动模型gydF4y2Ba双gydF4y2Ba精度值为输入、输出和指导模型的配置参数。gydF4y2Ba

模型= multirotor(数据类型)gydF4y2Ba指定数据类型精度(gydF4y2Ba数据类型gydF4y2Ba属性)的输入,输出,和配置指导模型的参数。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

无人机的名称,用于区分从其他模型在工作区中,指定为字符串标量。gydF4y2Ba

例子:gydF4y2Ba“myUAV1”gydF4y2Ba

数据类型:gydF4y2Ba字符串gydF4y2Ba

无人机控制器配置,指定的结构参数。指定这些参数来调整内部控制行为的无人机。指定比例(P)和微分(D)收益的动态模型和其他无人机参数。multirotor无人机的结构包含这些字段默认列出:gydF4y2Ba

  • “PDRoll”gydF4y2Ba- - - - - -gydF4y2Ba(3402.97 - 116.67)gydF4y2Ba

  • “PDPitch”gydF4y2Ba- - - - - -gydF4y2Ba(3402.97 - 116.67)gydF4y2Ba

  • “PYawRate”gydF4y2Ba- - - - - -gydF4y2Ba1950年gydF4y2Ba

  • “PThrust”gydF4y2Ba- - - - - -gydF4y2Ba3900年gydF4y2Ba

  • “质量”gydF4y2Ba- - - - - -gydF4y2Ba0.1gydF4y2Ba(以千克)gydF4y2Ba

例子:gydF4y2Ba结构(“PDRoll”, [3402.97,116.67],“PDPitch”, [3402.97, 116.67],“PYawRate”, 1950年,“PThrust”, 3900年,“质量”,0.1)gydF4y2Ba

数据类型:gydF4y2Ba结构体gydF4y2Ba

这个属性是只读的。gydF4y2Ba

无人机指导模型类型,指定为gydF4y2Ba“MultirotorGuidance”gydF4y2Ba。gydF4y2Ba

输入和输出数值数据类型,指定为gydF4y2Ba“双”gydF4y2Ba或gydF4y2Ba“单一”gydF4y2Ba。选择数据类型基于可能的软件或硬件的限制。指定gydF4y2Ba数据类型gydF4y2Ba当第一次创建对象。gydF4y2Ba

对象的功能gydF4y2Ba

控制gydF4y2Ba 无人机的控制命令gydF4y2Ba
导数gydF4y2Ba 时间导数的无人机gydF4y2Ba
环境gydF4y2Ba 环境输入的无人机gydF4y2Ba
状态gydF4y2Ba 无人机状态向量gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

这个例子展示了如何使用gydF4y2BamultirotorgydF4y2Ba指导模型来模拟无人机状态的变化将一个命令的输入。gydF4y2Ba

创建multirotor指导模型。gydF4y2Ba

模型= multirotor;gydF4y2Ba

创建一个状态结构。在世界坐标系中指定的位置。gydF4y2Ba

s =国家(模型);s (1:3) = (3; 2; 1);gydF4y2Ba

指定一个控制命令,gydF4y2BaugydF4y2Ba,指定了辊和multirotor的推力。gydF4y2Ba

u =控制(模型);u。滚=π/ 12;u。推力= 1;gydF4y2Ba

创建一个默认的无风环境。gydF4y2Ba

e =环境(模型);gydF4y2Ba

计算的时间导数状态给定的当前状态,控制命令,和环境。gydF4y2Ba

sdot =导数(模型、s u, e);gydF4y2Ba

模拟无人机使用状态gydF4y2Ba数值gydF4y2Ba集成。的gydF4y2BaygydF4y2Ba场输出multirotor无人机州作为一个由13 -gydF4y2BangydF4y2Ba矩阵。gydF4y2Ba

simOut =数值(@ (~,x)导数(模型、x u, e), [0 3], s);大小(simOut.y)gydF4y2Ba
ans =gydF4y2Ba1×2gydF4y2Ba3536年13gydF4y2Ba

情节横摇角的变化的基础上,模拟输出。横摇角(X欧拉角)的第9行gydF4y2BasimOut.ygydF4y2Ba输出。gydF4y2Ba

:情节(simOut.y(9日)gydF4y2Ba

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。gydF4y2Ba

情节的变化Y和Z的位置。指定的推力和横摇角,multirotor应该飞越,失去一些高度。为Z是一个积极的价值预期正Z。gydF4y2Ba

:图绘制(simOut.y (2));持有gydF4y2Ba在gydF4y2Ba:情节(simOut.y (3));传奇(gydF4y2Ba“坐标”gydF4y2Ba,gydF4y2Ba“z位置”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表坐标,z位置。gydF4y2Ba

你也可以画出multirotor轨迹gydF4y2BaplotTransformsgydF4y2Ba。从模拟创建平移和旋转向量的状态。Downsample(每个300元素)和转置gydF4y2BasimOutgydF4y2Ba元素和欧拉角转换为四元数。指定网格作为gydF4y2Bamultirotor.stlgydF4y2Ba文件和积极的z方向gydF4y2Ba“向下”gydF4y2Ba。显示的视图显示了无人机在y方向上的翻译和失去高度。gydF4y2Ba

翻译= simOut.y(1:3,施用:结束);gydF4y2Ba% xyz的位置gydF4y2Ba旋转= eul2quat (simOut.y(七章,施用:结束)');gydF4y2Ba% ZYX股票欧拉gydF4y2BaplotTransforms(平移、旋转、gydF4y2Ba…gydF4y2Ba“MeshFilePath”gydF4y2Ba,gydF4y2Ba“multirotor.stl”gydF4y2Ba,gydF4y2Ba“InertialZDirection”gydF4y2Ba,gydF4y2Ba“向下”gydF4y2Ba)视图([90.00 - -0.60])gydF4y2Ba

图包含一个坐标轴对象。坐标轴对象包含48块类型的对象,线。gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

引用gydF4y2Ba

[1]悟道,丹尼尔和Nathan迈克尔。“轨迹生成和控制精确的咄咄逼人和表演动作。”gydF4y2Ba国际机器人研究杂志》上gydF4y2Ba。2012年,页664 - 74。gydF4y2Ba

扩展功能gydF4y2Ba

C / c++代码生成gydF4y2Ba
生成C和c++代码使用MATLAB®编码器™。gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2018bgydF4y2Ba