这个例子展示了如何使用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')];
打开飞行甘油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,使用GenerateRunScript命令。默认情况下,GenerateRunScript将RUN脚本保存为名为“runfg.bat”的文本文件。
GenerateRunScript (h)
每次查看数据时都不需要生成此文件。仅在所需的初始条件或飞行术信息发生变化时才生成它。
要从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,'菜单栏',“没有”);