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

Введение

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

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

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

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

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

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

В настоящее время самый популярный 3-D формат файла геометрии является форматом AC3D, который имеет суффиксный *.ac. AC3D является недорогим редактором геометрии, доступным от www.ac3d.org.

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

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

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

  • Транспортное средство возражает и их формы и цвета

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Много существующих 3-D моделей геометрии самолета доступны для использования с FlightGear. Посетите область загрузки https://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.

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. Выберите или снимите эти флажки и

    • Чтобы направить FlightGear, чтобы автоматически установить требуемый пейзаж, в то время как средство моделирования запускается — Выбирают Install FlightGear scenery during simulation (requires Internet connection). Для систем Windows можно столкнуться с сообщением об ошибке при запуске FlightGear с этой включенной опцией. Для получения дополнительной информации смотрите Установку Дополнительный Пейзаж FlightGear.

    • Чтобы отключить опции программы построения теней FlightGear — Выбирают Disable FlightGear shader options.

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

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

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

>> cd C:\Applications\FlightGear-2019.1
>> SET FG_ROOT=C:\Applications\FlightGear-2019.1\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-адреса блока Send net_fdm Packet to 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-адрес целевого компьютера в блок Send net_fdm Packet to FlightGear. Смотрите Отправляют Данные Simulink предыдущему FlightGear.

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

    Смотрите Создают предыдущий Скрипт Запуска FlightGear.

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

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

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

  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 является подсистемой, содержащей блоки Send net_fdm Packet to FlightGear и Pack net_fdm Packet for FlightGear:

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

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

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

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

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

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

  • Receive net_ctrl Packet from FlightGear — Получает сетевое управление и пакет данных о среде net_ctrl или от симуляции модели Simulink в средстве моделирования FlightGear, или от сеанса FlightGear.

  • Unpack net_ctrl Packet from FlightGear — Распаковывает net_ctrl переменные пакеты, полученные от FlightGear, и делает их доступными для окружения Simulink.

  • Generate Run Script — Генерирует индивидуально настраиваемый скрипт запуска FlightGear на текущей платформе.

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

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

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

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

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

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

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

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

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

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