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

В этом примере показано, как создать анимацию рейса для траектории с помощью Объекта 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.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. Необходимый пейзаж будет загружен, в то время как средство моделирования запускается. Для систем Windows® можно столкнуться с сообщением об ошибке при запуске FlightGear с этой включенной опцией. Для получения дополнительной информации смотрите Устанавливающий Дополнительный Пейзаж FlightGear.

h.InstallScenery = true;

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

h.DisableShaders = true;

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

h.TimeScaling = 5;

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

get(h)
             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
               Architecture: 'Default'
                TimeScaling: 5
            FramesPerSecond: 12
                     TStart: NaN
                     TFinal: NaN
           TimeseriesSource: [1x1 timeseries]
       TimeseriesSourceType: 'Timeseries'
          TimeseriesReadFcn: @TimeseriesRead

Создайте скрипт запуска, чтобы запустить средство моделирования рейса 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');