发明名称 一种新能源混合系统控制参数的优选方法
摘要 本发明公开了一种新能源混合系统控制参数的优选方法,用于在新能源混合系统中对PID控制参数进行优选。根据新能源混合系统建立模型,然后依据该仿真系统建立以PID控制器输入和输出参数为状态量的目标函数,运用本发明设计的优选方法求解目标函数得到最优PID控制参数。本发明设计的新能源混合系统控制参数的优选方法,采用一种新型启发式优化算法优化目标函数,能搜索到更优的目标函数值,得到的解代表更优的PID控制参数。更优的PID控制参数能使新能源混合系统频率偏差更小,调节速度更快,系统响应曲线更加光滑,系统调节品质更高。
申请公布号 CN105262145B 申请公布日期 2016.09.28
申请号 CN201510760557.X 申请日期 2015.11.10
申请人 华中科技大学 发明人 李超顺;汪赞斌;董伟;王文潇;魏巍;毛翼丰
分类号 H02J3/46(2006.01)I 主分类号 H02J3/46(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 曹葆青
主权项 一种新能源混合系统控制参数的优选方法,其特征在于,所述方法包括如下步骤:步骤(1):建立新能源混合系统的仿真模型,所述新能源混合系统包括风能发电系统、太阳能热发电系统、水电解槽、燃料电池、飞轮储能系统、电池储能系统、超级电容、柴油发电机和微型电力系统,其中风能发电系统和太阳能热发电系统整体出力的一部分通过驱动水电解槽产生氢气,再利用燃料电池将产生的氢气进行发电产生相对稳定的出力后注入微型电力系统,剩下的风能和太阳能出力直接注入微型电力系统;当系统注入功率和负荷出现偏差后,微型电力系统将产生频率偏移量,PID控制器根据频率偏移量产生调节控制信号,控制飞轮储能系统、电池储能系统、超级电容和柴油发电机工作,消除微型电力系统功率和负荷偏差;步骤(2):建立上述新能源混合系统的控制参数优化目标函数,以频率偏差Δf和控制器输出的控制量u为状态量,目标函数为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>min</mi><mi> </mi><mi>f</mi><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mo>&Integral;</mo><mn>0</mn><msub><mi>T</mi><mi>max</mi></msub></msubsup><mrow><mo>(</mo><msub><mi>w</mi><mn>1</mn></msub><msup><mrow><mo>(</mo><mrow><mi>&Delta;</mi><mi>f</mi></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msub><mi>w</mi><mn>2</mn></msub><msup><mrow><mo>(</mo><mrow><mi>u</mi><mo>-</mo><msub><mi>u</mi><mrow><mi>s</mi><mi>s</mi></mrow></msub></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mi>d</mi><mi>t</mi></mrow>]]></math><img file="FDA0000952572220000011.GIF" wi="837" he="95" /></maths>其中,优化变量X=[K<sub>P</sub>,K<sub>I</sub>,K<sub>D</sub>],K<sub>P</sub>、K<sub>I</sub>和K<sub>D</sub>分别为比例、积分和微分增益,Δf是随控制参数变化的新能源混合系统频率偏差,u是PID控制器输出;w<sub>1</sub>和w<sub>2</sub>是权重系数,T<sub>max</sub>为仿真总时间,u<sub>ss</sub>为稳态控制信号;步骤(3):运用启发式优化算法求解步骤(2)中的目标函数,获得最优控制参数;其中,所述步骤(3)具体包括如下子步骤:Step 1:算法初始化:设置算法参数,包括群体规模N、总迭代数T、个体随机搜索总数N<sub>l</sub>、淘汰幅度系数σ、跳跃阈值p;确定PID控制参数范围,K<sub>P</sub>∈[K<sub>P,min</sub>,K<sub>P,max</sub>],K<sub>I</sub>∈[K<sub>I,min</sub>,K<sub>I,max</sub>],K<sub>D</sub>∈[K<sub>D,min</sub>,K<sub>D,max</sub>],确定优化变量边界[B<sub>L</sub>,B<sub>U</sub>],B<sub>L</sub>=[K<sub>P,min</sub>,K<sub>I,min</sub>,K<sub>D,min</sub>],B<sub>U</sub>=[K<sub>P,max</sub>,K<sub>I,max</sub>,K<sub>D,max</sub>],K<sub>P,min</sub>,K<sub>P,max</sub>分别为比例控制系数的最小值和最大值,K<sub>I,min</sub>,K<sub>I,max</sub>分别为积分控制系数的最小值和最大值,K<sub>D,min</sub>,K<sub>D,max</sub>分别为微分控制系数的最小值和最大值,在此区间随机初始化群体中所有个体的位置向量,个体位置向量X<sub>i</sub>=[K<sub>P</sub>,K<sub>I</sub>,K<sub>D</sub>],i=1,...,N,代表一组控制参数;令当前迭代次数t=0;Step 2:计算各个个体的目标函数值<img file="FDA0000952572220000029.GIF" wi="533" he="75" />并寻找群体目标函数最小值,具有最小目标函数值的个体确定为当前最优个体X<sub>B</sub>(t);Step 3:对所有个体X<sub>i</sub>,i=1,...,N,进行个体随机搜索,计算惯性向量<img file="FDA0000952572220000021.GIF" wi="198" he="84" />所述步骤Step 3具体包括如下子步骤:Step 3.1:令个体搜索次数l=0;Step 3.2:观望一个位置<img file="FDA0000952572220000022.GIF" wi="192" he="71" />计算<img file="FDA0000952572220000023.GIF" wi="547" he="77" /><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&CenterDot;</mo><msub><mi>&epsiv;</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msub></mrow>]]></math><img file="FDA0000952572220000024.GIF" wi="573" he="79" /></maths>rand为(0,1)之间随机数,ε<sub>play</sub>为观望步长;Step 3.3:计算下一个当前位置<img file="FDA0000952572220000025.GIF" wi="164" he="71" /><maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>s</mi><mi>e</mi><mi>l</mi><mi>f</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&CenterDot;</mo><mfrac><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>&CenterDot;</mo><msub><mi>&epsiv;</mi><mrow><mi>s</mi><mi>t</mi><mi>e</mi><mi>p</mi></mrow></msub></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mi>f</mi><mrow><mo>(</mo><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mo>&lt;</mo><mi>f</mi><mrow><mo>(</mo><mrow><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>s</mi><mi>e</mi><mi>l</mi><mi>f</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mi>f</mi><mrow><mo>(</mo><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mi>f</mi><mrow><mo>(</mo><mrow><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000952572220000026.GIF" wi="1509" he="270" /></maths>rand为(0,1)之间随机数,ε<sub>step</sub>为惯性步长;Step 3.4:l=l+1,如果l&lt;N<sub>l</sub>,转至Step 3.2;否则,转至Step 4;Step 4:计算每个个体当前最优个体召唤向量<img file="FDA0000952572220000027.GIF" wi="379" he="79" /><maths num="0004" id="cmaths0004"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>b</mi><mi>w</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>X</mi><mi>B</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><mo>&CenterDot;</mo><msub><mi>&delta;</mi><mi>i</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&delta;</mi><mi>i</mi></msub><mo>=</mo><mo>|</mo><msub><mi>c</mi><mn>1</mn></msub><mo>&CenterDot;</mo><msub><mi>X</mi><mi>B</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000952572220000028.GIF" wi="486" he="174" /></maths>其中δ<sub>i</sub>为第i个个体与当前最优个体的距离向量,随机数c<sub>1</sub>=2·rand,c<sub>2</sub>=(2·rand‑1)(1‑t/T)为(0,1)之间随机数;Step 5:按照个体位置更新公式更新个体位置:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>X</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mn>2</mn><mo>&CenterDot;</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&CenterDot;</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>b</mi><mi>w</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&CenterDot;</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>s</mi><mi>e</mi><mi>l</mi><mi>f</mi></mrow></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000952572220000031.GIF" wi="870" he="79" /></maths>Step 6:判断个体是否需要被淘汰并重新初始化:Step 6.1:如果第i个个体满足公式则该个体被淘汰并重新初始化:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>F</mi><mi>i</mi><mi>t</mi></msubsup><mo>&gt;</mo><msubsup><mi>F</mi><mrow><mi>a</mi><mi>v</mi><mi>e</mi></mrow><mi>t</mi></msubsup><mo>+</mo><mi>&omega;</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>F</mi><mrow><mi>a</mi><mi>v</mi><mi>e</mi></mrow><mi>t</mi></msubsup><mo>-</mo><msubsup><mi>F</mi><mi>min</mi><mi>t</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>N</mi></mrow>]]></math><img file="FDA0000952572220000032.GIF" wi="813" he="86" /></maths>其中,<img file="FDA0000952572220000033.GIF" wi="86" he="77" />是t代种群所有个体目标函数值的平均值,<img file="FDA0000952572220000034.GIF" wi="86" he="79" />是最小的目标函数值,w是一个随迭代次数而线性递增的参数,<img file="FDA0000952572220000035.GIF" wi="360" he="111" />取值范围为[‑σ,σ];Step 6.2:被淘汰的个体初始化:X<sub>i</sub>=rand(1,D)×(B<sub>U</sub>‑B<sub>L</sub>)+B<sub>L</sub>其中,D为位置向量维数,D=3;Step 7:判断是否连续p代当前最优个体位置未发生移动,如果是,则认为种群灭亡,按照下式反演重构新的种群:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>X</mi><mi>i</mi></msub><mo>=</mo><msub><mi>X</mi><mi>B</mi></msub><mo>+</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&times;</mo><mfrac><msup><mi>R</mi><mn>2</mn></msup><msub><mi>&delta;</mi><mi>i</mi></msub></mfrac><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>N</mi></mrow>]]></math><img file="FDA0000952572220000036.GIF" wi="734" he="141" /></maths>其中R为反演半径,R=0.1·||B<sub>U</sub>‑B<sub>L</sub>||;rand为(0,1)之间随机数,p为跳跃阈值;Step 8:t=t+1,如果t&gt;T,算法结束,输出当前最优个体位置作为终解,当前最优个体位置即为最优控制参数向量;否则,转入Step 2。
地址 430074 湖北省武汉市洪山区珞喻路1037号