Интерполяция семейства изолиний





| Векторизован |
в палитре на схеме

Описание

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

Набор точек таблицы задается как набор одномерных зависимостей значений функции от второго аргумента интерполяции (изолиний) при постоянном значении первого аргумента (уровня). Количество изолиний определено размером массива значений уровня – каждому уровню должна соответствовать одна изолиния. Каждая изолиния задается в виде одномерной табличной зависимости значения функции от значения аргумента с помощью массива значений аргументов и массива значений функции.

Доступны следующие способы задания семейства изолиний:
  1. Через свойства блока
  2. Через JSON-файл

Задание семейства изолиний через свойства

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

Например, если рассматривается вычисление расхода насоса по известной частоте вращения и напору (перепаду давления), то:
  • Массив уровней будет содержать значения частот вращения насоса, для которых определены расходо-напорные характеристики насоса (изотахи).
  • Строки матрицы значений аргументов будут содержать значения напоров. Элемент матрицы значений аргументов с индексом [i, j] будет содержать значение напора в j-й точке расходно-напорной характеристики на i-й частоте вращения.
  • Строки матрицы значений функции будут содержать значения расходов. Элемент матрицы значений функции с индексом [i, j] будет содержать значение расхода, который соответствует значению напора в j-й точке расходно-напорной характеристики на i-й частоте вращения.

Задание семейства изолиний через JSON-файл

При задании семейства изолиний через JSON-файл в свойствах блока задается имя JSON-файла, в котором сохранены значения уровней, аргументов и функции. Значения уровней должны быть сохранены в виде массива в теге levels. Изолинии должны быть сохранены в виде матриц в тегах data_1, data_2 и т.д. Количество изолиний должно быть равно количеству элементов в массиве уровней. Индексы тегов указывают номера элементов массива уровней, которым соответствуют задаваемые изолинии. Все матрицы должны иметь 2 строки и одинаковое количество столбцов. В первой строке каждой матрицы должны быть сохранены значения аргументов изолинии, во второй строке – соответствующие значения функции.

Пример JSON-файла для семейства изолиний:
{
    levels: [1, 2, 3],
    data_1: [
      [1, 2, 3, 4],
      [10, 20, 30, 40]],
    data_2: [
      [2, 3, 4, 5],
      [11, 22, 33, 44]],
    data_3: [
      [3, 4, 5, 6],
      [15, 25, 35, 45]]
}
В данном случае характеристика имеет 3 значения уровня и, соответственно, содержит 3 изолинии. Каждая изолиния задана 4-мя точками. Первая изолиния определяет значение функции на сетке аргумента [1, 2, 3, 4], вторая – на сетке [2, 3, 4, 5], третья – на сетке [3, 4, 5, 6].

Методы интерполяции и экстраполяции

Доступны следующие методы интерполяции:
  1. Ступенчатая. Результат интерполяции зависит от значения свойства "Метод выбора точки":
    • Ближайшая. Результат интерполяции равен значению функции в ближайшем узле интерполяции
    • Ближайшая левая. Результат интерполяции равен значению функции в узле с ближайшими меньшими (включительно) значениями аргументов
    • Ближайшая правая. Результат интерполяции равен значению функции в узле с ближайшими большими (включительно) значениями аргументов
  2. Линейная. Для определения результата интерполяции через узлы интерполяции проводится кусочно-линейная функция. В интерполяционной сетке допускается наличие точек с одинаковыми значениями аргументов и различными значениями функции, чтобы задать в функции разрывы типа "скачок". Из двух точек с одинаковым значением аргумента первая будет задавать левый предел функции, вторая – правый
Доступны следующие методы определения результата интерполяции вне диапазона заданной таблицы:
  1. Ноль вне диапазона. Результат интерполяции вне диапазона равен 0
  2. Константа вне диапазона. Результат интерполяции вне диапазона равен значению функции на границе диапазона
  3. Экстраполировать границы. Результат интерполяции вне диапазона определяется путем продления интерполирующей функции за границы заданной таблицы
Блок позволяет определять результаты интерполяции в нескольких точках одновременно. Для этого необходимо подать на входные порты level и arg массивы значений уровня и аргумента соответственно. Данные массивы зададут массив точек для интерполяции табличной функции, на выходной порт val будет передан массив результатов интерполяции в заданных точках.

Входные порты

Имя Описание Тип линии связи
level Массив значений уровня, для которых необходимо вычислить результаты интерполяции Математическая
arg Массив значений аргумента, для которых необходимо вычислить результаты интерполяции Математическая

Выходные порты

Имя Описание Тип линии связи
val Массив результатов интерполяции в точках с заданными значениями уровня и аргумента Математическая

Свойства

Название Имя Описание По умолчанию Тип данных
Способ задания таблицы InputType

Указывает способ задания точек табличной функции. Возможные значения:

  • Через свойства блока
  • Через JSON-файл
Через свойства блока Перечисление
Метод интерполяции InterpolType

Указывает метод интерполяции. Возможные значения:

  • Ступенчатая
  • Линейная
Линейная Перечисление
Метод выбора точки StepInterpolType

Указывает метод выбора ближайшей точки для ступенчатой интерполяции. Возможные значения:

  • Ближайшая
  • Ближайшая левая
  • Ближайшая правая
Свойство доступно только при выборе метода интерполяции "Ступенчатая"
Ближайшая Перечисление
Метод экстраполяции ExtrapolType

Указывает метод экстраполяции. Возможные значения:

  • Ноль вне диапазона
  • Константа вне диапазона
  • Экстраполировать границы
Константа вне диапазона Перечисление
Массив значений уровня LevelsArr Массив значений уровня таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" [1 , 2] Массив
Матрица значений аргумента ArgsMatr Матрица значений аргументов таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" [[1 , 2 , 3];[4 , 5 , 6]] Матрица
Матрица значений функции ValsMatr Матрица значений таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" [[1 , 2 , 3];[4 , 5 , 6]] Матрица
Имя файла FileName Имя JSON-файла с таблично заданной функцией. Свойство доступно только при выборе способа задания таблицы "Через JSON-файл" File.json Имя файла

Параметры

Блок не имеет параметров.

Примеры

Примеры использования блока: