exponenta event banner

Моделирование подпрыгивающего шара за непрерывное время

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

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

Динамика подпрыгивающего шара

С помощью этой системы дифференциальных уравнений первого порядка можно указать, как шарик свободно попадает под силу тяжести в терминах положения p и скорости v.

$$ \dot{p} = v $$

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

Когда p < = 0, мяч попадает в землю и отскакивает. Вы можете смоделировать отскок, обновив положение и скорость мяча:

  • Сбросьте положение на p = 0.

  • Сбросьте скорость до отрицательного значения непосредственно перед ударом мяча о землю.

  • Для учета потерь энергии умножьте новую скорость на коэффициент распределения (-0,8).

Настройка диаграммы для непрерывного моделирования времени

В модели диаграмма BouningBall реализует модальную логику для моделирования непрерывной динамики свободного падения и дискретных изменений, связанных с отскоком. В диалоговом окне «Свойства диаграммы» эти параметры позволяют моделировать диаграмму BouningBall в непрерывном режиме:

  • Метод обновления: Continuous таким образом, диаграмма использует непрерывное моделирование для моделирования динамики подпрыгивающего мяча.

  • Включена функция обнаружения пересечения нулей, чтобы решатель Simulink ® мог точно определить, когда мяч попадает в землю. В противном случае модель Simulink не может точно моделировать физику, и мяч, по-видимому, опускается под землю.

Определение переменных непрерывного времени

Диаграмма BouningBall имеет две переменные непрерывного времени: p для положения и v для скорости. Для каждой из этих переменных:

  • Область действия: Local.

  • Тип: double.

  • Метод обновления: Continuous.

Чтобы показать непрерывное состояние диаграммы модели Simulink, диаграмма BouningBall имеет две выходные переменные: p_out и v_out. Для каждой из этих переменных:

  • Область действия: Output.

  • Тип: double.

  • Метод обновления: Discrete.

Диаграмма определяет производную по времени переменных непрерывного времени неявно:

  • p_dot - производная положения p.

  • v_dot как производная скорости v.

В обозревателе моделей можно просматривать локальные переменные непрерывного времени и соответствующие выходные данные в диаграмме. Неявные производные переменные не отображаются в обозревателе моделей или на панели Символы (Symbols).

Модель непрерывной динамики свободного падения

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

  • Определите производные положения и скорости.

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

Модель дискретных эффектов отскока

Falling состояние имеет переход с петлей, который моделирует прерывистость отскока как мгновенное изменение режима, когда шар внезапно меняет направление. Условие перехода определяет, когда мяч ударяется о землю, проверяя его положение p <= 0 и скорость v < 0. Если условие является действительным, действие условия сбрасывает положение и скорость при ударе мяча о землю.

Почему бы не проверить p == 0?

Мяч попадает в землю при положении p равно ровно нулю. Ослабляя условие, вы увеличиваете допуск, в пределах которого решатель Simulink может обнаруживать, когда позиция меняет знак.

Зачем проверять v < 0?

Вторая часть условия помогает поддерживать эффективность решателя Simulink, минимизируя частоту пересечений нуля. Без второй проверки условие остается верным после перехода состояния, что приводит к двум последовательным пересечениям нуля.

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

Диаграмма BouningBall соответствует требованиям к конструкции, определенным в Руководстве по непрерывному моделированию времени. В частности, диаграмма:

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

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

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

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

Просмотр результатов моделирования

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

Связанные темы