1

我想通过动画来模拟以下内容:
一个球从一个垂直圆形循环的最底部以一定的速度开始,
并一直在其中滚动,直到它的速度允许。

为此,我想找到速度/x/y 与时间方程。
例如,如果球的质量:5Kg,圆环的半径 = 10m,
球的初速度为 200 m/s,
5 秒后它的速度和 (x,y) 位置是多少?

谢谢。

4

6 回答 6

5

带有点粒子球的滑动无摩擦表壳

在这种情况下,我们不担心旋转能量,而是假设球实际上是一个点粒子。然后,为了让球保持在顶部,必须满足向心力条件:

m * v_top^2 / r = m * g

所以

v_top = sqrt(r * g)

所以最小初速度由下式确定:

1 / 2 * m * v0^2 >= 1 / 2 * m * v_top^2 + m * g * 2 * r

v0 >= sqrt(5 * r * g)

这和Pete说的差不多,只是他忘记了留在顶部的向心力条件。

接下来,与轨道相切的加速度由下式给出:

a = - g * sin(theta)

a = r * alpha = r * d^2(theta)/dt^2其中 alpha 是旋转加速度。因此,我们得到

r * d^2(theta)/dt^2 = g * sin(theta)

但是,我不知道这个微分方程的解析解,而且 Mathematica 也遇到了麻烦。您不能只是将dts 移到另一侧并进行积分,因为 theta 是 t 的函数。我建议通过数值方法解决它,例如Runga-KutteVerlet 方法。我使用 Mathematica 为您提供的参数解决了它,但是球移动得如此之快,它并没有真正放慢速度。但是,当我降低初始速度时,我可以通过将 theta 绘制为时间的函数来查看加速和减速。

添加其他东西,比如有限的球半径、旋转能量和摩擦力当然是可行的,但我会担心在继续之前能够解决第一种情况,因为它只会从这里变得更加复杂。顺便说一句,通过摩擦,您必须为给定的材料选择一些动摩擦系数,这当然与轨道施加在球上的法向力成正比,这可以通过将沿轨道的力分量求和来解决。圆的半径,不要忘记包括向心力条件。

如果你以前没有学过这种物理学,我绝对建议你买一本关于物理学的入门好书(含微积分)并完成它。你只需要关心适用于力学的部分,尽管这可能是本书的一个很大的部分。尽管像这个问题中的一些资源一样,可能有更好的途径可以追求。

于 2010-06-15T20:19:30.413 回答
1

如果没有加速度(x,y) =(xstart+ vx*time ,ystart + vy*time),速度保持不变,与半径无关

于 2010-06-15T15:57:09.497 回答
1

由于速度是恒定的,你将有一个角速度omega = vel / radius。您将获得球在其圆形路径上每秒移动的弧度数。

要获得当时的位置,t您只需要利用极坐标:

x = x_center + sin( 3/2*PI + omega*t)*radius
y = y_center + cos( 3/2*PI + omega*t)*radius

这是因为你从圆的底部开始(所以它3/2*PI)加上你每秒移动多少个辐射点(我们从切向速度获得它)。全部乘以半径,否则您将考虑一个统一圆。

编辑:既然您想知道如何找到受许多不同力影响的物体的位置,我可以告诉您,通常物理引擎并不关心找到移动物体的方程。它只是将力应用于考虑其预期运动(如圆形运动)或环境因素(如重力或摩擦)的对象,并通过施加力并使用积分器来逐步计算坐标以查看结果。

于 2010-06-15T16:03:29.677 回答
1

忽略摩擦,球上的力是重力和轨道。

首先,有两种主要情况——速度是否足以让球绕圈:

initial energy = 1/2 m v² = 0.5 * 5 * 200 * 200

potential energy = m g h = 5 * 9.8 * 20

所以它会绕整个循环。

最初球在循环的底部,theta = 0

球上的加速度是 g 沿轨道的分量

a = g⋅sin theta

行进的距离是 theta * 半径。它也是加速度对时间的二重积分。

theta ⋅ radius = double integral of acceleration against time

对加速度积分一次给出速度,积分速度给出距离。

所以解决这个问题:

theta ⋅ r = ∫(∫ g⋅sin theta.dt).dt

那么你的 x 和 y 是 theta 的微不足道的函数。

您是通过分析还是数字方式解决它取决于您。

对于动态摩擦,摩擦力通常与物体上的法向力成正比。所以这将等于向心力 - 与角速度的平方成正比,以及垂直于轨道的重力分量(g sin theta)

于 2010-06-15T16:33:40.483 回答
0

你没有告诉任何关于你希望你的速度如何改变的事情。有摩擦模型吗?如果没有摩擦,那么公式很简单:

length = velocity*t
x = sin(length)*radius
y = -cos(length)*radius

如果速度正在变化,那么您必须将长度更改为类似

length = integral over dt[0..t] (velocity dt)
于 2010-06-15T15:57:13.380 回答
0

我唯一想补充的是,如果这是质量为 5 公斤的真实球(球体),那么它的直径必须dia=(6*m/(PI*rho))^(1/3)rho材料的密度。对于钢 ( rho=7680),直径为dia=0.1075 米。因此,球场半径(球的重心所在的半径)等于R=10-(dia/2)R=9.9466米。

当包括摩擦时,问题会变得更加复杂。一方面,您必须考虑摩擦的方向(假设干摩擦理论)。这取决于球在其轴上的旋转量,这取决于球的惯性矩。

当您进行模拟时,您可能希望监控总动能+和总势能,并确保您没有向系统添加能量(或带走能量)。[不要忘记包括动能的旋转分量]

拿一本关于动力学的标准书,我相信书中已经描述了类似的问题。我会推荐“工程师的矢量力学 - 动力学”。

于 2010-07-21T12:47:08.410 回答