Задачи трансформатора модели

Используйте приложение Трансформатора Модели, чтобы осуществить рефакторинг модель, чтобы реализовать варианты, устранить имеющие право блоки хранилища данных и улучшить симуляцию и КПД кода операций поиска по таблице. Можно выполнить шаги в Трансформаторе Модели целиком или один шаг за один раз.

Преобразования

Можно использовать приложение Трансформатора Модели, чтобы заменить:

  • Квалификация моделирования шаблонов с различными блоками.

  • Хранилище данных блокируется с блоками, которые делают зависимость по данным явной

  • Интерполяционная таблица блокируется с Интерполяцией с помощью блоков Перед поиском

  • Моделирование шаблонов с несколькими Интерполяцией с помощью Предварительного поиска блокируется в одну Интерполяцию с помощью блока Prelookup

Если вы хотите выполнить все преобразования для каждого шага, задайте входные параметры. Затем нажмите кнопку Run Selected Checks. После того, как вы осуществляете каждую проверку, создаете новые модели с преобразованиями путем нажатия кнопок Refactor Model.

Если вы хотите выполнить одно преобразование за один раз, можно индивидуально выбрать проверки.

Замените Шаблоны моделирования на различные блоки

Нажмите кнопку Transform model to variant system, чтобы идентифицировать системные константы, чтобы использовать в различных преобразованиях и блоках, которые имеют право на преобразование в блоки Variant Source или Variant Subsystem. Эти преобразования возможны:

  • Если блок If соединяется с одним или несколькими блоками If Action Subsystem, и каждый блок If Action Subsystem имеет один выходной порт, замените этот шаблон моделирования на подсистему и блок Variant Source.

  • Если блок If соединяется с блоком If Action Subsystem, который не имеет никакого выходного порта или двух или больше выходных портов, замените этот шаблон моделирования на блок Variant Subsystem.

  • Если блок Switch Case соединяется с одним или несколькими блоками Switch Case Action Subsystem, и каждый блок Switch Case Action Subsystem имеет один выходной порт, замените этот шаблон моделирования на блок подсистемы и блок Variant Source.

  • Если блок Switch Case соединяется с блоком Switch Case Action Subsystem, который не имеет никакого выходного порта или двух или больше выходных портов, замените этот шаблон моделирования на блок Variant Subsystem.

  • Замените блок Switch на блок Variant Source.

  • Замените блок Multiport Switch, который имеет два или больше порта данных с блоком Variant Source.

Примечание

Для некоторых шаблонов моделирования и настроек, Трансформатор Модели не может выполнить каждое из предыдущих преобразований.

system constant является входом управления или частью арифметического выражения, которое формирует вход управления к Multiport Switch или блокам Switch и входные параметры с блокам Switch Case или If. Необходимо использовать блоки Константа и комбинацию блоков, которые формируют поддерживаемое выражение MATLAB как вход управления этих блоков. В блоке Константа параметр Constant value является системными константами. В преобразованной модели системные константы являются частью выражений условия в блоках Variant Subsystem или Variant Source.

После того, как вы запустите это преобразование, таблица Result показывает каждый шаблон моделирования с гиперссылкой на соответствующее местоположение в модели. Если вы не хотите, чтобы Трансформатор Модели выполнил преобразование, снимите флажок рядом с шаблоном.

Нажмите Refactor Model, чтобы создать модель, которая содержит преобразования. Приложение создает преобразованную модель в папке с именем m2m_<original model name>.

Для примера, который преобразует блоки в модели с различным блоком, см. Модель Преобразования к Вариантной системе.

Устраните блоки хранилища данных

Выберите Eliminate data store blocks, чтобы идентифицировать Data Store Memory, Data Store Read и блоки Data Store Write, которые имеют право на устранение. Нажмите кнопку Refactor Model , чтобы создать модель, которая заменяет эти блоки или на прямую сигнальную линию, блок Delay или на блок Merge.

Заменение этих блоков улучшает удобочитаемость модели путем создания зависимости по данным явной. Трансформатор Модели может заменить эти хранилища данных:

  • Для сигналов, которые не являются шинами, если блок Data Store Read выполняется перед блоком Data Store Write, приложение заменяет эти блоки на блок Delay.

  • Для сигналов, которые не являются шинами, если блок Data Store Write выполняется перед блоком Data Store Read, приложение заменяет эти блоки на прямую связь.

  • Для сигналов шины, если запись, чтобы соединить шиной элементы выполняется перед чтением шины, приложение заменяет Data Store Read и блоки Data Store Write с прямой связью и блок Bus Creator.

  • Для сигналов шины, если запись к шине выполняется перед чтением элементов шины, приложение заменяет Data Store Read и блоки Data Store Write с прямой связью и блок Bus Selector.

  • Для условно выполняемых подсистем приложение заменяет Data Store Read и блоки Data Store Write с прямой связью и блок Merge.

Приложение Трансформатора Модели только устраняет локальные хранилища данных, которые задают блоки Data Store Memory. Приложение не устраняет хранилища глобальных данных. Для блока Data Store Memory, на вкладке Signal Attributes диалогового окна Block Parameters, должен быть очищен параметр Data store name must resolve to Simulink signal object.

После того, как вы запускаете это преобразование, гиперссылки отображений таблицы Result на соответствующий Data Store Memory, Data Store Read и блоки Data Store Write. Если вы не хотите, чтобы Трансформатор Модели выполнил преобразование, снимите флажок рядом с блоком Data Store Memory.

Нажмите Refactor Model, чтобы создать модель, которая содержит преобразования. Приложение создает преобразованную модель в папке с именем m2m_<original model name>.

Для примера, который заменяет блоки Хранилища данных в модели, смотрите Блоки Хранилища данных Замены.

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

Выберите Transform table lookup into prelookup and interpolation, чтобы идентифицировать блоки n-D Lookup Table, чтобы преобразовать в разделяемые блоки Prelookup и Интерполяцию Используя блоки Перед поиском. Устранение избыточных блоков Перед поиском в модели улучшает скорость симуляции для линейной интерполяции.

Трансформатор Модели идентифицирует, где несколько n-D Интерполяционных таблиц блокируются:

  • Используйте тот же входной сигнал для блоков Lookup Table

  • Имейте ту же спецификацию точки останова, значения и типы данных

  • Имейте те же параметры алгоритма в диалоговом окне параметров блоков

  • Имейте совпадающий тип данных для дробных параметров

После того, как вы запустите это преобразование, таблица Result показывает идентифицированные блоки, их параметры алгоритма, и модель, библиотеки и модели, на которые ссылаются. Выберите блоки, которые вы хотите преобразовать, затем нажать Run This Check.

Для примера о преобразовании смотрите, Повышают Эффективность Симуляции путем Оптимизации Операции Перед поиском Блоков Интерполяционной таблицы. Для получения дополнительной информации о n-D блоках Интерполяционной таблицы, смотрите n-D Lookup Table.

Замените интерполяцию Используя блоки перед поиском

Выберите Common source interpolation transform, чтобы идентифицировать несколько блоков Interpolation Using Prelookup, которые имеют право на преобразование с одним блоком Interpolation Using Prelookup. Устранение избыточных блоков Interpolation Using Prelookup повышает эффективность кода модели.

Трансформатор Модели идентифицирует, когда модель содержит несколько Interpolation Using Prelookup что:

  • Соедините те же входные сигналы с блоками Перед поиском с тем же индексом и дробными параметрами

  • Соедините выходные сигналы с тем же блоком switch

  • Имейте ту же спецификацию точки останова, значения и типы данных

  • Имейте те же параметры алгоритма

  • Имейте совпадающий тип данных для дробных параметров

Приложение Трансформатора Модели работает, если свойства блоков Interpolation Using Prelookup - то же самое за исключением Table data.

После того, как вы запустите это преобразование, таблица Result показывает идентифицированные блоки, их параметры алгоритма, и модель, библиотеки и модели, на которые ссылаются. Выберите блоки, которые вы хотите преобразовать, затем нажать Run This Check.

Для примера о преобразовании смотрите, Повышают Эффективность Кода путем Слияния Нескольких Интерполяции Используя Блоки Перед поиском. Для получения дополнительной информации об Интерполяции Используя блоки Перед поиском, смотрите Используя Блоки Предварительного поиска и Интерполяции.