В этот раз на примере петлевого маятника - интересной и красивой механической задачи из предстоящего в 2018 году Турнира Юных физиков я покажу, как можно решать сложные, не имеющие аналитического решения задачи с помощью компьютера. У меня уже есть один пост, посвященный задачке Турнира Юных Физиков. Сейчас всё будет интереснее, ведь мы не просто получим решение, но ещё и смоделируем его на компьютере!
Думаю, что и этот пост будет не последним по этой теме и разборы некоторых механических задач будут традиционно появляться здесь.
Суть задачи следующая: если соединить легкий и тяжёлый грузы ниткой и перекинуть ее через горизонтальный стержень, опустив вниз лёгкий груз и подняв вверх тяжёлый, то после отпускания лёгкий груз начнёт наматывать нитку на стержень, вращаясь вокруг него по спирали. Таким образом нитка намотается и большой груз остановится:
_
Connect two loads, one heavy and one light, with a string
over a horizontal rod and lift up the heavy load by pulling
down the light one. Release the light load and it will sweep
around the rod, keeping the heavy load from falling to the
ground. Investigate this phenomenon.
_
Описание движения системы
Рассмотрим динамику данной системы:
На маленький груз, так-же как и на большой, действует сила натяжения и сила тяжести. При этом, естественно, силы натяжения на грузы различны, так как между верёвкой и блоком есть трение. Найти связь между и достаточно просто. Рассмотрим небольшой участок стержня:
При скольжении сила трения на небольшой кусочек нити будет . Сила реакции опоры
При малых углах . То есть
Вторым членом мы можем пренебречь, так как он второго порядка малости.
Считаем нить невесомой, так что сумма сил, действующих на рассматриваемый нами кусочек, равна нулю:
Отсюда приходим к выражению
при интегрировании которого получаем формулу Эйлера:
Отлично, ведь одна из подзадач решена! С помощью результата (1) можно качественно объяснить, почему маленький груз так просто останавливает большой. Так же нужно объяснить, почему он будет вращаться по спирали. Это достаточно просто и станет понятно немного позже.
Теперь рассмотрим динамику маленького и большого грузов более подробно:
Для большого груза запишем второй закон Ньютона:
Найти силу натяжения достаточно просто: нужно только заметить, что маленький груз вращается по окружности относительно точки касания нити со стержнем. Это значит, что в проекции на саму нить сумма сил должна обеспечивать центростремительное ускорение :
Отсюда
Где
Закон изменения угла можно найти, записав 2 закон Ньютона для вращательного движения:
Где - момент инерции и в нашем случае , а сумма из правой части - это общий момент сил относительно выделенной точки.
В итоге, получаем следующую формулу (вращение относительно точки контакта нити со стержнем):
Как изменяются координаты большого груза и угол мы поняли. Осталось только найти закон изменения , который получается из условия нерастяжимости нити. Допустим, что длинна нити равна , тогда , где - это расстояние от большого груза до точки касания. В дифференциальном виде:
Мы получили, что изменение угла и приводит к изменению расстояния от маленького грузика до точки контакта нитки со стержнем. В свою очередь это приводит к увеличению угловой скорости из-за закона сохранения момента импульса, который в нашем случае равен . То есть при уменьшении угловая скорость малого груза будет сильно расти (). Это и приводит к закручиванию груза.
В принципе это всё, что нужно для численного моделирования.
мы знаем из (2), а находим численным интегрированием (4). И об этом я не поленюсь рассказать немного поподробнее.
Математическое отступление
Допустим, что угловая скорость , а угловое ускорение .
Для угла мы имеем уравнение второго порядка (4), а значит и начальных условий должно быть два. Но почему? Первое, что нам необходимо знать - это начальная угловая скорость , так как
Нужно найти константу . При интеграл в (6) равен нулю, а угловая скорость равна начальной. То есть
Теперь зная можно найти и угол, но тогда появляется второе необходимое начальное условие - это сам угол :
При угол
Всё бы ничего, но решить (6) и уж тем более (7) не всегда получится. И наш случай как раз такой. Это значит, что мы не сможем таким способом получить точное решение. Но можно решать (6) и (7) численно. Как это делается и зачем для этого нужен компьютер?
Численное интегрирование
Теперь понятно, что для определённости системы, не зависимо от способа решения (6) и (7), обязательно нужно два условия - и . Допустим, что угол . Начальную угловую скорость разумно задать нулевой (в этом случае мы просто отпускаем грузик, не толкая его). Теперь мы можем вычислить угловое ускорение с помощью (4). Угловое ускорение будет постоянно меняться, но если взять маленький промежуток времени ( много меньше времени эксперимента), то в этом промежутке можно считать постоянной величиной, а значит изменение угловой скорости можно будет легко найти, ведь выносится из интеграла (6) как константа. После вычисления новой угловой скорости можно вычислить новый угол, опять же считая, что с хорошей точностью не меняется в промежутке времени . После пересчёта всех необходимых параметров алгоритм повторяется.
Так, step-by-step, компьютер производит расчёт. Программа останавливается, например, когда становится меньше миллиметра. Я нарисовал алгоритм работы программы для лучшего понимания:
Ну и наконец - результат работы алгоритма:
А вот что будет, если уменьшать радиус стержня. Видно, что количество “завитушек” увеличивается. При этом расстояние между ними будет одинаково и равно (Когда нить уже не проскальзывает)





