主要内容

状态

UAV州矢量

描述

例子

议定书=州(uavguidancemodel.返回指定的UAV指导模型的状态向量。矢量总是充满零。使用此功能以确保您的状态向量具有正确的大小。使用州向量作为输入衍生物功能或在模拟UAV时使用ODE45.

例子

全部收缩

此示例显示了如何使用Multorotor.指导模型以指示命令输入模拟UAV状态的变化。

创建多电机引导模型。

型号= Multorot;

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

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

指定控件命令,,指定多电机的卷和推力。

U =控制(模型);U.roll = PI / 12;U.Thrust = 1;

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

e =环境(模型);

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

sdot =衍生物(模型,s,u,e);

模拟UAV状态使用ODE45.一体化。这y字段将固定翼UAV状态输出为13-逐个N.矩阵。

simout = ode45(@(〜,x)衍生物(型号,x,u,e),[0 3],s);大小(Simout.y)
ans =.1×213 3536.

基于仿真输出绘制卷角的变化。滚动角度(x欧拉角)是第9行simout.y.输出。

绘图(Simout.y(9,:))

绘制Y和Z位置的变化。使用指定的推力和滚动角度,多电孔应飞过并失去一些高度。Z的正值预计为正Z下降。

图绘图(Simout.y(2,:));抓住绘图(SIMOUT.Y(3,:));传奇('y-position''z位置') 抓住离开

您还可以使用多电泳轨迹绘制plottransforms.。从模拟状态创建平移和旋转向量。下拍(每300个元素)并转换sim元素,并将欧拉角转换为四元数。指定网格作为multirotor.stl.文件和正Z方向“下”。显示的视图显示了在Y方向和丢失高度中翻译的UAV。

翻译= simout.y(1:3,1:300:结束)';%XYZ位置旋转= Eul2quat(Simout.y(7:9,1:300:END)');%zyx eulerplottransforms(翻译,旋转,......'meshfilepath''multirotor.stl''inertialzdirection'“下”)查看([90.00 -0.60])

此示例显示了如何使用固定翼翼指导模型以指示命令输入模拟UAV状态的变化。

创建固定翼指导模型。

型号=固定行;

通过修改结构来设置车辆的空气速度状态功能。

s =状态(模型);s(4)= 5;%5米/秒

指定控件命令,,这保持了空气速度并给出了卷角PI / 12.

U =控制(模型);U.rollangle = PI / 12;U.Airspeed = 5;

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

e =环境(模型);

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

sdot =衍生物(模型,s,u,e);

模拟UAV状态使用ODE45.一体化。这y字段基于此模拟输出固定翼UV状态。

simout = ode45(@(〜,x)衍生物(型号,x,u,e),[0 50],s);大小(Simout.y)
ans =.1×28 904.

基于仿真输出绘制卷角的变化。滚动角是第7行simout.y.输出。

情节(SIMOUT.Y(7,:))

您还可以使用固定翼轨迹绘制plottransforms.。从模拟状态创建平移和旋转向量。下拍(每30个元素)并转换sim元素,并将欧拉角转换为四元数。指定网格作为matedwing.stl.文件和正Z方向“下”。显示的视图显示了UAV基于恒定滚动角度进行恒定转弯。

Downsample = 1:30:尺寸(SIMOUT.Y,2);翻译= simout.y(1:3,下拍)';%XYZ位置旋转= eul2quat([simout.y(5,downsample)',simout.y(6,downsample)',simout.y(7,downsample)']);%zyx eulerplottransforms(翻译,旋转,......'meshfilepath''matedwing.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])视图([ -  45 90])保持离开

输入参数

全部收缩

UAV指导模型,指定为a固定翼翼或者Multorotor.目的。

输出参数

全部收缩

状态向量,作为七元素或十三元素矢量返回。矢量总是充满零。使用此功能以确保您的状态向量具有正确的大小。

对于固定翼UAV,该州是一个八元素的载体:

  • - 北方的位置以米为单位。

  • - 在米的东方向上的位置。

  • 高度- 以米为单位的高度。

  • 空速- 速度相对于每秒米的风。

  • 前锋- 地面速度和北方方向之间的角度。

  • Flidlepathangle.- 在弧度的地面速度和东北平面之间的角度。

  • rollangle.- 沿着身体的旋转角度X- 在弧度中的轴。

  • rollanglerate.- 沿着身体旋转的角度速度X- 每秒弧度的轴。

对于多电机无人机,状态为13个元素向量:

  • 世界职位-[x y z]在米。

  • 世界速度-[vx vy vz]以米为单位。

  • 欧拉角(Zyx)-[psi theta phi]在弧度。

  • 身体角度率-[p q r]在每秒弧度。

  • 推力-F在牛顿。

扩展能力

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

在R2018B中介绍