Падающий цилиндр (48.44) — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Реализация на языке JavaScript)
 
(не показано 5 промежуточных версий этого же участника)
Строка 5: Строка 5:
  
 
== Реализация на языке JavaScript ==
 
== Реализация на языке JavaScript ==
 +
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Murinskaia/48_44.html|width=940 |height=400 |border=0 }}
  
 
== Используемые библиотеки ==
 
== Используемые библиотеки ==
Строка 17: Строка 18:
  
 
<math>\frac{d}{dt}\left(\frac{\partial L}{\partial\dot q}\right) - \frac{\partial L}{\partial q} = 0 </math>
 
<math>\frac{d}{dt}\left(\frac{\partial L}{\partial\dot q}\right) - \frac{\partial L}{\partial q} = 0 </math>
 +
 +
<math>L = T - Π </math>
  
 
Система имеет две степени свободы: длина нити ρ и угол между нитью и вертикальной осью φ.
 
Система имеет две степени свободы: длина нити ρ и угол между нитью и вертикальной осью φ.
Строка 22: Строка 25:
 
Кинетическая энергия:  
 
Кинетическая энергия:  
  
<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(\dot ρ - R\dot φ)^{2} + mg(ρcosφ - Rsinφ) </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>

Текущая версия на 01:10, 19 декабря 2017

Задача 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]