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