您可能正在寻找的方程式是:
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)
例如,如果您从加速度计的所有 3 个轴收集数据,您将执行以下操作来获取 3D 空间的加速度波形(原始值):
inputArray[i] = sqrt(X*X + Y*Y + Z*Z);
收集数据后,仅使用波形中已收集的样本量(如果值之间存在 1ms 延迟,则仅使用 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;
}
例如,挥杆过程中 1 秒内的平均加速度为 3 gs:
NOTE:该计算基于正弦波形,因此频率代表加速度计的物理运动,而不是采样率的频率
Accel2mms(3, 1);
1 秒内 3 gs,频率为 1(沿一个方向摆动 1 次)= 4682.330468 mm/s 或 4.7 米。
希望这就是您正在寻找的东西。
请记住,此计算基于正弦波形,但适合基于单个运动(频率 1)进行计算,因此它可能不是很准确。但理论上应该可行。