连续运动高精度全参数检测方法
技术领域
本发明涉及一种运动参数检测方法,尤其是一种利用光电编码器对连续运动参数如位置、速度、加速度进行高精度检测的方法,具体地说是一种连续运动高精度全参数检测方法。
背景技术
目前,光电编码器(如光栅尺、光电编码盘等)是运动检测中常用的一种实现直线位移或轴角位置检测的装置。在检测过程中,脉冲编码器对原始检测得到的连续正/余弦模拟信号进行数字化整形,再以输出脉冲的形式来反映被检测的运动部件的位置变化,所输出脉冲的数目与位置变化量成正比。在一定的位移范围内,输出脉冲的数量越多,意味着编码器的分辨率越高,或者说具有越高的位置检测精度。由于精确的位置和速度检测是构成闭环反馈控制的前提和基础,因此脉冲编码器的位置检测精度和速度检测精度直接决定着运动控制系统的控制精度。
根据位置与速度的物理关系,脉冲编码器可用于速度和加速度的间接测量。目前常用的测算方法如图1所示,通过位置增量除以检测周期测算速度,再通过速度变化量除以检测周期测算加速度,整个测算过程是单方向的,不带反馈修正,且所用的时间参数——检测周期Ts是一个固定的预置值,并非实际检测值,因此测算结果必然存在很大误差。
为了提高编码器的位置检测精度,目前通常采用的方法如下:
1)增大编码器的刻线密度。这种方法可以直接提高编码器的位置检测精度,但由于刻线工艺水平和物理因素的限制,随着刻线密度的增加,已经变得越来越困难。这使得高位置检测精度编码器价格昂贵,难以在一般伺服控制系统中普及应用。
2)电子学细分法
这一方法是对原始检测得到的连续正/余弦信号进行细分,并通过相位或幅值的鉴别进行编码。由于原始检测得到的模拟信号并非理想波形,而是混有许多噪声,细分之后噪声也被放大了,结果无法根据相位或幅值区分相邻的两个细分信号,从而导致错误的脉冲输出。
3)光学细分法
这一方法是通过光学系统对原始信号进一步放大从而提高位置检测精度,如二次莫尔条纹法和基于激光的衍射干涉法等。光学细分方法具有非接触、寿命长、不受电磁场干扰等很多优点,但这种方法需要一套结构复杂、价格昂贵的光学系统,因而其使用范围受到了很大的限制。
4)机械细分法
这一方法是通过机械升速传动装置将旋转或摆动进给轴与传感装置旋转轴连接起来,利用传动装置的升速比,增大角度检测装置的旋转角度,从而提高检测位置检测精度。由于该方案中引入机械传动链,存在传动间隙和机械变形,会导致脉冲输出不均匀、误差较大等情况。
发明内容
本发明的目的是针对目前普通光电编码器进行运动参数检测时精度不高,而高精度光电编码器又存在成本高、投资大、实用性差的问题,发明一种基于高精度计时器和普通光电编码器的连续运动高精度全参数检测方法。
本发明的技术方案是:
一种连续运动高精度全参数检测方法,其特征是利用光电编码器作为基本检测元件,配以高精度计时器作为检测函数建立和检测采样时刻的计时工具,通过以下步骤分别完成运动位置、速度和加速度的高精度测算:
首先,采用脉冲计数器对光电编码器输出的脉冲信号进行计数,记录下本次检测开始时的脉冲数Ni-1以及经过给定的检测周期后检测结束时的脉冲数Ni,并用高精度计时器测算出以编码器脉冲边沿为界的本次检测的实际检测周期Ts(i)。
其次,将所测得的值代入下式计算出该检测周期内的速度Vi:
Vi=δP(Ni-Ni-1)Ts(i)]]>
式中,δP——光电编码器的脉冲当量;
Ni——检测周期结束时的脉冲数;
Ni-1——检测周期开始时的脉冲数;
Ts(i)——检测周期;
第三步,建立速度预测函数:
重复第一、第二步测算出一系列速度数据(Vi-n…,Vi-2,Vi-1,Vi),并根据所测得的速度数据拟合出速度预测函数v(t);
第四步,运动位置测算:
以最近收到的编码器脉冲信号的上升沿对应的位置为参考位置,根据速度预测函数v(t)与积分计算原理按以下公式计算确定位置:
S=S0+∫TaTpv(t)dt]]>
式中,S0——参考位置;
v(t)——速度预测函数;
TP——采样时刻;
Ta——最近的脉冲上升沿时刻;
第五步,瞬时运动速度测算:
将高精度计时器测出的时间Tp代入第三步建立的速度预测函数中,即可计算出采样信号到达时刻TP对应的速度;
第六步,加速度测算:
将检测周期Ts(i)内开始和结束时测算的速度差与检测周期Ts(i)相比即可得到加速度值:
Ai=Vi-Vi-1Ts(i)]]>
式中,Vi、Vi-1——检测周期结束和开始时的速度测算值;Ts(i)——检测周期;
第七步,建立加速度预测函数:
重复第六步得到一系列加速度测算历史数据(Ai-n…,Ai-2,Ai-1,Ai),然后拟合出加速度预测函数a(t);
第八步,瞬时加速度测算:将高精度计时器测出的采样时刻Tp代入第七步建立的加速度预测函数中,即可计算出采样信号到达时刻Tp对应的加速度作为检测结果输出即可获得所需的瞬时加速度。
运动初始阶段,检测周期Ts(i)设为第一个脉冲上升沿至第二个检测脉冲上升沿之间的时间间隔;此后,为使速度检测结果在很宽的速度范围内都具有高精度,可通过检测周期调整器根据测算的速度值对检测周期进行自适应调整。调整方法是:以编码器脉冲上升沿为边界,将检测周期Ts(i)设为连续收到N(N为≥1的整数)个编码器脉冲所经历的时间间隔。如果本次测算出的速度值较大,则增大N值,即将下一次检测的截止时刻定在接收到更多数量的编码器脉冲之后;如果本次测算出的速度值较小,则减小N值,即将下一次检测的截止时刻定在接收到更少数量的编码器脉冲之后。
检测周期Ts(i)的测量由高精度计时器完成,由编码器脉冲的上升沿触发高精度计时器开始计时,当检测周期结束时,由最后一个脉冲的上升沿触发计时器停止计时;由于开始计时与停止计时脉冲的边界与高精度计时器的高频时钟脉冲的边界可能并不对齐,为了提高计算精度,可采用时间数字转换技术对检测周期进行修正,以修正后的检测周期代入相应的公式进行计算。
所述的时间数字转换技术修正后的检测周期Ts(i)的值为:
Ts(i)=TN+Ta(i-1)-Ta(i)=NcTc+(Na(i-1)-Na(i))τ
式中,τ——时间数字转换的量化周期;
Na(i-1)、Na(i)——Ta(i-1)和Ta(i)对应的量化周期数,用计数器测量;
Ta(i-1)——高频脉冲计时前端残差(小于一个高频时钟脉冲周期);
Ta(i)——高频脉冲计时后端残差(小于一个高频时钟脉冲周期);
Tc——高频计时脉冲的周期;
Nc——TN范围内测得的脉冲数,用计数器测量;
TN——高频脉冲计时得到的时间值(等于高频时钟周期整数倍)。
本发明的有益效果:
1)采用低成本的编码器,借助高精度计时技术实现了任意时刻的高精度运动位置检测;
2)只用一个编码器就可同时输出高精度的位置、速度和加速度等多个运动参数;
3)利用运动具有惯性、运动过程中位置脉冲之间的速度是相对缓慢变化的特点对位置进行反馈修正,有效提高了位置检测精度;
4)通过建立速度和加速度预测函数计算瞬时速度和瞬时加速度,减小延时偏差和均化偏差,有效提高了速度和加速度的检测精度;
5)应用过程中无需更换原有的编码器,可以无缝应用于各种精密检测设备或运动控制系统中。
附图说明
图1为常规的测算位置、速度和加速度的流程图。
图2为本发明的技术方案系统方框图。
图3为本发明高精度计时的原理图。
图4为本发明利用速度预测函数提高位置检测精度的计算原理图。
图5为本发明的在伺服电机控制中的应用原理示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
如图2、3、4所示。
一种连续运动高精度全参数检测方法,利用光电编码器作为基本检测元件,配以高精度计时器1和检测周期调整器2作为检测函数建立和检测采样时刻的计时工具,其中的检测周期调整器2可采用软件或硬件电路加以实现,具体的运动位置、速度和加速度的高精度测算过程如下:
如图2所示:
第一步:基础位置测算。采用可逆计数器对光电编码器输出的脉冲信号进行计数,运动方向为正时进行加法计数,运动方向为负时进行减法计数,记录下本次检测开始时的脉冲数Ni-1以及经过给定的检测周期后检测结束时的脉冲数Ni,并用高精度计时器测算出以编码器脉冲边沿为界的本次检测的实际检测周期Ts(i)。
第二步:速度测算。用检测周期内的基础位置变化量除以检测周期,用(1)式测算速度:
Vi=δP(Ni-Ni-1)Ts(i)---(1)]]>
式中,δP——脉冲当量;
Ni——结束检测时的脉冲数;
Ni-1——开始检测时的脉冲数;
Ts(i)——本次检测周期;
运动初始阶段,检测周期设为第一个脉冲上升沿至第二个检测脉冲上升沿之间的时间间隔。此后,为使速度检测结果在很宽的速度范围内都具有高精度,可以通过检测周期调整器2根据测算的速度值对检测周期进行自适应调整。调整方法是:以编码器脉冲上升沿为边界,将检测周期Ts(i)设为连续收到N(N为≥1的整数)个编码器脉冲所经历的时间间隔。如果本次测算出的速度值较大,则增大N值,即将下一次检测的截止时刻定在接收到更多数量的编码器脉冲之后;如果本次测算出的速度值较小,则减小N值,即将下一次检测的截止时刻定在接收到更少数量的编码器脉冲之后。例如,如果本次测算出的编码器转速小于1r/min时,每接收到1个编码器脉冲就进行一次检测;如果测算出的编码器转速为100~500r/min时,每收到20个脉冲编码器进行一次检测;……;如果测算出的编码器转速大于10000r/min时,每收到500个脉冲才进行一次检测。
检测周期本身的测量由高精度计时器1完成。由编码器脉冲的上升沿触发计时器开始计时,当检测到一定数量(具体数量由检测周期决定,可根据精度要求通过软件或硬件电路自动调整)的脉冲后再由最后一个脉冲的上升沿触发计时器停止计时。
高精度计时器的主要工作原理是对高频时钟脉冲进行计数。考虑到开始计时与停止计时脉冲的边界跟高频时钟脉冲的边界可能并不对齐,为了提高计算精度,按照图3所示的方法引入时间数字转换(TDC)技术完成头尾残余时间的测量。计算式如下:
Ts(i)=TN+Ta(i-1)-Ta(i)=NcTc+(Na(i-1)-Na(i))τ (2)
式中,τ——TDC的量化周期;
Na(i-1)、Na(i)——Ta(i-1)和Ta(i)对应的量化周期数,用计数器测量;
Tc——高频计时脉冲的周期;
Nc——TN范围内测得的脉冲数,用可逆计数器测量。
在本步骤中,由于采用了高精度计时方法和检测周期自适应动态调整方法,且用于测算的检测周期是利用高精度计时器1高精度实测出来的,因而提高了速度的检测精度。
第三步:建立速度预测函数。根据一系列(至少三个)速度测算历史数据(Vi-n…,Vi-2,Vi-1,Vi)用诸如曲线拟合等方法建立速度预测函数v(t)。该函数建立以后,可参考控制系统的速度指令对其进行修正(由软件控制自动进行),还可采用诸如数字滤波等方法进行速度平滑处理,以使所建立的速度预测函数v(t)更加准确。速度预测函数反映了未来速度的变化趋势,借助该函数可对未来短时间范围内的速度进行预测。
第四步:高精度位置测算。根据任意时刻发出的采样信号,借助于高精度计时器1和速度公式即可测算出该时刻对应的位置。如图4所示,由于采样信号到达时刻TP与最近收到的编码器脉冲信号的上升沿时刻Ta可能并不一致,从而导致位置偏差。如果能够精确计算出这个偏差,即可提高位置检测精度。为此,以最近收到的编码器脉冲信号的上升沿对应的位置为参考位置,根据速度预测函数v(t)与积分计算原理对第一步的基础位置测算结果进行修正计算,从而得到高精度的位置值。计算式为:
S=S0+∫TaTpv(t)dt---(3)]]>
式中,S0——参考位置(即开始采样时系统位置或初始位置);
S0(初始位置值)的确定有三种方法:
1)如果是增量式位置检测,则初始位置为0;
2)以上一次检测结果作为本次检测的初始位置;
3)设置一个坐标位置已知的参考点(例如零位标志点),通过回参考点操作确定初始位置值。
v(t)——速度预测函数;
TP——采样时刻;
Ta——最近的脉冲上升沿时刻。
当速度变化较慢,速度变化曲线近似直线。此时,(3)式可用下列(4)式代替:
S=S0+[v(Ta)+v(Tp)](Tp-Ta)/2 (4)
特别,当近似匀速运动时,v(Ta)=v(Tp),(4)式可用下列(5)式代替:
S=S0+v(Ta)(Tp-Ta) (5)
上面(3)、(4)和(5)式中的时间Tp与Ta可采用第二步中的高精度计时修正方法(即采用时间数字转换技术)进行测量。
在本步骤中,利用高精度计时器、速度预测函数以及积分原理对由于采样时刻与编码器脉冲上升沿时刻不一致导致的位置偏差进行修正计算,提高了编码器的位置检测精度。
第五步:瞬时速度测算。第二步测算出来的速度,实际上是最近一个检测周期内的平均速度,与采样信号到达时刻TP对应的瞬时速度并不一致,客观上存在延时偏差和均化偏差。为此,将第四步用高精度计时器测出的时间Tp代入第三步建立的速度预测函数中,计算出采样信号到达时刻TP对应的速度作为检测结果输出,从而减小偏差,获得测控系统所需的瞬时速度。
第六步:加速度测算。用下式(6)通过本次和上一次测算的速度差(即一个周期结束与开始时的速度差)与检测周期比值进行加速度计算。
Ai=Vi-Vi-1Ts(i)---(6)]]>
式中,Vi、Vi-1——本次和上一次的速度测算值;Ts(i)——本次检测周期。
在本步骤中,参与运算的速度和检测周期都是高精度,因此计算结果具有高精度。
第七步:建立加速度预测函数。根据一系列(至少三个)加速度测算历史数据(Ai-n…,Ai-2,Ai-1,Ai)用诸如曲线拟合等方法建立加速度预测函数a(t)。该函数建立以后,可参考控制系统的加速度指令对其进行修正,还可采用诸如数字滤波等方法进行加速度平滑处理,以使所建立的加速度预测函数a(t)更加准确。加速度预测函数反映了未来加速度的变化趋势,借助该函数可对未来短时间范围内的加速度进行预测。
第八步:瞬时加速度测算。第六步测算出来的加速度,实际上是最近一个检测周期内的平均加速度,与采样信号到达时刻TP对应的瞬时加速度并不一致,客观上存在延时偏差和均化偏差。为此,将第六步用高精度计时器测出的时间Tp代入第七步建立的加速度预测函数中,计算出采样信号到达时刻TP对应的加速度作为检测结果输出,从而减小偏差,获得测控系统所需的瞬时加速度。
本方案步骤一至步骤八所述方法,既可以用硬件电路实现(即将图2中的各模块有电路及集成块进行实现),也可以用软件程序实现。
用与本方案步骤六至步骤八所述方法相似的方法还可以实现加加速度的高精度测算。
图5是本发明在一个伺服电机的控制系统中的具体应用,将与电机同轴连接的光电编码器的输出信号接入到按照本发明方法制作的电路装置(或软件接口)中,电路装置内部按照本发明方法第一步至第八步技术步骤对输入信号进行处理,即可得到高精度的位置、速度和加速度检测值,使用这些检测结果进行反馈控制,可实现纳米级精度的电机控制。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。