Гибридные системы используют модальную логику для перехода из одного режима в другой в ответ на физические события и условия. В этих системах динамика непрерывного времени управляет каждым режимом. Простым примером такого типа гибридной системы является подпрыгивающий шар. Шар непрерывно движется по воздуху до тех пор, пока не ударится о землю, в этот момент происходит изменение режима или нарушение непрерывности. В результате мяч внезапно меняет направление и скорость. Дополнительные сведения см. в разделе Моделирование подпрыгивающего шара за непрерывное время.
Моделирование гибридных систем, реагирующих на непрерывные и дискретные изменения режима, путем настройки диаграмм Stateflow ® для непрерывного моделирования. В диаграмме Stateflow модальную логику можно представить лаконично и интуитивно в виде ряда состояний, переходов или блок-схем. Можно также представить информацию о состоянии как непрерывные локальные переменные с автоматическим доступом к производным времени.
Непрерывное моделирование поддерживается только в диаграммах Stateflow в моделях Simulink ®. Если непрерывная система не содержит модальной логики, рекомендуется использовать модель Simulink. Дополнительные сведения см. в разделе Моделирование непрерывной системы (Simulink).
Непрерывное обновление является свойством диаграммы Stateflow.
Щелкните правой кнопкой мыши внутри диаграммы и выберите в контекстном меню пункт «Свойства».
В диалоговом окне «Свойства диаграммы» установите в поле «Обновить метод» значение Continuous. При выборе этой опции:
Установлен флажок Включить обнаружение пересечения нуля.
Флажок Включить супершаговую семантику недоступен.

(Необязательно) По умолчанию включено обнаружение пересечения нулей. Чтобы отключить этот параметр, снимите флажок Включить обнаружение пересечения нуля. Дополнительные сведения см. в разделе Отключение обнаружения пересечения нулей.
Нажмите кнопку ОК.
Примечание
Нельзя использовать диаграммы Мура для непрерывного моделирования.
При непрерывном моделировании диаграмма Stateflow обновляет свой режим только в основных временных шагах. На вспомогательном временном шаге диаграмма вычисляет выходные данные на основе состояния диаграммы в течение последнего основного временного шага. Дополнительные сведения см. в разделе Время непрерывной выборки (Simulink).
При определении локальных непрерывных переменных диаграмма Stateflow предоставляет программный доступ к производным. Решатель Simulink вычисляет непрерывное состояние диаграммы на текущем шаге времени на основе значений этих переменных и их производных на предыдущем шаге времени. Дополнительные сведения см. в разделе Непрерывные и дискретные решатели (Simulink).
Чтобы определить, когда происходит переход состояния, диаграмма Stateflow регистрирует функцию пересечения нуля с помощью решателя Simulink. Когда Simulink обнаруживает изменение режима, решатель выполняет поиск с предыдущего основного шага времени, чтобы определить, когда произошел переход состояния. Дополнительные сведения см. в разделе Обнаружение пересечения нулей (Simulink).
Обнаружение пересечения нуля при переходах состояний может представлять собой компромисс между точностью и производительностью. При обнаружении нулевых пересечений модель Simulink точно моделирует изменения режима без чрезмерного уменьшения размера шага. Для систем, которые демонстрируют болтание или частые колебания между двумя режимами непрерывной работы, обнаружение пересечения нуля может потенциально повлиять на время моделирования. Для болтовни требуется модель Simulink для проверки переходов через ноль в быстрой последовательности, что может замедлить моделирование. В этих ситуациях можно:
Отключить обнаружение пересечения нулей.
Выберите другой алгоритм обнаружения пересечения нулей для диаграммы.
Измените параметры, управляющие частотой пересечения нулей в модели Simulink.
На панели Решатель (Solver) диалогового окна Параметры конфигурации модели (Model Configuration Parameters) можно выбрать один из различных алгоритмов обнаружения пересечения нуля. Дополнительные сведения см. в разделе Обнаружение пересечения нулей (Simulink).
Чтобы сохранить целостность и гладкость результатов непрерывного моделирования, ограничьте диаграммы ограниченным подмножеством семантики диаграммы Stateflow. Ограничивая семантику, входные данные не зависят от непредсказуемых факторов, таких как:
Количество второстепенных интервалов, используемых решателем Simulink на каждом основном шаге времени.
Количество итераций, необходимых для стабилизации алгоритмов интегрирования и пересечения нулей.
Минимизируя эти побочные эффекты, диаграмма Stateflow может поддерживать свое состояние на второстепенных временных шагах и обновлять свое состояние только на основных временных шагах. Следовательно, диаграмма Stateflow может вычислять выходные данные на основе постоянного состояния в течение непрерывного времени.
Во время непрерывного моделирования диаграмма обновляет свои выходные данные на второстепенных временных шагах, соответствующих during действия активного состояния. Диаграмма без состояний не выдает выходных данных. Чтобы имитировать поведение диаграммы без состояния в непрерывном времени, создайте единое состояние, которое вызывает графическую функцию в своей during действия.
entry, exitи действия переходаДля поддержания точности при непрерывном моделировании необходимо обновлять дискретные и непрерывные локальные данные только в течение основных временных шагов, соответствующих переходам состояний. При переходах состояний происходят только действия следующих типов:
Государство exit действия, которые происходят перед выходом из состояния в начале перехода.
Государство entry действия, которые происходят после входа в новое состояние в конце перехода.
Действия перехода, которые происходят во время перехода.
Действия условия для перехода, но только в том случае, если переход непосредственно достигает состояния. Например, эта диаграмма выполняет действие n++ даже когда условия c2 и c3 являются ложными. Поскольку переход состояния отсутствует, действие условия обновляется n на второстепенном временном шаге и приводит к ошибке.

Не записывать локальные непрерывные данные в состоянии during действия, поскольку эти действия выполняются во второстепенных временных шагах.
during ДействияВо второстепенных временных шагах диаграмма непрерывного времени выполняет только состояние during действия. Поскольку модели Simulink считывают производные непрерывного времени во время второстепенных временных шагов, вычислите производные в during действия для обеспечения наиболее актуального расчета.
during Действия или условия переходаВо второстепенных временных шагах возможно, что выходы и производные не отражают их самые текущие значения. Для обеспечения плавных выходных данных вычислите значения из локальных дискретных данных, локальных непрерывных данных и входных данных диаграммы.
during Действия или условия переходаНельзя вызывать функции Simulink во время второстепенных временных шагов. Вместо этого вызовите функции Simulink только в действиях, которые происходят во время основных временных шагов: entry или exit действия и переходные действия. Вызов функций Simulink в состоянии during действия или условия перехода приводят к ошибке во время моделирования. Дополнительные сведения см. в разделе Повторное использование компонентов Simulink в диаграммах Stateflow.
during ДействияЧтобы предотвратить изменение режима между основными временными шагами, условия, которые влияют на поток управления в during действия зависят от дискретных переменных. Дискретные переменные не изменяют значение между основными временными шагами.
Наличие входных событий приводит к тому, что диаграмма ведет себя как запускаемая подсистема и не может моделироваться в непрерывном режиме. Например, эта модель генерирует ошибку, если диаграмма использует метод непрерывного обновления.

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

Когда изменение режима происходит во время непрерывного моделирования, entry действие состояния назначения указывает модели Simulink, что произошел переход состояния. При внутреннем переходе диаграмма никогда не выполняет entry действия. Дополнительные сведения см. в разделе Внутренние переходы.
Не используйте временную логику на основе событий, так как в непрерывном моделировании отсутствует понятие галочки. Используйте только временную логику абсолютного времени для моделирования непрерывного времени. Дополнительные сведения см. в разделе Управление выполнением диаграммы с помощью временной логики.
Чтобы реализовать обнаружение изменений, Stateflow буферизирует переменные таким образом, чтобы это влияло на поведение диаграмм между второстепенным шагом времени и следующим основным шагом времени.
Изменение рабочей точки диаграммы непрерывного времени не поддерживается. При загрузке рабочей точки для диаграммы непрерывного времени невозможно изменить активность состояний или любые значения локальных или выходных данных диаграммы. Дополнительные сведения см. в разделе Правила использования операционной точки диаграммы.