发明名称 基于群搜索算法的光伏电池参数辨识方法
摘要 本发明公开了一种基于群搜索的光伏电池参数辨识方法,用于辨识单级式光伏并网发电系统的光伏电池参数,包括以下步骤:获取光伏阵列输出电压和输出电流及光伏电池的输出电压和输出电流;搭建光伏电池机理模型,确定目标函数及需要辨识的参数;初始化模型参数,确定发现者、追随者和游荡者;更新发现者、追随者和游荡者的位置;计算新位置对应的目标函数值,重新分配发现者、追随者和游荡者;输出参数辨识结果。本发明通过游荡者的随机性及发现者的局部寻优,优化速度快,同时一直维持全局搜索,有效地解决了优化问题陷入局部最小值的问题,对于多模态高维非线性函数的优化问题有很明显的优势。
申请公布号 CN106169910A 申请公布日期 2016.11.30
申请号 CN201610571277.9 申请日期 2016.07.20
申请人 国网青海省电力公司;国网青海省电力公司电力科学研究院;华北电力大学(保定) 发明人 李春来;徐岩;高兆
分类号 H02S50/10(2014.01)I 主分类号 H02S50/10(2014.01)I
代理机构 北京科亿知识产权代理事务所(普通合伙) 11350 代理人 汤东凤
主权项 一种基于群搜索的光伏电池参数辨识方法,所述参数辨识方法用于辨识单级式光伏并网发电系统的光伏电池参数,所述光伏电池通过m串n并组成光伏阵列:其特征在于:包括以下步骤:步骤1:获取光伏阵列输出电压U<sub>L1</sub>和输出电流I<sub>L1</sub>及光伏电池的输出电压U<sub>L</sub>和输出电流I<sub>L</sub>,由以下具体分步骤组成:步骤1‑1:读取所述光伏阵列的输出电压U<sub>L1</sub>和输出电流I<sub>L1</sub>;步骤1‑2:所述光伏电池的输出电压为U<sub>L</sub>=U<sub>L1</sub>/m,输出电流为I<sub>L</sub>=I<sub>L1</sub>/n;步骤2:搭建光伏组件机理模型:<maths num="0001"><math><![CDATA[<mrow><msub><mi>I</mi><mi>L</mi></msub><mo>=</mo><msub><mi>I</mi><mrow><mi>p</mi><mi>h</mi><mo>.</mo><mi>r</mi><mi>e</mi><mi>f</mi></mrow></msub><mo>-</mo><msub><mi>I</mi><mrow><mi>o</mi><mo>.</mo><mi>r</mi><mi>e</mi><mi>f</mi></mrow></msub><mi>exp</mi><mo>{</mo><mo>&lsqb;</mo><mfrac><mrow><mi>q</mi><mrow><mo>(</mo><msub><mi>U</mi><mi>L</mi></msub><mo>+</mo><msub><mi>I</mi><mi>L</mi></msub><msub><mi>R</mi><mi>s</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>n</mi><mi>K</mi><mi>T</mi></mrow></mfrac><mo>&rsqb;</mo><mo>-</mo><mn>1</mn><mo>}</mo><mo>-</mo><mfrac><mrow><mo>(</mo><msub><mi>U</mi><mi>L</mi></msub><mo>+</mo><msub><mi>I</mi><mi>L</mi></msub><msub><mi>R</mi><mi>s</mi></msub><mo>)</mo></mrow><msub><mi>R</mi><mrow><mi>s</mi><mi>h</mi></mrow></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001054261700000011.GIF" wi="1384" he="143" /></maths>其中,U<sub>L</sub>、I<sub>L</sub>分别为输出电压和输出电流,I<sub>ph.ref</sub>为标准测试条件下的光生电流,I<sub>o.ref</sub>为标准测试条件下的二极管反向饱和电流,n为二极管品质因子,R<sub>s</sub>为串联电阻,R<sub>sh</sub>为并联电阻,T为电池的绝对温度,K为玻尔兹曼常数,K=1.380*10^(‑23),q为电子电荷,q=1.680*10^(‑19);步骤3:设置目标函数为适应度是均方根误差R<sub>MES</sub>;<maths num="0002"><math><![CDATA[<mrow><msub><mi>R</mi><mrow><mi>M</mi><mi>S</mi><mi>E</mi></mrow></msub><mo>=</mo><msqrt><mrow><mfrac><mn>1</mn><mi>N</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msup><mrow><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>U</mi><mi>L</mi></msub><mo>,</mo><msub><mi>I</mi><mi>L</mi></msub><mo>,</mo><mi>x</mi><mo>)</mo></mrow><mo>&rsqb;</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001054261700000012.GIF" wi="1588" he="112" /></maths>其中,x=[I<sub>ph.ref</sub>,I<sub>o.ref</sub>,R<sub>s</sub>,R<sub>sh</sub>,n]为所述光伏电池需要辨识的参数;N为测量数据的采样点的数目,适应度为:<maths num="0003"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>U</mi><mi>L</mi></msub><mo>,</mo><msub><mi>I</mi><mi>L</mi></msub><mo>,</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>I</mi><mo>-</mo><mrow><mo>(</mo><msub><mi>I</mi><mrow><mi>p</mi><mi>h</mi><mo>.</mo><mi>r</mi><mi>e</mi><mi>f</mi></mrow></msub><mo>-</mo><msub><mi>I</mi><mrow><mi>o</mi><mo>.</mo><mi>r</mi><mi>e</mi><mi>f</mi></mrow></msub><mi>exp</mi><mo>{</mo><mo>&lsqb;</mo><mfrac><mrow><mi>q</mi><mrow><mo>(</mo><msub><mi>U</mi><mi>L</mi></msub><mo>+</mo><msub><mi>I</mi><mi>L</mi></msub><msub><mi>R</mi><mi>s</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>n</mi><mi>K</mi><mi>T</mi></mrow></mfrac><mo>&rsqb;</mo><mo>-</mo><mn>1</mn><mo>}</mo><mo>-</mo><mfrac><mrow><mo>(</mo><msub><mi>U</mi><mi>L</mi></msub><mo>+</mo><msub><mi>I</mi><mi>L</mi></msub><msub><mi>R</mi><mi>s</mi></msub><mo>)</mo></mrow><msub><mi>R</mi><mrow><mi>s</mi><mi>h</mi></mrow></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001054261700000013.GIF" wi="1653" he="126" /></maths>其中,I为光伏阵列的实测输出电流;步骤4:初始化:设置群规模a、最大转移距离l<sub>max</sub>、最大转向角α<sub>max</sub>、最大迭代次数MAXGEN、发现者更新的最大尝试次数try_number;所有成员的初始位置{X<sub>i</sub>}、(i=1,2,...a)及其角度{ψ<sub>i</sub>}X<sub>i</sub>=(x<sub>1</sub>,x<sub>2</sub>,...,x<sub>a</sub>),ψ<sub>i</sub>=(ψ<sub>i1</sub>,ψ<sub>i2</sub>,...,ψ<sub>i(a‑1)</sub>),其中,x<sub>i</sub>为所述光伏电池需要辨识的参数;发现者更新次数为0;迭代次数为0;步骤5:计算各成员的目标函数值,选取目标函数值最小的成员作为发现者,并按照预设的比例随机选取非发现者成员的80%为追随者,其余的为游荡者;步骤6:对发现者、追随者和游荡者进行位置更新;由以下具体步骤组成:步骤6‑1:发现者的搜索行为;由以下具体分步骤组成:步骤6‑1‑1:发现者更新次数加1;发现者从当前位置开始搜索,然后在搜索空间中当前位置的前方、左侧、右侧分别进行扫描,在三个方向分别更新位置,然后计各自的适应度,把适应值更好的点作为新的发现者,三个方向分别按照如下公式更新:前方:<img file="FDA0001054261700000021.GIF" wi="1006" he="68" />右方:<img file="FDA0001054261700000022.GIF" wi="1011" he="63" />左方:<img file="FDA0001054261700000023.GIF" wi="1006" he="63" />其中,X<sup>k</sup><sub>p</sub>为第k次迭代中发现者的位置;r<sub>1</sub>是一个平均值为0,标准差为1的正态分布的随机数;r<sub>2</sub>是均匀分布在(0,1)的随机数;θ<sub>max</sub>为最大转移角度,均为标量;D<sub>p</sub><sup>k</sup>={D<sub>i</sub><sup>k</sup>}为搜索方向,D<sub>i</sub><sup>k</sup>=(d<sub>i1</sub><sup>k</sup>,d<sub>i2</sub><sup>k</sup>,...,d<sub>im</sub><sup>k</sup>),搜索方向为一个单位向量,由搜索角度计算而来,过程如下:<img file="FDA0001054261700000024.GIF" wi="974" he="111" /><img file="FDA0001054261700000025.GIF" wi="1085" he="138" /><img file="FDA0001054261700000026.GIF" wi="950" he="79" />若三个位置的适应度均未优于当前适应度,则按照下式转变扫描角度,重新随机取点;<img file="FDA0001054261700000027.GIF" wi="294" he="62" />步骤6‑1‑2:判断发现者更新次数是否等于try_number;如果是,转向步骤6‑1‑3;否则转向步骤6‑1‑1;步骤6‑1‑3:发现者的搜索角度更新为<img file="FDA0001054261700000028.GIF" wi="190" he="54" />步骤6‑1‑4:判断群成员位置是否超出设定取值区间,如果是,转向步骤6‑1‑5;否则转向步骤6‑2;步骤6‑1‑5:在搜索空间内随机初始化群成员的位置;步骤6‑2:追随者的位置更新如下式:<maths num="0004"><math><![CDATA[<mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>X</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><msub><mi>r</mi><mn>3</mn></msub><mrow><mo>(</mo><msubsup><mi>X</mi><mi>p</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>X</mi><mi>i</mi><mi>k</mi></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001054261700000031.GIF" wi="430" he="63" /></maths>其中,X<sub>i</sub><sup>k</sup>为第i个追随者在第k次迭代中的位置,r<sub>3</sub>为均匀分布在(0,1)的随机数;步骤6‑3:游荡者的位置更新如下:<img file="FDA0001054261700000032.GIF" wi="398" he="63" />其中,l<sub>w</sub>=α*r<sub>1</sub>l<sub>max</sub>,其中,r<sub>1</sub>是一个平均值为0,标准差为1的正态分布的随机数,α为迭代过程中游荡者的转向角;X<sub>w</sub><sup>k</sup>为第w个游荡者在第k次迭代中的位置;步骤7:计算群成员位置更新后的目标函数值R<sub>MES</sub>值;步骤8:判断迭代次数是否等于最大迭代次数MAXGEN,如果否转向步骤9,否则转入步骤10;步骤9:迭代次数加1;转向步骤5,步骤10:把发现者的位置作为电池参数的辨识结果输出。
地址 810008 青海省西宁市城西区胜利路89号