使用Allegro角度传感器的长冲程滑动感应应用雷竞技最新网址
使用Allegro角度传感器的长冲程滑动感应应用雷竞技最新网址
Alex Latham和Wade Bussing,
雷竞技竞猜下载Allegro微系统有限责任公司
摘要
本应用说明是使用角度传感器IC进行线性位置传感的设计过程指南,包括磁铁选择和定向、输出线性化以及使用传感器IC阵列扩展测量范围。还提供了一些磁铁和传感长度的测试数据,以显示这些解决方案的理论和实际精度的匹配程度。
介绍
Accurate, low-cost, and non-contact linear position sensing is often accomplished using a bar magnet and a magnetic sensor IC or array of sensor ICs. The magnet is attached to the moving object, and the sensor is positioned such that the magnet slides by it. The typical configuration and fields seen are shown in Figure 1. As the magnet slides by in thex方向,磁场y方向看起来像一个正弦波,磁场和周围位置成线性关系x= 0.
There are a few challenges to this approach of linear position sensing, including:
- Air gap changes between the sensor IC and the magnet can cause measurement errors.
- 磁场强度随温度变化会导致测量误差。
- 磁场与位置成线性关系的测量范围被限制在磁铁长度的50%左右,因此需要比被测行程长得多的磁铁。
All three of these issues are addressed by measuring the angle of the magnetic field versus position.
- 相对于气隙,在应用中看到的典型变化中,场角与位置几乎相同。图2显示了角度与位置之间的关系几乎是恒定的,尽管随着气隙公差的增大,它确实会发生一些变化。
- The field angle is independent of the field strength.
- 磁场角与大多数磁铁长度上的位置成线性关系,通过线性化,可感测150%或更多磁铁长度的行程长度。图3显示了在两种情况下线性化为标称气隙后,气隙上的误差与位置的关系,其中By(magnetic field in they方向)和测量磁场角的情况。与ByMethod, only 10 mm of stroke with 0.5 mm of accuracy (for a ±0.5 mm air gap tolerance) can be sensed for the 16 mm magnet shown. However, with the Angle Method, more than 30 mm of stroke with ±0.5 mm of accuracy can be sensed for the same physical configuration, essentially tripling the linear sensing range.
- Piecewise linearization of the angle measurement:这允许补偿靠近磁铁末端的角度-位置曲线的非线性,将线性传感区域延伸到磁铁边缘之外。这也允许将角度输出与位置的斜率调整到任何期望值。
- 可寻址I2C/SPI/已发送:这允许阵列中的多个IC位于同一总线上。
- Angle output clamps:此功能对于使用多个IC的系统非常有用,因为夹具可用于帮助MCU识别哪些传感器IC超出范围,哪些应用于确定位置。
Allegro A1335磁性角度传感器IC非常适合使用上述角度方法进行线性位置传感,因为它提供了超出精确角度测量的高级功能,例如:
基本系统配置
The A1335 is available in a TSSOP-14 package (or dual-die TSSOP-24 for systems needing redundancy) and measures the angle of the magnetic field in plane with the package. This means that for linear position sensing, the IC needs to be oriented perpendicular to the magnet motion, as shown in Figure 4. The effective air gap is the distance from the center of the magnetic sensing array (Circular Vertical Hall sensor) to the edge of the magnet. The CVH is off-center in the A1335, so that can be used to help increase or decrease the air gap in the system as needed.
Designing the Magnetic System for Linear Sensing
必须为测量的冲程长度选择合适的磁铁尺寸和标称气隙,以创建具有所需精度的系统。主要而言,系统的设计应确保:
- The magnetic angle is generally linear with position.
- 相对于系统的气隙公差,磁角足够恒定。
- The magnetic field strength is above the minimum needed for CVH based sensor ICs, which is around 300 gauss.
虽然这看起来很难平衡,但有一系列适用于特定应用的磁性系统,磁性系统中的每个变量都对精度有特定的影响,可以快速进行调整以提高性能、降低成本等。
- 磁铁长度(L):根据经验,磁铁长度应至少为冲程长度的60%。超过气隙公差的线性度和精度会在超过磁铁边缘时进一步降低,因此,一般来说,磁铁越长,给定冲程长度的误差就越小。
- 标称气隙(d): The air gap needs to be chosen such that the angle versus position is nearly linear. With really small air gaps, especially on longer magnets, thex和y磁场将变为非正弦(图5),且角度与位置将不是线性的或与气隙公差一致(图6)。一般来说,气隙在L/3至L/2 works well.
- 磁铁直径(D):一般来说,磁铁的直径越大,磁场就越强。使直径大致等于或略小于气隙通常适用于建议使用的钕磁铁。铁氧体磁体更便宜;然而,由于它们的强度约为原来的4倍,因此需要使用更大的磁体来达到相同的磁场水平。
总的来说,对于给定的冲程长度,LS,一个合理的设计首先是:
L=LS× 0.65
d=D= 0.4 ×L
从那里,这些参数可以增加或减少,以满足应用的目标。
为了确定系统是否满足设计目标,需要对磁场进行建模。虽然使用先进的三维磁性建模软件将产生最准确的结果,但在大多数情况下这是不必要的。使用在线提供的免费二维模拟软件,可以足够精确地对场进行建模。或者,在使用圆柱形磁铁的情况下,可以相当容易地计算磁场,附录中提供了用于计算磁场的MATLAB函数。类似大小的条形磁铁将产生几乎相同的磁场。图7显示了使用这些方程的圆柱形磁铁的理论角度与气隙,以及使用A1335的实验结果-两者匹配良好。
线性化/校准方法
根据系统的需要,可以使用不同的线性化或校准方法。这里,描述了使用Allegro A1335样本编程器将A1335的输出与位置线性化的方法。该方法可以应用于每一个系统,也可以将一个系统的结果应用到所有其他系统,以获得相似的性能,而对生产测试时间的影响较小。
- 启动程序员:将A1335连接到ASEK20,并将ASEK20连接到您的计算机。启动样本编程器软件并接通A1335电源。请参阅Allegro A1335示例程序员用户手册,以获取有关程序员入门的更多详细信息。
- 去吧to the Long Stroke Tab: The “Long Stroke” tab of the programmer helps automate the process of using the segmented linearization available on the A1335 for linear position applications. It also helps to mask the fact that angle measurements are being dealt with and only works in position.
- 确定行程范围和代码/mm:使用此方法进行线性化的完整范围是从代码256到代码3840,避免了发生翻车的零附近的范围,因此全行程需要适应此范围。这意味着代码/mm值,Cpmm公司,应该是:
例如,如果笔划长度为25 mm,Cpmm公司应该是143.36码/毫米或更小,所以这个值可以向下舍入到一个整数值,或者可能是128,以简化微控制器中从码到毫米转换的数学。如果“行程范围”在样本编程器中输入为25,然后单击“计算mm/步长和代码/mm”按钮,则Cpmm公司将显示值。然后可以将该值向下舍入到所需的数字;然后,单击“计算范围和mm/步长”按钮。这将根据新的数据重新计算“行程范围”Cpmm公司价值观。例如,如果Cpmm公司如果四舍五入到128,“行程范围”现在将是28毫米,这为所需的25毫米测量范围提供了合理的余量。 - 确定每个线性化步骤的毫米:分段线性化点是每256个代码,因此确定每个线性化点之间移动多少毫米。
For the example considered above, mmstep should be greater than 1.79 mm, and sinceCpmm公司被选为128岁,毫米步是2毫米。该值在样本编程器中显示,其结果在数据输入表中显示为每个线性化点之间的毫米差。 - 开始线性化测量X= 0: Fill in the measurement table. Essentially, at each “Distance,” measure the raw output of the sensor. After the linearization, the linear transfer function is described by the “Distance” and “Desired” code columns. Start at positionX=0(磁铁在CVH传感器上居中),确保突出显示“距离”=0行,然后单击“读取值”按钮。“测量”列将填充传感器读数,突出显示的行将下移。
- 连续线性化测量:步进到位毫米步,将传感器输出读入表的正确行。过程如下:
- N= 1
- 步进到位X=N*毫米步.
- 确保排成一行X=N*毫米步突出显示。软件将在每次读取后增加/减少行数,从而引导测量。
- 单击“读取值”按钮从A1335读取值,并在突出显示的行中填充测量值。
- 重复步骤b到d,递增N每次直到N= 7.
- 重复步骤b到d,除了N现在从-1到-7。
- 计算和应用系数:点击“计算和编程设备”按钮。这将计算偏移和线性化的正确值,并将其编程到设备中。
- 检查性能:点击“开始测试”按钮,不断从传感器读出位置。然后移动磁铁并检查传感器的读数。
An example of a linearized sensor output is shown in Figure 8. Here, the position was changed 2 mm for each linearization point,毫米步= 2. 这意味着Cpmm公司=256/2=128码/mm,这是线性化后传感器输出的斜率,如图8所示。另外,在位置X=0,传感器输出2048。
多磁铁和行程长度的实验结果
下面提供了三种不同磁铁在不同行程长度下的线性化结果。下表给出了每种磁铁的关键值(所有磁铁均为钕):
磁铁 | 行程长度 | 毫米步 | ||
---|---|---|---|---|
# | 直径 | Length | ||
1 | 6.4毫米 | 15.9毫米 | 25 mm | 2 mm |
2 | 9.5毫米 | 19 mm | 30毫米 | 3毫米 |
3 | 12.7毫米 | 38.1毫米 | 50 mm | 4毫米 |
每个磁铁的下图显示了输出角度与位置的关系,以及多个气隙上测量位置与位置的误差。误差基于理想传感器输出,其应为:
重新排列显示了如何将A1335的传感器输出转换为X位置。
The error is then just the difference between the actualX位置和计算的X传感器IC输出的位置。对于磁铁1,此错误如图9所示。
Accuracy Over Temperature and Resolution
使用角度法感测线性位置的一个主要优点是,它对气隙和温度都非常精确。前面的章节都讨论了气隙的精度。温度精度主要取决于所用传感器的角度精度。
A1335的超温精度约为±1.3度;但是,这必须在系统中转换为毫米。由于角度误差与非线性角度输出有关,因此必须考虑扫掠的原始角度,其在整个行程上约为180度。这可以在图2中看到。位置测量误差可计算为:
对于25毫米行程,LS=25,超温误差为±0.18 mm。位置分辨率的计算方法基本相同。对于A1335,角度分辨率为0.8度(3西格玛)。这意味着25 mm行程的位置分辨率将为0.8/180倍LS= 0.11 mm. Of course, if internal filtering of the A1335 is enabled or number of readings are averaged, this resolution will be improved.
利用多传感器集成电路扩展传感范围
Extending the sensing range can be done either by increasing the magnet size, following the guidelines above, or by adding more sensor ICs to the system. As the desired stroke length gets larger, the cost and size of the larger magnet will drive the solution towards using multiple sensors. A configuration using multiple sensors is shown in Figure 14. Here, three sensor ICs are used, but this can be extended ton传感器集成电路。
The desired stroke length,LS,除以n(3在图14的情况下)为了有一个有效的行程长度,L塞夫,共:
磁性系统的设计是围绕L塞夫,使用上述方法n传感器间距L塞夫,彼此远离,中心对中心。除了使磁铁更小,这也会导致较低的温度误差,如LS减少:
当磁铁超过一个传感器的范围时,它就会进入下一个传感器的范围。用A1335确定从哪个传感器IC读取位置相当简单。在定期测量位置的正常操作期间,如果当前使用的传感器的位置读数超过L塞夫/2在任一方向,切换到下一个传感器。避免在两个传感器之间来回切换L塞夫/ 2, some hysteresis can be added to this switchover, waiting for the position to go a little beyondL塞夫/2切换前。在启动时,或在长时间不读取位置后,可能需要确定n个传感器中的哪一个用于读取位置。这里的挑战是,如果n很大,一些传感器上可能没有足够的磁场来提供有效的输出。这里,A1335的低场错误寄存器可用于确定忽略哪些传感器输出。然后,在提供有效输出的传感器中,应选择提供接近180度的角度输出的传感器作为主动传感器。
结论
Overall, magnetic angle sensor ICs work significantly better for linear position sensing than single-axis magnetic sensor ICs. The Allegro line of CVH-based angle sensor ICs, such as the A1335, are well-suited for these applications, providing advanced features, such as piecewise linear (PWL) linearization and addressable SENT, I2C、 或SPI,这有助于扩大可用的感应范围从磁铁,并简化和降低整个系统的成本。
附录A:计算圆柱形磁铁磁场的MATLAB函数
函数[Bz,Br]=圆柱域(B,L,半径,z,r)
%Bz和Br是圆柱形磁铁磁场的Z和径向
%其中B是材料的剩余电感,L是材料的长度
%磁铁,半径是磁铁的半径。
%z是从磁体中心沿z轴的距离,r
%是径向与磁铁的距离。
bz=@(R,phi,z,L,R)R.*(L/2-z)。/((R.^2+(L/2-z)。^2+R.^2-2*R.*cos(phi))。^(3/2))。。。
+R、 *(L/2+z)./((R.^2+(L/2+z).^2+R.^2-2.*R.*R.*cos(phi)).^(3/2));
br = @(R,phi,z,L,r) -R./2.*(2.*r-2.*R.*cos(phi))./((R.^2+(L/2-z).^2+r.^2-2.*R.*r.*cos(phi)).^(3/2))...
+R、 /2.*(2.*R-2.*R.*cos(phi))。/((R.^2+(L/2+z)。^2+R.^2-2.*R.*cos(phi))。^(3/2));
%如果磁场计算值在磁铁内部,则固定磁场计算值
如果(z<=L/2*1.01)&&(z>-L/2*1.01)&&(abs(r)<=Radius*1.01)
Bz = B/2;
Br=0;
其他的
Bz=-B./(4*pi)*积分2(@(R,phi)Bz(R,phi,z,L,R),0,半径,0,2*pi);
Br=-B./(4*pi)*积分2(@(R,phi)Br(R,phi,z,L,R),0,半径,0,2*pi);
结束
结束