CN105978570B - 一种正余弦编码器高精度信号处理*** - Google Patents
一种正余弦编码器高精度信号处理*** Download PDFInfo
- Publication number
- CN105978570B CN105978570B CN201610517319.0A CN201610517319A CN105978570B CN 105978570 B CN105978570 B CN 105978570B CN 201610517319 A CN201610517319 A CN 201610517319A CN 105978570 B CN105978570 B CN 105978570B
- Authority
- CN
- China
- Prior art keywords
- subsystem
- output end
- output
- input
- multiplier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D21/00—Measuring or testing not otherwise provided for
- G01D21/02—Measuring two or more variables by means not covered by a single other subclass
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本发明公开了一种正余弦编码器高精度信号处理***,其包括两个增益电路、两个AD转换子***、四倍频子***、乘法器一、CORDIC算法子***、精码计算子***、速度计算子***、乘法器二、两个CRC校验子***。两个增益电路分别接收相位相差90度的Asinα与Bcosα,输出分别连接两个AD转换子***和四倍频子***。乘法器一、CORDIC算法子***分别连接精码计算子***。四倍频子***的输出信号与精码计算子***的输出信号进行叠加后经由乘法器二连接CRC校验子***一、速度计算子***。速度计算子***连接CRC校验子***二,两个CRC校验子***的输出端分别作为整个***的两个输出端。
Description
技术领域
本发明涉及一种信号处理***,尤其涉及一种正余弦编码器高精度信号处理***。
背景技术
增量式正余弦编码器是一种测量角位移和角速度的精密传感器。正余弦编码器以其分辨率高、精度高、无接触测量、使用可靠等优点,被广泛用于精密测量和实时控制等科技领域。
随着数控***以及现代工业控制***的精度要求越来越高,需要更高分辨率和精度的编码器。但是仅仅依靠硬件性能的提升还无法满足市场对电机的位置和速度等信号的高精度要求,因此,还需要进一步对编码器输出正余弦信号进行电子学细分,以提升编码器信号的精度。常用的电子学细分方法有反正切直接求取法、CORDIC算法、查表法、麦克劳林级数法、闭环跟踪法、信号注入法等。输出信号为TTL方波的编码器,信号只能进行4倍频,无法满足对原始信号进行更多细分差值的要求。
发明内容
本发明的目的在于提供一种正余弦编码器高精度信号处理***,其解决了对原始信号进行任意倍数的细分的技术难题,理论上可以任意细分,从而可以通过计算获得比原始信号分辨率更高的转子实时角度值(rad)和转子实时速度值(rad/s)。
本发明通过以下技术方案实现:一种正余弦编码器高精度信号处理***;其用于处理增量式旋转编码器输出的两路相位相差90度的Asinα与Bcosα;所述正余弦编码器高精度信号处理***包括差分放大器一、差分放大器二、AD转换子***一、AD转换子***二、四倍频子***、乘法器一、CORDIC算法子***、精码计算子***、速度计算子***、乘法器二、CRC校验子***一、CRC校验子***二;其中,所述差分放大器一的输入端接收Asinα,所述差分放大器一的输出端同时连接所述AD转换子***一的输入端和所述四倍频子***的输入端一;所述差分放大器二的输入端接收Bcosα,所述差分放大器二的输出端同时连接所述AD转换子***二的输入端和所述四倍频子***的输入端二;两个AD转换子***的两路输出信号连接所述CORDIC算法子***的两个输入端,两个AD转换子***的另两路输出信号连接所述乘法器一的两个输入端,所述乘法器一的输出端、所述CORDIC算法子***的输出端分别连接所述精码计算子***的两个输入端;所述四倍频子***的输出信号与所述精码计算子***的输出信号进行叠加后送至所述乘法器二的输入端一,所述乘法器二的输出端同时连接所述CRC校验子***一的输入端、所述速度计算子***的输入端;所述CRC校验子***一的输出端作为整个正余弦编码器高精度信号处理***的输出端一,所述速度计算子***的输出端连接所述CRC校验子***二的输入端,所述CRC校验子***二的输出端作为整个正余弦编码器高精度信号处理***的输出端二。
作为上述方案的进一步改进,所述限幅器的一端作为AD转换子***的输入端,所述限幅器的另一端依次串接求绝对值一、差分放大器三、量化器一,所述量化器一的输出端作为AD转换子***的输出端一,所述限幅器的另一端还连接所述开关一的一个输入触点;所述开关一的剩下两个输入触点分别接收两个分别为1和-1的常数,所述开关一的输出端作为AD转换子***的输出端二。
作为上述方案的进一步改进,所述CORDIC算法子***包括求绝对值二、求绝对值三、CORDIC三角函数算法;求绝对值二、求绝对值三的一端分别作为所述CORDIC算法子***的两个输入端,求绝对值二、求绝对值三的另一端分别连接CORDIC三角函数算法的两个输入端,CORDIC三角函数算法的输出端作为所述CORDIC算法子***的输出端。
作为上述方案的进一步改进,所述精码计算子***包括开关二、乘法器三;所述开关二的两个输入触点分别作为所述精码计算子***的两个输入端,且其中一个输入触点的输入信号负反馈一个常数信号后再接入所述开关二的剩下一个输入触点;所述开关二的输出触点连接乘法器三的输入端,乘法器三的输出端作为所述精码计算子***的输出端。
作为上述方案的进一步改进,所述四倍频子***包括比较放大器一、比较放大器二、数据类型转换器、D触发器、计数器一、计数器二、加法器;比较放大器一的输入端作为所述四倍频子***的输入端一,比较放大器一的输出端一方面连接计数器一的控制端,另一方面经由数据类型转换器连接D触发器的输出端一;比较放大器二的输入端作为所述四倍频子***的输入端二,比较放大器二的输出端一方面连接计数器二的控制端,另一方面连接D触发器的输出端二;D触发器的同相输出端连接两个计数器的增数计数位,D触发器的反相输出端连接两个计数器的减数计数位;两个计数器的输出端经加法器运算后作为所述四倍频子***的输出端。
作为上述方案的进一步改进,速度计算子***包括:0~n个采样保持、减法器、除法器;延迟一次是一个***时钟的时间长度ΔT,延迟的次数是任意的,V_cal_in是速度计算子***的输入,且V_cal_in=Pro2_out,Pro2_out是乘法器二的输出,减法器把m时刻的Pro2_out采样保持多个***时钟获得V_cal_in,记录为λm,同时采集当前时刻的Pro2_out,记录为λm+n,其中的n是采样保持的***时钟的个数,计算结果输出给除法器,计算结果(λm+n-λm)/(n×ΔT)作为速度计算子***输出V_cal_out。
作为上述方案的进一步改进,每个CRC校验子***包括乘法器四、量化器二、整形数转位转换器、CRC校验发生器;乘法器四的一个输入端作为CRC校验子***的输入端,乘法器四的另一个输入端接收常数,乘法器四的输出端依次串接量化器二、整形数转位转换器、CRC校验发生器,CRC校验发生器的输出端作为CRC校验子***的输出端。
作为上述方案的进一步改进,CORDIC算法子***在反三角函数求值时,采用坐标旋转公式,通过迭代的方法,不断旋转编码器的特定角度,每次旋转的角度β=ATAN(1/2i),使得累计旋转的角度之和无限接近某一设定的角度,2i表示CORDIC算法迭代i次之后的角度累加值,i代表迭代次数。
作为上述方案的进一步改进,所述精码计算子***的精插补方法包括:先获取AD转换后的Asinα与Bcosα的量化值,并判断其符号;计算ATAN(|Asinα/Bcosα|);判断Asinα*Bcosα是否大于等于0;是则α=ATAN(|Asinα/Bcosα|),否则,α=90°-ATAN(|Asinα/Bcosα|)。
本发明为了实现更高倍数的编码器细分倍频,在四倍频计数的基础之上,对正余弦编码器信号进行AD采样求实时精插补位置值。本发明提出了采用小范围法计算不足一个周期的电角度值,将每次测量角度范围缩小至0~90°,Matlab/Simulink仿真结果显示,此方法具有较好的可行性。实验对100kHz的2048线编码器输出电信号进行了每个电角度周期40倍细分,分辨率达到了15.82″。在测速方面,采用了改进的M/T测速法(M/T测速法是一种公知的算法),计算90个采样周期的电角度变化值,以求得电机速度值,实验显示,速度误差值在±0.000115rad/s之内。
附图说明
图1为本发明的正余弦编码器高精度信号处理***的仿真结构示意图。
图2为图1中正余弦编码器高精度信号处理***的AD转换子***的结构示意图。
图3为图1中正余弦编码器高精度信号处理***的CORDIC算法子***的结构示意图。
图4为图1中正余弦编码器高精度信号处理***的精码计算子***的结构示意图。
图5为图1中正余弦编码器高精度信号处理***的四倍频子***的结构示意图。
图6为图1中正余弦编码器高精度信号处理***的速度计算子***的结构示意图。
图7为图1中正余弦编码器高精度信号处理***的CRC校验子***的结构示意图。
图8为编码器正向旋转输出信号波形图。
图9为旋转编码器信号处理***原理框图。
图10为信号调理及接口电路。
图11为编码器接口单元粗位置计数示意图。
图12为编码器的状态变化信息图。
图13为CORDIC坐标平面旋转示意图。
图14为精插补计算程序流程图。
图15为差分信号经信号调理电路后的输出波形图。
图16为|A|、|B|信号量化值与精插补值α的示意图。
图17为不同采样周期数时仿真测得速度误差曲线图。
具体实施方式
以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明的正余弦编码器高精度信号处理***用于处理增量式旋转编码器输出的两路相位相差90度的Asinα与Bcosα。请参阅图1,所述正余弦编码器高精度信号处理***包括差分放大器一(Gain1)、差分放大器二(Gain2)、AD转换子***一、AD转换子***二、四倍频子***、乘法器一(product 1)、CORDIC算法子***、精码计算子***、速度计算子***、乘法器二(product 2)、CRC校验子***一、CRC校验子***二。
所述差分放大器一(Gain1)的输入端接收Asinα,所述差分放大器一(Gain1)的输出端同时连接所述AD转换子***一的输入端和所述四倍频子***的输入端一。所述差分放大器二(Gain2)的输入端接收Bcosα,所述差分放大器二(Gain2)的输出端同时连接所述AD转换子***二的输入端和所述四倍频子***的输入端二。两个AD转换子***的两路输出信号连接所述CORDIC算法子***的两个输入端,两个AD转换子***的另两路输出信号连接所述乘法器一的两个输入端,所述乘法器一的输出端、CORDIC算法子***的输出端分别连接所述精码计算子***的两个输入端。所述四倍频子***的输出信号与所述精码计算子***的输出信号进行叠加后送至所述乘法器二的输入端一,所述乘法器二的输入端二接收pi/4096信号,pi是圆周率,该数值由机械旋转角度λ计算公式而得,所述乘法器二的输出端同时连接所述CRC校验子***一的输入端、所述速度计算子***的输入端。所述CRC校验子***一的输出端作为整个正余弦编码器高精度信号处理***的输出端一,所述速度计算子***的输出端连接所述CRC校验子***二的输入端,所述CRC校验子***二的输出端作为整个正余弦编码器高精度信号处理***的输出端二。
故,所述差分放大器一的输入是Asinα,所述差分放大器一的输出端同时连接所述AD转换子***一的输入端和所述四倍频子***的输入端一。所述差分放大器二的输入是Bcosα,所述差分放大器二的输出端同时连接所述AD转换子***二的输入端和所述四倍频子***的输入端二。两个AD转换子***的两路输出信号连接所述CORDIC算法子***的两个输入端,两个AD转换子***的另两路输出信号连接乘法器一的两个输入端,乘法器一作为符号判断单元,所述乘法器一的输出端、所述CORDIC算法子***的输出端分别连接所述精码计算子***的两个输入端。
请参阅图2,每个AD转换子***包括限幅器(original signal)、求绝对值一(Abs1)、差分放大器三(Gain3)、量化器一(Quantizer1)、开关一(Switch1)。所述限幅器的一端作为AD转换子***的输入端,所述限幅器的另一端依次串接求绝对值一、差分放大器三、量化器一,所述量化器一的输出端作为AD转换子***的输出端一。限幅器的输入AD_in来自差分放大器一和差分放大器二(gain1_out、gain2_out,且AD1_in=gain1_out,AD2_in=gain2_out),并把输入信号限制在规定的幅度内,一方面,限幅器的输出依次经过求绝对值、按216=65535(这里是以16位AD转换器为例)差分放大器三的放大、量化器一的量化,为数字值作为AD转换子***的输出AD_out1;另一方面,限幅器的输出给开关一,开关一判断接收到的信号是正还是负,倘若接收到的信号大于零,则开关一输出1,作为AD转换子***的输出AD_out2=1,倘若接收到的信号小于零,则开关一输出-1,作为AD转换子***的输出AD_out2=-1。
限幅器一的另一端还连接开关一的一个输入触点,开关一的剩下两个输入触点分别连接两个分别为1和-1的常数,所述开关一的输出端作为AD转换子***的输出端二。AD转换子***一、二的AD_out1(AD1_out1、AD2_out1)分别作为CORDIC算法子***的输入。AD转换子***一、二的AD_out2(AD1_out1、AD2_out1)分别作为乘法器一的输入,用于符号判别,判断电机转子实时位置处于坐标平面的哪个象限。乘法器一的输出为Pro1_out。
请参阅图3,所述CORDIC算法子***包括求绝对值二(Abs2)、求绝对值三(Abs3)、CORDIC三角函数算法(Trigonometric Function)。Abs2、Abs3的一端分别作为所述CORDIC算法子***的两个输入端,Abs2、Abs3的另一端分别连接CORDIC三角函数算法(Trigonometric Function)的两个输入端,CORDIC三角函数算法(TrigonometricFunction)的输出端作为所述CORDIC算法子***的输出端。COR_in1、COR_in2是CORDIC算法子***的输入,且COR_in1=AD1_out1,COR_in2=AD2_out1,经CORDIC三角函数算法计算后,作为CORDIC算法子***的输出COR_out。
请参阅图4,所述精码计算子***即精插补计算单元包括开关二(switch 2)、乘法器三(product3)。所述开关二的两个输入触点分别作为所述精码计算子***的两个输入端,且其中一个输入触点的输入信号负反馈于pi/2的信号后再接入所述开关二的剩下一个输入触点。所述开关二的输出触点连接product3的输入端一,product3的输入端二接收2/pi的常数,product3的输出端作为所述精码计算子***的输出端。Fine_in1、Fine_in2是精码计算子***的输入,且Fine_in1=COR_out,Fine_in2=Pro1_out。开关二判断输入的Fine_in二是正还是负,倘若Fine_in二大于零,则开关二的输出=(Pi/2-Fine_in1),倘若Fine_in二小于零,则开关二的输出=Fine_in1。开关二的输出要乘以常数2/Pi作为精码计算子***的输出Fine_out。
请参阅图5,所述四倍频子***包括比较放大器一(sign1)、比较放大器二(sign2)、数据类型转换器(convert)、D触发器(D Latch)、计数器一(count1)、计数器二(count2)、加法器(ADD)。sign1的输入端作为所述四倍频子***的输入端一,sign1的输出端一方面连接计数器一的控制端,另一方面经由数据类型转换器连接D Latch的输出端一。sign2的输入端作为所述四倍频子***的输入端二,sign2的输出端一方面连接计数器二的控制端,另一方面连接D Latch的输出端二。D Latch的同相输出端连接两个计数器的增数计数位,D Latch的反相输出端连接两个计数器的减数计数位;两个计数器的输出端经加法器运算后作为所述四倍频子***的输出端。
Muti4_in1、Muti4_in2是四倍频子***的输入,且Muti4_in1=gain1_out,Muti4_in2=gain2_out。Muti4_in1进过数据类型转换后输送给D触发器的D端,Muti4_in2输送给D触发器的CP端,D触发器的输出Q、Q′分别输送给计数器一和计数器二,计数器一和计数器二是增减计数器,对输入脉冲的上升沿和下降沿都做+1计数,计数器一和计数器二的输出经加法器求和后作为四倍频子***的输出Muti4_out。
请参阅图6,速度计算子***包括n个采样保持(delay0~n)、减法器、除法器(Divide)。在本实施例中采用10个采样保持delay0~9。速度计算子***的输出端经过依次串接的10个采样保持delay0~9再负反馈至其输入上,采用减法器运算,然后传送至Divide的输入端一,Divide的输入端二接收常数,如0.00001,Divide的输出作为整个速度计算子***的输出端。
延迟一次是一个***时钟的时间长度ΔT,延迟的次数是任意的,本发明中以10次为例,即delay0~9,V_cal_in是速度计算子***的输入,且V_cal_in=Pro2_out(乘法器二的输出),减法器把m时刻的Pro2_out采样保持10个***时钟获得V_cal_in,记录为λm,同时采集当前时刻的Pro2_out,记录为λm+n,其中的n是采样保持的***时钟的个数,计算结果输出给除法器,计算结果(λm+n-λm)/(n×ΔT)作为速度计算子***输出V_cal_out,本发明中以(n×ΔT)=0.00001为例。
请参阅图7,每个CRC校验子***包括乘法器四(Product4)、量化器二(Quantizer2)、整形数转位转换器(Integer to Bit Converter)、CRC校验发生器(GeneralCRC Generator)。Product4的一个输入端作为CRC校验子***的输入端,Product4的另一个输入端接收常数,Product4的输出端依次串接量化器二、整形数转位转换器、CRC校验发生器,CRC校验发生器的输出端作为CRC校验子***的输出端。CRC_in是CRC校验子***的输入,且CRC1_in=Pro2_out,CRC2_in=V_Cal_out。CRC_in与校验码常数经乘法器4做乘法运算,运算结果经量化器2量化,量化结果再转换成比特值,最后在CRC校验发生器中做CRC运算,其结果作为CRC校验子***的输出CRC_out。CRC校验子***一是对精码实时位置值的CRC计算,CRC校验子***二是对实时速度值的CRC计算。
实施例1
1.增量式旋转编码器信号处理原理
在理想状况下,增量式旋转编码器输出A、B两路相位相差90度的正余弦信号。当编码器正方向旋转式,B输出信号相位滞后A信号90度;反之,当编码器反方向旋转时,A输出信号相位滞后B信号90度。编码器正向旋转时输出信号波形,如图8所示,图8为编码器正向旋转输出信号波形图。
编码器初始信号需要经过转换处理后,才可以得出电机角度位置等信息。在信号处理方面,将编码器输出信号分为两路,如图9所示,图9为旋转编码器信号处理***原理框图。一路信号经过差分放大器、比例放大器、转换为TTL脉冲信号,经滤波处理将TTL信号连接到ADSP-CM408混合信号控制处理器的EIU(Encoder Interface Unit)编码器接口单元,进行4倍频计数,得到编码器粗码信息;另一路信号Asinα和Bcosα经过高速运算放大器以及RC滤波电路传输到ADSP-CM408的模拟多路复用器,然后经过采样保持放大器处理后,传输给AD转换单元,得到十六位采样精度的数字信号,将得到的数字信号进行精码误差修正。接着采用电子学细分算法,直接求反正切值,得出编码器电角度α,通过电角度α可以得到编码器精码信号。最后,将粗码信息和精插补信息加在一起,就得出了精确的电机角位置角速度等信息。
信号调理电路采用ADI公司的ADA4899高速运算放大器,将正余弦信号经两级放大整形后得到调理后的正余弦模拟信号;然后再经过比较放大器,输出高电平为3.3V,低电平为0V的TTL电平信号,信号调理电路如图10所示,图10为信号调理及接口电路。
2.EIU粗位置计数
编码器接口单元采用四倍频计数方式,并判断编码器旋转方向。对于编码器输出的整周期正余弦信号,经过比较器将其转换为周期数相等的TTL脉冲信号,将TTL脉冲信号输入EIU单元,进行脉冲计数,如图11所示,图11为编码器接口单元粗位置计数示意图。EIU单元的CNT0_UD、CNT0_DG(图10)端口输入两路Ti1、Ti2(图12)脉冲信号,根据其高低电平的不同,形成两位变化的格雷码信息。在进行粗位置计数之前,需要先对脉冲信号进行双D触发器滤波处理。
当编码器正转时,两位格雷码信号变化规律为10、11、01、00、10循环变化;当编码器反转时,两位格雷码信号变化规律为01、11、10、00、01循环变化。每一次状态变化,可逆计数器都对应一次增或减计数。因此,一个信号周期进行四次计数,即四倍频计数。当有干扰或故障发生时,比如抖动,会引起其他状态的发生,此时编码器不进行计数,其状态变化信息如图12所示。
3.高分辨率细分位置信息
当电角度不足一个周期时,为了更精确地反馈实时信息,需要采用电子学细分算法进行倍频,以获得更高精度的电机角位置与角速度。ADSP-CM408MCU搭载240MHz的ARMCortex-M4内核,具有浮点运算功能,提高运算速度,还可对编码器输出两路正余弦信号同时进行双通道AD采样,采样时间为150ns,转换时间380ns。
3.1CORDIC算法求反正切
电子学细分算法主要使用反正切直接求值法。电角度α的计算公式为:
为了更快的实现反三角函数求值,J.Volder于1959年提出了一种快速算法,称之为CORDIC(Cordinate Rotation Digital Computer)算法。该算法在保证运算精度的情况下,使运算时间大大减少。CORDIC算法如图13所示,图13为CORDIC平面坐标旋转示意图。将X、Y轴坐标旋转一定的度数,通过N次迭代运算,当纵坐标旋转为0时,那么旋转的度数就是β。设(x,y)是原始坐标点,将其以原点为中心,顺时针旋转β之后的坐标记为(x′,y′)。
但是,上述公式在运算的时候会有四次乘法运算,运算量还是较大,进一步改进算法。此时提取出了一个乘法因子cosα,由矩阵运算公式可知,去掉cosα,每次旋转后的新坐标点到原点的距离变长了,增长因子为1/cosα。但是,对于所求的α值并没有影响。这样运算量就变为两次乘法运算。于是就得到了如下的坐标旋转公式:
通过迭代的方法,不断的旋转特定的角度,每次旋转的角度β=ATAN(1/2i),使得累计旋转的角度之和无限接近某一设定的角度。这是一个不断修正的过程,为了使y值无限逼近于零,当某次旋转一定角度得出y值为负值时,则下次旋转需修正为反方向旋转。于是,CORDIC算法迭代公式为:
则角度累加公式为:zi+1=zi+diαi;di=±1,其中,Zi表示CORDIC算法迭代i次之后的角度累加值;符号di是判决因子,决定旋转方向,其正负取决于迭代后所得yi值得正负。角度累加公式所求结果即为电角度α的值。
3.2实时精插补位置值
由于单纯的依靠四倍频已经无法满足要求,还需要更高精度的细分,而正余弦信号细分技术可以得到实时精插补位置值。
当选择0~360°进行电子学细分时,若采用CORDIC算法进行逼近的时候,如果角度值较大,需要逼近的次数较大,间接地增加了运算量,使得运算时间增加,从而不利于***的实时性。因此,本文采用0~90°小范围法计算电角度,由于粗码计数时采用了四倍频计数,每次计算电角度的值时就可以只计算未足四分之一周期的角度大小,将测量范围缩小至0~90度,这样在用CORDIC算法求反正切值时就减少了迭代次数,进而减少了运算时间。而且,此方法可以达到几十倍以上的细分精度,理论上其上限受限于AD采样时间和转换时间以及MCU的运算快慢。由CORDIC算法得出反正切值,再由公式⑴求得实时精插补位置值。
其软件算法实现流程图如图14所示,图14为精插补计算程序流程图,所述精码计算子***的精插补方法包括:先获取AD转换后的Asinα与Bcosα的量化值,并判断其符号;计算ATAN(|Asinα/Bcosα|);判断Asinα*Bcosα是否大于等于0;是则α=ATAN(|Asinα/Bcosα|),否则,α=90°-ATAN(|Asinα/Bcosα|)。
3.3电机位置信息
高精度的电机旋转角度值有两部分组成,将得到的粗码信号和精码信号即实时精插补位置值进行组合,得到编码器的机械旋转角度λ。机械旋转角度λ的计算公式为:
其中,N表示电机转子旋转一周产生的信号周期数;Z表示电机实际旋转产生的信号周期数;λ0表示电机转子的初始位置。
在测量电机转速时,改进了M/T测速方法,采用基于采样角度的变化,测量10个采样周期的角度变化值,这样就消除了M法单位时间内脉冲数少和T法两脉冲间时间短的问题,同时也克服了M/T法的实时性不足,测量精度较高。将机械角度λ传给ADSP-CM408控制处理器进行运算处理,以获取电机的转速、位置和转向等数据信息。电机转速算法为:其中,λm+n为第m+n个机械旋转角度;λm为第m个机械旋转角度;ΔT为采样时间。
4.实验仿真分析
信号调理电路首先在Multisim电路仿真软件进行仿真。如图15所示为差分信号经信号调理电路后的输出波形图。
原始信号经调理之后,得到较为理想的信号波形。将调理后的信号作为Simulink仿真的信号源,经过16位AD转换、CORDIC算法得到精插补信息,而源信号经放大器、比较器以及四倍频计数之后得到粗码信息,两者相加得到完整位置值信息,再经过32位的CRC校验,输出到CRC1_out;速度值经过32位CRC校验之后,输出到CRC2_out。其Simulink仿真模型如图1所示。仿真时,仿真步长设置为0.1s,输入信号频率为100kHz,采样时间为0.25us。经仿真分析可知,如图16所示,图16为|A|、|B|信号量化值与精插补值α的示意图。在对A、B信号即Asinα、Bcosα经过AD转换器采样量化之后,取绝对值运算,得到量化值,经过CORDIC运算之后,求出反正切值α,其值在0~90°范围周期复现,因此,公式⑴的算法较好的实现了对编码器正余弦信号的细分倍频。
在实验时,采用海德汉2048线正余弦编码器,转速3000rpm,编码器输出正余弦信号的频率为102.4kHz。在0.1s内理论机械角为30.679616rad,实际转子角度值为30.678849rad,误差为0.000767rad;而速度理论值为306.796158rad/s。图17为不同采样周期数时仿真测得速度误差曲线图,不同采样周期测得速度与理论值的差值分别为10、30、50、70、90个采样周期测一次速度时测得速度误差数据。当以10个采样周期作为测速周期时,误差较大,随着采样周期增加,误差有所减少,其误差数值如表1所示。
表1不同采样周期数测得速度误差值
5.结论
为了实现更高倍数的编码器细分倍频,在四倍频计数的基础之上,对正余弦编码器信号进行AD采样求实时精插补位置值。文中提出了采用小范围法计算不足一个周期的电角度值,将每次测量角度范围缩小至0~90°,Matlab/Simulink仿真结果显示,此方法具有较好的可行性。实验对100kHz的2048线编码器输出电信号进行了每个电角度周期40倍细分,分辨率达到了15.82″。在测速方面,采用了改进M/T测速法,计算90个采样周期的电角度变化值,以求得电机速度值,实验显示,速度误差值在±0.000115rad/s之内。
其它有关信息可参考本公司专利文献CN201510465550.5、CN201520574867.8、CN201510467898.8、CN201610029229.7、CN201610029321.3、CN201510465547.3、CN201520570360.5。
实施例2
假设实际应用时:
1.编码器分辨率为2048线;
2.电机转速为3000rpm;
3.电机每旋转一圈丝杆进给量为5mm,即5mm/r;
4.进给量分辨率达到0.0001mm,对应机械角度即为360/(5/0.0001)=0.0072°=25.92″。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种正余弦编码器高精度信号处理***,其用于处理增量式旋转编码器输出的两路相位相差90度的Asinα与Bcosα;其特征在于:所述正余弦编码器高精度信号处理***包括差分放大器一、差分放大器二、AD转换子***一、AD转换子***二、四倍频子***、乘法器一、CORDIC算法子***、精码计算子***、速度计算子***、乘法器二、CRC校验子***一、CRC校验子***二;其中,所述差分放大器一的输入端接收Asinα,所述差分放大器一的输出端同时连接所述AD转换子***一的输入端和所述四倍频子***的输入端一;所述差分放大器二的输入端接收Bcosα,所述差分放大器二的输出端同时连接所述AD转换子***二的输入端和所述四倍频子***的输入端二;两个AD转换子***的两路输出信号连接所述CORDIC算法子***的两个输入端,两个AD转换子***的另两路输出信号连接所述乘法器一的两个输入端,所述乘法器一的输出端、所述CORDIC算法子***的输出端分别连接所述精码计算子***的两个输入端;所述四倍频子***的输出信号与所述精码计算子***的输出信号进行叠加后送至所述乘法器二的输入端一,所述乘法器二的输出端同时连接所述CRC校验子***一的输入端、所述速度计算子***的输入端;所述CRC校验子***一的输出端作为整个正余弦编码器高精度信号处理***的输出端一,所述速度计算子***的输出端连接所述CRC校验子***二的输入端,所述CRC校验子***二的输出端作为整个正余弦编码器高精度信号处理***的输出端二;
其中,所述精码计算子***包括开关二、乘法器三;所述开关二的两个输入触点分别作为所述精码计算子***的两个输入端,且其中一个输入触点的输入信号负反馈一个常数信号后再接入所述开关二的剩下一个输入触点;所述开关二的输出触点连接乘法器三的输入端,乘法器三的输出端作为所述精码计算子***的输出端。
2.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:每个AD转换子***包括限幅器、求绝对值一、差分放大器三、量化器一、开关一;所述限幅器的一端作为AD转换子***的输入端,所述限幅器的另一端依次串接求绝对值一、差分放大器三、量化器一,所述量化器一的输出端作为AD转换子***的输出端一,所述限幅器的另一端还连接所述开关一的一个输入触点;所述开关一的剩下两个输入触点分别接收两个分别为1和-1的常数,所述开关一的输出端作为AD转换子***的输出端二。
3.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:所述CORDIC算法子***包括求绝对值二、求绝对值三、CORDIC三角函数算法;求绝对值二、求绝对值三的一端分别作为所述CORDIC算法子***的两个输入端,求绝对值二、求绝对值三的另一端分别连接CORDIC三角函数算法的两个输入端,CORDIC三角函数算法的输出端作为所述CORDIC算法子***的输出端。
4.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:所述四倍频子***包括比较放大器一、比较放大器二、数据类型转换器、D触发器、计数器一、计数器二、加法器;比较放大器一的输入端作为所述四倍频子***的输入端一,比较放大器一的输出端一方面连接计数器一的控制端,另一方面经由数据类型转换器连接D触发器的输出端一;比较放大器二的输入端作为所述四倍频子***的输入端二,比较放大器二的输出端一方面连接计数器二的控制端,另一方面连接D触发器的输出端二;D触发器的同相输出端连接两个计数器的增数计数位,D触发器的反相输出端连接两个计数器的减数计数位;两个计数器的输出端经加法器运算后作为所述四倍频子***的输出端。
5.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:速度计算子***包括:0~n个采样保持、减法器、除法器;延迟一次是一个***时钟的时间长度ΔT,延迟的次数是任意的,V_cal_in是速度计算子***的输入,且V_cal_in=Pro2_out,Pro2_out是乘法器二的输出,减法器把m时刻的Pro2_out采样保持多个***时钟获得V_cal_in,记录为λm,同时采集当前时刻的Pro2_out,记录为λm+n,其中的n是采样保持的***时钟的个数,计算结果输出给除法器,计算结果(λm+n-λm)/(n×ΔT)作为速度计算子***输出V_cal_out。
6.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:每个CRC校验子***包括乘法器四、量化器二、整形数转位转换器、CRC校验发生器;乘法器四的一个输入端作为CRC校验子***的输入端,乘法器四的另一个输入端接收常数,乘法器四的输出端依次串接量化器二、整形数转位转换器、CRC校验发生器,CRC校验发生器的输出端作为CRC校验子***的输出端。
7.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:CORDIC算法子***在反三角函数求值时,采用坐标旋转公式,通过迭代的方法,不断旋转编码器的特定角度,每次旋转的角度β=ATAN(1/2i),使得累计旋转的角度之和无限接近某一设定的角度,2i表示CORDIC算法迭代i次之后的角度累加值,i代表迭代次数。
8.如权利要求1所述的正余弦编码器高精度信号处理***,其特征在于:所述精码计算子***的精插补方法包括:先获取AD转换后的Asinα与Bcosα的量化值,并判断其符号;计算ATAN(|Asinα/Bcosα|);判断Asinα*Bcosα是否大于等于0;是则α=ATAN(|Asinα/Bcosα|),否则,α=90°-ATAN(|Asinα/Bcosα|)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610517319.0A CN105978570B (zh) | 2016-06-30 | 2016-06-30 | 一种正余弦编码器高精度信号处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610517319.0A CN105978570B (zh) | 2016-06-30 | 2016-06-30 | 一种正余弦编码器高精度信号处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105978570A CN105978570A (zh) | 2016-09-28 |
CN105978570B true CN105978570B (zh) | 2023-04-25 |
Family
ID=56954526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610517319.0A Active CN105978570B (zh) | 2016-06-30 | 2016-06-30 | 一种正余弦编码器高精度信号处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105978570B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106989768B (zh) * | 2017-04-19 | 2019-04-02 | 广东盈动高科自动化有限公司 | 编码器实时李莎育圆偏心处理方法 |
CN107091653A (zh) * | 2017-06-19 | 2017-08-25 | 四川大学 | 一种组合算法磁电编码器数字转换器 |
CN107565762A (zh) * | 2017-09-01 | 2018-01-09 | 浙江众邦机电科技有限公司 | 磁性编码器、电机以及其角度计算方法 |
CN108444506B (zh) * | 2018-05-31 | 2024-03-22 | 苏州汇川技术有限公司 | 编码器码盘、绝对值编码器、位置获取方法及*** |
CN109470293B (zh) * | 2018-12-25 | 2021-01-01 | 哈工大机器人(合肥)国际创新研究院 | 一种自适应编码器输出的检测装置和检测方法 |
CN109901382B (zh) * | 2019-03-15 | 2022-11-18 | 爱士惟科技(上海)有限公司 | 一种数字控制***的规则采样pwm优化方法 |
CN110470322A (zh) * | 2019-08-06 | 2019-11-19 | 上海交通大学 | 一种涡流式绝对编码器及其工作方法 |
CN110470323A (zh) * | 2019-08-06 | 2019-11-19 | 上海交通大学 | 一种涡流式增量编码器及其工作方法 |
CN110568212B (zh) * | 2019-09-02 | 2022-01-11 | 深圳巴诺机器人有限公司 | 编码器测速方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319849A (ja) * | 1994-05-27 | 1995-12-08 | Hitachi Ltd | 離散コサイン高速演算器 |
US6029185A (en) * | 1994-05-27 | 2000-02-22 | Hitachi, Ltd. | Discrete cosine high-speed arithmetic unit and related arithmetic unit |
JP2004191101A (ja) * | 2002-12-09 | 2004-07-08 | Asahi Kasei Electronics Co Ltd | 磁気センサ信号処理集積回路、その回転角度測定方法および回転角度センサ |
CN101082858A (zh) * | 2007-07-12 | 2007-12-05 | 北京航空航天大学 | 一种cordic算法的实现装置 |
US7440987B1 (en) * | 2003-02-25 | 2008-10-21 | Qualcomm Incorporated | 16 bit quadrature direct digital frequency synthesizer using interpolative angle rotation |
US7557661B1 (en) * | 2006-09-25 | 2009-07-07 | Cirrus Logic, Inc. | Direct digital synthesis (DDS) hybrid phase-lock loop for low-jitter synchronization |
CN101611541A (zh) * | 2006-12-11 | 2009-12-23 | Nsc株式会社 | 正弦波生成电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10571484B2 (en) * | 2014-04-16 | 2020-02-25 | Cirrus Logic, Inc. | Systems and methods for determining acceleration based on phase demodulation of an electrical signal |
-
2016
- 2016-06-30 CN CN201610517319.0A patent/CN105978570B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319849A (ja) * | 1994-05-27 | 1995-12-08 | Hitachi Ltd | 離散コサイン高速演算器 |
US6029185A (en) * | 1994-05-27 | 2000-02-22 | Hitachi, Ltd. | Discrete cosine high-speed arithmetic unit and related arithmetic unit |
JP2004191101A (ja) * | 2002-12-09 | 2004-07-08 | Asahi Kasei Electronics Co Ltd | 磁気センサ信号処理集積回路、その回転角度測定方法および回転角度センサ |
US7440987B1 (en) * | 2003-02-25 | 2008-10-21 | Qualcomm Incorporated | 16 bit quadrature direct digital frequency synthesizer using interpolative angle rotation |
US7557661B1 (en) * | 2006-09-25 | 2009-07-07 | Cirrus Logic, Inc. | Direct digital synthesis (DDS) hybrid phase-lock loop for low-jitter synchronization |
CN101611541A (zh) * | 2006-12-11 | 2009-12-23 | Nsc株式会社 | 正弦波生成电路 |
CN101082858A (zh) * | 2007-07-12 | 2007-12-05 | 北京航空航天大学 | 一种cordic算法的实现装置 |
Non-Patent Citations (2)
Title |
---|
基于CORDIC算法的磁编码器角度误差修正仿真研究;薛凌云等;《杭州电子科技大学学报(自然科学版)》;20160115(第01期);全文 * |
编码器正余弦信号跟踪环路细分技术研究;马泽龙等;《电气传动》;20120520(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105978570A (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105978570B (zh) | 一种正余弦编码器高精度信号处理*** | |
CN106197484B (zh) | 一种正余弦编码器高精度信号处理*** | |
US20100250184A1 (en) | Rotation angle detection apparatus | |
CN109959400B (zh) | 绝对编码器参数计算的方法、装置及终端设备 | |
JPH08145719A (ja) | 位置または角度の検出方法 | |
CN101266154A (zh) | 位置检测器 | |
US11788867B2 (en) | Incremental encoder position interpolation | |
EP3529880B1 (en) | Correcting offset and gain drift related angle errors with motor position detectors | |
US4099245A (en) | Transducer signalling apparatus | |
Park et al. | A linear compensation method for improving the accuracy of an absolute multipolar magnetic encoder | |
CN108375391A (zh) | 正余弦信号处理方法及*** | |
Burke et al. | Extraction of high resolution position information from sinusoidal encoders | |
CN115355937A (zh) | 磁性编码器的自校准方法及电机 | |
RU167428U1 (ru) | Преобразователь синусно-косинусного сигнала в код положения | |
KR100959215B1 (ko) | 속도 검출 장치 | |
CN110212818B (zh) | 一种永磁电机角度检测方法 | |
CN110133316B (zh) | 一种光电编码器精密测速***及方法 | |
CN107643091A (zh) | 确定正交脉冲的旋转方向和有效转变的方法 | |
CN111368584A (zh) | 一种可自校正的正余弦编码器高分辨率位置信息拼接方法 | |
CN108759644B (zh) | 移动距离的检测方法、装置和存储介质 | |
Zheng et al. | Application of CORDIC in capacitive rotary encoder signal demodulation | |
CN111555755B (zh) | 一种快速角度模数转换器及设计方法 | |
Lygouras | Memory reduction in look-up tables for fast symmetric function generators | |
Yepez et al. | An FPGA-based closed-loop approach of angular displacement for a resolver-to-digital-converter | |
Li et al. | An improved M/T speed algorithm based on RISC-V DSP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |