Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Проблематика разработки системы моделирования двигателя внутреннего сгорания на языке программирования C++

Информационные технологии
27.11.2022
101
Поделиться
Аннотация
В статье описана проблематика разработки системы моделирования двигателя внутреннего сгорания.
Библиографическое описание
Заболотский, И. А. Проблематика разработки системы моделирования двигателя внутреннего сгорания на языке программирования C++ / И. А. Заболотский. — Текст : непосредственный // Молодой ученый. — 2022. — № 47 (442). — С. 11-13. — URL: https://moluch.ru/archive/442/96862.


В статье описана проблематика разработки системы моделирования двигателя внутреннего сгорания.

Ключевые слова: двигатель внутреннего сгорания, разработка системы моделирования, программирование, C++.

При разработке крупных программ могут возникать различные трудности, связанные с тем, что элементы могут быть разработаны по отдельности, и в каждом из них нужно разобраться по отдельности, но не всегда удается предусмотреть процесс работы программы заранее, в следствии чего при работе могут возникать ошибки, и не только те, которые не позволяют скомпилировать программу, но и недоработки программы, влияющие на достоверность получаемых значений. Подобные проблемы встречались и при разработке системы моделирования двигателя внутреннего сгорания(ДВС) [2] и они были решены.

Разрабатываемая система моделирования ДВС предназначена для наглядной демонстрации, как меняются мощность, крутящий момент [3] [4] и обороты их пикового момента, для того чтобы продемонстрировать обучающимся процессы [6], происходящие в двигателе внутреннего сгорания. В дальнейшем те из них, кто заинтересуется автомобилестроением, будут более подготовлены к предстоящей работе.

Для разработки программы был выбран язык C++, так как он имеет высокую производительность среди высокоуровневых языков программирования, также C++ довольно распространенный язык, ведь он используется во многих популярных игровых двигателях, а также для этого языка существует множество библиотек и множество уроков [7].

Для вывода трехмерной графики был выбран OpenGL, так как эта библиотека кроссплатформенная и использует высокоуровневые методы.

Скриншот с неправильной цветовой гаммой скриншота

Рис. 1 Скриншот с неправильной цветовой гаммой скриншота

Была добавлена opensource библиотека Freeimage, чтобы добавить возможность сохранять скриншоты программы, при её использовании возникла проблема — синий цвет, менялся местами с красным, в следствии чего окно вывода имело неправильную цветовую гамму (Рис.1). Проблема заключалась в том, что Freeimage использует не цветовую модель RGB(Red, Green, Blue), а BGR(Blue, Green, Red) (Рис.2), поменяв синий и красный цвет местами, скриншоты стали сохраняться с правильными цветами — какой программу видит пользователь во время её работы (Рис.3).

функция, отвечающая за создание скриншота программы. Выделена цветовая модель

Рис. 2 функция, отвечающая за создание скриншота программы. Выделена цветовая модель

Скриншот с правильной цветовой гаммой скриншота

Рис. 3 Скриншот с правильной цветовой гаммой скриншота

Во время разработки программы появлялась ошибка, что imgui выводил значение 0 в количестве оборотов, при том что оно было больше нуля, баг был решен тем, что imgui не умеет сам конвертировать переменные из одного типа в другое (из float в int), программа скомпилируется, но значение вывода будет неверным. Проблема была решена тем, что переменная float была изменена на int, так как можно обойтись без дробной части и imgui стал выводить правильное значение оборотов.

Также была задача добавить возможность менять цвет модели двигателя, для этого необходимо было разобраться в языке шейдеров GLSL. Шейдер — программа, описывающая каким образом будет отображаться трехмерная модель на экране. И стояла непростая задача, передать переменную цвета из C++ кода в GLSL код. Перепробовав множество OpenGL методов, были найдены те, которые позволили передать значения переменных из основной программы в шейдер (Рис.4).

Методы OpenGL, передающие переменные из C++ кода в шейдер

Рис. 4. Методы OpenGL, передающие переменные из C++ кода в шейдер

При разработке программ на C++ нужно знать не только сам язык, но и уметь разбираться в библиотеках, которые используешь, благодаря ним можно в одиночку разрабатывать программы, но и могут возникать проблемы, при которых программа откажется запускаться или будут возникать проблема с графикой и расчетами.

Литература:

1. Палагута К. А., Тройков С. М. Полунатурное моделирование электронной системы управления двигателем внутреннего сгорания (ЭСУ ДВС). Надежность и качество: труды международного симпозиума, 2010.

  1. Заболотский, И. А. Разработка системы моделирования двигателя внутреннего сгорания в рабочем режиме / Молодой ученый. — 2022. — № 46 (441).

3. Луканин. В. Н. Том 1. Двигатели внутреннего сгорания. Теория рабочих процессов, 2005.

4. Луканин. В. Н. Том 3. Компьютерный практикум. Моделирование процессов в ДВС, 2005.

5. Боресков. А. В. Программирование компьютерной графики, 2019.

6. Гришин Ю. А., Хазов Н. В. Моделирование газодинамических течений во впускных системах двигателей внутреннего сгорания, 2008.

  1. Johnson Bruce. Professional Visual Studio 2017. John Wiley & Sons, Inc., 2018.
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №47 (442) ноябрь 2022 г.
Скачать часть журнала с этой статьей(стр. 11-13):
Часть 1 (стр. 1-71)
Расположение в файле:
стр. 1стр. 11-13стр. 71
Похожие статьи
Разработка системы моделирования двигателя внутреннего сгорания в рабочем режиме
Проблематика программирования анимации 3D-объектов с графической библиотекой OpenGL
Проблематика портирования программного пакета моделирования двигателя внутреннего сгорания на операционную систему Astra Linux
Использование средств библиотеки SFML для написания игровых проектов
Сравнительный анализ мультимедийных библиотек для написания игрового проекта на языках программирования С/С++
Разработка интерактивной презентации 3D модели для предприятия
Подготовка и осуществление компьютерной визуализации в процессе создания учебной модели
Применение аддитивных технологий при разработке учебно-действующего стенда «Электрифицированный четырехцилиндровый бензиновый двигатель»
Игровой движок как решение проблем дистанционного образования
К вопросу о проектировании архитектуры программного модуля для автоматизированного расчета лакокрасочного покрытия транспортного средства

Молодой учёный