超声波测距是一种利用超声波的可定向发射,方向性好,在介质中传播距离较远等特性,结合电子计数等微电子技术来实现的检测方式。在使用中不受光线、电磁波、被测物的颜色等因素影响,加之信息处理简单、成本低、速度快。在避障、车辆定位与导航、液位测量等领域得到了广泛的应用。但由于超声波在两种不同属性的介质(如固液、固气)中的传播特性存在较大差异。例如k级超声波在气态介质中传播效果好,衰减也相对较小,但在固态和液态介质中则衰减就比较大了。而m级超声波则正好相反。因而在一些需要透过两种或两种以上的介质进行测距时,超声波就存在很大的困难了。但在一些比较特殊的场合,应用超声波进行检测也是目前***可行的手段。本文中所描述的一款超声波液位计的设计目标就是对密闭容器在不开盖、不另加额外装置的情况下,对容器内部液体检测的一种设备。对于如何进行检测的过程本文不做过多陈述,只对在设计的过程中,是如何有针对性的进行软硬件结合设计,从而降低误差、提高精度的,供各位同仁参考。
1合理采用门阀设计,减小盲区*,使用超声波液位计测距的原理主要是检测回波与发射波之间时间差δt,即:δt = tn-tn-1
其中:t0为发射波或称始波触发计时器时间;tn为各回波触发计时器时间。如图1所示。
图1超声检测波形示意图如图1所示,在实际检测的过程中,我们可以发现,在始波附近,存在大量的干扰波,主要是由于容器壁的多次反射形成的干扰。
当被测液体高度比较低时,可能会造成多个超声波液位计回波湮没在始波附近的干扰波中,而且不容易识别出有效的回波信号tn来。合理有效的门阀t的设置,就很好的解决了这一问题。在整个系统设计的过程中,我们设计的是每40ms发射一个始波。通过大量的实验检测,***后我们把门限设置为2ms。也就是说当始波触发计时器后,计时器自动关闭2ms,然后打开计时器,开始接收回波。这里需要注意的是,由于容器内液体的多少是未知的,也就是说,此时测得的***个回波t1,不一定是真实的***个回波,因为当液位比较低的时候,前几个回波很可能被门阀给过滤掉了。此时就需要比较回波时间差δtn了,δtn = tn-tn-1。当前后两个δt1和δt2相差在一定范围内,则可认为t1为***个回波,此时δt可以取其中任一个。否则δt只能取δt2。当液位比较高时,系统在一个检测周期内可能只能检测到一个回波,此时的t1必然是***个回波。
由于受系统及其他软硬件条件所限,我们这个系统的检测盲区大概在5ms左右。
2定标模块,去除温度、介质等影响
*,温度对超声波液位计的超声波在介质中传播速度有较大影响。一般来说,温度越高,超声波在介质中的传播速度越快。例如,超声波在空气中的传播速度可以表示为:c=331+0.6t。其中t为环境温度。也就是说在空气中温度每上升1°,超声波的传播速度都要增加0.6m/s。实验证明,在固体和液体介质中,超声波传播亦是如此。不同的介质中,超声波的传播速度也是不相同的。比如实验测得的结果表明,在汽油中,超声波的传播速度大约在1300m/s上下,而在水中则在1400m/s左右。计时器1μs就会产生超过1个毫米的误差。
从上面的表述中可以看出,温度和介质对超声波液位计测量结果影响也是很大的。考虑到即使是同一介质,其浓度和温度等因素对结果影响也是不可忽视的。正式由于诸多复杂的原因存在,并没有哪个专业机构能够给出超声波在每种介质中的具体传播速度数值。正所谓缪之毫厘差之千里。为此,我们另辟蹊径,设计了一个定标模块。如图2所示。
该定标模块为一中空的圆柱体结构,其内部底部距离上顶部外延高度设计为10cm,设计误差为±10μm(受工艺所限,精度无法更高了)。其思路为,当我们需要测量某一容器内液位时,取与该容器内液体注满定标模块。打开液位检测仪,首先测量该模块,由于高度已知,可比较精准的测得在当前环境下该液体的速度值。然后再用此速度值去测量密闭容器的液位。
此方法看似笨拙繁琐,但在实际应用中我们可以看到,通过这一定标模块的方法,基本消除了温度和介质的影响,大大地提高了检测精度和准确度。3软件处理,进一步提高精准度做系统设计的人都知道,有些误差因素是系统固有的,是无法通过硬件的改进来消除的。但在系统的软件设计过程中,我们可以通过一定的方法和算法进一步降低误差。方法之一就是对测得的数据进行进一步判断、求均值。首先是判断。从图1的波形所示来看,在一定的距离内(我们这套系统大约在1m),回波是能够接收到两个或两个以上的回波的。如果回波超过两个,我们就取***和第二个的差值和第二个和第三个的差值作比较判断并取均值备用。如果回波只有两个,则取第二个差值做备用。如果只有一个回波,那就没的选择了。
其次求均值。我们采取的每40ms发射一个发射波,也就是说,超声波液位计系统是每40ms测量一次数据,我们采取的方法并不是每组数据直接送显,而是采用每测得20组数据送显一次。在取得20组数据后,系统首先去除两个较大的值,再去除两个较小的值,然后把余下的16组数据求均值,然后送显示器显示。至于为什么是16组,搞过单片机的都知道。软件处理方法之二是主动消除固有偏差。表1所示为对高度约为90cm的液位进行多次测量。
通过以上测量结果来看,整体测量值比实际值大约偏高0.5cm,因此,在大约距离为1米左右时,我们通过把测得的数据均主动减去0.5cm。这样,显示的结果与实际值就比较接近了。
软件处理的方法之三就是注意细节处理。例如像前面所提到的通过定标模块进行定标时,会得到一个速度值,这个值会给后面的程序进行计算时使用。我们在实际的操作中虽然在定标时显示了具体的速度值,但在后面实际计算时,并没有直接用这个值,而是把测得的被除数和除数分别存储起来,在具体计算时,采用的是乘以被除数,再除以除数。这样在一定程度上又进一步减少了计算误差。
4结束语
本文着重介绍一些在具体使用超声波液位计测量液位的过程中,分析了测距过程中误差的产生及减小误差的方法。实践证明,采用这些方法将大大减小测量误差,提高测量的准确度。