1 硬件设计
传统电路测试是靠分立的仪器组合完成的,如功率装置(有功功率表、无功功率表、功率因数表和电度表)、波形监测装置(模拟或数字示波器、波形记录仪)、谐波分析装置和负序装置等。这种测试方法的主要弊端是装置体积庞大、自动化程度低和数据不集中难以进行相关分析。新一代的测试系统基于计算机控制、自动测试平台和虚拟仪器技术,按信息处理次序由传感器、信号采集、多路切换开关、数模转换、接口电路和计算机组成,克服了传统测试的弊端。目前,适合做电能质量测试的硬件主要有:PC机加采集卡、GP—IP系统、CAMAC系统和VXI系统,其中PC机加采集卡具有结构简单、价廉和开发周期短等突出优点,在模拟通路小于32路和要求装置能便携的条件下特别适合。而GP—IP、CAMAC和VXI系统是世界上广泛采用的标准接口系统,在通路较多、并且已有相当的带接口的测试仪器的情况下能方便地集成一个大型、多功能的综合测试系统。
当待测模拟量为高电压和大电流时,通常需要将其变换成适合模数转换器(ADC)的低电平信号。变电所已有的电压互感器(PT)和电流互感器(CT)把高压和大电流转化为100V电压和5A电流信号,其变换的精度满足测试要求[3,4],因此要做的工作只是设计电压—电压和电流—电压线性变换电路和多路同步采集系统。模拟量采集模块组成如图1所示,此模块又分为信号传感和数据采集两部分。电压信号的线性变换由电压互感器和电压传感器(PS)组成,电流信号的线性变换由电流互感器和电流传感器(CS)组成。
2 软件设计
这里只讨论基于PC机+采集卡硬件方案的软件设计。为了便于用户使用和尽量使分析结果直观、明了,软件工作平台选用Windows95。实践证Windows95图形用户界面(GUI)、多线程和多任务、进程间通信(DDE)等技术对完成综合测试大有裨益。
(1)系统功能
软件按功能可分为稳态数据采集、数据处理和暂态录波。数据处理按处理时间不同可分为实时处理和离线分析两种。实时处理包括对时间序列进行快速富立叶变换(FFT)运算、负序分解、功率计算和数理统计。根据国际规定,统计参数包括谐波幅值、电压不平衡度的平均值、均方根、95%概率值及相应的合格率等。计算各种无功计量方式(返送不计、返送返计、返送正计)下功率因数、功率平均值和均方根、负荷率等。
图1 模拟量采集电路组成图
离线分析主要用来分析负荷的变化规律。内容有:显示和打印基波幅值、谐波幅值、综合畸变率、电压不平衡度、功率的历史曲线,谐波变化的散布图,计算谐波的复平均值、概率分布,基波和谐波及负序的相关分析,负荷过程的功率谱估计、统计模型的辨识及负荷的预报,系统频率与负荷有功功率和无功功率的相关分析及负荷模型的辨识。
暂态录波有两种工作方式:手动触发和自动触发。手动触发是预先设置好待录波的信号和记录时间长度,通过按键或用户界面上的按钮来启动。自动触发有各种方式,如定时、过零点、越限、尖峰等等,统称为事件触发。
(2)软件的实现
测试系统的软件一般不超过20 000行,涉及底层的I/O操作、数据库、数学运算、图形用户界面和报表等各方面,单纯诸如VB、c或c++、Delphi语言开发不利于提高速度。笔者在开发主控程序和离线分析时采用了美国NI公司的LabWindows CVI组态软件;实时处理是用MSVC采用面向对象的方法构件的动态连接库;而数据库管理和报表采用MSVB单独实现,它和主控程序通过RAM盘上的数据文件交换数据。最后得到如图2所示的软件结构。它集成了稳态过程数据记录、暂态波形自动捕获、暂态分析、负荷在线预报、数据展示和报表功能。软件设计的关键技术是Windows95的客户/服务器策略、DDE、OOP技术。软件由以下4个程序组成:自动测试程序(BZCSEV)、用户界面程序(UI)、稳态数据分析程序(ANYSPD)和暂态数据分析程序(ANYTPD)。
程序之间采用DDE进行通信和交换数据,通信中BZCSEV是服务器(server),UIANYSPD和ANYTPD是客户(client)。各程序功能分述如下
暂态录波有两种工作方式:手动触发和自动触发。手动触发是预先设置好待录波的信号和记录时间长度,通过按键或用户界面上的按钮来启动。自动触发有各种方式,如定时、过零点、越限、尖峰等等,统称为事件触发。
(2)软件的实现
测试系统的软件一般不超过20 000行,涉及底层的I/O操作、数据库、数学运算、图形用户界面和报表等各方面,单纯诸如VB、c或c++、Delphi语言开发不利于提高速度。笔者在开发主控程序和离线分析时采用了美国NI公司的LabWindows CVI组态软件;实时处理是用MSVC采用面向对象的方法构件的动态连接库;而数据库管理和报表采用MSVB单独实现,它和主控程序通过RAM盘上的数据文件交换数据。最后得到如图2所示的软件结构。它集成了稳态过程数据记录、暂态波形自动捕获、暂态分析、负荷在线预报、数据展示和报表功能。软件设计的关键技术是Windows95的客户/服务器策略、DDE、OOP技术。软件由以下4个程序组成:自动测试程序(BZCSEV)、用户界面程序(UI)、稳态数据分析程序(ANYSPD)和暂态数据分析程序(ANYTPD)。
程序之间采用DDE进行通信和交换数据,通信中BZCSEV是服务器(server),UIANYSPD和ANYTPD是客户(client)。各程序功能分述如下
图2 软件组成框图
①UI完成实时数据、历史数据和暂态数据的展示和报表、用户(USER1)命令的输入和变电所信息的输入。UI是针对现场的非专业人员设计的,功能比较简单。
②BZCAVER完成采集卡驱动(DACQDRV)、数据自动记录(MONITER)、统计分析(STAT)、数据管理(DBM)和响应客户的请求(ACQ)。
③ANYSPD完成稳态过程数据的进一步分析。
④ANYTPD完成暂态数据的分析。ANYSPD和ANYTPD的使用者一般是专业人员。
3 算法讨论
(1)数据采集
采集卡(ADC)与PC机通过I/O接口交换数据。PC机与ADC的通信有查询方式和中断方式,在Window95环境下,可采用中断方式提高系统的性能,但需开发硬件设备驱动程序,Windows95的设备驱动程序是采用虚拟设备(VXD)机制。VXD的开发不但需要程序员对Windows95运行机制有深入的了解而且软件费用极其昂贵,加之国内介绍VXD的资料极少,个人在短时间内开发VXD有较大的难度,当采用查询方式时,CPU要花费一定时间做等待而引起系统性能下降。好在Windows95是支持多线程,用查询方式还是可以实现连续采样。其方法是在采集卡设备一定时RAM作为缓冲,通常用先进先出(FIFO)和辅助标志(FIFO空、满和半满)的机制,并在软件中用一个独立的线程来完成对ADC的查询和读取数据,采集线程与主线程通过双缓冲区交换数据。双缓冲区由两个大小相等的数组BuffA、BuffB和标志组成,用c++表示为
struct{
shortint*wptr;∥存数指针
shortint*rptr;∥取数指针
BOOLAflag;∥缓冲区A满/空
BOOLBflag;∥缓冲区B满/空
intbuffsize;∥缓冲区大小
shortint*buffA;∥缓冲区A
shortint*buffB;∥缓冲区B
}
程序工作过程是:数据采集线程读取采集卡FIFO中的数据、通过存数指针wptr依次向Buff A和BuffB写入,并在写满后对Aflag和Bflag置位;主线程不断查询Aflag和Bflag,在其处于置位状态时通过取数指针rptr读取数据,读取完毕后对Aflag和Bflag复位。为实现两者同步,需了解机器进行I/O操作、计算和磁盘操作的速度,合理地选取buff-Size的大小和设置两线程的优先级别。
(2)事件触发
要实现暂态过程的自动记录,需要设计较全面的事件触发逻辑。这里针对电力系统运行特点,提出几种通过电压、电流波形特征来实现自动触发的方法。设取样后的信号为x(n)(n=1,2,…,N;N=2p),x(n)为实数,p的选取决定于采样频率和数据窗口长度。经FFT变换后为X[k](k=1,2,…,N),X[k]为复数,令Am(X[k])为X[k]的幅值,Arg(X[k])为X[k]的角度。有如下3种触发方法。
①能量判别法 判断信号能量是否超出给定的范围。设信号的能量为E,则
式中 Emin和Emax视具体情况而定。
此法适宜于捕获如过负荷、短路故障、过电压等暂态过程。
②谐波含量判别法 检查某次谐波含有率HR或综合畸变率THD的大小。触发条件如
HR[k]>HRmax[k]THD>THDmax(3
①UI完成实时数据、历史数据和暂态数据的展示和报表、用户(USER1)命令的输入和变电所信息的输入。UI是针对现场的非专业人员设计的,功能比较简单。
②BZCAVER完成采集卡驱动(DACQDRV)、数据自动记录(MONITER)、统计分析(STAT)、数据管理(DBM)和响应客户的请求(ACQ)。
③ANYSPD完成稳态过程数据的进一步分析。
④ANYTPD完成暂态数据的分析。ANYSPD和ANYTPD的使用者一般是专业人员。
3 算法讨论
(1)数据采集
采集卡(ADC)与PC机通过I/O接口交换数据。PC机与ADC的通信有查询方式和中断方式,在Window95环境下,可采用中断方式提高系统的性能,但需开发硬件设备驱动程序,Windows95的设备驱动程序是采用虚拟设备(VXD)机制。VXD的开发不但需要程序员对Windows95运行机制有深入的了解而且软件费用极其昂贵,加之国内介绍VXD的资料极少,个人在短时间内开发VXD有较大的难度,当采用查询方式时,CPU要花费一定时间做等待而引起系统性能下降。好在Windows95是支持多线程,用查询方式还是可以实现连续采样。其方法是在采集卡设备一定时RAM作为缓冲,通常用先进先出(FIFO)和辅助标志(FIFO空、满和半满)的机制,并在软件中用一个独立的线程来完成对ADC的查询和读取数据,采集线程与主线程通过双缓冲区交换数据。双缓冲区由两个大小相等的数组BuffA、BuffB和标志组成,用c++表示为
struct{
shortint*wptr;∥存数指针
shortint*rptr;∥取数指针
BOOLAflag;∥缓冲区A满/空
BOOLBflag;∥缓冲区B满/空
intbuffsize;∥缓冲区大小
shortint*buffA;∥缓冲区A
shortint*buffB;∥缓冲区B
}
程序工作过程是:数据采集线程读取采集卡FIFO中的数据、通过存数指针wptr依次向Buff A和BuffB写入,并在写满后对Aflag和Bflag置位;主线程不断查询Aflag和Bflag,在其处于置位状态时通过取数指针rptr读取数据,读取完毕后对Aflag和Bflag复位。为实现两者同步,需了解机器进行I/O操作、计算和磁盘操作的速度,合理地选取buff-Size的大小和设置两线程的优先级别。
(2)事件触发
要实现暂态过程的自动记录,需要设计较全面的事件触发逻辑。这里针对电力系统运行特点,提出几种通过电压、电流波形特征来实现自动触发的方法。设取样后的信号为x(n)(n=1,2,…,N;N=2p),x(n)为实数,p的选取决定于采样频率和数据窗口长度。经FFT变换后为X[k](k=1,2,…,N),X[k]为复数,令Am(X[k])为X[k]的幅值,Arg(X[k])为X[k]的角度。有如下3种触发方法。
①能量判别法 判断信号能量是否超出给定的范围。设信号的能量为E,则
式中 Emin和Emax视具体情况而定。
此法适宜于捕获如过负荷、短路故障、过电压等暂态过程。
②谐波含量判别法 检查某次谐波含有率HR或综合畸变率THD的大小。触发条件如
HR[k]>HRmax[k]THD>THDmax(3
式中 HRmax[k]和THDmax的选取可参照国标。
此法对捕获波形特征非常明显的暂态过程尤其有效,如励磁涌流的二次谐波、短路故障中直流分量。
③相关系数判别法 考虑谐波较严重情况下,系统稳定工作时信号的波形形状接近其特征波形(相当于统计均值)且随时间变化不大。而系统受到扰动后,由于惯性的作用信号能量不会有较大的改变,单从能量和某一次的谐波含有率的变化来辨别不能做到及时、准确和全面的判断。当然可用后触发来解决这一问题,即多记录一段时间的波形,但这样做既增加系统的投资又造成编程的复杂性。如果把信号波形看作所处状态空间的点(或称矢量),那么特征波形相当于空间的中心位置。某一时刻的信号波形与特征波形的相关系数即为矢量之间的夹角。考察此角度的大小即可判别系统是否处于暂态过程。为了节省运算时间,用频域数据来计算相关系数。
此法对捕获波形特征非常明显的暂态过程尤其有效,如励磁涌流的二次谐波、短路故障中直流分量。
③相关系数判别法 考虑谐波较严重情况下,系统稳定工作时信号的波形形状接近其特征波形(相当于统计均值)且随时间变化不大。而系统受到扰动后,由于惯性的作用信号能量不会有较大的改变,单从能量和某一次的谐波含有率的变化来辨别不能做到及时、准确和全面的判断。当然可用后触发来解决这一问题,即多记录一段时间的波形,但这样做既增加系统的投资又造成编程的复杂性。如果把信号波形看作所处状态空间的点(或称矢量),那么特征波形相当于空间的中心位置。某一时刻的信号波形与特征波形的相关系数即为矢量之间的夹角。考察此角度的大小即可判别系统是否处于暂态过程。为了节省运算时间,用频域数据来计算相关系数。
式中 X[k]为X[k]的共轭,X0[k]为X0[k]的共轭,φ=cos-1(C)为夹角。
触发条件为
φ>φmax(5)
其中φmax取值不大于45°。
4 结论
应用现代数字信号处理技术和计算机技术是实现电能质量综合测试切实可行的方法。运用实时同步采样技术和傅立叶分析提取稳态谐波、负序和功率参数可得到满意的结果。在Windwos95环境下采用混合编程适合于长时间的数据记录和分析工作。
触发条件为
φ>φmax(5)
其中φmax取值不大于45°。
4 结论
应用现代数字信号处理技术和计算机技术是实现电能质量综合测试切实可行的方法。运用实时同步采样技术和傅立叶分析提取稳态谐波、负序和功率参数可得到满意的结果。在Windwos95环境下采用混合编程适合于长时间的数据记录和分析工作。