exponenta event banner

Создание анимации полета на основе данных траектории

В этом примере показано, как создать анимацию полета для траектории с помощью объекта FlireGear Animation.

Примечание.При выполнении этого примера в рамках продукта необходимо настроить этот пример с помощью установки FlireGear и раскомментировать команды GenerateRunScript, system и play. Также необходимо скопировать папку $ MATLAB/toolbox/aero/astdemos/HL20 в папку $ FLIGHTGEAR/data/Aircraft/.

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

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

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

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

Команда MATLAB ® timeseries используется для создания объекта временного ряда 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]), 'deg', 'rad') tdata (:, 4)... convang (tdata (:, 5:7), 'deg', 'rad')];

и 'Array3DoF'.

ts = [tdata (:, 1) convang (tdata (:, 3), 'deg', 'rad') tdata (:, 4)... convang (tdata (:, 6), 'deg', 'rad')];

Использование объекта FleyGearAnimation для инициализации анимации полета

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

h = Aero.FlightGearAnimation;

Задайте свойства объекта FlireGearAnimation для временных рядов.

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

Задать свойства объекта FleyGearAnimation для FlireGear

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

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

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

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

Включите установку декораций «как раз вовремя» для имитатора полета FleyGear. Необходимые декорации будут загружены во время работы симулятора. В системах с ОС Windows ® может появиться сообщение об ошибке при запуске FlireGear с включенным параметром. Дополнительные сведения см. в разделе Установка дополнительных декораций FlireGear.

h.InstallScenery = true;

Отключить шейдеры FlireGear.

h.DisableShaders = true;

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

h.TimeScaling = 5;

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

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

Создание сценария запуска симулятора полета FleyGear

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

GenerateRunScript (h)

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

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

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

system ('runfg.bat &');

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

Воспроизведение анимации полета данных траектории

После запуска и запуска FlireGear объект FlireGearAnimation может начать взаимодействовать с FlireGear. Для отображения анимации полета с помощью FlireGear используется команда play.

играть (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');