APP下载

基于变步长萤火虫群优化算法的光伏系统容量优化设计

2016-10-13张晓芳

电气自动化 2016年1期
关键词:萤火虫步长蓄电池

张晓芳

(苏州健雄职业技术学院 电气工程学院,江苏 太仓 215411)



基于变步长萤火虫群优化算法的光伏系统容量优化设计

张晓芳

(苏州健雄职业技术学院 电气工程学院,江苏太仓215411)

通过C++builder设计了一款独立光伏系统容量计算软件。通过变步长自适应萤火虫算法确保蓄电池用量和光伏方阵发电量二者相互匹配。变步长自适应萤火虫算法根据搜索成功与失败改进步长,易收敛、求解精度高

变步长萤火虫群优化(CSGSO);光伏系统容量计算;蓄电池容量;光伏方阵发电量;C++ Builder

0 引 言

随着能源紧缺和环境污染的问题日益严重,人们越来越寻求使用清洁能源。光伏发电作为新能源越来越受到人们的重视。为提高计算的准确度,可采用专业的软件来辅助计算。常用的光伏系统容量计算软件主要有PV*SOL、RETSCREEN等。但这些软件存在以下缺点,1) 对于中国的气象资料不够详细,只有几个城市的气象资料,这样计算结果就不精确;2) 未进行优化计算,未选择最佳倾角,无法使蓄电池容量和光伏列阵形成最佳组合。为了使软件更贴合当地实际气象信息,用C++builder开发系统设计的软件—独立光伏系统容量设计及优化软件[1-4]。此款软件使用等步长迭代法使得蓄电池用量和光伏方阵发电量二者相互匹配,迭代次数多,计算时间长,若步长选择不合适会引起不收敛,陷入死循环。如何采用一种自适应变步长优化算法以提高精度,并确保软件收敛,成为光伏系统容量设计软件的主要任务[5-7]。

1 等步长光伏系统容量设计算法

光伏容量设计软件包含基本信息界面、优化信息界面和经济效益分析界面。基本信息界面,输入“辐射量及倾角数据”,计算得出最佳倾角情况及各月倾斜面上的日平均辐射量。在优化信息界面,对容量进行优化确定太阳能电池组件功率及蓄电池容量。在经济效益分析界面,计算光伏系统偿还时间和减排二氧化碳能力,以此来判断此光伏系统是否可建。在优化界面,使用等步长迭代法使得蓄电池用量和光伏方阵发电量二者相互匹配。采用等步长进行优化计算其步骤如下:

(1) 设定一个等步长sj;

(2) 计算各月最佳倾角下的辐射量并据此估算工作电流Iopt;

(3) 计算各月太阳能组件功率及蓄电池容量及盈亏;并计算累计盈亏与负载日平均耗电量比值与维持天数的差值精度t0=Qks/QL-StrToFloat(LabeledEdit3->Text));

(4) 判断t0是否满足要求,若是则结束,否则进入步骤(5);

(5)Iopt=Iopt+sj,转步骤(3)进行计算。

采用等步长方法迭代次数多,计算时间长,若步长选择得不合适会引起不收敛。

2 CSGSO算法在光伏系统容量设计中的应用

2.1CSGSO算法的容量设计思路

为提高精度和收敛度,我们采用变步长的萤火虫群优化算法。萤火虫群优化(Glowworm Swarm Optimization,GSO)算法来提高收敛度。GSO算法[8]是印度学者Krishnanand和Ghose于2005年提出的一种新型群智能优化算法,GSO算法不需要任何记忆,梯度自由和不依赖于任何全局信息等优点。但算法在运行后期存在求解精度不高等缺陷[9-11]。在此基础上,我们根据萤火虫群搜索情况调整步长,搜索成功时,采用sj=(1.3+0.7cos(zeta))*sj,加大步长搜索;搜索失败,采用sj=sj/(2- cos(zeta)),减小步长搜索;改变步长后与期望值误差作为萤火虫群迭代位置来更新zeta,zeta= arcos(abs((t2-t1)·(t1-t0))/(abs(t2-t1)·abs(t1-t0))),从而不断更新步长,提高收敛精度和精确度。其设计步骤如下:

(1) 先设定zeta=0,设定一个步长sj;

(2) 计算各月最佳倾角下的辐射量并据此估算工作电流Iopt;

(3) 计算各月太阳能组件功率及蓄电池容量及盈亏;并计算累计盈亏与负载日平均耗电量比值与维持天数的差值精度t0=Qks/QL-StrToFloat(LabeledEdit3->Text));

(4) 判断t0是否满足要求,若是则结束,否则进入步骤(5);

(5)Iopt=Iopt+sj,根据步骤3进行计算,此时t1=Qks/QL-StrToFloat(LabeledEdit3->Text));

(6) 判断|t1|<|t0|,若是表明搜索方向正确,sj=(1.3+0.7cos(zeta) )*sj;否则表明搜索方向不正确,步长改为sj=sj/(2- cos(zeta));

(7) 进入步骤(3),此时t2=Qks/QL-StrToFloat(LabeledEdit3->Text));

(8) 重新更新(zeta),(zeta)= arcos(abs((t2-t1)·(t1-t0))/(abs(t2-t1)·abs(t1-t0)))

(9) 设t0=t2,进入步骤(4)。

2.2光伏系统容量设计的CSGSO算法程序代码

按照程序设计步骤,采用CSGSO算法计算工作电流的程序如下:

char t0,t1,t2;

char sj=0.001;//设定步长变量,先设定一数值

char zeta=0;

while(fabs(Qks/QL-StrToFloat(LabeledEdit3->Text))>0.001)

{

t0= abs(Qks/QL-StrToFloat(LabeledEdit3->Text));

Iopt=Iopt+Sj;// 变步长

Qks=0;

for(i=0;i<12;i++)

{Qfz[i]=Iopt*month[i]*ffsh->hh[i]*anta1*anta2;

QLL[i]=QL*month[i];

QQ[i]= Qfz[i]-QLL[i];

if(Qfz[i]

{

Qks=Qks+fabs(QQ[i]);

}

yph->Qfzxs[i]=FloatToStr(Qfz[i]);

yph->QLLxs[i]=FloatToStr(QLL[i]);

yph->QQxs[i]=FloatToStr(QQ[i]);

}

t1= abs(Qks/QL-StrToFloat(LabeledEdit3->Text));

if(t1

{sj=(1.3+0.7cosθ(zeta))*sj;}//搜索方向正确,变步长

else

{sj=sj/(2- cos(zeta))}//搜索方向不正确,变步长

Iopt=Iopt+Sj;//重置计算电流

Qks=0;

for(i=0;i<12;i++)

{

Qfz[i]=Iopt*month[i]*ffsh->hh[i]*anta1*anta2;

QLL[i]=QL*month[i];

QQ[i]= Qfz[i]-QLL[i];

if(Qfz[i]

{

Qks=Qks+fabs(QQ[i]);

}

yph->Qfzxs[i]=FloatToStr(Qfz[i]);

yph->QLLxs[i]=FloatToStr(QLL[i]);

yph->QQxs[i]=FloatToStr(QQ[i]);

}

t2= abs(Qks/QL-StrToFloat(LabeledEdit3->Text));

zeta= arcos(abs((t2-t1)·(t1-t0))/(abs(t2-t1)·abs(t1-t0)))//重新更新zeta

}

3 算例分析

为某地区(北纬30°,海拔300 m)设计一座全自动无人指导的彩色电视差转站所用的太阳能电源,其工作条件如下:耗电量为15 Ah,蓄电池维持天数为5天,放电深度为80%。要求蓄电池和方阵达到最佳匹配,累计盈亏与负载日平均耗电量比值与维持天数的差值精度达到0.001。

图1 日平均辐射量输入界面

图2 基本信息计算结果

在基本界面上点击“导入”按键,即可进入辐射量界面,如图1所示,输入其地区各月水平面上的日平均辐射总量、直接辐射量、散射辐射量和各月代表性一天的日期序号,“计算”得出在最佳倾角情况下,各月倾斜面上的日平均辐射量,如图2所示。

图3 优化信息计算结果

点击“优化”,进入优化界面。可优化计算获得蓄电池容量和方阵容量,此时它们达到最佳匹配程度,调整精度为0.000 7,满足误差0.001要求。点击“各月明细”可查看将显示各月光伏列阵和蓄电池为负载提供的能量明细。点击“经济效益分析”进入经济效益分析界面,可查看光伏系统设计是否合理如图3所示。

现将等步长和CSGSO变步长算法分别进行光伏系统容量设计,其计算结果对比如表1所示。

表1 计算结果对比分析

4 结束语

试验表明,该算法可以有效改进原光伏容量设计软件不收敛和求解精度不高的缺点,原来在0.01等步长求解情况下,精度为0.1,迭代次数多,收敛慢,在等步长情况下,精度改为0.01,系统则进入死循环。采用CSGSO算法后,精度可达到0.001,收敛速度快、求解精度高,使得光伏系统容量计算结果更精确,为光伏系统设计提供了更好的理论参考。

[ 1 ] 张晓芳. 基于C++Builder的独立光伏系统容量优化设计[J]. 苏州市职业大学学报, 2012, 23(1):24-26.

[ 2 ] 杨金焕. 固定式光伏方阵最佳倾角的分析[J]. 太阳能学报, 1992, 13(1): 86-926.

[ 3 ] 沈辉. 太阳能光伏发电技术[M]. 北京: 化学工业出版社, 2009.

[ 4 ] 杨宗志. C++Builder数据库程序设计[M]. 北京: 清华大学出版社, 2001.

[ 5 ] 李劲彬,陈隽. 风光互补可再生能源发电的综合效益优化研究 [J]. 电气自动化, 2013,35(5):24-26.

[ 6 ] 李劲彬.李元林.吴明. 可持续能源发电系统中储能系统的容量评估计算[J]. 陕西电力, 2012,40(11):35-37.

[ 7 ] 吴云亮,孙元章,徐箭,等. 基于饱和控制理论的储能装置容量配置方法[J]. 中国电机工程学报, 2011,27(22):32-39.

[ 8 ] 黄正新. 变步长自适应萤火虫群多模态函数优化算法[J]. 计算机工程与应用, 2012, 48(8): 43-47.

[ 9 ] 吴斌, 崔志勇, 倪卫红. 具有混合群智能行为的萤火虫群优化算法研究[J]. 计算机科学, 2012,39(5):198-200.

[10] 咏梅,周永权,姚祥光. 基于追尾行为的改进型人工萤火虫群算法[J].计算机科学,2011,38(3):248-251.

[11] 马小雨.高继勋. 具有全局收敛性的改进萤火虫优化算法 [J]. 科学技术与工程, 2013,13(11):178-181.

CSGSO-based Optimized Design of the Capacity of the Photovoltaic System

ZHANG Xiao-fang

(College of Electrical Engineering, Suzhou Chien-shiung Vocational Technical Institute, Taichang Jiangsu 215411, China)

A software based on C++ Builder is proposed for the capacity calculation of a stand-alone photovoltaic system. CSGSO algorithm is used to ensure that the capacity of the battery and the generating capacity of the photovoltaic array should match each other. The step is improved, depending on the success/failure of the search. The CSGSO algorithm has the advantages of easy convergence and high precision.

CSGSO; capacity calculation of photovoltaic systems; battery capacity; generating capacity of the photovoltaic array; C++ Builder

江苏省现代教育技术研究2015年度课题(2015-R-41967);2015年太仓市重点研发计划(产业前瞻与共性关键技术)项目:主动配电网下间歇式能源消纳监控装置与控制策略设计

10.3969/j.issn.1000-3886.2016.01.012

TP311.11;TM615

A

1000-3886(2016)01-0037-02

张晓芳(1980-),女,江苏无锡人 ,讲师,专业:智能控制。

定稿日期: 2015-06-04

猜你喜欢

萤火虫步长蓄电池
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于随机森林回归的智能手机用步长估计模型
基于Armijo搜索步长的几种共轭梯度法的分析对比
萤火虫
萤火虫
聊聊蓄电池的那点事儿(1) 汽车蓄电池的前世
蓄电池去哪儿了
蓄电池去哪儿了?VOL12.雷克萨斯RX450h
基于动态步长的无人机三维实时航迹规划
蓄电池去哪儿了?