通用光伏系统测试平台的设计
光伏系统是利用太阳电池组件和其他辅助设备将太阳能转换成电能并进行一定应用的系统。近来,各种新型的光伏系统被不断设计投产。为优化和提高系统性能和稳定性,工程师在设计这些系统的过程中需要额外设计系统测试方案对其性能和实际运行效果进行测试,如采集和记录充放电效率、运行功率、实时太阳能电池板功率等数据。不同的工程师在设计系统时若采用不同的数据测试方案,这将可能会导致项目管理混乱和引起不必要的重复设计,而实际上光伏应用系统有着许多的共性,测试过程中所需要的参数具有一定的重复性,因此可以设计一种具有一定扩展能力的通用光伏系统测试平台,测试常用光伏系统参数并兼容一些额外的参数和计算,以简化和统一测试标准,缩短系统设计周期。
1 系统基本结构和功能
图1是通用光伏系统测试平台的基本结构模型,光伏应用系统将通过一定的通信机制将测试参量发送给PC监控端。PC监控端通过良好的交互界面将所接收到的数据反馈给工程师。
一般光伏系统拓扑结构如图2所示,主要由四部分组成。一般光伏组件为太阳能电池板,储能组件为蓄电池、锂电池等储能设备;主控制器为单片机、DSP等控制芯片电路;功能组件根据不同的应用可以是LED照明灯、电机等,它是整个系统中主要的耗电部分。
在光伏系统的测试过程中,工程师通过了解各个部件的运行参数来获取系统运行状况。按照光伏应用系统的拓扑结构图,需要从各个组件中获取的基本测试参数有:光伏阵列端电压Vp和输出电流Ip,储能组件的端电压Vb和输入输出电流Ib,功能组件的输入电压Vf和输入电流If。
由于系统应用的不同,一些具体的设计实例需要添加额外的测试参量,如在有些系统中需要使用Buck和Boost等电路对光伏阵列的输出电压进行调节,需要额外测试变压之后的输出电压和输出电流。同时系统还需要能直接显示例如光伏阵列输入功率等参数计算结果,这些参数会由于系统的差异性不同而变化,因此,所设计的通用系统还需要有能力进行扩张并获取类似的测试参量。
使系统具有通用性的根本手段是使其有一套标准的数据交互协议和无需修改就可以查看各个系统以上所有参数信息的PC端用户交互界面。
2 数据交互协议
为了让通用测试平台能够应用于不同的光伏系统,需要制定一套通信传输协议规范上传的数据包格式,使监控界面程序能够正常读取和解析所有光伏系统上传的数据。
PC端监控程序和光伏应用系统需通过标准的数据包进行交互。一个完整的交互数据包如图3所示,由起始标志单元、命令单元、CRC校验单元、结束标志单元四部分组成。
交互包中各单元详细说明如下:
起始标志单元:1 B长度,表示一个完整数据包起始标志,固定ASCII字符‘X’(0x58)。
命令单元:由命令控制头和命令体两部分组成。命令控制头由协议版本号、总包数、包序号、命令编号、设备编号、命令体长度8个字段组成,共11 B长度。命令体的解析方法和实际长度由控制部分的"命令编号"字段和"命令体长度"确定。命令单元的组成格式见图4。
校验单元:针对协议中的"命令单元"进行校验(从"命令单元"的第一个字节计算到最后一个字节),采用CCITT推荐的16位的X16+X12+X5+1(0x1021),生成2 B的CRC校验和(低字节在前,高字节在后)。
结束标志单元:1 B长度,表示一个完整数据包(分组)起始标志,固定为ASCII字符‘X’(0x58)。
命令编号:命令的惟一标识详见表1。编号0x10~0x15表示的是基本的测试参数,0x20~0xFF作为扩展的命令编号,用来进行编号额外的测试参数,其中0x58已用作起始和结束标志,所以0x58不参与作为扩展命令的使用。
设备编号:所测试光伏应用系统的惟一标识。低字节在前,高字节在后。例如编号为0x12345678的系统,4 B移动电源编号排列顺序为:0x78,0x56,0x34,0x12。设备未使用前,设备编号统一默认为0。
总包数:如果一条命令需要分多包发送,该字段表示对应命令需要发送的总包数,取值范围为:1~255;
包序号:当前包的序号,取值范围由1至总包数;
命令体长度:命令体字段的实际长度(以字节为单位)。规定0x10到0x15的基本测试参数的命令体长度为4 B,其他的扩展参数的命令体长度视具体情况而定;
命令数据:长度、解析方式由命令控制头的"命令体长度"和"命令编号"确定。
3 PC监控端软件的设计
PC监控端软件主要由数据接收模块、数据分析模块、数据存储模块、显示模块组成。它的结构如图5所示。
图中,数据接收模块通过串口、网络设备等通信组件接收光伏系统传送上来的数据流,通过分析是否存在数据包起始和结束标志,将数据包从中分离出来,并以队列形式放入内存缓冲区中。
内存缓冲区中维护着两个数据队列,这两个队列轮流负责存储数据和被读取分析的工作。当程序刚开始执行的时候,两队列为空,数据接收模块先往其中的一个队列存入数据包。当达到队列所能存储的数据包最大个数值时,认定该队列已满,并将该队列送入数据分析模块,由数据分析模块读取和分析队列数据包。同时数据接收模块获取另一个队列地址,并将数据包存入该队列中,当该队列存满时,无论数据分析模块是否已经分析完,程序应释放分析模块占用队列中的数据包,并将空队列提供给接收模块,而将新的满队列提供给分析模块进行分析,这样可以让数据得到及时更新,使主程序可以尽快地获取光伏系统的测试参数。
- 基于某型数据存储压力仪的图形用户界面开发(12-02)
- 数据流盘高速存储读取技术最新进展(07-08)
- 数字示波器使用必须注意的问题(11-09)
- 实时飞行试验振动数据分析系统(10-16)
- LabVIEW 2010数据分析及其报告(01-18)
- 基于虚拟仪器的多通道数据分析系统设计(07-06)