超声波流量计多声道气体测量技术探讨 九十
超声波流量计因为流速变化引起这些过零点时刻不同,当过零时刻测量值有偏差时,就需要重新发射3 次超声波信号来计算。由于单片机计时会产生1 个计数的误差,因此当这些过零点测量值的差值在在-1~+1 之间时,可以认为是相同流速下的超声波回波信号,否则这3 次测量值需要作废,重新发射3 次超声波信号并进行以上相同的的处理方法,直到判断出3 次超声波回波信号是在相同流速下的过零点时刻值为止。
程序实现中开辟数组fir[]、first[]、sec[]、second[]、fin[]、final[]来存储这些值,其中前两个数组分别用来存储记录到的回波信号过零点值的上升沿和下降沿时刻,第三个和第四个数组用来存储中间变量,后两个数组分别用来存储相与运算后的回波信号过零点的上升沿和下降沿时刻值。第一次和第二次的回波信号过零点时刻值存入前两个数组和预存入第三、四个数组中,进行相与逻辑运算后,其结果送入后两个数组中,程序流程图如图4-25。第一次回波过零点时刻值的计数个数为cl,第二次过零点值的计数个数为c0,最长的记数个数为100 个。
第三次得到的回波信号过零点值存入fir[]、first[]中,与上面结果相与运算后,将结果存入sec[]和second[]中,然后进行图4-25 中相同的操作,这3 次记录的过零点时间值相与运算后,便可以和单片机中预存的超声波标准信号进行相关运算。根据4.2.3 节中讨论的改进型数字极性相关算法设计程序,来识别超声波信号的到达时刻,首先将移位数gap 设置为500~1200,快速找到时刻T0值,程序流程图如图4-26。其中两个信号相与运算的算法可以参考图4-25 中的方法。
超声波流量计