Создайте анимацию рейса из данных о траектории

Этот пример показывает, как создать анимацию рейса для траектории с помощью Объекта Animation FlightGear.

Примечание: При выполнении этого примера в продукте, необходимо настроить пример с установкой FlightGear и не прокомментировать GenerateRunScript, систему и команды игры. Необходимо также скопировать папку $MATLAB/toolbox/aero/astdemos/HL20 в папку $FLIGHTGEAR/data/Aircraft/.

Загрузите записанные данные о траектории рейса

Данные о траектории рейса для этого примера хранятся в разделенном значении запятой, отформатировал файл. Используйте dlmread, чтобы считать данные из файла, запускающегося в строке 1 и столбце 0, пропускающем информацию о заголовке.

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

Создайте объект временных рядов из данных о траектории

Используйте команду timeseries MATLAB®, чтобы создать объект временных рядов, ts, от широты, долготы, высоты и данных об Угле Эйлера наряду с массивом времени в tdata. Чтобы преобразовать широту, долгота и Углы Эйлера от степеней до радианов используют функцию convang.

ts = timeseries([convang(tdata(:,[3 2]),'deg','rad') ...
                 tdata(:,4) convang(tdata(:,5:7),'deg','rad')],tdata(:,1));

Можно создать импортированные данные из этих данных с помощью других допустимых форматов, таких как 'Array6DoF', Например:

ts = [tdata (: 1) convang (tdata (: [3 2]), 'градус', 'рад') tdata (: 4)... convang (tdata (: 5:7), 'градус', 'рад')];

и 'Array3DoF'.

ts = [tdata (: 1) convang (tdata (: 3), 'градус', 'рад') tdata (: 4)... convang (tdata (: 6), 'градус', 'рад')];

Используйте объект FlightGearAnimation инициализировать анимацию рейса

Откройте объект FlightGearAnimation.

h = Aero.FlightGearAnimation;

Установите свойства объектов FlightGearAnimation для timeseries.

h.TimeseriesSourceType = 'Timeseries';
h.TimeseriesSource = ts;

Установите свойства объектов FlightGearAnimation о FlightGear

Эти свойства включают путь к папке установки, номеру версии, модели геометрии самолета и сетевой информации для средства моделирования рейса FlightGear.

h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear';
h.FlightGearVersion = '2018.2';
h.GeometryModelName = 'HL20';
h.DestinationIpAddress = '127.0.0.1';
h.DestinationPort = '5502';

Установите желаемые начальные условия (местоположение и ориентация) для средства моделирования рейса FlightGear.

h.AirportId = 'KSFO';
h.RunwayId = '10L';
h.InitialAltitude = 7224;
h.InitialHeading = 113;
h.OffsetDistance = 4.72;
h.OffsetAzimuth = 0;

Включите "как раз вовремя" установку пейзажа для средства моделирования рейса FlightGear. Необходимый пейзаж будет загружен, в то время как средство моделирования запускается.

h.InstallScenery = true;

Отключите программы построения теней FlightGear.

h.DisableShaders = true;

Установите секунды данных анимации в секунду тактового стеной времени.

h.TimeScaling = 5;

Использование заставляет (h) проверять свойства объектов FlightGearAnimation и их значения.

get(h)
           TimeseriesSource: [1x1 timeseries]
       TimeseriesSourceType: 'Timeseries'
          TimeseriesReadFcn: @TimeseriesRead
                TimeScaling: 5
            FramesPerSecond: 12
          FlightGearVersion: '2018.2'
             OutputFileName: 'runfg.bat'
    FlightGearBaseDirectory: 'C:\Program Files\FlightGear'
          GeometryModelName: 'HL20'
       DestinationIpAddress: '127.0.0.1'
            DestinationPort: '5502'
                  AirportId: 'KSFO'
                   RunwayId: '10L'
            InitialAltitude: 7224
             InitialHeading: 113
             OffsetDistance: 4.7200
              OffsetAzimuth: 0
             InstallScenery: 1
             DisableShaders: 1
                     TStart: NaN
                     TFinal: NaN
               Architecture: 'Default'

Создайте скрипт выполнения, чтобы запустить средство моделирования рейса FlightGear

Запустить FlightGear с желаемых начальных условий (местоположение, дата, время, погода, и рабочие режимы), создают скрипт выполнения с командой GenerateRunScript. По умолчанию GenerateRunScript сохраняет скрипт выполнения как текстовый файл под названием 'runfg.bat'.

GenerateRunScript (h)

Вы не должны генерировать этот файл каждый раз, когда данные просматриваются. Сгенерируйте его только, когда желаемая информация о начальных условиях или FlightGear изменится.

Запустите средство моделирования рейса FlightGear

Чтобы запустить FlightGear с подсказки команды MATLAB, введите системную команду, чтобы выполнить скрипт выполнения, созданный GenerateRunScript.

система ('runfg.bat &');

Совет: С окном FlightGear в особом внимании нажмите V клавиш, чтобы чередоваться между различными представлениями самолета: представление кабины, вертолетное представление и представление преследования.

Проигрывайте анимацию рейса данных о траектории

Если FlightGear в порядке, объект FlightGearAnimation может начать связываться с FlightGear. Чтобы отобразить анимацию рейса с FlightGear, используйте команду игры.

вопроизведите (h)

Чтобы отобразить снимок экрана анимации рейса, используйте команду изображений MATLAB.

image(imread([matlabroot filesep fullfile('toolbox','aero','astdemos','figures','astfganim01.png')],'png'));
axis off;
set(gca,'Position',[ 0 0 1 1 ]);
set(gcf,'MenuBar','none');