APP下载

交流电力智能传感器粗信号处理实验平台的软件设计

2013-05-03肖继学张汉中吴瑞竹

中国测试 2013年2期
关键词:信号处理小数预处理

殷 巧,肖继学,童 俊,程 志,廖 旋,张汉中,吴瑞竹

(西华大学机械工程与自动化学院,四川 成都 610039)

0 引 言

随着智慧城市、智能电网的不断发展,人们对电力的要求逐渐提高,对电力质量的监控力度不断加大,对电力智能传感器的需求日益迫切。对于交流电力智能传感器,基于性价比最优的原则,人们利用数字仿真方法在PC系统上对其粗信号处理方法进行了卓有成效的前期研究工作[1-11]。

为进一步深入研究,人们开始着手交流电力智能传感器粗信号处理实验平台的研制,并初步完成平台硬件设计[12-13]。该实验平台由基于C51单片机MCU(若无特别说明,本文之后的MCU均指C51单片机MCU)的现场测试系统和PC系统构成。探头感知交流电力的电压、电流,感知出来的信号通过调理电路的滤波、放大后经A/D接口电路进入MCU系统,MCU进行粗信号处理获得交流电力的幅值、初相位等特征参数。MCU系统的状态与分析结果一方面可通过现场LCD显示出来,另一方面根据需求经过串口传送给PC系统。

与硬件相对应,该平台的软件分为MCU系统软件和PC系统软件两个部分。由于PC系统软件经过前期开发已比较完善[13-15],本论文的软件设计将集中在MCU系统上。

1 软件设计方案

C51单片机MCU的软件开发可基于汇编语言,也可基于C语言。前者实现灵活、高效且可靠性高,但对设计者在MCU的结构、资源分布以及系统硬件等方面有较高要求,设计比较困难,开发周期较长;后者易于理解,对设计者的硬件要求相对不高,易于利用现有的功能模块,开发周期短,但效率与可靠性相对不高。由于本实验平台仅仅进行交流电力智能传感器的粗信号处理,鉴于开发周期等因素,本文将基于C语言,在集成开发环境Keil中开发MCU部分的软件。

图1为MCU部分主程序的流程框图。MCU系统软件运行后,首先初始化系统参数及各设备的状态,如A/D、LCD、串口和存放数据的数据缓冲区等,然后打开串口。接着通过A/D模块采集电力信号并进行预处理,获得其周期、频率等信息;经过粗信号处理,分析出电力电压、电流幅值、初相位或者相位差等特征参数;这些结果保存起来,并通过LCD现场显示。如果PC系统有查询要求,则MCU系统通过响应串行中断将这些结果或系统状态“告诉”给PC系统(图2未表示出MCU系统的串口中断响应)。MCU系统通过一个按键来判断是否结束信号处理,如果按下该键,则关闭串口,结束主程序;否则,转向信号采集,进行信号预处理、粗信号处理等,一直循环工作。

由此可见,MCU系统的软件主要包括系统状态及参数初始化、信号采集、信号预处理、键盘处理、LCD显示、粗信号处理、结果保存、串口通信等功能模块。交流电力智能传感器粗信号处理实验平台的主要功能为检验各种粗信号处理方法在基于MCU的交流电力智能传感器中的实时性与精度。故本文主要设计信号预处理、粗信号处理两个核心功能模块。系统状态及参数初始化、信号采集、键盘处理、LCD显示、结果保存、串口通信等功能模块利用常规方法即可实现[13,16]。由于交流电力的电流信号分析方法与其电压信号分析方法类似,将以电压信号为例探讨MCU系统信号预处理、粗信号处理这两个关键功能模块的软件设计。

图1 主程序流程框图

图2 信号预处理流程图

2 信号预处理模块

工程上,交流电力的电压信号可描述为

式中:u(t)——电力在t时刻的电压大小;

Um、f、θ0、U0——表示电力电压的幅值、频率、初相位、偏移量。

由此可见,Um、f、θ0、U0为交流电力电压的特征参数。有了这些特征参数以及类似的电力电流特征参数,就可以确定该电力如功率因数、有功功率、无功功率等性能指标。

设电力电压信号的采样周期为Ts,第i个采样值记为us(i),i=1,2,3,…,N(N为样本总数)。通过这些样本的预处理,分析出了f、U0以及电压的初始幅值Um0。研究式(1)发现,在一个周期内,如果起始电压等于其极值,则该大小的电压共出现两次(包括起始处),否则,与起始电压相等的电压共有3个(包括起始处),相邻两处电压的变化趋势相反。例如,起始处附近电压递增,则与起始电压相等的第一处附近电压递减,第二处电压递增。基于这一规律,利用us(i)就确定了寻找电力电压周期的有效方法。其基本思路为:如果us(1)等于极值,则寻找与us(1)相等(或在一定精度范围内最接近)的us(Np)。否则,寻找与us(1)相等(或在一定精度范围内最接近)的us(Nm)、us(Np),Np为交流电压一个周期内的采样点数。从而可得电压周期Tp=NpTs,频率f=1/Tp。分析式(1)可知,U0等于u(t)在一个周期内的平均值。因此,可通过连续Np个采样信号us(i)计算出U0。设u(t)的极值表示为 Umax,则由式(1)知,Um=Umax-U0。由此,利用Umax分析出了电压的初始幅值Um0。在此基础上,设计出了流程如图2所示的信号预处理软件模块。为了降低工程上各种干扰的影响,以连续3个周期f、U0、Um0的平均值作为其计算分析结果。显然,Np越大,即Ts越短,分析出的这些结果其精度就越高。

3 粗信号处理模块

至于交流电力电压的特征参数Um、θ0,由于噪声干扰等因素,直接根据式(1)以及传统方法比较精确地计算出来比较困难。据相关研究成果[1-11],交流电力智能传感器的粗信号处理可分为传统定义法、相关法和最小均方法(least mean square,LMS)3种方法。设在一个周期内即从Np个连续样本中均匀地抽取NA个样本进行分析,对于传统定义法,有

设up(i)=sin(2πfiTs),对于相关法、LMS法,则可分别通过式(4)与式(5)、式(6)与式(7)获得交流电力电压的 Um、θ0。

上述计算中,NA越大(NA不大于 Np),分析精度越高。选择低成本的单片机作为交流电力智能传感器的MCU可利于该智能传感器的推广、应用,这也是构建图1所示交流电力智能传感器粗信号处理实验平台的初衷。PC系统上的数字仿真已经验证了这3种方法的性能[1-12]。由式(2)~式(7)知,利用这 3 种方法计算出Um、θ0主要涉及小数的加法、乘法、除法运算。在Keil中有单精度、双精度浮点型两种小数表示方法。利用这些表示方法进行分析,这3种方法的精度与PC系统上数字仿真的结果一致。虽然其精度较高,但每个单精度、双精度浮点型小数变量分别占4、8个字节,消耗的系统内存空间资源较大,需要较大的运算量。一方面,智能传感器除了进行粗信号处理外,还要进行通信、自诊断、自校正等,故单片机内存资源相对比较紧缺;另一方面,目前的单片机晶振频率通常没有PC的高,大量的4、8个字节的单精度、双精度浮点型小数运算会让这3种方法的实时性变差。因而,放弃了Keil中现有的小数表示法。为了理解,也便于分析、比较这3种方法的计算精度与实时性,实现上述3种粗信号处理方法时分别采用了8位、16位即1、2个字节字宽的小数部分表示法对小数进行处理。

当采用8位字宽处理小数时,把操作数的整数部分和小数部分拆开,为便于保持操作数的符号,将其整数放置于char类型变量中,小数放在uchar类型变量中,即整数部分、小数部分分别用一个字节表示,共用了两个字节表示一个小数。uchar变量的最高位至最低位的权分别为 2-1,2-2,2-3,…,2-8。基于乘法分配律,实现了两位小数的乘法运算,其流程如图3所示。图中,拆分操作数指将两个操作数(乘数、被乘数)的整数部分与小数部分分开。积的符号运算基本思想为:当两个操作数的符号一致时,积的符号为正,否则为负。运算结果的整数部分与小数部分分开存放。软件开发中,将这些集成为一个功能模块,当需要两个小数相乘时,就调用该功能模块予以实现。式(2)~式(7)所示3种方法均需计算多个小数的和,因此,开发了多个小数的累加子程序,其流程如图4所示。首先,将需要累加的小数分为正小数、负小数两类。接着分别累加这两类小数,其符号不变,只关心累加和的大小。在累加过程中将整数、小数部份分别进行累加,小数部分每进位一次,进位标志位CY=1,此时整数部分的值就加1。整数部分在累加过程中可能发生溢出,溢出标志位OV=1,于是需要再分配一个8位的空间进行存放,每当发生溢出的时候此空间的数据增1。然后,将正、负两类小数的累加和带符号相加,获得多个小数的最终累加和。

当采用16位字宽处理小数时,其基本思路与上述一样,不同的在于整数、小数部分分别放在int、uint类型的变量中。

图3 两位小数的乘法流程

图4 小数累加流程

在此基础上,开发出了实现上述3种粗信号处理方法的系统软件模块,其流程如图5所示。由式(2)~式(7)知,经过信号预处理获得的 f、U0、Um0,其精度对粗信号处理非常关键。为提高它们的分析精度,尽量缩短Ts,Np通常很大。如果把这大量的样本全用于粗信号处理,粗信号处理的实时性势必较差。因此,首先根据需求,在一个电压信号周期内均匀地抽取用于分析的NA个样本。接着,对于定义法,计算出了这NA个样本的平方和;对于相关分析法,则计算出了这NA个样本与相应单位纯正弦信号的乘积的累加和;对于 LMS法,则根据式(6)、式(7)计算出多个相关乘积项的累加和;然后,根据式(2)与式(3)、式(4)与式(5)、式(6)与式(7)分别计算出基于定义法、相关法、LMS法的电压幅值、初相位的大小。

图5 粗信号处理流程

4 实 验

在交流电力智能传感器粗信号处理实验平台上,利用本文开发出的软件系统,对实验室内的工业用电单相交流电力进行了测量。实验中,MCU的晶振频率为11.059 2MHz,Ts等于36个机器周期即约为39μs。将图6(a)所示的采集的一段电力电压信号通过串口送至PC系统,经过快速傅里叶变换获得如图6(b)所示的该信号频谱。图6(b)表明,该电压基本频率为50Hz,幅值为310.8856V,在其他如100,200Hz等频率处,存在一定的干扰。图6(c)表明该电压50Hz频率分量处的初相位为9.988 6°。因此,该电力的特征参数f、Um、θ0的真值可分别近似为50Hz、310.8856V、9.9886°。

利用图2所示的信号预处理模块分析这些采集样本,获知 Np、f、U0、Um0分别为 513、49.903Hz、0V、316.432 2V。该频率非常接近上述分析出的50Hz,故可证明该信号预处理是正确的。在此基础上,采用图5所示的粗信号处理模块对该样本进行了分析,其结果如表 1、表 2 所示。其中,Umi、θ0i、ti分别表示电压幅值、初相位、分析所用时间,其单位分别为V、rad、s,i=1、2、3 时分别表示传统定义法、相关法、LMS法分析出的电力特征参数。

表1、表2表明,随着NA的增加,3种方法分析出来的Um、θ0的不断接近其真值。对于相同的NA个样本,相关法、LMS法的分析精度高于传统定义法,NA越小,这种情况越明显。这与相关研究成果相吻合[2,8,12],从而验证了该软件模块的正确性。

从表1、表2可以看出,分析相同的样本,相关法的计算时间略多于传统定义法,但远少于LMS法,约为LMS法的1/4至1/3(用8位表示小数部分时,如表1)或者1/2(用16位表示小数部分时,如表2)。对于相同的分析精度,相关法需要的时间差不多,但均少于传统定义法,约为传统定义法的1/2(用8位表示小数部分时,略大于1/2,如表1;用16位表示小数部分时,略小于1/2,如表2)。对比表1、表2可知,采用16位表示小数的小数部分,3种方法的分析精度均略高于8位小数部分表示所分析出来的精度,但运算时间增加了1倍左右,即实时性能降低了约一半。从上面的分析也可以看出,对于该样本,达到相同的分析精度LMS法所需的样本数最少,相关法次之,定义法最多。

图6 单相交流电压信号

表1 小数部分8位表示法的粗信号处理结果

表2 小数部分16位表示法的粗信号处理结果

5 结束语

针对现有交流电力智能传感器粗信号处理实验硬件平台,本文首先确定了在Keil集成开发环境中利用C语言进行软件开发的总体方案,设计了MCU部分软件的主程序流程。接着,详尽地设计了MCU软件系统中两个关键、核心的功能模块:信号预处理与粗信号处理。在开发信号预处理功能模块时,分析并利用交流电力信号的特征、规律完成了交流电力的频率、偏移量的分析;为研究幅值、初相位的获取精度与计算中小数的小数部分所占资源之间的关系,在设计出小数部分8位、16位表示的两位小数乘法、多个小数累加等子功能模块的基础上,开发出了能实现传统定义法、相关法、LMS法3种粗信号处理方法的功能模块。工业用电的测试实验验证了本文开发出的软件的有效性、可靠性,表明了该软件能分析传统定义法、相关法、LMS法3种粗信号处理方法的精度与实时性,为用户在粗信号处理方法以及粗信号处理方法实现的系统资源分配、粗信号处理方法的实现精度与所占系统资源上的抉择提供有益参考,能满足交流电力智能传感器粗信号处理方面的实验要求。

[1]车畅,胡丹.交流电力功率智能传感器粗信号处理[J].西南交通大学学报,2011,46(4):598-603.

[2]肖继学,李世玺,程志.交流电压智能传感器的粗信号处理[J].西华大学学报:自然科学版,2011,30(2):35-38.

[3]Xiao J X,Yang Y,Wang K,et al.Correlation analysis for AC power smart sensor[C]∥International Conference on Electrical and Control Engineering,2010:640-643.

[4]肖继学,杨瑜,王凯,等.交流电力功率智能传感器中信号处理的相关性分析[J].测控技术,2010,29(9):99-102.

[5]李世玺,肖继学,王凯.交流电力测试系统中关键采样点的估计方法研究[J].化工自动化及仪表,2010,37(9):42-45.

[6]肖继学,杨瑜,王凯,等.交流电力有功功率的测试研究[J].机床与液压,2010,38(14):48-51.

[7]肖继学,杨瑜,王凯.交流电力智能传感器中功率的一种高效测试方法[J].测控技术,2010,29(7):94-102.

[8]肖继学,杨瑜,王凯.交流电压智能传感器中信号处理的相关性分析[J].仪表技术与传感器,2010(5):98-100.

[9]王凯,肖继学,李世玺.交流电压智能传感器中关键采样点的估计[J].西华大学学报:自然科学版,2010,29(3):6-8.

[10]肖继学,杨瑜,王凯,等.基于相关分析的交流电力有功功率测试研究[J].西华大学学报:自然科学版,2010,29(4):5-7.

[11]肖继学,李世玺,程志.交流电压智能传感器的粗信号处理[J].西华大学学报:自然科学版,2011,30(2):5-7.

[12]程志,肖继学,李世玺.交流电力智能传感器粗信号处理实验硬件系统设计[J].西华大学学报:自然科学版,2011,30(4):68-71.

[13]程志.交流电力智能传感器粗信号处理实验系统的研制[D].成都:西华大学机械工程与自动化学院,2012.

[14]李世玺.交流电功率智能传感器粗信号的处理[D].成都:西华大学机械工程与自动化学院,2011.

[15]王凯.交流电压/电流智能传感器信号处理技术研究[D].成都:西华大学机械工程与自动化学院,2010.

[16]黄惟公,邓成中.单片机原理与接口技术(C51版)[M].成都:四川大学出版社,2011.

猜你喜欢

信号处理小数预处理
专题征稿启事
——信号处理
小数加减“四不忘”
求解奇异线性系统的右预处理MINRES 方法
MATLAB在数字信号处理中的应用
我国古代的小数
小数的认识
小数的认识
高COD二噻烷生产废水预处理研究
基于MATLAB的语音信号处理
一种激光/无线电复合引信信号处理技术