基于非线性跟踪微分器的编码器数据采集应用

曲云昭 李洪文 邓永停 王晶
摘 要: 针对某望远镜转台使用的SSI接口绝对式编码器,提出基于FPGA读取编码器信号的方案,并给出非线性跟踪微分器的测速滤波方法,同时采用预报补偿的方法解决滤波后的相位延迟问题。根据读取到的编码器位置信息,能够准确快速地估计出速度值,滤除信号中的随机噪声干扰。该方案不依赖对象模型,算法简单,调节参数少,计算量小,易于在工程中实现。通过仿真分析和实验验证表明,该方案能够准确读取绝对式编码器码值,根据码值信息估计速度信息,转台以0.05 (°)/s转动时,速度波动方差降低了3.46 (″)/s,改善了低速运行的平稳性。实验证明了该方法的准确性和有效性,具有良好的使用价值。
关键词: 非线性跟踪微分器; 绝对式编码器; 速度估计; 濾波
中图分类号: TN762?34; TP273 文献标识码: A 文章编号: 1004?373X(2017)21?0149?04
Application of encoder data acquisition based on nonlinear tracking?differentiator
QU Yunzhao1, 2, LI Hongwen1, DENG Yongting1, WANG Jing1, 2
(1. Changchun Institute of Optics, Fine Mechanics and Physics, Chinese Academy of Sciences, Changchun 130033, China;
2. University of Chinese Academy of Sciences, Beijing 100039, China)
Abstract: Aiming at the SSI interface absolute type encoder used in a certain telescope turntable, a scheme based on FPGA to read the signal of the encoder is proposed. A velocity measurement and filtering method of the nonlinear tracking?differentiator is given. The prediction compensation method is used to solve the phase delay after signal filtering. According to the read position information of the encoder, the speed value can be estimated accurately and quickly, and the random noise interference is filtered out in the signal. The scheme does not depend on the object model, its algorithm is simple, and has less calculated quantity and few adjustment parameters, which is easy to implement in the project. The simulation analysis and experiment results show that the scheme can accurately read the code value of the absolute type encoder and estimate the velocity information according to the code value information, when the turntable turns with the speed of 0.05 (°)/s, the speed fluctuation variance is reduced by 3.46 (″)/s, which improves the stationarity of low speed running. The experimental results show that the method is accurate and effective, and has high use value.
Keywords: nonlinear tracking?differentiator; absolute type encoder; velocity estimation; filtering
0 引 言
光电编码器是集光、机、电于一体的精密位移传感器,已经广泛用于望远镜转台、经纬仪等设备中,其采集精度直接决定设备的整体性能。常用的光电编码器主要分为增量式编码器和绝对式编码器两种,增量式编码器在系统上电后需要寻零操作,而绝对式编码器可以直接读取当前编码器的位置信息,这一优点明显优于增量式编码器,所以绝对式编码器在测量系统中得到广泛的应用。但绝对式编码器厂商还没有统一的通信协议,例如,EnDat协议、Biss协议以及SSI协议等,目前的单片机和数字信号处理器等也没有相应的读取模块,并且编码器厂商也不直接提供编码器读取模块,需要花费额外的费用购买,这在一定程度上也限制了绝对式编码器的应用。针对SSI协议的绝对式编码器,国内科研院所和高校也做了部分研究,如SSI_485转换器[1]以及基于DSP的串行口设计[2]等。
望远镜在跟踪星体目标时,需要较高的低速平稳性,所以需要实时准确的速度测量。针对低速测量问题,在M法测量和T法测量的基础上提出了M/T法测速,变M/T法测速等[3],但这些方法都需要额外的硬件电路来解决码盘脉冲信号的上升沿或下降沿来同步时间信号的问题,并且这些方法也只适用于增量式编码器速度测量,并不适用于绝对式编码器。针对使用的SSI接口绝对式编码器,通过引入非线性跟踪微分器(NTD)理论进行速度估计,从被噪声污染的信号中提取原始信号并估计其微分信号。利用FPGA实现了SSI协议绝对式编码器码值读取、利用NTD理论实现了对信号的滤波和测速的目的,并将其应用于望远镜方位转台的速度测量中,有效提高了测量的实时性和准确性,取得了良好的实验效果。
1 绝对式编码器数据采集
1.1 SSI通信协议
SSI接口绝对式编码器利用两对差分信号线传输数据:一对为数据线Data,另一对为同步时钟线Clock,通过上位机发送同步时钟线Clock控制采样过程。SSI接口数据传输时序图如图1所示。其中[T]为每位数据读取周期,[t1]为编码器发送数据延迟时间,[t2]为数据发送接收后数据线低电平保持时间。在编码器没有数据传输时,时钟线和数据线均为高电平。数据传输起始位为时钟信号第一个下降沿,当检测到时钟下降沿时,编码器开始计算位置值将其保存在缓冲区,在时钟信号上升沿时将编码器码值最高位MSB发送到数据线。在编码器码值解码时需要注意数据发送的延时时间[t1,][t1<]350 ns。经过25个周期后,编码器码值从最高位到最低位依次发送到数据线。当编码器数据最低位LSB发送后,数据线将保持一段时间低电平[t2,][t2]时间为13 μs,此时需要将时钟线拉高,若在[t2]时间检测到时钟线的下降沿,会使缓冲区的数据再次发送到数据线。当时钟线高电平持续时间大于[t2]时,则认为当前数据传输完毕,待再次检测到时钟下降沿时,开始发送新的数据。
1.2 数据采集
根据SSI接口通信协议特点,FPGA读取编码器码值利用有限状态机实现,能够准确控制时序 [4?5],有限状态机状态转换图如图2所示。
在系统复位或编码器码值读取结束时为State0,即空闲状态,此时时钟信号保持高电平,等待接收数据读取的使能信号。当接收到采样使能信号Enable时状态机进入State1状态,State1状态发送数據读取的起始位信号,时钟线产生周期为[T2]的低电平信号,触发编码器发送编码器位置数据,此时编码器将数据存储在缓冲区。当时钟线低电平时间达到[T2]时,状态机进入State2状态读取编码器码值数据。State2状态需要产生25个读取周期[T]的时钟激励信号,为了读取数据的稳定性,本文在读取周期[T]的下降沿做100 ns延时后读取数据,确保数据的稳定性。当Size信号为25时,即依次读取25位数据后,状态机进入State3状态,此时将时钟线拉高,大于数据传输结束后低电平保持时间[t2,]作为当前编码器位置数据传输完成的结束信号。当高电平保持时间大于[t2]时,状态机进入State4状态,此状态用于完成编码器码值的转换。因为此型号编码器输出码值为格雷码,格雷码具有任意两个相邻位其输出的格雷码码值只有一位不同的特点,这种输出格式也有效提高了绝对式编码器数据输出的稳定性。根据格雷码和二进制码的对应关系,利用向右异或法将格雷码转换为二进制码。若二进制的格雷码为[Gn-1Gn-2…G2G1G0,]所对应的普通二进制码值为[Bn-1Bn-2…B2B1B0]。其最高位对应关系见式(1),其他位对应关系见式(2)。
[Bn-1=Gn-1] (1)
[Bi-1=Gi-1⊕Bi, i=1,2,…,n-1] (2)
当格雷码向二进制码转换完成时,状态机进入State5状态,此状态生成编码器码值读取转换完成的Int信号,用于触发DSP读取编码器码值数据。当产生Int信号后状态机进入State0状态,等待下一次读取使能信号,进行新周期码值读取。
2 非线性跟踪微分器原理
文献[6]针对从非连续信号或者带有噪声干扰的采集信号中获取连续信号及其微分信号的问题,给出了非线性跟踪微分器(NTD)理论。非线性跟踪微分器的结构可表述为:对该结构输入一个信号[v(t)],它将输出[z1]和[z2]两个信号,其中[z1]信号跟踪[v(t)]的变化,而[z2]则是[z1]的微分信号。当[z1]信号快速跟踪输入信号[v(t)]时,[z2]信号即可作为输入信号[v(t)]的“近似微分”。非线性跟踪微分器定理具有如下定义,若系统:
[z1(t)=z2(t)z2(t)=fz1(t),z2(t)] (3)
的任意解均能满足:[z1(t)→0,][z2(t)→0][(t→∞),]则对于任意有界可积函数[v(t)]和任意的时间常数[T>0],则系统:
[x1(t)=x2(t)x2(t)=R2?fx1(t)-v(t),x2(t)R] (4)
的解[x1(t)]满足:
[limR→∞0Tx1(t)-v(t)dt=0] (5)
非线性跟踪微分器定理表明,[x1(t)]平均收敛于[v(t)]。如果将有界可积函数[v(t)]看成广义函数,则[x2(t)]弱收敛于[v(t)]的广义导数。若把式(4)作为非线性跟踪微分器,则由式(4)得到的[x1(t)]和[x2(t)]分别是在平均收敛和弱收敛意义下对原函数及其导数的光滑逼近,即状态[x1(t)]和[x2(t)]分别跟踪输入信号及其微分。为了应用于实际工程,NTD的离散形势表述如下[7]:
[x1(k+1)=x1(k)+T?x2(k)x2(k+1)=x2(k)+T?fste(k),x2(k),R,h] (6)
式中:[T]为积分步长;[e(k)=x1(k)-v(k)]为NTD对输入变量[v(k)]误差的估计值;[R]为速度因子,影响跟踪的响应时间;[h]为滤波因子,影响滤波效果。在式(6)中非线性函数[fst(?)]定义如下:
[fste(k),x2(k),R,h=-R?satg(k),δ] (7)
[sat(x,δ)=sign(x),x>δxδ,x≤δ] (8)
[g(k)=x2(k)+sign[y(k)]?8Ry(k)+δ2-δ2, y(k)≥δ1x2(k)+y(k)h,y(k)<δ1] (9)
式中:[sign(?)]为符号函数;[δ=Rh;δ1=δh;y(k)=e(k)+h?x2(k)。]
根据上述NTD的离散化公式可知,离散型NTD只有速度因子[R]和滤波因子[h]两个调节参数,增加速度因子和滤波因子可以提高响应速度和滤波效果。但随着增加滤波因子来提高噪声抑制能力的同时,也会带来一定的相位延迟,由此带来的相位延迟问题可采用预报补偿的方法进行相应补偿[8]。将滤波后的跟踪信号加上获取的微分信号后乘以预报步长作为输入信号的逼近信号:
[x=x1+t?T?x2] (10)
式(10)即为经过补偿后的输出信号,式中[t]为预报步长。该方法参数整定方便,算法简单,计算量小,适合在实际工程中应用[9?10]。
3 NTD仿真分析
通过对非线性跟踪微分器理论分析和离散化推导可知,该模型可用于对输入信号的速度测量,对受噪声污染的信号进行滤波处理。本文为验证NTD模型在测速和滤波中的应用效果,利用Matlab/Simulink对NTD模型进行建模仿真分析。NTD阶跃响应曲线如图3所示。
由图3可知,非线性跟踪微分器模型能够对输入的阶跃信号实现快速无超调跟踪。随着速度因子的增加,响应时间明显减少。
图4和图5为对正弦信号跟踪仿真图。当输入为正弦信号时,速度信号为余弦信号。根据仿真图可知,该模型能够对输入信号快速跟踪,并准确地估计其微分信号。从图5中可以看出,其他系数不变只增加滤波因子,当滤波因子达到一定数值时,跟踪信号会产生相位延迟现象,利用本文提到的方法进行相位补偿,可以有效地减少因延迟造成的误差,补偿后的仿真图如图6所示,该方法可以解决因滤波因子过大而带来的相位延迟问题。
图7为对受噪声污染信号滤波后与原信号误差仿真图,由图7可以看出当滤波因子为0.006时,滤波后信号与原信号的误差在0.3左右,增加滤波因子,当其达到0.02时,经过相位补偿后,滤波后信号与原信号的误差基本保持在0.2。通过改变滤波因子,并做相应的相位补偿,可以有效改善NTD模型对噪声的抑制能力。
4 实验验证
通过建模仿真分析可知,利用NTD模型提取速度信号具有可行性。为了检验NTD模型测速的实际应用效果,利用某望远镜转台做了方位轴的速度测试。实验测试时,将伺服转台调为定速工作模式,速度值定为0.05 (°)/s。首先利用传统的后项差分法根据采集到的编码器位置数据计算出转台速度信息;其次不改变任何控制参数的情况下利用NTD模型滤波估计速度值;最后对采用以上两种方法测得的速度值进行对比,如图8,图9所示。
由图可知,当转台以较低速运行时,采用传统的后项差分测速法速度波动较大,利用NTD模型能够准确估计速度信号,波动范围更集中在设定值周围,相比后项差分测速法能够获取更准确的速度信息。对上位机采集到的数据处理后发现,速度波动方差从原来的9.15 (″)/s降为5.69 (″)/s。所以,使用NTD模型进行滤波测速,能够获取更加稳定的速度信息,有效提高了转台伺服控制系统的低速性能。

图8 差分测速

图9 NTD滤波测速
5 结 论
本文给出基于FPGA的SSI接口绝对式编码器码值读取方案,能够准确读取绝对式编码器码值,将NTD理论应用于速度测量中,根据编码器位置采集数据准确快速地估计速度信号。此方法也可用于受噪声干扰信号的滤波处理中,减少噪声干扰的负面影响。NTD模型不依赖对象模型,可调参数只有速度因子和滤波因子两个参数,通过改变速度因子和滤波因子有效调节响应时间和抑制噪声干扰,调节方法简单,易于在工程中实现。实验表明,该方案能够准确读取SSI接口绝对式编码器码值,根据采集到的码值信息准确估计速度信息,当转台以0.05 (°)/s运行时,测得的速度波动方差降低了3.46 (°)/s,有效改善了转台的低速平稳性,具有良好的使用效果。
参考文献
[1] 戴蓉,王高鹏,齐向华.SSI?485转换器的研究与应用[J].水利水文自动化,2008(2):46?51.
[2] 张琴琴,杨建宏,刘琳.基于DSP的绝对式光电编码器串行接口设计[J].现代电子技术,2012,35(14):185?188.
[3] 刘益民,李变侠,车嵘,等.转台伺服系统中高精度测速方法的研究与实现[J].科学技术与工程,2007,7(8):1732?1734.
[4] 时旭,付成伟.基于FPGA的CAN总线通信系统的设计[J].现代电子技术,2015,38(22):59?61.
[5] 葛澎,王堃.基于FPGA的数据采集系统设计[J].现代电子技术,2011,34(15):161?163.
[6] 韩京清,王伟.非线性跟踪?微分器[J].系统科学与数学,1994,14(2):177?183.
[7] 韩京清,袁露林.跟踪微分器的离散形式[J].系统科学与数学,1999,19(3):268?273.
[8] 武利强,林浩,韓京清.跟踪微分器滤波性能研究[J].系统仿真学报,2004,16(14):651?653.
[9] 朱承元,杨涤,荆武兴.跟踪微分器参数与输入输出信号幅值频率关系[J].电机与控制学报,2005,9(4):376?379.
[10] 黄一,张文革.自抗扰控制器的发展[J].控制理论与应用,2002,19(4):485?492.