为了使风电场并网结构性能提高且经济损耗在可行范围内,将阻抗最小、经济最优相结合对风电场集电线路进行优化,建立目标函数求解.针对本文目标函数的求解,提出了基于遗传算法风电场集电线路结构的优化方法.仿真数据表明,通过遗传算法优化出的数据结果具有较好地准确性和参考性,且遗传算法的目标函数能被运用于多种风机台数的场合,所得的优化算法具有较好地实用性.
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
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
[1]汪惟源, 乔颖, 窦飞,等. 基于改进遗传算法的海上风电场集电系统拓扑优化[J]. 中国电力, 2019, 52(1):6.
部分理论引用网络文献,若有侵权联系博主删除。