Рабочая заметка · динамика вращения · часть I

Ускорение датчика на вертикально вращающемся колесе

Как из кинематики точки на окружности и определения того, что вообще измеряет акселерометр, получить сигнал a(t), обнулить его наверху, удвоить внизу — и разложить в ряд Фурье.

Аннотация

Экспериментальная установка крутит колесо в вертикальной плоскости и снимает показания акселерометра, закреплённого на ободе, — то есть в неинерциальной, вращающейся системе отсчёта. Эта заметка — теоретический ноль-пункт для интерпретации таких данных: мы выводим сигнал датчика с нуля, подбираем угловую скорость так, чтобы наверху обод был «невесомым» (0 g), а внизу перегрузка была ровно 2 g, получаем закрытую формулу и раскладываем её в ряд Фурье. Численная проверка (БПФ) сходится с аналитикой до 10−13. Материал рассчитан на первокурсников, знакомых с кинематикой точки и начатками рядов Фурье.

Шарик на нити описывает окружность
Шарик на нити описывает окружность
Долгая выдержка превращает вращение в кольца света
Долгая выдержка превращает вращение в кольца света
§1

Постановка задачи


Диск радиуса R вращается в вертикальной плоскости вокруг неподвижной горизонтальной оси с постоянной угловой скоростью ω. На ободе закреплён датчик — трёхосевой акселерометр, который вращается вместе с диском и меряет ускорение в своей собственной, неинерциальной системе отсчёта. Всё происходит на поверхности Земли, в однородном поле тяжести g.

Нас интересует не абстрактное вращение, а конкретный, «настроенный» режим: угловую скорость подбирают так, чтобы в тот момент, когда датчик проходит верхнюю точку обода, модуль его показаний обращался в ноль, а когда он проходит нижнюю точку — был ровно 2g. Это узнаваемая ситуация: то же самое условие определяет минимальную скорость на верхней точке мёртвой петли американских горок. Мы получим её строго, из первых принципов.

Задача из четырёх шагов:

  1. понять, что вообще «чувствует» акселерометр (§2);
  2. расписать кинематику точки на ободе в неподвижных осях (§3);
  3. собрать из них показания датчика a(t) и подобрать ω под условие 0 g / 2 g (§4–§5);
  4. изучить получившийся сигнал — его форму, годограф и спектр (§6–§8).
ОбозначениеСмысл
Rрадиус диска (обода), м
gускорение свободного падения, 9.81 м/с²
ωугловая скорость вращения диска (постоянная), рад/с
θ(t) = ωtугол поворота датчика от верхней точки
T = 2π/ω, f = 1/Tпериод и частота вращения
aист(t)истинное (инерциальное) ускорение точки обода
a(t)показания акселерометра (в его собственных осях)
§2

Что вообще чувствует акселерометр


Первая и самая важная тонкость: акселерометр не измеряет гравитацию напрямую. Внутри MEMS-акселерометра лежит пробная масса на пружинках; прибор измеряет, с какой силой пружинки должны тянуть эту массу, чтобы она двигалась вместе с корпусом. Гравитация же действует на пробную массу и на корпус одинаково — она не создаёт растяжения пружинок и потому «невидима» для датчика.

Проверьте на бытовом примере: телефон, спокойно лежащий на столе, показывает g ≈ 9.8 м/с² вверх, хотя его истинное ускорение равно нулю (он не движется). Опору держит стол, и именно силу опоры — точнее, ускорение, которое эта сила вызвала бы при отсутствии гравитации — и регистрирует прибор. А в свободном падении, когда единственная сила — гравитация, акселерометр показывает ровно ноль, хотя истинное ускорение равно g.

maист = N + mgвект  ⇒  N/m = aистgвект
(1)

Здесь N — та самая «неупругая» сила связи (натяжение спиц, реакция опоры и т.п.), которую и меряет акселерометр, делённая на массу. Общая формула показаний прибора:

a(t) = aист(t) − gвект
показания акселерометра = истинное ускорение минус вектор g

Векторы здесь и далее выделены жирным курсивом. Это соотношение — по сути формулировка слабого принципа эквивалентности: акселерометр не может отличить «покой в гравитационном поле» от «равноускоренное движение вдали от масс» — он чувствует только разницу между истинным ускорением и g.

§3

Кинематика точки на ободе


Ось диска неподвижна, центр диска в начале координат. Ось x — горизонтально вправо, ось y — вертикально вверх. Пусть в момент t = 0 датчик находится в верхней точке. Положение датчика на ободе:

r(t) = R(sin θ, cos θ),   θ(t) = ωt
(2)

Дифференцируем дважды по времени. Поскольку ω = const, угол растёт линейно, и вторая производная не содержит «тангенциального» слагаемого — только центростремительное:

ẏ(t) = (cos θ, −sin θ)
(3)
aист(t) = −ω²r(t) = −ω²R(sin θ, cos θ)
истинное ускорение точки обода — чисто центростремительное, направлено к центру

Здесь важно физическое допущение: диск вращается равномерно (мотор поддерживает ω = const независимо от угла), поэтому тангенциальное ускорение всегда нулевое — в отличие, скажем, от шарика на нитке, который в верхней точке петли может замедляться под действием той же гравитации. Это упрощение стоит держать в уме: в реальных данных мотор не идеален, и лёгкая тангенциальная составляющая неизбежно появится.

§4

Показания датчика


Подставляем (3) в формулу §2 (уравнение показаний акселерометра), с gвект = (0, −g):

ax(t) = −ω²R sin θ
ay(t) = gω²R cos θ
показания датчика по осям «вправо / вверх» его собственной системы

Это уже полный ответ на вопрос «что покажет акселерометр в момент t» — для любого R и ω, ещё без всякой настройки под 0g/2g. Дальше подбираем частоту.

§5

Подбор частоты: 0 g наверху, 2 g внизу


Подставим две особые точки. Наверху (θ = 0): ax = 0, ay = g − ω²R. Внизу (θ = π): ax = 0, ay = g + ω²R. Модули:

|a|верх = |gω²R|,    |a|низ = g + ω²R
(4)

Требуем |a|верх = 0:

ω²R = g   ⇒   ω = √(g/R)
условие «невесомости» наверху — ровно частота компенсации гравитации центростремительным ускорением

И тут же, без дополнительных условий, из (4) получаем |a|низ = g + g = 2g. Свободного параметра больше нет: как только зафиксировали «0g наверху», «2g внизу» получается автоматически. Это не совпадение — при ω²R = g гравитация ровно компенсирует центростремительное ускорение наверху и ровно удваивает его внизу, потому что в обеих точках они действуют вдоль одной вертикали.

Параллель

Условие ω²R = g — это в точности условие минимальной скорости в верхней точке мёртвой петли американских горок (там из требования N ≥ 0 для вагонетки, свободно скользящей по треку). Разница в физической постановке: там это нижняя граница скорости для свободного тела на треке, здесь — точное значение для тела, принудительно вращаемого мотором с постоянной ω. Уравнение одно и то же, потому что в обеих задачах в верхней точке требуется именно равенство центростремительного ускорения и g.

Численно, для R = 0.15 м (значение по умолчанию в скрипте): ω ≈ 8.087 рад/с, частота вращения f = ω/2π ≈ 1.287 Гц, период T ≈ 0.777 с. Подставьте реальный радиус вашего стенда — частота изменится как 1/√R.

§6

Итоговая формула сигнала


Подставим ω²R = g в показания датчика: ax = −g sin θ, ay = g(1 − cos θ). Модуль:

|a|² = g²sin²θ + g²(1−cos θ)² = 2g²(1 − cos θ)
(5)

По формуле половинного угла 1 − cos θ = 2sin²(θ/2):

|a(t)| = 2g |sin(ωt/2)|
закрытая формула модуля показаний датчика — единственный параметр ω = √(g/R)

Обратите внимание на «половинный» аргумент: несмотря на то, что диск делает полный оборот за период T = 2π/ω, сигнал |a(t)| тоже периодичен ровно с периодом T (не T/2) — проверьте это по графику: между двумя нулями (двумя проходами через верх) укладывается ровно один «горб», соответствующий одному проходу через низ.

График модуля ускорения датчика во времени: последовательность арок от 0 до 2g с периодом T
Рис. 1Модуль показаний датчика |a(t)| = 2g|sin(ωt/2)| на трёх периодах вращения. Пунктиром отмечены моменты прохода через верх (зелёный, 0g) и низ (красный, 2g).

А вот и сами компоненты — синус и косинус на удвоенной (по сравнению с половинным аргументом модуля) частоте ω, из которых модуль и складывается:

График компонент ускорения a_x(t) и a_y(t) вместе с их модулем
Рис. 2Компоненты ax(t), ay(t) колеблются как чистые синус/косинус на частоте ω (амплитуда ±g); их модуль (пунктир) — уже не гармонический сигнал.
§7

Годограф: геометрия одной окружности


Есть красивый геометрический способ увидеть тот же результат. Так как ax = −g sin θ и ay − g = −g cos θ, то:

ax² + (ay − g)² = g²
(6)

Конец вектора a(t) движется по окружности радиуса g с центром в точке (0, g) — и эта окружность проходит ровно через начало координат (0,0). Отсюда сразу видно, почему в верхней точке возможен точный ноль: начало координат лежит на окружности, а не просто рядом с ней.

0 g 2 g 2g 1g 0 0 T 2T 3T
оборот 1/3 θ = 0° t/T = 0.00 |a| = 0.00 g
Рис. 3Годограф вживую: точка идёт по окружности радиуса g; отрезок от точки «0 g» до неё — это и есть вектор a(t), его длина = хорда. Та же длина, отложенная по времени справа, вычерчивает график §6 — анимация проходит три оборота подряд, чтобы было видно: это не случайный всплеск, а строго повторяющаяся структура. Показано в замедленном темпе для наглядности; настоящий период T — см. §5.

Формула |a(t)| = 2g|sin(θ/2)| теперь читается как длина этой хорды: расстояние от точки на окружности радиуса g до фиксированной точки той же окружности, если центральный угол между ними равен θ, равно 2g sin(θ/2) — классический факт геометрии окружности (следствие теоремы о вписанном угле), который мы только что вывели из механики, даже не подозревая об этом заранее.

§8

Ряд Фурье: почему в спектре появляются все гармоники


Диск физически вращается на одной частоте f. Наивно можно ожидать, что и сигнал |a(t)| — синусоида на той же частоте. Это не так: операция «модуль» (выпрямление) — нелинейная, и она порождает целый набор гармоник. Это тот же эффект, что и при двухполупериодном выпрямлении переменного тока в электронике — |sin x| является классическим примером с известным рядом Фурье:

|sin x| = 2π4πn=1 cos(2nx)4n² − 1
стандартный ряд Фурье выпрямленной синусоиды (период π по x)

Вывод коэффициентов — стандартное упражнение курса рядов Фурье (интеграл an = (2/π)∫₀π|sin x|cos(2nx)dx через формулы произведения синусов); мы не переписываем его здесь целиком — см. задачу 5 в §10 — а вместо этого проверяем результат численно ниже, что для физика не менее убедительно, чем выкладки на бумаге.

Подставляя x = ωt/2 и умножая на 2g, получаем ряд Фурье для реального сигнала:

|a(t)| = A0 − ∑n=1 An cos(nωt),   A0 = 4gπ,   An = 8gπ(4n²−1)
A0 — постоянная составляющая, An — амплитуда n-й гармоники частоты вращения n·f
Неочевидный результат

Постоянная составляющая A0 = 4g/π ≈ 1.273g — это среднее по времени значение показаний датчика. Наивно ожидаешь среднее между 0 и 2g, то есть ровно 1g — но это неверно: сигнал не линеен по времени, вблизи пика (низа обода) он «задерживается» дольше (там |sin| выходит на плато), поэтому среднее смещено вверх, к 1.273g, а не к 1g.

Гармоники затухают как An ∼ 2g/(πn²) — быстро, поэтому уже 5–6 гармоник дают почти точную реконструкцию сигнала. Ниже — сравнение аналитических амплитуд с численным быстрым преобразованием Фурье (БПФ) точек a(t), и то, как частичные суммы ряда сходятся к точной кривой:

Столбчатая диаграмма спектра: аналитические амплитуды гармоник совпадают с численным БПФ
Рис. 4Спектр |a(t)|: аналитика и БПФ совпадают (расхождение < 10−4 во всех показанных гармониках).
Сходимость частичных сумм ряда Фурье к точному сигналу за один период
Рис. 5Частичные суммы ряда (N = 1, 2, 3, 6 гармоник) быстро сходятся к точному |a(t)|.

Ключевой методический вывод: наличие гармоник n·f в спектре ускорения не означает, что диск вращается на нескольких частотах — это чисто нелинейный эффект перехода от вектора к модулю. Это важно держать в уме, сравнивая со спектром реальных данных: лишние гармоники сами по себе — не аномалия, аномалия — это отклонение от предсказанных здесь амплитуд An.

§9

Что дальше


Эта модель — идеализированный ноль-пункт: постоянная ω, точечный датчик строго на радиусе R, идеальная ось, однородное g. Реальные записи (папки data_* и спектральный анализ в lomb_scargle_spectrum.py) неизбежно будут отклоняться от неё, и сами отклонения информативны:

  • рябь на ω(t) — неидеальность мотора — проявится как боковые полосы вокруг гармоник n·f;
  • перекос оси датчика относительно плоскости вращения подмешает третью компоненту и исказит амплитуды An;
  • несовпадение измеренного A0 с предсказанным 4g/π — простой и быстрый способ проверить калибровку датчика и точность R;
  • шум датчика поднимет пол спектра между гармониками, которые в идеальной модели строго равны нулю.

Следующий шаг — наложить это предсказание (Рис. 4) на реальный спектр вращающегося агента из эксперимента и посмотреть, где они расходятся.

§10

Задачи для самопроверки


Задачи
  1. Покажите, что при ω²R > g (диск крутится быстрее, чем нужно для невесомости наверху) разность |a|низ − |a|верх всегда равна ровно 2g — для любого такого ω, не только для решения §5. Что происходит с этой разностью при ω²R < g?
  2. На одном периоде найдите все моменты t, когда |a(t)| = g (датчик кратковременно показывает то же самое, что лежащий на столе телефон). Сколько таких моментов?
  3. Центр диска сам разгоняется с постоянным ускорением a0 (например, установка стоит на ускоряющейся тележке). Как изменится формула §4 для a(t)? Останется ли верным условие §5?
  4. Проверьте результат «Неочевидный результат» из §8 напрямую: проинтегрируйте 2g|sin(ωt/2)| по одному периоду и разделите на T, не используя ряд Фурье.
  5. Для знакомых с рядами Фурье: выведите коэффициенты an ряда |sin x| самостоятельно, используя an = (2/π)∫₀π sin x cos(2nx) dx и формулу произведения sin αcos β = ½[sin(α+β)+sin(α−β)].