Как раскрутить «ротор» в ANSYS CFX

wind turbine

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

Что можно предложить для решения данной проблемы? Например, начать раскручивать ротор с постоянным ускорением, но с переменной угловой скоростью. До тех пор, пока она не достигнет своего номинального значения.

Для этого необходимо написать несколько CEL-выражений. Ниже показан фрагмент CCL файла реального проекта, в котором была использована описанная технология.

LIBRARY:
CEL:
EXPRESSIONS:
Accel = torq / MassInert
MassInert = 40 [kg m^2]
accelconst = 0.01 [rad s^-2]
anglenew = angleold+omeganew*tStep
angleold = atan2(x,y)
omeganew = omegaold+accelconst*tStep
omegaold = sqrt((Mesh Velocity X)^2 + (Mesh Velocity Y)^2)/max(radius, \
1e-08[m])
radius = sqrt(x^2+y^2)
tStep = 0.1 [s]
torq = torque()@WALL BLADES
END
END

На этом всё!
С уважением, Денис П. Хитрых.

Расчет сил и моментов в CFD-Post в абсолютной системе координат

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

Соответственно, силы и моменты, рассчитываемые с использованием выражений типа force_x() или torque_(x), вычисляются в относительной системе координат вращающихся доменов.

Для вычисления значений сил и моментов в абсолютной системе координат (СК) необходимо выполнить преобразование СК.

Допустим, что ось вращения лопаточной машины совпадает с осью Z. Тогда выражения для расчета сил будут выглядеть следующим образом:

userforceX = force_x()@blade * cos(Angular Velocity * Time) + force_y()@blade * sin(Angular Velocity * Time)

userforceY = -1 * force_x()@blade * sin(Angular Velocity * Time) + force_y()@blade * cos(Angular Velocity * Time)

На этом всё!
С уважением, Денис П. Хитрых.

Расчет углов падения/отражения частиц в Fluent

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

Подобную ситуацию мы можем наблюдать, например, при расчете углов падения/отражения частиц при взаимодействии со стенкой в ANSYS Fluent:  углы вычисляются, но информация об их значениях не сохраняется в файлы результатов.

Доступ к этой информации можно получить с помощью соответствующих предустановленных UDF-макросов: DEFINE_DPM_EROSION и DEFINE_DPM_BC (подробнее см. документацию).

С другой стороны, косинус угла падения можно вычислить по формуле  cos_a = NV_DOT(A,V)/(NV_MAG(A)*NV_MAG(V)). Тогда угол падения Alpha равен acos(cos_a). Здесь A — площадь поверхности, с которой взаимодействует частица;  V  — вектор скорости частицы.

На этом всё!
С уважением, Денис Хитрых.

Варианты задания объемного источника с переменным размером в ANSYS CFX

Сегодня мы рассмотрит одну небольшую задачу, которая касается вопроса задания объемного источника переменного  размера на основе subdomain (поддомена) в ANSYS CFX.

Как вы знаете, в ANSYS CFX поддомен всегда имеет постоянный размер, но вы можете определить поддомен целиком для расчетной области и использовать CEL-выражения для задания объемного источника.

Предположим, что наш источник имеет форму «шайбы» радиусом 0.3 м и высотой 0.3 м. Соответствующий список выражений будет иметь вид:

z0 = 0.0 [m]
x0 = 0.5 [m]
y0 = 0.5 [m]
sourceRadius = 0.3 [m]
sourceHeight = 0.3 [m]
unitL = 1 [m]
rSource = sqrt((x-x0)^2 + (y-y0)^2)
hSource = z-z0
insideSource = step((sourceRadius-rSource)/unitL)*step((sourceHeight-hSource)unitL)
source = insideSource * 100 [W m^-3]

В пределах «шайбы» объемный источник энергии равен 100 Вт/м3, а за пределами «шайбы» он равен нулю. Эти выражения легко переделать так, чтобы они стали зависимыми от времени.

Читать далее

Моделирование процесса адсорбции в ANSYS Fluent

Сегодня мы рассмотрим задачу моделирования процесса адсорбции c использованием решателя ANSYS Fluent. Напомним, что адсорбция – это процесс поглощения поверхностно-активных веществ из раствора или газовой смеси поверхностным слоем жидкости или твердого тела – специальными адсорбентами. В качестве адсорбентов могут выступать различные материалы с высокой удельной поверхностью, например, пористый углерод (активированный уголь) или силикагели.

Сgeometryледует отличать адсорбцию от абсорбции. В последнем случае вещество диффундирует в объем жидкости или твердого тела и образует раствор или гель.

Адсорбция – достаточно распространенное явление в химической и нефтегазовой отраслях. Оно возникает повсеместно, где присутствует поверхность раздела между фазами. Устройство для проведения адсорбции называется адсорбером.

Для моделирования адсорбции мы будем использовать предопределенные шаблоны для задания реакций на поверхностности и гетерогенных реакций по всему объёму в ANSYS Fluent.

Количественно процесс адсорбции (без учета межмолекулярного взаимодействия адсорбата) описывается уравнением Ленгмюра:

2018-07-10_12-37-57где Θ – доля площади поверхности адсорбента, занятая адсорбатом, α – адсорбционный коэффициент Ленгмюра, P – концентрация адсорбтива.

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

Рассмотрим двумерную задачу адсорбции газовой смеси (воздух+углекислый газ) твердым телом (слоем насадки адсорбера).

Поглощение углекислого газа адсорбентом описывается следующим уравнением:
2018-07-10_12-50-14

Далее опишем основные шаги, связанные с постановкой задачи адсорбции в ANSYS Fluent.

Сначала включите решение уравнения энергии и выберите модель турбулентности. Если отсутствует первоначальная закрутка потока газовой смеси или сильное искривление линий тока, обусловленное геометрией адсорбера, то можно использовать по-умолчанию модель турбулентности k.

Включите модель переноса компонентов Enable Species transport и в открывшейся панели Species Model активируйте в разделе Reactions опции Volumetric (реакция в объеме) и Wall Surface (реакция на поверхности).

2054122 Читать далее

Как определить положение центра давления в CFD-Post?

2015-08-10_11-21-53Сегодня немного поговорим об аэродинамике и дадим ответ на такой интересный вопрос: как определить положение центра давления в CFD-Post?

Для  начала решим вопрос с терминологией.

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

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

Отметим так же, что положение центра давления зависит от формы профиля и угла атаки.

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

CPx = areaAve(X*Absolute Pressure)@surface/areaAve(Absolute Pressure)@surface
CPy = areaAve(Y*Absolute Pressure)@surface/areaAve(Absolute Pressure)@surface
CPz = areaAve(Z*Absolute Pressure)@surface/areaAve(Absolute Pressure)@surface

Для первого «классичсекого» варианта нам дополнительно потребуется определить величину аэродинамического момента T, действующего на крыло. Тогда выражения для вычисления положения центра давления можно записать в следующем виде:

TSURFx = torque_x()@surface - ( Y*force_z()@surface - Z*force_y()@surface)
TSURFy = torque_y()@surface - ( Z*force_x()@surface - X*force_z()@surface)
TSURFz = torque_z()@surface - ( X*force_y()@surface - Y*force_x()@surface)

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

Наконец, выведите на этой поверхности поле этой пользовательской переменной.

С уважением, Денис Хитрых.

Определяем свойства материалов в Fluent через scm-файл

Я уже писал о том, как можно быстро и легко определить новый материал в ANSYS Fluent. Напомню,  что для этого необходимо отредактировать предустановленный sсm-файл, в котором содержится описание физико-механических свойств различных материалов.

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

Измените расширение вашего текстового файла на scm. А затем откройте этот файл через соответствующую закладку в стандартной панели определения материалов Fluent.

material

С уважением, Денис Хитрых.