Симуляция прыгающего мяча

В этом примере показано, как использовать два разных подхода к моделированию прыгающего мяча с помощью Simulink ®.

Обзор

Фигура 1: Мяч подбрасывается со скоростью 15 м/с с высоты 10 м.

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

$$
\frac{d v}{d t} = -g,
$$

$$
\frac{d x}{d t} = v,
$$

где$g$ - ускорение от силы тяжести,$x(t)$ - положение мяча и -$v(t)$ скорость. Поэтому система имеет два непрерывных состояния: положение и$x$ скорость.$v$

Аспект гибридной системы модели берёт начало от моделирования столкновения мяча с землей. Если предположить частично упругое столкновение с землей, то скорость до столкновения, $v^-$и скорость после столкновения, $v^+$могут быть связаны коэффициентом реституции мяча, $\kappa$следующим образом:

$$
v^+ = -\kappa v^-, \qquad x = 0
$$

Поэтому прыгающий мяч отображает переход в непрерывном состоянии (скорость) при переходном условии,.$x=0$

Прыгающий мяч является одной из самых простых моделей, которая показывает феномен Зено. Поведение Зенона неформально характеризуется бесконечным числом событий, происходящих в конечном временном интервале для определенных гибридных систем. Когда мяч теряет энергию в модели прыгающего мяча, большое количество столкновений с землей начинается с последовательно меньшими интервалами времени. Отсюда модель испытывает поведение Зенона. Модели с поведением Zeno по своей сути трудно моделировать на компьютере, но встречаются во многих распространенных и важных инженерных приложениях.

Использование двух блоков интегратора для моделирования прыгающего мяча

Откройте эту модель

Можно использовать два блока Интегратора, чтобы смоделировать прыгающий мяч. Интегратор слева является скоростью интегратором, моделируя первое уравнение, и Интегратор справа является интегратором положения. Перейдите к интегратору положения, блокируют диалоговое окно и замечают, что это имеет нижний предел нуля. Это условие представляет ограничение, что мяч не может опуститься ниже земли.

Порт состояния интегратора положения и соответствующий результат сравнения используются, чтобы обнаружить, когда мяч ударяется о землю, и сбросить оба интегратора. Порт состояния скоростного интегратора используется для вычисления.$v^+$

Чтобы наблюдать за поведением системы в Zeno, перейдите к Решателю панели диалогового окна Параметров конфигурации. В разделе Пересечения нулем' подтвердите, что 'Algorithm' установлен на 'Nonadaptive', и что симуляция 'время остановки' установлена на 25 секунд. Запустите симуляцию.

Заметьте, что ошибки симуляции как мяч поражают землю все более часто и теряют энергию. Следовательно, симуляция превышает предел по умолчанию 1000 для допустимого 'количества последовательных пересечений нуля'. Теперь перейдите в диалоговое окно Параметров конфигурации. В разделе Пересечения нулем' установите 'Алгоритм' на 'Адаптивный'. Этот алгоритм вводит сложное лечение такого поболтающего поведения. Поэтому теперь можно моделировать систему сверх 20 секунд. Обратите внимание, однако, на болтовню состояний от 21 секунды до 25 секунд и предупреждение от Simulink о сильном болтовне в модели около 20 секунд.

Использование блока интегратора второго порядка для моделирования прыгающего мяча

Откройте эту модель

Можно использовать один блок Second-Order Integrator, чтобы смоделировать эту систему. Второе уравнение$dx/dt=v$ является внутренним для блока Интегратора второго порядка в этом случае. Перейдите к диалоговому блоку Second-Order Integrator и заметьте, что, как и ранее,$x$ имеет нижний предел в нуле. Перейдите на вкладку Атрибуты (Attributes) в диалоговом окне блока и обратите внимание, что опция 'Reinitialize dx/dt когда x достигает насыщения' проверяется. Этот параметр позволяет нам повторно инициализировать ($dx/dt$в $v$модели прыгающего мяча) новое значение в момент$x$ достижения предела насыщения. Для модели прыгающего мяча эта опция поэтому подразумевает, что, когда мяч ударяется о землю, его скорость может быть установлена на другое значение, то есть на скорость после влияния. Заметьте цикл для вычисления скорости после столкновения с землей. Чтобы захватить скорость$v^-$ мяча непосредственно перед столкновением,$dx/dt$ используются выходы порт блока Integrator второго порядка и блок Памяти.$v^-$ затем используется, чтобы вычислить скорость отскока.$v^+$

Перейдите на панель Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters). Подтвердите, что 'Algorithm' установлено на 'Nonadaptive' в разделе 'Пересечению нулем опций, а simulation' Времени остановки 'установлено на 25 секунд. Симулируйте модель. Обратите внимание, что симуляция не столкнулась с проблемами. Вы смогли симулировать модель, не испытывая чрезмерной болтовни через t = 20 секунд и не задавая 'Algorithm' в 'Adaptive'.

Модель интегратора второго порядка является предпочтительным подходом к моделированию прыгающего мяча

Можно аналитически вычислить точное время$t^*$, когда мяч оседает на землю с нулевой скоростью, суммируя время, необходимое для каждого отскока. Это время является суммой бесконечного геометрического ряда, заданной:

$$
t^* = \frac{1}{g}\left(v_0+ v_1\left(\frac{1+\kappa}{1-\kappa}\right) \right),\qquad v_1=\sqrt{v_0^2+2gx_0}.
$$

Здесь$x_0$ и$v_0$ являются начальными условиями для положения и скорости соответственно. Скорость и положение мяча должны быть одинаково нулевыми для. $t&#62;t^*$На рисунке ниже результаты обеих симуляций построены около. $t^*$Вертикальная красная линия на графике предназначена для$t^*$ заданных параметров модели. Для и$t<t^*$ далеко, обе $t^*$модели дают точные и идентичные результаты. Следовательно, на графике видна только пурпурная линия из второй модели. Однако результаты симуляции из первой модели неточны после; он $t^*$продолжает отображать чрезмерное поведение трепета для. Напротив, $t&#62;t^*$вторая модель, использующая блок Интегратора второго порядка, устанавливается в точности равной нулю для.$t &#62; t^*$

Фигура 2: Сравнение результатов симуляции из двух подходов.

Рисунок 2 убедительно показывает, что вторая модель имеет превосходные числовые характеристики по сравнению с первой моделью. Причина более высокой точности, связанной с моделью Интегратора второго порядка, заключается в следующем. Второе дифференциальное уравнение$dx/dt=v$ является внутренним для блока Интегратора второго порядка. Поэтому алгоритмы блока могут использовать это известное соотношение между этими двумя состояниями и развертывать эвристику, чтобы зажать нежелательное поведение трепета для определенных обстоятельств. Эта эвристика становится активной, когда два состояния больше не взаимно согласуются друг с другом из-за ошибок интегрирования и поведения трепета. Таким образом, можно использовать физическое знание системы, чтобы облегчить проблему застревания симуляции в состоянии Зено для определенных классов моделей Зено.