Используя интерполяционные таблицы в уравнениях

Можно использовать tablelookup функция в equations раздел файла Simscape™, чтобы интерполировать входные значения на основе набора точек данных в одномерной, двумерной, или 3D таблице. Эта функциональность похожа на тот из Simulink® и блоки Интерполяционной таблицы Simscape. Это позволяет вам включать табличное моделирование непосредственно в ваш пользовательский блок без потребности соединения внешнего блока Lookup Table к вашей модели.

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

component TtoP
 inputs
   u = {0, 'K'}; % temperature
 end
 outputs
   y = {0, 'Pa'}; % pressure
 end
 parameters (Size=variable)
   xd = {[100 200 300 400] 'K'};
   yd = {[1e5 2e5 3e5 4e5] 'Pa'};
 end
 equations
   y == tablelookup(xd, yd, u, interpolation=linear, extrapolation=nearest);
 end
end

xd и yd объявляются как параметры переменного размера с модулями. Это позволяет пользователям блока обеспечить свои собственные наборы данных, когда компонент преобразован в пользовательский блок, и также выбрать соразмерные модули из выпадающих списков в диалоговом окне пользовательского блока. Следующий рисунок показывает диалоговое окно пользовательского блока, сгенерированного от этого компонента.

Примечание

В настоящее время вы не можете использовать параметры переменного размера в equations разделите за пределами tablelookup функция.

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

Следующие правила применяются к одномерным массивам xd и yd:

  • Эти два массива должны быть одного размера.

  • Для сплайн-интерполяции каждый массив должен содержать по крайней мере три значения. Для линейной интерполяции два значения достаточны.

  • xd значения должны быть строго монотонными, или увеличение или уменьшение.

Компонент TtoP использует линейную интерполяцию для значений в табличной области значений, но выводит самое близкое значение yd для входных значений из области значений. Следующий рисунок показывает блок-схему, где пользовательский блок TtoP используется с линейным входным сигналом, изменяющимся от 0 до 1 000, и получившийся выход.

Смотрите tablelookup страница с описанием для специфических особенностей синтаксиса и большего количества примеров.

Похожие темы