Сравнение и слияние моделей Simulink, содержащих Stateflow

В этом примере показано, как использовать отчет сравнения в MATLAB ®, чтобы понять, что изменилось между двумя различными проектами. Он показывает, как просмотреть и объединить изменения между двумя моделями Simulink ®, содержащими Stateflow ®, используя отчет сравнения. Для выполнения этого примера требуется лицензия Stateflow.

Сравнение моделей

Создайте рабочую копию файлов примера. MATLAB ® копирует файлы в папку примера, чтобы можно было их редактировать.

slcomparisons.examples.stateflowMerge;

Пользователь добавил новую kickdown режим на shift_logic. Можно использовать Simulink Model Comparison, чтобы сравнить две модели и создать отчет для исследования и объединения различий.

Использование visdiff для сравнения sl_sfcar_1 и sl_sfcar_2 модели.

visdiff('sl_sfcar_1','sl_sfcar_2');

Осмыслите результаты

Инструмент сравнения показывает отчет, который включает только различия между двумя моделями, а не полные иерархии модели.

Цвета указывают, были ли элементы изменены (фиолетовые), вставлены (синие) или удалены (желтые).

Шаговые различия

Используйте кнопки навигации Далее (Next) и Предыдущий (Previous) на вкладке Сравнение (Comparison), чтобы пройти по группам изменений в отчете:

  • Отчет проходит через изменения один за другим. Если выбранный элемент в левом дереве имеет совпадение, он также будет выбран в правом дереве.

  • MATLAB отображает обе модели рядом с отчетом. Отчет подсвечивает выбранные элементы в обеих моделях Simulink, если это возможно.

Выделите различия в моделях Simulink

Выберите узел дерева Out1 в дереве справа. Наблюдайте, как отчет подсвечивает Out1 в отчете и соответствующем блоке в модели sl_sfcar_2.

Чтобы управлять подсветкой в моделях, на вкладке Сравнение (Comparison), в разделе Подсветка (Highlight), установите или снимите флажок Всегда подсвечивать (Always Highlight). Вы можете нажать кнопку Подсветить сейчас (Highlight Now), чтобы подсветить текущий выбранный узел отчета в любое время.

Подсветите различия в диаграмме Stateflow

Просмотрите дерево, чтобы найти диаграммы Stateflow в отчете. Наблюдайте значок диаграммы Stateflow рядом со shift_logic узел. Нажмите kickdown в дереве справа. В отчете отображаются оба shift_logic Диаграммы Stateflow. Наблюдайте, где новый kickdown функциональность добавлена к одной из графиков.

Результаты фильтрации

Можно управлять типом изменений, отображаемых в отчете сравнения, применяя фильтры. Чтобы просмотреть доступные фильтры и их применение к текущему отчету, на вкладке «Сравнение», в разделе «Фильтр», щелкните стреле вниз, чтобы развернуть коллекцию фильтров. Щелкните имена фильтров, чтобы переключить их применение. В разделе «Фильтр» нажмите кнопку Показа или Скрыть, чтобы контролировать применение фильтров.

Для примера некоторая информация в файле модели Simulink определяется как нефункциональная. Это изменения, которые вряд ли изменят поведение проекта. Нефункциональные элементы по умолчанию скрыты. Чтобы отобразить их, снимите флажок «Нефункциональные изменения» при нажатии кнопки «Скрыть фильтр».

Объедините изменения в моделях, содержащих Stateflow

Можно объединить изменения между двумя моделями Simulink и Stateflow, нажав кнопку «Режим объединения» на панели инструментов. Это создает третий файл, targetFile, который может содержать изменения либо левой модели, либо правой модели. Используйте кнопки в дереве целей, чтобы выбрать различия, которая будет сохранена в targetFile.

Нажмите кнопку «Сохранить файл», чтобы сохранить изменения, выбранные вами над правой моделью (sl_sfcar_2).

Слияние советов

Необходимо объединить блоки перед линиями в части отчета Simulink. Необходимо объединить состояния и соединения перед объединением переходов, или отчет не может установить соединения.

Для получения информации об объединении моделей с идентичными именами смотрите Сравнение моделей с идентичными именами.

См. также

visdiff

Дополнительная информация

Сравнение моделей Simulink

Сравнение моделей с идентичными именами

Похожие примеры

Сравнение и объединение моделей Simulink

Разрешение конфликтов с помощью трехстороннего слияния Simulink