我们有两个质量相等的质量为0.1kg的硬质弹簧连接,k = 10^5N/m。弹簧的剩余长度(以及两个质量之间的初始距离)为d0 = 0.15m质量1具有初始速度(2.77,1.25,0)m/s,而质量2具有初始速度(1.25,4 ,0)m/s。两个质量通过弹簧连接...试图模拟飞行,但有困难
我想写一个代码,模拟重力下这个系统的飞行,而忽略空气阻力。我也想放置位于系统质量中心的第三个球体。
这是我到目前为止已经写的:
from visual import *
mass1 = sphere(radius = 0.01)
mass2 = sphere(pos = (0.15, 0, 0), radius = 0.01)
COM = sphere(pos = (0.15/2, 0, 0), radius = 0.01)
mass1.m = 0.1
mass2.m = 0.1
k = 1*10**5
mass1.v = vector(2.77, 1.25, 0)
mass2.v = vector(1.25, 4, 0)
mass1.p = mass1.v*mass1.m
mass2.p = mass2.v*mass2.m
dt = 0.0001
t = 0
while 1:
g = 9.8
d = (mass1.pos-mass2.pos)/mag(mass1.pos-mass2.pos)
Ft12 = mass1.m*d*k*0.15
Ft21 = mass2.m*d*k*0.15
Fnet = Ft12 + Ft21
mass1.p += Fnet*dt
mass2.p += Fnet*dt
mass1.vA = 0.5*(mass1.v + (mass1.p/mass1.m))
mass2.vA = 0.5*(mass1.v + (mass2.p/mass2.m))
mass1.pos += mass1.vA*dt
mass2.pos += mass2.vA*dt
COM.pos = (mass1.pos-mass2.pos)/2 + mass1.pos
t += dt
FT12是紧张的,从球1的力球2,Ft21从2到1。当然,我也不会发布如果我得到准确的结果,但我甚至没有得到我可以随时观察的结果。屏幕很快变得空白,我没有机会看到发生了什么。我基本上希望这个系统在重力的作用下被“抛出”,在这个系统中你可以想象投影机的轨迹将是抛物线的轨迹。任何帮助将不胜感激。如果我的部队错了,或者我需要在某些地方添加一些,请告诉我!
谢谢大家!
谢谢你指出。现在我想到了,它确实没有任何意义。 – 2012-03-01 21:06:27