Научная статья на тему 'РАЗРАБОТКА БИБЛИОТЕКИ ПОДПРОГРАММ ДЛЯ АВТОМАТИЗИРОВАННОГО АЭРОДИНАМИЧЕСКОГО ПРОЕКТИРОВАНИЯ В РАМКАХ УЧЕБНОГО ПРОЦЕССА'

РАЗРАБОТКА БИБЛИОТЕКИ ПОДПРОГРАММ ДЛЯ АВТОМАТИЗИРОВАННОГО АЭРОДИНАМИЧЕСКОГО ПРОЕКТИРОВАНИЯ В РАМКАХ УЧЕБНОГО ПРОЦЕССА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
156
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЭРОДИНАМИЧЕСКОЕ ПРОЕКТИРОВАНИЕ / АЭРОДИНАМИЧЕСКИЕ ХАРАКТЕРИСТИКИ / БИБЛИОТЕКА ПОДПРОГРАММ / АВТОМАТИЗАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тищенко Денис Юрьевич, Лаптева Людмила Аркадьевна, Гарпинич Денис Николаевич, Лазарев Аркадий Анатольевич, Широкопетлев Никита Константинович

В статье представлено описание разработанной библиотеки подпрограмм, предназначенной для автоматизации расчёта аэродинамических характеристик (АДХ) летательного аппарата (ЛА), выполняемого по эмпирико-аналитической методике. Библиотека предназначена для применения в рамках учебного процесса для обучения расчёту аэродинамических характеристик и аэродинамическому проектированию. Использование в расчёте разработанных библиотечных подпрограмм позволяет исключить ручное снятие значений с графиков, представленных в специальной литературе, ручное нахождение некоторых сложных геометрических величин, выполняемое графическими построениями, и других операций. Автоматизация аэродинамического расчёта позволяет осуществлять расчёт АДХ во всём диапазоне входных параметров, а также проводить аэродинамическое проектирование путём оптимизации геометрических параметров ЛА и выбора аэродинамического облика по заданным критериям качества.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тищенко Денис Юрьевич, Лаптева Людмила Аркадьевна, Гарпинич Денис Николаевич, Лазарев Аркадий Анатольевич, Широкопетлев Никита Константинович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF A SUBROUTINE LIBRARY FOR AUTOMATED AERODYNAMIC DESIGN IN THE EDUCATIONAL PROCESS

The article presents a description of the developed library of subroutines designed to automate the calculation of aerodynamic characteristics of an aircraft performed according to an empirical and analytical methodology. The library is intended for use in the educational process for teaching the calculation of aerodynamic characteristics and aerodynamic design. The use of the developed library routines in the calculation makes it possible to exclude manual taking of values from graphs presented in special literature, manual finding of some complex geometric quantities performed by graphical constructions, and other operations. Automation of aerodynamic calculation makes it possible to calculate the aerodynamic characteristics in the entire range of input parameters, as well as to carry out aerodynamic design by optimizing the geometric parameters of the aircraft and selecting the aerodynamic appearance according to the specified quality criteria.

Текст научной работы на тему «РАЗРАБОТКА БИБЛИОТЕКИ ПОДПРОГРАММ ДЛЯ АВТОМАТИЗИРОВАННОГО АЭРОДИНАМИЧЕСКОГО ПРОЕКТИРОВАНИЯ В РАМКАХ УЧЕБНОГО ПРОЦЕССА»

Тархов Андрей Николаевич, инженер-конструктор 2-й категории, tarhovi42009@rambler.ru, Россия, Тула, Особое конструкторское бюро «Октава»,

Сухинин Павел Эдуардович, инженер 2-й категории, patiksons@gmail. com, Россия, Тула, Особое конструкторское бюро «Октава»

ASSESSMENT OF THE STRUCTURAL ELEMENTS OF THE TELEPHONE AND LARYNGOPHONE

HEADSET FOR MES

A.N. Tarkhov, P.E. Sukhinin

The development of the design of a promising telephone-laryngophone headset for the Russian MES based on domestic element base and materials is considered.

Key words: laryngophone, communication headset for the MES, protective mask, ergonomics.

Tarkhov Andrei Nikolaevich, design enegineer of the 2 category, tarhovi42009@rambler.ru, Russia, Tula, Special Design Bureau «Oktava»,

Sukhinin Pavel Eduardovich, enegineer of the 2 category, patiksons@gmail. com Russia, Tula, Special Design Bureau «Oktava»

УДК 533.6

DOI: 10.24412/2071-6168-2023-1-205-214

РАЗРАБОТКА БИБЛИОТЕКИ ПОДПРОГРАММ ДЛЯ АВТОМАТИЗИРОВАННОГО АЭРОДИНАМИЧЕСКОГО ПРОЕКТИРОВАНИЯ В РАМКАХ УЧЕБНОГО ПРОЦЕССА

Д.Ю. Тищенко, Л.А. Лаптева, Д.Н. Гарпинич, А.А. Лазарев, Н.К. Широкопетлев, Д.С. Михайлов

В статье представлено описание разработанной библиотеки подпрограмм, предназначенной для автоматизации расчёта аэродинамических характеристик (АДХ) летательного аппарата (ЛА), выполняемого по эмпирико-аналитической методике. Библиотека предназначена для применения в рамках учебного процесса для обучения расчёту аэродинамических характеристик и аэродинамическому проектированию. Использование в расчёте разработанных библиотечных подпрограмм позволяет исключить ручное снятие значений с графиков, представленных в специальной литературе, ручное нахождение некоторых сложных геометрических величин, выполняемое графическими построениями, и других операций. Автоматизация аэродинамического расчёта позволяет осуществлять расчёт АДХ во всём диапазоне входных параметров, а также проводить аэродинамическое проектирование путём оптимизации геометрических параметров ЛА и выбора аэродинамического облика по заданным критериям качества.

Ключевые слова: аэродинамическое проектирование, аэродинамические характеристики, библиотека подпрограмм, автоматизация.

Определение аэродинамических характеристик (АДХ) летательного аппарата (ЛА) является одной из ключевых задач в процессе проектирования ЛА. Под АДХ понимаются зависимости коэффициентов аэродинамических сил и моментов от режима полёта ЛА и углов поворота органов управления. Полнота необходимого набора АДХ определяется задачей, для решения которой они требуются. Такие задачи как баллистическое проектирование ЛА, траекторный анализ, проектирование автопилота (системы стабилизации), оценка эффективности, создание цифрового двойника ЛА и многих других невозможно решить без определения в той или иной мере и с той или иной точностью АДХ проектируемого ЛА. При этом для решения задач начальных этапов проектирования (формирование облика ЛА) необходимы лишь зависимости некоторых основных АД коэффициентов, при этом точность их определения допускается небольшой, однако требуется их расчёт для большого количества вариантов возможных компоновок ЛА.

Существуют три принципиально различных способа определения АДХ ЛА:

1) Экспериментальный — АДХ определяются на основе продувок модели проектируемого ЛА в аэродинамических трубах или на основе лётных испытаний.

2) Эмпирико-аналитический — расчёт АДХ проводится по формулам теоретической аэродинамики с использованием эмпирических данных по типовым элементам ЛА, полученных экспериментально.

3) Численный — АДХ определяются по результатам численного моделирования обтекания ЛА, при этом с использованием численных методов рассчитываются параметры потока на координатной сетке, построенной в некоторой области вокруг модели ЛА.

205

Экспериментальный способ даёт наиболее надёжные результаты, однако требует изготовления моделей и проведения дорогостоящих продувок или пусков.

Эмпирико-аналитический способ наиболее пригоден для начальных этапов проектирования. Его недостатком является невысокая точность результатов в связи с, во-первых, большим количеством принятых допущений, и, во-вторых, невозможностью учёта нетиповых элементов и форм геометрии ЛА.

Численный способ обычно применяется после эмпирико-аналитического для уточнения АДХ выбранной геометрии, поскольку возможно промоделировать обтекание любой (не типовой) геометрии

— 3D модель изделия может учитывать все мелкие детали ЛА. По результатам этих расчётов в геометрию могут быть внесены необходимые корректировки. Принципиально возможно и использование численного способа расчёта АДХ для выбора геометрии (аэродинамического проектирования), однако, в связи с необходимостью расчёта большого количества вариантов, суммарное время расчёта будет очень велико. Поэтому такой подход может применяться только при наличии больших вычислительных мощностей (суперкомпьютеров). При этом отдельной достаточно сложной задачей является организация автоматического перестроения геометрии, расчётной сетки, запуска расчёта и сбора результатов. Этот способ является перспективным и в той или иной мере начинает применяться на предприятиях благодаря увеличению суперкомпьютерных мощностей.

Таким образом, эмпирико-аналитический способ расчёта АДХ является основным для АД проектирования, поэтому именно этому способу в первую очередь обучают студентов специальностей связанных с проектированием ЛА.

Сущность этого способа заключается в разбиении ЛА на отдельные типовые элементы, такие как головная часть фюзеляжа, цилиндрическая, кормовая часть и несущие поверхности — передняя и задняя. Для каждой из элементов определяются АДХ по теоретическим формулам или по результатам продувок или по их комбинации (например, теоретическая формула, скорректированная по результатам продувок). Таким образом определяются АДХ изолированного фюзеляжа и изолированных несущих поверхностей, затем рассчитываются коэффициенты интерференции (учитывающие взаимное влияние фюзеляжа и несущих поверхностей) и определяются суммарные АДХ ЛА. Такой подход к определению АДХ широко известен как «метод суммирования составляющих» [1, 2 с.111]. Основы этой методики расчёта АДХ изложены в многочисленных отчётах Национального консультативного комитета по воздухоплаванию (NACA, США), особенно стоит выделить отчёт NACA 1307 [3], а в отечественной литературе

— в книге А.А. Лебедева и Л.С. Чернобровкина «Динамика полёта беспилотных летательных аппаратов» [4], в «Аэродинамике ракет» Н.Ф. Краснова [5] и многих других.

Эта методика расчёта АДХ сформировалась, когда электронные средства вычисления не были доступны и расчёт выполнялся вручную. Формулы старались максимально упростить (например, заменяя синус угла самим углом и т.п.), а сложные формулы представить в виде графиков, с которых расчётчик мог быстро снимать значения, не проводя сложных вычислений. Эмпирические зависимости так же представлялись в виде многочисленных графиков. Таким образом, расчёт аэродинамических коэффициентов изделия на одном режиме (по числу Маха и другим параметрам) заключается в вычислении длинной последовательности формул, во многих из которых значение какого-либо коэффициента снимается с графиков. Это было наиболее удобно для ручного расчёта, однако оказалось непригодным для автоматического расчёта на ЭВМ. С помощью программы для ЭВМ, составленной из заданной последовательности формул расчёт всех необходимых АДХ мог бы быть выполнен компьютером за доли секунды, если бы не необходимость вручную снимать значения с графиков, приведённых в виде рисунков в литературе.

Отсюда возникает известная проблема в учебном процессе [19], заключающаяся в том, что обучающиеся аэродинамическому расчёту, в связи с высокой трудоёмкостью этого метода, могут рассчитать лишь несколько значений аэродинамических коэффициентов. Этогонедостаточно ни для полноценного моделирования внешней баллистики ЛА, ни для анализа влияния параметров ЛА на АДХ и сравнения различных компоновок ЛА для выполнения аэродинамического проектирования.

Авторам известно о существовании таких программ для расчёта АДХ как американских Digital Datcom и его закрытой версии —MissileDatcom и некоторых других зарубежных программ. Авторы понимают, что на крупных отечественных предприятиях аэрокосмической отрасли существуют свои программные наработки, работающие по закрытым методикам с использованием закрытых данных.Все эти программы принципиально основываются на методе суммирования составляющих, описанном выше.

Подобные готовые программы, даже если они являются открытыми, по мнению авторов, не подходят для обучения студентов аэродинамическому расчёту и аэродинамическому проектированию, поскольку при их использовании отсутствует понимание их внутренней работы, понимание принципов данной методики определения АДХ, физической сути многочисленных аэродинамических коэффициентов и поправок, учитывающих влияние различных факторов, понимание того каким образом проектные параметры влияют на АДХ ЛА. Таким образом, готовые программы хорошо подходят для использования в работе специалистом, но не подходят для обучения.

Обучение аэродинамическому расчёту и проектированию должно заключаться в собственноручном расчёте по всей последовательности формул и графиков, что и реализуется сейчас в процессе обучения. Однако ручной расчёт и ручное снятие значений с графиков не обеспечивают в полной мере обучения аэродинамическому проектированию, поскольку, как было отмечено выше, АД проектирование подразумевает расчёт АДХ для множества компоновок на множестве режимов, их анализ и выбор из

них той, которая, по тем или иным соображениям, предпочтительнее других. При ручном же счёте «цена» единичного расчёта слишком высока — это часы скрупулёзной и монотонной работы над длинной последовательностью вычислений. Таким образом в течение курсовой работы или проекта реально провести расчёт лишь для нескольких режимов.

Автоматизация вычислений по формулам не представляет сложностей — вся последовательность вычислений в соответствии с методикой очень наглядно и понятно может реализовываться в виде листинга Mathcad или SMath, так же можно использовать Python или другие языки программирования. Очевидной проблемой при этом остаётся необходимость вручную снимать значения с графиков и подставлять в программу.

Решением проблемы является оцифровка графических зависимостей — по кривым, приведённым на графиках, составляются соответствующие таблицы координат, по которым осуществляется интерполяция с помощью специальной функции. Снятие значений с графика в расчёте АДХ при этом заменяется вызовом соответствующей функции.

На протяжении многих лет студентами предпринимались различные попытки такой оцифровки, однако в силу большой сложности и трудоёмкости этой задачи ни одна из попыток не может считаться доведённой до конца. Оцифровка проводилась с различной степенью неаккуратности, функции писались в различных программах (Mathcad, Python, Excel), отсутствовали общепринятые соглашения о наименовании функций и аргументов, чаще всего никак не проверялся и не обрабатывался выход аргументов за пределы графика. Проверка написанных функций так же обычно не проводилась. Проверку корректности работы функции во всём диапазоне входных параметров авторы проводили путём визуального сравнения исходных рисунков и графиков, построенных с помощью разработанных функций в тех же координатах, в которых они представлены в литературе, причём с обязательным построением промежуточных кривых или графиков, полученных интерполяцией (рис.1).

,6 J.H 2 2.2

Рис. 1. Пример сравнения исходного графика [4] (слева) с графиком, построенным с помощью разработанной библиотечной функции (справа)

Некоторые графики никогда в принципе не оцифровывались, так как организация правильной интерполяции по ним сама по себе представляет сложную задачу (см. например, [6] и рис.2).

"О У

/

t

/ /

/ /

/ /

, / / \

\ / \

Л и \

/А 1 \

/

/

/

/ /

/ /

/

-- /

Л N

Ч \

1 i'i" \

о с: tu ojs

и > у

Рис.2 - Пример графика (справа), полученного интерполяцией между двумя графиками (слева),

представленным в виде изолиний в [3] 207

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

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

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

1. Обеспечение возможности использования библиотеки в различных средах и языках программирования. Выполнение аэродинамического расчёта возможно в различных средах разработки, каждая из которых имеет свои достоинства и недостатки, однако зачастую выбор определяют в основном привычки пользователя. Библиотека функций должна обеспечивать её применение в различных средах разработки (универсальность), но при этом иметь единое ядро, для простоты отладки и развития, гарантированно выдавать одинаковые результаты во всех средах. Учитывая наибольшую популярность для подобных расчётов, на данный момент было решено обеспечить использование библиотеки в языках программирования C++ и Python и в пакетах Mathcad и Mathcad Prime, а также в их бесплатном отечественном аналоге SMath Studio [7]. При этом была выбрана следующая архитектура библиотеки, представленная в виде схемы на рис. 3.

Ядро» библиотеки написано на языке С++ и компилируется в виде статической библиотеки (AeroBDSM_Core.lib), оно представляет собой набор функций, содержащих массивы данных оцифрованных графических зависимостей и алгоритмы интерполяции по ним. Эта статическая библиотека функций может быть непосредственно использована для выполнения вычислений в программе на языке C++, основным достоинством статической библиотеки, по сравнению с динамической (.dll), является то, что при компиляции она «вшивается» в исполняемый файл (.exe) использующей её программы или другой библиотеки и не требует наличия отдельного файла.

Рис. 3. Архитектура разработанной библиотеки

«Для использования функций этой библиотеки в Mathcad применяется механизм UserEfi [8], который позволяет вызывать в Mathcad функции из динамической библиотеки (.dll), написанной на языке С или С++ с использованием специальной библиотеки из комплекта поставки Mathcad. Таким образом, компилируется динамическая библиотекаAeroBDSM_MCD.dll, которая состоит из интерфейсных функций (так называемых функций-обёрток, англ. Wrapperfunction), написанных в соответствии с требованиями механизма UserEfi и осуществляющих вызов соответствующих функций из библиотеки AeroB-DSM_Core.lib (которая при компиляции получается «вшита» в AeroBDSM_MCD.dll). Для использования библиотеки в Mathcad необходимо поместить файл AeroBDSM_MCD.dll, скомпилированный под разрядность x86, в системную папку. Для использования в Mathcad Prime необходимо поместить файл AeroB-DSM_MCD.dll, скомпилированный под разрядность x64, в системную папку. Для SMath Studio так же используется файл AeroBDSM_MCD.dll, скомпилированный под разрядность x64, который подключается с помощью дополнения MathcadCustomFunctions [9], обеспечивающего поддержку в SMath библиотек пользовательских функций, разработанных для Mathcad.

Использование статической библиотеки AeroBDSM_Core.lib не всегда возможно или удобно, поэтому создаётся так же динамический вариант этой библиотеки AeroBDSM.dll, в ней объявлены те же функции, что и в статическом варианте, но внутри себя они вызывают соответствующую функцию из статической библиотеки. Динамические библиотеки обладают большей универсальностью, и могут использоваться практически в любом языке программирования.

Для использования библиотеки в программах на языке Python разработана библиотека интерфейсных функций, в которых вызываются соответствующие функции из динамической библиотеки Aer-oBDSM.dll и осуществляется преобразование типов данных.

Таким образом была достигнута большая универсальность библиотеки, при сохранении единого «ядра»— все данные и алгоритмы интерполяции содержатся только в библиотеке AeroBDSM_Core.lib. На данный момент реализована поддержка библиотеки в C++, Mathcad, SMath и Python, принципиально возможно использование AeroBDSM.dll в других языках программирования (C#, Fortran и т.д.), и в различных пакетах, поддерживающих подключение динамических библиотек (например, Matlab).

2. Обработка выходов аргументов за пределы рабочих диапазонов. Графики и соответственно данные, которые с них могут быть получены, относятся только к жёстко ограниченным диапазонам аргументов.

Аргументы в системе координат, в которых построен график далее будем называть входными комплексами, так как обычно график даётся в зависимости от обезразмеренных величин или параметров подобия, представляющих собой некоторое математическое выражение. Независимые величины, входящие в эти математические выражения, будем называть аргументами функции. Аргументы функции — это параметры, которые передаются в функцию как отдельные переменные, при её вызове.

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

Реализуется это следующим образом: каждая C++ функция в библиотеке имеет соответствующие входным комплексами аргументы x1, x2 и т.д. передаваемые в функцию по ссылке [10], эти аргументы представляют собой структуры, имеющие поля x_min, x, x_max, в которые функция записывает, соответственно, минимальное, текущее и максимальное значение этого входного комплекса. После вызова каждой библиотечной функции пользователь может вызвать свою собственную процедуру обработки полученных входных комплексов, которая выполнит необходимые пользователю действия по обработке выхода за пределы. Аналогичный подход используется при вызове библиотечных функций на языке Python.

В варианте библиотеки для Mathcad и SMath использован другой механизм возврата значений входных комплексов: функции, написанные в соответствии с механизмом UserEfi^ любом случае возвращают комплексное число или массив комплексных чисел (для действительных чисел задействуется только действительная часть числа, мнимая остаётся пустой) [8]. С учётом этого авторами было принято следующее решение — функции, содержащиеся в библиотеке AeroBDSM_MCD.dll возвращают массив комплексных чисел длиной N + 1, где N — количество входных комплексов, в действительную часть 0-го элемента записывается результат — значение функции, следующие N элементов используются для записи значений входных комплексов. Если текущее значение входного комплекса ближе к максимальному значению или больше него, то текущее значение записывается в действительную часть, а максимальное — в мнимую часть числа, если же текущее значение ближе к минимальному или меньше него, то минимальное значение записывается в действительную часть, а текущее — в мнимую часть числа. Таким образом процедура обработки выходов за пределы должна в обоих случаях проверять, что действительная часть i-ого элемента массива (начиная с i=1, если отсчёт индекса ведётся с 0) меньше, чем мнимая, невыполнение этого условия означает выход за пределы рабочего диапазонаього входного комплекса.

3. Контроль ошибок в аргументах функций.Механизм UserEfi для написания функций для Mathcadи SMathпредусматривает возможность проверки корректности аргументов функции.Например, известно, что число Маха (первый аргумент функции) не может быть отрицательным, тогда в С++ коде функции в библиотеке AeroBDSM_MCD.dllвыполняется проверка этого аргумента, и если он не соответсвует условию, то функция возвращает специальное сообщение для Mathcad, содержащее номер аргумента и текст сообщения, в результате чего в листинге Mathcadданный аргумент будет выделен красным, а при наведении на него указателя мыши появится сообщение, информирующее пользователя об ошибке.

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

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

В pythonварианте библиотеки сообщение об ошибке выдаётся путём вызова исключения ValueError, содержащего текст с номером аргумента и сообщением об ошибке.

Пример вызова разработанных функций в кодена языках C++ и Python, а так же в среде SMathприведён на рис. 4.

Рис. 4. Примеры вызова функции из разработанной библиотеки на языке C++ (а), в листинге SMath (б) и на языке Python (в)

4. Учёт перехода на формульные зависимости. Графики для некоторых параметров предполагают, что в диапазоне, указанном на графиках их значения нужно снимать с графика, а при приближении к границам и при выходе из этого диапазона следует использовать соответствующую формулу (например, [4], и многие другие). Некоторые графики предполагают, что параметр стремится к какому-либо значению (например к 0 или 1), что согласуется с его физическим смыслом, однако, график дан для лишь небольшого диапазона аргументов для экономии места (например, [1]), или некоторая зависимость параметра для предельного случая вообще явно не отражена на графике, но ясна из его описания (например, [4]).

Авторами были приняты следующие решения: во-первых, все неявные, но предполагаемые зависимости и интерполяция к ним должны быть учтены при написании библиотечной функции, соответствующей данному графику, а рабочие диапазоны входных комплексов — соответствующим образом расширены; во-вторых, рекомендуемые формульные зависимости, в которые кривые графика переходят при приближении к границе графика, также закладываются в библиотечную функцию, и рабочий диапазон так же расширяется. Решение учитывать переходы с графической зависимости на формульную внутри библиотеки, а не оставлять эту работу пользователю библиотеки, объясняется в основном тем, что этот переход обычно требует дополнительного сглаживания и корректировки значений для гладкой стыковки графической и формульной зависимости, что целесообразно сделать при разработке библиотеки. Если же эта работа будет проводиться каждым пользователем самостоятельно, то значения функции получатся немного различными, что затруднит проверку результатов расчётов. В основном это касается проверки типовых расчётов, выполненных студентами. Для использования библиотеки в исследовательских целях, при необходимости использования других формульных зависимостей пользователь может так же использовать библиотечную функцию в области графика, а вне её переходить в своей программе на желаемую функцию.

5. Наименование переменных и функций. Как известно обозначения переменных в аэродинамике отличаются большой сложностью, они задействуют латинский и греческий алфавит, нижние и верхние индексы, различные надстрочные знаки. Большинство обозначений более или менее закреплены

в литературе (хотя и могут отличаться в отдельных книгах), некоторые основные обозначения закреплены соответствующими ГОСТами [11], [12]. Широкие возможности набора обозначений в текстовых редакторах не накладывают ограничений на использование всех необходимых элементов, однако при наборе выражений в программном коде или листинге соответствие литературным обозначениям затруднено.

В программном коде C++, Python и других языков для названий переменных рекомендуется использовать только буквы латинского алфавита, символ нижнего подчёркивания и цифры. В листинге Mathcad и SMath для названий переменных дополнительно можно использовать буквы греческого алфавита и другие unicode-символы, обозначение переменной может иметь нижний индекс. Эти возможности Mathcad и SMath позволяют существенно приблизить к литературному вид обозначений и выражений в целом, что значительно повышает наглядность расчёта и удобство работы и проверки, но полного соответствия обеспечить невозможно, так как отсутствует возможность использования верхнего индекса и надстрочных и подстрочных символов, комбинируемых с буквой (например, буква с чертой сверху).

В данных условиях каждый исполнитель вынужден преобразовывать литературные обозначения в имена переменных в своём программном коде или листинге Mathcad / SMath с учётом их особенностей и ограничений, при этом у каждого исполнителя обычно получаются свои уникальные имена переменных, так как каждый руководствуется своей логикой и даже её он не всегда единообразно придерживается. Данное обстоятельство сильно осложняет проверку и анализ алгоритмов расчёта, написанного другим исполнителем, а также делает невозможной совместную разработку, существенно затрудняет использование в своей программе участков кода, подпрограмм, функций, написанных другими исполнителями.

Для обеспечения более продуктивной работы авторами было принято решение составить таблицу обозначений, для всех величин, встречающихся в расчётах. Эта таблица содержит 4 столбца: литературное обозначение, обозначение в программном коде, обозначение в листинге Mathcad / SMath, название. Именование переменных в расчётах в соответствии с этой таблицей обеспечит полное совпадение обозначений у всех исполнителей. Именование переменных при составлении таблицы основывалось на следующих основных принципах: соответствие ГОСТам, соответствие наиболее распространённым обозначениям в отечественной литературе, приведение к единообразию и единой логике. Обозначение греческих букв в программном коде осуществляется путём написания их латиницей как это принято в системе LaTex [13], Microsoft Word [14], Python Matplotlib [15] и др., для разделения частей обозначения используется нижнее подчёркивание. В Mathcad и SMath используются все доступные символы, латинский, греческий и русский алфавит, при этом нижний и верхний индексы литературного обозначения записываются в нижний индекс переменной и разделяются символом подчёркивания. Для обозначения относительных (обезразмеренных) величин в литературе широко используется черта над буквой, в листинге для этого используется символ (диакритический знак) «macron» (например, x F) следующий сразу после буквы, в программном коде такие переменные решено обозначать двойным повторением буквы (например, xx_F). Использовать русские буквы в программном коде так же не рекомендуется, поэтому русскоязычные части обозначений пишутся транслитерацией на латиницу.

Наименование библиотечных функций осуществляется в соответствии с обозначением величины, для определения которой предназначена функция, например «get_xx_F_IsP(...)» — функция для определения относительной координаты фокуса изолированной несущей поверхности.

Кроме множества графических и графико-формульных зависимостей, для расчёта АДХ по рассматриваемой методике необходимо определённое количество достаточно сложных геометрических вычислений для определения некоторых параметров (например, [4, рис.3.31] и др.). В указанной литературе для их определения рекомендуется использовать геометрические построения. Для определения подобных величин авторами было решено так же разработать соответствующие библиотечные функции. Эти функции позволяют автоматизировать вычисление необходимых геометрических параметров для некоторых типовых компоновок ЛА, при этом они по возможности исключают грубые допущения, которые принимались при ручном счёте. Пример реализации авторами одной из таких функций приведён в [16].

Вся информация для вызова библиотечных функций — названия функций, их описания, перечни входных параметров и их описания и другая дополнительная информация — содержится в документации к библиотеке, кроме того, при разработке библиотеки максимально использованы возможности оформления подсказок и комментариев к функциям в С++ (используя Microsoft XML documentationcomments [17], Python [18], Mathcad/SMath [8], что обеспечивает удобство использования библиотеки во всех поддерживаемых средах разработки и минимизирует ошибки, так как непосредственно во всплывающей подсказке к каждой функции указано какую величину она возвращает, в каких единицах измерения, в каком порядке указываются аргументы,название каждого аргумента, в каких единицах измерения он должен быть представлен.

Заключение. Таким образом, была разработана библиотека подпрограмм (программных функций), в объёме необходимом для автоматизации расчёта АДХ ЛА, по методике изложенной в [4, гл. III, IV, V]. Разработанная библиотека позволяет составлять программы расчёта АДХ на языках C++ и Python, а также в математических пакетах Mathcad и SMath. Библиотека предназначена для обучения студентов

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

Далее планируется расширять и развивать библиотеку за счёт включения в её состав новых функций или доработки существующих (расширение диапазонов аргументов и!или уточнение данных) на основе большего количества данных, опубликованных в открытой литературе.

Список литературы

1. Аэродинамика ракет: в 2-х кн. Кн.1. Пер. с англ. I Под ред. М.Хемша, Дж.Нилсена. М.: Мир, 1989. 426 с.

2. Аэродинамика ракет: в 2-х кн. Кн.2. Пер. с англ. I Под ред. М.Хемша, Дж.Нилсена. М.: Мир, 1989. 512 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Pitts William C., Nielsen Jack N., Kaattari George E. Lift and center of pressure of wing-body-tail combinations at subsonic, transonic, and supersonic speeds, NACA Report 1307. 1957. 70 p.

4. Лебедев А.А., Чернобровкин Л.С. Динамика полёта беспилотных летательных аппаратов. Учебное пособие для вузов. Изд. 2-е, переработанное и доп. М.: «Машиностроение», 1973. 616 с.

5. Аэродинамика ракет: Учеб. пособие для техн. вузов I Н.Ф. Краснов, В.Н. Кошевой, А.Н. Данилов, В.Ф. Захарченко; Под общ. ред. проф. Н.Ф. Краснова. М.: Высш. школа, 1968. 772 с.

6. Широкопетлев Н.К., Лаптева Л.А. Оцифровка графических зависимостей, представленных в виде изолиний II Всероссийская студенческая конференция «Студенческая научная весна», посвященная 175-летию Н.Е. Жуковского»: сборник тезисов докладов I Министерство науки и высшего образования РФ, Московский государственный технический университет им. Н.Э. Баумана, СНТО им. Н.Е Жуковского. М.: ООО «Издательский дом «Научная библиотека», 2022. С. 99.

7. SMath Studio [Электронный ресурс]: URL: https:IIru.smath.com(дата обращения: 25.07.2022).

8. Справка PTCMathcad, пользовательские функции. [Электронный ресурс]: URL: https:IIsupport.ptc.comIhelpImathcadIr6.0IruIindex.html#pageIPTC Mathcad Help%2Fabout custom fun ctions.html%23 (дата обращения: 25.07.2022).

9. SMath Studio, дополнение «Mathcad Custom Functions» [Электронный ресурс]: URL: https:IIsmath.comI%D0%BE%D0%B1%D0%B7%D0%BE%D1%80IMathcadCustomFunctionsIsummarv (дата обращения: 25.07.2022).

10. Страуструп Б. Язык программирования С++. М.: «Бином», 2015. 1136 с.

11. ГОСТ 20058-80. Динамика летательных аппаратов в атмосфере. Термины, определения и обозначения. М.: ИПК Издательство стандартов, 1981. 54 с.

12. ГОСТ 23281-78. Аэродинамика летательных аппаратов. Термины, определения и буквенные обозначения. М.: ИПК Издательство стандартов, 1979. 32 с.

13. Львовский С.М. Набор и вёрстка в системе LATEX. 3. изд., испр. и доп. М.: МЦНМО. ГУП ИПК Ульян. Дом печати, 2003. 448 с.

14. Формулы линейного формата с использованием UnicodeMath и LaTeX в Word. [Электронный ресурс]: URL: https:IIsupport.microsoft.comIru-ruIofficeIформyлы-линейного-формата-с-использованием-unicodemath-и-latex-в-word-2e00618d-b1fd-49d8-8cb4-

8d17f25754f8?ns=winword&version=16&ui=ru-ru&rs=ru-ru&ad=ru (дата обращения: 25.07.2022).

15. Matplotlib tutorials. Writing mathematical expressions [Электронный ресурс]: URL: https:IImatplotlib.orgIstableItutorialsItextImathtext.html (дата обращения: 25.07.2022).

16. Лазарев А.А., Лаптева Л.А. Расчёт площади незатенённой области фюзеляжа летательного аппарата II Всероссийская студенческая конференция «Студенческая научная весна», посвященная 175-летию Н.Е. Жуковского»: сборник тезисов докладов I Министерство науки и высшего образования РФ, Московский государственный технический университет им. Н.Э. Баумана, СНТО им. Н.Е Жуковского. М.: ООО «Издательский дом «Научная библиотека», 2022. С. 92-93.

17. Recommended tags for documentation comments. [Электронный ресурс]: URL: https:IIdocs.microsoft.comIen-usIcppIbuildIreferenceIrecommended-tags-for-documentation-comments-visual-cpp?view=msvc-170 (дата обращения: 25.07.2022).

18. Numpy doc Style Guide [электронный ресурс]: URL: https:IInumpydoc.readthedocs.ioIenIlatestIformat.html (дата обращения: 25.07.2022).

19. Прохорцов А.В., Новоселова Е.С., Богданов М.Б. Виртуальные лабораторные работы - перспективная форма обучения студентов специальности «Приборостроение». Конференция «Оптика и образование - 2008»: Сборник трудов I Под общ. редакцией проф. А.А. Шехонина. Санкт-Петербург: СпбГУ ИТМО, 2008. С. 90 - 94.

Тищенко Денис Юрьевич, аспирант, DenisT_1996@outlook.com, Россия, Москва, Московский государственный технический университет имени Н. Э. Баумана,

Лаптева Людмила Аркадьевна, аспирант, sm6.lapteva@yandex.ru, Россия, Москва, Московский государственный технический университет имени Н. Э. Баумана,

Гарпинич Денис Николаевич, студент, garpinich22@mail.ru, Россия, Москва, Московский государственный технический университет имени Н. Э. Баумана,

Лазарев Аркадий Анатольевич, студент, lazarev.arkadiy@smail.com, Россия, Москва, Московский государственный технический университет имени Н.Э. Баумана,

Широкопетлев Никита Константинович, студент, sh.nkt@mail.ru, Россия, Москва, Московский государственный технический университет имени Н.Э. Баумана,

Михайлов Данил Сергеевич, студент, hustruy@mail.ru, Россия, Москва, Московский государственный технический университет имени Н. Э. Баумана

DEVELOPMENT OF A SUBROUTINE LIBRARY FOR AUTOMATED AERODYNAMIC DESIGN IN THE

EDUCATIONAL PROCESS

D.Yu. Tishchenko, L.A. Lapteva, D.N. Garpinich, A.A. Lazarev, N.K. Shirokopetlev, D.S. Mikhailov

The article presents a description of the developed library of subroutines designed to automate the calculation of aerodynamic characteristics of an aircraft performed according to an empirical and analytical methodology. The library is intended for use in the educational process for teaching the calculation of aerodynamic characteristics and aerodynamic design. The use of the developed library routines in the calculation makes it possible to exclude manual taking of values from graphs presented in special literature, manual finding of some complex geometric quantities performed by graphical constructions, and other operations. Automation of aerodynamic calculation makes it possible to calculate the aerodynamic characteristics in the entire range of input parameters, as well as to carry out aerodynamic design by optimizing the geometric parameters of the aircraft and selecting the aerodynamic appearance according to the specified quality criteria.

Key words: aerodynamic design, aerodynamic characteristics, library of subroutines, automation.

Tishchenko Denis Yurievich, postgraduate, DenisT_1996@putlook.com, Russia, Moscow, Bauman Moscow State Technical University,

Lapteva Lyudmila Arkadyevna, postgraduate, sm6.lapteva@yandex. ru, Russia, Moscow, Bauman Moscow State Technical University,

Garpinich Denis Nikolaevich, student, garpinich22@mail.ru, Russia, Moscow, Bauman Moscow State Technical University,

Lazarev Arkadiy Anatolyevich, student, lazarev.arkadiy@gmail.com, Russia, Moscow, Bauman Moscow State Technical University,

Shirokopetlev Nikita Konstantinovich, student, sh.nkt@mail.ru, Russia, Moscow, Bauman Moscow State Technical University,

Mikhailov Danil Sergeevich, student, hustruy@mail.ru, Russia, Moscow, Bauman Moscow State Technical University

i Надоели баннеры? Вы всегда можете отключить рекламу.