Добавление пользовательского теплоносителя

Описание процесса добавления нового сжимаемого или несжимаемого теплоносителя для модуля теплогидравлики HS

Описание

В рамках модуля теплогидравлики HS возможно пополнение списка имеющихся теплоносителей двумя способами:
  • путем использования существующей DLL-библиотеки, описывающей сжимаемый или несжимаемый теплоноситель, в комбинации с таблицами теплофизических свойств;
  • путем создания и подключения собственной DLL-библиотеки.

Подключение теплоносителя путем заполнения таблиц с теплофизическими свойствами с использованием существующей DLL-библиотеки

  • Для газовых или сжимаемых теплоносителей необходимо заполнить 8 двумерных массивов, объединенных в таблицу. Каждый двумерный массив представляет собой зависимость соответствующего теплофизического свойства газа от давления и энтальпии.
  • Для жидкостных или несжимаемых теплоносителей необходимо заполнить 6 одномерных массивов, объединенных в таблицу. Каждый одномерный массив представляет собой зависимость соответствующего теплофизического свойства жидкости от энтальпии.

Шаблон для добавления сжимаемого теплоносителя (Рисунок 1) находится в директории SimInTech\bin\DataBase\HS\COOLANTS\шаблон_Двумерная таблица для газов.tbl. Шаблон состоит из 8 последовательно расположенных массивов для следующих теплофизических параметров сжимаемого теплоносителя:

  • температура, °C;
  • динамическая вязкость, Па·с;
  • плотность, кг/м³;
  • коэффициент теплопроводности, Вт/(м·K);
  • теплоемкость при постоянном давлении, Дж/(кг·K);
  • число Прандтля;
  • энтропия, Дж/кг;
  • теплоемкость при постоянном объеме, Дж/(кг·K).


Рис. 1. Шаблон таблицы свойств для сжимаемого теплоносителя

Все теплофизические свойства являются функциями давления [Па] и энтальпии [Дж/кг]. Причем давления откладываются по строкам таблицы, а энтальпии – по столбцам (Рисунок 2). Пользователь имеет возможность формировать таблицу, состоящую из неограниченного количества строк и столбцов.



Рис. 2. Задание аргументов для таблиц

Шаблон для добавления несжимаемого теплоносителя (Рисунок 3) находится в директории SimInTech\bin\DataBase\HS\COOLANTS\шаблон_Одномерная таблица для жидкостей.tbl. Шаблон состоит из 8 одномерных массивов для следующих теплофизических параметров несжимаемого теплоносителя:

  • удельная энтальпия, Дж/кг;
  • температура, °C;
  • плотность, кг/м³;
  • динамическая вязкость, Па·с;
  • коэффициент теплопроводности, Вт/(м·K);
  • теплоемкость при постоянном давлении, Дж/(кг·K);
  • производная плотности по энтальпии, (кг/м³)/(Дж/кг);
  • коэффициент сжимаемости, 1/Па.


Рис. 3. Шаблон таблицы свойств для несжимаемого теплоносителя

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

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

После заполнения таблиц со свойствами необходимо дать расчетному коду указание на добавление нового теплоносителя. Для этого следует поместить готовый файл в директорию SimInTech\bin\DataBase\HS\COOLANTS\air_lib\ в случае работы со сжимаемым теплоносителем или в директорию SimInTech\bin\DataBase\HS\COOLANTS\uncompressed_lib\ в случае работы с несжимаемым теплоносителем.

Таблицы для газов и жидкостей предназначены для считывания из них данных уже существующими DLL-библиотеками (в приведенном примере это air_lib.DLL и uncompressed_lib.DLL).

В результате выполнения вышеуказанных действий в перечне доступных теплоносителей кода HS появится новый элемент с указанным именем. Таким образом, в процессе моделирования расчетный код будет обращаться к динамической библиотеке air_lib.DLL (или uncompressed_lib.DLL), которая в свою очередь будет вычислять значения теплофизических свойств путем интерполяции по указанной таблице.

Стоит отметить, что в библиотеке uncompressed_lib.DLL по умолчанию имеются ограничения на минимальное и максимальное значения давления, которые составляют 1000 Па и 50 МПа соответственно.

Кроме теплофизических свойств для каждого теплоносителя должны использоваться свои замыкающие соотношения в виде зависимостей для расчета коэффициентов теплоотдачи и гидравлического сопротивления трения. Для добавленного теплоносителя будут применены замыкающие соотношения для воздуха в случае работы с air_lib.DLL или несжимаемой жидкости в случае работы с uncompressed_lib.DLL.

Подключение теплоносителя путем создания собственной DLL-библиотеки

Способ заключается в создании и подключении собственной DLL-библиотеки, описывающей теплоноситель, с использованием среды разработки IDE Embarcadero Delphi 10.2 Tokyo или новее.

Файлы с исходным кодом, определяющие теплоносители для модуля теплогидравлики HS, являются общедоступными и располагаются в директории SimInTech\Source\HS_Coolant_libs\.

Далее процесс разработки DLL-библиотеки теплоносителя будет разобран на примере библиотеки природного газа (NatGas_lib.DLL).

В среде разработки необходимо открыть проект SimInTech\Source\HS_Coolant_libs\NatGas_LIB\NatGas_lib.dproj. В модуле solv_object.pas находится исходный код, определяющий математику рассматриваемого теплоносителя.

В разделе Interface модуля solv_object.pas приведен перечень методов и полей класса TNatGas. Среди них основные методы, наследуемые от базового класса TBaseCoolant (описание базового класса приведено в модуле SimInTech\Source\Root\Cooler.pas) и необходимые для корректной работы библиотеки:

  • function _GetPropPH – стандартная функция, осуществляющая связь между вычисляемыми термодинамическими свойствами и расчетным кодом (aP – давление [Па]; aH – энтальпия [Дж/кг]; aVars – массив указателей на переменные расчетного кода, куда записываются вычисляемые величины; aWhat – массив типов вычисляемых свойств; aCount – число вычисляемых свойств; aCpt - массив концентраций примесей [кг/кг]);
  • function _GetPropPT – стандартная функция, осуществляющая связь между вычисляемыми термодинамическими свойствами и расчетным кодом (aP – давление [Па]; aT – температура [°C]; aX - относительная энтальпия (массовое паросодержание) [-]; aVars – массив указателей на переменные расчетного кода, куда записываются вычисляемые величины; aWhat – массив типов вычисляемых свойств; aCount – число вычисляемых свойств; aCpt - массив концентраций примесей [кг/кг]);
  • constructor Create – конструктор класса; в конструкторе могут быть переопределены используемые в расчетном коде поля базового класса Name, Pmin, Pmax, Hmin, Hmax, Tmin, Tmax, C_min, C_max, Re_min, Mm (описание указанных переменных приведено в базовом классе TBaseCoolant), а также вычислены вспомогательные переменные;
  • function EvalALFA – стандартная функция, осуществляющая вычисление коэффициента теплоотдачи;
  • function EvalKsi – стандартная функция, осуществляющая вычисление коэффициента гидравлического сопротивления трения;
  • function EvalALFAAnnular – стандартная функция, осуществляющая вычисление коэффициентов теплоотдачи при течении в кольцевом зазоре;
  • function EvalKsiAnnular – стандартная функция, осуществляющая вычисление коэффициента гидравлического сопротивления трения при течении в кольцевом зазоре.

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

Стоит отметить, что функции _GetPropPT, _GetPropPS, _GetPropHS не являются обязательными для реализации для корректной работы теплогидравлического кода.

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

После окончания разработки и успешной компиляции DLL-библиотеки в директорию SimInTech\bin\ необходимо внести данные о ней в файл SimInTech\bin\DataBase\HS\COOLANTS\user_coolant_libs.inc. В случае отсутствия данного файла следует создать новый текстовый файл с соответствующим именем в кодировке 'UTF-8 с BOM'. В вышеуказанный файл следует добавить новую строку, например:

Природный газ|NatGas_lib.dll

Реализация модели двухфазного теплоносителя - более сложная задача. В данном случае разрабатываемый класс должен наследоваться от базового класса TTwoPhaseCoolant, также описанного в SimInTech\Source\Root\Cooler.pas. C процессом разработки двухфазного теплоносителя можно ознакомиться на примерах библиотеки воды: SimInTech\Source\HS_Coolant_libs\VODA_LIB\ и двухфазного табличного теплоносителя: SimInTech\Source\HS_Coolant_libs\biphasic_LIB\.

C процессом разработки табличного теплоносителя можно ознакомиться на примере библиотеки воздуха: SimInTech\Source\HS_Coolant_libs\AIR_LIB\.