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

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

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

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

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

  • Входной порт точки прерывания Lookup Tables соединяется с тем же входным источником.

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

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

Пример модели

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

Операция предварительного объединения

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

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

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

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

  3. На вкладке Apps нажмите Model Transformer.

  4. В папке Transformations выберите поиск таблицы Transform в предварительную настройку и проверку интерполяции.

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

Похожие темы