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


Когда p < = 0, мяч ударяется о землю и прыгает. Можно смоделировать отскок, обновив положение и скорость мяча:
Обнулите положение p = 0.
Обнулите скорость до отрицательного значения непосредственно перед ударом мяча о землю.
Для расчета потерь энергии умножьте новую скорость на коэффициент распределения (-0,8).
В модели график BouncingBall реализует модальную логику, чтобы симулировать непрерывную динамику свободного падения и дискретных изменений, связанных с прыганием. В диалоговом окне Свойства графика (Chart properties) эти настройки позволяют графику 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.

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