【优化布局】基于遗传算法实现风电场集电系统优化附matlab代码

1 内容介绍

为了使风电场并网结构性能提高且经济损耗在可行范围内,将阻抗最小、经济最优相结合对风电场集电线路进行优化,建立目标函数求解.针对本文目标函数的求解,提出了基于遗传算法风电场集电线路结构的优化方法.仿真数据表明,通过遗传算法优化出的数据结果具有较好地准确性和参考性,且遗传算法的目标函数能被运用于多种风机台数的场合,所得的优化算法具有较好地实用性.​

2 部分代码

clear

clc

tic

InitDATA;    %读入初始数据

%%%%%%%%%%%%%%基本参数设定%%%%%%%%%%%%

global Cable_Data %定义一个全局变量,电缆数据

global Turbine_Data %定义一个全局变量,风机数据(S,IN etc.)

global WT_XY %定义一个全局变量,风机坐标数据

global onshoresubxy%岸上变电站数据

WT_XY_SUB=[WT_XY;onshoresubxy]

minTour=8;

WT_num=length(WT_XY);%风机数量 8的倍数

WT_XY(:,3)=1:1:WT_num;%给风机标序号

WT_XY_SUB(:,3)=1:1:WT_num+1;

nclusters=round(WT_num/8);%8个风机为一串,得分串数

nbreaks=nclusters-1;%断点数

WT_cap=Turbine_Data(1,1);%风机容量

distance=[];%岸上变电站与各个风机距离向量

poproute=[];%分区内风机路径向量

poproute_break=[];%断点位置行向量

rte=[];

for i=1:WT_num

    distance(i)=sqrt((WT_XY (i,1)-onshoresubxy(1))^2+(WT_XY(i,2)-onshoresubxy(2))^2);

end

[~,disind]=sort(distance);%sort从小到大排列,disind保存距离远近序号

poproute=disind;%风机序列行向量,按距离远近排列

poproute_break=brk_pos(minTour,nbreaks,WT_num);

rng = [[1 poproute_break+1];[poproute_break WT_num]]'; %nclusters行2列矩阵,存储每个分串的风机在poproute中的起、止位置

       

 clr = [1 0 0; 0 0 1; 0.67 0 1; 0 1 0; 1 0.5 0;0.5 0 0;0 0.53 0;1 0.2 0];

if nclusters > 7

        clr= hsv(nclusters);

end

 for s = 1:nclusters

  rte = poproute([rng(s,1):rng(s,2) rng(s,1)]); %rte指向分串s内所有风机的序号

  plot(WT_XY(rte,1),WT_XY(rte,2),'.','Color',clr(s,:)); 

    hold on

 end

    hold off

poproute1=[];

poproute2=[];

for j=1:nclusters %选取不同分串内的风机

    if j==1 %第一个分串的风机

        poproute1(j,:)=poproute(1:poproute_break(j));

    elseif j<nclusters&&j>1 %第二个至倒数第二个分串的风机

        poproute1(j,:)=poproute(poproute_break(j-1)+1:poproute_break(j));

    else %最后一个分串的风机

        poproute1(j,:)=poproute(poproute_break(j-1)+1:length(poproute));

    end

end

poproute2=poproute1;

%以上正确

for h=1:nclusters       

a=WT_XY(poproute1(h,:),1)-onshoresubxy(1,1);%x坐标差

b=WT_XY(poproute1(h,:),2)-onshoresubxy(1,2);%y坐标差

wt_sub_ang=atan2(b,a);%角度列向量

[~,angind]=sort(wt_sub_ang);%按角度大小排列,angind为1,2,3,4,5,6,7,8

for k=1:minTour

  poproute1(h,k)=poproute2(h,angind(k,1));%每个分串风机路径按角度排列

  end

end

  for hh = 1:nclusters

      for ll = 1:minTour-1

      sege=[poproute1(hh,ll),poproute1(hh,ll+1)];%每段海缆的起、止风机序号

      plot(WT_XY(sege,1),WT_XY(sege,2),'*-','Color',clr(hh,:));%连接每串风机

      hold on  

      end 

  end

  

  for hhh=1:nclusters-1

   sege1=[poproute1(hhh,1),poproute1(hhh+1,1)];%每串首端相连

   sege2=[poproute1(hhh,minTour),poproute1(hhh+1,minTour)];%每串尾端相连

   plot(WT_XY(sege1,1),WT_XY(sege1,2),'*-','Color',clr(hhh,:));

    hold on

   plot(WT_XY(sege2,1),WT_XY(sege2,2),'*-','Color',clr(hhh,:));

    hold on

   plot(WT_XY(poproute1(1,1),1),WT_XY(poproute1(1,minTour),2),'*-','Color',clr(hhh,:));

    hold on

  

   plot(onshoresubxy(1,1),onshoresubxy(1,2),'o','Color',clr(hhh,:))

    hold on

  end

   sege3=[poproute1(1,1),57];%每段海缆的起、止风机序号

    plot(WT_XY_SUB(sege3,1),WT_XY_SUB(sege3,2),'*-','Color',clr(hhh,:));

    hold on

  sege4=[poproute1(1,minTour),57];%每段海缆的起、止风机序号

    plot(WT_XY_SUB(sege4,1),WT_XY_SUB(sege4,2),'*-','Color',clr(hhh,:));

    hold on

    hold off

  

  toc

  

    

3 运行结果

4 参考文献

[1]汪惟源, 乔颖, 窦飞,等. 基于改进遗传算法的海上风电场集电系统拓扑优化[J]. 中国电力, 2019, 52(1):6.

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值