ОКЕАНЫЧ

Параметризация для чайников. Автоматизация расчётов. Часть 1. Математика.

Многие современные системы имеют механизмы параметризации различной степени удобство. От самых простых, как в AutoCAD или, да простит меня Сергей Максимов, в CADMATIC, до достаточно развитых как в SolidWorks или T-Flex. Но мало кто понимает, для чего они нужны. Особенно классические автокадчики, ибо в AutoCAD механизм параметризации настолько неявный и недружелюбный, что им практически никто не пользуется. По крайней мере из тех, кого я встречал, им пользуются единицы.

На самом деле правильно приготовленный параметрический документ может очень сильно облегчить жизнь конструктора, а параметрические сборки позволяют пересчитывать документ на лету. Одним из примеров использования механизма параметризации является автоматизация расчётов. Сегодня начну показывать, как я делал фрагмент для T-Flex, который умеет рассчитывать параметры предохранительного клапана по ГОСТ 12.2.085-2002 для газа. В итоге я получил документ с удобной формой данных и автоматически формируемым текстовым документом с результатом расчёта без всякого программирования, на одной лишь параметризации.

Смысл расчёта в том, чтоб определить минимальное проходное сечение предохранительного клапана для рабочих условий. Если сечение будет меньше, то клапан будет не способен сбросить излишки газа и давление перед клапаном будет возрастать, а не падать. Методика расчёта основана на математическом алгоритме истечения газа через отверстие, но упрощена с допустимой погрешностью при помощи коэффициентов. Расчёт именно для газа выбран потому, что газ может истекать через клапан в докритическом режиме (скорость потока меньше звуковой и зависит от перепада давления) и в критическом (скорость потока равна звуковой). В зависимости от режима используются разные формулы для расчёта коэффициента B3.

Исходными данными для расчёта являются (в скобках указываю имена переменных):

  • - манометрическое давление перед клапаном (g_P1) в МПа
  • - манометрическое давление за клапаном (g_P2) в МПа
  • - температура перед клапаном (g_T), в градусах Цельсия
  • - плотность при нормальных условиях (g_ro)
  • - показатель адиабаты газа (g_gamma)
  • - расход гала при н.у. м3/ч (g_Qnm)
  • - коэффициент расхода для газа (g_alfa1)

Для удобства я объединил эти переменные в группу «Исходные данные». Все параметры я создавал в редакторе переменных, который вызывается из меню Параметры->Переменные.

Новая переменная создается нажатием на иконку или комбинацией Ctrl+N. Появляется такое меню

Переменные в T-Flex бывают 2-х видов – вещественная (число) и текстовая. Булевых пока нет. На этом этапе мы оперируем с числами, поэтому выбираем вещественную переменную.

В поле Выражение может стоять как значение (число или текст), так и формула, результат вычисления которой отображается в поле Значение. Так же настоятельно рекомендую не лениться и написать Человекопонятный комментарий, и сгруппировать переменные по функциональному признаку. Самим же легче будет через месяц-полтора допиливать.

Закончив, нажимаем ОК. Таким же образом создаем все остальные исходные данные. Результат.

Пара слов о названии переменных. Меня ещё в институте научили именовать переменные понятными именами, в современном программировании есть даже джентльменский набор правил для именования. Но в данной ситуации я поступил проще. Имена переменных состоят из префикса g_, что является отличительной чертой того, что эти переменные используются для расчёта газа, а после префикса я использовал обозначение из ГОСТ. При этом греческие буквы заменил на их транскрипцию. Единственное исключение я сделал для показателя адиабаты. Я взял обозначение из термодинамкик (гамма) а не из ГОСТ (k).

Я не буду расписывать теорию расчёта предклапана — она вся довольно подробно изложена в ГОСТе, так же не буду расписывать каждую формулу — они есть в прилагаемом файле Пред.клапан_step1.par, который можно или открыть в текстовом редакторе, или загрузить непосредственно в редактор переменных T-Flex командой Считать параметры Подробно лишь остановлюсь на переменной g_B3

Т.к. формула для расчёта переменной g_B3 зависит от значения переменной g_beta, пришлось использовать логическую конструкцию If-Then-Else, которая в T-Flex имеет следующий синтаксис
Условие ? Выражение1 : Выражение2
T-Flex проверяет Условие, и если оно истино, вычисляет Выражение1, если ложно, вычисляет Выражение2. При докритическом течении
g_beta <= g_betakr
переменная g_B3 вычисляется по формуле
1.59*sqrt(g_gamma/(g_gamma+1))*g_betakr
В противном случае — по формуле
1.59*sqrt(g_gamma/(g_gamma-1))*sqrt(g_beta^(2/g_gamma)-g_beta^((g_gamma+1)/g_gamma))

После введения всех формул у меня получился вот такой результат.

В итоге расчёта мы получили диаметр клапана — g_dc_prel. Дальше берём каталог предклапанов, например, Благовещенского арматурного завода, и подбираем клапан с ближайшим большим седлом. Дальше нужно проверить правильность, ведь мы задавали коэффициент g_alfa1 из головы (хотя и на основе того же БАЗовского каталога), а у реального клапана он может отличаться. Задаём переменной g_alfa1_fin значение коэффициента расхода выбранного клапана, и смотрим на значение переменной g_G_fin. Если оно больше значения g_G, то клапан подобран верно.

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