Аппроксимационная модель (ТГ)#

../../../../../_images/block-4e3bc523.png

Внешний вид блока запуска аппроксимационной модели#

Блок Аппроксимационная модель (ТГ) предназначен для использования в рамках библиотеки Теплогидравлика множества аппроксимационных моделей:

  1. Нейронных сетей, являющихся частью алгоритмов машинного обучения;

  2. Гауссовских процессов;

  3. Линейных и нелинейных регрессионных моделей.

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

Блок предназначен для вызова (Inference) аппроксимационной модели и обеспечения обмена данными в процессе моделирования с другими блоками библиотеки Теплогидравлика.

Блок Аппроксимационная модель (ТГ) обеспечивает загрузку модели из нейтрального формата ONNX.

Примечание

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

1.  Требования к аппроксимационной модели, взаимодействующей с блоками библиотеки теплогидравлики#

Важно

Основные требования к аппроксимационной модели представлены в описании аналогичного блока библиотеки Внешние модели.

1.1.  Требования к формулированию задачи на аппроксимацию#

Аппроксимационная модель должна описывать следующие физические процессы в моделируемой системе:

  1. Процесс движения жидкости;

  2. Процесс теплообмена.

Узел должен быть составным элементом аппроксимационной модели. Каждый узел \(i\) модели должен включать следующие параметры:

Потенциалы
  1. Давление \(\mathbf P_{i}\),

  2. Температура \(\mathbf T_{i}\).

Потоки
  1. Массовый расход \(\dot{\mathbf m_i}\),

  2. Поток энтальпии \(\mathbf H_i\).

В каждом узле \(i\) аппроксимационной модели должны вычисляться зависимости массового расхода \( \dot{\mathbf m_i}\) и потока энтальпии \(\mathbf H_i\) (1) от давления \(\mathbf P_{i}\) и температуры \(\mathbf T_{i}\).

(1)#\[\begin{split}\begin{aligned} \dot{\mathbf m_i} &= f(\mathbf P_{i}, \mathbf T_{i}) \\ \mathbf H_i &= g(\mathbf P_{i}, \mathbf T_{i}) \end{aligned}\end{split}\]

в зависимости (1) индекс \(i\) обозначает порядковый номер узла модели.

Аппроксимационная модель должна содержать хотя бы один узел с параметром давления \(\mathbf P_1\) и температуры \(\mathbf T_1\) и расчётными значениями массового расхода \( \dot{\mathbf m_1}\) и потока энтальпии \(\mathbf H_1\).

Правило знаков для расчёта расхода и потока энтальпии#

Положительное направление

Положительное направление массового расхода и потока энтальпии принято в узел аппроксимационной модели.

Отрицательное направление

Расход и поток энтальпии, направленные из узла модели, считаются отрицательными.

На схеме ниже изображено два узла аппроксимационной модели с положительным направлением расчётных значений массового расхода и потока энтальпии.

../../../../../_images/ml_model_2_nodes-09c3902b.png

Правило знаков расчёта массового расхода и потока энтальпии для аппроксимационной модели с двумя узлами.#

На схеме выше приняты следующие обозначения.

Обозначения

Описание

Синие круги

Узлы модели с параметрами температуры \(\mathbf T_i\) и давления \(\mathbf P_{i}\)

Оранжевые векторы

Положительные направления массового расхода \(\dot{\mathbf m_i}\) и потока энтальпии \(\mathbf H_i\) модели

Вариант расчёта потока энтальпии и массового расхода из одного узла в другой#

Аппроксимационная модель может содержать два узла, рассчитывая одно значение потока энтальпии \(\mathbf H\) и одно значение массового расхода \(\dot{\mathbf m}\), направленных от узла 1 к узлу 2 в соответствии с схемой, приведённой ниже.

../../../../../_images/pic_flow_through_2_nodes-fb0e2d8a.png

Расчёт потока энтальпии и массового расхода, направленных от узла 1 к узлу 2 аппроксимационной модели с двумя узлами.#

В приведённом выше случае поток энтальпии, направленный к узлу 2, равен \(\mathbf H\), а поток энтальпии узла 1 принимается \( - \mathbf H\). Массовый расход \(\dot{\mathbf m}\) определяется аналогично.

Вариант расчёта потока энтальпии и массового расхода в трёх узлах#

Аппроксимационная модель может содержать три и более узла, рассчитывая значения потоков энтальпии \(\mathbf H_i = g(\mathbf P_{i}, \mathbf T_{i})\) и массовых расходов \(\dot{\mathbf m_i} = f(\mathbf P_{i}, \mathbf T_{i})\) в каждом из узлов модели.

../../../../../_images/ml_model_3_nodes-3b971658.png

Расчёт потоков энтальпии и массовых расходов в трёх узлах аппроксимационной модели.#

1.2.  Требования к параметрам аппроксимационной модели#

Аппроксимационная модель, взаимодействующая с блоками библиотеки Теплогидравлика, должна:

  1. В качестве входных параметров принимать значения давлений (P₁,P₂,Pₙ на рисунке ниже) и температур (T₁,T₂,Tₙ) в узлах моделируемого элемента системы;

  2. В результате расчёта модель должна отдавать значения массовых расходов жидкости (m₁, m₂, mₙ на рисунке ниже) и потоков энтальпии (H₁, H₂, Hₙ) в каждом узле моделируемой системы.

flowchart LR inputs["P₁, T₁, P₂, T₂, ... , Pₙ, Tₙ"] model("Approximation model") outputs["m₁, H₁, m₂, H₂, ... , mₙ, Hₙ"] inputs --> model --> outputs

Исходные данные и результаты расчёта Аппроксимационной модели (ТГ)#

На рисунке выше используются следующие обозначения.

Обозначение

Размерность

Описание

P₁, … , Pₙ

Па

Исходные значения давлений в узлах аппроксимационной модели

T₁, … , Tₙ

\(^{\circ}C\)

Исходные значения температур аппроксимационной модели

m₁, … , mₙ

кг/с

Результаты расчёта массовых расходов жидкости

H₁, … , Hₙ

Вт

Результаты расчёта потоков энтальпии

Физические величины исходных данных и результатов расчётов аппроксимационной модели должны быть представлены в системе единиц СИ.

1.3.  Требования к дополнительному описанию модели#

Файл ML модели формата ONNX должен содержать дополнительное описание, позволяющее блоку Аппроксимационная модель (ТГ) однозначно сопоставить узлы модели с давлениями и температурами, а в результатах расчёта для каждого узла получить расход и поток энтальпии.

Подсказка

Для упрощения процесса подготовки дополнительного описания ML модели теплогидравлики на языке программирования Python воспользуйтесь модулем repeat_onnx, справка к которому приведена в разделе Инструменты взаимодействия с ML моделями на Python.

Требования к содержанию описания модели#

Дополнительное описание ML модели должно быть типа строка в формате JSON со следующими ключами.

Ключ - тип строка

Значение

Описание значения

Тип значения

"discipline"

"thermohydraulics"

Научное направление разработанной модели. Для блока Аппроксимационная модель (ТГ) данное значение должно быть "thermohydraulics" (теплогидравлика)

Строка

"nodes"

[  ]

Список узлов модели

Список

Каждый узел модели, входящий в список [  ] по ключу "nodes", должен обладать следующим описанием потенциалов и потоков.

Ключ - тип строка

Описание значения

"name"

Имя узла модели для отображения на портах блока Аппроксимационная модель (ТГ) с целью обеспечения корректной связи с другими блоками библиотеки Теплогидравлика

"pressure"

Имя входного параметра давления данного узла

"temperature"

Имя входного параметра температуры данного узла

"flowrate"

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

"enthalpy_flux"

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

Ниже приведено описание модели с одним узлом с именем "Output unit", в котором входными параметрами ML модели являются два потенциала: "pressure_1" и "temperature_1", - для давления и температуры соответственно. Выходными параметрами в узле модели являются два потока: "flowrate_1" и "enthalpy_flux_1" , - для расхода и потока энтальпии соответственно. Описание выполняется на языке программирования Python.

Пример описания модели с одним узлом#
 1import json
 2
 3
 4model_structure = {
 5  "discipline" : "thermohydraulics",
 6  "nodes" : [
 7    {
 8      "name" : "Output unit",
 9      "pressure" : "pressure_1",
10      "temperature" : "temperature_1",
11      "flowrate" : "flowrate_1",
12      "enthalpy_flux" : "enthalpy_flux_1" 
13    }
14  ]
15}
16model_structure_serialized = json.dumps(model_structure)

Требования к размещению дополнительного описания модели#

Дополнительное описание ML модели должно располагаться в структуре metadata_props по ключу "repeat_contract".

Ниже представлен пример, в котором для заранее подготовленной ML модели и сохранённой в нейтральный формат ONNX по пути path записывается дополнительное описание модели, необходимое для использования блоком Аппроксимационная модель (ТГ).

Пример записи дополнительного описания модели в ONNX#
1import onnx
2
3
4description = onnx.StringStringEntryProto()
5description.key = "repeat_contract"
6description.value = model_structure_serialized
7model = onnx.load(path)
8model.metadata_props.append(description)
9onnx.save(model, path)

2.  Свойства#

Нет

3.  Входы и выходы#

Параметры

вход/выход

Описание

Единицы измерения

Тип порта

Имена узлов модели

Вход

Список имён узлов формируется на основе информации об узлах модели из ONNX-файла

-

Теплогидравлика

Расходы

Выход

Список выходных портов формируется на основе информации о наборе выходных параметров (результатов вычислений) модели из ONNX-файла

кг/с

Автоматика

Потоки энтальпии

Выход

Список выходных портов формируется на основе информации о наборе выходных параметров (результатов вычислений) модели из ONNX-файла

Вт

Автоматика

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

Важно

Блок Датчик не поддерживает отображение результатов расчёта блока Аппроксимационная модель (ТГ).

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