Создайте Графики потока при помощи Pattern Wizard

Pattern Wizard является утилитой, которая генерирует общие шаблоны графика потока для использования в графических функциях и графиках. Pattern Wizard предлагает несколько преимуществ по сравнению с созданием вручную графиков потока. Далее Pattern Wizard:

  • Генерирует общие логические и итеративные шаблоны цикла.

  • Способствует согласованности геометрии и размещения между шаблонами.

  • Облегчает хранение и повторное использование шаблонов из центрального местоположения.

  • Позволяет вставлять шаблоны в существующий график потока.

Этот Pattern Wizard генерирует графики потока, геометрия и размещение которого соответствуют рекомендациям Консультативного совета MathWorks (MAB). Можно настроить график потока путем изменения условий и действий или путем вставки дополнительных логических шаблонов. Можно также сохранить график потока как пользовательский шаблон в Pattern Wizard для последующего повторного использования.

Например, предположим, что необходимо использовать Pattern Wizard для создания графической функции для итерации по верхнему треугольнику двумерной матрицы. Функция состоит из двух вложенных for циклы, в которых индекс строки i всегда меньше или равен индексу столбца j. С помощью Pattern Wizard можно:

  1. Создайте график потока для внешнего контура, которая итерирует по индексу строки i. См. «Создание переиспользуемых Графиков потока».

  2. Расширьте график потока путем вставки внутреннего цикла, который итеризуется над индексом столбца j. См. «Вставка логических шаблонов в существующие Графики потока».

  3. Сохраните график потока как пользовательский шаблон в Pattern Wizard. См. «Сохранение пользовательских шаблонов Графика потока».

  4. Повторно используйте пользовательский шаблон в графической функции. См. «Повторное использование пользовательских шаблонов Графика потока».

Создайте переиспользуемые Графики потока

Чтобы создать график потока, на вкладке Modeling выберите шаблон из Pattern галереи. Выбор шаблона включает в себя:

  • If, If-Else, If-Elseif и другие вложенные шаблоны принятия решений.

  • For, While и DoWhile контура.

  • Шаблоны переключений с четырьмя случаями.

  • Пользовательские шаблоны, сохраненные для последующего повторного использования.

  • Шаблоны, которые вы задаете в MATLAB® .m файл.

Диалоговое окно Шаблон (Pattern) запрашивает условия и действия, характерные для выбранного шаблона. Для получения дополнительной информации о шаблонах графика потока смотрите Совместимые с MAB шаблоны из Pattern Wizard.

Например, чтобы создать внешнюю for цикл в шаблоне итератора верхнего треугольника:

  1. На вкладке Modeling выберите Pattern > For Loop.

  2. В диалоговом окне Pattern задайте инициализатор, тест цикла и выражения счета для итерации через первую размерность матрицы:

  3. Нажмите OK. Этот Pattern Wizard потока генерируется графиком.

Чтобы завершить шаблон итератора верхнего треугольника, вставьте второе for Цикл вдоль вертикального перехода в этом графике потока.

Вставка логических шаблонов в существующие Графики потока

Используйте Pattern Wizard для добавления циклов или расширений логики принятия решений к существующему графику потока. Выберите подходящий вертикальный переход и выберите шаблон из Pattern галереи. Опции включают в себя шаблоны принятия решений, циклов и switch. Диалоговое окно Шаблон (Pattern) запрашивает условия и действия, характерные для выбранного шаблона.

Для примера, чтобы добавить второй цикл в шаблон итератора верхнего треугольника:

  1. В Stateflow® Редактор, из внешнего for шаблон цикла, выберите вертикальный переход, обозначенный {action1}.

  2. На вкладке Modeling выберите Pattern > For Loop.

  3. В диалоговом окне Pattern задайте инициализатор, тест цикла и выражения счета для итерации через второе измерение матрицы. Выражение инициализатора гарантирует, что i никогда не превышает j. Также введите действие, которое извлекает каждый элемент в верхнем треугольнике матрицы.

  4. Нажмите OK. Этот Pattern Wizard добавляет второй контур к графику потока.

  5. Сохраните модель, содержащую шаблон.

Инструкции по вставке логических шаблонов

Когда вы создаете логические расширения:

  • Можно выбрать только один переход для удлинения за раз. Выбранный переход должен быть точно вертикальным и иметь целевое соединение.

  • Можно расширить только графики потока, созданную Pattern Wizard.

  • Диаграмма Stateflow, содержащая график потока, может содержать только соединения и переходы. График не может содержать другие объекты, такие как состояния, функции или таблицы истинности.

  • Вы не можете расширить шаблон, который был создан или изменен пользователем.

  • Вы не можете выбрать пользовательский шаблон в качестве расширения.

Если выбор не подходит для вставки, при выборе шаблона из коллекции Pattern появляется сообщение вместо опций шаблона.

СообщениеПроблема
Выберите вертикальный переходВертикальный переход не выбран.
Выбранный переход должен быть точно вертикальнымВы выбрали переход, но он не вертикальный.
Выберите только один вертикальный переходВы выбрали несколько переходов.
Редактор должен содержать только переходы и соединенияНа графике есть другие объекты, такие как состояния, функции или таблицы истинности.

Сохраните пользовательские шаблоны Графика потока

Используйте Pattern Wizard, чтобы сохранить шаблоны графиков в центральном местоположении, а затем легко извлечь их для повторного использования в графических функциях и графиках. Выберите график потока с шаблоном, который вы хотите сохранить и выберите Pattern > Save As Pattern.

Например, предположим, что вы хотите сохранить шаблон итератора верхнего треугольника для последующего повторного использования:

  1. Создайте папку для хранения пользовательских шаблонов. Смотрите инструкции по созданию пользовательской папки шаблона.

  2. В редакторе Stateflow выберите график потока итератора верхнего треугольника.

  3. На вкладке Modeling выберите Pattern > Save As Pattern.

  4. Если вы не определили пользовательскую папку шаблона, Pattern Wizard предложит вам выбрать папку. Выберите созданную папку и нажмите Select Folder. Можно также задать директорию по умолчанию, в котором сохранен Pattern Wizard с помощью sfpref функция при помощи 'PatternWizardCustomDir' как первый аргумент. Для получения дополнительной информации смотрите sfpref.

  5. В приглашении назовите свой шаблон UpperTriangleIterator и нажмите Save. Pattern Wizard сохраняет шаблон как файл модели UpperTriangleIterator.slx в пользовательской папке шаблона.

Примечание

Можно использовать Pattern Wizard, чтобы повторно использовать только графики потока. Чтобы повторно использовать состояния и субдиаграммы, создайте атомарную субдиаграмму. Для получения дополнительной информации смотрите Создание переиспользуемых подкомпонентов при помощи атомарных субдиаграмм.

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

Для сохранения и извлечения шаблонов Pattern Wizard потока графика использует одну плоскую папку.

  • Сохраните все графики потока на верхнем уровне пользовательской папки шаблона. Не создавать подпапки.

  • Убедитесь, что все файлы графика потока имеют .mdl или .slx расширение.

Изменение пользовательской папки шаблона

Этот Pattern Wizard запоминает выбор папки пользовательского шаблона для будущих сеансов. Чтобы выбрать другую папку, переименуйте существующую пользовательскую папку шаблона и выполните одно из следующих действий:

  • Сохраните новый пользовательский шаблон в Pattern Wizard.

  • Повторно используйте существующий пользовательский шаблон из Pattern Wizard.

Этот Pattern Wizard предлагает вам выбрать новую папку.

Повторно используйте пользовательские шаблоны Графика потока

Этот Pattern Wizard хранит ваши графики потока как файлы модели в пользовательской папке шаблона. Шаблоны, которые вы сохраняете в этой папке, появляются в раскрывающемся списке при выборе Pattern > Custom. Вы можете добавить пользовательский шаблон непосредственно к графику или к графической функции с подсхемами на графике.

Например, чтобы добавить пользовательский шаблон итератора верхнего треугольника к графической функции:

  1. Из палитры объектов добавьте на график графическую функцию, как описано в разделе «Задать графическую функцию».

  2. Введите эту сигнатуру функции:

    function y = ut_iterator(u, numrow, numcol)
    Функция принимает три входов.

    ВходОписание
    u2-D матрица
    numrowКоличество строк в матрице
    numcolКоличество столбцов в матрице

  3. Щелкните правой кнопкой мыши внутри функции и выберите Group & Subchart > Subchart. Функция появляется как непрозрачный прямоугольник.

  4. Дважды кликните функцию subcharted, чтобы открыть ее.

  5. Удалите график потока по умолчанию из графической функции.

  6. На вкладке Modeling выберите Pattern > Custom. Откроется диалоговое окно с перечнем всех шаблонов, сохраненных в папке пользовательского шаблона.

  7. Выберите шаблон итератора верхнего треугольника и нажатия кнопки OK. Этот Pattern Wizard добавляет ваш пользовательский шаблон к графической функции.

  8. В графической функции, вместо action1, замените соответствующее действие. Это действие повторяется один раз для каждой строки матрицы.

Шаблоны, совместимые с MAB из Pattern Wizard

Этот Pattern Wizard генерирует графики потока, геометрия и размещение которого соответствуют рекомендациям Консультативного совета MathWorks (MAB).

Шаблоны принятия решений

 Если

 If-Else

 Иф-Эльзеиф

 If-Elseif-Else

 If-Elseif-Elseif-Else

 Вложенный If

Шаблоны циклов

 Цикл For

 Цикл While

 Цикл DoWhile

Шаблоны коммутаторов

 Два случая

 Три случая

 Четыре случая

Похожие темы

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