Press "Enter" to skip to content

基于MATLAB的风力光伏发电模型模拟以及遗传算法求解混合发电系统最优配置

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

目录

 

一、理论基础

 

风力发电功率模型为:

 

 

2个风力发电功率模型

 

 

 

通过GA优化算法对比三个模型算出的结果。

 

二、案例背景

 

1.问题描述

 

由于化石燃料的消耗和污染特性,有必要寻找清洁能源以满足需求。人们正在关注风能和太阳能等可再生能源的使用,因为它们清洁、污染少。风力发电(WPG)和光伏发电(PVG)是在偏远和农村地区提供负荷的最有前景的技术,这些地区的公用事业线路由于地形原因安装不经济。提出了一种带有储能设备的独立混合风/光伏发电系统,该系统将有效地结合风能和太阳能的互补特性,以提高系统的可靠性并降低其成本。在混合动力系统中协调可再生能源、发电设备、储能装置和负载非常复杂,以经济可靠的方式获得电力对于混合动力系统的优化设计也非常重要。

 

2.思路流程

 

首先,通过matlab进行建模,然后通过遗传算法二进制编码求解混合发电系统配置优化问题。

 

三、部分MATLAB程序

 

遗传算法二进制编码求解混合发电系统配置优化问题

 

%***************遗传算法二进制编码求解混合发电系统配置优化问题
function [Apv,Aw,Cp,CT,LPSP,Pdump,Pdeficit,SOC,Iteration,BestJ,Bfi]=GASolveHybirdSystemSize(WindDataPV,SolarDataPVR,LoadDataPV,Apv_max,Aw_max,Cb_max)
%**************遗传参数设置
Size=200;%种群大小   
G=200;%迭代代数     
CodeL=10;%编码长度
%**************问题解约束空间
u1max=Apv_max;
u1min=0;
u2max=Aw_max;
u2min=0;
u3max=Cb_max;
u3min=0;
%**************初始化编码
E=round(rand(Size,3*CodeL));
%**************GA主程序
for k=1:1:G
k
Iteration(k)=k;
for s=1:1:Size
m=E(s,:);
y1=0;y2=0;y3=0;
%*******************解码
m1=m(1:1:CodeL);
for i=1:1:CodeL
   y1=y1+m1(i)*2^(i-1);
end
x1=(u1max-u1min)*y1/1023+u1min;
m2=m(CodeL+1:1:2*CodeL);
for i=1:1:CodeL
   y2=y2+m2(i)*2^(i-1);
end
x2=(u2max-u2min)*y2/1023+u2min;
m3=m(2*CodeL+1:1:3*CodeL);
for i=1:1:CodeL
   y3=y3+m3(i)*2^(i-1);
end
x3=(u3max-u3min)*y3/1023+u3min;
%******************适应度函数
[F(s),~,~,~,~,~]=GAFitnessFunction(x1,x2,x3,WindDataPV,SolarDataPVR,LoadDataPV);
end
Ji=1./F;
%*****************第一步:评估适应度
BestJ(k)=min(Ji);
fi=F;                          %适应度函数
[Oderfi,Indexfi]=sort(fi);     %按照适应度大小从小到大排序
Bestfi=Oderfi(Size);           %选取最佳适应度
BestS=E(Indexfi(Size),:);      %最佳基因序列
Bfi(k)=Bestfi;                 %记录最佳适应度值
%*****************第二步:选择和复制操作
   fi_sum=sum(fi);
   fi_Size=(Oderfi/fi_sum)*Size;
   fi_S=floor(fi_Size);        %选择适应度较好的基因个体
   
   kk=1;
   for i=1:1:Size
      for j=1:1:fi_S(i)        %选择和复制操作 
       TempE(kk,:)=E(Indexfi(i),:);  
         kk=kk+1;             
      end
   end
   
%*****************第三步:交叉操作
pc=0.60;%交叉概率
n=ceil(30*rand);
for i=1:2:(Size-1)
    temp=rand;
    if pc>temp                  %交叉条件
    for j=n:1:30
        TempE(i,j)=E(i+1,j);
        TempE(i+1,j)=E(i,j);
    end
    end
end
TempE(Size,:)=BestS;
E=TempE;
   
%*****************第三步:变异操作
pm=0.1;     %变异概率
   for i=1:1:Size
      for j=1:1:2*CodeL
         temp=rand;
         if pm>temp                %变异条件
            if TempE(i,j)==0
               TempE(i,j)=1;
            else
               TempE(i,j)=0;
            end
        end
      end
   end
   
%保证第30个基因个体是最佳基因序列
TempE(Size,:)=BestS;
E=TempE;
end
%**********************解码最佳基因序列对应的各个参数优化值
y1=0;y2=0;y3=0;
m1=BestS(1:1:CodeL);
for i=1:1:CodeL
   y1=y1+m1(i)*2^(i-1);
end
m2=BestS(CodeL+1:1:2*CodeL);
for i=1:1:CodeL
   y2=y2+m2(i)*2^(i-1);
end
m3=BestS(2*CodeL+1:1:3*CodeL);
for i=1:1:CodeL
   y3=y3+m3(i)*2^(i-1);
end
Apv=(u1max-u1min)*y1/1023+u1min;
Aw=(u2max-u2min)*y2/1023+u2min;
Cp=(u3max-u3min)*y3/1023+u3min;
%**********************混合发电系统最佳配置的性能参数输出
[~,LPSP,Pdump,Pdeficit,SOC,CT]=GAFitnessFunction(x1,x2,x3,WindDataPV,SolarDataPVR,LoadDataPV);

 

混合发电系统优化配置算法

 

%********混合发电系统优化配置算法
clc;
clear all;
close all;   
RandStream.setDefaultStream(RandStream('mt19937ar','seed',1));
%********优化参数约束空间
Apv_max=50;%单位为m2
Aw_max=120;%单位为m2
Cb_max=160;%单位为KWH
%********读取当地气候数据
[WindDataPV,SolarDataPVR,LoadDataPV]=ReadLocalClimaticData();
%***************遗传算法二进制编码求解混合发电系统配置优化问题
[Apv,Aw,Cb,CT,LPSP,Pdump,Pdeficit,SOC,Iteration,BestJ,Bfi]=GASolveHybirdSystemSize(WindDataPV,SolarDataPVR,LoadDataPV,Apv_max,Aw_max,Cb_max);
Apv,Aw,Cb,CT,LPSP

 

四、仿真结论分析

 

 

 

 

X坐标为风力发电机风轮扫过的面积

 

Y坐标为光伏组件的面积

 

Z 坐标为:LPSP(负荷失电率)

 

五、参考文献

 

[1]廖萍, 李兴源, 徐娇. 小型风力发电机模型及其接入系统研究[J]. 南方电网技术, 2008, 2(1):5.A02-25

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。