Курсовой проект "Моделирование удара шарика об стену" — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Математическая модель)
Строка 12: Строка 12:
  
 
==Математическая модель==
 
==Математическая модель==
Уравнение движение для каждой из материальных точек записывается следующим образом:
 
  
 
<math>
 
<math>
   m\underline{\ddot{x}}_i(t)=\underline{F}_{R_1}+\underline{F}_{R_2}+\underline{P}+\underline{F}_{Wall}\\
+
   m\underline{\ddot{x}}_i(t)=\underline{F}_{R_1}+\underline{F}_{R_2}+\underline{F}_{D_1}+\underline{F}_{D_2}+\underline{P}+\underline{F}_{Wall}\\
 
   \underline{x}_i(0)=\underline{x}_i^0,~\underline{v}_i(0)=v_i^0~~~i=1,\ldots,n
 
   \underline{x}_i(0)=\underline{x}_i^0,~\underline{v}_i(0)=v_i^0~~~i=1,\ldots,n
 
</math>
 
</math>
Строка 24: Строка 23:
 
   \underline{F}_{R_1}, \underline{F}_{R_2}\\
 
   \underline{F}_{R_1}, \underline{F}_{R_2}\\
 
</math> - силы упругости действующие на <math>i</math>-ую частицу со стороны <math>i-1</math> и <math>i+1</math> соответственно;
 
</math> - силы упругости действующие на <math>i</math>-ую частицу со стороны <math>i-1</math> и <math>i+1</math> соответственно;
 +
 +
<math>
 +
  \underline{F}_{D_1},\underline{F}_{D_2}\\
 +
</math> - силы демпфирования пружины действующие на <math>i</math>-ую частицу со стороны <math>i-1</math> и <math>i+1</math> соответственно;
  
 
<math>
 
<math>
Строка 36: Строка 39:
  
 
<math>
 
<math>
   \underline{F}_{R}= -(||\underline{r}_2-\underline{r}_1|| - l_0)k_R
+
   \underline{F}_{R}= -(||\underline{r}_2-\underline{r}_1|| - l_0)k_R \frac{(\underline{r}_2-\underline{r}_1)}{||\underline{r}_2-\underline{r}_1||}
 
</math>,  где <math>k_R</math> - коэффициент жесткости пружины.
 
</math>,  где <math>k_R</math> - коэффициент жесткости пружины.
  
Давление:
+
Сила демпфирования:
  
 
<math>
 
<math>
   \underline{P}=(\frac{V_{0}}{V}-1)l_{12} P \underline{n}
+
   \underline{F}_{D}= (\underline{v}_2-\underline{v}_1)\cdot\frac{\underline{r}_2-\underline{r}_1}{||\underline{r}_2-\underline{r}_1||}k_D\frac{(\underline{r}_2-\underline{r}_1)}{||\underline{r}_2-\underline{r}_1||}
</math>, где <math> V </math> - актуальный объем шара, <math> V_{0} </math> - начальный объем шара, <math> l_{12}</math> - актуальная длина пружины, <math> P </math> - модуль давления, <math> \underline{n}</math> - нормаль к пружине, направленная наружу.
+
</math>, где <math>k_D</math> - коэффициент демпфирования пружины.
 +
 
 +
Давление рассчитывается по следующей формуле:
 +
 
 +
<math>P = k(\frac{V_0}{V} - 1)</math>
 +
 
 +
Площадь шара вычисляется при помощи формулы площади Гаусса, позволяющей вычислить площадь произвольного многоугольника:
 +
 
 +
<math>\begin{align}
 +
\mathbf{S} &= \frac{1}{2} \left| \sum_{i=1}^{n-1} x_i y_{i+1} + x_n y_1 - \sum_{i=1}^{n-1} x_{i+1} y_i - x_1 y_n \right| = \\
 +
            &= \frac{1}{2} |x_1 y_2 + x_2 y_3 + \dots + x_{n-1} y_n + x_n y_1 - x_2 y_1 - x_3 y_2 - \dots - x_n y_{n-1} - x_1 y_n|,
 +
\end{align}</math>
  
Взаимодействие шара со стеной:
+
Взаимодействие частиц со стенкой реализовано с помощью потенциала Леннарда-Джонса:
  
 
<math>
 
<math>
  \underline{F}_{Wall}=-\nabla \Pi(r)
+
U(r) = 4\varepsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^{6} \right],
</math>,  где  <math>\Pi(r)=4\varepsilon[(\frac{a}{r})^{12}-(\frac{a}{r})^6]</math>
+
</math>
 
 
Интегрирование уравнений движения осуществляется при помощи явного метода Эйлера.
 
  
 
==Реализация модели==
 
==Реализация модели==
 
Визуализацию и исходный код: https://github.com/igorlaryush/discrete_mechanics_course_project
 
Визуализацию и исходный код: https://github.com/igorlaryush/discrete_mechanics_course_project

Версия 10:16, 20 января 2022

Курсовой проект по Механике дискретных сред

Исполнитель: Грешников Павел

Группа: 5030103/80101

Семестр: осень 2021

Постановка задачи

Требуется смоделировать удар воздушного шарика о твердую стенку в двумерной постановке. Воздушный шарик представляет из себя оболочку, состоящую из материальный точек, каждая из которых соединена пружиной. Отскакивание воздушного шара от стенки моделируется при помощи потенциала Ленарда-Джонса.

Математическая модель

[math] m\underline{\ddot{x}}_i(t)=\underline{F}_{R_1}+\underline{F}_{R_2}+\underline{F}_{D_1}+\underline{F}_{D_2}+\underline{P}+\underline{F}_{Wall}\\ \underline{x}_i(0)=\underline{x}_i^0,~\underline{v}_i(0)=v_i^0~~~i=1,\ldots,n [/math]


где [math] \underline{F}_{R_1}, \underline{F}_{R_2}\\ [/math] - силы упругости действующие на [math]i[/math]-ую частицу со стороны [math]i-1[/math] и [math]i+1[/math] соответственно;

[math] \underline{F}_{D_1},\underline{F}_{D_2}\\ [/math] - силы демпфирования пружины действующие на [math]i[/math]-ую частицу со стороны [math]i-1[/math] и [math]i+1[/math] соответственно;

[math] \underline{P} [/math] - давление создаваемое газом;

[math] \underline{F}_{Wall}\\ [/math] - сила взаимодействия между воздушным шаром и стеной;

Сила упругости, возникающая в пружине соединяющей частицу 1 и 2, вычисляется по следующей формуле:

[math] \underline{F}_{R}= -(||\underline{r}_2-\underline{r}_1|| - l_0)k_R \frac{(\underline{r}_2-\underline{r}_1)}{||\underline{r}_2-\underline{r}_1||} [/math], где [math]k_R[/math] - коэффициент жесткости пружины.

Сила демпфирования:

[math] \underline{F}_{D}= (\underline{v}_2-\underline{v}_1)\cdot\frac{\underline{r}_2-\underline{r}_1}{||\underline{r}_2-\underline{r}_1||}k_D\frac{(\underline{r}_2-\underline{r}_1)}{||\underline{r}_2-\underline{r}_1||} [/math], где [math]k_D[/math] - коэффициент демпфирования пружины.

Давление рассчитывается по следующей формуле:

[math]P = k(\frac{V_0}{V} - 1)[/math]

Площадь шара вычисляется при помощи формулы площади Гаусса, позволяющей вычислить площадь произвольного многоугольника:

[math]\begin{align} \mathbf{S} &= \frac{1}{2} \left| \sum_{i=1}^{n-1} x_i y_{i+1} + x_n y_1 - \sum_{i=1}^{n-1} x_{i+1} y_i - x_1 y_n \right| = \\ &= \frac{1}{2} |x_1 y_2 + x_2 y_3 + \dots + x_{n-1} y_n + x_n y_1 - x_2 y_1 - x_3 y_2 - \dots - x_n y_{n-1} - x_1 y_n|, \end{align}[/math]

Взаимодействие частиц со стенкой реализовано с помощью потенциала Леннарда-Джонса:

[math] U(r) = 4\varepsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^{6} \right], [/math]

Реализация модели

Визуализацию и исходный код: https://github.com/igorlaryush/discrete_mechanics_course_project