Данные о траектории рейса

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

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

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

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

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

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

Создание объекта FlightGearAnimation

Этот ряд команд создает объект FlightGearAnimation:

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

    h = fganimation;
  2. Установите свойства объектов FlightGearAnimation для временных рядов.

    h.TimeseriesSourceType = 'Timeseries';
    h.TimeseriesSource = ts;
  3. Установите свойства объектов FlightGearAnimation, относящиеся к FlightGear. Эти свойства включают путь к папке установки, номеру версии, модели геометрии самолета и сетевой информации для средства моделирования рейса FlightGear.

    h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear20182';
    h.FlightGearVersion = '2018.2';
    h.GeometryModelName = 'HL20';
    h.DestinationIpAddress = '127.0.0.1';
    h.DestinationPort = '5502';
  4. Установите начальные условия (местоположение и ориентация) для средства моделирования рейса FlightGear.

    h.AirportId = 'KSFO';
    h.RunwayId = '10L';
    h.InitialAltitude = 7224;
    h.InitialHeading = 113;
    h.OffsetDistance = 4.72;
    h.OffsetAzimuth = 0;
  5. Установите секунды данных анимации в секунду тактового стеной времени.

    h.TimeScaling = 5;
  6. Проверяйте свойства объектов FlightGearAnimation и их значения.

    get(h)

Пример прекращает запускаться и возвращает объект FlightGearAnimation, h:

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

Можно теперь установить свойства объектов для воспроизведения данных (см. Изменение Свойств объектов FlightGearAnimation).

Изменение свойств объектов FlightGearAnimation

Измените свойства объектов FlightGearAnimation по мере необходимости. Если ваша папка установки FlightGear отличается от того в примере (например, FlightGear), измените свойство FlightGearBaseDirectory путем выдачи следующей команды:

h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear';

Точно так же, если вы хотите использовать конкретное имя файла для скрипта выполнения, измените свойство OutputFileName.

Проверьте свойства объектов FlightGearAnimation:

get(h)

Можно теперь сгенерировать скрипт выполнения (см. Генерацию Скрипта Выполнения).

Генерация скрипта выполнения

Чтобы запустить FlightGear с начальных условий (местоположение, дата, время, погода, рабочие режимы), что вы хотите, создают скрипт выполнения при помощи команды GenerateRunScript:

GenerateRunScript(h)

По умолчанию GenerateRunScript сохраняет скрипт выполнения как текстовый файл под названием runfg.bat. Можно задать другое имя путем изменения свойства OutputFileName объекта FlightGearAnimation, как описано на предыдущем шаге.

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

Вы теперь готовы запустить FlightGear (см. Запуск Средства моделирования Рейса FlightGear).

Примечание

Свойства FlightGearBaseDirectory и OutputFileName должны состоять из символов ASCII.

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

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

system('runfg.bat &');

FlightGear запускается в отдельном окне.

Совет

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

Вы теперь готовы воспроизвести данные (см. Воспроизведение Траектории Рейса). Если вы не можете просмотреть сцены, смотрите Устанавливающий Дополнительный Пейзаж FlightGear.

Совет

Если FlightGear использует больше ресурсов компьютера, чем вы хотите, можно изменить его приоритет планирования на меньший. Например, смотрите команды как Windows® start и Linux® nice или их эквиваленты.

Воспроизведение траектории рейса

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

play(h)

Следующий рисунок показывает снимок состояния воспроизведения полетных данных в представлении башни без отклонения от курса.