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

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

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

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

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

    2. Каковы входы для вашей системы?

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

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

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

    2. Между какими режимами можно переходить? Существуют ли рабочие режимы, которые работают параллельно?

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

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

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

  • Classic - тип машины по умолчанию. Предоставляет полный набор семантики для графиков MATLAB и графиков С.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Для добавления данных к графику можно также использовать Мастер обозначений. См. раздел «Разрешение символов с помощью мастера создания символов».

  2. Укажите тип, размер, сложность и другие свойства данных. См. Раздел «Задание свойств данных»

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

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

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

  • MATLAB - Запись матрично-ориентированных алгоритмов; вызывать функции MATLAB для анализа и визуализации данных.

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

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

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

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

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

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

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

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

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

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