2016-10-21 2 views
0

私はmatplotlibでプロットしたかなりの加速度サンプル(約300k)を持っています。私の目標は速度をプロットしてその最大値を得ることです。Pythonの加速サンプルの配列からの速度

速度リストを取得するために加速リストを統合する方法はありますか?

+0

あなたは、それはそれは、これらの仮定が完全に正確である、実際に0 – khachik

+0

であると仮定しない限り、あなたは、少なくとも初期速度を必要としています。しかし、これは時間がかかりすぎて実用にならない... – Javier

答えて

0

Soこれは私が10 Hzのサンプリングレートを仮定して仕事をしている方法です。

acceleration = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
velocity = [0] 
time = 0.1 
for acc in acceleration: 
    velocity.append(velocity[-1] + acc * time) 
del velocity[0] 
2

はい、方法があります。それは「数値的統合」と呼ばれ、その言葉で必要なツールを見つけたり、自分で作ることができます。

ウィキペディアの記事には、離散データへの統合を実装する素晴らしい例がいくつかあります。あなたは、長方形のルールや台形ルールで開始することができますたとえば、:

https://en.wikipedia.org/wiki/Numerical_integration

ただの統合のように、未知の定数(初速)が存在します。ここで

は、Pythonを使用して多くの可能な解決策の一つだ:scipy.integrate:いくつかの仮定で

https://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html

0

、それはシンプルにすることができます。例えば、

1)あなたのサンプルが時間内に等距離にある場合、 2)あなたは、各測定間の時間を知って、 3)および初期速度はゼロであり、

あなたは、単にリストの先頭から合計することができます

上記の例では、1秒ごとに(または任意の時間単位で)サンプルを取得することを前提としています。サンプリング時間が異なる場合は、次のように変更してください。

time_between_samples = 0.1 
acceleration_list = [1,2,3,4,5] 
velocity_list = [sum(acceleration_list[:i]) * time_between_samples for i in range(len(acceleration_list))] 
+0

で0 – Javier

関連する問題