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

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

Данные рейсы траектории для этого примера хранятся в файле с разделенными запятыми значениями в формате. Используя 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\FlightGear<your_FlightGear_version>';
    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.1'
             OutputFileName: 'runfg.bat'
    FlightGearBaseDirectory: 'C:\Program Files\FlightGear<your_FlightGear_version>'
          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 Flight Simulator).

Примечание

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

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

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

system('runfg.bat &');

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

Совет

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

Теперь вы готовы воспроизвести данные (см. Игру Назад к Рейсу Траектории). Если вы не можете просмотреть сцены, см. Раздел «Установка дополнительных сцен FlightGear».

Совет

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

Игра Назад к Рейсу траектории

После запуска FlightGear объект FlightGearAnimation может начать связь с FlightGear. Для анимации данных траектории рейса используйте команду play:

play(h)

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