Смоделируйте прыгающий мяч в непрерывное время

В этом примере показано, как сконфигурировать график Stateflow®, который симулирует прыгающий мяч в непрерывное время. Мяч перемещается постоянно через воздух, пока это не ударяется о землю, в которой точке происходит разрыв. В результате мяч внезапно изменяет направление и скорость. Для получения дополнительной информации смотрите, что Непрерывное время Моделирует в Stateflow.

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

Динамика прыгающего мяча

Можно задать, как мяч свободно подпадает под силу тяжести в терминах положения p и скорости v с этой системой дифференциальных уравнений первого порядка:

$$ \dot{p} = v $$

$$ \dot{v} = -9.81 $$

Когда 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 м/с during действия в состоянии:

  • Задайте производные положения и скорости

  • Присвойте значения положения и скорость мяча к выходным переменным p_out и v_out

Дискретные эффекты модели возврата

Falling состояние имеет переход самоцикла, который моделирует разрыв возврата как мгновенное изменение режима, когда мяч внезапно инвертирует направление. Условие на переходе вызывает оператор обнаружения ребра falling. Этот оператор определяет, когда мяч ударяется о землю путем обнаружения, когда положение пересекает порог нуля и становится отрицательным. Если условие допустимо, действие условия сбрасывает положение и скорость, когда мяч ударяется о землю.

Подтвердите семантику графика

График BouncingBall соответствует конструктивным требованиям, заданным в Инструкциях для Симуляции Непрерывного времени. В частности, график:

  • Инициализирует локальные переменные p и v на переходе по умолчанию

  • Значения присвоений к производным p_dot и v_dot в during действие

  • Записи к локальным переменным p и v в действии перехода

  • Не содержит события, внутренние переходы, основанную на событии временную логику, или изменяет операторы обнаружения

Просмотрите результаты симуляции

После того, как вы запускаете модель, блоковые графы Осциллографа положение и скорость мяча. График положения показывает ожидаемый шаблон возврата.

Похожие темы