JSBSim - JSBSim

JSBSim
Разработчики)Команда сборки JSBSim
Стабильный выпуск
Релиз-кандидат 1.0.0 / 31 мая 2009 г.
ПлатформаWindows, Linux, Cygwin, Mac OS X, FreeBSD, Solaris или IRIX
ТипМоделирование полета
ЛицензияLGPL
Интернет сайтjsbsim.org

JSBSim является Открытый исходный код Программная библиотека модели динамики полета (FDM), которая моделирует динамика полета авиакосмического аппарата. Библиотека была включена в моделирование полета пакеты FlightGear и OpenEaagles. Его также можно вызвать из небольшой автономной программы для создания инструмента пакетного моделирования. JSBSim находится в разработке и использовании с 1996 года и построен на всех наиболее популярных платформах, используемых сегодня, включая те, на которых запущены Linux, Macintosh, и Майкрософт Виндоус операционные системы. JSBSim написан на C ++ и использует XML файлы конфигурации.

История и обзор

JSBSim (Джон С. Берндт) был задуман в 1996 году как легкое, управляемое данными, нелинейное приложение для пакетного моделирования с шестью степенями свободы (6DoF), предназначенное для моделирования динамики полета и управления самолетом. Начиная с самых ранних версий, JSBSim извлекал выгоду из среды разработки с открытым исходным кодом, в которой он вырос, а также благодаря большому количеству пользователей, которые вносили идеи для его постоянного улучшения. Он был включен в более крупные полнофункциональные приложения и архитектуры для моделирования полета (известные примеры: FlightGear и OpenEaagles ) и использовался как инструмент пакетного моделирования в промышленности и в академических кругах.

В качестве примера простоты использования следующий код показывает, как JSBSim может вызываться небольшой программой, при этом выполнение контролируется сценарием:

#включают <FGFDMExec.h>int главный(int argc, char **argv){  JSBSim::FGFDMExec FDMExec;  bool результат = истинный;  FDMExec.LoadScript(argv[1]);  пока (результат) результат = FDMExec.Пробег();}

Вышеупомянутое приложение работает, когда оно построено с библиотекой JSBSim, и ему нужно только предоставить файл конфигурации самолета, файл начальных условий и файл сценария, который управляет выполнением. Все эти файлы определены с использованием XML (расширяемого языка разметки). JSBSim - это, пожалуй, первая модель динамики полета, в которой XML используется для описания самолета для моделирования. Пример аэродинамического определения показан ниже:

<функция имя ="аэро / коэффициент / CDDf">  <product>    <property>аэро / qbar-зона</property>    <table>      <independentVar>fcs / flap-pos-deg</independentVar>      <tableData>          0.0  0.0         10.0  0.007         20.0  0.012         30.0  0.018      </tableData>    </table>  </product></function>

Функции ввода вывода

При запуске JSBSim в автономном режиме с использованием базовой программы драйвера необходимо только указать имя сценария. Управляющие входы могут быть предоставлены JSBSim из скрипта.

Если файл конфигурации самолета содержит спецификацию входного порта, пользователь также может подключиться к JSBSim через telnet. Из интерфейса telnet можно как считывать, так и устанавливать значения многих параметров, внутренних для JSBSim. Сама симуляция также может быть приостановлена ​​и возобновлена. Функция telnet, конечно же, наиболее ценна для работы JSBSim в реальном времени. Образец автономного приложения, включенный в дистрибутив JSBSim, поддерживает работу в мягком реальном времени.

JSBSim может быть направлен на вывод логически сгруппированных наборов данных на консоль (экран), в файл или в сокет. Вывод может одновременно быть направлен через любое количество каналов, где каждый канал может содержать любой набор данных или один конкретный параметр, может быть направлен на любой файл или сокет (или даже на консоль) и может выводиться с любой скоростью.

Утилита, входящая в состав JSBSim, принимает весь файл данных, выводимый JSBSim, и создает полный набор графиков в формате PDF, используя инструмент построения графиков с открытым исходным кодом, gnuplot.

Особенности управления полетом

Редактор системы управления полетом JSBSim Commander

JSBSim позволяет создавать систему управления полетом или автопилот из отдельных компонентов. Теперь в комплект входят: фильтры, условный переключатель, лето, датчик и компоненты усиления (переменного и статического). Кроме того, существует функциональный компонент, который может быть определен пользователем.

Пример блок-схемы системы управления полетом показан ниже в редакторе системы управления полетом для отдельного проекта с открытым исходным кодом, JSBSim Commander (в настоящее время находится на ранних стадиях разработки, но функционирует).

Моделирование аэродинамики

JSBSim использует метод наращивания коэффициентов для моделирования аэродинамических характеристик самолета. Для каждой оси может быть определено любое количество сил и моментов (или их вообще нет). Каждая спецификация силы / момента включает комментарий к определению и спецификацию функции, которая вычисляет силу или момент. Определение функции может быть простым значением или сложной функцией, которая включает тригонометрические и логарифмические функции, а также поиск в одно-, двух- или трехмерной таблице.

Моделирование движения

JSBSim включает стандартные модели поршень / пропеллер, ракета / сопло, турбину и турбовинтовой двигатель. Эти модели не являются детализированными инженерными моделями, но они позволяют легко добавлять двигатели. Любое количество двигателей может быть добавлено к модели самолета в любом месте и ориентации, а также могут быть смешаны различные типы двигателей.

Уравнения движения

JSBSim - это полный, шесть степеней свободы модель динамики полета. Он дает возможность задать начальные условия и выполнить дифферент самолета несколькими способами перед запуском. Можно выбрать специальные интеграторы для распространения каждой из поступательных и вращательных скоростей и положений. В настоящее время 3-го порядка Адамс-Башфорт по умолчанию.

Расширяемость

JSBSim разработан с возможностью расширения. Ключевые объекты (двигатели, компоненты управления полетом) реализованы как базовые классы с простым интерфейсом. Конкретные новые движки можно смоделировать, создав новые классы, производные от базовых классов. Таким же образом могут быть созданы новые компоненты управления полетом.

Известные применения

JSBSim - это модель полета по умолчанию, используемая с FlightGear симулятор с открытым исходным кодом. Наряду с FlightGear, JSBSim используется для управления имитатором подвижной базы в Неаполитанском университете в Италии. JSBSim включен в качестве управляющего приложения для OpenEaagles среда моделирования. JSBSim использовался для моделирования полета ракет (от зондирующих ракет до более крупных ракет-носителей). Он использовался для моделирования полета БПЛА, в том числе аппарата ARES, предназначенного для полетов в марсианской атмосфере. Он использовался как часть исследования управления воздушным движением. JSBSim использовался вместе с MATLAB и Simulink, был скомпилирован как DLL и перенесен на C #. Порт C # устарел и больше не является общедоступным.

Планы на будущее

Разработка JSBSim продолжается. Также появляются дополнительные инструменты, которые работают с JSBSim. Свободно доступный инструмент под названием DATCOM + (производный от Digital Datcom ) выводит аэродинамическую спецификацию непосредственно в формате JSBSim-ML (формат файла самолета XML). JSBSim Commander разрабатывается как редактор для создания и изменения моделей JSBSim.

внешняя ссылка