exponenta event banner

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

В этом примере показано, как использовать два разных подхода к моделированию подпрыгивающего шара с помощью 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$

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

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

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

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

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

Для наблюдения за поведением Zeno системы перейдите на панель Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters). В разделе «Параметры пересечения нуля» подтвердите, что для параметра «Algorithm» установлено значение «Nonadaptive», а для параметра моделирования «Stop time» установлено значение 25 секунд. Запустите моделирование.

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

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

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

Для моделирования этой системы можно использовать один блок интегратора второго порядка. В$dx/dt=v$ этом случае второе уравнение является внутренним для блока интегратора второго порядка. Перейдите в диалоговое окно «Блок интегратора второго порядка» и обратите внимание, что, как и ранее,$x$ нижний предел равен нулю. Перейдите на вкладку «Атрибуты» диалогового окна блока и обратите внимание, что установлен флажок «Повторно инициализировать dx/dt, когда x достигает насыщения». Этот параметр позволяет повторно инициализировать ($dx/dt$в $v$модели подпрыгивающего шара) новое значение в момент$x$ достижения предела насыщения. Поэтому для модели подпрыгивающего мяча эта опция подразумевает, что при ударе мяча о землю его скорость может быть установлена на другое значение, т.е. на скорость после удара. Обратите внимание на контур для вычисления скорости после столкновения с землей. Для захвата скорости$v^-$ мяча непосредственно перед столкновением$dx/dt$ используется выходной порт блока интегратора второго порядка и блока памяти.$v^-$ затем используется для вычисления скорости отскока.$v^+$

Перейдите на панель Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters). Убедитесь, что параметр «Algorithm» имеет значение «Nonadaptive» в разделе «Zero-crossing options», а параметр моделирования «Stop Time» имеет значение 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$ является внутренним для блока интегратора второго порядка. Следовательно, блочные алгоритмы могут использовать эту известную взаимосвязь между двумя состояниями и развернуть эвристику, чтобы ограничить нежелательное поведение болтовни для определенных условий. Эти эвристики становятся активными, когда два состояния больше не согласуются друг с другом из-за ошибок интегрирования и поведения болтовни. Таким образом, можно использовать физические знания системы, чтобы облегчить проблему застревания моделирования в зеноновом состоянии для определенных классов зеноновых моделей.