То В этом примере показано, как смоделировать популярную игрушку, вызвало "колыбель Ньютона", которая состоит из строки семи идентичных шаров, которые подвешиваются от общей высоты. В покое они располагаются таким образом, что они только касаются друг друга. Один или несколько шаров от одного конца затем повышены от их положения отдыха и выпущены.
Интересное последствие упругих соударений между шарами - то, что шары, которые выпущены, кажется, останавливаются, и равное количество шаров от другого конца выпущено (почти с той же энергией как входящие шары). Шары в середине, кажется, не перемещаются, несмотря на то, что они ответственны за передачу импульса от одного конца до другого.
Этот пример использует простую модель упругого соударения, чтобы описать взаимодействия между шарами. График Stateflow® использует локальные переменные, чтобы изобразить непрерывные состояния системы, а именно, положение p
и скорость v
. Обратите внимание на то, что обе этих локальные переменные заданы, чтобы иметь метод Обновления как continuous
. Это позволяет вам называть их производные p_dot
и v_dot
соответственно. Поскольку номинальные движущие силы всех шаров идентичны, векторные присвоения описывают их в массе как:
p_dot = v; v_dot = -g/l*sin(p);
Обратите внимание на то, что p_dot
и v_dot
не локальные переменные графика. Они автоматически создаются потому что p
и v
заданы, чтобы быть непрерывным.
Модель использует простой цикл for, чтобы обнаружить столкновения между шарами. В одномерной установке, график только столкновения моделей между последовательными шарами с одним циклом for.
Ответ на столкновение также выражается просто. Каждое столкновение обработано как совершенно эластичное мгновенное столкновение. Положением и скоростью обмениваются на каждый из шаров, вовлеченных в столкновение.
Симуляция этой модели создает Simulink® 3D Animation™, который показывает движение шаров. Дважды кликните на любом шаре, чтобы запустить симуляцию.