Редактирование: Колебания материальной точки в поле силы тяжести
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 3: | Строка 3: | ||
Рассмотрим механическую систему с двумя степенями свободы: материальная точка массы <math>m</math> связана пружинами с двумя опорами, вся система находится в поле силы тяжести. Расстояние между опорами <math>2b</math>, длина пружин в недеформированном состоянии <math>a</math>, жесткость пружин <math>c</math>. | Рассмотрим механическую систему с двумя степенями свободы: материальная точка массы <math>m</math> связана пружинами с двумя опорами, вся система находится в поле силы тяжести. Расстояние между опорами <math>2b</math>, длина пружин в недеформированном состоянии <math>a</math>, жесткость пружин <math>c</math>. | ||
[[File:Scheme l.png|400px|left|Схема]] | [[File:Scheme l.png|400px|left|Схема]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Уравнения движения системы будут выглядеть так: | Уравнения движения системы будут выглядеть так: | ||
::<math> | ::<math> | ||
\left\{ | \left\{ | ||
\begin{array}{ll} | \begin{array}{ll} | ||
− | m \ddot{x} = \frac {c(a+x)}{ | + | m \ddot{x} = \frac {c(a+x)}{\sqrt{y^{2}+(a+x)^{2}}}(a-\sqrt{y^{2}+(a+x)^{2}})-\frac {c(a-x)}{\sqrt{y^{2}+(a+x)^{2}}}(a-\sqrt{y^{2}+(a-x)^{2}})\\ |
− | \displaystyle m \ddot{y} = -\frac {cy}{ | + | \displaystyle m \ddot{y} = -\frac {cy}{\sqrt{y^{2}+(a+x)^{2}}}(a-\sqrt{y^{2}+(a+x)^{2}})-\frac {cy}{\sqrt{y^{2}+(a+x)^{2}}}(a-\sqrt{y^{2}+(a-x)^{2}})+mg\\ |
\end{array} | \end{array} | ||
\right. | \right. | ||
Строка 19: | Строка 14: | ||
==Реализация== | ==Реализация== | ||
− | {{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Lobas/ | + | {{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Lobas/yiis.html |width=1200 |height=1650 |border=0 }} |
<br /> | <br /> | ||
Строка 65: | Строка 60: | ||
var n4 = 0; | var n4 = 0; | ||
var ab = 1; | var ab = 1; | ||
− | |||
MainBall.prototype.setXo = function(n1){ball.x = n1;}; //считывание координаты Х | MainBall.prototype.setXo = function(n1){ball.x = n1;}; //считывание координаты Х | ||
MainBall.prototype.setYo = function(n2){ball.y = n2;}; //считывание координаты У | MainBall.prototype.setYo = function(n2){ball.y = n2;}; //считывание координаты У | ||
Строка 71: | Строка 65: | ||
MainBall.prototype.setVYo = function(n4){ball.vy = ball.vy * n4;}; //обнуление скорости по У | MainBall.prototype.setVYo = function(n4){ball.vy = ball.vy * n4;}; //обнуление скорости по У | ||
MainBall.prototype.setAB = function(n5){ab = n5;}; //считывание отношения а/b | MainBall.prototype.setAB = function(n5){ab = n5;}; //считывание отношения а/b | ||
− | + | //slider_vx.oninput = function() {setVXo(slider_vx.value);}; //считывание скорости по Х | |
− | + | //slider_vy.oninput = function() {setVYo(slider_vy.value);}; //считывание скорости по У | |
− | + | //number_ab.oninput = function() {setAB(Number(number_ab.value));}; | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
function control() { | function control() { | ||
physics(); | physics(); | ||
Строка 141: | Строка 129: | ||
contextX.beginPath(); //рисование графика Х | contextX.beginPath(); //рисование графика Х | ||
contextX.strokeStyle = 'black'; | contextX.strokeStyle = 'black'; | ||
− | contextX.moveTo(t*20 - dt * 10 | + | contextX.moveTo(t*20 - dt * 10, ((ball.x - ball.vx * dt * 5) * 5 + h/2) / 2); |
− | contextX.lineTo(t*20 | + | contextX.lineTo(t*20, (ball.x * 5 + h/2) / 2); |
contextX.closePath(); | contextX.closePath(); | ||
contextX.stroke(); | contextX.stroke(); | ||
Строка 148: | Строка 136: | ||
contextY.beginPath(); //рисование графика У | contextY.beginPath(); //рисование графика У | ||
contextY.strokeStyle = 'black'; | contextY.strokeStyle = 'black'; | ||
− | contextY.moveTo(t*20 - dt * 10 | + | contextY.moveTo(t*20 - dt * 10, ((ball.y - ball.vy * dt * 5) * 5 + h/2) / 2); |
− | contextY.lineTo(t*20 | + | contextY.lineTo(t*20, (ball.y * 5 + h/2) / 2); |
contextY.closePath(); | contextY.closePath(); | ||
contextY.stroke(); | contextY.stroke(); | ||
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
setInterval(control, 1000/fps); | setInterval(control, 1000/fps); | ||
Строка 181: | Строка 149: | ||
*Разработчик : [[Лобас Анна]] | *Разработчик : [[Лобас Анна]] | ||
* [[Виртуальная лаборатория]] | * [[Виртуальная лаборатория]] | ||
− | *[http://tm.spbstu.ru/htmlets/Lobas/ | + | *[http://tm.spbstu.ru/htmlets/Lobas/yiis.rar Скачать программу] |