В статье описана разработка системы моделирования двигателя внутреннего сгорания.
Ключевые слова: двигатель внутреннего сгорания, разработка системы моделирования.
Для разработки, наладки и обслуживания двигателей внутреннего сгорания (ДВС) автомобилей необходимы специалисты, подготовка которых занимает длительное время. Одним из наиболее эффективных методов обучения является обучение, предполагающее работу с реальным оборудованием, однако использование реального двигателя внутреннего сгорания (ДВС) требует специально оборудованной лаборатории, что связано с высокой теплоотдачей работы ДВС, ядовитыми выхлопными газами, а также вибрациями и шумом [1]. Кроме того, весогабаритные характеристики реальных ДВС не всегда позволяют беспрепятственно транспортировать и устанавливать их. Существующие в области автомобилестроения специальные системы, моделирующие работу ДВС, чаще всего принадлежат заводам — производителям ДВС, и они чрезвычайно дороги. Для начальной подготовки, в том числе школах, необходимо наглядно показывать работу ДВС в рабочем режиме, в то время как сейчас на уроках физики изучают лишь основы перехода топлива в работу в ДВС.
Разработанная система предназначена для наглядной демонстрации, как меняются мощность, крутящий момент и обороты их пикового момента. В дальнейшем данная программа может быть использована не только для того, чтобы обучить будущих автомехаников особенностям строения ДВС и познакомить с процессами, происходящих в ДВС, тех, кто изучает автомобилестроение, но и для подбора оптимальных параметров при разработке ДВС под определенные задачи.
В программе отображается блок ДВС. Количество цилиндров, высота цилиндра и их диаметр зависят от заданных параметров, которые могут быть изменены во время выполнения программы.
Для расчета крутящего момента [3, 4] была использована формула 1.1:
(1.1)
где P — эффективное давление, D — диаметр цилиндра, i — количество цилиндров, t — количество тактов и M — крутящий момент.
Для получения эффективного давления, необходимого для получения крутящего момента, используется уравнение Клапейрона — Менделеева (1.2):
(1.2)
где P — давление, V — объем, m — масса топлива, M — молярная масса топлива, R — универсальная газовая постоянная, T — температура сгорания).
Программа разработана на языке программирования C++. Для рендера сгенерированной трехмерной модели двигателя внутреннего сгорания используется графический двигатель собственной разработки с применением библиотеки OpenGL, для рендера интерфейса используется ImGUI.
Рис. 1. Скриншот программы
В окне Engine Parameters заданы следующие параметры:
— cylinders count — количество цилиндров;
— bore — диаметр цилиндра;
— stroke — длина цилиндра;
— compression — степень сжатия;
— fuelcount — масса сгораемого топлива;
— fuel M молярная масса топлива;
— burn Temperature — температура сгораемого топлива;
— 2 tacts — выбор количества тактов, если отметить — двухтактный, если нет — четырехтактный;
— interface Colour — цвет интерфейса;
— engine Colour — цвет трехмерной модели двигателя.
В этом же окне программа выводит значения: CVolume(Cylinder Volume — объем цилиндра, AVolume(Average Volume — объем двигателя), Pressure — эффективное давление, MaxTorque и MaxPower — пиковые значения крутящего момента и мощности. В окне Engine Plot — отображается график зависимости крутящего момента и мощности от количества оборотов двигателя (красная линия–мощность, синяя линия — крутящий момент). Нажав на кнопку P, можно сделать скриншот программы, который сохранится в корневой папке программы в формате.bmp.
На рисунке 2 показана часть кода программы — функция, отвечающая за генерацию и рендер [6] цилиндра в окне программы.
Рис. 2. Фрагмент программы для генерации 3D моделей цилиндров
С помощью формул тригонометрии (Рис. 2), можно построить круг (входящий параметр sizezoom — диаметр круга), задав два круга с помощью массивов структур vertexn (являющимися координатами позиции вершины в трехмерном пространстве). Также можно построить между ними прямоугольники (функция renderPolygon, принимающая на вход 4 трехмерных координаты), состоящие из двух треугольников, тем самым на экране будет выведен трехмерный цилиндр (параметр length — его высота). Также в функции renderCylinder мы можем указать, нужно ли создавать верхнюю или нижнюю грань цилиндра (переменные типа bool top и down). Входящий параметр c функции renderCylinder отвечает за центральную точку в трехмерном пространстве, где будет происходить генерация цилиндра.
На данный момент расчет происходит в упрощенном режиме (не учитываются углы впуска/выпуска распределительных валов, угол опережения зажигания и т. п.), но в дальнейшем эти параметры будут учитываться при расчете. Трехмерная модель двигателя будет иметь большее количество полигонов, чтобы быть больше похожей на блок реального двигателя внутреннего сгорания.
Литература:
1. Палагута К. А., Тройков С. М. Полунатурное моделирование электронной системы управления двигателем внутреннего сгорания (ЭСУ ДВС). Надежность и качество: труды международного симпозиума, 2010.
2. Johnson Bruce. Professional Visual Studio 2017. John Wiley & Sons, Inc., 2018.
3. Луканин. В. Н. Том 1. Двигатели внутреннего сгорания. Теория рабочих процессов, 2005.
4. Луканин. В. Н. Том 3. Компьютерный практикум. Моделирование процессов в ДВС, 2005.
5. Боресков. А. В. Программирование компьютерной графики, 2019.