主要内容

根据轨迹数据创建一个飞行动画

这个例子展示了如何使用FlightGear animation对象为轨迹创建飞行动画。

注意:在产品中运行此示例时,必须使用FlightGear安装自定义该示例,并取消注释GenerateRunScript、system和play命令。您还必须将HL20文件夹复制到$FLIGHTGEAR/data/Aircraft/文件夹中。HL20文件夹位于本例的工作文件夹中,或者位于以下文件夹下:

fullfile (matlabroot“例子”“航空”“数据”

载入记录飞行轨迹数据

本例的飞行轨迹数据存储在逗号分隔的值格式文件中。使用readmatrix从文件中读取数据。

Tdata = readmatrix(“asthl20log.csv”);

从轨迹数据创建时间序列对象

使用MATLAB®timeseries命令从纬度、经度、海拔和欧拉角数据以及tdata中的时间数组创建时间序列对象ts。要将纬度、经度和欧拉角从角度转换为弧度,请使用convang函数。

Ts = timeseries([convang(tdata(:,[3 2]),“度”rad的...tdata (:, 4) convang (tdata(:,前书5章7节),“度”rad的)], tdata (: 1));

您可以使用其他有效格式从该数据创建导入数据,例如'Array6DoF'。例如:

ts = [tdata (: 1) convang (tdata(:, 2[3]),‘度’,rad) tdata(:, 4)……convang (tdata(: 5:7),‘度’,rad)];

和“Array3DoF”。

ts = [tdata (: 1) convang (tdata(:, 3),“度”,rad) tdata(:, 4)……6) convang (tdata(:,“度”,rad)];

使用FlightGearAnimation对象初始化飞行动画

打开一个FlightGearAnimation对象。

h = air . flightgearanimation;

为时间序列设置FlightGearAnimation对象属性。

h.TimeseriesSourceType =“Timeseries”;h.TimeseriesSource = ts;

设置关于FlightGear的FlightGearAnimation对象属性。

这些属性包括安装文件夹的路径、飞机几何模型和FlightGear飞行模拟器的网络信息。

h.FlightGearBaseDirectory =“C: \ Program Files \ FlightGear”;h.GeometryModelName =“HL20”;h.DestinationIpAddress =“127.0.0.1”;h.DestinationPort =“5502”

为FlightGear飞行模拟器设置所需的初始条件(位置和方向)。

h.AirportId =“KSFO”;h.RunwayId =“10 l”;h.InitialAltitude = 7224;h.InitialHeading = 113;h.OffsetDistance = 4.72;h.OffsetAzimuth = 0;

启用FlightGear飞行模拟器的“及时”风景安装。所需的场景将在模拟器运行时下载。对于Windows®系统,启用此选项启动FlightGear时,您可能会遇到一条错误消息。有关更多信息,请参见安装额外的飞行装备风景

. installscene = true;

禁用FlightGear Shaders。

h.DisableShaders = true;

设置动画数据的秒数/挂钟时间。

h.TimeScaling = 5;

使用get(h)检查FlightGearAnimation对象的属性及其值。

得到(h)
OutputFileName: 'runfg.bat' FlightGearBaseDirectory: 'C:\Program Files\FlightGear' GeometryModelName: 'HL20' DestinationIpAddress: '127.0.0.1' DestinationPort: '5502' AirportId: 'KSFO' RunwayId: '10L' InitialAltitude: 7224 InitialHeading: 113 OffsetDistance: 4.7200 OffsetAzimuth: 0 InstallScenery: 1 DisableShaders: 1 Architecture: 'Default' TimeScaling: 5 FramesPerSecond: 12 TStart: NaN TFinal: NaN TimeSeriesSource: [1x1 timeseries] TimeSeriesReadFcn:@TimeseriesRead

创建一个运行脚本来启动FlightGear飞行模拟器

要用所需的初始条件(位置、日期、时间、天气和操作模式)启动FlightGear,请使用GenerateRunScript命令。默认情况下,GenerateRunScript将运行脚本保存为名为'runfg.bat'的文本文件。

GenerateRunScript (h)

您不需要每次查看数据时都生成此文件。只有当所需的初始条件或FlightGear信息发生变化时才生成它。

启动FlightGear飞行模拟器

要从MATLAB命令提示符启动FlightGear,请键入系统命令来执行由。创建的运行脚本GenerateRunScript

系统(“runfg.bat &”);

提示:在FlightGear窗口聚焦的情况下,按V键可以在不同的飞机视图之间切换:驾驶舱视图、直升机视图和追逐视图。

播放轨迹数据的飞行动画

一旦FlightGear启动并运行,FlightGearAnimation对象就可以开始与FlightGear通信。要使用FlightGear显示飞行动画,请使用命令。

玩(h)

要显示飞行动画的截图,使用MATLAB图像命令。

图像(imread (fullfile (matlabroot,“例子”“航空”“数据”“astfganim01.png”),“png”));轴;集(gca),“位置”,[0 0 1 1]);集(gcf,菜单条的“没有”);

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。