4

我正在编写一个应用程序,它将使用加速度计来计算施加在手机上的平均 geforce。思考这个问题,我得出的结论是,当手机处于静止状态时,将所有轴值相加会得到 +9.8(重力加速度)的答案。

我现在假设如果我从所有轴的总和中减去 9.8,它将给我施加在手机上的合力,而不考虑重力。因此,如果手机处于固定位置,它将返回值 0。

现在,如果手机直接放在一个轴上,这确实是正确的,但如果手机要以约 45 度角靠在某物上,它会返回一个 4-5 的值(大约是重力的一半)角度越接近轴,注册的力越小(继续假设它是成比例的)

据我了解,这不应该发生,它应该返回一个 0,因为所有轴都会相互抵消,不是吗?由于手机是静止的,所以手机应该没有用力记录对吗?

4

1 回答 1

1

4-5 m/s2 的值表示您的计算中存在小错误或硬件缺陷。你说你正在添加所有值,但是你是怎么做的呢?您必须将幅度计算为 sqrt(x*x + y*y + z*z)。这是因为速度、位置等加速度是矢量,它们的长度是根据勾股定理计算的。

一般来说,这些传感器并不像您想象的那么精确。在 iPhone 上,我测量的 g 力值介于 9.75 和 9.87 之间。值取决于温度(把它放在冰箱里,你会得到更低的值 - 我检查过它;-) 并且在改变方向时确实存在差异。我发现值增量为 0.3 m/s2。为了解决这个问题,您将需要大量的数学运算(卡尔曼滤波器或类似的东西),当然还有第二个传感器(陀螺仪,因为磁力计,即罗盘反应太慢)。

于 2011-08-02T10:40:17.263 回答