Добрый день
Хотелось бы попробовать написать динамику турбовинтового двигателя Ан-24.
Собственно сайт JSBSim http://jsbsim.sourceforge.net
1. Кто имел дело с данным движком, объясните как вообще с ним работать? На гитхабе я вижу набор файлов, которые надо собрать видимо в саму программу. Может у кого есть готовая оболочка? Мне удалось только скачать программу JSBSim commander, но она видимо больше как редактор. Как создавать в ней что-либо я не понял.
2. Реально ли «связать» динамику винто-моторной группы jsbsim (в части передачи тяги) с симулятором через simconnect или другим способом?
Edited by ArtAir
Судя по тому, что для Dash-8 — Маджестики именно на этом движке динамику делали, значит можно связать. Но, у них движок не возвращает в сим через симконнект переменные описывающие динамику. Вам бы пообщаться с кем то из их команды. Попробуйте обратиться в ЛС в Дмитрию Самборскому (Samdim), у него должны быть контакты.
А описание самого движка ещё здесь есть: https://jsbsim-team.github.io/jsbsim-reference-manual/mypages/user-manual-frames-of-reference/
Уже написал. Пока ответа нет.
Добрый день.
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-фактора, когда вектор силы, создаваемой воздушным винтом проходит не через ось вращения воздушного винта и прочие эффекты. Важна также и обратная связь: так угол атаки самолета, скорость полета, высота, плотность и давление воздуха оказывают значительное влияние на модель двигателя.
Огромное спасибо, что обратили внимание. Я не программист, я имею пилотское образование и теория работы винта мне знакома, правда только в части АШ-62ИР и его винта. Оперируя открытыми данными и простыми расчётами я уже пришёл к выводу, что параметры работы двигателя АИ-24 далеко не линейные. Например угол атаки лопасти на земле (при V=0) равный в данной ситуации углу установки меняется с 8 град до 30град (загрузка) при увеличении режима с 12 до 100 по УПРТ. А вот при полёте на истинной скорости 450 км/ч угол атаки уже всего около 5 град на взлётном режиме (100 УПРТ). А если поставить ПМГ на такой скорости, то соответственно угол атаки должен уменьшиться и отрицательной тяги не создавать. Значит будет угол атаки лопасти градуса 2 на ПМГ. Соответственно получается на земле диапазон углов атаки 8-30, а на скорости 450 уже всего 4 градуса. И так во всём.
Для начала конечно необходимо собрать репозиторий в программу и уже смотреть что к чему. И всё это конечно хотелось бы привязать к msfs.
Edited by ArtAir
А не могли бы помочь в сборке репозитория? Я скачал CVS для win10. И пока стою на этом окне:
данные беру отсюда: http://jsbsim.sourceforge.net/download.html
Я использую ветку на GitHub https://github.com/JSBSim-Team/jsbsim
В Visual Studio 2019 Community выбрать File -> Clone Repository. Указал этот адрес и директорию, нажать кнопку Build -> Build Solution.
А на этой странице есть уже собранные исполняемые файлы https://github.com/JSBSim-Team/jsbsim/releases
Вот спасибо. Буду пробовать. А какой исполнительный желательно под Win10?
Cкачал и установил VS 2019. Кнопки «build» нет, только «clone»
Ух… тяжело вам. Да и я вас похоже запутал. Если у вас нет опыта разработки программ в Visual Studio на С++, то советую воспользоваться уже скомпилированными исполняемыми файлами. Не хочу вас обидеть, но будет не продуктивно разъяснять вам каждый шаг по сборке из исходников.
Вам нужен файл JSBSim.exe и Aeromatic.exe. Их нужно поместить в директорию с исходными файлами и оттуда запускать из командной строки с передачей параметров. В краткой инструкции есть такой пример:
Он запустит задание на моделирование 172 цессны из директории scripts.
Да уж… Я-то думал это программа с понятным интерфейсом…