Перейти к публикации

Udf-функция для задания плотности газа


Рекомендованные сообщения

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

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

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

Расчеты для моего случая по закону для идеального газа , реализованного во Fluent -e, прекрасно совпадают с экспериментальными данными ТОЛЬКО при низких давлениях .

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

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

R = ( Rc * P * Tc) / (Pc * T * K);

где

Rc = 1.225 [ кг/м3 ] – плотность газа (воздуха) при стандартных условиях;

Tc = 293.15 [ K ] – температура при стандартных условиях;

Pc = 101325 [ Па = кг / (м * с2 ) ] – давление при стандартных условиях.

T = 300 [ К ] – температура газа в рабочих условиях.

P = 6079500 [ Па ] = 60 [ атм ] – давление газа в рабочих условиях.

K –коэффициент сжимаемости для данных рабочих условий.

В общем случае значение коэффициента сжимаемости представляет собой функцию

K = K( Rc, P, T).

Для примера буду использовать зависимость, которая представляет только качественную картину, и не претендует на математическую и физическую строгость, т.к. взята «с потолока» для упрощения расчетов.

K = 1 – ( Rc / 1e3) – (P / 1e8) – (T / 1e3)

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

Привожу ниже UDF-функцию , реализующую расчет заданного закона определения плотности в рабочих условиях (файл density_low.c ). Обращаю внимание, что в UDF-функциях проводятся расчеты ТОЛЬКО в единицах СИ. В дробях знаменатели выбраны таким образом, чтобы нормировать значения параметров именно в единицах СИ.

/*********************************************************************

UDF for specifying a density low

**********************************************************************/

#include "udf.h"

#define RHO_C 1.225 /* Reference density [ kg/m3 ] */

#define T_C 293.15 /* Reference tempreture [ K ] */

#define P_C 101325.0 /* Reference pressure [ Pa ] = [ kg / (m * c2) ] */

DEFINE_PROPERTY(density_low, cell, thread)

{

real density = C_R(cell, thread); /* Working Density */

real pressure = C_P(cell, thread); /* Working Pressure */

real temperature = C_T(cell, thread); /* Working Temperature */

real density_modified; /* Modified Density */

real K; /* Compressibility ratio*/

K = 1 - (density / 1e3) - (pressure / 1e8) -(temperature / 1e4);

density_modified = (RHO_C * pressure * T_C) / (P_C * temperature * K);

return density_modified;

}

Далее действую по стандартной процедуре:

1. Открываю файл с геометрией (для данного примера подойдет прямая труба диаметром 0,7 м ).

2. Рабочие и начальные условия

– рабочее давление (60 атм. = 6079500 Па );

– массовый расход (100 кг/с ),

– температура (300 К ).

3. Define -> User-defined -> Functions -> Interpreted -> density_low.c

4. Define -> Materials -> Air -> Density -> User-Defined -> density_low

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

6. Запускаю проведение расчета и на экран выводится ошибка

Error: Floating point error: invalid number

Error Object: ()

В связи с чем может появляться это сообщение?

Мне кажется, что следует выполнить еще какую-то настройку или как-то модифицировать UDF-функцию .

Просьба поделиться соображениями по этому поводу.

Ссылка на сообщение
Поделиться на других сайтах


У меня такая же проблема. Я пытался считать природный газ в который входят (этан пропан и др.) в трубопроводе круглово сечения и мои результаты отличаюття от экспериментальных данных. Мне нужна программы которая ба считала плотность как реальный газ. Читая информацию об установки дополнительной программы во Fluent для расчетов реальных газов я не совсем все в ней разобрался. Но пробуя закачать ее у меня выводиться ошибка о том что ненайдена библиотека UDF_user-define. Поделитесь опытом почему у меня не загружает программу? Буду очень благодарен если ответ пришлете на мой адрес taram1980@rambler.ru

Спасибо!

Ссылка на сообщение
Поделиться на других сайтах

-> Astor

Посмотрите главу 7.14.2 The User-Defined Real Gas Model во Fluent UG.

Изменено пользователем chupal
Ссылка на сообщение
Поделиться на других сайтах

-> chupal

Снова очень благодарен за полезную ссылку.

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

На самом деле мне известны справочные данные по уравнениям состояния только для двух параметров:

– плотности газа

– вязкости газа.

В процессе создания пользовательской модели реального газа user-defined real gas model (UDRGM) необходимо описать около десятка его свойств для того, чтобы Fluent мог использовать модель для расчета.

Остальные свойства я описываю по тем же законам (как для идеального газа), которые приведены в 1-м примере из раздела руководства пользователя 7.14.2 The User-Defined Real Gas Model во Fluent UG .

В праве я делать такие допущения?

2-й пример из того же манула описывает уравнения состояния газа на основании модели Redlich-Kwong Real Gas Equation of State , но он требует бОльшего количества справочных входных параметров.

Что это за уравнение состояния?

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

Но можно ли использовать модель Redlich-Kwong Real Gas Equation of State для газа в нормальном состоянии?

В главе 7.14.1 The NIST Real Gas Model описана возможность использования библиотек свойств газов, использующих уравнения состояния полученные NIST -ом. В поставке с Fluid -ом идет подборка с моделями для 33 газов. Но эту библиотеку можно расширять, закачивая необходимые газы с сайта www.nist.gov .

Но, как и везде на Западе, эта услуга платная. Нет ли где-нибудь в сети этих fld -файлов, выложенных какими-нибудь «меценатами»?

Судя из комментариев к fld -файлам, поставленных вместе с Fluent -ом, этим занимался народ из Колорадо, США. Правда, это и неудивительно. Исходные данные они брали из таких источников как

1.Angus, S., Armstrong, B. and de Reuck, K.M.

International Thermodynamic Tables of the Fluid State-7 Propylene,

International Union of Pure and Applied Chemistry, Pergamon Press,

Oxford, 1980.

2. S.L. Outcalt, NIST, Boulder, CO (1996). MBWR equation of state as reported in:\

Haynes, W.M. (1996). Thermophysical properties of HCFC alternatives. National

Institute of Standards and Technology, Boulder, Colorado, Final Report for

ARTI MCLR Project Number 660-50800

3. Chase, M.W., Davies, C.A., Downey, J.R., Frurip, D.J., McDonald, R.A. and

Syverd, A.N. (1985). JANAF Thermochemical Tables, Third Edition.

J. Phys. Chem. Ref. Data 14(suppl. 1): 1-1856

и другие.

В принципе, если знать структуру этих файлов, то можно создавать свои библиотеки в формате *.fld на основании этой зарубежной справочной литературы (если ее реально достать).

Существует ли описание этой структуры и насколько реально таким образом подключать этот вид библиотек?

-> Taram

Для расчета реальных газов, по видимому существует, два подхода:

1. Использование моделей уравнений состояния газа, разработанных сотрудниками института NIST.

2. Реализация на языке С пользовательских функций и интеграция их во Fluent-е.

Для того, чтобы не возникала ошибка о том что ненайдена библиотека UDF_user-define необходимо сначала загрузить скомпилированную UDF-функцию или проинтерпретировать код нескомпилированного кода при помощи выбора меню

Define -> User-defined -> Functions -> Interpreted -> имя файла.c

Затем при выборе пункта

Define -> Materials -> Air -> Density -> User-Defined -> density_low

активизируется выбор пользовательской реализации расчета свойств и ошибка о том что ненайдена библиотека UDF_user-define не возникает.

Но в свете последних сведений наилучший способ – использовать рекомендации из 7.14.2 The User-Defined Real Gas Model во Fluent UG. В этом случае свойства реального газа целиком и полностью рассчитываться на основании UDF-функции.

Ссылка на сообщение
Поделиться на других сайтах

-> Astor

К сожалению, я ничего посоветовать Вам не могу, поскольку мне не приходилось проводить расчеты с использованием модели реального газа.

Ссылка на сообщение
Поделиться на других сайтах

Дело в том, что я уже пытался подключать программу при помощи описанной в главе7.14.2 The User-Defined Real Gas Model во Fluent UG. Но у меня ничего не выходит. Что мне делать? Я могу выслать модель и описание того что я делал. Если есть добрые люди то отзовитесь. Помогите чем сможете.

Спасибо! :surrender:

Ссылка на сообщение
Поделиться на других сайтах

-> Taram

Давайте разбираться вместе.

Мне удалось запустить 1-й пример из 7.14.2 The User-Defined Real Gas Model во Fluent UG, в котором реализована функция расчета свойств газа по уравнению состояния для идеального газа. Но результаты расчета по этой функции не совсем совпадают со встроенным во Fluent уравнением расчета для идеального газа, который устанавливаеться при помощи define->materials->density->ideal gas несмотря на то, что я выставил в UDF-функции точно такие же свойства газа, как и в параметрах настроек define->materials.

Мой email: dwnfile@yahoo.com. Укажите ваш ник в теме сообщения, чтобы я знал, что письмо от вас. Хотя неплохо было бы выложить эти данные на форуме, чтобы узнать мнения общественности по данному вопросу.

Ссылка на сообщение
Поделиться на других сайтах

Для Astora

Я конечно выложу ее полностью но вначале надо получить реальные результаты. А после я в подробности все изложу.

Ссылка на сообщение
Поделиться на других сайтах
  • 6 лет спустя...

Здравствуйте, помогите пожалуйста

Кто-нибудь пробовал подключить UDRGM реального газа, описанного в мануалах или хотя бы идеального.

У меня не принимает программа вот эти строки почему то

static int (*usersMessage)(char *,...);

static void (*usersError)(char *,...);

static double rgas, a0, b0, c0, bb, cp_int_ref;

Error: C:\09.09.c: line 85: parse error

с чем это может быть связано?

моя задача заключается посчитать реальных газ ( можно даже как в примере), а потом включить в udf двухфазную область тоже. Как вы думаете это реально?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...