Можно использовать 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 страница с описанием для специфических особенностей синтаксиса и большего количества примеров.