Графики Stateflow® проходят несколько этапов выполнения:
Этап | Описание |
---|---|
Неактивный | График не имеет никаких активных состояний |
Активный | График имеет активные состояния |
Сон | График имеет активные состояния, но никакие события к процессу |
Когда модель Simulink® сначала инициировала диаграмму Stateflow, график неактивен и не имеет никаких активных состояний. После того, как график выполняет и полностью обрабатывает свое начальное триггерное событие из модели Simulink, он возвращает управление к модели и засыпает. В следующем триггерном событии Simulink график изменяется от сна до активного этапа.
Когда график неактивен и первый инициированный событием из модели Simulink, он сначала выполняет свой набор блок-схем по умолчанию (см. Порядок Выполнения для набора Блок-схем). Если это действие не вызывает запись в состояние, и график имеет параллельное разложение, то каждое параллельное состояние становится активным (см., Вводят График или состояние).
Если выполнение путей к потоку по умолчанию не вызывает запись состояния, ошибка несоответствия состояния происходит.
После того, как график был инициирован в первый раз моделью Simulink, это - активный график. Когда график получает другое событие от модели, это выполняется снова как активный график. Если график не имеет никаких состояний, каждое выполнение эквивалентно инициализации графика. В противном случае активные подсостояния выполняются. Параллельные состояния выполняются в том же порядке, что они становятся активными.
По умолчанию, в первый раз, когда график просыпается, он выполняет пути к переходу по умолчанию. В это время график может получить доступ к входным параметрам, записать в выходные параметры и широковещательно передать события.
Если вы хотите, чтобы ваш график начал выполняться от известной настройки, можно включить свойство диаграммы Execute (enter) Chart At Initialization. Когда вы включаете эту опцию, настройка состояния графика инициализирует во время 0 вместо первого вхождения входного события. Пути к переходу по умолчанию графика выполняются во время фазы инициализации модели во время 0, соответствуя mdlInitializeConditions () фаза для S-функций. Для получения дополнительной информации смотрите, Выполняются (вводят) график при инициализации.
Примечание
Если выход этого графика подключения к блоку SimEvents®, не устанавливайте этот флажок. Узнать больше об использовании диаграмм Stateflow и SimEvents блокируется вместе в модели, см. документацию SimEvents.
Из-за переходного характера фазы инициализации, не выполняйте определенные действия в путях к переходу по умолчанию графика — и действия записи ассоциированной страны — которые выполняются при инициализации. Следуйте этим инструкциям:
Не получайте доступ к входным данным графика, потому что блоки, соединенные с входными портами графика еще, не могут инициализировать свои выходные параметры.
Не вызывайте экспортируемые графические функции из других графиков, потому что те графики еще не могут инициализировать.
Не широковещательно передавайте выходные события вызова функции, потому что триггируемые подсистемы еще не могут инициализировать.
Можно управлять уровнем диагностического действия для недопустимого доступа, чтобы строить диаграмму входных данных в Diagnostics> панель Stateflow диалогового окна Configuration Parameters. Для получения дополнительной информации см. документацию для Недопустимого доступа к входным данным в диагностике инициализации графика.
Выполнитесь при инициализации, проигнорирован в диаграммах Stateflow, которые не содержат состояния.