绝对式磁编码器设计及其在伺服系统的应用*
2019-05-08袁野
袁 野
(中空空空导弹研究院,河南 洛阳 471000)
随着伺服系统的发展,其工作环境日益苛刻,对位置传感器的可靠性要求也随之提高。接触式位置传感器在冲击、振动等环境下,接触面易产生磨损,在盐雾、低温等环境下,接触面易产生多余物,使位置采集失真。光电编码器虽是非接触式传感器,但其码盘对粉尘等多余物敏感,导致其适应性和可靠性较差,且其价格较为昂贵。磁编码器通过磁感应器件,利用磁场的变化来感知位置变化,无接触面,且对少量多余物不敏感,可靠性更高,近年来,已在伺服控制领域已经得到广泛的应用[1-2]。
绝对式磁编码器通常可根据是否含有MCU分为两类。含MCU的编码器,需对MCU编程以实现角度的解算和输出,最常用的角度解算算法为反正切法,该方法简单可靠,已获得大量应用,但该方法对A/D转换器的精度和噪音敏感度依赖程度较高,因此需要研究一种新的角度解算方法。
1 绝对式磁编码器设计原理
1.1 编码器工作原理
绝对式磁编码器的核心结构如图1所示,上方为永磁体,下方为霍尔芯片,芯片上的4个阴影为霍尔器件。根据霍尔效应,在永磁体磁场的作用下,4个霍尔器件可以感应出相应的电压值,电压值大小与磁感应强度在z向的分量成正比,电压的正负符号也与该分量的方向有关[3]。
图1 传感器核心结构
若4个霍尔器件严格分布在一个正方形的4个顶点,永磁体轴心与正方形中心重合,且永磁体轴心与正方形所在平面垂直,那么当永磁体匀速旋转一周,4个霍尔器件感应到的电压波形为四路正弦波形,且相位相差90°,如图2所示。将两组对角的电压分别定义为sinP、sinN、cosP、cosN,图中A为电压幅值。
图2 匀速旋转一周产生的感应电压
由上可知,当永磁体的转角固定时,4个霍尔器件感应到的电压也为固定值,因此可以根据电压的大小,计算出永磁体的转角。以上即为绝对式磁编码器的基本工作原理[4]。
为抵消一部分安装误差,设计时往往先将四路电压合并为两路,得到正弦电压Vsin与余弦电压Vcos,其中Vsin=sinP-sinN,Vcos=cosP-cosN。当永磁体匀速旋转一周,得到的Vsin、Vcos如图3所示。
图3 匀速旋转一周得到的Vsin、Vcos
磁编码器在装配时,其线性度与安装精度息息相关。在批量生产时,安装的不一致性会导致整批产品的线性度不一致,通常需要配备更高精度的校准设备对装配好的编码器进行测量,最后再根据测量的偏差,通过软件对角度进行补偿,较为常用的方法为分段线性补偿[5]。
1.2 反正切法设计原理
从图3可知,根据当前感应电压结合反三角函数可计算出角度。感应电压的幅值与磁感应强度相关,磁感应强度又与永磁体跟霍尔芯片之间的距离相关,而产品装配时该距离的一致性难以保证,导致感应到的电压幅值不一,因此无法直接使用正弦、余弦电压值进行运算。但每个具体的编码器感应到的正弦电压幅值和余弦电压幅值是相等的,因此可通过反正切运算得到角度,即
(1)
式(1)无法直接使用,因为当α=90°或者270°时Vcos=0。但当α∈[0°,45°]时有
(2)
同样,在90°~360°之间也存在类似关系。可以根据Vsin的正负、Vcos的正负、Vsin和Vcos绝对值的大小,将一周360°等分为8个区间,每个区间的大小为45°。再重新定义反正切运算:
当|Vsin|≤|Vcos|时,有
(3)
当|Vsin|>|Vcos|时,有
(4)
根据式(3)和式(4)计算得到角度α′后,再判断实际角度α属于哪一区间,最后对角度α′进行修正,得到实际角度α。具体修正方法见表1[6]。该方法仅需要0°~45°的反正切表即可。
表1 角度修正方法
1.3 角度跟踪法设计原理
角度跟踪法是基于闭环控制系统的设计思路实现的,其原理框图如图4所示。
图4 跟踪算法的框图
图4中Vsin为正弦电压,Vcos为余弦电压。假设当前角度为α*,则有
Vsin=Asinα*
Vcos=Acosα*
(5)
因此系统的误差e为
e=Vsincosα-Vcossinα
(6)
结合式(5),有
e=Asinα*cosα-Acosα*sinα=Asin(α*-α)
(7)
GC(s)为控制器,通常设计为二型系统,即
(8)
当误差很小时,有
sin(α*-α)≈α*-α
(9)
此时该系统框图可等效为图5所示。
图5 等效的跟踪算法的框图
二型系统稳态误差为0,因此稳定时有α*=α,即系统稳定时,系统输出为编码器当前角度[7-8]。
2 编码器软硬件设计
2.1 编码器硬件设计
编码器霍尔芯片选用iC-Haus的iC-MA3。MCU选用Macrochip的dsPIC33EV,该款MCU为单5 V供电,具备较丰富的通讯资源。系统硬件框图如图6所示。将iC-MA3输出的四路电压sinP、sinN、cosP、cosN接入dsPIC33EV,由dsPIC33EV完成四路电压的A/D转换,编码器角度解算以及CAN总线通讯。
图6 系统硬件框图
编码器电路及永磁体的实物图如图7所示,其中dsPIC33EV在电路板另一侧。装配好的编码器实物图如图8所示。
图7 编码器电路实物图
图8 编码器实物图
2.2 反正切法软件设计
反正切法原理较简单,容易实现。将dsPIC33EV主频设置为40 MHz,CAN总线波特率设置为1 Mbit/s。软件设计流程如图9所示。初始化后进入主循环,在主循环中首先采集电压,然后计算正切值,再查表计算角度,并根据表1进行修正,最后通过CAN总线送出输出角度信息,结束后进入下一次循环。软件中预设了0°~45°的反正切表以供角度查询。最终输出的角度值采用13位定点数表示,即0~360°对应0~8 191,分辨率为0.043 9°。
无论是进行常规的种苗繁育还是无土栽培,为种苗提供充足的营养都是必不可少的。为了更好的保证种苗可以健康生长,在其生长过程中必须进行充分的肥料供给。管理人员应该根据林木种苗的生长情况以及土壤情况,科学的进行肥料的使用,这样才可以保证苗木的快速生长和发育。
图9 反正切法流程图
2.3 角度跟踪法软件设计
硬件电路不变,开展该算法的软件实现。实现时要对GC(s)进行离散化实现,因此需要开启定时中断,定时中断周期取0.1ms。
设计GC(s)参数如下:
(10)
即,K=2.5,ξ=0.66,ωn=100rad/s,经双线性变换后,得到离散化的传递函数GC(z):
(11)
因为dsPIC33EV为定点MCU,为提高运算效率,可用定点数实现式(11)。将式(11)分子项系数放大220倍,分母项系数放大210倍,得到公式如下:
(12)
由于式(12)分子系数比分母系数多放大了210倍,因此经式(12)进行运算迭代后,输出的量级比输入量级大210倍,需要除以210(右移10位),得到真实的输出。注意输出单位为rad,最终要将其转换为13位数字量,与反正切法保持一致。还需设计正弦表,通过查表方式得到sinα、cosα。
该算法软件流程如图10所示,初始化后进入主循环,在主循环中完成A/D采集。同时等待定时中断事件发生,当定时中断发生时,根据算法计算当前角度,并通过总线输出角度,结束后退出中断。
图10 角度跟踪法流程图
3 算法对比
3.1 编码器性能测试
实现两种算法的编码器,直接采集编码器输出数据,对比差异。
采用反正切法时,通过I/O口插桩测得单次运算时间约8 μs,CAN总线传输延时约50 μs,因此反正切法58 μs即可输出角度。将编码器封装好,测得输出数据波动约±10个数字量,即±0.439°,这是由于dsPIC33EV自身A/D转换器为12位,经实测其有效精度仅有10位,精度较差,而反正切法直接用四路电压A/D转换值两两求差再相除,噪音发生叠加,进一步降低了编码器输出精度。为解决该问题,通常用低通滤波或滑动滤波等方法抑制噪音。
(13)
从式(13)可知,角度跟踪法等效为阻尼可调的一阶低通滤波器,因此角度跟踪法可以有效的抑制噪音,但会降低编码器的带宽,使其响应速度变慢,尤其在编码器上电时,因为此时编码器的输入电压为阶跃信号。另外该算法调试难度较大,阻尼大则响应太慢,阻尼小则输出角度值易震荡。
3.2 编码器输出校准
为提高编码器的实际输出精度,将编码器安装在精度为0.02°的三爪卡盘校准系统上。缓慢旋转编码器一圈,记录其输出误差。经测试,反正切法为-0.84°~1.24°,角度跟踪法一圈误差为-0.4°~0.8°。理论上编码器输出误差只与安装精度有关,但实际设计时,误差还包含编码器自身噪音,因此可以看到反正切法的误差相当于其噪音-0.439°~0.439°,加上角度跟踪法误差-0.4°~0.8°。
为提高编码器的可靠性,在两种算法的软件中均进行了误差补偿。考虑角度跟踪法噪音很小,重新测量了角度跟踪法的编码器误差,每10°测量一次,记录编码器的输出角度和误差,共测量36次,然后通过一阶线性补偿的方法,对每10°范围内的编码器输出角度进行补偿修正。修正后再次测量,反正切法误差为-0.50°~0.52°,角度跟踪法误差为-0.06°~0.08°。根据测量结果可知,补偿方法措施有效,提高了编码器实际测量精度。
3.3 在伺服系统中的应用测试
3.3.1 伺服系统搭建
将补偿后的两种算法的磁编码器分别应用于同一伺服控制系统,测试其在伺服系统中的表现。伺服系统框图如图11所示。该系统为单位置环伺服系统,将编码器固定在减速器后级,即伺服系统的输出端。电机使用直流电机,额定电压56 V,额定转速20 000 r/min,减速器为齿轮组结合丝杠,减速比为300~350。输出角机械限位为正负35°(行程70°),为提高系统分辨率,减速器通过增速齿轮与编码器连接,增速齿轮增速比为4,因此编码器能用到70°×4=280°的角度范围。DSP采用TI公司的TMS320F2812,RS-422总线波特率500 kbit/s,PWM频率12.5 kHz,CAN总线波特率1 Mbit/s。
图11 伺服系统框图
DSP软件流程如图12所示。初始化后,进入主循环,在主循环中不断查询当前角度,并等待定时中断事件发生(定时中断周期为0.5 ms),当中断发生时,接收来自RS-422总线的角度指令(指令周期也为0.5 ms),并进行解码,然后结合当前角度反馈计算误差,通过PID控制器调节,得到适当占空比的PWM波形,送给驱动电路驱动电机转动。软件最后还将角度信息进行封装,并通过RS-422总线反馈给测试设备[9-11]。
图12 伺服系统DSP软件流程图
3.3.2 试验结果
不改变DSP软件中的PID控制器参数,分别对两种算法的编码器进行试验验证。
将反正切法和角度跟踪法的编码器应用在伺服系统中,通过测试设备向DSP发送5°阶跃指令,测试结果分别如图13、图14所示。
图13 反正切法编码器-5°阶跃响应
图14 角度跟踪法编码器-5°阶跃响应
从图13、图14可知,采用反正切法时,系统稳态误差约为0.06°,稳定性较好,但反馈曲线上存在 ±0.11°波动,编码器通过增速比为4的增速齿轮与减速器连接,因此最终系统输出角度波动为编码器波动±0.439°的1/4,即±0.11°。采用角度跟踪法时,系统稳态误差约为0.03°,且系统稳定后反馈曲线无波动,但系统稳定性较差,这是由于角度跟踪法的编码器带宽较低,相当于在反馈回路中增加了一阶低通滤波器,即增加了回路延迟,降低了系统的稳定裕度[12]。
再通过测试设备向DSP发送1°扫频指令,指令起始频率为0 Hz,终止频率为100 Hz,时间长度10 s。两种算法的编码器测试结果如图15、图16所示。对试验结果进行FFT,得到基于两种算法的编码器的伺服系统幅频特性曲线,如图17所示。
图15 反正切法编码器-扫频响应
图16 角度跟踪法编码器-扫频响应
图17 两种算法用于伺服系统的幅频特性对比
从图15~图17可知,当编码器采用角度跟踪法设计时,系统在20 Hz~50 Hz之间,幅值增益更大,说明此时系统稳定性较差,而反正切法则更为稳定。另外,60 Hz之后角度跟踪法的衰减速度更快,将式(10)代入式(13),可计算出角度跟踪法编码器的带宽为65 Hz左右,与试验结果吻合。
根据试验结果可知,在同一伺服系统中,编码器使用反正切法设计时,系统的稳定性更好,高频段衰减较慢,噪音较大;而使用角度跟踪法设计时,系统稳定性较差,高频段衰减更快,噪音更小。
综合编码器自身性能测试,可得到两种算法的对比结果如表2所示。
表2 两种算法对比结果
4 结论
本文设计并实现了基于反正切法和角度跟踪法的绝对式磁编码器,通过两种算法的试验对比可知,
当伺服系统对快速性要求低,但对精度要求较高时,可考虑采用基于角度跟踪法的磁编码器作为位置反馈传感器,例如用于无人机领域的舵伺服系统。而当伺服系统对快速性要求高,但对精度要求低时,可采用基于反正切法的磁编码器作为位置反馈传感器,例如民用机器人、机械臂等,此时可以通过滑动滤波的方法提高精度。绝对式磁编码器角度解算算法的选择要根据系统的实际需求。