从轨迹数据创建一个飞行动画
这个例子展示了如何使用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. 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: ' 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,菜单条的,“没有”);