我們有兩個質量相等的質量爲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