В этом примере показано, как сконфигурировать график 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 в переходном действии.
Не содержит событий, внутренних переходов, основанной на событиях временной логики или операторов обнаружения изменений.
После запуска модели область возможностей показывает графики положения и скорости. График положения показывает ожидаемый шаблон отскока.