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

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(top)
(Скачать исходный код)
 
(не показаны 4 промежуточные версии 2 участников)
Строка 15: Строка 15:
 
* three.js
 
* three.js
 
* dat.gui.js
 
* dat.gui.js
* OrbitControls.js
+
 
 +
== Скачать исходный код ==
 +
 
 +
* в формате .rar [[http://tm.spbstu.ru/File:Main_seva.rar Ссылка]]
  
 
== Возможности программы ==
 
== Возможности программы ==
  
* Изменение периода качения;
+
* Изменение параметров системы(массы тел и жесткости пружин);
* Изменение длины маятника;  
+
* Изменение начальных условий(начальные положения и скорости двух тел);  
* Детальное рассмотрение работы с удобного ракурса.
+
* Наличие паузы.
  
 
== Подробное решение ==
 
== Подробное решение ==
  
'''Условие задачи'''
+
Даны массы тел m<sub>1</sub> и m<sub>2</sub>, жесткости пружин c<sub>1</sub>,c<sub>2</sub>,c<sub>3</sub>, а также начальные условия. Требуется найти уравнения движения тел в системе.
 
 
Для определения момента инерции J данного тела относительно некоторой оси AB, проходящей через центр масс G тела, его подвесили жестко скрепленными с ним стержнями AD и BE, свободно насаженными на неподвижную горизонтальную ось DE, так, что ось AB параллельна DE; приведя затем тело в колебательное движение, определили продолжительность T одного размаха. Как велик момент инерции J, если масса тела M и расстояние между осями AB и DE равно h? Массами стержней пренебречь.
 
 
 
 
 
 
 
  
 +
Кинетическая энергия системы T=3/4(m<sub>1</sub>ẋ<sub>1</sub>²+m<sub>2</sub>ẋ<sub>2</sub>²).<br />
 +
Потенциальная энергия П=1/2c<sub>1</sub>x<sub>1</sub>²+1/2c<sub>2</sub>(x<sub>2</sub>+x<sub>1</sub>)²+1/2c<sub>3</sub>x<sub>2</sub>².<br />
 +
Система уравнений Лагранжа:<br />
 +
3/2m<sub>1</sub>ẍ<sub>1</sub>+(c<sub>1</sub>+c<sub>2</sub>)x<sub>1</sub>+c<sub>2</sub>x<sub>2</sub>=0;<br />
 +
3/2m<sub>2</sub>ẍ<sub>2</sub>+(c<sub>2</sub>+c<sub>3</sub>)x<sub>2</sub>+c<sub>2</sub>x<sub>1</sub>=0;<br />
 +
Ищем решения в виде:<br />
 +
x<sub>1</sub>=A<sub>1</sub>sin(kt+a<sub>1</sub>)<br />
 +
x<sub>2</sub>=A<sub>2</sub>sin(kt+a<sub>2</sub>)<br />
 +
Подставляя x<sub>1</sub>и x<sub>2</sub> в систему дифференциальных уравнений, получаем систему алгебраических уравнений относительно A<sub>1</sub> и A<sub>2</sub>.<br />
 +
-3/2m<sub>1</sub>k²A<sub>1</sub>+(c<sub>1</sub>+c<sub>2</sub>)A<sub>1</sub>+c<sub>2</sub>A<sub>2</sub>=0;<br />
 +
-3/2m<sub>2</sub>k²A<sub>2</sub>+(c<sub>2</sub>+c<sub>3</sub>)A<sub>2</sub>+c<sub>2</sub>A<sub>1</sub>=0;<br />
 +
Для существования нетривиального решения этой однородной системы ее определитель должен быть нулевым.<br />
 +
9/4m<sub>1</sub>m<sub>2</sub>k<sup>4</sup>-3/2(c<sub>1</sub>+c<sub>2</sub>)m<sub>2</sub>k<sup>2</sup>-3/2(c<sub>2</sub>+c<sub>3</sub>)m<sub>1</sub>k<sup>2</sup>
 +
+c<sub>1</sub>c<sub>2</sub>+c<sub>2</sub>c<sub>3</sub>+c<sub>1</sub>c<sub>3</sub>=0<br />
 +
Это выражение является квадратным уравнением относительно k<sup>2</sup>. Решив его, находим собственные частоты системы.<br />
 +
Отношения амплитуд движения первого и второго тела могут быть найдены из однородной системы алгебраических уравнений.<br />
 +
g<sub>1</sub>=A<sub>2</sub><sup>(1)</sup>/A<sub>1</sub><sup>(1)</sup>=(3/2m<sub>1</sub>k<sub>1</sub><sup>2</sup>-c<sub>1</sub>-c<sub>2</sub>)/c<sub>2</sub><br />
 +
g<sub>2</sub>=A<sub>2</sub><sup>(2)</sup>/A<sub>1</sub><sup>(2)</sup>=(3/2m<sub>1</sub>k<sub>2</sub><sup>2</sup>-c<sub>1</sub>-c<sub>2</sub>)/c<sub>2</sub><br />
 +
Тогда решение однородного дифференциального уравнения:<br />
 +
x<sub>1</sub>=A<sub>1</sub><sup>(1)</sup>sin(k<sub>1</sub>t+a<sub>1</sub>)+A<sub>1</sub><sup>(2)</sup>sin(k<sub>2</sub>t+a<sub>2</sub>)<br />
 +
x<sub>2</sub>=g<sub>1</sub>A<sub>1</sub><sup>(1)</sup>sin(k<sub>1</sub>t+a<sub>1</sub>)+g<sub>2</sub>A<sub>1</sub><sup>(2)</sup>sin(k<sub>2</sub>t+a<sub>2</sub>)<br />
 +
А значения A<sub>1</sub><sup>(1)</sup>,A<sub>1</sub><sup>(2)</sup>,a<sub>1</sub>,a<sub>2</sub> могут быть найдены из начальных условий.
  
 
== См. также ==
 
== См. также ==

Текущая версия на 11:19, 25 мая 2018

Задача: С помощью языка программирования 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 могут быть найдены из начальных условий.

См. также[править]