在光栅编码器应用中,细分技术是核心。影响细分精度的其中一个重要因素就是模拟量sin/cos信号的正交情况。理想情况下sin/cos相位差=90°,实际输出的信号相位会有偏差,根据偏差的情况并结合应用需求判断,由该偏差引起的细分误差对应用有多大影响,若影响较大,就要考虑相位补偿措施。 在细分前最好还是先观察一下光栅尺输出的sin/cos信号质量,这里只观察正交情况。当两个信号相位差为90°时,合成图形为正椭圆,此时若两个信号的振幅相同的话,合成图形为圆。示波器中可以直接设置观察李沙育图形,我用示波器的时候没有调出来李沙育图形(后来调出来了),就想到把提取的数据用matlab做李沙育图形。 //------------------------------------------------------------------------- clear clc data = csvread(‘sincos信号.CSV’,2,4); //读取示波器从光栅尺中提取的两路sincos信号; sinn = data(:,1); //提取sin信号 cosn = data(:,2);//提取cos信号 s_p = in4(16050:25420,:);%选一段数据 s_n = in3(16050:25420,:);%选一段数据 %sin/cos信号归一化 outaa = s_p’; outbb = s_n’; y1 = mapminmax(outaa)’; y2 = mapminmax(outbb)’; %生成标准正交sin/cos信号,用作对比 x = 0:0.1:2*pi; p1=sin(x); p2=cos(x); plot(p1,p2) %sin/cos值分别作为x,y轴就可以生成李沙育图形 hold on plot(y1,y2) grid on //----------------------------------------------------------------------------------- 从图中跟标准正交信号对比可以看出,光栅尺输出的sin/cos信号并不是标准的圆。幅值不相等,差别很小,相位不完全正交,但相位偏差很小。从图中只能大体的判断信号质量。更精确的分析还需要进一步的数据处理,做定量相位偏差分析。 另外一种判断正交情况的方法是,利用示波器读到的数据,将sin/cos归一化在[-1,1]后,进行曲线拟合,然后求sin.*cos在[0,2Π]上的积分。积分值越接近0就说明越趋于相位差90°。