Уравнение, которое вы, возможно, ищете, выглядит следующим образом:
Velocity = (Gravity*Acceleration)/(2*PI*freq)
Правильное использование единиц для этого уравнения (метрики) будет
Gravity = mm/s squared = 9806.65
Acceleration = average acceleration over 1 second
Frequency = Hz (of the acceleration waveform over 1 second)
Например, если вы собрали данные со всех трех осей акселерометра, вы должны сделать следующее, чтобы получить форму волны ускорения (в необработанных значениях) для трехмерного пространства:
inputArray[i] = sqrt(X*X + Y*Y + Z*Z);
После того, как данные собраны, используйте только то количество выборок в осциллограмме, которое было бы собрано (если есть задержка в 1 мс между значениями, используйте только 1000 значений).
Сложите значения вместе и разделите на количество выборок, чтобы получить среднее значение (вам может потребоваться сделать все значения положительными, если данные акселерометра имеют отрицательные значения). Вы можете использовать этот алгоритм, чтобы сделать это, прежде чем находить среднее значение.
for(i = 0; i < 1000; i++){
if(inputArray[i] < 0){
inputArray[i] = inputArray[i] - (inputArray[i]*2);
}
}
Как только вы получите среднее ускорение, вам нужно выполнить приведенное выше уравнение.
static double PI = 3.1415926535897932384626433832795;
static double gravity = 9806.65;
double Accel2mms(double accel, double freq){
double result = 0;
result = (gravity*accel)/(2*PI*freq);
return result;
}
Примером может быть то, что среднее ускорение составляет 3 gs за 1 секунду при качании:
ПРИМЕЧАНИЕ. Этот расчет основан на синусоидальной форме сигнала, поэтому частота будет представлять физическое движение акселерометра, а не частоту дискретизации.
Accel2mms(3, 1);
3 gs за 1 секунду с частотой 1 (1 колебание в одном направлении) = 4682,330468 мм/с или 4,7 метра.
Надеюсь, это что-то вроде того, что вы ищете.
Имейте в виду, что этот расчет основан на синусоидальной форме волны, но адаптирован для расчета на основе одного движения (частота 1), поэтому он может быть не очень точным. Но по идее должно работать.
person
Sam
schedule
07.10.2014
Step Counter API
. Это не совсем измерение смещения. Но проверьте, полезно ли это. - person JiTHiN   schedule 29.09.2014