Повысьте эффективность своей симуляции модели при помощи инструмента Model Transformer, чтобы идентифицировать n-D блоки Интерполяционной таблицы, которые имеют право на преобразование и заменяющий их на блоки Интерполяции и совместно использованные блоки Перед поиском. Устранение избыточных блоков Перед поиском улучшает производительность симуляции для линейных интерполяций. Образцовый Преобразователь создает модель с этими заменяющими блоками. Эта новая модель имеет ту же функциональность как исходная модель.
Образцовый Преобразователь может заменить блоки Интерполяционной таблицы если:
Тот же источник управляет блоками Интерполяционной таблицы.
Блоки Интерполяционной таблицы совместно используют ту же спецификацию точки останова, значения и типы данных.
Блоки Интерполяционной таблицы совместно используют те же параметры алгоритма в диалоговом окне параметров блоков.
Блоки Интерполяционной таблицы совместно используют совпадающий тип данных для параметров частей в диалоговом окне параметров блоков.
Тип данных частей блока Lookup Table и точки останова является двойным, одним, int8, uint8, int16, uint16, int32, или uint32.
Инструмент Model Transformer работает, только если все блоки Интерполяционной таблицы совместно используют все предыдущие условия.
Модель mLutOptim
содержит три блока Интерполяционной таблицы: LUT1
, LUT2
и LUT3
. Блоки управляются из тех же входных источников In1
и In2
.
Идентифицируйте n-D блоки Интерполяционной таблицы, которые имеют право на преобразование и заменяют их на один разделяемый блок Prelookup и несколько блоков Интерполяции.
Откройте модель mLutOptim
. В командной строке MATLAB®, введите:
addpath(fullfile(docroot,'toolbox','simulink','examples'))mLutOptim
Сохраните модель в свою рабочую папку.
В Редакторе Simulink, из меню Analysis, выбирают Refactor Model > Model Transformer.
В папке Transformations выберите поиск по таблице Преобразования в проверку предварительного поиска и интерполяции.
Выберите опцию Skip Lookup Table (n-D) blocks in the libraries from this transformation, чтобы не заменять блоки Интерполяционной таблицы, которые соединяются с библиотекой.
В поле Prefix of refactored model задайте префикс для новой пересмотренной модели.
Нажмите кнопку Run This Check. Главная таблица Result содержит гиперссылки на блоки Интерполяционной таблицы и соответствующие индексы входного порта.
Очистите Candidate Groups, который вы не хотите преобразовывать.
Нажмите кнопку Refactor Model. Таблица Result содержит гиперссылку на новую модель. Таблица также содержит гиперссылки на разделяемый блок Prelookup и соответствующие блоки Интерполяции. Те блоки заменили исходные блоки Интерполяционной таблицы. Инструмент создает папку m2m_mLUTOptim
. Эта папка содержит новую модель gen_mLUTOptim.slx
.
Интерполяционная таблица блокирует LUT1
, LUT2
, и LUT3
gen_mLutOptim.slx
имеет два разделяемых блока таблицы Prelookup, LUT1_Prelookup_1
и LUT1_Prelookup_2
, один для каждого источника данных. Существует также три блока Интерполяции LUT1_InterpND
, LUT2_InterpND
и LUT3_InterpND
, которые заменяют блоки Интерполяционной таблицы.
Образцовый Преобразователь не может заменить блоки Интерполяционной таблицы если:
Блок Rate Transition управляет блоками Интерполяционной таблицы.
Блоки Интерполяционной таблицы являются прокомментированными областями и неактивными вариантами.
Блоки Интерполяционной таблицы маскируются.
Тип данных блока Output установлен в Inherit:Same as first input
.
Блок Lookup Table Interpolation method и Extrapolation method на панели Algorithm диалогового окна параметров блоков установлен в Cubic spline
.
Блоку Lookup Table Input settings на панели Algorithm диалогового окна параметров блоков выбрали Use one input port for all input data.
Блоку Lookup Table Code generation на панели Algorithm диалогового окна параметров блоков выбрали Support tunable table size in code generation.
Инструмент Model Transformer не заменяет блоки Интерполяционной таблицы через контуры Атомарных подсистем, Моделей, на которые Ссылаются и соединенных библиотекой блоков.