В этом примере показано, как создать анимацию полета для траектории с помощью объекта 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')];
Откройте объект 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'
Чтобы запустить FlireGear с требуемыми начальными условиями (местоположение, дата, время, погода и режимы работы), создайте сценарий запуска с помощью команды GenerateRunScript. По умолчанию GenerateRunScript сохраняет сценарий запуска в виде текстового файла с именем runfg.bat.
GenerateRunScript (h)
Создавать этот файл при каждом просмотре данных не требуется. Создавайте его только при изменении требуемых начальных условий или данных FlireGear.
Чтобы запустить 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');
