ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【LabVIEW技巧】使用傅里叶变换修正正余弦编码器误差

2021-08-05 09:58:38  阅读:709  来源: 互联网

标签:编码器 波形 cos 余弦 LabVIEW 角度 信号 sin


概述:

1、本文主要介绍如何测试正余弦编码器的绝对精度。

2、本文介绍如何使用傅里叶变化算法优化正余弦编码器精度。

被测品及测试设备简介:

1、被测编码器每旋转一个机械360°,sin cos分别输出5个周期。

2、被测编码器的sin cos信号理论信号幅值为0.5V。

3、被测编码器没有Z相信号。

4、测试设备使用西门子伺服电机(V90驱动器,PC通过485控制)+海德汉标准增量编码器,标准编码器绝对精度0.005°

5、sin cos 标准增量编码器信号使用NI PCI-6374同步采集卡采集,并使用共享采样时钟和开始触发的方式硬件同步了SIN COS和标准编码器的采集信号。

6、系统设计精度为0.01°。

倒叙,先上测试结论:

此编码器原始波形误差为0.94°,软件算法修正后误差为0.23°

信号处理步骤

Step1:确保Sin Cos 标准的增量编码器信号 采样的同步性

这个设备对采集的同步性要求非常高,不光sin cos电压信号需要同步,电压信号与标准编码器的信号采集也要同步,否则会引入采集误差。

解决方案:

本项目使用NI的同步采集卡同步各采样信号,在物理层面完全消除了采集不同步造成的误差,具体原理见我另外一篇文章:

https://blog.csdn.net/HOHO333/article/details/107124503

采集到的原始同步波形有三个:

波形1:标准编码器的波形。

波形2:sin电压波形

波形3:cos电压波形

Step2:重采样,去除电机转速稳定性误差

一般的伺服转速控制精度在±1RPM左右,这个转速抖动会对FFT变换的结果产生影响。理论上来说,使用绝对匀速的信号进行FFT变换才是最完美的。这里我多说一句,控制伺服的转速一般由两种模式,一种是速度模式,一种是脉冲模式。一般来说,使用速度模式的控速稳定性更高。本项目使用西门子V90伺服控制器,LabVIEW使用RS232转485总线+modbus协议控制伺服运动。

同时,如果要进行FFT变换,必须使用转速绝对匀速的原始数据(此时,sin cos理论值才是绝对的正弦波),否则就会引入由于测试设备造成的误差。

解决方案:

大力出奇迹法~由于标准编码器与被测品编码器是同轴+同步采集,所有的伺服电机抖动也都表现在了标准编码器上。本系统使用了一个较高的采样时钟(1MHz)采集原始数据,然后以标准编码器的波形为基准,以指定角度步进(0.01°)对标准编码器插值,并使用插值索引找到对应的时刻的SinCos电压值,从而重采样出SinCos波形。因为这个波形均是以0.01°的步进重采样而成,因此是绝对意义上的匀速。从而完全剔除了由于电机转速抖动造成的误差。

至此得到以下波形,此波形在转速上时绝对稳定的。 仔细观察,蓝线有直流偏置。

Step3:原始数据公差计算

根据正余弦编码器的反正切算法,直接使用上图的sin cos原始电压进行角度计算。

电角度=arctan(同一时刻的sin电压÷同一时刻的cos电压)

额外注意的地方:

1、电角度与机械角度不是一个概念,本案例使用的被测品5个电角度=1个机械角度。

2、反正切算法需要配合相位判断才能出连续多圈的角度。

使用sin cos电压波形可以求出一个电角度的波形,同时利用相位判断及电角度、机械角度算法把sin cos(被测品)的机械连续角度算出来,与标准编码器的角度作差,求出原始波形的公差:

下图红色曲线为原始波形的公差,可以看到公差以5个波峰为周期抖动。(这是因为一个机械周期对应5个电周期决定的)此时公差为0.94°左右

 Step4:FFT变化,求被测品编码器特征

使用FFT函数对sin cos信号处理,获取以下特征:

sin和cos信号的(别的信号没用):

1、主频相位。

2、直流分量

3、主频幅值

可以看到,理论上sin cos的相位差应该是90°,实际算下来多了0.25°,所有sin cos的原始信号并不正交信号,有些正交误差。

Step5:修正算法

sin cos指原始电压波形

φ=SinCos相位差-π/2=0.25°

sin1=sin-直流分量

cos1=cos-直流分量

sin2=sin1/主频幅值

cos2=cos1/主频幅值

相位补偿公式:

sin3=[sin2-cos2*sin(-φ)]÷cos(-φ) 

角度=arctan(sin3/cos2)

修正后的曲线为蓝色曲线,可以看到,精度提高到了0.23°

 

标签:编码器,波形,cos,余弦,LabVIEW,角度,信号,sin
来源: https://blog.csdn.net/HOHO333/article/details/119354686

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有