Осуществите рефакторинг модели с приложением Clone Detector и инструментом преобразователя модели

С Simulink® Check™ можно использовать инструмент Model Transformer и приложение Clone Detector, чтобы осуществить рефакторинг модель, улучшить компонентизацию модели и удобочитаемость и компоненты повторного использования в модели.

Идентифицируйте и замените клоны на ссылки на библиотечные блоки

Можно использовать приложение Clone Detector, чтобы найти клоны компонентов и идентифицировать возможности снова использовать их. С Clone Detector вы можете:

  • Идентифицируйте клоны подсистемы.

  • Создайте библиотечные блоки из клонов.

  • Создайте модель, которая заменяет клоны на ссылки на библиотечные блоки.

Использовать Clone Detector:

  1. Откройте модель ex_clone_detection в качестве примера.

    addpath(fullfile(docroot,'toolbox','simulink','examples'))
    ex_clone_detection
    
  2. Сохраните модель в текущую папку на пути MATLAB.

  3. На вкладке Apps нажмите Clone Detector. Открыть приложение Clone Detector программно, в типе командной строки MATLAB: clonedetection('ex_clone_detection').

  4. На вкладке Clone Detector нажмите View и выберите Help, Results и Properties.

  5. Нажмите Find Clones.

    Модель содержит три группы клонов. Одна группа содержит точные клоны. Точные клоны подсвечены в розовом. Другие две группы содержат подобные клоны. Эти группы подсвечены в синем. Более темные оттенки синего цвета указывают, что клоны в тех группах более подобны, чем клоны в группах с более легкими оттенками синего цвета.

  6. В панели Clone Detection Actions and Results, во вкладке Map Clone Groups to Library, для параметра Library to place clones, задают библиотеку. Если вы задаете новое имя библиотеки, приложение создает библиотеку.

  7. Во вкладке Clone Detector нажмите Replace Clones.

  8. Пересмотренная модель содержит ссылки на библиотечные блоки в newLibraryFile.slx файл.

После того, как вы осуществите рефакторинг, можно удалить последние изменения из модели. В панели Clone Detection Actions and Results, во вкладке Logs, открывают последний журнал и нажимают Restore.

Каждый раз, когда вы осуществляете рефакторинг модель, приложение создает резервную модель в папке, названной с префиксным m2m_ плюс имя модели. Если у вас есть лицензия Simulink Test, можно проверить эквивалентность пересмотренной модели и исходной модели. Нажмите Check Equivalency.

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

Чтобы улучшить компонентизацию модели, заменяя квалифицирующий моделирование шаблонов с Variant Source и блоками Variant Subsystem, используйте инструмент Model Transformer.

ex_variants_transformer модель содержит несколько шаблонов моделирования, которые имеют право на преобразование в различные блоки.

  1. Откройте модель ex_variants_transformer в качестве примера путем ввода этих команд в командной строке MATLAB:

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

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

  3. На вкладке Apps откройте инструмент Model Transformer путем выбора Model Transformer. Или в Командном окне введите:

    mdltransformer(‘ex_variants_transformer’)

  4. Нажмите Transform model to variant system.

  5. Нажмите Run This Check. В разделе Analysis таблица Result содержит список системных констант, которые квалифицируют, чтобы быть частью выражений условия в Различном Источнике или Различных блоках Subsystem.

  6. Нажмите Refactor Model.

  7. Ваша рабочая папка содержит папку под названием m2m_ex_variants_transformer. Эта папка содержит преобразованную модель gen0_ex_variants_transformer.

  8. В разделе Action таблица Results содержит гиперссылки на исходные и преобразованные модели.

Eliminate data store blocks позволяет вам заменять хранилища данных на блоки, которые улучшают удобочитаемость модели путем создания зависимости по данным явной. Для примера смотрите, Улучшают Удобочитаемость Модели путем Устранения Локальных Блоков Хранилища данных.

Проверка Transform table lookup into prelookup and interpolation позволяет вам заменять блоки Интерполяционной таблицы в один разделяемый блок Prelookup и несколько блоков Интерполяции. Для примера смотрите, Повышают Эффективность Симуляции путем Оптимизации Операции Перед поиском Блоков Интерполяционной таблицы.

Похожие темы