Этот пример показывает, как смоделировать популярную игрушку под названием «колыбель Ньютона», которая состоит из ряда из семи одинаковых шаров, которые подвешены с общей высоты. В покое они устроены так, что просто касаются друг друга. Один или более шариков с одного конца затем поднимают из положения покоя и отпускают.
Интересным следствием упругих столкновений между шариками является то, что шарики, которые высвобождаются, как кажется, приходят к остановке, и равное количество шариков с другого конца высвобождается (с почти той же энергией, что и входящие шарики). Мячи посередине, похоже, не двигаются, хотя и отвечают за передачу импульса из одного конца в другой.
В этом примере используется простая модель упругого столкновения для описания взаимодействий между шарами. Диаграмма 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.

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

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

