风电场调度优化基于改进遗传算法

风力发电最大功率跟踪

        风电机组是将风能转变为机械能的装置,风电机组将风能转变为机械能的大小与风速的3次方有关,其关系可用式(1-1)表示。

      风能利用系数与桨距角和叶尖速比之间的关系如式(1-2)所示:

      对于双馈风机(DFIG)而言,桨距角仅在风机启动阶段以及输入风速超过额定风速后进行调节,在来流风速处于切入风速与额定风速之间时,风电机组的桨距角固定为0,此时主要通过调节风轮转速,改变叶尖速比实现对风电机组的控制。这种情况下桨距角=0,风电机组的风能利用率只与叶尖速比有关 。在某一确定风速及转速下,风能利用系数可以达到最大值。因此,可以通过调节风电机组的转速,来获取确定风速下的最大风能利用系数。

改进遗传算法

        遗传算法通常要解决以下问题:确定编码方案,适应度函数标定,选择遗传操作方式及相关控制参数,停止准则确定等。相应的,为改进标准遗传算法的实际计算性能,很多学者的改进工作也是分别从参数编码、初始种群设定、适应度函数标定、遗传操作算子、控制参数的选择以及遗传算法的结构等方面提出的。其改进的基本途径概括起来主要有以下几个方面:

(1)改进遗传算法的组成成分或使用技术,如选用优化控制参数,适合问题特性的编码技术等;

(2)采用混合遗传算法(Hybrid Genetic Algorithm);

(3)采用动态自适应技术,在进化过程中调整算法控制参数和编码精度;

(4)采用非标准的遗传操作算子;

(5)采用并行算法。

      经证明,标准遗传算法在任何情况下(交叉概率、变异概率、任意初始化、任意交叉算子、任意适应度函数)都是不收敛的,即不能搜索到全局最优解;而通过改进的遗传算法,即在选择作用前(或后)保留当前最优解,则能保证收敛到全局最优解。

      风电场采用16台1.5MW的双馈风机,呈规则4×4分布的24MW风电场,风电场参数如所示。

风机台数

每台额定功率

机组间距

额定风速

叶片半径

风轮中心高度

16,台

1.5,MW

300,m

11,m/s

31.5,m

70,m

     风向角为0°,初始风速为10.5m/s时,以最大风功率追踪控制策略的各台风电机组输入风速如表3-2所示,各台风电机组输出功率如表3-3所示,其中各台风电机组的轴向诱导因子均为0.33。

第一台

第二台

第三台

第四台

线路1

1.3834,MW

1.3834,MW

1.3834,MW

1.3834,MW

线路2

0.3807,MW

0.3807,MW

0.3807,MW

0.3807,MW

线路3

0.2837,MW

0.2837,MW

0.2837,MW

0.2837,MW

线路4

0.2492,MW

0.2492,MW

0.2492,MW

0.2492,MW

合计(总功率)

9.1883,MW

        改进的遗传算法采用MATLAB遗传算法工具箱函数,引入代沟的概念,在选择之前保留父代种群中适应度较高的部分个体,舍弃掉的部分由子代中适应度较高的个体补全,完成重插入,具体比例由代沟值确定,由此确保了父代较好的个体能够保留下来,使算法最终可以收敛;放弃轮盘赌选择算法,使用随机遍历抽样(SUS),使选择具有零偏差。

第一台

第二台

第三台

第四台

线路1

1.1618,MW

1.1661,MW

1.1618,MW

1.1618,MW

线路2

0.5029,MW

0.4972,MW

0.4998,MW

0.4998,MW

线路3

0.5498,MW

0.5422,MW

0.5520,MW

0.5520,MW

线路4

0.6900,MW

0.6990,MW

0.6910,MW

0.6909,MW

合计(总功率)

11.6179,MW

       改进遗传算法优化后的风电场总功率为11.6179MW,与使用最大风功率追踪控制策略相比提升了2.4296MW,与标准遗传算法优化相比提升了1.4789MW,风电场整体输出功率提升26.44%。

 

function [v,B]=Ashad(x1,y1,x2,y2,v0,a)
D=63;Ct=4*a*(1-a);                           %%初始条件
rx=0.5*D+abs(x2-x1)*0.04;                    %尾流半径
v=v0*(1-((0.5*D/rx)^2)*(1-(1-Ct)^0.5));
y=((rx)^2-(0.5*D)^2-y1^2+y2^2)/(2*(y2-y1));
z=((0.5*D)^2-(y-y2)^2)^0.5;
d=abs(y2-y1);
A=((rx)^2)*acos((d^2+(rx)^2-(0.5*D)^2)/(2*d*rx))+((0.5*D)^2)*acos((d^2+(0.5*D)^2-(rx)^2)/(2*d*rx))-d*z;
B=A/(2*pi*(0.5*D)^2);                        %尾流遮挡面积与风轮面积之比
end


function v=wake_speed(x,y,v0,a,a0)                       %%计算一台风机风机前尾流风速
x=x-1;y=y-1;D=300;R=31.5;
X=x*D*cos(a)+y*D*sin(a);                                 %根据风向偏角进行坐标变换
Y=y*D*cos(a)-x*D*sin(a);
i=0;j=0;v2=0;
for m=1:4    
    for n=1:4                                            %循环计算每台风机的尾流影响
        k=i*D*cos(a)+j*D*sin(a);l=-i*D*sin(a)+j*D*cos(a);
        if (X-k) > 0                                     %判断两台风机上下游位置关系
            rx=R+(X-k)*0.04;
            if ((Y+R) < (l-rx)) || ((Y-R) > (l+rx))      %判断是否无尾流遮挡并计算
                v1=v0;
                b=0;
            else

v0=10.5;a=0;    %%初始风速风向
N=16;    %变量个数
MaxGen=400;    %最大遗传代数
NinD=200;    %种群规模
ChromLen=8;    %二进制编码长度
GGAP=0.9;    %代沟
FielD=[rep([ChromLen],[1,N]);rep([0;1/3],[1,N]);rep([1;0;1;1],[1,N])]; %建立区域描述器
Chrom=crtbp(NinD,N*ChromLen);    %创建初始种群
gen=0;
trace=zeros(MaxGen,2);tr1=zeros(MaxGen,2); tr2=zeros(MaxGen,2);tr3=zeros(MaxGen,2);tr4=zeros(MaxGen,2);   %跟踪初始值
x=bs2rv(Chrom,FielD);    %解码
ObjV=zeros(NinD,1);s=1;

for m=1:NinD
    [P,Pz,v]=Pmax(v0,a,x(s,:));
    ObjV(s)=Pz;
    s=s+1;
end    %计算初始种群的目标函数值
while gen < MaxGen,
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棕榈tree

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值