基于遗传算法多光伏场景考虑负荷重要程度时序无功优化【matlab通用版】

程序名称##

基于遗传算法多场景考虑负荷重要程度时序无功优化【matlab通用版】

程序功能(对象)

  1. 适用于任意大小的交流电网,支持节点和支路的增删;
  2. 适用于多个光伏风电时序出力场景,允许接入风光等DG无上限;
  3. 适用于节点电压重要程度不同的多场景无功优化;
  4. 目标函数:F(x) =Σ Qi*(w1* f1(i)+w2*f2(i))
    f1(i):第i个节点电压偏差对应的调控效益分值
    f2(i):第i个节点相邻电压波动对应的调控效益分值
    Qi :第i个节点重要程度系数
  5. 决策变量:1)主变抽头档位(1组)
    2)并联电容器组数(3组)
    3)光伏可调无功出力(5组)
  6. 约束条件:潮流约束、电压约束、电容器主变档位约束等
  7. 通用型分析:1、交流电网拓扑允许随意变动;
    2、交流电网可接入风光储等多个分布式电源;
    3、电容器及风光接入节点允许随意变动;
    4、全天24小时各个光伏和风电出力参数可调,同时设置三种不同出力场景;
    5、IEEE33节点系统33个节点重要程度系数可调,可选择不同的重要程度系数;
  8. 所有风光出力场景和重要程度系数场景结果均保存在EXCEL方便制图;
  9. 优化前后对比:优化后电压偏差和电压波动显著减小;

程序函数说明

matlab版:

  1. 主程序:main1
  2. 目标函数子程序:fitness文件
  3. 遗传算法子程序:fga文件
  4. IEEE33节点系统子程序:case33bw文件
  5. 牛拉法基波子程序:NLPowerFlow文件
  6. 节点导纳子程序:createYbus文件
  7. 交流雅克比矩阵子程序:Jacobi文件(n-1+m*n-1+m)
  8. 初始化染色体子程序:InitPopGray文件
  9. 结果绘制子程序:draw文件
    图一为改进的IEEE33节点系统算例程序列表
    在这里插入图片描述

程序计算步骤及流程图

以matlab版程序作为讲解。

1 参数初始化

参数初始化,读取网络参数,在此标幺化,无功优化是在基波潮流计算基础之上进行的,参数初始化和基波潮流学习: https://blog.csdn.net/WConstelltion/article/details/123751611.
包括:交流节点负荷,支路阻抗,发电机以及分布式电源参数初始化;风光时序出力数据,支路电阻以及分布式电源参数初始;各个节点重要程度系数,可依据赋权方法进行确定,此程序直接给出。
图二为不同场景下光伏时序出力
在这里插入图片描述
图三是不同场景下不同节点的负荷重要程度系数
在这里插入图片描述
多场景考虑负荷重要程度时序无功优化的计算流程图如下图所示,后续程序依据该逻辑进行讲解
在这里插入图片描述

2出力及重要程度系数多场景选择

2.1光伏出力曲线场景选择:(场景需求可以根据自己选择)

state1 = state(:, 1);%恒定出力系数
state2 = state(:, 2);%云朵效应系数
state3 = state(:, 3);%典型日1出力系数
state4 = state(:, 4);%典型日2出力系数

2.2重要程度系数选择:

IIC1 = IIC(:, 1);  %没有考虑负荷重要程度系数
IIC2 = IIC(:, 2);  %传统评估方法负荷重要程度系数
IIC3 = IIC(:, 3);  %改进评估方法负荷重要程度系数

2.3修正各时段参数:

    %%各时段参数的修正
    a=load(:,ti);    %基波和三相潮流用到
    ac_data = case33bw;
    ac_baseMVA = ac_data.baseMVA;
    ac_bus = ac_data.bus;
    tanpq=ac_bus(:,4)./ac_bus(:,3);               %各负荷点的功率因数
    ac_bus(:,3)=ac_bus(:,3).*a;                   %修正有功功率负荷
    ac_bus(:,4)=tanpq.*ac_bus(:,3);               %修正无功功率负荷
    ac_branch = ac_data.branch;
    ac_gen = ac_data.gen;                                         %发电机参数
    ac_dg(:, 2)  = ac_dg0(:, 2)*statei(ti);          %场景选择
    ac_dg(:, 3)  = ac_dg0(:, 2)*tan(acos(dg_power_factor));%恒定功率因数

3 优化算法计算

%目的:通过算法求解电压偏差和电压波动最小时的调控策略
3.1初始化算法参数

    popsize = 100;                                              %初始群体大小
    eranum = 100;                                               %进化代数
    pCross = 0.8;                                               %交叉概率,一般取0.5--0.85之间较好(默认0.8)
    pMutation = 0.1;                                            %初始变异概率,一般取0.05-0.2之间较好(默认0.1)
    pInversion =0.2;                                            %倒位概率,一般取0.05-0.3之间较好(默认0.2)

3.2设置主变档位OTLC、CB组数、光伏组件出力约束

    %变量取值范围计算
    genlow =-2*ones(1,gen_num);%-2,-1,0,1,2
    genup = 2*ones(1,gen_num);
    caplow = zeros(1,cap_num);
    capup = ones(1,cap_num).*[6 8 6]; 
    Qpvlow = [-ac_dg0(:, 2).*[0.5;0.15;0.2;0.5;0.2]]'; %±50% 15%  20% 50% 20%可调 吸收
    Qpvup = [ac_dg0(:, 2).*[0.5;0.15;0.2;0.5;0.2]]'; %±20%可调 无功补偿与有功无关 发出

3.3迭代计算:

    [BestPop(:, :, ti),Trace(:, :, ti),maxiter(1,ti),Best_fitness(:, ti)]=fga(FUN,LowB,UpB,eranum,popsize,pCross,pMutation,pInversion,options);

3.4目标函数中计算潮流求解电压指标:

    %电压偏差率/%
    UN = 1;U = Bus_V(:, 2);
    devU = (U-UN)/UN;
    %电压波动率/%相邻两个时段波动 
    waveU0 =  waveU;
    waveU0(:, ti+1)=Bus_V(:, 2);         %第一列为24时刻的电压值,用于计算波动值 
    U2t = waveU0(:, ti:ti+1);
    Uave=sum(U2t, 2)/2;
    U2=diff(U2t,1,2);    %相邻两个时段电压差,矩阵各列之差
    U3=U2.^2; 
    z=sum(U3, 2); 
    wave=sqrt(z)./(Uave); 

3.5针对不同的电压偏差值和波动值赋予效益系数:

    devUgrade = [-0.1 -0.07 -0.05 -0.03 0 0.03 0.05 0.07 0.1];%划分界限
    f1 = [0 0.2 0.4 0.6 1 1 0.8 0.6 0.4 0];%各区间对应系数
    wavegrade = [0.005 0.01 0.015 0.020];%划分界限
    f2 = [1 0.75 0.50 0.25 0];%各区间对应系数

3.6 计算目标函数:

     for i=1:busNum  %传统分数计算出来的重要程度系数
        val = val+IICi(i)*(kexi*scoref1(i)+(1- kexi)*scoref2(i));
     end

程序计算结果分析

  1. 1)IEEE33节点算例拓扑节点电压偏差计算结果如下图所示(场景2光伏出力为云朵效应)
    在这里插入图片描述
    2)无功调节手段24小时计算结果如下图所示(场景2光伏出力为云朵效应)在这里插入图片描述
    3)采用三种不同的重要程度系数计算结果对比,方法3是考虑关键节点重要性使得得到优先治理曾增强了调控效益在这里插入图片描述

  2. 场景1和3计算步骤不在赘述,3种光伏*3种重要程度系数共计9个场景计算结果,均保持至excel,调用draw绘制图片
    在这里插入图片描述

  3. matlab版制作不易非无偿,python版有需求可以联系开发,上述仅为博主设置算例,各位硕导博导可以联系博主定制对应的需求。

程序开发

完整版matlab版/python版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wh-Constelltion

你的鼓励是我前进的创作动力

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

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

打赏作者

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

抵扣说明:

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

余额充值