陆胤桦,朱维斌,黄 垚,薛 梓
(1.中国计量大学计量测试工程学院,浙江杭州 310018;2.中国计量科学研究院,北京 100029)
传统的角度测量都是基于静态测量方法,而伴随着科学技术的迅速发展,运动状态下的动态角度测量在测量技术领域内迅速发展。动态角度测量由于复杂程度更高、理论体系尚不完善等原因,动态角度测量中的误差源仍缺乏系统性认知;同时,工业发展对动态角度测量的应用需求和精度要求都在不断提高,因此动态角度测量过程中误差补偿技术成为该领域研究的重要内容[1-2]。
国内外众多学者针对动态测量中的实时性与精度问题开展研究。2001年,B. Djokic和E. So讨论了滤波器相移对动态测量精度的影响[3];2011年,唐声权等认为运动中的转台在“电路对码盘的模拟输出信号开始采样的时刻”和“采样信号通过转换和传输后得到数字形式的位置值的时刻”的位置是不一样的;2015年,黄晓敏认为动态特性较差的传感器,测量结果不能准确描述被测信号的瞬态变化,最终导致测量结果难以表征输入信号[4-6]。2017年,清华大学分析了多通道激光干涉仪在动态测量中的同步测量误差,并对光电信号在处理过程中的延时误差给与补偿方案[7]。
从上述研究可见,对于动态测量过程中的延时误差会对精度造成影响有着共识性看法,但对于误差的补偿并没有统一的方法。本文针对圆光栅角度动态测量过程的延时误差补偿方法开展研究,分析动态测量中各种延时因素影响,提出一种基于代数导数估计法的补偿方案,并在FPGA平台上完成圆光栅动态角度测量电路系统的开发,通过实验证明圆光栅动态测角系统在不同转速工况下,该电路对延时误差补偿的有效性。
使用圆光栅进行角度测量是通过增量计数完成的。圆光栅每转过一个栅距对应输出一个整周期正余弦莫尔信号,细分电路通过莫尔信号相位φ完成细分并输出对应脉冲信号,通过脉冲计数累加值就可以得到圆光栅转动角度θ[8-9]。对于静态测量,转动角度测量值θm可以表达为
(1)
式中:Z为累加计数值;K为圆光栅圆周刻线数;M为光栅莫尔信号细分倍率。
角度静态测量过程中,在每一个测量位置圆光栅都静止不动,角度测量值不随时间变化。在角度动态测量过程中,测量值为一种时变角度函数,当光栅转动角速率为ω(t)时,其输出莫尔信号的频率f(t)表达为
(2)
为了准确完成动态测量过程,不仅要求测得的圆光栅角度值准确可靠,还需要测量结果与测量发生位置进行对应,即动态测量数据结果需要精确地表示目标的当前位置和运动状态。但是在动态测量过程中圆光栅始终处于运动状态,角度测量输出并不能与圆光栅当前位置对应,因此存在着由于延时带来的误差,如图1所示。
(a)
图1(a)描述了测量对象以ω(t)为角速度,由A点转动到B点的动态转动过程。图(b)描述了当在t1时刻通过OA位置时,圆光栅的光电接收器产生与OA位置相对应的莫尔信号,该信号通过放大、调理、细分、脉冲转换、计数等一系列模拟、数字电路处理后,在t2时刻输出由OA位置触发的角度测量值θm(t),但此时转台位置已经到达OB。OA、OB间的夹角θe(t)就是角度动态测量中的延时误差。因此,在圆光栅动态角度测量θmc(t)应该表达为
θmc(t)=θm(t)+θe(t)
(3)
延时误差主要是由两部分组成:信号在电缆及印刷电路板上进行传送时的路径长度带来的信号延时τ1;数字电路中信号处理算法的耗费时间τ2。当光栅匀速运动时,由延时引起的延时误差与速度线性相关,只要通过连续跟踪角速度ω0,也就是光栅莫尔信号相位的一阶导数就可以量化延时误差θe(t),即:
(4)
式中φm(t)为光栅输出莫尔信号的相位角测量值。
使用式(4)可以量化光栅匀速运动下的延时误差,由于φm(t)线性增加,τ1和τ2为恒定值,因此匀速运动下的延时误差大小不变。
在非恒定速度动态测量中,φm(t)非线性变化,τ1、τ2仍为恒定值,但系统的延时误差随着运动状态的变化而变化。复杂的光栅运动状态中不仅包含了速度变量,还存在加速度(相位的二阶导)以及更高阶导数的变量。所以在变速运动过程中延时误差θe(t)不仅与光栅的速度有关,还随着加速度及相位的更高阶导数变化而变化。要使用莫尔信号的相位测量值φm(t)准确表征延时误差,必须考虑实时速度、加速度及更高阶导数信息。使用泰勒模型量化光栅运动状态,延时误差θe(t)表示为
(5)
该模型支持光栅以任意状态运动,能够满足各种变速复杂运动工况下的延时误差补偿,匀速工况下的延时误差对应此模型中n=1的表达式。延时误差补偿流程如图2所示。
图2 延时误差补偿流程图
FPGA具有可多线程工作、设计灵活、算法承载能力强等优点,可以承载光栅信号动态测量任务。为了实现光栅动态角度测量目标,在电路系统中,需要同时实施光栅信号处理和动态补偿角度计算2个流程任务。电路系统原理图如图3所示。
图3 电路系统原理图
由图3可见,光栅动态角度测量功能由2个线程组合完成。其一是对光栅输出莫尔信号进行细分辨向处理的常规流程,通过对莫尔信号的调理模块,完成对传感器输出原始信号的等幅、直流、正交等误差的补偿,再完成对信号的细分,输出角度值,该测量值即为静态测量的角度;另一个线程完成动态测量的延时误差计算,通过对信号的各阶导数计算,通过式(5)计算获得动态测量的延时误差补偿值。2个线程是并行工作的,细分角度测量值θm(t)和延时误差角度值θe(t)通过式(3)计算,即可获得动态角度测量值。所有信号补偿、计算功能都在FPGA平台上实现。
由式(5)可知,在动态测量过程中,补偿值需要通过高阶导数计算,通常计算用到的是有限差分法(FDM),但是由于有限差分法的测速精度受外界环境干扰大,且测速精度低等问题,不适用于高精度要求的场合。
为了保证测量精度,本文采用代数导数法(ADEM)进行信号微分计算。该方法对信号进行拟合并求取相位角的导数,其核心是利用复频域中的微分性质获取编码器信号相位角的一阶导数信息,并通过拉氏反变换来表达实数域的测速结果。微分计算结果如式(6)所示:
(6)
代数导数法能够有效提升微分计算准确性,以16384刻线数的圆光栅角度编码器以30 r/min匀速转动工况为例,其转动的频率恒为8.2 kHz,其输出两路方波信号为非均匀信号,分别使用代数导数法和有限差分法得到测速结果如图4所示。
图4 代数导数法与有限差分法测速精度对比
由图4可见,代数导数法保持±0.1 r/min的测速精度,而有限差分法测速精度降至接近±1 r/min。
代数导数法能够在信号有干扰的情况下完成稳定、准确的微分计算任务,但是在实现代数导数法的过程中是使用时变信号的局部多项式近似模型,只描述了信号θm(t)的有限阶近似项。当信号本身可作无限阶次展开时,泰勒多项式的有限N阶项模型必然会引入拟合误差。图5显示了N取不同阶数时在各自代数导数估计法模型下一阶导的计算精度。
图5 N=3、4、5时代数导数估计法一阶导数计算误差
由图5可见,使用有限阶次的泰勒模型会导致拟合误差,所以代数导数估计法只在一段时间内有效,之后便会逐渐偏离精度。图中可看出N值越大,精度保持时间越长。
为保证测量精度,N值选择越大越好,但是随着N的增大,根据式(6)的数据积分迭代次数越快速增加,FPGA的资源占用量也随着增大,硬件资源占用、计算精度、计算效率之间存在着相互制约关系,如表1所示。
表1 参数对应数据表
由表1可知,在资源占用方面,由于N=3时其精度维持时间较短,不满足精度需求,资源占用量的参数就没有较大参考价值。当N=5时,资源占用量已经达到总资源量的71%,远大于N=4时的资源占用百分比,这对于FPGA的资源来说本身就是巨大的负担。
在精度维持时间方面,以一阶导(角速率)计算误差为0.001(°)/s为精度收敛边界。由表1中可以看到,N=5时的精度维持时间虽然比N=4要久,但是资源占用又远大于4阶模型。因此在系统所需精度要求范围内,本文转而选N=4,在资源占用量相对较小情况下,满足求导精度要求。
式中,qr和cholupdate为标准的Matlab指令,分别表示QR分解和Cholesky分解一阶更新。
考虑到泰勒公式的高阶导数计算量大以及延时误差的主要来源是光栅编码器的转速(相位一阶导数)与加速度(相位的二阶导数),实验仅考虑光栅编码器的转速与加速度所造成的系统延时误差的影响,采用2阶泰勒公式进行补偿验证。
本次实验旨在验证圆光栅动态角度测量方法的有效性,因此选用RIGOL DG4162信号发生器模拟编码器输出正交方波信号,以摒弃其他干扰因素影响。信号发生器精度为±2×10-6。动态角度测量数据由自主研制的基于FPGA的测量电路产生,电路选用Cyclone EP4CE115F29C8作为处理算法加载芯片。电路如图6所示。
图6 圆光栅动态角度测量电路实物图
选取圆光栅3种典型运动工况:恒速转动,转速线性增加的变速运动以及转速对数变化的变速运动来开展实验。对RIGOL DG4162信号发生器分别进行设置3种工况,第1种为信号频率均为5 MHz的两路正交方波信号均速工况,第2种为信号频率在30s内从1~10 MHz线性增频工况,第3种为信号频率在30 s内频率从1~10 MHz对数增频工况,信号占空比均为50%,相位差为90°。实验结果如图7所示。
由图7(a)可见,在恒频工况下延时误差补偿前后的测量误差值从-0.15″~-0.08″补偿回-0.15″~-0″;图7(b)中,在线性变频工况下,呈现不断扩大趋势,补偿后的误差稳定在-0.07″~0.07″范围内;图7(c)中,在对数变频工况下,随着转速剧烈变化,补偿前的测量误差扩大得更快,补偿后的误差收敛在-0.07″~0.07″范围内。
(a)5 MHz恒频的测量结果
实验结果表明,对于3种典型的运动工况,延时误差补偿方案都能够有效提升动态角度测量精度,补偿后的动态角度测量误差均处于-0.07″~0.07″范围内,证明了该补偿算法对于延时误差都有良好的补偿效果,能有效提升动态测角精度。