25号 选址定容

影响风电接入的因素:线路过载问题和支路潮流

选址定容:风机接在哪里,接入多少容量的

33节点KW   14节点兆瓦

  其中变量是:

代码块 1:求得最佳接入节点,接入风电场容量为325MW

  1. 代码块 1:

    • 初始化风电场容量和相应的无功功率。
    • 遍历每个节点(1到33),将风电场接入到每个节点后运行潮流计算。
    • 计算每个节点的网损和平均电压。
    • 找出接入风电场容量为325MW时网损最小的节点,以及网损与电压均值比值最小的节点。
%%%01求得最佳接入节点,接入风电场 容量为325MW
%%%02找到14节点中那个节点可以接纳最大的风电场容量,其值为多少?(找到每个节点的最大风电场接入容量)
%%%01求得最佳接入节点,接入风电场 容量为325MW
clear all
close all
clc
warning off
Pwind=325;
Qwind=Pwind*tan(acos(0.90));
% P_bloss=[];

Vot=[];P_bloss=[];VV=[];%初始化
for i=1:33
mpc = case33bw;
mpc.bus(i,3:4)=mpc.bus(i,3:4)-[Pwind,-Qwind];
OPT = mpoption('verbose', 0,  'out.all', 0);
 %当 verbose 设置为 0 时,表示程序在运行时不输出任何详细信息。
 %当 out.all 设置为 0 时,表示不输出任何计算结果。
results=runpf(mpc,OPT); %%一次算完后覆盖掉,重新计算
%%若没有则会出现,2节点接入325的同时,1节点也接入325
if results.success==1
P_bloss(i,1)=sum(results.branch(:,14)+results.branch(:,16));%网损
%P_bloss(i,1)=results.branch(,14)+results.branch(:,16);支路线损
Vot(i,1)=sum(results.bus(:,8)')/33;
VV=[VV,results.bus(:,8)];
% figure
% mesh(VV)
%对于电压来说  1-14节点电压情况,可以探究谁的电压质量最好,
%%平均电压最高最好;电压越线次数
%对于损耗来说要计算整体的网损
end
end
%%%01找到最小网损值
[m n] = min(P_bloss)
%它是所有节点(从1到33)中,接入风电场容量为325MW时,产生的最小总网损值
%最小网损值的节点编号
%%02找到电压均值
%%03构建综合指标
[ff,Idex]=min(P_bloss./Vot)
%%%%ff: 数组 P_bloss./Vot 中的最小值(即网损与电压均值比值的最小值)。
%%%%Idex: 对应最小值的索引位置(即比值最小的节点编号)。
%%%最好电压搞一个归一化的问题

代码块 2:找到14节点中可以接纳最大风电场容量的节点

  1. 代码块 2:

    • 逐步增加风电场容量(从0到10000 MW,以5 MW为步长)。
    • 对每个容量值,检查14个节点是否可以接入,并判断电压是否越线(低于0.95 p.u.)。
    • 输出每个节点可以接纳的最大风电场容量。
%%%02找到14节点中那个节点可以接纳最大的风电场容量,其值为多少?
%%考虑电压指标+判断支路潮流(电压越线前,支路潮流是否越线)
% clear all
% close all
% clc
warning off
Pwind=0:5:10000;
Qwind=Pwind*tan(acos(0.90));

for i=1:14

    for num=1:length(Pwind)
        mpc = case33bw;
        mpc.bus(i,3:4)=mpc.bus(i,3:4)-[Pwind(num),-Qwind(num)];
        OPT = mpoption('verbose', 0,  'out.all', 0);
        results=runpf(mpc,OPT);
        P_br = max(abs(results.branch(:, 14)), abs(results.branch(:, 16)));
        if min(results.bus(:, 8)) < 0.95 | max(P_br) > 200
            
            disp([num2str(i),'节点最大接入风电功率值为',num2str(Pwind(num))])
            % Pwind(num)
            % disp(Pwind(num))
            break;
        end
        
        mpc=case33;
    end

end

画电压图像,系统最低电压曲线

%%%01求得最佳接入节点,接入风电场 容量为325MW
%%%02找到14节点中那个节点可以接纳最大的风电场容量,其值为多少?(找到每个节点的最大风电场接入容量)
%%%01求得最佳接入节点,接入风电场 容量为325MW
clear all
close all
clc
warning off
Pwind=1;
Qwind=Pwind*tan(acos(0.90));
% P_bloss=[];
 
Vot=[];P_bloss=[];VV=[];VVmin=[];%初始化
for i=1:33
mpc = case33bw;
mpc.bus(i,3:4)=mpc.bus(i,3:4)-[Pwind,-Qwind];
OPT = mpoption('verbose', 0,  'out.all', 0);
 %当 verbose 设置为 0 时,表示程序在运行时不输出任何详细信息。
 %当 out.all 设置为 0 时,表示不输出任何计算结果。
results=runpf(mpc,OPT); %%一次算完后覆盖掉,重新计算
%%若没有则会出现,2节点接入325的同时,1节点也接入325
if results.success==1
P_bloss(i,1)=sum(results.branch(:,14)+results.branch(:,16));%网损
%P_bloss(i,1)=results.branch(,14)+results.branch(:,16);支路线损
Vot(i,1)=sum(results.bus(:,8)')/33;
VV=[VV,results.bus(:,8)];
VVmin=[VVmin,min(results.bus(:,8))];

%对于电压来说  1-14节点电压情况,可以探究谁的电压质量最好,
%%平均电压最高最好;电压越线次数
%对于损耗来说要计算整体的网损
end
end
%%%01找到最小网损值
[m n] = min(P_bloss)
%它是所有节点(从1到33)中,接入风电场容量为325MW时,产生的最小总网损值
%最小网损值的节点编号
%%02找到电压均值
%%03构建综合指标
[ff,Idex]=min(P_bloss./Vot)
figure
plot(Vot,'k-o')
figure
plot(VV,'k-o')
figure
mesh(VV)
figure
plot(VVmin,'k-o')
%%%%ff: 数组 P_bloss./Vot 中的最小值(即网损与电压均值比值的最小值)。
%%%%Idex: 对应最小值的索引位置(即比值最小的节点编号)。
%%%最好电压搞一个归一化的问题
 

选址定容与智能算法结合:

首先确定目标函数,约束条件,适应度函数和目标函数值的趋势相同

选址定容目的:做规划

《基于免疫粒子群的配电网分布式电源选址定容问题》

相同容量接入不同节点(三个节点同时接入DG)

代码:

%%%01求得最佳接入节点,接入风电场 容量为325MW
%%%02找到14节点中那个节点可以接纳最大的风电场容量,其值为多少?(找到每个节点的最大风电场接入容量)
%%%01求得最佳接入节点,接入风电场 容量为325MW
clear all
close all
clc
warning off
Pwind=325;
Qwind=Pwind*tan(acos(0.90));
% P_bloss=[];
Pdg = zeros(33, 3);
Pdg([2 3 4], 1) = [50; 50; 50];
Pdg([9 10 11], 2) = [50; 50; 50];
Pdg([15 16 17], 3) = [50; 50; 50];

Vot=zeros(3,33);P_bloss=[];VV=[];%初始化
for i=1:3
mpc = case33bw;
%mpc.bus(i,3:4)=mpc.bus(i,3:4)-[Pwind,-Qwind];和节点没有关系了
mpc.bus(:,3:4)=mpc.bus(:,3:4)-[Pdg(:,i),-Pdg(:,i)*tan(acos(0.90 ))];
OPT = mpoption('verbose', 0,  'out.all', 0);
 %当 verbose 设置为 0 时,表示程序在运行时不输出任何详细信息。
 %当 out.all 设置为 0 时,表示不输出任何计算结果。
results=runpf(mpc,OPT); %%一次算完后覆盖掉,重新计算
%%若没有则会出现,2节点接入325的同时,1节点也接入325
if results.success==1
P_bloss(i,1)=sum(results.branch(:,14)+results.branch(:,16));%网损
%P_bloss(i,1)=results.branch(,14)+results.branch(:,16);支路线损
Vot(i,: )=(results.bus(:,8)');%%对比电压即可不需要加和
VV=[VV,results.bus(:,8)];
% figure
% mesh(VV)
%对于电压来说  1-14节点电压情况,可以探究谁的电压质量最好,
%%平均电压最高最好;电压越线次数
%对于损耗来说要计算整体的网损
end
end
%%%01找到最小网损值
[m n] = min(P_bloss)
%它是所有节点(从1到33)中,接入风电场容量为325MW时,产生的最小总网损值
%最小网损值的节点编号
%%02找到电压均值
%%03构建综合指标
[ff,Idex]=min(P_bloss./Vot)
%%%%ff: 数组 P_bloss./Vot 中的最小值(即网损与电压均值比值的最小值)。
%%%%Idex: 对应最小值的索引位置(即比值最小的节点编号)。
%%%最好电压搞一个归一化的问题
figure
plot(Vot, '-o')
legend('方案1', '方案2', '方案3')

figure
plot(VV')

%%%02找到14节点中那个节点可以接纳最大的风电场容量,其值为多少?
%%考虑电压指标+判断支路潮流(电压越线前,支路潮流是否越线)
% clear all
% close all
% clc
warning off
Pwind=0:5:10000;
Qwind=Pwind*tan(acos(0.90));

for i=1:14

    for num=1:length(Pwind)
        mpc = case33bw;
        mpc.bus(i,3:4)=mpc.bus(i,3:4)-[Pwind(num),-Qwind(num)];
        OPT = mpoption('verbose', 0,  'out.all', 0);
        results=runpf(mpc,OPT);
        if min(results.bus(:,8))<0.95
            
            disp([num2str(i),'节点最大接入风电功率值为',num2str(Pwind(num))])
            % Pwind(num)
            % disp(Pwind(num))
            break;
        end
        
        mpc=case33;
    end

end
 

相同节点接入不同容量

33节点默认转化为MW

代码:不同位置接入相同容量

%%%01求得最佳接入节点,接入风电场 容量为325MW
%%%02找到14节点中那个节点可以接纳最大的风电场容量,其值为多少?(找到每个节点的最大风电场接入容量)
%%%01求得最佳接入节点,接入风电场 容量为325MW
clear all
close all
clc
warning off
Pwind=50;
Qwind=Pwind*tan(acos(0.90));
Pdg=zeros(33,3);
Pdg([2 3 4],1)=[50,50,50];%50kW
Pdg([9 10 11],2)=[50,50,50];
Pdg([15 16 17],3)=[50,50,50];
 
Vot = zeros(33, 3); ;P_bloss=[];VV=[];%初始化
for i=1:3
mpc = case33bw;
mpc.bus(:,3:4)=mpc.bus(:,3:4)-0.001*[Pdg(:,i),-Pdg(:,i)*tan(acos(0.90))];
%将单位转化为MW   节点33默认是MW
OPT = mpoption('verbose', 0, 'out.all', 0);
 %当 verbose 设置为 0 时,表示程序在运行时不输出任何详细信息。
 %当 out.all 设置为 0 时,表示不输出任何计算结果。
results=runpf(mpc,OPT); %%一次算完后覆盖掉,重新计算
%%若没有则会出现,2节点接入325的同时,1节点也接入325
if results.success==1 
P_bloss(i,1)=sum(results.branch(:,14)+results.branch(:,16));%网损
%P_bloss(i,1)=results.branch(,14)+results.branch(:,16);支路线损
Vot(: ,i)=results.bus(:,8);
VV=[VV,results.bus(:,8)];
% figure
% mesh(VV)
%对于电压来说  1-14节点电压情况,可以探究谁的电压质量最好,
%%平均电压最高最好;电压越线次数
%对于损耗来说要计算整体的网损
end 
end

%%%01找到最小网损值
[m n] = min(P_bloss)
%它是所有节点(从1到33)中,接入风电场容量为325MW时,产生的最小总网损值
%m最小网损值的 n节点编号
%%02找到电压均值

%%03构建综合指标
%[ff,Idex]=min(P_bloss./Vot)
%%%%ff: 数组 P_bloss./Vot 中的最小值(即网损与电压均值比值的最小值)。
%%%%Idex: 对应最小值的索引位置(即比值最小的节点编号)。
%%%最好电压搞一个归一化的问题
figure
plot(Vot,'-o')
legend('方案一','方案二','方案三');
% figure
% plot(VV,'-o')

代码:相同节点接入不同容量

方案一:
clear all
close all
clc
warning off

%%方案一
%Pdg=zeros(33,3);
Pdg(9,1)=[50];%50kW
Pdg(9,2)=[150];
Pdg(9,3)=[250];
Vot = []; %初始化
for i=1:3
mpc = case33bw;
mpc.bus(9,3:4)=mpc.bus(9,3:4)-0.001*[Pdg(9,i),-Pdg(9,i)*tan(acos(0.90))];
%将单位转化为MW   节点33默认是MW
OPT = mpoption('verbose', 0, 'out.all', 0);
 results=runpf(mpc,OPT); 
if results.success==1 
Vot(: ,i)=results.bus(:,8);
end 
end

figure
plot(Vot,'-o')
legend('方案一','方案二','方案三');
title('相同节点接入不同容量');


方案二:
clear all
close all
clc
warning off

%%方案二
Pdg = [50; 150; 250];
%Vot2=zeros(3, 33); P_bloss2=zeros(3, 33);
Vot2 = []; VV=[];
for n=1:3
    mpc = case33bw;
    mpc.bus(9, 3:4) = mpc.bus(9, 3:4) - 0.001 * [Pdg(n), -Pdg(n) * tan(acos(0.90))];
    OPT = mpoption('verbose', 0, 'out.all', 0);
    results = runpf(mpc, OPT);
    if results.success == 1
             Vot2(n, :) = results.bus(:, 8);
        end
end
figure
plot((Vot2)','-o')
legend('方案一','方案二','方案三');
title('相同节点接入不同容量');


方案二改进版:

clear all
close all
clc
warning off

%%方案二
Pdg = 50:5:500;
Vot2 = []; VV=[];
for n=1:length(Pdg)
    mpc = case33bw;
    mpc.bus(9, 3:4) = mpc.bus(9, 3:4) - 0.001 * [Pdg(n), -Pdg(n) * tan(acos(0.90))];
    OPT = mpoption('verbose', 0, 'out.all', 0);
    results = runpf(mpc, OPT);
    if results.success == 1
             Vot2(n, :) = results.bus(:, 8);
        end
end
figure
plot((Vot2)','-o')
legend('方案一','方案二','方案三');
title('相同节点接入不同容量');


单独看一个节点的电压,可以发现:接入分布式电源后,电压质量得到了提升

原论文结论如下:

为什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值