Добавление пользовательского теплоносителя
Описание процесса добавления нового сжимаемого или несжимаемого теплоносителя для модуля теплогидравлики HS
Описание
- путем использования существующей DLL-библиотеки, описывающей сжимаемый или несжимаемый теплоноситель, в комбинации с таблицами теплофизических свойств;
- путем создания и подключения собственной DLL-библиотеки.
Подключение теплоносителя путем заполнения таблиц с теплофизическими свойствами с использованием существующей DLL-библиотеки
- Для газовых или сжимаемых теплоносителей необходимо заполнить 8 двумерных массивов, объединенных в таблицу. Каждый двумерный массив представляет собой зависимость соответствующего теплофизического свойства газа от давления и энтальпии.
- Для жидкостных или несжимаемых теплоносителей необходимо заполнить 6 одномерных массивов, объединенных в таблицу. Каждый одномерный массив представляет собой зависимость соответствующего теплофизического свойства жидкости от энтальпии.
Шаблон для добавления сжимаемого теплоносителя (Рисунок 1) находится в директории SimInTech\bin\DataBase\HS\COOLANTS\шаблон_Двумерная таблица для газов.tbl. Шаблон состоит из 8 последовательно расположенных массивов для следующих теплофизических параметров сжимаемого теплоносителя:
- температура, °C;
- динамическая вязкость, Па·с;
- плотность, кг/м³;
- коэффициент теплопроводности, Вт/(м·K);
- теплоемкость при постоянном давлении, Дж/(кг·K);
- число Прандтля;
- энтропия, Дж/кг;
- теплоемкость при постоянном объеме, Дж/(кг·K).

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

Шаблон для добавления несжимаемого теплоносителя (Рисунок 3) находится в директории SimInTech\bin\DataBase\HS\COOLANTS\шаблон_Одномерная таблица для жидкостей.tbl. Шаблон состоит из 8 одномерных массивов для следующих теплофизических параметров несжимаемого теплоносителя:
- удельная энтальпия, Дж/кг;
- температура, °C;
- плотность, кг/м³;
- динамическая вязкость, Па·с;
- коэффициент теплопроводности, Вт/(м·K);
- теплоемкость при постоянном давлении, Дж/(кг·K);
- производная плотности по энтальпии, (кг/м³)/(Дж/кг);
- коэффициент сжимаемости, 1/Па.

Все теплофизические свойства являются функциями энтальпии [Дж/кг]. Причем энтальпии откладываются по строкам таблицы. Пользователь имеет возможность формировать таблицу, состоящую из неограниченного количества строк.
Выбранный шаблон необходимо сохранить под другим именем и приступить к его редактированию. Редактирование шаблона можно выполнять как в текстовом редакторе, так и при помощи встроенной в 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\.