Отчет проекта "Маятник"

Участники проекта:
Подоляко Федор,
Заболотский Андрей,
Петухов Матвей,
Фанасков Роман,
Кешелава Тимур.

Руководители проекта:
Березин Андрей Всеволодович
Лысов Иван Дмитриевич.

Наш проект был направлен на решение замысловатых физических задач, преимущественно с колебательным движением. В первый рабочий день мы составили список задач, из которого каждый мог выбрать задачу по вкусу. Многих заинтересовала задача про пружину и ее поведение в крайних точках, когда она растянута в проволоку или сжата до предела. Но по мнению преподов, эта была "неправильная" и сложная задача, и ее решено было не брать в качестве первой задачи. Выбор пал на две задачи: про веревку, подвешенную за два конца (Роман + Матвей), и про физический маятник (Тимур + Федор). Впоследствии, когда к нам присоединился Заболотский А.Д., появилось еще одно направление нашего проекта, получившее кодовое название "Шарик". ("Шарик падает на наклонную плоскость и прыгает. Вопрос, как он это делает?" - Подоляко Ф.) Далее тот же культовый персонаж МКШ, написав пару - тройку работающих программ, покинул партию "Маятник", оставив Тимура одного на попечение преподов, и стал заниматься авторской задачей про Шарик.

Черноголовка, 2005 год.


Партия "Веревка"

(Петухов Матвей, Фанасков Роман)

Задача

Нашей задачей было исследование верёвки, подвешенной за два конца, нахождение формы, которую она принимает. Мы исследовали случай, когда оба конца веревки находятся на одной высоте.

Далее мы используем следующие термины:

Ширина веревки - расстояние от одного конца веревки до другого.

Высота веревки - расстояние между прямой, на которой лежат концы веревки и нижней точкой этой веревки.

Идеальная верёвка - верёвка с нулевой жёсткостью.

Изначально была выдвинута гипотеза o том, что форма, принимаемая идеальной верёвкой, не зависит от свойств верёвки, как то: масса верёвки, её толщина и т.д. Для доказательства участники проекта подвешивали веревку к классной доске за два конца, обводили ее мелом по контуру и сравнивали результаты, полученные при подвешивании разных верёвок. Из нескольких веревок максимально подходящими для дальнейших опытов оказались обычная швейная нить и "Белая Гибкая" веревка. В дальнейшем для экспериментов мы использовали "Белую Гибкую" веревку. Эксперименты подтвердили вышеизложенную гипотезу.

Помимо этого начального вспомогательного исследования было поставлено три эксперимента по нахождению зависимости между различными параметрами веревки. В первом опыте была постоянна "ширина", во втором - "высота", а в третьем - длина веревки. О них читай далее.

Первой была проделана серия экспериментов, направленных на определение зависимости между высотой и длиной веревки при постоянном расстоянии между концами веревки. Для этого мы подвешивали веревку за два конца, между которыми было постоянное расстояние в 100 см.. Этот эксперимент был весьма трудоемким и занял продолжительное время, т.к. при больших значениях длины веревки не хватало места на доске для измерений и пришлось воспользоваться кабинетной стеной и стремянкой. Результат приведен ниже в виде графика. См. рис. 1.

Рис. 1. Зависимость высоты от длины верёвки (расстояние между концами 100).

Следующим был эксперимент при постоянной "высоте" веревки, в котором мы пытались определить, как меняется длина веревки при изменении расстояния между ее концами. На нижеприведенном графике показана также прямая (х = у), которая соответствует натянутой веревке, у которой расстояние между концами равняется длине веревке. При достаточно больших значениях "ширины" веревки график зависимости длины от ширины будет приближаться к этой прямой. См. рис. 2.

Рис. 2. Зависимость длины верёвки от расстояния между её концами (высота=90).

Последний эксперимент проводился аналогично двум другим, но в нем была постоянна длина веревки. Значение координаты по оси Ох ("ширины") не может превышать 175 см., т.е. длины веревки (веревка натянута, "высота" равна 0). Максимальное значение по оси Оу - 87.5 см., т.е. половина веревки ("ширина" равна 0, веревка висит вертикально).См. рис. 3.

Рис. 3. Зависимость высоты от расстояния между концами верёвки (длина верёвки=175).

Помимо практических экспериментов, мы занимались теоретическим исследованием верёвки, подвешенной за 2 конца. Более того - изначально эксперименты были призваны лишь подтвердить или опровергнуть гипотезу о постоянстве формы верёвки, и только позднее они стали отдельной веткой партии "Верёвка".

Для начала было необходимо выбрать подходящую модель, по которой мы бы исследовали верёвку. Такой моделью стали n одинаковых по длине отрезков легкой нерастяжимой нити, которые связывают между собой n-1 массивных шариков, сосредотачивающих в себе всю массу верёвки. При больших n свойства такой модели приближаются к свойствам реальной верёвки.

Рис. 4.

На чертеже показан участок такой модели верёвки. Как нетрудно видеть, на каждый узел действует 3 силы - сила тяжести и 2 силы натяжения верёвки. Каждый отрезок верёвки характеризуется углом с вертикалью. Для того чтобы верёвка находилась в равновесии, в каждом i-ом узле должны выполняться следующие уравнения:
Ti+1cosai+1+mg=Ticosai (1)
Tisinai=Ti+1sinai+1(2)

Ti - сила, с которой на узел действует предыдущий, а Ti+1 - следующий (нумерация идёт справа налево).

Также использовались условия неразрывности нити, т.е.:
Dl n
S
i=1 
sinai = D(3)
Dl n
S
i=1 
cosai = H = 0 (4)

где Dl - длина одного отрезка, D - расстояние по оси Ox между концами верёвки, H - расстояние по оси Oy между концами верёвки. Поскольку мы рассматривали случай, в котором концы верёвки находятся на одной высоте, мы положили H = 0.

После мы занялись написанием программы, которая бы по некоторым входным параметрам рисовала или хотя бы просчитывала форму верёвки. Фактически она должна была решать нелинейную систему из множества уравнений.

Для начала была написана программа, рассчитывающая углы и силы в верёвке, состоящей из двух нитей и одного узла. Делала она это методом простой итерации. Её написание не составило особого труда. Она представлена под названием Rope_simple. Однако при попытке превратить её в программу, делающую то же самое для n участков нити и n-1 узлов, не увенчались успехом. При n = 2 она ещё работала, но уже при n = 3 метод переставал сходиться.

При отладке были исправлены многие ошибки и добавлены новые, однако это не помогло. В результате, будучи не в силах признать свою беспомощность, мы обвинили в своих неудачах метод и стали искать новый. И он был найден. Суть его заключалась в том, что часть неизвестных в каждой итерации цикла решения системы мы выражали из уже найденных, а не из полученных в предыдущей итерации значений. Однако такая программа опять же не была рабочей.

После были внесены изменения в исходную систему уравнений. Было замечено, что из уравнения (2) следует:
Tisinai = C,
(5)

где С = Const. При подстановке уравнения (5) в уравнение (1) получается:
ctg  ai+1+ mg

C
= ctg  ai
(6)

Следующая программа основывалась на решении системы уравнений (3), (4) и (6), однако также не была успешной.

Позднее мы выразили эти уравнения не через углы, характеризующие отрезки нити, а через координаты узлов, вернее через изменение координаты при переходе от узла к следующему, т. е.
ctg  a = y

x
,
sin  a = x

l
,
cos  a = y

l
. Но даже программа, основанная на решении этих уравнений, не работала.

Тогда, используя те же уравнения, мы применили другой метод - метод "стрельбы". Его суть в том, что мы случайно выбираем начальные a0 и C, строим верёвку с сохранением длины и вычисляем отклонение последней точки от заданного величиной D ("шириной" верёвки) положения и, изменяя a0 и C, подгоняем верёвку в нужное положение.

Этот метод также оказался дефективным и не сходился. Наутро предпоследнего дня последней рабочей недели участников проекта посетило вдохновение в лице руководителя проекта и предложило новую идею. К вечеру идея была уже обдумана, переработана и реализована. Именно она предлагается вниманию читателя под названием Rope_liambda_version.

Принцип её работы таков: мы задаём какой-то a0 и строим верёвку длины L, смотрим, куда попал конец верёвки, в зависимости от результатов подгоняем угол до тех пор, пока концы верёвки не окажутся на одном уровне. Считаем расстояние между концами верёвки и изменяем длину верёвки так, чтобы отношение длины верёвки к расстоянию между концами было таким же, как и в заданных изначально значениях. Потом повторяем до тех пор, пока координаты последней точки не совпадут с точностью e с ожидаемыми.

К сожалению, у нас не получилось сравнить экспериментальные результаты с полученными в программе. Однако первые люди, увидевшие результат, воскликнули "Это же цепная линия!", то есть та самая линия, которую мы ожидали. Поскольку воскликнувшие были преподавателями, мы считаем, что программа работает правильно.


Партия "Шарик", или "Мячик Фёдора"

(Заболотский Андрей, Подоляко Фёдор)

Задача

На наклонную плоскость падает шарик. Все параметры известны. Что будет дальше? (смоделировать ситуацию).

Решение

Рис. 5.

Пусть для начала нет ни трения, ни сопротивления воздуха; удар абсолютно упругий. Даны: угол наклона плоскости a, ускорение свободного падения g, скорость шарика V0 и угол его падения на плоскость b0. Возьмём систему координат с центром в точке падения шарика, оси координат направлены по x и по y соответственно вправо и вверх. Найти нужно скорость V1 и угол падения b1 шарика во время следующих ударов о плоскость, а также L1 - расстояние между точками ударов.

Угол падения на плоскость равен углу отражения от неё, поэтому когда шарик отскакивает от плоскости, его скорости по x и по y:

Vx0=V0cos(b0-a),

Vy0=V0sin(b0-a).

Время в полёте

t1=2(Vy0+Vx0tga)/g.

В момент второго удара скорости по x и по y:

Vx1=Vx0,

Vy1=Vy0-gt1,

а координаты таковы:

x=Vx0t1,

y=-x tga.

Тогда:
V1=
Ц
 

Vx2+Vy2
 

b1 = -a - arctg(Vy1/Vx1)
L1 = x
Ц
 

1+tg2a
 

Далее, учитывая, что в любой момент полёта x=Vx0t и y=Vy0-gt2/2, была написана программа, которая моделирует прыжки шарика по наклонной плоскости и записывает в файл данные о прыжках, а также рисует траекторию на экране.

Рассмотрим эффекты, связанные с вращением шарика.

Теперь исходные данные таковы: начальные скорости по x и по y - Vx0 и Vy0, начальная угловая скорость вращения - w0, коэффициент трения о плоскость cm, момент инерции J, радиус шарика R и его масса m, а также угол a и ускорение свободного падения g. Найти надо скорости по x и по y - Vx и Vy, и новую угловую скорость w, а также L1, для которого, впрочем, формула не изменилась.

Выведена система из 8 уравнений. Кроме перечисленных переменных и параметров, в уравнениях фигурирует масса Земли Mз, но её удалось исключить, положив равной бесконечности. Дополнительные неизвестные Vxз, Vyз, DPx, DPy и K (соответственно скорости Земли по x и по y, до удара равные 0, изменение импульса по x и по y и изменение момента импульса) тоже были исключены. 5-ое уравнение представляет собой закон сохранения энергии, первые 4 - закон сохранения импульса, 6-ое - закон сохранения момента импульса, 7-ое выводится из закона сохранения импульса следующим образом:
DPx = DPy DPx

DPy
= DPy -FтрDt

NDt
= DPx -mNDt

NDt
= -mDPx

Здесь N - реакция опоры.

Доказательство восьмого уравнения:

DcK = FтрRDt = -DPxR

Итак, вот уравнения:

mVx0 = mVx+DPx

mVx0-mVx = MзVxз

mVy0 = mVy+DPy

mVy0-mVy = MзVyз
m(Vx02+Vy02)

2
+ Jw02

2
= m(Vx2+Vy2)

2
+ Jw2

2
+ Mз(Vxз2+Vyз2)

2

Jw0 = Jw-DK

DPx = -mDPy

DK = -DPxR = mDPyR
(уравнения выведены для случая =0)

Путём несложных выкладок были получены следующие решения:
Vy= Jm2Vy0-JVy0+2JmVx0-2JmRw0+(Rm)2mVy0

J+Jm2+m(Rm)2

Vx=m(Vy0-Vy)+Vx0

w = Jw0-Rm(Vx-Vx0)

J

Программа, моделирующая движение вертящегося шарика, написана.

Однако выяснилось, что для случая Vx+Rw = 0 (когда шарик катится) формула для расчёта силы трения не работает (Px mDPy). Из-за этого угловая скорость расчитывается по следующей формуле: w = -Vx/R. Отсюда:
Vx= RmVx0-Jw0

Rm+J

R

Программы, созданные в ходе работы: tgraph.pas, bgraph2.pas.


Партия "Маятник"

(Кешелава Тимур, Подоляко Фёдор)

Задача

Нашей задачей было исследовать поведение физического маятника с помощью моделирующей программы и сравнить результаты с данными, полученными опытным путем.

Методы решения

1) Сначала мы занялись выводом формул для программы, составлением уравнений.

2) Потом мы написали программу, считавшую в координатах (x;y). В различных версиях программы (всего 5 версий), вводились различные параметры, такие как: угол отклонения от положения равновесия в радианах, шаг по времени, начальная скорость по Ох, задержка (программный параметр).

3) Далее программа была усовершенствована, в нее была добавлена графика. Теперь она стала рисовать на экране движение нижней точки маятника и ее траекторию. При большом шаге по времени программа начинала рисовать непредсказуемые "узоры", где менялась длина нити, и ни о какой реалистичности такого поведения маятника речи быть не могло. Это происходило из-за того, что при большем шаге увеличивалась погрешность вычислений. При достаточно малом шаге программа работает правильно. Полные описания программ вы можете найти в дополнении 2.

4) Теперь наступило время проверки теории на практике. Путем нескольких хитрых махинаций участникам проекта удалось построить действующую модель маятника в комнатных условиях.
Детали и компоненты установки:
а. Стремянка металлическая раскладная;
б. Небольшая доска с гвоздями;
в. Веревка, привязывающая доску к стремянке;
г. Веревка маятника, привязанная к доске с гвоздями;
д. Еще несколько веревок, удерживающих стремянку в неподвижном положении;
е. Пакет кефира в качестве груза маятника. Был выбран из-за заранее известной массы в 1кг. (была указана на пакете);
ж. Бутылка с водой 1.5л. как второй маятник. (первый был с аппетитом уничтожен участниками проекта);
з. Веревка, играющая роль горизонта;
и. Веревка для измерения отклонения маятника от точки равновесия.
Также при проведении эксперимента использовались секундомер и участники проекта. При проведении экспериментов никто не пострадал, кроме кефира.

5) Результаты экспериментов подтвердили правильность уравнений и компьютерной модели. См. дополнение.

Дополнение

Результаты экспериментов

Длина маятника = 1.5м. (const)
Период, с.Кол-во колебаний, шт.Описание
26.110a = 60°, смещение по хорде 1.5 м., масса маятника 1 кг., подвеска болтается.
27.110
27.210
27.110
26.010Смещение по хорде 1м., масса маятника 1 кг.
26.210
26.410
26.110Смещение по хорде 0.5м., масса маятника 1 кг.
26.010
26.210
28.510a = 90°, масса маятника 1 кг, подвеска немного качается.
28.510
28.510
28.310
25.410a = 60°, Смещение по хорде 1.5м., масса маятника 1.25 кг
25.110 Смещение по хорде 0.5 м., масса маятника 0.6 кг.
25.010
25.210
25.610 Смещение по хорде 1 м., масса маятника 0.6 кг.
25.510
25.610
26.310 Смещение по хорде 1.5 м., масса маятника 0.6 кг.
26.010
26.110

Дополнение 2

Документация к программам

Программа №1 "May1"

Это программа моделирует поведение одного маятника в декартовой системе координат. В этой программе надо ввести шаг по времени, скорость по Х и задержку. Это продукт имеет минус: надо вводить меленький шаг по времени, в противном случае, из-за ошибок округления маятник будет себя вести непредсказуемо.

Программа №2 "May2"

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

Программа №3 "May4"

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

Программа №4 "Double"

Эта программа разительно отличается от выше описанных версий. Главное отличие - это то, что маятников стало два. Первый прикреплен к неподвижному подвесу, а второй - к первому. Такое изменение делает задачу труднее, поэтому наиболее сложным стало вывести систему уравнений движения маятников. После теоретической части работы и первых прогонов на компьютере стало ясно, что необходима доработка. В дальнейшем продукт прошел множество тестирований: пересмотр формул, испытания в предельных ситуациях, проверка на сохранение энергии и, даже, на вшивость. Все тесты дали вроде бы положительные результаты. Это программа использует две полярные системы координат: статическую и динамическую. В ней также присутствует графика: она рисует маятники, которые, сцепленно вращаясь, создают иногда просто фантастические узоры. Также она отображает стержни, на которых висят грузики и неподвижный центр. Еще в ней есть функция масштабирования, которая позволит Вам посмотреть на систему издалека или вблизи. Эта программа писалась до последнего момента, а также в последний момент и после него, поэтому мы не успели провести опыты, что ставит ее (программы) правильность под вопрос.