ADμC845单片机实现LVDT非线性校正设计

需积分: 8 0 下载量 128 浏览量 更新于2024-08-11 收藏 260KB PDF 举报
"这篇文章主要探讨了基于ADμC845单片机的高精度差动变压器变送器设计,旨在解决LVDT位移传感器输出电压与输入位移之间的非线性问题。作者分析了非线性误差产生的原因,并提出了采用软件算法进行非线性校正,以提高传感器的输出精度。他们运用分段线性插值法处理传感器的标定数据,以求得实际位移量。实验结果显示,这种方法实现了高精度的测量,具有很高的实用价值。" 差动变压器,也称为LVDT(Linear Variable Differential Transformer),是一种常用的位移测量传感器,因其测量范围广、精度高而受到青睐。然而,由于制造过程中的不完美,如次级绕组的不对称性、磁性材料的非线性磁化曲线以及电源的非理想性等因素,会导致输出信号与位移量之间呈现非线性关系。传统的解决办法是通过改进传感器设计或增加模拟电路进行硬件校正,但这会增加高精度传感器设计的难度。 文章提出了一种新颖的方法,即在调理电路中集成ADμC845微控制器,利用软件算法执行非线性校正。具体来说,他们采用了分段线性插值技术,通过对传感器的标定数据进行分析,计算出实际的位移量。这种方法的优势在于,它不仅提高了传感器的测量精度,还降低了设计高精度传感器的复杂性。 实验验证了这种方法的有效性,结果显示设计的变送器达到了预期的高精度。此外,为了保持与传统测控系统的兼容性,处理后的数字位移量通过DAC(Digital-to-Analog Converter)器件和电平调整电路转换回0~5V的模拟电压输出。 分段线性插值非线性校正原理包括反函数法等。反函数法是基于传感器输入-输出特性的逆运算,当输入-输出特性曲线可以近似为线性段时,可以通过计算反函数来校正非线性误差。而分段线性插值则是在已知的多个离散点间进行线性插值,构建一个近似的连续函数,从而校正非线性。 这篇论文展示了如何利用现代微控制器技术和软件算法克服LVDT传感器的非线性问题,提高了测量精度,为传感器的设计和应用提供了新的思路。这种方法对于工业自动化、精密测量等领域具有重要的实践意义。

SELECT s.BOOKID as bookid,s.CLASSID as classid, s.GQJ_CLASS as gqjClass,s.GQJ_CLASSIFY as gqjClassify, s.GQJ_STANDARDID as gqjStandardid, s.GQJ_STANDARD as gqjStandard,s.FACTORY_NUM as factoryNum, s.PK_USERLOCALEID as pkUserlocaleid, s.USE_ADDRESS_NAME, s.USE_ORGID as orgid, s.USE_ORG as orgname,s.NEXT_TEST_TIME as nextTestTime, s.CLASSIFYID as classifyid, s.COMMENT_STATUS as commentStatus,s.ISPLAN as isConsumables,1 AS num,1 AS collectedNum,s.I_CODE as iCode,USE_BZID as deptid, USE_BZNAME as deptname FROM gqj_gqjbook s WHERE s.ISPLAN = 0 and USE_RECORD_STATUS="2" and STATUS="0" and (COMMENT_STATUS!='0' or ISNULL(COMMENT_STATUS) or COMMENT_STATUS = '' ) and USE_BZID = '860dc38c2bed4130b3d0746cee8dbf2e' and PK_USERLOCALEID='0346c06203c84e398d3c4381d5b34b7a' and I_CODE IN ( '030080000000000000003134' ) UNION SELECT any_value(s.BOOKID) as bookid,any_value(s.CLASSID) as classid, any_value(s.GQJ_CLASS) as gqjClass, any_value(s.GQJ_CLASSIFY) as gqjClassify, any_value(s.GQJ_STANDARDID) as gqjStandardid, any_value(s.GQJ_STANDARD) as gqjStandard,any_value(s.FACTORY_NUM) as factoryNum, any_value(s.PK_USERLOCALEID) as pkUserlocaleid, any_value(s.USE_ADDRESS_NAME) as useAddressName, any_value(s.USE_ORGID) as orgid, any_value(s.USE_ORG) as orgname, any_value(s.NEXT_TEST_TIME) as nextTestTime, any_value(s.CLASSIFYID) as classifyid, any_value(s.COMMENT_STATUS) as commentStatus,any_value(s.ISPLAN) as isConsumables,COUNT( 0 ) AS num,count(0) AS collectedNum, any_value(s.I_CODE) as iCode, any_value(USE_BZID) as deptid,any_value(USE_BZNAME) as deptname FROM gqj_gqjbook s WHERE s.ISPLAN = 1 and USE_RECORD_STATUS="2" and STATUS="0" and (COMMENT_STATUS!='0' or ISNULL(COMMENT_STATUS) or COMMENT_STATUS = '' ) and USE_BZID = '860dc38c2bed4130b3d0746cee8dbf2e' and PK_USERLOCALEID='0346c06203c84e398d3c4381d5b34b7a' and I_CODE IN ( '030080000000000000003134' ) GROUP BY GQJ_STANDARDID order by any_value(commentStatus), any_value(gqjClass), any_value(gqjClassify), any_value(gqjStandard);

164 浏览量