基于DSP和ARM的电能质量监测系统
2017-04-26孔亚非曹以龙
孔亚非, 曹以龙
(上海电力学院 电子与信息工程学院, 上海 200090)
基于DSP和ARM的电能质量监测系统
孔亚非, 曹以龙
(上海电力学院 电子与信息工程学院, 上海 200090)
研制了一种由数字信号处理(DSP)和嵌入式微处理器(ARM)双系统构成的电能质量监测系统,详细阐述了系统的软硬件设计.该系统利用DSP控制信号的同步实时采集和分析计算,采用嵌有Linux系统的ARM通过SPI实现与DSP的通信,获取电能质量的分析数据与原始数据并传输系统指令,采用大容量存储设备实现数据的本地存储,提供智能友好的交互界面和无线通信功能.实验测试结果表明,该系统实时性好、精度高、可扩展性强,满足各项指标要求.
电能质量; 无线通信; 数字信号处理; 嵌入式; Linux系统
电能作为一种广泛使用的能源,其需求量日益增加,由于电网中不对称性、冲击性、非线性负荷容量的不断增长,电能质量问题日益突出.同时,越来越多的敏感负载对电能质量有着更高的要求.如何提高和保证电能质量已经成为电力系统面临的重要问题.为了改善电能质量和制定相关的治理措施,电力部门需要对电能质量进行连续测量,使得开发和使用新型的高性能、适用性强的电能质量监测系统成为一种必然[1-2].
本文基于电能质量的国家标准,分析了目前国内外电能质量监测系统的现状[3],提出了一种基于数字信号处理(Digital Signal Processing,DSP)和嵌入式微处理器(Advanced RISE Machines,ARM)技术的电能质量监测系统.作为网络型电能质量监测与管理平台的一部分,该系统是一套可靠性高、测量精度高、适用范围广的电能质量实时监测装置,并在实验室微电网平台上得到了验证.
1 系统结构与功能
为满足电能质量监测的实时性等要求,本系统采用ARM+DSP双CPU的主从处理系统,其结构如图1所示.以DSP为核心的数据采集处理系统,负责对信号的实时采集,并针对基本电量(频率、电压/电流有效值、功率等)、谐波、波动及闪变等参数进行计算和分析,通过串行外设接口(Serial Peripheral Interface,SPI)完成与以ARM为核心的前置机系统的通信,实现采样、分析数据和命令的传输.前置机系统负责完成数据的存储和统计、人机交互、无线通信等.本监测设备具有多功能、小型化、便携式的特点,可安装于电网电力线路中或电网中某一节点,便于进行电能质量的实时监测,组成分布式网络型电能质量监测与管理平台.
图1 系统结构示意
2 系统的硬件设计
2.1 数据采集处理系统硬件设计
设计中,系统对三相电压/电流6路信号同时采样,一个工频周期内采样128个点,采样间隔为156.25 μs.数据采集处理系统选用TMS320F28335,是TI公司推出的一款浮点型数字信号处理器,最高主频为150 MHz,在已有的DSP基础上增加了浮点运算内核,可执行复杂的浮点运算,芯片内部集成了两个8通道的模数转换器(Analog-to-Digital Converter,ADC),采样转换时间可达80 ns,满足系统对实时性的需求.
A/D采样是数据采集处理系统的重要部分,系统三相的采样电压有效值为220 V,电流有效值为5 A,DSP28335的模数转换通道输入电压范围为0~3.3 V,需经调理电路和互感器将电网电压和电流信号转换为处理器能承受的小电压信号.以某一相的电压采样为例,电网电压需先经分压电路降压,后经用高精度电阻设计的有效抑制温漂的差分放大电路的电压调理电路,以获取小电压信号;电流采样选用高精度电流互感器,同时起到与主电路隔离的作用.上述电压调理电路如图2所示.
图2 电压调理电路示意
2.2 前置机系统硬件设计
前置机系统负责整个系统的管理与控制功能,需满足多任务、高效率、实时性等多方面要求.本文采用TI公司的ARM3358处理器集成模块,其内嵌Linux实时操作系统,支持多任务操作,处理器的频率高达1 GHz,以实现更高的效率和灵活性,并且配有独立的电源、复位和时钟管理模块,以达到降低功耗的目的.
前置机系统的硬件结构如图3所示.系统通过SPI接口实现与数据采集处理系统的通信,并外扩8 G的SD卡用于放置SQLite进行数据的存储.同时,配置可使系统直接连接到Internet公用数据网的无线网卡.ARM3358内部集成了液晶显示器(Liquid Crystal Display,LCD)控制器和触摸屏控制器,其中LCD控制器可以将内存中缓存的图形数据传输到外部的LCD驱动器中,实现数据显示功能;触摸屏控制器可以直接外接4/5/8线电阻屏,实现触摸功能.本文选择23.3 cm的TFT液晶屏,设计了42针转接板,其中4根触摸屏控制线,24根数据线,此外还包括电源线、地线,以及各种LCD控制线.
黑水虻幼虫在水产饲料方面也有较多的应用研究。胡俊茹等采用等氮等脂方法,将黑水虻幼虫粉按照不同的比例替代黄颡鱼幼鱼日粮中的鱼粉,结果发现:当替代量小于30%时,黄颡鱼幼鱼增重量与对照组无显著差异,而且血清中谷丙转氨酶、谷草转氨酶、尿素和三酰甘油的含量均得到一定程度的降低。林启训等为了代替鱼粉,将黑水虻幼虫粉用于泥鳅饲料中,研究发现,当添加9%~11%的黑水虻幼虫粉,泥鳅的摄食状态和成活率与对照组相近[17]。
图3 前置机系统的硬件结构
3 系统的软件设计
3.1 数据采集处理系统的软件设计
数据采集处理系统的软件设计使用模块化思想,将各个数据分析算法封装于子模块中,包括计算电压和电流的有效值、电压偏差、频率偏差,以及通过FFT变换得到的基波分量和各次谐波分量等.该模块计算出各次谐波分量的有效值、相位、含有率和谐波的总畸变率,并且利用快速傅里叶变换结果计算出功率、三相不平衡度和闪变等电能指标.软件设计总体流程如图4所示.
图4 数据采集处理系统的软件设计流程
主程序首先完成对系统的初始化,设定各种标志位以及状态寄存器等,进而执行各个功能子模块.为了消除采样不同步和周期测量误差对测量精度的影响,系统采用双同步坐标系的解耦软件锁相环来跟踪信号频率的变化,从而实时调整采样频率.锁相环产生的采样脉冲触发A/D采样,一个工频周期内采样128个点,每次转换完成后,DSP按照I/O空间译码地址读取A/D转换数据,进而进行数据分析.本文在对傅里叶变换的几种实现方法进行比较后,采用基8傅里叶变换,基本原理为:
设信号x(n)是长度为N的实序列,DFT[x(n)]=X(k),令X(k)=X,且:
(1)
式中:XR(k)——X(k)的实部;XI(k)——X(k)的虚部.
由离散傅里叶变换的定义可以得到:
(2)
于是得到:
(3)
(4)
(5)
由上述可知,离散傅里叶变换的计算中利用X(k)实部与虚部的性质可以减少近一半的计算量,从而降低了计算复杂度,并且系统在实现此算法时用加法运算代替了部分乘法运算,提高了运算效率,保证了系统的实时性.
3.2 前置机系统软件设计
前置机系统主要执行整个终端的管理和控制工作,需实现多任务实时调度功能,以及与监控中心的无线通信,因此前置机系统选用支持TCP/IP协议的Linux系统为软件开发平台.由于python的简洁性,且其标准库中有一专门用于SQLite数据库的模块,系统采用python语言混合C++语言实现各应用程序的开发,有利于提高开发效率[4-5].
前置机系统的软件从功能上主要分为两大部分:一是底层的硬件驱动程序,包括SPI,无线通讯和LCD的驱动;二是应用程序,主要通过Qt开发.软件的实现流程如图5所示.
图5 前置机系统软件实现流程
首先利用Qt Designer编写可视化界面,进而利用uic工具生成代码文件,同时使用跨平台的Qt集成开发环境进行其他应用程序的开发.其他应用程序的代码以子函数的方式插入uic生成的主函数中调用或者另创建线程实现,主要包括SPI通讯、无线通信、数据存储等.
3.2.1 Qt界面显示设计
人机交互界面是将电能质量数据以一个更加直观的形式展现,并提供所需的系统控制功能.本文利用Qt提供的开发工具Qt Designer,调用其包含的各标准部件,实现界面设计.程序中对象之间的协同操作利用信号和槽机制完成,实现多窗口之间的切换,并在对应的槽函数中实现数据的实时显示和人机交互等功能.如数据的实时显示,采用Python语言编写其槽函数,函数中通过引用数据库API,创建连接,获取游标从而实现对SQLite数据库的操作,提供实时显示的数据.人机交互界面提供基波电量、电能质量、越限事件、系统设置、监测数据管理5个功能菜单.其中,电能质量界面包括电压偏差、频率偏差、电压波动、谐波含有量、三相不平衡、电压短时闪变等,而系统设置需要管理人员输入正确的账号和密码才能进入,以确保系统的安全性.
3.2.2 基于Qt的SPI通信
前置机系统通过SPI 实现与数字信号处理系统的数据和信息交换.此系统中的SPI通信通过Qt开发,但是Qt中没有其专有的类,程序中通过QThread类创建多线程.在run函数中调用ioctl()函数,设置SPI的时钟极性和相位,以及每字的数据长度和最大总线速率,调用read()和write()函数来实现数据的读写,同时也实现了SPI通信程序和Qt中各种类函数的融合,程序的设计流程如图6所示.
图6 SPI程序设计流程
在通信中,本文自定义了通信协议,并使用循环冗余CRC校验方式以保证数据的正确性和完整性,作为主机的前置机系统通过控制SPICLK时钟来控制通信的完成,而需保证从机与主机时钟相位的一致.
3.2.3 无线通信的实现
前置机的无线通信模块实现了系统中监控终端与监控中心之间数据和命令的高效传输,本文在Linux操作系统下的无线通信通过Socket实现,采用UDP传输协议.为了确保数据传输的可靠性,融入了CRC16 和MD5校验算法,程序实现流程如图7所示.
图7 基于UDP协议的无线通信实现流程
其中使用python语言编程时用到的主要函数和类有:socket.socket(socket.AF_INET,socket.SOCK_DGRAM),函数返回一个socket类,第2参数表明连接方式为TCP或者UDP;Sockin.bind((‘local addr’,sockid)),端口监视函数,锁定本机端口,参数分别为本地IP地址和端口;Sockin.recvfrom(bufflen),接收函数,参数为缓冲区最大长度;Sockin.sendto(buff,((‘clientaddr’,sockid))),发送函数,第1个参数为要发送的字符串,第2个参数为目标的IP地址与端口;Sockin.close(),Socket的关闭函数.
4 结 语
本文所设计的由DSP和ARM双系统构成的电能质量监测系统高效稳定,能实时采集、处理监测数据,人机交互系统设计提供了良好的用户体验,无线通信设计实现了电能质量的远程监控,满足电能质量监测智能化、网络化的要求.同时,此系统的设计简便、高效,方便接入更多的监测点,具有较高的可扩展性,能满足电能质量管理平台监测数据海量化的需求.
[1] 林海雪.现代电能质量的基本问题[J].电网技术,2001,25(10):5-10.
[2] 张言权.基于嵌入式Linux的电能质量在线监测系统的研究[J].电力系统保护与控制,2009,37(7):71-75.
[3] 舒双宝,罗家融,王勤湧,等.基于DSP和ARM便携式电能质量监测系统的设计与实现[J].电力系统保护与控制,2010,38(24):185-189.
[4] 邹思铁.嵌入式Linux系统设计与应用[M].北京:清华大学出版社,2002:21-38.
[5] BLANCHETTE Jasmin.C++ GUI programming with Qt4[M].北京:电子工业出版社,2008:33-56.
(编辑 白林雪)
Power Quality Monitoring System Based on DSP and ARM
KONG Yafei, CAO Yilong
(SchoolofElectronicsandInformationEngineering,ShanghaiUniversityofElectricPower,Shanghai200090,China)
A monitoring system composed of the DSP and ARM dual system is developed,and the design of hardware and software is elaborated.This system uses the DSP to control the synchronous and real-time collection and analysis and calculation of signals,ARM embedded Linux system communicates with the DSP via SPI,to obtain the original data of power quality and transmit the instruction of system,and use the large-capacity storage device to store the local data,and provide the intelligent and friendly interface display and wireless communication capabilities.The test results show that the system has good real-time,high precision,strong expandability,and meet the requirements of indicators.
power quality; wireless communication; digtal sigal processing; advanced RISE machines; Linux system
10.3969/j.issn.1006-4729.2017.01.009
2016-03-16
孔亚非(1992-),女,在读硕士,山东曲阜人.主要研究方向为电力系统电能质量.E-mail:879273117@qq.com.
上海市科技创新行动计划地方院校能力建设项目(13160500900).
TM73
A
1006-4729(2017)01-0039-05