使用Allegro角度传感器的长行程滑动传感应用亚博尊贵会员

使用Allegro角度传感器的长行程滑动传感应用亚博尊贵会员

下载版本

亚历克斯·莱瑟姆和韦德·巴辛,
亚博棋牌游戏快板微系统公司有限责任公司

摘要

本应用笔记指导了使用角度传感器集成电路进行线性位置传感的设计过程,包括磁铁的选择和方向,输出线性化,以及使用传感器集成电路阵列扩展测量范围。此外,本文还提供了一些磁体和传感长度的测试数据,以表明这些解决方案的理论和现实世界的准确性是如何匹配的。

介绍

精确、低成本和非接触线性位置传感通常使用条形磁铁和磁传感器集成电路或传感器集成电路阵列来实现。磁铁附着在移动的物体上,传感器的位置使磁铁能够通过它滑动。图1显示了典型的配置和字段。当磁铁滑过x方向在,场在y方向看起来像一个正弦波,磁场和位置是线性的x= 0。

图1

图1:磁场与多气隙磁铁棒的位置。磁体长度在所有图中都按比例绘制。

这种线性位置传感方法面临一些挑战,包括:

  1. 传感器IC和磁体之间的气隙变化会引起测量误差。
  2. 磁强度随温度变化会引起测量误差。
  3. 磁场与位置呈线性关系的测量范围被限制在磁铁长度的50%左右,导致需要的磁铁明显比被测量的行程长。

所有这三个问题都可以通过测量磁场与位置的角度来解决。

  1. 在应用中所见的典型变化中,场角与位置相对于气隙几乎相同。图2显示,与位置的角度几乎是不变的位置,尽管它确实改变一些随着气隙公差变大。
  2. 场角与场强无关。
  3. 在磁体长度的大部分时间内,场角与位置呈线性关系,通过线性化,行程长度可达到磁体长度的150%或更多。图3显示了两种情况下,线性化到标称气隙后的气隙位置误差通过(磁场在y方向)和磁场角测量的情况。与通过方法,只有10mm的行程与0.5 mm的精度(为±0.5 mm的气隙公差)可以被感知的16mm磁铁显示。然而,使用角度法,对于相同的物理配置,可以感知超过30 mm的行程,精度为±0.5 mm,本质上是线性感知范围的三倍。
  4. Allegro A1335磁角度传感器IC非常适合使用上述角度方法进行线性位置传感,因为它提供了精确角度测量以外的先进功能,如:

    • 角度测量的分段线性化:这允许补偿靠近磁铁末端的角度与位置曲线的非线性,将线性传感区域扩展到磁铁边缘之外。这也允许调整角度输出相对于位置的斜率到任何期望的值。
    • 可寻址的我2C / SPI /发送:这允许一个数组中的多个ic在同一总线上。
    • 角输出夹:此功能对于使用多个集成电路的系统非常有用,因为夹子可以帮助MCU识别哪些传感器集成电路超出范围,哪些应该用于确定位置。

图2

图2:磁棒在多个气隙中的磁场角度与位置。

图3

图3:标称气隙线性化后的场和角度传感误差与位置。

基本系统配置

A1335可在一个TSSOP-14封装(或双模TSSOP-24系统需要冗余),并测量磁场的角度与封装。这意味着对于线性位置传感,IC需要垂直于磁体运动方向,如图4所示。有效气隙为磁敏感阵列(圆形垂直霍尔传感器)中心到磁铁边缘的距离。在A1335中,CVH偏离中心,因此可以根据需要帮助增加或减少系统中的气隙。

图4

图4:使用A1335的系统配置

线性传感磁系统的设计

必须根据测量的行程长度选择合适的磁铁尺寸和公称气隙,以创建具有所需精度的系统。系统主要需要设计如下:

  1. 磁角一般与位置成线性关系。
  2. 磁角相对于系统的气隙公差是足够恒定的。
  3. 磁场强度高于基于CVH的传感器ic所需的最小值,约为300高斯。

虽然这似乎需要平衡很多,但有很多适用于特定应用的磁系统,磁系统中的每个变量都对精度有特定的影响,允许快速做出调整,以提高性能,降低成本,等等。

  • 磁铁长度(l):根据经验,磁铁的长度至少应该是行程长度的60%。超过气隙公差的线性度和精度在磁铁的边缘之后会降低,所以,一般来说,磁铁越长,给定行程长度的误差就越低。
  • 公称气隙(d):选择气隙时,应使角度与位置近似成直线。空气间隙很小,尤其是较长的磁铁xy电场将变得非正弦(图5),角度与位置在气隙公差上不会是线性的或一致的(图6)l/ 3l/ 2运行良好。
  • 磁铁直径(D)一般来说,磁铁的直径越大,磁场就越强。对于推荐的钕磁铁来说,直径大致等于或略小于气隙通常效果很好。铁氧体磁铁更便宜;然而,由于它们的磁场强度约为原来的4倍,因此需要使用一个更大的磁铁来达到相同的磁场水平。

总的来说,对于给定的笔划长度,l年代,一个合理的设计首先是:

ll年代×0.65

dD= 0.4×l

从这里开始,可以增加或减少这些参数,以满足应用程序的目标。

为了确定系统是否满足设计目标,需要对磁场进行建模。虽然使用先进的三维磁建模软件可以得到最准确的结果,但在大多数情况下并不是必需的。使用在线的免费2D仿真软件,可以对场进行足够精确的建模。另外,在使用圆柱形磁铁的情况下,磁场可以相当容易地计算出来,在附录中提供了一个MATLAB函数。同样大小的条形磁铁会产生几乎相同的磁场。图7显示了使用这些方程的圆柱形磁铁的理论角度与气隙,以及使用A1335的实验结果-这两个匹配得很好。

图5

图5:D = 3/8″,L = 5/8″磁铁在不同气隙处的磁场与位置

图6

图6:D = 3/8″,L = 5/8″磁铁在不同气隙处的磁角与位置

图7

图7:磁场角度与位置,理论和测量

线性化/校准方法

根据系统的需要,可以使用不同的线性化或校准方法。这里,一个方法线性化输出的A1335与位置使用Allegro A1335样本程序员是描述的。该方法可以应用于每一个系统,也可以从一个系统中使用结果,并将发现的系数应用于所有其他系统,以获得相似的性能,而对生产测试时间的影响较小。

图7.5

  1. 启动程序:连接A1335到ASEK20,并将ASEK20连接到您的计算机。启动sample Programmer软件并打开A1335电源。请参阅《Allegro A1335样例程序员用户手册》,了解更多关于开始使用该程序员的细节。
  2. 进入长行程选项卡:程序员的“长行程”选项卡有助于自动化使用分段线性化的过程,可在A1335用于线性位置应用。亚博尊贵会员它还有助于掩盖这样一个事实,即角的测量正在处理,而且只在位置工作。
  3. 确定行程和代码的范围/mm:使用此方法进行线性化的全部范围是从代码256到代码3840,避免了零位附近发生翻转的范围,因此整个行程需要适应这个范围。这意味着代码/mm值,Cpmm,应该是:
    公式4 - 1
    例如,如果行程长度为25mm,Cpmm应该是143.36码/毫米或更少,所以这个值可能被舍入为一个整数,或者128,以简化微控制器中的数学从代码转换为毫米。如果在样例程序设计器中输入“行程范围”为25,然后点击“计算毫米/步长和编码/毫米”按钮,则Cpmm值将显示。然后这个值可以四舍五入到所需的数字;在此之后,点击“计算范围和毫米/步长”按钮。这将重新计算“旅行范围”基于新的Cpmm价值。例如,如果Cpmm被四舍五入到128,“行程范围”现在将是28毫米,这给了一个合理的数量的裕量周围的期望25毫米测量范围。
  4. 每个线性化步骤确定mm:分段线性化点每256个编码,所以确定每个线性化点之间移动多少毫米。
    公式4 - 2
    对于上面考虑的例子,mmstep应该大于1.79 mm,因为Cpmm被选为128名毫米一步是2毫米。该值显示在Samples Programmer中,其结果在数据输入表中显示为每个线性化点之间的毫米差异。
  5. 开始线性化测量X= 0:填写测量表。本质上,在每个“距离”,测量传感器的原始输出。线性化后,线性传递函数由“距离”和“期望”代码列描述。开始的位置X= 0(磁铁以CVH传感器为中心),确保“距离”= 0行突出显示,并单击“读取值”按钮。“Measured”列将被传感器读数填充,高亮显示的行将向下移动。
  6. 继续线性化测量:步进位置毫米一步,读取传感器输出到表的正确行。流程如下:
    1. N= 1
    2. 一步的位置XN毫米一步
    3. 确保排好XN毫米一步突出显示。软件将在每次读取后增加/减少行,引导通过测量。
    4. 点击“读值”按钮从A1335读取值,并在高亮显示的行中填充测量值。
    5. 重复步骤b到d,递增N每一次,直到N= 7。
    6. 重复步骤b到d,除非N从-1到-7。
  7. 计算和应用系数:点击“计算和程序设备”按钮。这将计算偏移和线性化的正确值,并将它们编程到设备中。
  8. 性能检查:点击“开始测试”按钮,不断从传感器读出位置。然后移动磁铁,检查传感器上的读数。

一个线性化传感器输出的例子如图8所示。在这里,每个线性化点的位置都改变了2mm,毫米一步= 2。这意味着Cpmm= 256/2 = 128 codes/mm,为线性化后传感器输出的斜率,如图8所示。同样,在位置X= 0,传感器输出2048。

图8

图8:线性化输出的A1335在气隙。磁铁1。

多磁体和冲程长度的实验结果

线性化结果提供了以下三种不同的磁体在不同行程长度。每个磁铁的关键值在下表中给出(所有磁铁都是钕的):

磁铁 行程长度 毫米一步
直径 长度
1 6.4毫米 15.9毫米 25毫米 2毫米
2 9.5毫米 19毫米 30毫米 3毫米
3. 12.7毫米 38.1毫米 50毫米 4毫米

下面的图显示了每个磁铁的输出角度与位置,以及在多个气隙中测量位置与位置的误差。误差基于理想传感器输出,理想传感器输出为:

方程5 - 1

重新安排这显示了如何转换从传感器输出的A1335到一个X的位置。

方程5 - 2

误差就是实际值之间的差X位置和计算的X位置从传感器IC输出。对于Magnet 1,这个错误如图9所示。

图9

图9:测量误差与气隙位置。磁铁1。

图10

图10:A1335在气隙上的线性输出。磁铁2。

图11

图11:测量误差与气隙位置。磁铁2。

图12

图12:A1335在气隙上的线性输出。磁铁3。

图13

图13:测量误差与气隙位置。磁铁3。

超温精度和分辨率

使用角度法测量线性位置的主要好处之一是它在空气间隙和温度上都有很高的精度。前几节都讨论了气隙的精度。超温精度主要取决于所使用传感器的角度精度。

A1335的超温精度约为±1.3度;然而,这必须在系统中转换为毫米。由于角度误差是相对于非线性的角度输出,因此必须考虑扫掠的原始角度,即在整个行程中大约180度。如图2所示。则位置测量误差可计算为:

方程6 - 1

对于25毫米的冲程,l年代= 25时,超温误差为±0.18 mm。位置分辨率可以用基本相同的方法计算。对于A1335,角度分辨率是0.8度(3 σ)。这意味着一个25毫米行程的位置分辨率将是0.8 / 180 ×l年代= 0.11毫米。当然,如果A1335的内部过滤是启用的,或读数的数量是平均的,这个分辨率将会提高。

使用多传感器集成电路扩展传感范围

扩展传感范围可以通过增加磁体尺寸来实现,或者通过在系统中添加更多的传感器集成电路来实现。随着所需行程长度的增大,更大磁铁的成本和尺寸将推动解决方案使用多个传感器。图14显示了使用多个传感器的配置。这里使用了三种传感器集成电路,但可以扩展到n传感器集成电路。

图14

图14:使用多个A1335角度传感器的系统配置

期望的行程长度,l年代,除以n(图14中为3)为了获得有效行程长度,lseff的:

方程7 - 1

然后围绕磁性系统设计lseff,使用上面描述的方法,以及n传感器间距为lseff,彼此远离,中心到中心。除了使磁铁更小,这也导致更低的温度误差,如l年代降低:

方程7 - 2

当磁铁越过一个传感器的范围时,它就进入下一个传感器的范围。用A1335来决定从哪个传感器IC读取位置是相当简单的。在定期测量位置的正常操作期间,如果从当前使用的传感器读取的位置超过lseff/ 2,切换到下一个传感器。避免在两个传感器之间来回切换lseff/ 2,一些迟滞可以添加到这个切换,等待位置稍微超出lseff/ 2切换前。在启动时,或在很长一段时间没有读取位置后,可能需要确定使用n个传感器中的哪个来读取位置。这里的挑战是,如果n很大,有些传感器可能没有足够的字段来给出有效的输出。这里,A1335的低场错误寄存器可以用来确定要忽略哪个传感器输出。在有效输出的传感器中,选择角度输出最接近180度的传感器作为主动传感器。

结论

总的来说,磁角度传感器集成电路在线性位置传感方面的工作效果明显好于单轴磁传感器集成电路。基于cch的Allegro系列角度传感器ic,如A1335,非常适合这些应用,提供了先进的功能,如分段线性(PWL)线性化和可寻址的SENT, I亚博尊贵会员2C,或SPI,这有助于扩展磁铁的可用传感范围,并简化和降低整个系统的成本。

附录a:用于计算圆柱形磁铁磁场的matlab函数

function [Bz,Br] = cyl_field(B,L,半径z,r)
% Bz和Br是圆柱形磁铁磁场的Z和径向
其中B为材料的剩余电感,L为材料的长度
%磁铁,半径是磁铁的半径。
% z为磁体中心沿z轴的距离,r为磁体中心沿z轴的距离
%是径向到磁铁的距离。
bz = @ (R,φ,z, L, R) R . * (L / 2 z)。/ ((R ^ 2 + (L / 2 z)。^ 2 + R ^ 2 * R * R。* cos(φ)。^(3/2))…
+ r . * (L / 2 + z) / ((r ^ 2 + (L / 2 + z) ^ 2 - 2 ^ 2 + r。* r * r。* cos(φ)。^ (3/2));
br = @ (R,φ,z, L, R) R / 2。*(2。* r2。* R * cos(φ)。/ ((R ^ 2 + (L / 2 z) ^ 2 - 2 ^ 2 + R。* R * R。* cos(φ)。^(3/2))…
+ r / 2。*(2。* r2。* r * cos(φ)。/ ((r ^ 2 + (L / 2 + z) ^ 2 - 2 ^ 2 + r。* r * r。* cos(φ)。^ (3/2));
%如果磁体内部有磁场计算值,则固定磁场计算值
如果(z < = 1.01 L / 2 *) & & (z > - L / 2 * 1.01) & & (abs半径(r) < = * 1.01)
Bz = B / 2;
Br = 0;
其他的
Bz = b / (4 * pi) * integral2 (@ (R,φ)Bz (R,φ,z, L, R), 0,半径,0,2 * pi);
Br = b / (4 * pi) * integral2 (@ (R,φ)Br (R,φ,z, L, R), 0,半径,0,2 * pi);
结束
结束