来宝网 2015/12/15点击1279次
本文介绍了以数字信号处理器(dsp)为核心的实时处理系统,采用自适应陷波方法计算涡街流量计信号的频率。自适应陷波器只需估计一个参数。采用了dsp,使得信号处理实时和系统小型化。实测结果说明,自适应陷波方法和实时处理系统是有效的。
1 引言
被人们称为“数字孔板”的涡街流量计,具有测量精度较高、无活动件、可靠性好、输出信号频率与状态体积流量成正比等优点,在各行各业获得愈来愈广泛的应用。但是,由于涡街流量计工作原理的原因,它对外界振动非常敏感。工业现场的振动是普遍存在的,主要是流场干扰和管道振动干扰。这就使现场测量误差远远大于实验室标定误差。为此,我们研制了以数字信号处理器(dsp)为核心的实时处理系统,并采用自适应陷波方法处理涡街流量传感器的信号,排除了各种噪声干扰,提取准确的代表流速信息的频率,其计算精度优于±0·2%。
2 自适应陷波方法
在理想情况下,流量计中传感器的输出信号是正弦波,其频率与流速成比例关系。我们针对这一窄带信号,设计基于预测误差的自适应陷波滤波器,对不同频率的信号,建立不同参数的模型。这种陷波滤波器能抑制一个特定的频率,并且几乎不受位于带宽以外频率的影响。如果模型与实际情形完全吻合,有用信号分量被最大幅度地抑制,则陷波频率即为涡街频率。短时间的波动是窄带模型的一部分,对频率估计值精度影响不大。由于陷波滤波器具有平直的传递函数,附加干扰对滤波器几乎没有什么影响。理想陷波器的基本要求有两点[1,2]。一是其传递函数的零点应该在单位圆上,以使陷波的陷阱深度为无穷大。满足这一要求的多项式的系数应具有镜象对称形式:
式中,ρ是一个接近于1、但略小于1的常数。引入ρ保证了在h(z-1)的每一个零点附近有一个极点与之对应,即极点在作为零点的相同半径线上,但稍靠近原点,ρ值的大小也决定着陷波频率的宽度。可以证明式(3)中的常数α与陷波频率f0的关系为
式中t为采样时间间隔。可见,陷波滤波器只有一个参数需要估计,我们感兴趣的频率能直接由式(4)得到。
3 仿真结果
设输入信号为y=10 sin(2π×50t+π/6)+5 sin(2π×40t)+5 rand[size(t)],输入信号中含有较靠近的谐波,噪声的幅值也不小。以采样频率为200 hz、200个采样点计算得到的频率估计值为50·032 6 hz,误差小于0·652‰。图1是自适应陷波器的幅频特性,可见,本文算法有相当高的精确度(图上显示的周期性是因为频率响应随采样频率而进行周期性的变化的结果)。图2是算法求出的频率估计值随点数变化的情况,说明算法收敛很快(图上只显示了100点,是为了更好的说明算法的收敛性)。
4 实时处理系统研制
4·1 处理系统的硬件
涡街流量计数字信号处理系统的硬件由adsp2181(美国ad公司的dsp芯片)处理器、前向输入通道、输出电路、键盘输入电路、串行通信接口和保护电路组成。其中前向输入通道由电荷放大电路、低通滤波电路、a/d转换器组成。输出包括模拟量输出、数字量输出、液晶显示器(lcd)显示输出。键盘输入完成对系统参数的设定、显示内容的选择。串行通信接口完成本系统与其它系统之间的通信。系统硬件框图如图3所示。
流量计中的传感器将测量到的流量信号转换成电信号,经电荷放大器、滤波电路,送到a/d转换器。adsp2181根据采样频率定时启动a/d转换器。转换结束后,a/d转换器向ad-sp2181发出中断请求信号。adsp2181响应中断请求,读入采样数据,送入数据缓冲区。利用自适应陷波方法对数据缓冲区中的数据进行处理,从而确定流量计信号的主频率。再根据仪表系数以及温度和压力等补偿,得到瞬时流量值,从而得到流量等流体参数,也可以通过积算,求出累积流量。计算出的各种结果送入指定的数据缓冲区,由lcd显示。
4·2 处理系统的软件
(1)软件总框图
系统的软件总框图如图4所示。
软件总框图中的初始化模块包括ad-sp2181系统的初始化、键盘监控的初始化、lcd显示的初始化、仪表系数的初始化、计算模块的初始化。在初始化过程中设置定时时间、采样点数、计算变量的初始值、各种仪表参数以及第一次的采样频率等。
监控模块随时判断各种定时是否到达,这其中包括计算计数器、键盘扫描定时、lcd显示定时以及通讯请求等。监控模块程序完成查询以上工作并调用各个相应的处理程序。中断服务模块包括四个中断,即a/d中断服务、定时器中断服务、串行接口发送和接收中断服务。中断服务模块之中的a/d转换模块和计算模块完成对信号数据的采样、处理和计算。在整个程序运行中间,a/d转换的中断请求享有最高优先权,自始至终对信号数据进行采样并
将处理好的数据送到环行数据缓冲区,计算模块程序从环行数据缓冲区中读取数据进行处理,得到结果,这些数据被送到指定的数据存储单元以供显示。同时,计算模块对处理好的数据进行一系列的后续处理,包括判断结果的正误,选取正确的采样频率值,完成对定时器参数的重新设定,以及相应的计算系数的改变,从而准备好下一次计算所要求的各种参数。
(2)程序流程
系统的程序流程图如图5所示。
(3)计算模块的流程
计算模块的程序流程如图6所示,以系统的测量信号频率范围在40~600 hz为例,最多只需要预测频率三次就可以测量出信号的大致频率值,以此值的4倍作为采样频率进行采样计算,就可以得到较好的效果。图中,设置三次预测采样频率为1 499 hz、1 501 hz和501 hz,这样的设置也避免了和其他采样频率产生混淆,因为任何数的4倍不会是1 499、1 501和501。如果需要改变测量范围只要改动计算模块的相应程序即可。
4·3 信号处理中的几个问题
(1)采样频率的确定与变换
自适应陷波方法自身的特点,决定了采样频率的选取范围一般在信号频率的3~50倍之间,这是通过理论分析并得到大量仿真的证实(基于matlab的仿真环境)。对于一个固定的采样频率,它必然适应一定的信号频率(1/3~1/50),如果信号频率超越了采样频率所适应的范围,那么测量的结果就是错误的。在实际的工业现场中信号频率一般都是多变的,这就要求测量方法对于信号频率的变化有较强的跟踪能力,能快速响应信号频率的变化。针对这些情况,我们采取了三个步骤:以事先选好的两个或两个以上的频率进行采样并计算;对得到的结果进行比较以确定正确的采样频率;以正确的采样频率采样,计算出结果。
(2)反余弦的泰勒展开
在程序的计算过程中需要计算反余弦,反余弦的泰勒展开式为
由于受到dsp字长和计算时间的限制,反余弦的计算公式不可能展开到更多项,公式(6)不可避免地引入了截断误差。截断误差随x而变化的值如表1所示,从表中看到,0~0·6之间的x值所引入的截断误差基本上是0,而随着x从0·7增加到1,截断误差迅速地增大(表1中只列举了x的正值,对于x的负值有同样的变化)。这就要求尽量地避免计算x为0·7以上值的反余弦。这样就缩小了信号所适应的采样频率的范围.
dsp的数据存储器是16位的,它所表示的有符号整数的范围是-32 768~+32 767。它用1·15的格式表示小数,即一个符号位和十五个小数位,表示从-1到小于+1的值,能够精确到0·030 518‰。对于一个既带有整数又带有小数的数据,程序中采用16·16的保存格式,也就是对每一个采样数据扩充到32位,运用两个存贮单元保存一个数据,这样既保证了小数所要求的精度又不至于整数会溢出。在程序的计算中,对于乘法一般都采用双精度乘法,即16·16格式和16·16格式的相乘。对于除法一般采用32·32格式和16·16格式的相除,即被除数是32·32格式除数是16·16格式。在计算程序中尽量避免对截断误差有较大影响的x的反余弦值,这是通过选择合适的采样频率来实现的。一般采样频率为信号频率的4倍,就可以将x值限定在-0·3~+0·3之内。
5 实测结果
用hp3325b函数/信号发生器产生频率和幅值准确的信号,模拟流量计中传感器的输出,对信号处理系统进行测试和标定,得到的结果如表2所示,表中精度单位为‰,测量值的单位为hz。表中第一列数值为函数/信号发生器的输出主信号的频率值,它们的幅值都是0·15v,带有10°的初始相位,同时加入完全调制,调制波的频率值见表2的第一行。从表中可以看到,即使是在有干扰的情况下自适应陷波的方法仍有很高的精度,误差在2‰以下。
涡街流量计 http://www.wojieliuliangji01.com/