主要内容

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

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

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

载荷记录飞行轨迹数据

本例的飞行轨迹数据存储在逗号分隔的值格式文件中。使用dlmread从文件的第1行和第0列开始读取数据,跳过标题信息。

Tdata = dlmread(“asthl20log.csv””、“1 0);

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

使用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. initialheight = 7224;h.InitialHeading = 113;h.OffsetDistance = 4.72;h.OffsetAzimuth = 0;

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

h. installscene = true;

禁用FlightGear Shaders。

h.DisableShaders = true;

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

h.TimeScaling = 5;

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

得到(h)
OutputFileName: ' runcfg .bat' FlightGearBaseDirectory: 'C:\Program Files\FlightGear' GeometryModelName: 'HL20' DestinationIpAddress: '127.0.0.1' DestinationPort: '5502' AirportId: 'KSFO' RunwayId: '10L' initialheight: 7224 InitialHeading: 113 OffsetDistance: 4.7200 OffsetAzimuth: 0 InstallScenery: 1 DisableShaders: 1 Architecture: 'Default' timscaling: 5 FramesPerSecond: 12 TStart: NaN TFinal: NaN TimeseriesSource: [1x1 timeseries] TimeseriesSourceType: ' 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图像命令。

Image (imread([matlabroot filesep fullfile(“工具箱”“航空”“astdemos”“数据”“astfganim01.png”)),“png”));轴;集(gca),“位置”,[0 0 1 1]);集(gcf,菜单条的“没有”);