Блок Prelookup позволяет вам минимизировать количество поисков по индексу, выполняемых через набор интерполяционных таблиц и также смешивать усечение, экстраполяцию и алгоритмы поиска по индексу в рамках одного табличного вычисления.
Эта модель использует Предварительный поиск и Интерполяцию Используя блоки Перед поиском. Отметьте, как блоки Перед поиском выполняют фрагмент поиска по индексу вычисления, и Интерполяция Используя блоки Перед поиском выполняют остальных:
Эти блоки могут быть найдены в библиотеке блоков Simulink® в подбиблиотеке Lookup Tables:
Использование блока PreLookup должно быть рассмотрено для таблиц с интенсивными поисками по индексу в наборах точки останова. Блоки Перед поиском позволяют вам выполнять поиск по индексу однажды и снова использовать результат во многом поиске по таблице. В этой модели 3 результата поиска по индексу используются в 5 блоках в в общей сложности 10 использовании. Эквивалентные регулярные интерполяционные таблицы, такие как пример направо потребовали бы 10 поисков по индексу вместо 3.
Один из блоков Интерполяции в этой модели сконфигурирован с помощью возможности: последующие измерения n-D таблицы могут быть отмечены как "размерности выбора", означая, что вход для той размерности является целым числом, используемым только, чтобы сделать подтабличный выбор, такой как выбор 2D плоскости из 3-D таблицы. Подтаблица затем обычно интерполируется.
Интерполяция подтаблиц может сохранить огромные объемы вычисления. Для каждой размерности, устраненной из интерполяции, вычисления почти половины. Поскольку N-мерная интерполяция берет (2^N)-1 отдельная операция интерполяции (y = ylow + f* (yhigh-ylow)), даже всего одна размерность выбора может почти удвоить скорость интерполяции. Экстремальный пример: 5-D таблица с 3 размерностями подтабличного выбора и 2D интерполяции: интерполяция 5-D взяла бы 2^5-1 = 31 интерполяция, но 2D интерполяция берет только 2^2 - 1 = 3.
Порты выбора поддерживают векторизацию, чтобы позволить, несколько подпредставляют выбор в виде таблицы / интерполяции в одном блоке.
Подтабличный или мультитабличный режим работы активируется путем установки положительного целого числа для Количества подтабличного параметра размерностей выборов в диалоговом окне параметра блока. Номер, который вы определяете, интерпретирован как количество размерностей, чтобы выбрать из самых высоких размерностей. Например, если вы имеете 3-D таблицу и выбираете 2, который означает, что первая размерность будет интерполирована, и размерности 2 и 3 будут выбраны:
ПРИМЕЧАНИЕ: можно удалить выделение из модели с помощью Представления / Удаляют пункт меню выделения или эту команду:
set_param(mdl,'HiliteAncestors','none')
Используя Предварительный поиск и Интерполяцию Используя Предварительный поиск блоки вводят потребность гарантировать, что длина 'Параметра' данных о точке останова в блоках Перед поиском совпадает с соответствующей размерностью 'Табличного параметра' данных в связанной Интерполяции Используя блоки Перед поиском. Simulink всегда проверяет непротиворечивость между двумя блоками при обновлении блок-схемы. Simulink сообщает об ошибках, если он сталкивается с противоречивой точкой останова и табличными данными. Например:
try evalc(['sim(', mdl, ')']); catch E disp(['Error:', E.message]); end
Error:The range of values for input port k2 of block '<a href="matlab:open_and_hilite_hyperlink ('sldemo_bpcheck/Interpolation on an 11x11 table ERROR IN DIM 2 ','error')">sldemo_bpcheck/Interpolation on an 11x11 table ERROR IN DIM 2 </a>' does not match the size of the corresponding table dimension of 11. Specify a different table dimension or modify the range of values for input port k2.