Этот пример показывает, как сконфигурировать график Stateflow®, который моделирует прыгающий мяч в непрерывное время. Шар перемещается постоянно через воздух, пока это не поражает землю, в которой точке происходит разрыв. В результате шар внезапно изменяет направление и скорость. Для получения дополнительной информации смотрите Непрерывно-разовое Моделирование в Stateflow.
Модель sf_bounce содержит график, который обновляет в непрерывно-разовом. Локальные переменные описывают динамику свободно падающего шара с точки зрения положения и скорости. Во время симуляции модель использует обнаружение пересечения нулем, чтобы определить, когда мяч попадает в землю.
Можно задать, как шар свободно подпадает под силу тяжести с точки зрения положения p и скорости v с этой системой дифференциальных уравнений первого порядка.


Когда p <= 0, мяч попадает в землю и возвраты. Можно смоделировать возврат путем обновления положения и скорости шара:
Сбросьте положение к p = 0.
Сбросьте скорость к отрицанию ее значения непосредственно перед тем, как мяч попал в землю.
Чтобы составлять энергетическую потерю, умножьте новую скорость на коэффициент распределения (-0.8).
В модели график BouncingBall реализует модальную логику, чтобы моделировать непрерывную динамику свободного падения и дискретных изменений, сопоставленных с возвратом. В диалоговом окне Свойств диаграммы эти настройки позволяют графику BouncingBall моделировать в непрерывное время:
Методом обновления является Continuous, таким образом, график использует непрерывно-разовую симуляцию, чтобы смоделировать динамику прыгающего мяча.
Включите обнаружение пересечения нулем, выбран так, решатель Simulink® может определить точно, когда мяч попадает в землю. В противном случае модель Simulink не может моделировать физику точно, и шар, кажется, убывает под землей.

График BouncingBall имеет две непрерывно-разовых переменные: p для положения и v для скорости. Для каждой из этих переменных:
Осциллографом является Local.
Типом является double.
Методом обновления является Continuous.
Чтобы представить непрерывное состояние графика к модели Simulink, график BouncingBall имеет две выходных переменные: p_out и v_out. Для каждой из этих переменных:
Осциллографом является Output.
Типом является double.
Методом обновления является Discrete.
График задает производную времени непрерывно-разовых переменных неявно:
p_dot является производной положения p. v_dot как производная скорости v.
В Model Explorer можно просмотреть непрерывно-разовые локальные переменные и соответствующие выходные параметры в графике. Неявные производные переменные не появляются в Model Explorer или в Окне Символов.

График BouncingBall состоит из одного Falling состояния, который численно решает дифференциальные уравнения для свободного падения. Переход по умолчанию в состояние устанавливает исходное положение на 10 м и начальную скорость к 15 м/с. Во время действий в состоянии:
Задайте производные положения и скорости.
Присвойте значения положения и скорость шара к выходным переменным p_out и v_out.

Состояние Falling имеет переход самоцикла, который моделирует разрыв возврата как мгновенное изменение режима, когда шар внезапно инвертирует направление. Условие на переходе определяет, когда мяч попадает в землю путем проверки ее положения p <= 0 и скорость v < 0. Если условие допустимо, действие условия сбрасывает положение и скорость, когда мяч попадает в землю.
Почему бы не проверять на p == 0?
Мяч попадает в землю, когда положение p является точно нулевым. Путем ослабления условия вы увеличиваете допуск, в котором решатель Simulink может обнаружить, когда положение изменяет знак. Для получения дополнительной информации смотрите Как работа Блоков с Обнаружением Пересечения нулем (Simulink).
Почему проверка на v < 0?
Вторая часть условия помогает поддержать эффективность решателя Simulink путем минимизации частоты нулевых пересечений. Без второй проверки условие остается верным после изменения состояния, приводящего к двум последовательным нулевым пересечениям.
График BouncingBall соответствует конструктивным требованиям, заданным в Инструкциях для Непрерывно-разовой Симуляции. В частности, график:
Инициализирует локальные переменные p и v на переходе по умолчанию.
Значения присвоений к производным p_dot и v_dot в во время действия.
Записи к локальным переменным p и v в действии перехода.
Не содержит события, внутренние переходы, основанную на событии временную логику, или изменяет операторы обнаружения.
После того, как вы запустите модель, осциллограф показывает графики положения и скорости. График положения показывает ожидаемый шаблон возврата.
