Инструмент «Трансформатор модели» можно использовать для улучшения читаемости модели путем замены блоков «Память хранилища данных», «Чтение хранилища данных» и «Запись хранилища данных» либо прямой линией сигнала, либо блоком «Задержка», либо блоком «Слияние». Для сигналов шины инструмент может также добавлять блоки Bus Creator или Bus Selector как часть замены. Замена этих блоков улучшает читаемость модели, делая зависимость данных явной. Трансформатор модели создает модель с этими заменами. Новая модель имеет те же функциональные возможности, что и существующая модель.
Модельный трансформатор может заменить следующие хранилища данных:
Для сигналов, которые не являются шинами, если блок чтения хранилища данных выполняется перед блоком записи хранилища данных, инструмент заменяет эти блоки блоком задержки.
Для сигналов, которые не являются шинами, если блок записи хранилища данных выполняется перед блоком чтения хранилища данных, инструмент заменяет эти блоки прямым соединением.
Для сигналов шины, если запись в элементы шины выполняется перед считыванием шины, инструмент заменяет блоки чтения хранилища данных и записи хранилища данных прямым соединением и блоком создания шины.
Для сигналов шины, если запись на шину выполняется перед считыванием элементов шины, инструмент заменяет блоки чтения хранилища данных и записи хранилища данных прямым соединением и блоком выбора шины.
Для условно выполняемых подсистем инструмент заменяет блоки «Чтение хранилища данных» и «Запись хранилища данных» прямым соединением и блоком «Слияние». Для моделей, в которых пара чтения/записи пересекает границу подсистемы If и блок записи находится внутри подсистемы, инструмент может также добавить блок подсистемы Else.
Инструмент «Трансформатор модели» исключает только локальные хранилища данных, определяемые блоками памяти хранилища данных. Средство не устраняет глобальные хранилища данных. Для блока памяти хранилища данных на вкладке Атрибуты сигнала (Signal Attributes) в диалоговом окне Параметры блока (Block parameters) необходимо очистить имя хранилища данных, которое должно быть преобразовано в параметр объекта сигнала Simulink.
Модель ex_data_store_elimination содержит два локальных хранилища данных: B и A. Для хранения данных Bсуществует два блока чтения хранилища данных и один блок записи хранилища данных. Для хранения данных Aсуществует один блок записи хранилища данных и один блок чтения хранилища данных. Красные числа представляют сортированный порядок выполнения.

Определите блоки хранилища данных, которые могут быть заменены. Затем создайте модель, которая заменит эти блоки прямыми сигнальными линиями, блоками задержки или блоками объединения.
Открытие модели ex_data_store_elimination. В командной строке MATLAB ® введите:
addpath(fullfile(docroot,'toolbox','simulink','examples')) ex_data_store_elimination
Сохраните модель в рабочей папке.
На вкладке Приложения щелкните Модель (Model) Трансформатор (Transformer). Либо в командной строке MATLAB введите следующую команду:
mdltransformer('ex_data_store_elimination')В папке Преобразования установите флажок Исключить блоки хранилища данных.
В поле Префикс рефакторированной модели укажите префикс для рефакторированной модели.
Нажмите кнопку Выполнить эту проверку. Верхняя таблица результатов содержит гиперссылки на блоки памяти хранилища данных и соответствующие блоки чтения хранилища данных и записи хранилища данных, которые могут быть исключены.
Нажмите кнопку Модель рефактора (Refactor Model). Нижняя таблица Результат (Result) содержит гиперссылку на новую модель. Инструмент создает m2m_ex_data_store_replacement папка. Эта папка содержит gen_ex_data_store_replacement.slx модель.

Для локального хранилища данных A, gen_ex_bus_struct_in_code.slx содержит блок задержки вместо блока записи хранилища данных и прямое сигнальное соединение вместо блока чтения хранилища данных. Для локального хранилища данных B, gen_ex_bus_struct_in_code.slx содержит прямое сигнальное соединение от блока смещения к Out2.
Модельный трансформатор не заменяет блоки чтения и записи хранилища данных, которые удовлетворяют следующим условиям:
Они пересекают границы условно выполняемых подсистем, таких как Enabled, Triggered или Function-Call и Stateflow Charts.
Они не завершают взаимоисключающие ветви подсистем If-Action.
Они пересекают границы вариантов.
Они имеют несколько входов или выходов.
Они получают доступ к части массива.
Они исполняются по разным ставкам.
Они находятся внутри различных экземпляров библиотечных подсистем и имеют различный относительный порядок выполнения.