LINUX.ORG.RU
ФорумTalks

{пятница замри}помогите перевести значения скорости в ускорение

 , ,


0

0

есть значения скорости (в км/ч), измерянные с периодом в 50мс. из них строится график. помогите перевести эти значения в ускорение, дабы из них тоже построить график.

я пытался подобрать формулу/алгоритм, но у меня получается либо опять график скорости либо достаточно ровная линия с очень частыми но очень маленькими колебаниями.

понимаю что задача пустяковаю, но мозг уже плавится. если есть кто жывой^Wтрезводумающий — подскажите

======================= UPDATE ===========================

ftor, djzielony угадали - показания сняты с машины, которая проехала тестовой участок

на скрине, который я выложыл, у меня есть все тот же график (синий), который тут все советовали. Красным на том же рисунке изображен график того же ускорения но снятого с другого датчика (точнее данные с которого, оно посчитано).

на рисунке, который сделал djzielony есть три графика. последний из них очень похож на мой красный и как раз он мне и нужен. а данные для него готовятся двумя методами из scipy (если кто знает что они делают на самом деле - YAW)

b,a = ss.butter(rz, f/Fs/2, btype='low')
acc_filt = ss.lfilter(b,a, acc)

когда я «подписывался» на данное задание, меня уверяли что все математика уже есть. но как оказалось не вся. ну и я решил посмотреть что я смогу сделать.. ну а дальше вы все знаете.

да, спасибо тем, кто давал дельные советы

★★★★★

Последнее исправление: ZuBB (всего исправлений: 2)

возьми производную.

dikiy ★★☆☆☆
()

есть значения скорости (в км/ч), измерянные с периодом в 50мс. из них строится график. помогите перевести эти значения в ускорение, дабы из них тоже построить график.

блжад.

ускорение - изменение скорости. Если за 1 сек скорость увеличивается на 123 м/с, то ускорение равно 123 м/с²

drBatty ★★
()
Ответ на: комментарий от ZuBB

совет: переведи сначала ВСЁ в СИ. В метры, секунды, и т.д.

drBatty ★★
()
Ответ на: комментарий от orm-i-auga
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 87.47492246189664 
17:37:22 DEBUG prev speed km/h: 86.84770617450391 
17:37:22 DEBUG diff: 0.6272162873927272 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 87.7051996531737 
17:37:22 DEBUG prev speed km/h: 87.47492246189664 
17:37:22 DEBUG diff: 0.23027719127705382 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 88.20777595956205 
17:37:22 DEBUG prev speed km/h: 87.7051996531737 
17:37:22 DEBUG diff: 0.502576306388363 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 88.76444447416354 
17:37:22 DEBUG prev speed km/h: 88.20777595956205 
17:37:22 DEBUG diff: 0.5566685146014834 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 89.09453664017195 
17:37:22 DEBUG prev speed km/h: 88.76444447416354 
17:37:22 DEBUG diff: 0.33009216600841284 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 89.53749066260653 
17:37:22 DEBUG prev speed km/h: 89.09453664017195 
17:37:22 DEBUG diff: 0.44295402243457715 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 89.79309865742853 
17:37:22 DEBUG prev speed km/h: 89.53749066260653 
17:37:22 DEBUG diff: 0.25560799482200025 

http://oi45.tinypic.com/2iizplc.jpg

красный график — правильный

ZuBB ★★★★★
() автор топика

Вычитай из следующего значения скорости предыдущее, дели на 3.6 и дели на 0.05. Итого получается (v(t+50мс) - v(t)) / 5.55555555.....5555

Kiborg ★★★
()
Ответ на: комментарий от Kiborg

стоп, последнее деление должно быть умножением.

Kiborg ★★★
()
Ответ на: комментарий от ZuBB

Ускорение-то постоянное?

Если нет и меняется примерно линейно - можно регрессию построить.

Если меняется абы как - изучать надо.

Ваши ключевые слова: «анализ временных рядов».

zhuravlik ★★★★
()
Ответ на: комментарий от quickquest

два чая этому господину!

элементарная задаче же. скорость — первая производная координаты по времени, ускорение — первая производная скорости по времени.

8 класс средней школы, уравнения кинематики.

ymn ★★★★★
()

У этой задачи самая хардкорная часть - избавление от шумов, связанных с погрешностью измерения скорости. Наивное [v(t0+dt)-v(t0)]/dt может не подойти.

Manhunt ★★★★★
()
Ответ на: комментарий от ZuBB

ускорение - изменение скорости.


трезво.

ох, лор уже не торт-не торт.

cdshines ★★★★★
()
Последнее исправление: cdshines (всего исправлений: 1)
Ответ на: комментарий от ZuBB

Если ничего не попутал, то вот ускорение в км/ч^2

17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 87.47492246189664 
17:37:22 DEBUG prev speed km/h: 86.84770617450391 
17:37:22 DEBUG diff: 0.6272162873927272
diff:  0.6272162873927272 * (3600 * 1000 / 50) = 44 640 km/h^2
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 87.7051996531737 
17:37:22 DEBUG prev speed km/h: 87.47492246189664 
17:37:22 DEBUG diff: 0.23027719127705382 
17:37:22 DEBUG == cycle ==  
17:37:22 DEBUG curr speed km/h: 88.20777595956205 
17:37:22 DEBUG prev speed km/h: 87.7051996531737 
17:37:22 DEBUG diff: 0.502576306388363 

orm-i-auga ★★★★★
()

1) переводишь в СИ

2) вычитаешь 2 соседних значения

3) делишь на период измерения

//_всё_ в СИ. Ты чего, пьян чтоли?

RedPossum ★★★★★
()
Ответ на: комментарий от RedPossum

и да, надеюсь тебе ПИД-регулятор потом не предстоит сделать

RedPossum ★★★★★
()
Ответ на: комментарий от ZuBB

// нет, не пьян.

но голова точно нк варит

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

Если меняется абы как

о, да

А хоть что-то в уравнениях известно?

Просто в этом случае единственный здравый вариант - построить некоторую мат. модель и затем подгонять ее коэффициенты под значения. Ну т.е. идентификация.

Если модель получить вообще неоткуда - начните с авторегрессионной модели и поувеличивайте порядок, пока не добьетесь чего-то похожего.

zhuravlik ★★★★
()
Ответ на: комментарий от orm-i-auga

А каков критерий неработоспособности?

ТС же написал, что у него ускорение изменяется по неизвестному закону.

zhuravlik ★★★★
()

Физический смысл ускорения из школьной физики — величина, на которую изменяется скорость за определённый промежуток времени.

a = Δv/Δt

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

впредь я никогда больше не буду писать первое что пришло в голову не осилив весь тред

ZuBB ★★★★★
() автор топика

Воспользуйся какой-нибудь формулой численного дифференцирования. График можно изображать каким-нибудь интерполированием по точкам.

FuriousBean
()
Ответ на: комментарий от ZuBB

red is ok. other - bad

Ты вобще классный перец. Думаешь, сейчас все телепаты лора проникнут к тебе в мозг, чтобы выяснить что такое red, и что такое other?

yvv ★★☆
()
Ответ на: комментарий от ZuBB

На 0.6 км/ч меняется за 50 мс. Соответственно, за час изменится в час/50мс раз больше.

orm-i-auga ★★★★★
()
Ответ на: комментарий от orm-i-auga

по времени точно нет. немного по форме амплитуды. и то только начиная с 2/8 и до 4/8

ZuBB ★★★★★
() автор топика

Да блин, смотри.

import numpy as np

Fs = 1/0.05
speed_in_kmh = np.loadtxt('in.txt')

speed_in_ms = 1000/60/60. *speed_in_kmh

acc = (speed_in_ms[1:] - speed_in_ms[:-1])*Fs

np.savetxt('acc_table.txt', acc)

#for painting
import pylab as py
py.figure()
t = np.arange(0, len(acc)/Fs, 1/Fs)
print len(t)
py.plot(t, speed_in_ms[0:-1])
py.xlabel('Time, [s]')
py.ylabel('Speed, [m/s]')


py.figure()

py.plot(t, acc)
py.xlabel('Time, [s]')
py.ylabel('Acceleration, [m/s^2]')
py.show()

djzielony
()
Ответ на: комментарий от zhuravlik

начните с авторегрессионной модели

А ты, похоже, в теме. Подскажи пожалуйста годный учебник, чтобы раскрывалась такая тема: есть грубая и неточная матмодель системы, система функционирует под влиянием воздействий извне, есть косвенные и неточные наблюдения над системой, нужно как можно точнее вычислить координаты системы (или производные от них) и оценить погрешность вычисления — какие к этому есть подходы, области применимости подходов, сравнение сильных и слабых сторон подходов.

Manhunt ★★★★★
()
Ответ на: комментарий от ZuBB

Тогда попробуй подогнать графики коэффициентом достаточно близко и попробовать понять, что это за коэффициент. А вообще, либо тут определение скорости и ускорения другое, либо какие-то данные не верны.

Kiborg ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.