计算元组数组中的圆周运动

时间:2016-07-29 12:08:34

标签: python arrays physics

我有一个交付学校的项目。 该项目是基于随机运动的系统,我和我的伙伴选择研究双摆集(运动不是随机的,而是混乱的)。 我们的研究问题想要调查系统是否可以在任何点上达到周期性运动状态以及这将发生多长时间。 我的问题是我们如何在模型中检测到填充了2个值对的数组中的圆周运动。 阵列将像这样 - (theta1,theta2)填充2个摆杆的2个角度。 其余的变量,例如摆杆的长度或2个质量是已知的,因此从这些角度我们可以计算出系统其余部分的状态。 每个数组元素都是根据移动时间添加的,每个数组元素之间的时间差为0.05秒,因此每个数组元素的时间可以计算为n * 0.05。

Double Pendulum

我们可以轻松地从我们使用EJS开发的双摆模型中导出数据对数组,并使用用python或其他东西编写的脚本对其进行分析,只是我们不知道解决这个问题的最佳方法是什么。 希望解释清楚,谢谢你的帮助! :)

1 个答案:

答案 0 :(得分:2)

编辑: OP澄清了问题并声明他正在搜索定期移动,而不是m1m2 翻转

下面的方法是指双摆的两个质量之一的翻转检测

翻转检测

检测摆锤翻转的时间点(或模拟时间片)取决于您如何定义实际的翻转。让钟摆的中心位于(0, 0)

请注意,这只是一个粗略的想法,可以作为更准确的翻转检测计算的起点。

单摆壳

如果x坐标在其y坐标为正时改变其符号,则可以认为单摆是翻转的。这是因为我们知道,一旦它越过天顶,它将继续向同一方向移动。

双摆箱

flip 的定义并不像双摆的情况那么简单。

正如OP可能知道的那样,双摆具有混沌运动并且只能在数字上解决。即,它的轨迹无法预测。

Idealized double pendulum

(图片来自维基百科的100Miezekatzen,根据知识共享许可)

对于m1翻转的情况,大致相同的情况与单摆的情况相同。然而,在越过天顶之后,m1仍然可以在某些条件下被m2的力强制反转其(角度)运动方向。因此,仅检查x坐标是否改变其符号是不够的。相反,我们必须检查更长的观察序列(从模拟期间)并确保方向(即theta1不断减少或增加)在该期间保持不变。根据设置中的质量和长度,我们可以确定地计算theta1的实际间隔,它仍然可以强制在正y处重新穿过天顶,但它可能足以搜索对于所有这些都持有的序列:

  • m1已将大约pi/2(四分之一圆)的角距离覆盖到同一方向
  • y的{​​{1}}坐标在整个序列中是正的
  • m1 x坐标的符号在序列的中心只改变一次

对于m1翻转的情况,我们必须定义在应该找到序列期间必须保持的类似条件,但始终与m2相关。让我快速猜一下:

  • m1是积极的
  • m2.y - m1.y仅对整个序列增加或减少(移动方向相对于theta2 - theta1不变)
  • m1在此序列中只更改一次符号(m2.x - m1.x越过m2上的天顶
  • ...还有几个?