Повысьте эффективность симуляции путем оптимизации операции перед поиском блоков интерполяционной таблицы

Повысьте эффективность своей симуляции модели при помощи инструмента Model Transformer, чтобы идентифицировать блоки n-D Lookup Table, которые имеют право на преобразование и заменяющий их на блоки Interpolation и совместно использовали блоки Prelookup. Устранение избыточных блоков Prelookup улучшает скорость симуляции для линейных интерполяций. Преобразователь Модели создает модель с этими заменяющими блоками. Эта новая модель имеет ту же функциональность как исходная модель.

Преобразователь Модели может заменить блоки Lookup Table, которые отвечают следующим условиям:

  • Тот же источник управляет блоками Lookup Table.

  • Блоки Lookup Table совместно используют ту же спецификацию точки останова, значения и типы данных.

  • Блоки Lookup Table совместно используют те же параметры алгоритма в диалоговом окне параметров блоков.

  • Блоки Lookup Table совместно используют совпадающий тип данных для параметров частей в диалоговом окне параметров блоков.

  • Тип данных частей блока Lookup Table и точки останова является двойным, одним, int8, uint8, int16, uint16, int32, или uint32.

Модель в качестве примера

Модель mLutOptim содержит три блока Lookup Table: LUT1, LUT2 и LUT3. Блоки управляются из тех же входных источников In1 и In2.

Объедините операцию перед поиском

Идентифицируйте блоки n-D Lookup Table, которые имеют право на преобразование и заменяют их на один разделяемый блок Prelookup и блоки multiple Interpolation.

  1. Откройте модель mLutOptim. В командной строке MATLAB®, введите:

    addpath(fullfile(docroot,'toolbox','simulink','examples'))mLutOptim

  2. Сохраните модель в свою рабочую папку.

  3. В Редакторе Simulink, в меню Analysis, выбирают Refactor Model > Model Transformer.

  4. В папке Transformations выберите поиск по таблице Преобразования в проверку предварительного поиска и интерполяции.

  5. Выберите опцию Skip Lookup Table (n-D) blocks in the libraries from this transformation, чтобы не заменять блоки Lookup Table, которые соединяются с библиотекой.

  6. В поле Prefix of refactored model задайте префикс для новой пересмотренной модели.

  7. Нажмите кнопку Run This Check. Главная таблица Result содержит гиперссылки на блоки Lookup Table и соответствующие индексы входного порта.

  8. Очистите Candidate Groups, который вы не хотите преобразовывать.

  9. Нажмите кнопку Refactor Model. Таблица Result содержит гиперссылку на новую модель. Таблица также содержит гиперссылки на разделяемый блок Prelookup и соответствующие блоки Interpolation. Те блоки заменили исходные блоки Lookup Table. Инструмент создает m2m_mLUTOptim папка. Эта папка содержит новый gen_mLUTOptim.slx модель.

Lookup Table блокирует LUT1, LUT2, и LUT3 из gen_mLutOptim.slx имейте два разделяемых блока Prelookup table, LUT1_Prelookup_1 и LUT1_Prelookup_2, один для каждого источника данных. Существует также три блока Interpolation LUT1_InterpND, LUT2_InterpND, и LUT3_InterpND та замена блоки Lookup Table.

Условия и ограничения

Преобразователь Модели не может заменить блоки Lookup Table если:

  • Блок Rate Transition управляет блоками Lookup Table.

  • Блоки Lookup Table являются прокомментированными областями и неактивными вариантами.

  • Блоки Lookup Table маскируются.

  • Тип данных блока 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 не заменяет блоки Lookup Table через контуры Атомарных подсистем, Моделей, на которые Ссылаются и соединенных библиотекой блоков.

Похожие темы