APP下载

基于CORDIC算法的磁编码器角度误差修正仿真研究

2016-10-27薛凌云孙世荣

关键词:环境噪声曲线图编码器

薛凌云,孙世荣

(杭州电子科技大学生命信息与仪器工程学院,浙江 杭州 310018)



基于CORDIC算法的磁编码器角度误差修正仿真研究

薛凌云,孙世荣

(杭州电子科技大学生命信息与仪器工程学院,浙江 杭州 310018)

CORDIC算法在磁旋转编码器中被广泛使用,但受编码器制造与安装工艺所带来的噪声和信号非正交性的影响,经典CORDIC算法存在较大输出角度误差.采用MATLAB模拟产生含噪旋转磁场信号,首先对信号进行均值滤波,再根据角度误差曲线近似于正余弦函数的特点,对输入信号值运用CORDIC算法处理,然后对输入信号值移相后再运用CORDIC算法处理,并对两次CORDIC算法结果进行差值处理,最终获得磁编码器输出角度值.仿真结果表明,输出角度的误差在-0.25°~0.25°之间,有效减少了角度检测误差,提高了角度检测精度.

磁编码器;CORDIC算法;环境噪声;相位差

0 引 言

磁编码器是伺服电机的重要组成部分,其性能对电机的速度稳定性、位置准确度、噪声等重要特性有决定性的影响.受到充磁工艺、充磁质量以及编码器体积的制约,磁编码器往往采用电子细分技术来获得更高的分辨率[1].文献[2]对坐标旋转数字计算(Coordinate Rotation Digital Computer,CORDIC)方法的架构和发展做出了详细的论述.文献[3]介绍了一种基于FPGA的改进的CORDIC算法,该算法不需要查表和校正,只需要简单的移位和加减就能实现超越函数的计算.文献[4]采用了基于多路复用和流水线的CORDIC算法,用来减少信号在关键路径的传播时延.文献[5]采用了10次迭代的流水线结构的CORDIC算法,并以8倍频输出信号,但是输出倍频频率不高.文献[6]基于CORDIC算法求解电动机的速度和位置,跳过在CORDIC算法中不必要的旋转,提高了检测电动机位置和速度的精度.文献[7]采用CORDIC算法对一对正交的电压信号进行解码,在一定转速下,每旋转一周输出1 024个位置信息,即分辨率为0.35°.以上文献都是在理想信号下实现CORDIC算法的,未考虑输入余弦信号的非正交性,也未考虑环境噪声对角度检测所带来的误差.本文对磁敏传感器检测磁场信号时产生的相位差和环境噪声对角度检测造成的误差进行处理,首先对原始两路正交余弦信号采用CORDIC算法,然后将原始两路正交余弦信号移相后再次采用CORDIC算法,并对两次运算的结果进行差值处理,最终获得的检测角度值误差更小,提高了磁编码器角度检测精度.

1 CORDIC算法原理

1.1CORDIC算法思想

CORDIC算法的基本思想是通过一系列固定的、与运算基数相关的角度不断偏摆,进行空间矢量的不断旋转以逼近所需的旋转角度,本质上它是一个数值逼近的方法[8].CORDIC算法将复杂的运算分解成一系列容易在硬件中实现的加减或者移位运算,从而将复杂的算法在硬件中很好的实现.

1.2CORDIC算法的角度输出

本文采用流水线模式来实现CORDIC算法,为了提高某一时刻转子与X轴正方向的夹角θ的精度,采用16级流水线结构,并且采用20位二进制数来表示角度累加器zn,则最终的输出角度θ与角度累加器zn之间关系如下:

(1)

每次旋转的角度θn(n=0,1,2…14,15)与zn的对应关系如表1所示.

表1 θn与zn的对应关系

1.3CORDIC算法原始误差

首先由MATLAB软件生成两路正交余弦信号,并量化为每周期采样点为250的数字信号,经CORDIC算法处理后,与实际角度进行比较,CORDIC算法的原始误差曲线如图1所示,其中纵坐标为误差,横坐标为每个周期的采样点,可知原始CORDIC算法的角度误差范围在-0.01°~0.01°之间.

图1 CORDIC算法原始误差

2 误差来源及其对角度检测的影响

利用CORDIC算法计算角度时,误差来源主要是工作环境的噪声和工艺及安装结构产生的非正交信号相位偏差.受磁敏传感器制造工艺和磁编码器安装结构的影响,磁场信号的相位差范围最大为-2°~2°;受磁编码器实际工作环境的影响,磁场信号中往往包括噪声信号,该噪声信号大小可近似为均值为0、方差为0.005的白噪声,这些噪声会对角度信息的检测造成一定的误差.

2.1噪声对角度检测的影响

本文利用白噪声模拟环境产生的噪声信号.对原始信号加上均值为0,方差为0.005的白噪声,模拟工作环境对磁编码器产生的影响,数据经CORDIC算法处理后得到的误差曲线图如图2所示.

2.2相位差对角度检测的影响

对原始正交数据进行相位变换,使信号不再正交且相位差为2°,模拟磁敏传感器和磁编码器结构所产生的相位差,数据经CORDIC算法处理后其角度误差曲线图如图3所示.

图2 环境噪声对角度检测造成的误差

2.3噪声和相位差叠加后对角度检测的影响

将2.1节中正常的环境噪声和2.2节中出现的最大相位差同时加到原始信号上,经过CORDIC算法处理后其角度误差曲线图如图4所示,由图4可知其误差曲线近似于正弦曲线.

图3 相位误差对角度检测的影响

图4 噪声和相位差叠加后对角度检测的影响

由上可知,无论是环境噪声还是信号的非正交性对角度的检测都有很大的影响,其中环境噪声对角度检测造成的误差是没有规律的,而信号的非正交性对角度检测造成的误差曲线是成余弦分布的.当两种影响叠加到一起时,其误差曲线和信号的非正交性造成的误差曲线相近.

3 改进后的CORDIC算法

3.1算法流程

算法总流程图如图5所示,由图5可知,读入X,Y方向角度信息后,首先对数据进行均值滤波;然后通过采样初期的几个点,来判定X,Y轴方向数据是否正交,本文中相位差在0.25°之内的为正交,具体方法是:首先找到X轴方向数据的最大值,然后查看对应Y轴方向数据的值,根据正交曲线的原理确定是否存在相位差Y轴方向数据的阈值为100,若Y轴方向的值超过100,则存在相位差,否则不存在相位差.若不存在相位差,直接采用CORDIC算法对数据进行处理,得出角度输出值.若存在相位差,则采用改进后的CORDIC算法进行处理,改进后的CORDIC算法流程图如图6所示,首先仍将X,Y轴方向数据进行CORDIC算法处理,然后将采样点移相,再次利用CORDIC算法处理移相后的数据,将两次CORDIC算法输出的数值进行加减处理,最后输出处理后的角度值.

图5 算法总流程图

图6 改进CORDIC算法流程图

3.2算法误差

文中对3组数据进行仿真实验,来检验改进后的CORDIC算法的抗噪性和抗非正交性.

1)正常环境噪声,相位差为2°.通过均值滤波和改进CORDIC算法处理的结果的误差曲线图如图7所示,由图7可知角度误差范围在-0.25°~0.25°之间.

2)2倍的正常环境噪声,相位差为2°.误差曲线图如图8所示,由图8可知,角度误差范围在-0.3°~0.3°之间,由此可以看出改进的CORDIC算法具有较强的抗噪性.

图7 正常噪声和相位差为2°的误差曲线图

图8 2倍的正常噪声和相位差为2°的误差曲线图

图9 正常的环境噪声和相位差为1°的误差曲线图

3)正常的环境噪声,相位差为1°.误差曲线图如图9所示,可知角度误差范围在-0.2°~0.2°之间.

由以上误差曲线图可知,原始数据的相位差一定时,环境噪声增大一倍,最终输出角度的误差最大值仅增加了0.05°,由此可以看出改进后的CORDIC算法具有较强的抗噪性;另外,改进后的CORDIC算法能很好地修正原始数据的非正交性造成的角度输出误差,并且在噪声一定的条件下,原始X,Y轴方向数据的相位差越小,最终输出角度值的误差也越小.

4 结束语

本文通过对CORDIC算法的改进,使得检测原始数据相位差的范围为-2°~-0.25°以及0.25°~2°,仿真结果表明,改进后的CORDIC算法不仅具有较强的抗噪性,而且对数据非正交性产生的角度检测误差也具有很好的修正作用.虽然改进后的CORDIC算法在仿真中能够达到很好效果,但是没有在实际场合中验证过,这是今后工作的方向.

[1]郝双辉,刘勇,周春蛟,等.基于标定原理的单磁极编码器设计[J].南京理工大学学报,2005,29(144):226-228.

[2]KUMAR N, SAPPAL A S. Coordinate Rotation Digital Computer Algorithm: Design and Architectures[J].International Journal of Advanced Computer Sciences and Applications.2011,2(4):68-71.

[3]刘小会,许蕾,刘海颖,等.基于CORDIC改进算法的反正切函数在FPGA中的实现[J].计算机技术与发展,2013,23(11):103-107.

[4]CHINNATHAMBI M, BHARANIDHARAN N, RAJARAM S. FPGA Implementation of Fast and Area Efficient CORDIC algorithm[C]//Communication and Network Technologies(ICCNT),2014 International Conference on.Sivakasi:IEEE,2014:228-232.

[5]吴正平,王璐.基于CORDIC算法的磁编码器设计[J].三峡大学学报(自然科学版),2012,34(5):82-84.

[6]ZHENG D, ZHANG S, ZHANG Y, et al. Application of CORDIC in capacitive rotary encoder signal demodulation[C]//Instrumentation and Control Technology (ISICT),2012 8th IEEE International Symposium on.London:IEEE,2012:61-65.

[7]王爽,李铁才,王治国.基于CORDIC算法的高分辨率磁编码器设计[J].微电机,2009,42(8):1-5.

[8]HU Y H, NAGANATHAN S. An angle recoding method for CORDIC algorithm implementation[J].Computers,IEEE Transactions on,1993,42(1):99-102.

The Simulation Research of Magnetic Encoder Angle Error Correction Based on Improved CORDIC Algorithm

XUE Lingyun, SUN Shirong

(SchoolofLifeInformationandInstrumentEngineering,HangzhouDianziUniversity,HangzhouZhejiang310018,China)

The coordinate rotation digital compute(CORDIC) algorithm is widely used in magnetic rotary encoder, because of the noise and non-orthogonal signal caused by encoder manufacturing and installation process, classic CORDIC algorithm has a big output angle error. This paper uses MATLAB simulation to produce the rotating magnetic field signals with noise signal. Firstly the signals should be processed by the mean value filter, next according to the feature that angle error curve approximates the sine and cosine functions, using CORDIC algorithm to process the value of the input signal, and then shift the phase and again using the CORDIC algorithm to process the value of the input signal, finally deal with the difference between the results of two CORDIC algorithm processing. The simulation results show that the output angle error is between -0.25°to 0.25°, so it effectively reduced the angle detection error, and improved the angle detection accuracy.

magnetic encoder; coordinate rotation digital computer algorithm; environmental noise; phase difference

10.13954/j.cnki.hdu.2016.01.015

2015-07-07

薛凌云(1967-),女,内蒙古呼和浩特人,教授,智能信息处理.

TN762

A

1001-9146(2016)01-0075-05

猜你喜欢

环境噪声曲线图编码器
秦皇岛煤价周曲线图
秦皇岛煤价周曲线图
秦皇岛煤价周曲线图
秦皇岛煤价周曲线图
环境噪声智能检测终端设计
基于云服务的环境噪声智能监测系统研究
基于FPGA的同步机轴角编码器
基于PRBS检测的8B/IOB编码器设计
南海某海域环境噪声与风速相关性研究*
铁路环境噪声测量中的问题分析