Проблематика разработки системы моделирования двигателя внутреннего сгорания на языке программирования C++ | Статья в журнале «Молодой ученый»

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

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №47 (442) ноябрь 2022 г.

Дата публикации: 27.11.2022

Статья просмотрена: 82 раза

Библиографическое описание:

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



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

Ключевые слова: двигатель внутреннего сгорания, разработка системы моделирования, программирование, 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.
Основные термины (генерируются автоматически): GLSL, внутреннее сгорание, BGR, RGB, неправильная цветовая гамма, проблема, программа, цветовая модель.


Похожие статьи

Проблематика программирования анимации 3D-объектов с графической библиотекой OpenGL

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

Проблематика портирования программного пакета моделирования двигателя внутреннего сгорания на операционную систему Astra Linux

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

Применение программного комплекса ANSYS в компьютерном моделировании

В статье представлены известные и современные программные комплексы для компьютерного моделирования конструкций, изделий и их составных частей. Программы основаны на методе конечных элементов, как метод численного моделирования и анализа. Показаны во...

Разработка системы моделирования двигателя внутреннего сгорания в рабочем режиме

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

Разработка газотурбинного двигателя в плоскости системной инженерии

В статье представлены некоторые возможности развития существующей системы разработки газотурбинного двигателя (ГТД) с помощью системно-инженерного подхода. Выявлены наиболее важные параметры, влияющие на сроки и стоимость разработки авиадвигателя.

Анализ СУБД и перспективных языков программирования для реализации системы определения параметров сборного режущего инструмента на основании графовых моделей

В статье рассматриваются средства реализации программного обеспечения для определения параметров режущего инструмента. Приводятся критерии анализа соответствующих СУБД. Обосновывается выбор СУБД и языка программирования.

Методы математического программирования при разработке автоматизированных систем управления деятельностью авиакомпаний и аэропортов

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

Структуризация автоматизированных систем управления технологическим производством

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

Создание имитационной модели трёхосной подвески автотранспортного средства в среде Anylogic

В статье приведена упрощенная математическая модель. Представлен набор программных модулей. Создана имитационная модель в среде Anylogic. Приведены результаты работы.

Многофакторный анализ оценки работоспособности электронных систем управления двигателем (ЭСУД) автомобиля (испытания под нагрузкой)

В статье представлены многофакторный анализ оценки работоспособности ЭСУД автомобиля (испытания под нагрузкой).

Похожие статьи

Проблематика программирования анимации 3D-объектов с графической библиотекой OpenGL

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

Проблематика портирования программного пакета моделирования двигателя внутреннего сгорания на операционную систему Astra Linux

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

Применение программного комплекса ANSYS в компьютерном моделировании

В статье представлены известные и современные программные комплексы для компьютерного моделирования конструкций, изделий и их составных частей. Программы основаны на методе конечных элементов, как метод численного моделирования и анализа. Показаны во...

Разработка системы моделирования двигателя внутреннего сгорания в рабочем режиме

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

Разработка газотурбинного двигателя в плоскости системной инженерии

В статье представлены некоторые возможности развития существующей системы разработки газотурбинного двигателя (ГТД) с помощью системно-инженерного подхода. Выявлены наиболее важные параметры, влияющие на сроки и стоимость разработки авиадвигателя.

Анализ СУБД и перспективных языков программирования для реализации системы определения параметров сборного режущего инструмента на основании графовых моделей

В статье рассматриваются средства реализации программного обеспечения для определения параметров режущего инструмента. Приводятся критерии анализа соответствующих СУБД. Обосновывается выбор СУБД и языка программирования.

Методы математического программирования при разработке автоматизированных систем управления деятельностью авиакомпаний и аэропортов

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

Структуризация автоматизированных систем управления технологическим производством

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

Создание имитационной модели трёхосной подвески автотранспортного средства в среде Anylogic

В статье приведена упрощенная математическая модель. Представлен набор программных модулей. Создана имитационная модель в среде Anylogic. Приведены результаты работы.

Многофакторный анализ оценки работоспособности электронных систем управления двигателем (ЭСУД) автомобиля (испытания под нагрузкой)

В статье представлены многофакторный анализ оценки работоспособности ЭСУД автомобиля (испытания под нагрузкой).

Задать вопрос