用加速度计计算倾斜度?


16

我在面包板上有一个模拟设备ADXL203加速度计,并且想用它来测量某些设备在相当高的频率(20-30 Hz)下的倾斜度。我将其连接到Campbells cr3000记录仪以进行感应。是否有人指导如何解释传感器输出。谢谢


感谢大家的评论。特洛伊(TROY)
特洛伊·詹森(Troy jensen)2010年

我知道我最高,但是如果您不喜欢我的,至少会接受某人的。
Kortuk

Answers:


12

我在这里有很多话要说,其中一些确实涉及同意pingsept和企鹅。

cr3000

cr3000以16位和100 Hz进行采样的速度会稍慢一些,以便您轻松删除数据中的噪声,但可以使用的精度要高得多。我怀疑如果没有一些非常好的过滤算法,您能否获得13或14位的精度。加速度计告诉我振动是魔鬼,爆炸的声子。

输出电容

您需要确保按照数据手册所述和信号理论的指示进行操作。引用数据表:

ADXL103 / ADXL203的输出的典型带宽为2.5 kHz。用户此时必须过滤信号以限制混叠误差。模拟带宽必须不超过模数采样频率的一半,以最小化混叠。可以进一步降低模拟带宽,以减少噪声并提高分辨率。

这意味着您需要选择一个电容器以将速率保持在50Hz以下。如果将其放置在此之上,则可以得到混叠,并且混叠使振动噪声成为您与之签约的魔鬼。它们说明了如何计算设备的噪声水平,并且在50Hz带宽下,峰峰值噪声为.006 *如果在带有振动的设备上放置重力,甚至不会注意到重力。

解释数据

这可能是您最感兴趣的,并且相对容易实现。您需要标记设备处于中性的时间,这是指设备处于平坦状态并且相对静止的时间。在这一点上给它一秒钟或两秒钟,然后您可以使用此数据的中值确定无G电压。然后,您可以将其用作比较设备的依据。现在,从这一点来看,我可以直接引用数据表:

当加速度计垂直于重力时,其输出每倾斜度将变化近17.5 mg

因此,如果您不会非常倾斜,则可以简单地使用此近似值,但是如果您打算在两个方向和一个非常小的角度都倾斜,则需要使用几何形状。

如果您要变得更大,它们甚至具有以下等式:

间距= ASIN(AX / 1 g)
滚动= ASIN(AY / 1 g)

据我所知,您的设备每放置1G加速度,就会产生1V变化。如果您已经完成了校准阶段,那么您应该能够进行测量,减去偏移量,并且您将获得G的数量。

除非您遇到问题或希望获得更多信息以改进方法,否则请在这里停止阅读。

我还增加了一些其他方面的讨论,以讨论其他方法和方法,以改进快速变化的系统或将对设备进行采样的系统编程的系统的方法。

采样频率

您必须以比设备更改其加速方向的速度快得多的速度采样,因为您必须每秒测量20-30次定向。您需要能够足够快地进行测量,以滤除由于其他因素引起的振动噪声和加速度,我发现在使用加速度计时,噪声和加速度会很大。

3轴加速度计

其次,如果您有一个三轴加速度计,那么您可以很容易地识别出一个轴何时由于重力而失去部分加速度(即,当z轴的幅度下降2m / s ^ 2时,您知道您在另一轴上看到的增益是重力。这仍然很混乱,但是通常会增加加速度,该加速度会提供更改方向所需的速度,然后由于方向更改而导致加速度发生变化,这通常使您能够识别方向。

2轴问题

正如penjuin所说,这将是使用2轴加速度计几乎不可能实现的,如果您的系统每秒可具有20-30个不同的方向,或者如果您需要精确地测量方向,则充其量只能是粗略的一直。我相信,硕士生可以为此写一篇很好的论文,或者博士学位可以写一篇有关改进该算法的论文。

振动噪音

要添加更多内容,如果可以将设备放在可以使其静态锁定到设备运动的顶部,但可以减少振动,则可以得到更好的数值,并且不需要太多的软件过滤。可以在加速度计和设备之间放置一些简单的泡沫填充物,如果是数字填充物,则不应增加电噪声并有助于吸收一些振动噪声。仅当看到振动噪声问题时才应这样做。

数字加速度计

我建议您使用SPI来连接数字加速度计。数据可以非常高的速率输出,并且您可以在SPI中进行后台工作,因为SPI会不断地加载下一组值。如果要用数字方式完成,您将需要一个不错的微控制器。如果您可以给我更好的具体信息,我可以提供更好的反馈。如果要基于倾斜检测发出警告,那么使用所有模拟信号都应该非常容易,但是如果要在操作过程中测量设备的位置和角度,请做好一些准备工作。

请让我知道是否可以添加一些内容,以使此答案更加清楚或适用于您所寻找的内容。


1
仅作记录,这个答案是史诗般的。
2010年

1
Kortuk博士,加速度计博士!:-)
杰伊·阿特金森

我之所以写这个答案,是因为我一直认为自己忘记了一些东西,然后才意识到它有点长,并且很快就添加了答案,但是似乎人们更喜欢长答案。
Kortuk 2010年

关于振动噪声,由于存在无刷直流(BLDC)电动机,我在运行期间可能会有较大的噪音,但是在打开之前,仍然有明显的振动数字。
Kortuk 2010年

3

我已经用许多疯狂的数学思想多次写和改写了这个答案,但是老实说,我认为这不可能做到任何准确性。您可以做一些向量数学,但是如果:

  • 物体停止移动
  • 物体具有恒定速度
  • 物体碰到凹凸/您碰到它
  • 向上倾斜产生的力低于Z轴的分辨率

尽管我确定可以通过某种疯狂的解决方法来执行此类操作,但我不确定这样做是否值得。加速度计根本不是为完成此任务而设计的(至少据我所知)。对于你想达到什么目的,我建议使用一个陀螺仪的方法任何 这些,所有这些都将是以上所有的问题有相当的抵抗力。


加速度计实际上是为此目的而设计的,整节内容将介绍如何做到这一点。在许多情况下,加速度计的成本非常低廉,有时成本是一个更大的问题,而不是完美的功能。
Kortuk 2010年

3
我总是尝试向学生解释这一点,我将在这里添加它,因为我认为这是一个重要的概念。工程技术并非总是以最佳方式进行,而是以用户无法分辨除价格标签之外的任何其他方式进行。
Kortuk 2010年

2
首先要说些什么,要比最后一个要好。
Kortuk 2010年

我同意,但这取决于您的动机(特洛伊没有说明);您希望它运行良好还是要学习?它们不一定相互排斥,但是除非您特别想了解编译器设计,否则您不会编写自己的编译器只是让LED闪烁。
杰里米2010年

是的,我想补充一下,以讨论您的答案,通常,如果他需要每秒分辨30次不同的方位,它将对它产生巨大的加速度,这反过来又意味着您需要一个100多个样本第二。
Kortuk 2010年

3

如果我正确理解数据表,则围绕轴倾斜时,每个轴的输出将在1.5 V和3.5 V之间变化。当设备是平坦的时(忽略±1度的封装对准误差),两个输出均应读取2.5V。

如果只需要测量一个方向上的倾斜度,则可以取与2.5 V的偏差的反正弦值,以弧度为单位获取角度,然后转换为度。如果设备可以向任何方向倾斜,则可以计算两个角度,然后根据这些角度计算复合角度。

明确地说:围绕一个轴的角度=(180 /π)*反正弦(Vout-2.5)

为了获得良好的频率响应,您将需要较小的输出电容器Cx和Cy。从第6页脚注6开始。在数据表3中,看起来0.02 uF可以为您提供250 Hz的带宽,这大概适合您的采样率。您可能会高达0.1 uF,将带宽限制为50 Hz,但是您的信号将开始衰减。


我认为它不会衰减信号,除非您指的是较高的频率,这是上限。他需要达到50Hz或更低的频率才能匹配他的数据采样设备。
Kortuk 2010年

1
啊,我没有从混叠的角度考虑它。我仍然认为大电容会衰减高频信号,但是在这种情况下,这实际上是一件好事。所以是的,将带宽设置在50 Hz左右很好。
2010年

3

我要添加第二个答案,因为我的另一个答案很大,您可能只想简单。

您的滤波器上限必须为0.10 uF或更大,才能使您保持低于混叠率(50Hz)。您需要在设备坐姿水平和Z方向上所有重力加速度的情况下进行几秒钟的校准,这是确定零G点的方法。

您为零G点测量的电压,在X和Y方向上可能会有所不同,什么也没有。只需获取您获得的任何电压,然后从中减去该电压即可。减去偏移量后的该电压就是您在该方向上获得的Gs数。

拿起arcsin,您将朝该方向倾斜。

这忽略了噪声和其他加速度。如果NaN完全倾斜并且有任何噪音,请准备好NaN。


0

为了获得任何角度,您需要在X和Y方向上测量重力加速度。减去中间电压(2.5V),使零表示“无加速度”。

现在,您可以使用arcsin(y / x)找到角度。但是,由于除法以及符号不明确,因此使用起来很烦人,因此您真正想要的是C函数atan2(y,x)。atan2()获得所有360度正确的符号。


离题,因为您没有使用微型计算机:如果您正在寻找要在微控制器上使用的atan2(),我的网站上有一个atan2()生成器:http : //vivara.net/cgi-bin/柯基


对于0G,这不是保证的2.5V。因为他可能会使用计算机进行数学运算,所以我怀疑他用来进行数学运算的方法是否会成功。
Kortuk 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.