Данные о траектории рейса для этого примера хранятся в разделенном значении запятой, отформатировал файл. Используя 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.
h = fganimation;
Установите свойства объектов FlightGearAnimation для временных рядов.
h.TimeseriesSourceType = 'Timeseries'; h.TimeseriesSource = ts;
Установите свойства объектов FlightGearAnimation, относящиеся к FlightGear. Эти свойства включают путь к папке установки, номеру версии, модели геометрии самолета и сетевой информации для средства моделирования рейса FlightGear.
h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear20191'; h.FlightGearVersion = '2019.1'; 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;
Установите секунды данных анимации в секунду тактового стенкой времени.
h.TimeScaling = 5;
Проверяйте свойства объектов 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\FlightGear20191' 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 по мере необходимости. Если ваша папка установки 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 с командной строки MATLAB, используйте system
команда, чтобы выполнить скрипт запуска. Обеспечьте имя выходного файла, созданного GenerateRunScript в качестве аргумента:
system('runfg.bat &');
FlightGear запускается в отдельном окне.
С окном FlightGear в особом внимании нажмите V клавиш, чтобы чередоваться между различными представлениями самолета: кабина, вертолет, преследование, и так далее.
Вы теперь готовы воспроизвести данные (см. Воспроизведение Траектории Рейса). Если вы не можете просмотреть сцены, смотрите Устанавливающий Дополнительный Пейзаж FlightGear.
Если FlightGear использует больше ресурсов компьютера, чем вы хотите, можно изменить его приоритет планирования в меньший. Например, смотрите команды как Windows® start
и Linux® nice
или их эквиваленты.
Если FlightGear запускается, объект FlightGearAnimation может начать связываться с FlightGear. Чтобы анимировать данные о траектории рейса, используйте команду игры:
play(h)
Следующий рисунок показывает снимок состояния воспроизведения полетных данных в представлении башни без отклонения от курса.