Улучшите удобочитаемость модели путем устранения локальных блоков хранилища данных

Можно использовать инструмент Model Transformer, чтобы улучшить удобочитаемость модели, заменяя Память Хранилища данных, Чтение Хранилища данных и блоки Записи Хранилища данных или с прямой сигнальной линией, блоком Delay или с блоком Merge. Для сигналов шины инструмент может также добавить блоки Селектора Создателя или Шины Шины как часть замены. Заменение этих блоков улучшает удобочитаемость модели путем создания зависимости по данным явной. Образцовый Преобразователь создает модель с этими заменами. Новая модель имеет ту же функциональность как существующая модель.

Образцовый Преобразователь может заменить эти хранилища данных:

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

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

  • Для сигналов шины, если запись, чтобы соединить шиной элементы выполняется перед чтением шины, инструмент заменяет блоки Записи Чтения и Хранилища данных Хранилища данных на прямую связь и блок Bus Creator.

  • Для сигналов шины, если запись к шине выполняется перед чтением элементов шины, инструмент заменяет блоки Записи Чтения и Хранилища данных Хранилища данных на прямую связь и блок Селектора Шины.

  • Для условно выполняемых подсистем инструмент заменяет блоки Записи Чтения и Хранилища данных Хранилища данных на прямую связь и блок Merge. Для моделей, в которых пара чтения-записи пересекается, Если контур подсистемы и блок Write в подсистеме, инструмент Еще может также добавить блок подсистемы.

Инструмент Model Transformer устраняет только локальные хранилища данных, которые задают Блоки памяти Хранилища данных. Инструмент не устраняет хранилища глобальных данных. Для Блока памяти Хранилища данных, на вкладке Signal Attributes в диалоговом окне параметров блоков, необходимо очистить параметр Data store name must resolve to Simulink signal object.

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

Модель ex_data_store_elimination содержит два локальных хранилища данных: B и A. Для хранилища данных B существует два блока Чтения Хранилища данных и один блок Data Store Write. Для хранилища данных A существует один блок Data Store Write и один блок Data Store Read. Красные числа представляют отсортированный порядок выполнения.

Замените блоки хранилища данных

Идентифицируйте блоки хранилища данных, которые имеют право на замену. Затем создайте модель, которая заменяет эти блоки на прямые сигнальные линии, блоки Задержки или блоки Слияния.

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

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

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

  3. В Редакторе Simulink, из меню Analysis, выбирают Refactor Model > Model Transformer. Чтобы открыть Образцовый Преобразователь программно, в подсказке команды MATLAB, вводят эту команду: mdltransformer('ex_data_store_replacement').

  4. В папке Transformations выберите проверку Eliminate data store blocks.

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

  6. Нажмите кнопку Run This Check. Главная таблица Result содержит гиперссылки на Блоки памяти Хранилища данных и соответствующие блоки Записи Чтения и Хранилища данных Хранилища данных, которые имеют право на устранение.

  7. Нажмите кнопку Refactor Model. Нижняя таблица Result содержит гиперссылку на новую модель. Инструмент создает папку m2m_ex_data_store_replacement. Эта папка содержит модель gen_ex_data_store_replacement.slx.

Для локального хранилища данных A gen_ex_bus_struct_in_code.slx содержит блок Delay вместо блока Data Store Write и прямую связь сигнала вместо блока Data Store Read. Для локального хранилища данных B gen_ex_bus_struct_in_code.slx содержит прямую связь сигнала от блока Bias до Out2.

Ограничения

Образцовый Преобразователь не заменяет блоки Чтения и Записи Хранилища данных, которые удовлетворяют этим условиям:

  • Они пересекают контуры условно выполняемых подсистем такой как Enabled, Инициированные, или Подсистемы вызова функций и диаграммы Stateflow.

  • Они не завершают взаимоисключающие ответвления подсистем Если-действия.

  • Они пересекают контуры вариантов.

  • У них есть больше чем один ввод или вывод.

  • Они получают доступ к части массива.

  • Они выполняются на различных уровнях.

  • Они - внутренние различные экземпляры подсистем библиотеки и имеют различный относительный порядок выполнения.

Похожие темы