Неравномерное ускорение из-за резинового каната

Что я хочу: у меня есть резиновая веревка, которая 5 м в длину, когда не подвергается стрессу и может растягиваться 100 % 10 м длинный). Я хочу разогнать по горизонтали постоянную массу, которая имеет незначительное трение. Я хотел бы иметь функцию, которая сообщает мне скорость массы, зависящую от времени, например, скорость 1 с после его выпуска.

Что я сделал: я провел некоторые измерения силы веревки, когда ее натягивали на разную длину. Конечно, при вытягивании 0 с м (Общая длина 5 м ) Я получил силу 0 Н . Вот график моих результатов.

http://i.imgur.com/vtEnACQ.png

Икс а Икс я с : смещение одного конца каната

у а Икс я с : измеренная сила

Я также смог провести регрессию и нашел функцию, которая описывает, какую силу я получаю после того, как тяну на заданную длину. Я называю эту функцию Ф ( с ) для силы, зависящей от перемещения. Отсюда легко получить функцию ускорения, которая а ( с ) "=" Ф ( с ) / м с м "=" м а с с объекта, который я хочу ускорить. Но теперь я застрял. мне как-то нужно получить а ( т ) вместо а ( с ) , таким образом, ускорение по времени, а не по длине, поэтому я могу затем интегрировать это, чтобы получить в ( т ) .

Как преобразовать зависимость функции?

На этот вопрос, кажется, ответить сложнее, чем я ожидал. Пожалуйста, оставьте комментарии о том, как сделать это более ясным, если вы этого не понимаете.
Разве вы не можете просто измерить время, за которое он вернется к нормальной длине?
К сожалению, не без больших усилий. Кроме того, я хотел бы, чтобы формула не зависела от массы, поэтому измерение с определенной массой не является решением.

Ответы (2)

Вы, конечно, хотите численно интегрировать ваше уравнение движения с учетом вашего выражения силы.

Я буду считать, что масса м крепится с одной стороны веревки, а другая сторона крепится к стене или чему-то, что не будет двигаться во время интеграции. Что-то вроде этого, где пружина на самом деле ваша веревка, с Икс удлинение веревки

пружинно-массовая система

Затем вы можете просто проинтегрировать (например, по схеме Эйлера) уравнение

г 2 Икс г т 2 "=" Ф ( Икс ) м
Вот код Ruby, который я использую всякий раз, когда хочу получить численное решение ОДУ в механике:

##################################################
## Integration using Euler (mid-point) method knowing position x and speed xp=\dot{x}
##################################################

def integration(x,xp)
  dxp = force(x)*@dt
  dx  = (xp+dxp/2)*@dt
  return x+dx,xp+dxp
end


##################################################
## Force expression knowing position x
##################################################

def force(x)
  return -10*x
end


##################################################
## Effective integration loop
##################################################

@dt = 0.001  # time increment
t = 0  # initial time
x = 5  # initial position
xp= 0  # initial speed
10000.times do |i|
  t += @dt
  x,xp = integration(x,xp)
  puts "#{t}\t#{x}\t#{xp}"
end

Просто подключите свои начальные условия и задайте выражение из ваших измерений, и вы получите и позицию, и скорость во времени (NB: я взял м "=" 1 в моем коде, но вы можете добавить правильное значение где угодно в integrationфункции или в forceфункции [которая тогда будет переименована в «ускорение»]).

Вы также можете уточнить его, чтобы интегрировать по постоянному общему времени и выводить меньше результатов, чем у вас есть шагов интеграции (точность увеличивается с меньшим шагом интеграции, @dtно это может стать трудным для рисования, когда у вас есть миллион точек, просто чтобы быть более точным в интеграции)

С ускорением он имеет вид а "=" А Икс б когда вы начинаете численно, должны позаботиться о начальном Икс "=" 0 состояние, когда вы остаетесь с нулевым ускорением и ничего не движется. Вам нужна неявная схема интеграции, чтобы это работало правильно.
@ ja72 Обратите внимание, что если вы начинаете в состоянии покоя без применения силы, вы должны оставаться в равновесии, если оно стабильно (как в этом случае с резиновой веревкой).

Когда ускорение является функцией положения, используйте следующее

а ( Икс ) "=" г в г т "=" г в г Икс г Икс г т "=" г в г Икс ты

а ( Икс ) г Икс "=" ты г ты "=" 1 2 ты 2 + К 1

который решается для ты ( Икс ) .

Позиция находится из

т "=" 1 ты ( Икс ) г Икс + К 2

который решается для Икс ( т ) .

Пример

а ( Икс ) "=" А Икс б
А Икс б г Икс "=" А б + 1 ( Икс б + 1 1 ) "=" 1 2 ты 2 + К 1

когда ты "=" 0 в Икс "=" 0 затем К 1 "=" - А б + 1 или

ты ( Икс ) "=" 2 А б + 1 Икс б + 1

Затем

т "=" 1 2 А б + 1 Икс б + 1 г Икс + К 2 "=" 2 ( б + 1 ) А ( б 1 ) 2 ( Икс - б 1 2 1 ) + К 2

и когда Икс "=" 0 , т "=" 0 затем К 2 "=" 2 ( б + 1 ) А ( б 1 ) 2 или

т "=" 2 ( б + 1 ) А ( б 1 ) 2 Икс - б 1 2

Икс ( т ) "=" ( т 2 ( б + 1 ) А ( б 1 ) 2 ) - 2 б 1 "=" ( А ( б 1 ) 2 2 ( б + 1 ) ) - 1 б 1 т ( - 2 б 1 )

Если бы ваша масса была м "=" 1 затем а "=" ф ( Икс ) на графике и

Икс "=" 1.397882 т 3.058906

ну-ну, вы только что продемонстрировали, что когда вы прикрепляете массу к упругой веревке, она улетает :) Не забывайте, что вы сделали какое-то (ложное) предположение о знаке А в ваших математических вычислениях.
Хм, это зависит от того, что представляет ось X графика. Это позиция или расширение? Позвольте мне проверить еще раз.
@JJFleck - Если Икс это расширение, указанное выше верно. Если Икс положение, то ускорение а "=" А ( Икс ) б но с Икс < 0 . Если вы стреляете вправо (положительное направление), вы перемещаете полезную нагрузку влево (отрицательное направление), чтобы растянуть веревку. В любом случае математика одна и та же, меняются только начальные условия.
Ну, либо я сильно неправильно понял систему (см. мой пост), либо ваша математика будет неправильной, потому что А < 0 : веревку тяните слева. В ваших расчетах промежуточное ты ( Икс ) (что такое скорость, верно?) становятся воображаемыми, что является проблемой, не так ли?
Этот подход, кажется, тот, который я искал, но я не совсем понимаю, если честно. Было бы неплохо, если бы вы могли подробнее остановиться на этом.
Ответ в том, что если Ф ( Икс ) ваша функция, то ускорение равно Икс ¨ "=" - Ф ( Икс ) м "=" - А Икс б с начальными условиями т "=" 0 , Икс "=" Икс 0 , в "=" 0 где Икс 0 является начальным расширением.