JSBSim — програмна модель динаміки польоту з відкритим кодом, що реалізує бібліотеку, яка моделює динаміку польоту аерокосмічного апарата. Бібліотека використовується як складова таких авіасимуляторів як FlightGear і OpenEaagles. JSBSim розроблюється й використовується з 1996 року, і може збиратися під всі популярні платформи, включаючи Linux, Macintosh, і Microsoft Windows operating systems. JSBSim написана на C++ і використовує конфігураційні файли у форматі XML.
Історія і огляд
JSBSim був задуманий у 1996 як легкий, керований даними, не лінійний, із шістьма ступенями свободи (6DoF), програмний симулятор, ціллю якого є моделювання динаміки польоту і управління літального апарата. З самого початку, JSBSim розвивався як продукт з відкритим кодом і виріс завдяки широкому колу користувачів, які зробили в вклад і реалізували свої ідеї для його вдосконалення. Він був вбудований у більші, повно функціональні, авіасимулятори і архітектури (FlightGear і OpenEaagles), і використовується в моделюванні для промисловості і в наукових цілях.
Симулятор має дуже просте використання. Наступний код показує як JSBSim можна виконати за допомогою невеликої програми, і керувати ним за допомогою скрипту:
#include <FGFDMExec.h>
int main(int argc, char **argv) { JSBSim::FGFDMExec FDMExec; bool result = true; FDMExec.LoadScript(argv); while (result) result = FDMExec.Run(); }
Програма показана вище працює з бібліотекою JSBSim, і потребує лише файлу конфігурації літального апарата, файл що задає початкові умови і скрипт, який контролює виконання. Всі ці файли задаються в форматі XML (eXtensible Markup Language). Приклад такого файлу, який задає аеродинаміку definition is shown below:
<function name="aero/coefficient/CDDf"> <product> <property>aero/qbar-area</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 логікою скрипту.
Якщо файл конфігурації літального засобу задає налаштування вхідного порту, користувач також може посилати повідомлення telnet до JSBSim. ЗА допомогою інтерфейсу telnet, можна задавати і зчитувати значення багатьох параметрів, що використовуються в JSBSim. Процедуру симуляції можна поставити на паузу і згодом відновлювати. Можливість спілкування за допомогою telnet, звичайно, буде більш популярна при використанні JSBSim в реальному часі. Програма, яка поставляється з дистрибутивом JSBSim дозволяє здійснювати запуск в режимі реального часу.
JSBSim може перенаправляти вихідні дані, на консоль (екран), у файл, або передавати по мережі. Вихід може одночасно спрямовуватись у будь-яку кількість каналів, де кожен канал може мати будь-який набір даний або окремий конкретний параметр, і може направлятися у будь-який файл або сокет (або навіть консоль), і може видаватися з будь-якою частотою.
Утиліта, яка поставляється з JSBSim перетворює увесь файл вихідних даний JSBSim і створює повний набір графіків у PDF форматі, використовуючи інструмент для побудови графіків, gnuplot.
Посилання JSBSim Основний вебсайт проекту на SourceForge JSBSim Commander Редактор файлів JSBSim (версія beta) Описання проекту в форматі wiki