一种光栅信号补偿方法及补偿系统转让专利

申请号 : CN201910591479.3

文献号 : CN110500960B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李俊颖杨志军吴建成

申请人 : 广东工业大学

摘要 :

本发明公开了一种光栅信号补偿方法及补偿系统,所述的补偿方法包括:采集光栅尺输出的光栅信号并进行数模转换成数字信号;根据数模转换精度制作查找表;以周期为单位,判断信号的幅值状态,获得幅值的极大值、极小值,以此求得信号的峰峰值;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲。发明根据模数转换器输出的数值范围制成查找表,对衰减的正弦电信号的幅值进行自动补偿,使补偿之后的幅值适用于同一张查找表,根据补偿之后的幅值进行查表细分,省去了制作大量查找表的繁琐工作,提高了查找表细分的灵活性;从而解决了现有查找表方法灵活性差和存储资源消耗大的问题。

权利要求 :

1.一种光栅信号补偿方法,其特征在于,包括:

采集光栅尺输出的光栅信号并进行数模转换成数字信号;

根据数模转换精度制作查找表;

以周期为单位,判断光栅信号的幅值状态,获得幅值的极大值、极小值,以此求得光栅信号的峰峰值;所述幅值状态包括上升或下降;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲;

所述的以周期为单位,判断光栅信号的幅值状态,包括:

将经过数模转换后的数字信号的幅值A锁存在幅值寄存器里,进行一个时钟周期T的缓存,然后在数字信号的下一个的幅值B到来的时候,将新到来的幅值B与已锁存在幅值寄存器内的幅值A进行比较,如果新到来的幅值B大于已锁存的幅值A,说明数字信号的幅值在上升,反之则在下降;

所述的获得幅值的极大值、极小值,包括:

使用状态寄存器来寄存数字信号的幅值状态,同样对幅值状态进行一个时钟周期T的缓存;比较当前状态寄存器中的幅值状态C和上一个时钟周期第状态存器中的幅值状态D,如果上一个周期的幅值状态D是上升,而当前幅值状态C是下降,说明上一个幅值是一个极大值,将该极大值锁存到极大值寄存器;反之则说明上一个幅值是一个极小值,将该极小值所存在极小值寄存器中;如果上一个周期幅值状态D和当前幅值状态C同为上升或下降,不对幅值进行锁存;

所述的求得光栅信号的峰峰值,公式为:

val_vpp=max_val-min_val

其中,max_val为极大值寄存器中的值,min_val为极小值寄存器中的值;

所述的利用峰峰值、幅值的极小值对幅值进行补偿,包括:

当前接收到的幅值AD减去当前极小值寄存器min_val中的值,得到当前光栅信号的实际幅值,用实际幅值除以峰峰值val_vpp,得到当前幅值占比;再以数模转换器ADC的数值范围为基准,把幅值等比例放大到该数值范围内,得到补偿之后的幅值Am_now,对于8位数模转换器ADC,具体公式如下:

2.一种光栅信号补偿系统,其特征在于,包括:

信号转换模块,用于采集光栅尺输出的光栅信号并进行数模转换成数字信号;

补偿模块,内部存储有根据数模转换精度制作查找表;补偿模块用于以周期为单位,判断光栅信号信号的幅值状态,获得幅值的极大值、极小值,以此求得信号的峰峰值;所述幅值状态包括上升或下降;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲;

所述的以周期为单位,判断光栅信号的幅值状态,包括:

将经过数模转换后的数字信号的幅值A锁存在幅值寄存器里,进行一个时钟周期T的缓存,然后在数字信号的下一个的幅值B到来的时候,将新到来的幅值B与已锁存在幅值寄存器内的幅值A进行比较,如果新到来的幅值B大于已锁存的幅值A,说明数字信号的幅值在上升,反之则在下降;

所述的获得幅值的极大值、极小值,包括:

使用状态寄存器来寄存数字信号的幅值状态,同样对幅值状态进行一个时钟周期T的缓存;比较当前状态寄存器中的幅值状态C和上一个时钟周期第状态存器中的幅值状态D,如果上一个周期的幅值状态D是上升,而当前幅值状态C是下降,说明上一个幅值是一个极大值,将该极大值锁存到极大值寄存器;反之则说明上一个幅值是一个极小值,将该极小值所存在极小值寄存器中;如果上一个周期幅值状态D和当前幅值状态C同为上升或下降,不对幅值进行锁存;

所述的求得光栅信号的峰峰值,公式为:

val_vpp=max_val-min_val

其中,max_val为极大值寄存器中的值,min_val为极小值寄存器中的值;

所述的利用峰峰值、幅值的极小值对幅值进行补偿,包括:

当前接收到的幅值AD减去当前极小值寄存器min_val中的值,得到当前光栅信号的实际幅值,用实际幅值除以峰峰值val_vpp,得到当前幅值占比;再以数模转换器ADC的数值范围为基准,把幅值等比例放大到该数值范围内,得到补偿之后的幅值Am_now,对于8位数模转换器ADC,具体公式如下:

说明书 :

一种光栅信号补偿方法及补偿系统

技术领域

[0001] 本发明涉及光栅信号处理领域,具体涉及一种光栅信号补偿方法及补偿系统。

背景技术

[0002] 目前,光栅尺作为一种精密的位移测量工具,在制造行业中的位移测量方面有着广泛的应用。使用光栅测位移是以莫尔条纹信号为基础,在光栅相对运动过程中,莫尔条纹信号经光电转换为周期性变化的正弦电信号,正弦信号经过数字化细分后传输到后续电子电路可以达到精密位移测量的目的。
[0003] 细分方法有硬件细分和软件细分。硬件细分方法采用多个比较器对信号进行细分,当细分倍数较大时,硬件电路十分复杂,并且存在回差和延时,所以当细分倍数较大时不宜采用硬件细分;软件细分方法先通过数模转换器ADC将正弦波信号转换为数字信号,再交由后续的电路通过查表的方法进行细分。
[0004] 由于在实际应用中,光栅尺的运动速度是在不断变化的,其产生的正弦电信号的频率也随之改变,并且运动速度越快,频率越高。由于光栅尺读数头的特性可知,随着运动速度加快,频率升高,输出正弦电信号的幅值会衰减的现象,那么经模数转换后的信号幅值也会相应衰减,此时如果后续电子电路不针对信号衰减进行处理,直接进行查表细分,会造成很大的误差。现有的基于查找表的补偿方法是要根据信号幅值的峰值变化制作与之对应的查找表进行细分。
[0005] 然而,在进行光栅信号的采集时,为了达到精密位移测量的目的,应采用较高精度的ADC;随着ADC精度的提高,信号衰减的幅值变化范围也会更大,所需要的查找表数量也会增加。根据不同的衰减情况制作与之相应的查找表不仅需要繁琐、重复的制表过程,而且当ADC精度发生变化时,已有的查找表又不再适用,需要重新制表,使得查找表细分方法灵活性较差。

发明内容

[0006] 本发明的目的是提供一种光栅信号补偿方法及补偿系统,该方法通过对模数转换后衰减的正弦信号的幅值进行自动补偿归一化处理,使所有补偿后的幅值适用于同一张查找表,即补偿后只需要一张查找表即可完成后期的细分脉冲输出。
[0007] 为了实现上述任务,本发明采用以下技术方案:
[0008] 一种光栅信号补偿方法,包括:
[0009] 采集光栅尺输出的光栅信号并进行数模转换成数字信号;
[0010] 根据数模转换精度制作查找表;
[0011] 以周期为单位,判断信号的幅值状态,获得幅值的极大值、极小值,以此求得信号的峰峰值;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲。
[0012] 进一步地,所述的以周期为单位,判断信号的幅值状态,包括:
[0013] 将经过数模转换后的数字信号的幅值A锁存在幅值寄存器里,进行一个时钟周期T的缓存,然后在数字信号的下一个的幅值B到来的时候,将新到来的幅值B与已锁存在幅值寄存器内的幅值A进行比较,如果新到来的幅值B大于已锁存的幅值A,说明数字信号的幅值在上升,反之则在下降。
[0014] 进一步地,所述的获得幅值的极大值、极小值,包括:
[0015] 使用状态寄存器来寄存数字信号的幅值状态,同样对幅值状态进行一个时钟周期T的缓存;比较当前状态寄存器中的幅值状态C和上一个时钟周期第状态存器中的幅值状态D,如果上一个周期的幅值状态D是上升,而当前幅值状态C是下降,说明上一个幅值是一个极大值,将该极大值锁存到极大值寄存器;反之则说明上一个幅值是一个极小值,将该极小值所存在极小值寄存器中;如果上一个周期幅值状态D和当前幅值状态C同为上升或下降,不对幅值进行锁存。
[0016] 进一步地,所述的求得信号的峰峰值,公式为:
[0017] val_vpp=max_val-min_val
[0018] 其中,max_val为极大值寄存器中的值,min_val为极小值寄存器中的值。
[0019] 进一步地,所述的利用峰峰值、幅值的极小值对幅值进行补偿,包括:
[0020] 当前接收到的幅值AD减去当前极小值寄存器min_val中的值,得到当前信号的实际幅值,用实际幅值除以峰峰值val_vpp,得到当前幅值占比;再以数模转换器ADC的数值范围为基准,把幅值等比例放大到该数值范围内,得到补偿之后的幅值Am_now,具体公式如下:
[0021]
[0022] 一种光栅信号补偿系统,包括:
[0023] 信号转换模块,用于采集光栅尺输出的光栅信号并进行数模转换成数字信号;
[0024] 补偿模块,内部存储有根据数模转换精度制作查找表;补偿模块用于以周期为单位,判断信号的幅值状态,获得幅值的极大值、极小值,以此求得信号的峰峰值;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲。
[0025] 本发明具有以下技术特点:
[0026] 发明根据模数转换器输出的数值范围制成查找表,对衰减的正弦电信号的幅值进行自动补偿,使补偿之后的幅值适用于同一张查找表,根据补偿之后的幅值进行查表细分,省去了制作大量查找表的繁琐工作,提高了查找表细分的灵活性;同时只需要存储一张查找表,节省了大量FPGA的片内资源,从而解决了现有查找表方法灵活性差和存储资源消耗大的问题。

附图说明

[0027] 图1为本发明方法对应系统的结构示意图;
[0028] 图2为自动补偿流程图;
[0029] 图3为信号衰减示意图;
[0030] 图4为查找表细分原理示意图;
[0031] 图5为仿真效果图。

具体实施方式

[0032] 本发明在于解决模拟量光栅信号输出的细分问题。对于模拟量光栅尺的信号细分,基于A/D转换与查表的软件细分法是常用方法之一;在实际应用中,光栅尺读数头的运动速度是在不断变化的,其产生的正弦电信号的频率也随速度而变化,运动速度越快,信号频率越高。但是,由于光栅尺读数头的特性,正弦电信号的幅值会随着其频率的升高而衰减,如图3所示,若不对幅值进行补偿,便需要根据实际衰减情况和数模转换器精度制作大量查找表以保持查表输出的准确性。现有的查找表细分方法是根据信号的衰减情况制作对应的查找表,如图2所示,查找表的数量随着模数转换器的精度提高而增加,制表工作繁琐且重复。针对于此,本发明提供了一种光栅信号补偿方法,该方法的具体流程如下:
[0033] 步骤1,采集光栅尺输出的光栅信号并进行数模转换成数字信号;
[0034] 所述的尺输出的光栅信号为正弦电信号,并通过数模转换器ADC转换为数字信号后传输到补偿模块中。
[0035] 步骤2,以周期为单位,判断信号的幅值状态,获得幅值的极大值、极小值,以此求得信号的峰峰值;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲。本实施例中,补偿模块采用FPGA芯片;实际使用时,补偿模块不限于FPGA芯片,只要具有微处理器功能的芯片均可以作为补偿模块,例如PLC、单片机等。
[0036] 所述的补偿模块对数字信号进行自动补偿并查表输出细分脉冲信号;补偿模块内部存储有一个根据数模转换器ADC的精度制成的查找表;查找表的制作方法属现有技术,不再赘述。补偿模块内的自动补偿电路将已被ADC转化为数信号的信号幅值进行自动补偿,具体过程如下:
[0037] 首先将经过ADC转换后的数字信号的幅值A锁存在幅值寄存器里,进行一个时钟周期T的缓存,然后在数字信号的下一个的幅值B到来的时候,将新到来的幅值B与已锁存在幅值寄存器内的幅值A进行比较,如果新到来的幅值B大于已锁存的幅值A,说明数字信号的幅值在上升,反之则在下降。
[0038] 同时,FPGA内部使用状态寄存器来寄存数字信号的幅值状态,即上升或下降;同样对幅值状态进行一个时钟周期T的缓存;比较当前状态寄存器中的幅值状态C和上一个时钟周期第状态存器中的幅值状态D,如果上一个周期的幅值状态D是上升,而当前幅值状态C是下降,说明上一个幅值是一个极大值,将该极大值锁存到极大值寄存器max_val;而如果上一个周期的幅值状态D是下降,而当前幅值状态C是上升,则说明上一个幅值是一个极小值,将该极小值所存在极小值寄存器min_val中;如果上一个周期幅值状态D和当前幅值状态C同为上升或下降,则说明此时信号处于单调上升或下降,不对幅值进行锁存。
[0039] 光栅信号的频率随着光栅尺的运动变化,峰峰值随着信号频率的升高而减小,因此在每个周期内,极大值寄存器、极小值寄存器中的数值都会被刷新。根据极大值寄存器、极小值寄存器中的值得到信号的峰峰值:
[0040] val_vpp=max_val-min_val
[0041] 本方案中的补偿原理是将幅值等比例地映射到数模转换器ADC的数值范围内,即:
[0042] 当前接收到的幅值AD减去当前极小值寄存器min_val中的值,得到当前信号的实际幅值,用实际幅值除以峰峰值val_vpp,得到当前幅值占比;再以数模转换器ADC的数值范围为基准(例如8位ADC的数值范围是0~255),把幅值等比例放大到该数值范围内,得到补偿之后的幅值Am_now,具体公式如下(8位ADC):
[0043]
[0044] 由于光栅尺的运动速度不会发生突变,信号频率也不会发生突变,继而信号的峰峰值也不会产生突变,因此可以利用上一个周期的峰峰值作为当前信号幅值的补偿依据。
[0045] 将补偿之后的幅值Am_now作为地址进行查表,输出细分脉冲。
[0046] 本发明进一步提供一种光栅信号补偿系统,包括:
[0047] 信号转换模块,用于采集光栅尺输出的光栅信号并进行数模转换成数字信号;
[0048] 补偿模块,内部存储有根据数模转换精度制作查找表;补偿模块用于以周期为单位,判断信号的幅值状态,获得幅值的极大值、极小值,以此求得信号的峰峰值;利用峰峰值、幅值的极小值对幅值进行补偿,以补偿后的幅值作为地址查询所述的查找表,输出细分脉冲。
[0049] 信号转换模块、补偿模块的具体流程对应于前述的步骤1、步骤2,在此不赘述。
[0050] 实施例1
[0051] 本实施例提供一种基于FPGA的光栅信号补偿方法,包括以下步骤:
[0052] 将光栅尺输出的正弦光栅电信号经过8位ADC转换为数字信号输入到FPGA中,在FPGA内根据式1进行自动补偿,以补偿后的值作为地址查表,以输出细分脉冲,具体仿真结果如图5所示。
[0053] 实施例效果:
[0054] 细分脉冲的输出是根据补偿后幅值的范围决定的,结合仿真可知经过该方法补偿后的幅值能满足后续细分的要求。假设信号最大衰减到最大峰峰值的50%,对应8位模数转换器的峰峰值动态范围为255-128,即需要制作128张不同的查找表来对应不同的衰减情况。与传统的查表细分方法比较,该方法只需存储一张查找表,省去了制作大量查找表的繁琐工作,提高了查找表细分的灵活性,同时也节省了大量FPGA的片内资源。假设信号最大衰减到最大峰峰值的50%,不同模数转换器精度下传统查找表方法与该自动补偿方法所需要的查找表数量如表1所示。
[0055] 表1查找表数量对比
[0056] 数模转换器精度 8bit 12bit 14bit 16bit传动查找表方法 128 2048 8192 32768
本方法 1 1 1 1