王 臻,熊 伟,王 伟,班雪梅,郭云龙
(1.北京精密机电控制设备研究所,北京 100076;2.首都航天机械有限公司,北京,100076)
编码器是现代伺服系统常用的传感器之一,是一种机械与电子紧密结合的位置测量传感器,它用于将机械几何位置的模拟量转化成数字量,用来检测轴角位移,加速度,速度,方向等物理量[1],可以作为伺服系统的反馈信号。近些年来,编码器已广泛应用于机器人、数控设备、仪器仪表以及军工产品等高新技术领域,且编码器的种类繁多。根据信号输出格式,编码器被分为绝对式编码器、增量式编码器、混合式编码器。根据工作原理,又可以将编码器分为光电式编码器和磁电式编码器。根据量程又可以分为单圈编码器和多圈编码器[2]。
机电伺服要求设计一个编码器实现高转速下电机轴旋转角度的测量,且在供电断开后,能够依靠机械装置记忆位置信息;并且有工作寿命长,动态性能好,结构紧凑的要求。绝对式编码器在0~360°范围内的每一个位置对应唯一的角度值,且角度信息不会因为断电导致丢失或出错,无需掉电保存,可以满足机械位置记忆的要求。磁电式编码器相比较于光电式编码器其结构简单,无复杂的工艺要求,采用了无接触旋转结构,无机械摩擦,响应速度快,完全满足伺服电机高速旋转、工作寿命长要求。磁编码器根据信号检测原理的不同可分霍尔式和磁阻式。从原理上来讲,虽然磁阻感应的灵敏度比霍尔式的高,响应也快。但是灵敏度高的同时意味着噪声引入也高,且阻抗不仅对于磁场敏感,对温度、周围的电气环境也很敏感[3],霍尔式编码器更适合测试需求。通过综合分析,设计方案选择了基于霍尔原理的多圈绝对式磁电编码器,用于伺服电机角度绝对位置测量,实现机电伺服系统闭环控制。
根据伺服机构的安装需求,编码器的结构如图1 所示。多圈绝对式磁电编码器结构主要机械减速箱和调理电路两部分组成。减速箱是由多个齿轮啮合组合而成机械结构,主要将主轴的高转速通过多级减速齿轮降低,将主轴的转动角度信息分解为圈数信息和角度信息。磁钢与减速齿轮同轴,主轴旋转时,磁钢等比减速旋转,每一个磁编码芯片与磁钢同轴对应[4],磁编码芯片通过磁场的变化感应齿轮的角度变化。调理电路部分主要微控制器完成实现磁钢角度位置的读取,并完成角度位置信息的计算,并实现与控制系统的通信功能。
图1 编码器的结构
由于圆柱齿轮传动机构的传动效率高,传动比范围大,只需要几个齿轮就能获得大传动比,适合用来设计大量程;其结构简单,容易加工、且成本低,设计选择外圆柱齿轮传动机构[5]。减速箱齿轮间的传动比是减速箱的重要参数,与编码器性能指标、以及调理电路的算法息息相关。为了提高程序的执行效率、简化软件算法、减小计算误差,设计的传动比一般应2的整数倍。减速箱设计三级减速,第一级和第二级的传动比为1:4,用于记录主轴在360 度范围内的角度信息。前两级设计为相同的传动比,是作为角度信息的冗余设计。第三级的传动比为1:128,用于记录主轴转动的圈数信息。减速箱的结构如图2 所示。控制系统可以通过圈数信息加上360度内的角度信息计算出主轴的角度信息。
图2 减速箱结构
编码器调理电路主要实现角度信息的采集、数据处理、与控制系统的通信。主要由微处理器电路、角度采集电路、信号传输电路组成。
3.2.1 微处理器电路
编码器的主控部分选择了意法半导体公司的STM32103 RCT6 为核心器件。STM32 系列芯片是基于ARM 的cortex-M3的内核的微处理器,其端口资源丰富,软件和硬件兼容性好,具有高性能、低成本、低功耗的特点。主控部分设计利用STM32的最小系统实现信号采集、信号处理、信号传输的控制。STM32的最小系统如图3所示,具体设计如下:
图3 信号处理电路
(1) 供电系统:STM32 使用功耗较低的3.3V 供电。电路的电源管脚全部进行了滤波处理,数字地和模拟地进行区分,通过0欧电阻连接,提高了系统的抗干扰性。
(2) 复位电路:电路设置了手动复位电路,方便单机调试。
(3) 时钟:选择了8M 的外部高速晶振,通过芯片内部9倍倍频,系统时钟可达72MHz,可以满足快速采集角度信息的要求。
(4) BOOT 设置:用于选择启动模式,系统中BOOT0 和BOOT1通过10k电阻直接接地,系统可以通过J-Link仿真器进行下载程序。
(5) 下载电路:下载接口电路选择了最简单的SWD 的方式。只需要引出5个结点实现程序的下载调试:电源(3.3V)、地(GND)、复位(Reset)、两个串行端口(SWCLK、SWDIO)。
3.2.2 角度采集电路
角度采集电路选用了AMS 公司的基于霍尔原理的磁编码芯片AS5048A。该芯片的工作示意图如图4所示,圆柱形磁钢放置在距离芯片0.5~2.5mm 的位置,且芯片和磁钢尽量做到同轴。当磁钢旋转时,AS5048A 通过SPI 同步串行接口输出0~360°范围内的绝对角度数据,单圈分辨率为214[6]。
图4 芯片安装示意图
该编码器共使用三个AS5048A 芯片,为了节约接口资源,采用了链路的方式连接,电路见图5。三个AS5048A 通过一个SPI接口与微控制器进行通信,微控制器为AS5048A提供时钟信号CLK和片选信号(CS1、CS2、CS3),通过MISO依次完成三个角度信息的采集。另外,微控制器还可以通过片选,依次完成三个芯片的零位编程。
图5 信号采集电路
AS5048A自身包含丰富的寄存器用于自我判断[6]。在产品调试过程中,可以通过读取x3FFD、x3FFE 两个寄存器,判断磁铁强度是否满足要求,磁铁位置是否可以保证芯片正常工作。具体的判定标准见表1。
表1 AS5048A判定标准
3.2.3 通信接口电路
编码器采用6线制串行同步信号SSI通信接口完成与控制系统的通信。两组时钟线和两组数据线以及电源线与地线,时钟线与数据线采用485 通信模式。接口电路选择了MAX3485 RS-485收发器实现收发信号的转换。电路如图6 所示。电路中使用RE-DE 来控制数据DATA 的双向传输。设计上拉电阻和下拉电阻用于提高RS485 节点和网络的可靠性。
图6 信号传输电路
3.3.1 软件设计
编码器的软件功能主要包括:系统初始化模块、角度数据处理模块、通信模块,软件流程框图见图7。
图7 软件流程图
编码器上电后,开始STM32 系统初始化,包括GPIO 口初始化、SPI接口初始化、中断初始化、校验码初始化;在主程序内,角度数据处理模块通过SPI接口对三个AS5048A进行角度信息采集,并完成圈数、角度以及校验码信息的计算。通信模块一直等待接受控制系统发出时钟信号,在下降沿时进入中断程序,按照协议发送圈数、角度以及校验码信息,从而完成一次通信。通信结束后继续等待中断,进入下一次信息发送。
3.3.2 软件实现
(1) 零位算法实现
编码器由多个磁编码器芯片组成,主轴的圈数信息由圈数信息和角度信息组成,因此在编码器工作之前需要对两个编码器芯片同时置零的处理,保证齿轮同步启动。
AS5048A可以通过SPI接口直接设置零位,但是只可以进行一次置零。AS5048A 置零流程图如图8。在芯片零位设置流程中设置了相关的判断。在对OTP寄存器进行校验时,如果返回的值与OTP 寄存器的值不一致,程序将返回。这种情况零位编程虽然失败,但是AS5048A 还可以下次继续置零。在进行Burn 烧写位和Verify 核准位置位后,如果返回的角度值不为零,零位编程设置失败,不能再次进行零位设置。由于系统噪声的存在,在此环节读取的角度不可能是绝对的零,而是在零附近的一个值。因此在判断角度的时候,需设置一个合理的范围进行判读。
图8 芯片置零流程图
因为芯片只能置零一次,具有很大的局限性。远远满足不了编码器多次调试试验的需求。因此,程序中设计了置零函数,此程序方便快捷的对多个芯片进行快速、多次置零处理。程序如下:其中para_angle[n]为第n个芯片设置的零位位置参数。
(2) 角度算法实现
在减速箱传动比设计的时候,传动比均设计为2的整数倍。在计算角度的信息的时候,算法就比较简洁,避免了多重计算带来的误差累计。主轴与记角度轴之间的降速比为4,为2 的2 次方。采集角度值左移2 位为主轴360 度范围内的角度信息。可取得12位精度的角度信息。主轴与记圈轴之间的降速比为128,为2的7次方。采集的角度信息通过右移(14-7)位,即是主轴的圈数信息。如果减速比不为2的整数倍,通过复杂的算法得出的角度和圈数会存在很大的误差。由整数倍减速比设计的简洁算法,不仅提高了程序执行效率,并且避免了复杂算法带来的误差。
通过上述设计,多圈编码器实现128 圈的角度测试,其输出范围为0 圈0 度到127 圈360 度。通过上位机对多圈编码器进行单机静态测试。测试出编码器的圈数、角度信息如表2 所示。换算主轴的角度指标满足要求。编码器的静态单机测试性能满足要求。
表2 编码单机测试数据
将编码器装配至伺服电机的尾部进行动态试验,用于测试电机高速旋转的角度。通过对多个编码器产品进行动态试验,在电机最高8000rpm 的转动下测试编码器的性能指标,产品的线性度可达为0.24~0.37%,对称度的达0.017%~0.026%。并且已经通过了高温、低温试验的考核,可以很好的满足机电伺服的测试需求。
本文主要针对目前机电伺服的测试需求,设计了多圈绝对式磁电编码器。主要从满足性能的角度出发,介绍了编码器的减速箱的参数设计、电路设计、以及算法设计。通过单机的静态测试和系统的动态测试,多圈编码器的性能指标满足机电伺服的测试需求。多圈编码器的应用简化了伺服系统的结构设计,同时提高了伺服系统的测量精度和速度。