主要内容

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

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

注意:在产品中运行此示例时,必须使用Flairgear安装自定义示例,并取消注释GeneraterUnscript,系统和播放命令。您还必须将$ MATLAB / TOOLBOX / AERO / ASTDEMOS / HL20文件夹复制到$ FLIGHTGEAR / DATA / ACTOR /文件夹中。

载荷记录的飞行轨迹数据

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

tdata = dlmread(“asthl20log.csv”',',1,0);

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

使用MATLAB®.timeseries命令以创建时间序列对象TS,从纬度,经度,高度和欧拉角数据以及TDATA中的时间阵列。将纬度,经度和欧拉角度转换为弧度到弧度的角度使用convang函数。

tdata = timeseries([convang(tdata(:,[3 2])),'DEG'rad的...TDATA(:,4)调整(TDATA(:,5:7),'DEG'rad的)],TDATA(:,1));

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

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

和'array3dof'。

ts = [tdata(:,1)concang(tdata(:,3),'deg','rad')tdata(:,4)... concang(tdata(:,6),'deg','rad')];

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

打开飞行甘油animation对象。

h = Aero.FlightGearAnimation;

设置timeseries的FlightGearAnimation对象属性。

H.Timeseriessourcetype =“Timeseries”;H.Timeseriessource = TS;

设置FlightGearAnimation对象的属性

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

h.flightgearbasedirectory =“C: \ Program Files \ FlightGear”;h.geometrymodelname =“HL20”;h.DestinationIpAddress =“127.0.0.1”;H.DestinationPort =“5502”;

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

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

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

H.InstallScenery = True;

禁用飞机着色器。

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:“10 l”InitialAltitude: 7224 InitialHeading: 113 OffsetDistance: 4.7200 OffsetAzimuth: 0 InstallScenery: 1 DisableShaders: 1架构:'Default' TimeScaling: 5 FramesPerSecond: 12 TStart: NaN TFinal: NaN TimeseriesSource: [1x1 timeseries] TimeseriesSourceType: ' timeseries ' TimeseriesReadFcn: @TimeseriesRead . TimeseriesReadFcn: @TimeseriesRead . TimeseriesReadFcn: @ TimeseriesReadFcn

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

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

GenerateRunScript (h)

每次查看数据时都不需要生成此文件。仅在所需的初始条件或飞行术信息发生变化时才生成它。

启动FlightGear飞行模拟器

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

系统('runfg.bat&');

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

播放轨迹数据的飞行动画

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

玩(h)

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

图像(imread ([matlabroot filesep fullfile ('工具箱'“航空”“astdemos”'数字'“astfganim01.png”),'PNG'));轴离开;套(GCA,'位置',[0 0 1 1]);设置(GCF,'菜单栏'“没有”);