Йо-йо (48.44) — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
 
(не показаны 3 промежуточные версии 2 участников)
Строка 5: Строка 5:
  
 
== Реализация на языке JavaScript ==
 
== Реализация на языке JavaScript ==
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Palirus/4844.html|width=940 |height=400 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Palirus/48.44.html|width=940 |height=400 |border=0 }}
  
 
== Используемые библиотеки ==
 
== Используемые библиотеки ==
Строка 13: Строка 13:
 
*OrbitControls.js
 
*OrbitControls.js
 
*jquery.min.js
 
*jquery.min.js
 +
 +
== Решение задачи ==
 +
Уравнение Лагранжа второго рода:
 +
 +
<math>\frac{d}{dt}\left(\frac{\partial L}{\partial\dot q}\right) - \frac{\partial L}{\partial q} = 0 </math>
 +
 +
<math>L = T - Π </math>
 +
 +
Система имеет две степени свободы: длина нити ρ и угол между нитью и вертикальной осью φ.
 +
 +
Кинетическая энергия:
 +
 +
<math>T = \frac{1}{2}mv^{2} + \frac{1}{2}Ϳω^{2} = \frac{1}{2}m(\dot φ^{2} (R^{2} + ρ^{2}) + \dot ρ^{2} - 2\dot ρ\dot φR) + \frac{1}{4}m(\frac{\dot ρ}{R} - \dot φ)^{2}</math>
 +
 +
Потенциальная энергия:
 +
 +
<math>Π = -mg(ρcosφ - Rsinφ)</math>
 +
 +
Находим
 +
 +
<math>\frac{\partial L}{\partial ρ} = m(ρ\dot φ^{2} + gcosφ) </math>
 +
 +
<math>\frac{\partial L}{\partial φ} = -mg(ρsinφ - Rcosφ) </math>
 +
 +
<math>\frac{\partial L}{\partial \dot ρ} = m(\dot ρ - \dot φ R + \frac{1}{2}(\dot ρ - R\dot φ) </math>
 +
 +
<math>\frac{\partial L}{\partial \dot φ} = m(\dot φ^{2} (R^{2} + ρ^{2}) - \dot ρ R - \frac{1}{2}(\dot ρ - R\dot φ) </math>
 +
 +
Итак,
 +
 +
<math>\ddot ρ - \ddot φ R - \frac{2}{3}ρ\dot φ - \frac{2}{3}gcosφ = 0</math>
 +
 +
<math>ρ^{2}\ddot φ + 2\dot φ\dot ρ ρ - Rρ\dot φ^{2} + gρsinφ = 0</math>

Текущая версия на 17:19, 9 февраля 2018

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

Условие задачи[править]

Один конец нерастяжимой тонкой нити обмотан вокруг однородного круглого цилиндра радиуса R, второй конец прикреплен к неподвижной точке O. Цилиндр, разматывая нить, опускается вниз, одновременно раскачиваясь вокруг горизонтальной оси, проходящей через точку подвеса нити. Пренебрегая массой нити, составить дифференциальные уравнения движения цилиндра.

Реализация на языке JavaScript[править]

Используемые библиотеки[править]

  • three.js
  • TGALoader.js
  • dat.gui.js
  • OrbitControls.js
  • jquery.min.js

Решение задачи[править]

Уравнение Лагранжа второго рода:

[math]\frac{d}{dt}\left(\frac{\partial L}{\partial\dot q}\right) - \frac{\partial L}{\partial q} = 0 [/math]

[math]L = T - Π [/math]

Система имеет две степени свободы: длина нити ρ и угол между нитью и вертикальной осью φ.

Кинетическая энергия:

[math]T = \frac{1}{2}mv^{2} + \frac{1}{2}Ϳω^{2} = \frac{1}{2}m(\dot φ^{2} (R^{2} + ρ^{2}) + \dot ρ^{2} - 2\dot ρ\dot φR) + \frac{1}{4}m(\frac{\dot ρ}{R} - \dot φ)^{2}[/math]

Потенциальная энергия:

[math]Π = -mg(ρcosφ - Rsinφ)[/math]

Находим

[math]\frac{\partial L}{\partial ρ} = m(ρ\dot φ^{2} + gcosφ) [/math]

[math]\frac{\partial L}{\partial φ} = -mg(ρsinφ - Rcosφ) [/math]

[math]\frac{\partial L}{\partial \dot ρ} = m(\dot ρ - \dot φ R + \frac{1}{2}(\dot ρ - R\dot φ) [/math]

[math]\frac{\partial L}{\partial \dot φ} = m(\dot φ^{2} (R^{2} + ρ^{2}) - \dot ρ R - \frac{1}{2}(\dot ρ - R\dot φ) [/math]

Итак,

[math]\ddot ρ - \ddot φ R - \frac{2}{3}ρ\dot φ - \frac{2}{3}gcosφ = 0[/math]

[math]ρ^{2}\ddot φ + 2\dot φ\dot ρ ρ - Rρ\dot φ^{2} + gρsinφ = 0[/math]