Маятник с растяжимой нитью — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Решение)
(three.js)
Строка 40: Строка 40:
 
Для моделирования колебаний данного маятника используется язык программирования JavaScript и следующие библиотеки:
 
Для моделирования колебаний данного маятника используется язык программирования JavaScript и следующие библиотеки:
  
=three.js=
+
*three.js
  
 
=dat.gui.js=
 
=dat.gui.js=
  
 
=stats.js=
 
=stats.js=

Версия 22:08, 14 декабря 2017

Формулировка задачи

Составить уравнение движения маятника, состоящего из материальной точки массы m, подвешенной на нити, длина которой изменяется по закону l=l(t)

Решение

Для решения поставленной задачи воспользуемся уравнением Лагранжа 2-го рода


[math]\frac{d}{dt}\left(\frac{\partial T}{\partial\dot q_i}\right) - \frac{\partial T}{\partial q_i} = - \frac{\partial \Pi}{\partial q_i} [/math] , где

T - кинетическая энергия системы
П - потенциальная энергия системы
q - независимые обобщенные координаты
В данной задаче в качестве обобщенной координаты возьмем угол отклонения нити от вертикали [math]q = \varphi [/math].

Выразим кинетическую и потенциальную энергии через обобщенную координату.

[math]x=l\sin(\varphi )[/math]

[math]y=l\cos(\varphi )[/math]

[math]\dot x= \dot l\sin(\varphi ) + l\cos(\varphi )\dot\varphi [/math]

[math]\dot y= \dot l\cos(\varphi ) - l\sin(\varphi )\dot\varphi [/math]

[math]V^{2}=\dot x^{2}+ \dot y^{2}[/math]

[math]T= \frac{1}{2}\ m\ V ^{2}[/math]

[math]T = \frac{1}{2}\ m\ (\dot l\ ^{2}+l^{2}\dot\varphi^{2})[/math]

[math]\Pi = m \ g\ l \cos(\varphi )\ [/math]

Дифференцируя полученные выражения энергий и подставляя в уравнение Лагранжа результаты дифференцирования, получаем уравнение движения рассматриваемой системы:

[math]\ddot\varphi + 2\frac{\dot l}{l}\dot\varphi + \frac{g}{l} \sin(\varphi) = 0 [/math]

Визуализация процесса

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

  • three.js

dat.gui.js

stats.js