Моделируйте реактивные системы в Stateflow

Идентифицируйте атрибуты системы

Прежде чем вы создадите Stateflow® стройте диаграмму в Simulink® модель, идентифицируйте свои атрибуты системы путем ответа на эти вопросы:

  1. Каковы ваши интерфейсы?

    1. Каковы событийные триггеры, на которые реагирует ваша система?

    2. Что входные параметры к вашей системе?

    3. Каковы выходные параметры от вашей системы?

  2. Ваша система имеет какие-либо рабочие режимы?

    1. Если ответ да, каковы рабочие режимы?

    2. Между которыми режимами можно перейти? Есть ли какие-либо рабочие режимы, которые запускаются параллельно?

    Если ваша система не имеет никаких рабочих режимов, системой является stateless. Если ваша система имеет рабочие режимы, системой является modal.

Выберите тип конечного автомата

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

  • Классика — тип машины по умолчанию. Обеспечивает полный набор семантики для графиков MATLAB и графиков C.

  • Мили — тип машины, в котором выход является функцией входных параметров и состояния.

  • Мур — Тип машины, в котором выход является функцией состояния.

Для получения дополнительной информации смотрите, Как Объекты Stateflow Взаимодействуют Во время Выполнения, Различий Между MATLAB и C как Синтаксис языка Действия и Обзор машин Мили и Мура.

Задайте условия перехода и состояния активности

После того, как вы создаете пустой график, отвечаете на следующие вопросы:

  1. Для каждого состояния, каковы действия, которые вы хотите выполнить?

  2. Каковы правила для перехода между вашими состояниями? Если ваш график не имеет никаких состояний, каковы правила для перехода между ветвями вашей логики потока?

Используя ваши ответы на те вопросы, задайте условия перехода и состояния активности:

  1. Чертите состояния, чтобы представлять ваши рабочие режимы, если таковые имеются. Смотрите Представляют Рабочие режимы при помощи состояний.

  2. Реализуйте состояния активности путем добавления меток состояния, которые используют соответствующий синтаксис. Смотрите состояния.

  3. Чертите переходы, чтобы представлять направление логики потока между состояниями или между ветвями вашей блок-схемы. Смотрите Переход Между Рабочими режимами.

  4. Реализуйте условия перехода путем добавления меток перехода, которые используют соответствующий синтаксис. Смотрите Переходы.

Задайте статические данные, чтобы сохранить переменные состояния

После добавления состояний активности и условий перехода к вашему графику, определите, требует ли график, чтобы какие-либо локальные или персистентные данные сохранили переменные состояния. Если так, выполните эти шаги:

  1. Добавьте локальные данные в соответствующий уровень иерархии графика. Смотрите Добавляют Данные Stateflow.

  2. Задайте тип, размер, сложность и другие свойства данных. Смотрите Свойства данных Набора.

Упростите состояния активности и условия перехода с вызовами функции

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

  • Блок-схема — Инкапсулирует блок-схемы, содержащие шаблоны if-then-else, switch-case, for, while, или do-while.

  • MATLAB Напишите ориентированные на матрицу алгоритмы; вызовите функции MATLAB для анализа данных и визуализации.

  • Simulink — Вызовите подсистемы вызова функций Simulink непосредственно, чтобы оптимизировать проект и улучшить удобочитаемость.

  • Таблица истинности — Представляет комбинационную логику для приложений принятия решений, таких как обнаружение отказа и переключение режимов.

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

Если четыре типа функций Stateflow не работают, можно записать собственный код C or C++ для интеграции с графиком. Для получения дополнительной информации об интегрировании пользовательского кода, см. Пользовательский код Повторного использования в диаграммах Stateflow.

Проверяйте, что ваше системное представление завершено

Ваша диаграмма Stateflow, полностью выражает логические или событийно-управляемые компоненты вашей системы?

  • Если ответ да, все сделано.

  • Если ответ не, можно создать отдельный график или добавить иерархию в текущую диаграмму.

    • Чтобы создать новый график, повторите все шаги в этом основном рабочем процессе.

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