开封市中仪流量仪表有限公司
阅读:136发布时间:2021-12-22
电磁流量计模数转换与数字信号处理
前面章节已经详细介绍了电磁流量计转换器的原理、设计思想和硬件电路。而系统的软件也是为要实现这一设计思想,完成电磁流量计功能服务的。所以数字部分要完成的主要功能是对经过高低通滤波的信号进行A/D 采样,并滤波取其直流成分。信号中包含了与流速相关的直流分量,这个信号经过滤波以后进入了A/D 采样通道,软件要通过对A/D 采样得到的数字量进行滤波得到所包含的直流分量。同时软件功能还包括键盘的输入控制与液晶显示器控制和输出波形控制等。
系统软件由主程序程序、键盘菜单处理、定时器中断、A/D 采样、显示等部分组成。如图4.8 所示分别为采样处理主程序流程图,定时器中断服务程序流程图。求更新后的100个点值作流量显示求100个点平均值作流量显示键盘设定是否测量累计流量并完成参数设定上电初始化是否采集完最开始100个点是否更新了其中50个点进入定时中断服务程序是否采集完最初的100个点数据A/D采样并保存到相应数组对采集到的所有数据求和A/D采样并保存到相应数组用逐点法求100个点数据之和并作一阶滤波跳出中断系统主程序系统中断服务程序图4.8 程序流程图Fig.4.8 Frame of process flow
从流程图中我们可以看出,系统软件是通过对连续等间隔采集来的100 个点求平均值来达到滤波目的的,即得到直流分量。这100 个点采到的数据都保存在一个数组当中,每采到一个新的点,就在这个数组当中对最老的点进行替换,数组中保存的都是的采样点,而对于这些点的求和则采用逐点法求得,即除了最开始采集的100 个数据需要做一次求和以外,后面只要把这个和减去的点的数据再加上的点的数据就可得到当前的的100 个数据之和(每采集一个新的点,就得到一个新的和)。我们不仅对这100 个点求一下平均值来得到直流分量,还对每一次求得的和再作如下的平滑处理: Yn=A*Yn1+B*Xn (4.1) 其中,A+B=99%;Yn:当前值;Yn1:上次值;Xn:当前采集值;A, B 是系数,保证A+B=1, A 越大, 响应越慢但同时一会更稳定。这样进行平滑处理的目的是为了使得到的数据更加稳定,不会因为偶尔的误差或者波动出现显示的跳变。对经过平滑处理的和除以100 求得的平均值我们才认为就是软件滤波得到的直流分量。
这部分A/D 转换所用的芯片是AD574。AD574 是美国Analog Device 公司生产的12 位逐次逼近式模数转换器,其主要特点是: (1)有参考电压基准和时钟电路,不需外部时钟就可以工作; (2)转换速率高,12 位转换25 s,8 位转换16 s; (3)8 位或16 位微处理器接口,自带三态输出缓冲电路,可直接挂在单片机的数据总线上而无需接口电路; (4)温度适应范围大,在55~+125 C 范围内满足线性要求。主要功能引脚介绍如下: AC:模拟地DC:数字地CS:片选信号,低电平有效CE:片使能,高电平有效R/C:读/启动信号,高电平读数据,低转换12/8:数据格式选择,高电平12 位数据同时有效,低电平时次输出高8 位,第二次输出低四位有效,中四位为零。A0:内部寄存器控制输入端,在12/8 接地的情况下,高电平时高8 位数据有效,低电平时低4 位有效,中间4 位为零,高4 位为高阻态;在R/C 为低的情况下,高电平启动12 位转换,低电平启动8 为转换。STS:工作状态输出端,高电平表示正在转换,低电平表示转换完毕。
利用AD574 的方法在原有的低频矩形波励磁方法中也有应用,但由于使用分频方法或整流方法产生励磁信号,因此只能通过两路采样开关根据励磁信号发生频率来实现零点动态补偿之后送入单片机, 但又由于感生电动势与励磁信号存在一定的滞后性,因此会由于感生信号与励磁信号的相位相关性下降而影响测量效果。在本系统中,由于采用了单片机控制励磁信号产生的方式,可以直接通过单片机得到实时感应信号之后进行补偿,很好的解决了相位相关性的限制,大大提高了零点动态补偿采样方法的稳定性。采样电路图如图4.9: 图4.9 采样电路连接图Fig.4.9 Sampling circuit
经过滤波后得到的信号中存在着幅值较大的尖峰脉冲,因此直流信号仍然存在着波动,虽然这个波动不是噪声,但是对信号的真实值测量来说仍是一种干扰。在软件中我们采用了低通滤波,公式为: Y=0.98y1+0.02x (4.1) 式中,y 是滤波后的值;y1 是上次滤波后的值;x 新的数据。因为电磁流量计信号与流速的线性关系在小流量范围内将发生大的偏差,所以在软件中必须加以补偿校正。在软件的设计中,我们根据实测的流速曲线,对流速进行了分段处理,采用的公式为: y=a+bx (4.2) a,b 均采用4 位有效小数,以提高在微弱信号下的计算精度。实验数据表明,这样的处理是简单而有效的。
因为编译器带有浮点运算库,数据处理过程得以简单化并能保持高精度以满足小流量微弱信号的需要,体现了C51 编程的*性。A/D 采样程序(C 语言): #Include<absacc.h> #Include<reg51.h> #define uint unsigned int #define ADCOM XBYTE[0xff7c] /*使A0=0,R /C . 0,CS . 0 #define ADLO XBYTE[0xff7f] /*使R /C . 1, A0 . 1,CS . 0 #define ADHI XBYTE[0xff7d] /* R /C . 1, A0 . 0,CS . 0 Sbit r=P3.7. Sbit w=P3.6. Sbit adbusy=P1.0. uint ad574(viod) /*AD574 转换函数*/ { r=0. /*产生CE=1*/ w=0. ADCOM=0. /*启动转换*/ While(adbusy==1). /*等待转换结束*/ return((uint)ADHI<<4+ADLO&0x0f)) /*返回12 位采样值*/ }main() { uint idata result. result=ad574()
如前所述,传感器经励磁输出微弱的感应电动势将经过滤波预处理、信号放大、高通滤波和低通滤波,最后由A/D 芯片进行采样转换为数字量。滤波预处理单元主要通过高通滤波器来实现隔直,以防过大的信号放大使得精密仪用放大器AD620 处于饱和状态,同时利用运放的跟随作用提高输入阻抗。由于滤波预处理单元对毫伏级的差分信号进行处理,因此设计中采用精密的元器件,保证了两个输入通道的参数对称,进而减小了AD620 输出的直流偏置。下面给输入端输入一个信号代替流量信号,
流量信号经过精密仪用放大器AD620 放大1000 倍后的输出信号如图4.10 所示,图中说明了流量信号存在着较强的微分干扰以及直流偏置。图4.10 仪用放大器AD620 输出信号Fig.4.10 Signal output by AD620 Amplifier 流量信号经过二阶巴特沃斯高通滤波器后,将消除AD620 输出信号的直流偏置以方便后续的A/D 采样。这里的信号图是通过示波器分时依次采集的,因此信号波形的相位不同。经过前面的信号处理,感应电动势信号有可能仍然存在一定的高频尖峰噪声,这将对后续的A/D 采样有一定的影响,并进而影响测量精度。因此采用截止频率为31. 9Hz 的一阶有源低通滤波器来消除噪声干扰。低通滤波器的输出信号如图4.11 所示。图4.11 二阶低通滤波器输出信号Fig.4.11 Output signal of twosteps low pass filter 该信号经过A/D 模块转换后通过单片机在LED 或LCD 上显示出来,见图4.12。ADIN 端为模拟信号输入端,随着模拟信号的变化,显示不同的数值,这样就把模拟电压转换成数字信号。显示参考程序如下: #Include<reg51.h> #Include <intrins.h> #define uint unsigned int #define uchar unsigned char sbit P2_0=P2^0. //数码管显示位选sbit P2_1=P2^1. sbit P2_2=P2^2. sbit adrd=P2^3. //AD 读sbit adwr=P2^4. //AD 写sbit adint=P2^5. //AD 中断sbit beep=P2^6. //蜂鸣器unsigned char j,k,adval,key. void delay(unsigned char i) //延时{ for(j=i.j>0.j) for(k=125.k>0.k). }unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, //数字编码0xf8,0x80,0x90}. void display(uchar tem) //display 显示程序{ uchar j,A1,A2,A2t,A3; A1=table[tem/100]; //得到百位显示码A2t=tem%100; //得到十位数A2=table[A2t/10]; //得到十位显示码A3=table[A2t%10]; //个位显示码for(j=50;j>0;j) { P0=A1; //显百位P2_0=0; P2_1=1; P2_2=1; delay(5); P0=A2; //显十位P2_1=0; P2_0=1; P2_2=1; delay(5); P0=A3; //显个位P2_2=0; P2_0=1; P2_1=1; delay(5); }
} void main() { float adval_f; while(1) { adwr=0; //随便写个数,主要是启动AD 转换_nop_(); adwr=1; adrd=0; //读取AD 的数adval=P1; adrd=1; delay(10); //延时adval_f=(adval/256)*500; display(adval); //显示}; } 图4.12 数字信号的显示Fig.4.12 Displaymengt of digital signal
本章针对信号处理的模拟模拟信号处理和数字信号处理部分进行了详细的设计,以仪用放大器AD620 和CA3240 为中心组成放大滤波电路,又以AT89S53 单片机和AD574 芯片为中心组成了数模转换电路,并给出了关键程序流程。然后对部分电路进行测试并实现信号的显示,做出了PCB 板图并编制了相应的程序。本章是整个电磁流量计了的关键环节。--扩展阅读:开封中仪流量仪表有限公司专业生产电磁流量计、孔板流量计、涡街流量计、文丘里流量计、v锥流量计、v型锥流量计、喷嘴流量计、插入式电磁流量计、智能电磁流量计、分体式电磁流量计、一体式电磁流量计、标准孔板流量计、标准孔板、一体化孔板流量计、标准喷嘴流量计、长径喷嘴流量计、标准喷嘴、长径喷嘴、插入式涡街流量计、智能涡街流量计、锥型流量计、v锥型流量计、节流装置、节流孔板、限流孔板等流量产品,更多有关电磁流量计、孔板流量计、涡街流量计的信息请访问开封中仪网站:
仪表网 设计制作,未经允许翻录必究 .
请输入账号
请输入密码
请输验证码
请输入你感兴趣的产品
请简单描述您的需求
请选择省份