- •Московский государственный университет
- •5.2.Основные положения
- •5.3.Формирование математической модели и программного модуля расчета функция изменения температуры
- •5.4. Методика формирования программного модуля расчета температурной функции стандартной атмосферы
- •6. Задание на выполнение практической работы
5.4. Методика формирования программного модуля расчета температурной функции стандартной атмосферы
Подготовим функцию для расчета коэффициента для температурной зависимости стандартной атмосферы от высоты. Т.к. в построенных моделях используется трехдиапазонная аппроксимация полиномами различной степени, то сформируем в программном модуле для реализации разветвленного алгоритма структуру типа Переключатель (select case), в которой укажем каждый из трех диапазонов и скопируем при помощи буфера уравнения трендов из области подписи данных для соответствующих линий тренда в программный модуль. Так же вПереключателенеобходимо предусмотреть отображение входных параметров ( высота) , если его значение выходит за рамки рассматриваемых диапазонов.
На рис.5. представлен вид программного модуля после копирования в него уравнений. Для приведения представленного листинга к виду, пригодному для компиляции необходимо выполнить ряд преобразований текста для выполнения требований VBA. Учитывая, что необходимость в преобразованиях данных возникает при разработке пакетов и средств САПР и их эксплуатации достаточно часто, то рассмотрим выполняемые действия по шагам. Представленный алгоритм реализуется в конверторах данных при формировании единой информационной среды САПР ЭУ.
Преобразование 1. Запись уравнения тренда вида, например:
y = 1,71164x2 + 1,01256x + 0,99943
после копирования в программный модуль теряет свойства символа верхний индекси будет иметь вид:
y = 1,71164x2 + 1,01256x + 0,99943.
следует найти символы "x", входящие в уравнения тренда и преобразовать путем замены в символьную строку "*х^". Вид окна для выполнения указанного преобразования представлен на представлен на листинге программного модуля (рис.5).
Рис.5. Программный модуль. Преобразование 1.
Преобразование 2. После выполненных преобразований получим программный модуль вида (рис.6), в котором для линейных членов уравнений степень не указана, т.к. в уравнениях тренда подразумевается степень 1. Т.к. линейных членов уравнений после символа "^" следуетпробел, то необходимо найти символы "*х^ ", входящие в уравнения тренда, и удалить знак степени путем замены символьной строки на "*х". Вид окна для выполнения указанного преобразования представлен на листинге программного модуля (рис.6).
Рис.6. Программный модуль. Преобразование 2.
Преобразование 3. После выполненных преобразований получим программный модуль вида (рис.7), в котором в качестве разделителей целой и дробной частей в уравнениях трендов используетсязапятая, а вVBAиспользуется формат чисел с фиксированнойточкой. Необходимо найти символы ",", входящие в уравнения тренда, и заменить ".". Вид окна для выполнения указанного преобразования представлен на листинге программного модуля (рис.7).
После последнего преобразования получим программный модуль следующего вида (рис.8), который пригоден для компиляции и использования в расчетах параметров стандартной атмосферы. Результаты численных расчетов температуры воздуха для стандартной атмосферы, полученные по рассмотренной кусочно-полиномиальной модели аппроксимации. представлены в табл.7 и на рис.9.
Погрешность модели не превышает 0,25% в диапазоне высот от 0км до 25 км и от 45км до 100км. В диапазоне от 25км до 45км погрешность модели не превышает 1%.
Рис.7. Программный модуль. Преобразование 3.
Рис.8. Программный модуль после выполнения контекстных замен
Полученный программный модуль после компиляции применяем в виде функции пользователя для выполнения конкретных расчетов. В табл.7 приведены результаты расчетов с данными о значениях функции, погрешностях и температуры стандартной атмосферы на различных высотах.
На рис.9 представлена температурная зависимость в виде графика.
Таблица 7. Аппроксимация температуры стандартной атмосферы
Высота, км, |
Изменение температуры, √T(0)/T(h) |
yрегр |
Δy |
Δy,% |
T,К |
0 |
1 |
0,99943 |
-0,00057 |
-0,06% |
288,3 |
0,5 |
1,003 |
1,004536 |
0,001536 |
0,15% |
285,4 |
1 |
1,01 |
1,009727 |
-0,000273 |
-0,03% |
282,5 |
1,5 |
1,015 |
1,015004 |
3,52E-06 |
0,00% |
279,5 |
2 |
1,021 |
1,020366 |
-0,000634 |
-0,06% |
276,6 |
3 |
1,032 |
1,031347 |
-0,000653 |
-0,06% |
270,8 |
5 |
1,054 |
1,054337 |
0,000337 |
0,03% |
259,1 |
6,5 |
1,072 |
1,072478 |
0,000478 |
0,04% |
250,4 |
10 |
1,118 |
1,117802 |
-0,000198 |
-0,02% |
230,5 |
15 |
1,133 |
1,133722 |
0,000722 |
0,06% |
224,1 |
20 |
1,133 |
1,130072 |
-0,002928 |
-0,26% |
225,5 |
25 |
1,121 |
1,123789 |
0,002789 |
0,25% |
228,0 |
30 |
1,109 |
1,11298 |
0,00398 |
0,36% |
232,5 |
35 |
1,098 |
1,087774 |
-0,010226 |
-0,93% |
243,4 |
40 |
1,034 |
1,040988 |
0,006988 |
0,68% |
265,8 |
45 |
0,979 |
0,978787 |
-0,000213 |
-0,02% |
300,6 |
50 |
0,933 |
0,931347 |
-0,001653 |
-0,18% |
332,0 |
55 |
0,963 |
0,963512 |
0,000512 |
0,05% |
310,2 |
75 |
1,122 |
1,122006 |
6,25E-06 |
0,00% |
228,8 |
100 |
1,176 |
1,176 |
0 |
0,00% |
208,2 |
Рис.9. Аппроксимация температуры стандартной атмосферы