Моделирование колыбели Ньютона с виртуальной реальностью

Этот пример показывает, как смоделировать популярную игрушку под названием «колыбель Ньютона», которая состоит из строки из семи одинаковых мячей, которые подвешены с общей высоты. В покое они устроены так, что просто касаются друг друга. Затем один или несколько мячи с одного конца поднимают из их положения покоя и отпускают.

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

Этот пример использует простую модель упругого столкновения, чтобы описать взаимодействия между мячами. График Stateflow ® использует локальные переменные, чтобы изобразить непрерывные состояния системы, а именно положение p и скорость v. Обратите внимание, что обе эти локальные переменные имеют метод Update как continuous, так что вы можете ссылаться на их производные как p_dot и v_dot соответственно. Поскольку номинальная динамика всех мячей идентична, этот пример использует эти векторные назначения, чтобы представлять движение всех мячей:

p_dot = v;
v_dot = -g/l*sin(p);

Обратите внимание, что p_dot и v_dot не являются локальными переменными графика. Они создаются автоматически из-за p и v определяются как непрерывные.

Модель использует простой цикл for-loop, чтобы обнаружить столкновения между мячами. В одномерной настройке график моделирует только столкновения между последовательными мячами с одним циклом for.

Реакция на столкновение также выражается просто. Каждое столкновение рассматривается как идеально упругое мгновенное столкновение. Положение и скорость обмениваются для каждого из мячей, участвующих в столкновении.

Симуляция этой модели создает 3D Simulink ® Animation™ который показывает движение мячей. Дважды кликните любой мяч, чтобы начать симуляцию.

Похожие темы