主要内容

环境

无人机环境输入

描述

例子

envStruct=环境(uavGuidanceModel返回一个结构,捕获指定无人机制导模型的所有相关环境变量。使用此函数可以确保您的环境参数具有正确的字段。使用环境输入作为输入导数函数,得到无人机的状态时间导数。

例子

全部折叠

方法的使用multirotor该制导模型用于模拟无人机由于指令输入而引起的状态变化。

创建多旋翼制导模型。

型号=多旋翼;

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

S =状态(模型);S (1:3) = [3;2;1];

指定一个控制命令,u,规定了多旋翼机的滚转和推力。

U =控制(模型);u.Roll = pi/12;u.推力= 1;

创建一个没有风的默认环境。

E =环境(模型);

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

Sdot =导数(模型,s,u,e);

模拟无人机状态使用数值集成。的y字段输出多旋翼无人机状态为13 ×n矩阵。

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

根据仿真输出绘制滚转角度变化图。滚动角(X欧拉角)是第9行simOut.y输出。

:情节(simOut.y(9日)

图中包含一个轴对象。axis对象包含一个line类型的对象。

画出Y轴和Z轴位置的变化。在指定的推力和滚转角度下,多旋翼应该飞过并失去一些高度。Z的值为正值,因为Z是正的。

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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些物体代表y轴位置,z轴位置。

您还可以使用绘图多旋翼轨迹plotTransforms.根据模拟状态创建平移和旋转向量。下采样(每300个元素)并转置simOut元素,并将欧拉角转换为四元数。指定网格为multirotor.stl文件和正z方向为“向下”.所显示的视图显示无人机在y方向上平移并失去高度。

translations = simOut.y(1:3,1:300:end)';% xyz位置= eul2quat(simOut.y(7:9,1:300:end)');欧拉plotTransforms(平移、旋转、...“MeshFilePath”“multirotor.stl”“InertialZDirection”“向下”)视图([90.00 -0.60])

图中包含一个轴对象。axis对象包含48个patch、line类型的对象。

方法的使用fixedwing该制导模型用于模拟无人机由于指令输入而引起的状态变化。

创建固定翼制导模型。

模型=固定翼;

通过修改结构来设置飞行器的空气速度状态函数。

S =状态(模型);S (4) = 5;% 5 m/s

指定一个控制命令,u,保持空气速度,并给出一个滚动角度π/ 12

U =控制(模型);u.RollAngle = pi/12;u.AirSpeed = 5;

创建一个没有风的默认环境。

E =环境(模型);

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

Sdot =导数(模型,s,u,e);

模拟无人机状态使用数值集成。的y在此仿真基础上,现场输出固定翼无人机的状态。

simOut =数值(@ (~,x)导数(模型、x u, e), 50 [0]);大小(simOut.y)
ans =1×2904年8

根据仿真输出绘制滚转角度变化图。滚动角是第7行simOut.y输出。

:情节(simOut.y(7日)

图中包含一个轴对象。axis对象包含一个line类型的对象。

你也可以用plotTransforms.根据模拟状态创建平移和旋转向量。降低采样(每30个元素)和转置simOut元素,并将欧拉角转换为四元数。指定网格为fixedwing.stl文件和正z方向为“向下”.所显示的视图显示无人机基于恒定的滚转角度进行恒定的转弯。

downsample = 1:30:size(simOut.y,2);翻译= simOut.y(1:3,downsample)';% xyz-positionrotation = eul2quat([simOut.y(5,downsample)',simOut.y(6,downsample)',simOut.y(7,downsample)']);欧拉plotTransforms(平移、旋转、...“MeshFilePath”“fixedwing.stl”“InertialZDirection”“向下”)举行: plot3 (simOut.y (1), -simOut.y (2:), simOut.y (3:)“——b”%全路径xlim ([-10.0 - 10.0]) ylim ([-20.0 - 5.0]) zlim([-0.5 - 4.00])视图(90 [-45])

图中包含一个轴对象。axis对象包含125个patch、line类型的对象。

输入参数

全部折叠

无人机制导模型,指定为fixedwingmultirotor对象。

输出参数

全部折叠

环境输入参数,作为结构返回。

对于固定翼无人机,结构场为WindNorthWindEastWindDown,重力.风速的单位是米每秒,负风速指向相反的方向。重力单位是米每秒平方(默认9.81).

对于多旋翼无人机,结构的唯一元素是重力(默认9.81)单位为米/秒。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2018b中引入