我想要計算旋轉體的角速度。從數據來看,我在每個時間間隔都有對象的角度。例如。Numpy幫助計算旋轉體的角速度
numpy的數組= [5,85,185,270,355,10,75,170,250345,25,...]
爲順時針旋轉並且類似地對於
逆時針旋轉numpy的陣列= [25,345,250,170,75,10,355,270,185,85,5,...]。
所以,當我嘗試計算角度之間的差異,對於0到360的範圍,反之亦然,我可以使用numpy.diff(),在這種情況下工作良好。
當我碰巧從360到0的差異或例如。如圖所示。 A,從355度到5度,我不能再使用numpy.diff()。 我必須使用一個條件語句,如:
if ang[i+1]>280 and theta<80:
new_theta=-1*((theta-ang[i+1])%360)
並且類似地當所述旋轉運動是在逆時針方向上,我使用類似於上述的條件來獲得在角度(dTheta)之差:
elif ang[i+1]<80 and theta>280:
new_theta=360%(theta-ang[i+1])
與廣義當角度既不是接近極限,即0或360
new_theta=ang[i+1]-theta
那麼有沒有更好的計算方法可以快速有效地提供更好的結果?
我無法處理範圍限制。我不確定scipy norm
在這裏是否有幫助。
歡迎任何有關改善問題的建議。
謝謝。
您必須對最大角速度做一些假設,因爲您的物體可能會在一個時間步旋轉350度。如果不能,我會說你應該計算差異,那麼如果他們大多數是積極的,相應地糾正消極的或相反的。 – Aaron