这个例子展示了如何使用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对象。
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,请使用GenerateRunScript命令。默认情况下,GenerateRunScript将运行脚本保存为名为“runfg.bat”的文本文件。
GenerateRunScript (h)
您不需要每次查看数据时都生成此文件。仅当所需的初始条件或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,菜单条的,“没有”);