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

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

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

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:

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

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

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

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

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте