自从人类发明了转轮,我们就希望了解如何通过改变精度提高转轮转动效率。在过去几个世纪,科学家和工程师已经研发了许多方法来实现此目标,期间轮-轴系统的基本原理得到了广泛应用,从汽车、音量旋钮、各种机械形式的齿轮到简陋的手推车,几乎每种机械系统均采用了这一原理。
经过多个时代的探索,人们发现让转轮高效运转的最重要因素并非转轮本身(为何不彻底改造它呢?),而是转轮的轴角。目前测量和优化轴角的最有效方法是采用角度传感器。现有许多种角度传感器都能够通过轮轴监控和改进促进轮周效率优化;但如果配合使用FPGA,您就能够取得非常显著的效果,同时能够提高众多应用中的轮轴/轮周效率。
在详细介绍工程师们如何最佳利用赛灵思FPGA达到上述目的之前,先让我们简单回顾一下角度传感器的部分基本原理。目前得到广泛应用就是编码器和分解器这两类角度传感器。
编码器和分解器的类型
编码器分为增量和绝对两个基本类别。增量编码器可以监控轮轴上的两个位置,并且可以在轮轴每次经过这两个位置时产生A或B脉冲。独立的外部电动计数器然后从这些脉冲解读出转速和旋转方向。虽然适用于众多应用,但是增量式计数器确实存在某些不足。例如,在轮轴停转情况下,增量编码器在开始运行之前必须首先通过调回到某个指定校准点来实现自身校准。另外,增量式计数器易受到电气干扰的影响,导致发送到系统的脉冲不准确,进而造成旋转计数错误。不仅如此,许多增量编码器属于光电器件 – 如果对目标应用有影响,则无法用于辐射危险区域。
图1 – 分解器转子激励
分解器绕组
ROTOR:转子 STATOR:定子
绝对编码器是监控轮轴旋转计数和方向的传感器系统。在基于绝对编码器的系统中,用户一般把转轮连接到具有电触头或光电基准的轮轴。在轮轴运行时,基于绝对编码器的系统会记录旋转和运行方向,同时产生易于转换成代码(最常见的是二进制码或格雷码)的并行数字输出。绝对编码器的优势在于只需要校准一次(一般是在工厂中校准),而无需每次使用前都校准。此外,绝对编码器一般比其它编码器更可靠。不过,绝对编码器一般很昂贵,而且它们不利于进行并行数据传输,尤其是在测量其读数的电子系统距离编码器较远情况下。
分解器就其本身而言是一种旋转变压器——一种输出电压与其所监控的输入轴角唯一关联的模拟器件。它是一款具有0~360旋转角度的绝对位置传感器,其直接连接到轮轴并报告转速和位置。分解器与编码器相比有诸多优势。分解器非常稳健可靠,能够经受带有灰尘、油污、极端温度、振动和辐射的严酷环境。作为一种变压器,分解器可以提供信号隔离以及对电气干扰的自然共模抑制。除了这些特性之外,分解器只需要四根线就可进行角数据传输,这使其能够适用于从重工业、微型系统到航空航天工业等各种应用。
无刷分解器得到了进一步改进,其无需与转子的滑环连接。因此,这种分解器更可靠,而且使用寿命更长。
分解器采用两种方式获取与轴角相关的输出电压。在第一种方式中,如图1所示的转子绕组由交变信号激励,而输出来自两个定子绕组。由于定子是以机械方式定位到正确角度,因此输出信号幅度是通过轴角的三角正弦和余弦关联。正弦与余弦信号均具有与原始激励信号相同的相位;仅其幅度随轮轴的旋转通过正弦与余弦进行调制。
图中文字如下:
ROTOR REFERENCE:转子基准
STATOR INPUTS:定子输入
COSINE MULTIPLIER:余弦乘法器
SINE MULTIPLIER:正弦乘法器
UP /DOWN COUNTER:递增/递减计数器
LATCHES:锁存器
DETECTOR:检测器
ERROR:误差
INTEGRATOR:积分器
VELOCITY:速度
DIGITAL ANGLE:数字角度
WHEN ERROR = 0:当误差=0
在第二种方式中,定子绕组由相位正交的交变信号激励。然后在转子绕组中感应电压。绕组的幅度和频率固定,但其相移随轴角变化。
分解器可以放置到需要测量角度的位置[2]。而电子装置一般指的是分解器数字转换器(RDC),可以放置到需要测量数字输出的位置。分解器的模拟输出(含有轮轴角位置信息)然后经RDC转换成数字形式。
典型RDC的功能
一般而言,分解器的两个输出会应用到RDC的正弦与余弦乘法器[3]。这些乘法器结合正弦和余弦查找表以及函数构成乘法数模转换器。图2显示了其功能。
暂且假设开始时递增/递减计数器的当前状态是一个代表试验角度(trial angle)ψ的数值。转换器设法调整数字角度ψ,使其一直等于并跟踪所测量的模拟角度θ。
分解器的定子输出电压为:
V1= V sinωt sinθ 方程1
V2= V sinωt cosθ 方程2
其中θ是分解器转子的角度。数字角度ψ应用到余弦乘法器,其余弦乘以V1得出下式:
V sinωt sinθ cosψ 方程3
数字角度ψ另外还应用到正弦乘法器,乘以V2得出下式:
V sinωt cosθ sinψ 方程4
这两个信号由误差放大器相减求得出波形的误差信号:
(V sinωt sinθcosψ – V sinωt cosθ sinψ) 方程5
V sinωt (sinθ cosψ- cosθ sinψ) 方程6
根据三角恒等式,其简化为:
V sinωt [sin (θ -ψ)] 方程7
图3 – SD-14620方框图(单信道)
图中文字如下:
REFERENCE CONDITIONER:基准调节器
BIT DETECTOR:位检测器
“S” OPTION SYNTHESIZED REFERENCE:“S”选项综合基准
INPUT OPTION:输入选项
CONTROL TRANSFORMER:控制变压器
GAIN:增益
DEMODULATOR:解调器
HYSTERESIS:滞后
INTEGRATOR:积分器
DC/DC CONVERTER:DC/DC转换器
14/16 BIT UP/DOWN COUNTER:14/16位递增/递减计数器
VCO & TIMING:VCO与时序
DATA LATCHES:数据锁存器
FILTER:滤波器
47μf external capacitor:47μf外部电容
图4 – OSC-15802基准振荡器方框图
图中文字如下:
QUAD OSCILLATOR:四线组振荡器
检测器采用分解器的转子电压作为基准同步解调此AC误差信号。这会产生与sin (θ -ψ)成正比的DC误差信号。
DC误差信号馈送到积分器,其输出驱动一个由电压控制的振荡器。而VCO会导致递增/递减计数器按正确方向计数,从而在一次计数中产生:
sin (θ -ψ)→0 方程8
当取得此结果,则:
θ -ψ→0 方程9
因此,
θ = ψ 方程10
因此,计数器的数字输出ψ代表着角度θ。锁存器可以在不中断回路跟踪情况下实现此数据向外部的传输。
此电路等效于2型伺服回路,因为它实际上有两个积分器。一个是累计脉冲的计数器;另一个是位于检测器输出端的积分器。在具有恒定旋转速度输入的2型伺服回路中,输出数字字连续跟随或跟踪该输入,而无需外部导出转换。
RDC典型实例:SD-14621
SD-14621是数据设备公司(DDC)生产的小型低成本RDC。它有两条具备可编程分辨率控制功能的信道。分辨率编程功能允许选择10、12、14或16位模式[4]。此功能允许低分辨率高速跟踪或者更高分辨率支持更高精度。由于其大小、成本、精度与多功能性,此转换器适用于高性能军用、商用及位置控制系统。
器件的运行需要一个+5V电压。转换器有两个对模拟地为±4V电压范围的速度输出(VEL A、VEL B),可用于替代转速计。为两条信道(/BIT A与/BIT B)提供两个内置测试输出,以指示信号丢失(LOS)。
此转换器由三大部分组成:输入前端、误差处理器和数字接口。前端对于同步器、分解器和直接输入端有所不同。电子Scott-T用于同步器输入,分解器调节器用于分解器输入,而正弦与余弦电压跟随器用于直接输入端。这些放大器可以馈送高精度控制变压器(CT)。CT的另一个输入是16位数字角度ψ,其输出是两个输入之间的模拟误差角度或差分角度。CT采用放大器、交换机、逻辑电路与电容器以查准率执行SINθ COSψ - COSθ SINψ = Sin(θ-ψ)的三角函数计算。
与常规精密电阻器相比,这些电容器按查准率使用,以获得更高精度。另外,这些电容器(与运算放大器一起用作计算元件)进行高速采样,以消除偏移和运算放大器偏差。
DC误差处理进行积分运算,然后得到驱动电压控制振荡器的速度电压。此VCO与速度积分器结合在一起构成递增积分器:一种2型伺服反馈回路。
基准振荡器
我们设计中采用的OSC-15802功耗振荡器也是DDC公司提供。此器件适用于RDC、同步器、LVDT和感应式传感器应用[5]。频率与振幅输出可以分别由电容器和电阻器编程。输出频率范围介于400Hz~10kHz之间,输出电压为7Vrms。图4显示了器件的方框图。
馈送到分解器和RDC的振荡器输出用作基准信号。
FPGA的I/O电压为3.3V,而RDC的电压为5V。我们采用电压收发器实现两个器件之间的电压兼容。
VIRTEX-5 FX30T FPGA与RDC接口
我们在设计中采用赛灵思Virtex-5 FX30T FPGA [6]。FPGA的I/O电压为3.3V,而RDC的电压为5V。因此我们采用电压收发器来实现这两个器件之间的电压兼容。通过赛灵思提供的GPIO IP核与FPGA建立内部连接,如图5所示。
为了简单起见,图5仅显示一条具有一个分解器接口的信道。您可以在本文件随附的赛灵思开发板描述(XBD)文件找到RDC的引脚详情以及FPGA对应的专用引脚。详情见该文件第一部分。
图5 – RDC与Virtex-5 FPGA的接口(单信道)
图中文字如下:
TRANSCEIVER:收发器
RESOLVER:分解器
REF SIGNAL:基准信号
POWER OSCILLATOR (OSC-15802):功耗振荡器
SIGNAL CHAIN:信号链
器件驱动程序详细说明
在本例中,FPGA采用20MHz的外部输入时钟。此FPGA具有一个运行频率为200MHz的PowerPC 440硬核。RDC的时序图见图6与图7。
图6 – INHIBIT时序
图7 – ENABLE时序
根据RDC的时序图,我们开发、测试并验证了实际硬件的功能是否正确。器件驱动程序的实际编码包含在单独的XBD文件中。根据时序图,我们生成了用于回路的所需延迟。在200MHz运行速率下进行处理时,每个计数都对应5纳秒的延迟。
器件驱动程序有三部分编码:RDC初始化、控制信号的生成及从RDC信道A的读取、以及控制信号的生成及从RDC信道B的读取。RDC初始化是设置信号方向和缺省值的阶段。例如,利用以下语句,信号方向将设置为从FPGA“输出”到RDC。
XGpio_WriteReg(XPAR_RESOLUTION_CNTRL_CH_A_
BASEADDR,XGPIO_TRI_OFFSET,0x000);
下一个语句通过写入“0x3”来设置16位分辨率(即:拉高):
XGpio_WriteReg(XPAR_RESOLUTION_CNTRL_CH_A_
BASEADDR,XGPIO_DATA_OFFSET,0x03);
我们已经看到,角度传感器可以帮助工程师创造更好的转轮,进而设计出众多更高效的机械装置。分解器是一种尤为有用的角度传感器,只要能够与FPGA正确配合和控制,其就能够帮助工程师打造出无与伦比的机械装置。
责任编辑:gt
评论
查看更多