Вы можете использовать tablelookup функции в equations раздел файла Simscape™ для интерполяции входных значений на основе набора точек данных в одномерной, двумерной или трехмерной таблице. Эта функциональность аналогична функциям блоков таблицы поиска Simulink ® и Simscape. Она позволяет включать табличное моделирование непосредственно в пользовательский блок без необходимости подключения внешнего блока таблицы подстановки к модели .
В следующем примере выполняется сопоставление температуры и давления с помощью одномерной таблицы поиска.
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 до 1000, и результирующим выходным сигналом.


См. раздел tablelookup справочная страница для описания синтаксиса и других примеров.