Jump to content
Sign in to follow this  
ArtAir

JSBsim. Как создавать динамику

Recommended Posts

Добрый день

Хотелось бы попробовать написать динамику турбовинтового двигателя Ан-24. 

Собственно сайт JSBSim http://jsbsim.sourceforge.net

1. Кто имел дело с данным движком, объясните как вообще с ним работать? На гитхабе я вижу набор файлов, которые надо собрать видимо в саму программу. Может у кого есть готовая оболочка? Мне удалось только скачать программу JSBSim commander, но она видимо больше как редактор. Как создавать в ней что-либо я не понял.

2. Реально ли "связать" динамику винто-моторной группы jsbsim (в части передачи тяги) с симулятором через simconnect или другим способом? 

Edited by ArtAir

Share this post


Link to post
Share on other sites
29 минут назад, ArtAir пишет:

Реально ли "связать" динамику винто-моторной группы jsbsim (в части передачи тяги) с симулятором через simconnect или другим способом? 

Судя по тому, что для Dash-8 - Маджестики именно на этом движке динамику делали, значит можно связать. Но, у них движок не возвращает в сим через симконнект переменные описывающие динамику. Вам бы пообщаться с кем то из их команды. Попробуйте обратиться в ЛС в Дмитрию Самборскому (Samdim), у него должны быть контакты.

А описание самого движка ещё здесь есть: https://jsbsim-team.github.io/jsbsim-reference-manual/mypages/user-manual-frames-of-reference/

Share this post


Link to post
Share on other sites
54 минуты назад, Nickbe пишет:

Попробуйте обратиться в ЛС в Дмитрию Самборскому (Samdim), у него должны быть контакты.

Уже написал. Пока ответа нет.

Share this post


Link to post
Share on other sites

Добрый день.

JSBSim является системой для математического моделирования динамики движения летательного аппарата и функционирования его систем, в том числе и двигателя. Сам JSBSim является самодостаточным приложением и содержит реализации основных подсистем в исходном коде на языке С++. Параметры и состав систем летательного аппрата задается в виде xml-файлов. Базовый режим работы JSBSim - это задание исходных данных для моделирования также в виде xml-файла (начальные координаты, скорости и прочие параметры вектора состояния, а также задание в какой момент выпускаются закрылки, шасси, включается режим автопилота). Действия пользователя в этом режиме не требуется, программа JSBSim.exe автоматически выполняет задание на моделирование и сохраняется заданные параметры в выходной файл, который потом можно анализировать. Другой режим работы, который предусмотрен из коробки - это использовние симулятора FlightGear в части системы визуализации (отображения) и получения команд управления от пользователя: джойстик, клавиатура, виртуальная кабина. Этот режим позволяет вам осуществлять ручное пилотирование летательным аппаратом, который вычисляется в JSBSim.

Если вы смогли собрать из исходных файлов репозитория исполняемое приложение, то у вас будут два исполняемых файла JSBSim.exe и Aeromatic.exe (в случае ОС Windows). Первый файл позволяет исполнять модель летательного аппрата (см. примеры в директории aircraft) с помощью скриптов (см. директорию scripts) в обоих режимах работы. Второй файл позволяет в режиме диалога с пользователем создать файл для нового летательного аппарата и его систем на основе некоторой базы знаний и основных геометрических характеристик. К примеру вас спросят о количестве двигателей на самолете, номинальной мощности, какой диаметр воздушного винта, количество лопастей, момент инерции винта, передаточное число редуктора, минимальный и максимальный угол установки лопасти воздушного винта, минимальные и максимальные обороты, наличие реверса и т.п.

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

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

Параметры двигателя, используемые для расчета, задаются в xml-файле. Есть примеры параметров для турбовинтовых двигателей PW125B и PT6A, а также воздушных винтов для них (см. в директории engine). Эти параметры взяты из открытой литературы (научных и рекламных статей). 

Можно ли использовать модель FGTurboProp для моделирования АИ-24? Ответ на этот вопрос зависит от ваших навыков, исходных данных и желаемой точности и адекватности модели. Как указано выше в FGTurboProp моделируется турбовинтовой двигатель со свободной турбиной. Открытость исходного кода JSBSim позволяет вам при наличии знаний и навыков реализовать свою математическую модель любого двигателя по вашим формулам и исходным данным, если вы конечно понимаете о чем идет речь.

Подключение модели двигателя к симулятору зависит от симулятора и возможностей программного интерфейса для расширения. По своему опыту могу сказать, что отключить модель двигателя в FSX и заменить через SimConnect не представляется возможным штатными средствами. Prepar3D с версии 4.3 (кажется) и все версии 5 позволяют полностью отключить математическую модель симулятора и заменить своей реализацией на языке С++ в виде dll-библиотеки. В SDK имеется пример замены модели двигателя для самолета, в который с небольшими изменениями можно вставить указанные модули из JSBSim или реализовать какие угодно свои модели. Если у вас имеется достаточный опыт программирования на С++, то разобраться не составит особого труда. На текущий момент Prepar3D SDK предоставляет самые гибкие возможности реализации всевозможных систем. В текущей версии SDK MSFS нет открытого описания реализации турбовинтового двигателя, но можно менять параметры через редактор самолета, хотя судя по поведению мало отличается от реализации турбовинтового двигателя в FSX и FS2004, описание которого также отсутствует.

Если вам хочется попробовать написать динамику турбовинтового двигателя, то я посоветовал бы вам начать с листка бумаги: структурная схема, дифференциальные уравнения, таблицы параметров, режимы работы, регуляторы системы автоматического управления. Я считаю это правильным подходом. Чем детальнее вы будете делать модель, тем больше данных вам будет требоваться, а достать их очень большая проблема, поскольку большая часть данных получается экспериментально разработчиком двигателя, является его интеллектуальной собственностью, обычно нигде не публикуется и стоит огромных денег. Если же вы хотите пойти простым путем и поменять одну две цифры в готовых таблицах, то с высокой вероятностью не сможете получить желаемый результат поскольку уравнения системы сильно нелинейные и нет явной взаимосвязи выходных величин с параметрами. Считаю важным отметить, что ваше утверждение: "в части передачи тяги" является уж очень упрощенным. Для корректного моделирования самолета с турбовинтовым двигателем важен вектор силы и момент силы, создаваемые двигателем в точке уставновки на самолете, имитация P-фактора, когда вектор силы, создаваемой воздушным винтом проходит не через ось вращения воздушного винта и прочие эффекты. Важна также и  обратная связь: так угол атаки самолета, скорость полета, высота, плотность и давление воздуха оказывают значительное влияние на модель двигателя.

  • Thanks 1
  • Upvote 1

Share this post


Link to post
Share on other sites

Огромное спасибо, что обратили внимание. Я не программист, я имею пилотское образование и теория работы винта мне знакома, правда только в части АШ-62ИР и его винта.  Оперируя открытыми данными и простыми расчётами я уже пришёл к выводу, что параметры работы двигателя АИ-24 далеко не линейные. Например угол атаки лопасти на земле (при V=0) равный в данной ситуации углу установки меняется с 8 град до 30град (загрузка) при увеличении режима с 12 до 100 по УПРТ. А вот при полёте на истинной скорости 450 км/ч угол атаки уже всего около 5 град на взлётном режиме (100 УПРТ). А если поставить ПМГ на такой скорости, то соответственно угол атаки должен уменьшиться и отрицательной тяги не создавать. Значит будет угол атаки лопасти градуса 2 на ПМГ. Соответственно получается на земле диапазон углов атаки 8-30, а на скорости 450 уже всего 4 градуса. И так во всём.

Для начала конечно необходимо собрать репозиторий в программу и уже смотреть что к чему. И всё это конечно хотелось бы привязать к msfs.

Edited by ArtAir

Share this post


Link to post
Share on other sites
1 час назад, Prepar3DGuy пишет:

 

А не могли бы помочь в сборке репозитория? Я скачал CVS для win10. И пока стою на этом окне:

1.jpg.b1178c0fa16c967203c58414fc83274b.jpg

данные беру отсюда: http://jsbsim.sourceforge.net/download.html

Share this post


Link to post
Share on other sites
56 минут назад, ArtAir пишет:

А не могли бы помочь в сборке репозитория? Я скачал CVS для win10. И пока стою на этом окне:

Я использую ветку на GitHub https://github.com/JSBSim-Team/jsbsim
В Visual Studio 2019 Community выбрать File -> Clone Repository. Указал этот адрес и директорию, нажать кнопку Build -> Build Solution. 
А на этой странице есть уже собранные исполняемые файлы https://github.com/JSBSim-Team/jsbsim/releases

Share this post


Link to post
Share on other sites

Вот спасибо. Буду пробовать. А какой исполнительный желательно под Win10?

Share this post


Link to post
Share on other sites
13 часов назад, Prepar3DGuy пишет:

Я использую ветку на GitHub https://github.com/JSBSim-Team/jsbsim
В Visual Studio 2019 Community выбрать File -> Clone Repository. Указал этот адрес и директорию, нажать кнопку Build -> Build Solution. 
А на этой странице есть уже собранные исполняемые файлы https://github.com/JSBSim-Team/jsbsim/releases

Cкачал и установил VS 2019. Кнопки "build" нет, только "clone"

1278841292_.png.218d8a20893ea7f1018af53e2b2068b8.png

Share this post


Link to post
Share on other sites

Ух... тяжело вам. Да и я вас похоже запутал. Если у вас нет опыта разработки программ в Visual Studio на С++, то советую воспользоваться уже скомпилированными исполняемыми файлами. Не хочу вас обидеть, но будет не продуктивно разъяснять вам каждый шаг по сборке из исходников. 

16 часов назад, ArtAir пишет:

А какой исполнительный желательно под Win10?

Вам нужен файл JSBSim.exe и Aeromatic.exe. Их нужно поместить в директорию с исходными файлами и оттуда запускать из командной строки с передачей параметров. В краткой инструкции есть такой пример:

JSBSim.exe --script=scripts/c1721.xml

Он запустит задание на моделирование 172 цессны из директории scripts. 

Share this post


Link to post
Share on other sites

Да уж... Я-то думал это программа с понятным интерфейсом...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...