Система двух тел связанных пружинками

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск

Задача: С помощью языка программирования JavaScript смоделировать свободные колебания системы с двумя степенями свободы.

Исполнитель: Тур Всеволод

Группа: 23632/2

Семестр: весна 2018

Реализация

Используемые библиотеки

  • three.js
  • dat.gui.js

Скачать исходный код

Возможности программы

  • Изменение параметров системы(массы тел и жесткости пружин);
  • Изменение начальных условий(начальные положения и скорости двух тел);
  • Наличие паузы.

Подробное решение

Даны массы тел m1 и m2, жесткости пружин c1,c2,c3, а также начальные условия. Требуется найти уравнения движения тел в системе.

Кинетическая энергия системы T=3/4(m11²+m22²).
Потенциальная энергия П=1/2c1x1²+1/2c2(x2+x1)²+1/2c3x2².
Система уравнений Лагранжа:
3/2m11+(c1+c2)x1+c2x2=0;
3/2m22+(c2+c3)x2+c2x1=0;
Ищем решения в виде:
x1=A1sin(kt+a1)
x2=A2sin(kt+a2)
Подставляя x1и x2 в систему дифференциальных уравнений, получаем систему алгебраических уравнений относительно A1 и A2.
-3/2m1k²A1+(c1+c2)A1+c2A2=0;
-3/2m2k²A2+(c2+c3)A2+c2A1=0;
Для существования нетривиального решения этой однородной системы ее определитель должен быть нулевым.
9/4m1m2k4-3/2(c1+c2)m2k2-3/2(c2+c3)m1k2 +c1c2+c2c3+c1c3=0
Это выражение является квадратным уравнением относительно k2. Решив его, находим собственные частоты системы.
Отношения амплитуд движения первого и второго тела могут быть найдены из однородной системы алгебраических уравнений.
g1=A2(1)/A1(1)=(3/2m1k12-c1-c2)/c2
g2=A2(2)/A1(2)=(3/2m1k22-c1-c2)/c2
Тогда решение однородного дифференциального уравнения:
x1=A1(1)sin(k1t+a1)+A1(2)sin(k2t+a2)
x2=g1A1(1)sin(k1t+a1)+g2A1(2)sin(k2t+a2)
А значения A1(1),A1(2),a1,a2 могут быть найдены из начальных условий.

См. также