Работа с интерфейсом средства моделирования рейса

Введение

Используйте этот раздел, чтобы изучить, как использовать средство моделирования рейса FlightGear и программное обеспечение Aerospace Blockset™, чтобы визуализировать ваши модели самолетов Simulink®. Если вы еще не установили FlightGear, смотрите Интерфейс Средства моделирования Рейса сначала.

Simulink управляемая модель HL-20 в приземляющейся вспышке в KSFC

О моделях геометрии самолета

Прежде чем можно будет визуализировать динамику самолета, необходимо создать или получить файл модели самолета, совместимый с FlightGear. Этот раздел объясняет, как сделать это.

Редакторы геометрии самолета и форматы

У вас есть конкурентоспособный выбор более чем двенадцати 3-D форматов файлов геометрии, поддержанных FlightGear.

В настоящее время самый популярный 3-D формат файла геометрии является форматом AC3D, который имеет суффиксный *.ac. AC3D является недорогим редактором геометрии, доступным от www.ac3d.org. Другой популярный 3-D редактор для моделей самолетов является Рейсом Студия дизайна Сима, распределенная Публикациями Координатной сетки в www.abacuspub.com.

Структура модели самолета и требования

Модели самолетов содержатся в папке FlightGearRoot /data/Aircraft/ и подпапках. Полная модель самолета должна содержать папку, соединенную через необходимый основной файл самолета под названием model -set.xml.

Все другие элементы модели являются дополнительными. Это - частичный список дополнительных элементов, можно вставить папку данных о самолете:

  • Автомобиль возражает и их формы и цвета

  • Битовые массивы поверхности объектов автомобиля

  • Описания изменяемой геометрии

  • Инструмент кабины 3-D модели

  • Автомобиль звучит, чтобы связать с событиями (например, механизм, механизм, шум ветра)

  • Модель динамики рейса

  • Представления средства моделирования

  • Подмодели (независимо подвижные элементы) сопоставленный с автомобилем

Поведение модели возвращается к значениям по умолчанию, когда эти элементы не используются. Например,

  • Звук по умолчанию: никакие связанные с автомобилем звуки не испускаются.

  • Инструментальная панель по умолчанию: никакие инструменты не показывают.

Модели могут содержать некоторых, все, или даже ни один из вышеупомянутых элементов. Если вы всегда запускаете FlightGear от представления кабины, геометрия самолета часто вторична к инструментальным конфигурациям.

Документ с практическими рекомендациями для включения дополнительных элементов включен в документацию FlightGear в:

Необходимая спецификация модели динамики рейса

Спецификация модели динамики рейса (FDM) является необходимым элементом для модели самолета. Чтобы установить программное обеспечение Simulink как источник потока данных модели динамики рейса для данной модели геометрии, вы помещаете эту строку в data/Aircraft/ model / model -set.xml:

<flight-model>network</flight-model>

Получите и измените существующие модели самолетов

Можно быстро создать модели с нуля путем ссылки на инструменты, звуки и другие дополнительные элементы из существующих моделей FlightGear. Такие модели обеспечивают примеры геометрии, динамики, инструментов, представлений и звуков. Просто скопировать папку самолета в новое имя, переименовать -set.xml file model, изменить его для сетевой динамики рейса, и затем запустить FlightGear с набором флага –aircraft к имени в model -set.xml.

Много существующих 3-D моделей геометрии самолета доступны для использования с FlightGear. Посетите область загрузки www.flightgear.org, чтобы видеть некоторые доступные модели самолетов. Дополнительные модели могут быть получены через Веб-поиск. Слова ключа поиска, такие как “модель самолета механизма рейса” являются хорошей отправной точкой. Обязательно выполните авторские права при распределении этих файлов.

Требования к аппаратным средствам для рендеринга геометрии самолета

При создании собственных файлов геометрии имейте в виду, что видеокарта может эффективно представить ограниченное количество поверхностей. Некоторые карты могут эффективно представить меньше чем 1 000 поверхностей с битовыми массивами и зеркальными отражениями на номинальном уровне 30 кадров в секунду. Другие карты могут легко представить на порядке 10 000 поверхностей.

Если ваша производительность замедляется при использовании конкретной геометрии измерьте эффект геометрической сложности на производительности при обработке графики путем варьирования количества поверхностей модели самолета. Простой способ проверять это состоит в том, чтобы заменить полный файл геометрии самолета на простую форму, такую как один треугольник, затем протестировать FlightGear с этой более простой геометрией. Если файл геометрии является слишком комплексным для сглаженного отображения, используйте 3-D редактор геометрии, чтобы упростить вашу модель путем сокращения количества поверхностей в геометрии.

Работа с моделями геометрии самолета

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

Импортируйте модели самолетов в FlightGear

Чтобы установить совместимую модель в FlightGear, используйте одну из следующих процедур. Выберите одно подходящее для своей платформы. Этот раздел принимает, что вы считали Установку и Запускаете FlightGear.

Если ваша платформа является Windows:

  1. Перейдите к своей установленной папке FlightGear. Откройте папку data, затем папка Aircraft: \FlightGear\data\Aircraft\.

  2. Сделайте подпапку model \здесь для ваших данных о самолете.

  3. Поместите model -set.xml в ту подпапку плюс любые другие необходимые файлы.

    Это - установившаяся практика, чтобы сделать подкаталоги для файлов геометрии автомобиля (\model\), инструменты (\instruments\) и звуки (\sounds\).

Если вашей платформой является Linux:

  1. Перейдите к своей установленной директории FlightGear. Откройте директорию data, затем директорию Aircraft: $FlightGearBaseDirectory/data/Aircraft/.

  2. Сделайте подкаталог model / здесь для ваших данных о самолете.

  3. Поместите model -set.xml в тот подкаталог плюс любые другие необходимые файлы.

    Это - установившаяся практика, чтобы сделать подкаталоги для файлов геометрии автомобиля (/model/), инструменты (/instruments/) и звуки (/sounds/).

Если вашей платформой является Mac:

  1. Откройте терминал.

  2. Перейдите к своей установленной папке FlightGear. Откройте папку data, затем папка Aircraft:

    $FlightGearBaseDirectory/FlightGear.app/Contents/Resources/data/Aircraft/
  3. Сделайте подпапку model / здесь для ваших данных о самолете.

  4. Поместите model -set.xml в ту подпапку плюс любые другие необходимые файлы.

    Это - установившаяся практика, чтобы сделать подкаталоги для файлов геометрии автомобиля (/model/), инструменты (/instruments/) и звуки (/sounds/).

Пример: анимационные конфигурации автомобиля

Этот пример иллюстрирует, как подготовить определения строки стержня к анимированным элементам, таким как поверхности управления автомобилем и посадочное устройство. Чтобы включить анимацию, каждый элемент должен быть именованной сущностью в файле геометрии. Получившийся код является частью модели несущего тела HL20, представленной в Запущенном пример HL-20 с FlightGear.

  1. Стандартные координаты тела, используемые в моделях геометрии FlightGear, формируют предназначенную для правой руки систему, вращаемую от стандартной системы координат тела в Y-180 градусами:

    • X = положительный к задней части автомобиля

    • Y = положительный к праву на автомобиль

    • Z = положительный произошел, например, колеса обычно имеют самые низкие значения Z.

    Займитесь Космическими Системами координат для получения дополнительной информации.

  2. Найдите две точки, которые лежат на желаемой строке стержня именованного объекта в координатах тела и записывают их как триплеты XYZ или помещают их в вычисление MATLAB® как это:

    a = [2.98, 1.89, 0.53];
    b = [3.54, 2.75, 1.46];
    
  3. Вычислите различие между точками:

    pdiff = b - a
    pdiff =
    	0.5600    0.8600    0.9300
    
  4. Точка стержня или точек на шаге 2 (или средней точки как показано здесь):

    mid = a + pdiff/2
    mid =
    	3.2600    2.3200    0.9950
    
  5. Поместите точку стержня в осциллограф анимации в model -set.xml:

    <center>
    	<x-m>3.26</x-m>
    	<y-m>2.32</y-m>
    	<z-m>1.00</z-m>
    </center>
    
  6. Используйте различие от шага 3, чтобы задать относительный вектор движения на оси анимации:

    <axis>
    	<x>0.56</x>
    	<y>0.86</y>
    	<z>0.93</z>
    </axis>
    
  7. Соедините эти шаги, чтобы получить полную линейную анимацию стержня, используемую в модели в качестве примера HL20:

    <animation>
    	<type>rotate</type>
    	<object-name>RightAileron</object-name>
    	<property>/surface-positions/right-aileron-pos-norm</property>
    	<factor>30</factor>
    	<offset-deg>0</offset-deg>
    	<center>
    		<x-m>3.26</x-m>
    		<y-m>2.32</y-m>
    		<z-m>1.00</z-m>
    	</center>
    	<axis>
    		<x>0.56</x>
    		<y>0.86</y>
    		<z>0.93</z>
    	</axis>
    </animation>
    

Запустите FlightGear с моделями Simulink

Чтобы запустить модель Simulink вашего самолета и одновременно анимировать его в FlightGear с файлом данных самолета model -set.xml, необходимо сконфигурировать файл данных самолета и изменить модель Simulink с некоторыми новыми блоками.

Это основные шаги к соединению и использованию FlightGear с программным обеспечением Simulink:

Установите модель динамики рейса объединяться в сеть в файле данных самолета

Убедитесь:

  • Удалите любые существующие ранее данные о модели динамики рейса (FDM) из файла данных самолета.

  • Укажите в файле данных самолета, что его FDM передает потоком от сети путем добавления этой строки:

    	<flight-model>network</flight-model>
    

Получите целевой IP-адрес

Вам нужен целевой IP-адрес для вашей модели Simulink, чтобы передать ее полетные данные потоком к FlightGear.

  • Если вы знаете имя своего компьютера, войдите в командной строке MATLAB:

    	java.net.InetAddress.getByName('www.mathworks.com')
    
  • Если при запуске FlightGear и программное обеспечение Simulink на том же компьютере, получаете имя вашего компьютера путем ввода в командной строке MATLAB:

    	java.net.InetAddress.getLocalHost
    
  • Если вы работаете в Windows, получаете IP-адрес своего компьютера путем ввода в командной строке DOS:

    	ipconfig /all
    

    Исследуйте запись IP-адреса в получившемся выводе. Существует одна запись на устройство Ethernet.

Создайте FlightGear запущенный скрипт

Запустить FlightGear с желаемых начальных условий (местоположение, дата, время, погода, рабочие режимы), лучше создавать скрипт выполнения Использованием Сгенерировать Блок сценария Выполнения или Использование Интерфейс, Предоставленный FlightGear.

Если вы делаете отдельные скрипты выполнения для каждой модели, вы намереваетесь соединиться с FlightGear и разместить их в отдельные директории, запустить соответствующий скрипт от интерфейса MATLAB прежде, чем запустить вашу модель Simulink.

Используйте Сгенерировать Блок сценария Выполнения.  Самый легкий способ создать скрипт выполнения при помощи Сгенерировать Блока сценария Выполнения. Используйте следующую процедуру:

  1. Откройте подбиблиотеку Flight Simulator Interfaces.

  2. Создайте новую модель Simulink или откройте существующую модель.

  3. Перетащите Сгенерировать Блок сценария Выполнения в схему Simulink.

  4. Дважды кликните Сгенерировать Блок сценария Выполнения. Его диалоговое окно открывается. Наблюдайте три панели, FlightGear, Network и File.

  5. В поле File> Output file name введите имя выходного файла. Это имя должно быть именем команды, которую вы хотите использовать, чтобы запустить FlightGear с этих начальных параметров. Используйте соответствующее расширение файла:

    ПлатформаРасширение
    Windows®.bat
    Linux® и macOS.sh

    Например, если вашим именем файла является runfg.bat, используйте команду runfg, чтобы выполнить скрипт выполнения и запустить FlightGear.

  6. В поле File> FlightGear base directory задайте имя своей папки установки FlightGear.

  7. В поле File> FlightGear geometry model name задайте имя подпапки, в папке FlightGear /data/Aircraft, содержа желаемую образцовую геометрию.

  8. Задайте начальные условия по мере необходимости.

  9. Нажмите кнопку Generate Script наверху области Parameters.

    Программное обеспечение Aerospace Blockset генерирует скрипт выполнения и сохраняет его в вашем MATLAB рабочая папка под именем файла, которое вы задали в поле File> Output file name.

  10. Повторите шаги 5 - 9, чтобы сгенерировать другие скрипты выполнения в случае необходимости.

  11. Нажмите ОК, чтобы закрыть диалоговое окно. Вы не должны сохранять Сгенерировать Блок сценария Выполнения с моделью Simulink.

Сгенерировать Блок сценария Выполнения сохраняет скрипт выполнения как текстовый файл в вашей рабочей папке. Это - пример содержимого файла скрипта выполнения:

>> cd C:\Applications\FlightGear-2018.2
>> SET FG_ROOT=C:\Applications\FlightGear-2018.2\data
>> cd \bin\
>> fgfs --aircraft=HL20 --fdm=network,localhost,5501,5502,5503
  --fog-fastest --disable-clouds --start-date-lat=2004:06:01:09:00:00 
  --disable-sound --in-air --enable-freeze --airport=KSFO --runway=10L
  --altitude=7224 --heading=113 --offset-distance=4.72 --offset-azimuth=0

Используйте Интерфейс, Предоставленный FlightGear.  Графический интерфейс пользователя средства запуска FlightGear (часть FlightGear, не продукт Aerospace Blockset) позволяет вам встроить простые и расширенные настройки в видимую команду выполнения FlightGear.

Запустите FlightGear

Если ваш компьютер имеет достаточно вычислительной власти запускать и программное обеспечение Simulink и FlightGear одновременно, простой способ запустить FlightGear в системе Windows состоит в том, чтобы создать кнопку рабочего стола MATLAB, содержащую следующую команду, чтобы выполнить скрипт выполнения как тот, созданный выше:

system('runfg &')

Создать настольную кнопку:

  1. В Окне Команды MATLAB выберите Shortcuts и нажмите New Shortcut. Редактор Ярлыка диалоговое окно открывается.

  2. Установите Метку, Коллбэк, Категорию и Поля значка как показано в следующей фигуре.

  3. Нажмите Save.

    Кнопка FlightGear появляется в вашем рабочем столе MATLAB. Если вы кликаете по нему, выходной файл, например, runfg.bat, запускается в текущей папке.

Если вы завершили настройку, запустите FlightGear и запустите свою модель:

  1. Убедитесь, что ваша модель находится в перезаписываемой папке. Откройте модель и обновите схему. Этот шаг гарантирует, что любой блочный код, на который ссылаются, скомпилирован и что блок-схема скомпилирована перед выполнением. Если при запуске FlightGear, он использует все доступное питание процессора, в то время как он запускается.

  2. Нажмите кнопку FlightGear или запустите скрипт выполнения FlightGear вручную.

  3. Когда FlightGear запускается, он отображает начальное представление в начальных координатах, заданных в скрипте выполнения. Если при запуске программное обеспечение Simulink и FlightGear на различных компьютерах, располагаете просмотреть два отображения одновременно.

  4. Теперь начните симуляцию и просмотрите анимацию в FlightGear.

Улучшение производительности

Если ваша модель Simulink является комплексной и не может запуститься на совокупном уровне, необходимом для визуализации, вы можете должны быть

  • Используйте Режим Accelerator в Simulink (Выполните Ускорение (Simulink).)

  • Свободный питание процессора путем выполнения модели Simulink на одном компьютере и FlightGear на другом компьютере. Используйте Целевой параметр IP-адреса Отправления net_fdm Пакет к блоку FlightGear, чтобы задать сетевой адрес компьютера, куда FlightGear запускается.

  • Моделируйте модель Simulink сначала, затем сохраните получившиеся переводы (ось X, ось Y, ось z) и положения (широта, долгота, высота), и используйте Объект Animation FlightGear в Aerospace Toolbox, чтобы визуализировать эти данные.

Совет

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

Запустите FlightGear и программное обеспечение Simulink на различных компьютерах

Возможно моделировать космическую систему в окружении Simulink на одном компьютере (источник) и использовать его симуляцию вывод, чтобы анимировать FlightGear на другом компьютере (цель). Шаги подобны уже объясненным с определенными модификациями.

  1. Получите IP-адрес компьютерного выполнения FlightGear. Смотрите Получают Целевой предыдущий IP-адрес.

  2. Введите IP-адрес этого целевого компьютера в Отправление net_fdm Пакет к блоку FlightGear. Смотрите Отправляют Данные Simulink предыдущему FlightGear.

  3. Обновите Сгенерировать Блок сценария Выполнения в своей модели с базовой папкой FlightGear целевого компьютера. Регенерируйте скрипт выполнения, чтобы отразить раздельную правосубъектность целевого компьютера.

    Смотрите Создают предыдущий Скрипт Выполнения FlightGear.

  4. Скопируйте сгенерированный скрипт выполнения в целевой компьютер. Запустите FlightGear там. Смотрите Запускают предыдущий FlightGear.

  5. Если вы хотите также получить данные FlightGear, используйте Получение net_ctrl Пакет от блока FlightGear. Введите IP-адрес компьютерного выполнения FlightGear в параметре Origin IP address.

  6. Обновите скрипт выполнения для получить данных. Используйте Сгенерировать Блок сценария Выполнения, чтобы регенерировать скрипт выполнения.

  7. Запустите свою модель Simulink на исходном компьютере. FlightGear, работающий на целевых компьютерах движение симуляции.

Запустите пример HL-20 с FlightGear

Программное обеспечение Aerospace Blockset содержит модель в качестве примера несущего тела HL-20, которое использует интерфейс FlightGear и проекты. Этот пример иллюстрирует много функций программного обеспечения Aerospace Blockset. Это также содержит Различный блок Subsystem, который можно использовать, чтобы задать источник данных для симуляции. Вы можете хотеть использовать Различный блок Subsystem, чтобы изменить источник данных ландшафта или если вы не хотите использовать FlightGear, но все еще хотеть моделировать модель.

Чтобы установить и сконфигурировать FlightGear прежде, чем попытаться моделировать эту модель, смотрите Интерфейс Средства моделирования Рейса. Кроме того, прежде, чем попытаться моделировать эту модель, считайте Установку и Запустите FlightGear.

Примечание

Шаг 2 этого примера копирует предварительно сконфигурированные конфигурации для симуляции HL-20 от projectroot \support к FlightGear \data\Aircraft\. Это требует, чтобы у вас были полномочия администратора системы для вашей машины. Если у вас нет этих привилегий, вручную скопируйте эти файлы, в зависимости от своей платформы.

Windows

Скопируйте папку HL20 от папки projectroot \support до папки FlightGear \data\Aircraft\. Эта папка содержит предварительно сконфигурированные конфигурации для симуляции HL-20 и HL20-set.xml. Файл projectroot \support\HL20\Models\HL20.xml задает геометрию.

Для платформ Windows запустите приложение MATLAB с прав администратора. Например, в Меню "Пуск", щелкните правой кнопкой мыши по приложению MATLAB, затем выберите Run as administrator.

Для получения дополнительной информации см. Модели Самолетов Импорта в FlightGear.

Linux

Скопируйте директорию HL20 от директории projectroot /support до директории $FlightGearBaseDirectory /data/Aircraft/. Эта директория содержит предварительно сконфигурированные конфигурации для симуляции HL-20 и HL20-set.xml. Файл projectroot /support/HL20/Models/HL20.xml задает геометрию.

Для больше об этом шаге, см. Модели Самолетов Импорта в FlightGear.

Mac

Скопируйте папку HL20 от папки projectroot /support до папки $FlightGearBaseDirectory /FlightGear.app/Contents/Resources/data/Aircraft/. Эта папка содержит предварительно сконфигурированные конфигурации для симуляции HL-20 и HL20-set.xml. Файл projectroot /support/HL20/Models/HL20.xml задает геометрию.

Для больше об этом шаге, см. Модели Самолетов Импорта в FlightGear.

  1. Запустите интерфейс MATLAB. Откройте пример или путем ввода asbhl20 в Окно Команды MATLAB или путем нахождения записи в качестве примера (HL-20 с Интерфейсом FlightGear) на странице Aerospace Blockset Examples. Проект для модели запускается, и модель открывается.

  2. Если это - ваш первый раз, запуская FlightGear для этой модели, необходимо создать и запустить индивидуально настраиваемый скрипт выполнения FlightGear. Можно сделать это с одним из следующего:

    • В модели дважды кликните блок Install FlightGear и выполните шаги в блоке. Первоначально, этот блок является красным. Когда вы выполняете шаги, обрисованные в общих чертах в блоке, изменениях маски блока.

      Чтобы запустить FlightGear для модели, нажмите Launch HL20 in FlightGear.

  3. Теперь запустите симуляцию и просмотрите анимацию в FlightGear.

Примечание

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

Отправьте и получите данные

Можно отправить и получить данные между моделью Simulink и рабочим Средством моделирования Рейса FlightGear.

Отправьте данные Simulink FlightGear

Самый легкий способ соединить вашу модель с FlightGear с blockset состоит в том, чтобы использовать блок FlightGear Preconfigured 6DoF Animation:

Блок FlightGear Preconfigured 6DoF Animation является подсистемой, содержащей Пакет net_fdm Пакет для FlightGear, и Отправьте net_fdm Пакет в блоки FlightGear:

Эти блоки передают данные от модели до сеанса FlightGear. Блоки являются отдельными для максимальной гибкости и совместимости.

  • Пакет net_fdm Пакет для блока FlightGear форматирует бинарную структуру, совместимую с FlightGear от образцовых входных параметров. В настройке по умолчанию блок отображается только 6DoF порты, но можно сконфигурировать полный интерфейс FlightGear, поддерживающий больше чем 50 отличных сигналов от диалогового окна блока:

  • Отправление net_fdm Пакет к блоку FlightGear передает этот пакет через UDP к заданному IP-адресу и порту, где сеанс FlightGear ждет входящего потока данных. Используйте IP-адрес, в котором вы нашли, Получают Целевой IP-адрес.

  • Блок Simulation Pace замедляет симуляцию так, чтобы ее совокупный плановый объем составил 1 секунду времени симуляции в секунду, показывают время. Можно также использовать его, чтобы задать другие отношения времени симуляции, чтобы показать время.

Отправьте данные FlightGear в модель

Чтобы увеличить точность вашей симуляции модели, вы можете хотеть отправить переменные окружения FlightGear в модель Simulink. Используйте следующие блоки:

Для примера того, как использовать эти блоки, чтобы отправить данные в модель Simulink, смотрите HL-20 with FlightGear Interface.

Эти блоки используют UDP, чтобы передать данные от FlightGear до окружения Simulink. Отметьте следующее:

  • Когда хост и цель являются Windows или платформами Linux, можно использовать любую комбинацию Windows или платформ Linux для хоста и цели.

  • Когда хост или цель будут платформой Mac, используйте только платформы Mac для обоих хост и цель.

Платформа Macintosh и версия 2.6 FlightGear или позже

В системе Macintosh с FlightGear v2.6 или позже, вы можете видеть неожиданные результаты (например, очень большие или очень небольшие значения данных), если ваша модель использует следующие блоки:

Работать вокруг этой проблемы:

  1. В модели измените параметр FlightGear version на v2.4 для обоих блоков.

  2. Сохраните и повторно выполните модель.

    Результаты должны теперь быть как ожидалось.