2016-10-21 2 views
0

У меня есть этот довольно большой список образцов ускорения (около 300 тыс.), Которые я рисую с помощью matplotlib. Моя цель - также рассчитать скорость и получить ее максимальное значение.Скорость от массива образцов ускорения в Python

Есть ли способ интегрировать список ускорений, чтобы получить список скоростей?

+0

Вы должны по крайней мере, начальную скорость, если не считать, что 0. – khachik

+0

Это на самом деле 0 – Javier

ответ

0

So. Так я выполняю работу, предполагая, что частота дискретизации составляет 10 Гц.

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) и начальная скорость равна нулю,

вы можете просто просуммировать с начала списка к текущему времени, как это:

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

выше предполагает, что образцы берутся каждый второй (или любой другой единицы времени, которое вы хотите). Если время выборки различно, измените, например,

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

Эти предположения совершенно правильно. Но это занимает так много времени, что становится непрактичным ... – Javier

Смежные вопросы