插值算法在液压系统超声波流量检测中的应用
液压系统超声波流量测量采用时差法,测量示意图如图1所示。超声波换能器TRA、TRB采用管外V型安装, TRA、TRB前端面之间的距离为L,超声波换能器TRA和TRB在控制电路的作用下,将同时发射超声波脉冲,并同时接收对方发射的超声波信号。超声波信号发射后以θ0的角度穿过换能器斜楔,在换能器界面发生折射后,超声波以θ1的角度穿过管壁,在管壁与被测流体的分界面上发生第二次折射,此后超声波信号以θ2的角度穿过被测流体达到对面的管壁内侧面,经反射后超声波信号按相反的顺序进入另外一个换能器。由于流速的影响,两超声波换能器接收到的超声波信号的时刻不同,存在一个时差Δt,测量出时差Δt,即能测得流量。
过零算法是先搜索已经精确定位的回波区间的过零点位置,并存放在两个数组里,然后计算过零点的时差。计算方法示意如图2所示。
图2中K1、K1+1和K 2、K2+1分别为搜索到的过零前后的两采样点。O1、O2为零点,利用三角形相似性质分别得到Δtk1=O1K1·T、Δtk2=O2K2·T。则时差:
在采样频率较低的情况下,利用三角形相似计算出的过零点时间与实际时间误差较大。而且由于采样点相对于过零点位置的不确定性,使得计算结果缺乏稳定性。为了利用有限的采样信息较准确地计算出过零点的时间,笔者对回波信号进行了插值。
1 插值计算的原理
三次样条插值的数学原理及其子程序可以参见多种数学著作和算法手册,在这里为了论述方便只做简单介绍。
由于超声波波形是光滑连续曲线,在一段波形区间内各节点xi满足:
可用三次自然样条函数S(x)求解它们在各插值点的函数值及其一阶导数S′(x)和二阶导数S″(x)。
三次样条函数S(x)使用分段多项式逼近函数y=f(x),且满足S(x)为区间[a,b]上曲线y=f(x)的三次样条插值函数的3个条件。
令Mi=S″(xi),有插值条件
利用函数S(x)在样点xi处具有连续二阶导数的条件,再根据三次自然样条插值法,增加自然边界条件
2 插值方法的实现
不难看出求解三次样条插值函数的过程相当复杂,直接求解在工程应用中较难实现。Mathworks公司推出的MATLAB软件中提供了成熟的样条插值功能函数。可以直接利用MATLAB与其它高级语言的接口,直接将MATLAB开发好的*·m文件编译成可执行程序或高级语言代码。用户可以方便地在VC的IDE (集成开发环境)中调用。但这种方法不能发挥MATLAB的功能优势,在这里笔者通过使用DLL (动态链接库)实现MATLAB与VC混合编程的方法来解决这个问题。DLL可实现多程序调用,而不是每个应用在链接时都要增加一个库的目标代码拷贝。可以整体减少文件外部存储空间的占有量,并实现了代码共享。而且这种方法也充分发挥了MATLAB的功能优势。具体实现分以下几个步骤:
相关文章
- 2018-10-1450MPa液压综合试验台的设计与研究
- 2018-12-16基于现场总线的数字式电液执行机构的开发
- 2019-02-10温度对电液伺服阀的影响分析
- 2019-02-10柱塞泵单向阀球与活塞直径比值对工作精度的影响
- 2018-12-31磁流变液控制阀控制性能研究
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。