【电路优化】基于遗传算法的33节点电力系统无功优化附MATLAB程序

1 简介

2 部分代码

tic                   %%%%%%%%%%%%%%%clc;clear all;%相关原始数据格式说明如下:%n——节点个数;n1——支路条数;isb——平衡节点号;H——PQ节点个数(为后面形成PVU存储PV节点初始电压用);pr——误差精度。%B1——支路参数矩阵,其中第一列和第二列是起始节点编号和终点节点编号,第三列、第四列、第五列、第六列分别为:支路电阻、电抗、变压器变比、电纳。(不考虑电导)%B2——节点参数矩阵,其中第一列和第二列为节点编号和节点类型;第三列到第六列分别为:注入有功、注入无功、电压幅值、电压相位。%节点类型分类如下:“0”为平衡节点,“1”为PQ,“2”为PV节点;“3”为PQ(V)节点,“4”为PI节点。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%数据输入:基准电压10KV,基准功率10MW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%n=33 ;       n1=32;isb=1;H=32;                %%%%%%%%%%%%%18节点加DG    PQV处理pr=0.0001;          B1=[1 2 0.00922 0.0047i 1 0;    2 3 0.00493 0.02511i 1 0;    3 4 0.0366 0.01864i 1 0;    4 5 0.03811 0.01941i 1 0;    5 6 0.0819 0.0707i 1 0;    6 7 0.01872 0.06188i 1 0;    7 8 0.07114 0.02351i 1 0;    8 9 0.103 0.074i 1 0;    9 10 0.1044 0.074i 1 0;    10 11 0.01966 0.0065i 1 0;    11 12 0.03744 0.01238i 1 0;    12 13 0.1468 0.1155i 1 0;    13 14 0.05416 0.07129i 1 0;    14 15 0.05910 0.0526i 1 0;    15 16 0.07463 0.05450i 1 0;    16 17 0.1289 0.1721i 1 0;    17 18 0.0732 0.0574i 1 0;    2 19 0.0164 0.01565i 1 0;    19 20 0.15042 0.13554i 1 0;    20 21 0.04095 0.04784i 1 0;    21 22 0.07089 0.09373i 1 0;    3 23 0.04512 0.03083i 1 0;    23 24 0.08980 0.07091i 1 0;    24 25 0.08960 0.07011i 1 0;    6 26 0.0203 0.01034i 1 0;    26 27 0.02842 0.01447i 1 0;    27 28 0.1059 0.09337i 1 0;    28 29 0.08042 0.07006i 1 0;    29 30 0.05075 0.02585i 1 0;    30 31 0.09744 0.0963i 1 0;    31 32 0.03105 0.03619i 1 0;    32 33 0.03410 0.05302i 1 0];B2=[1 0 0 0 1.05 0;    2 1 -0.01 -0.006 1 0;    3 1 -0.009 -0.004 1 0;    4 1 -0.012 -0.008 1 0;    5 1 -0.006 -0.003 1 0;    6 1 -0.006 -0.002 1 0;    7 1 -0.02 -0.01 1 0;    8 1 -0.02 -0.01 1 0;    9 1 -0.006 -0.002 1 0;    10 1 -0.006 -0.0035 1 0;    11 1 -0.0045 -0.003 1 0;    12 1 -0.006 -0.0035 1 0;    13 1 -0.006 -0.0035 1 0;    14 1 -0.012 -0.008 1 0;    15 1 -0.006 -0.001 1 0;    16 1 -0.006 -0.002 1 0;    17 1 -0.006 -0.002 1 0;    18 3 -0.009+0.1 -0.004 1 0;    19 1 -0.009 -0.004 1 0;    20 1 -0.009 -0.004 1 0;    21 1 -0.009 -0.004 1 0;    22 1 -0.009 -0.004 1 0;    23 1 -0.009 -0.005 1 0;    24 1 -0.042 -0.02 1 0;    25 1 -0.042 -0.02 1 0;    26 1 -0.006 -0.0025 1 0;    27 1 -0.006 -0.0025 1 0;    28 1 -0.006 -0.002 1 0;    29 1 -0.012 -0.007 1 0;    30 1 -0.02 -0.06 1 0;    31 1 -0.015 -0.007 1 0;    32 1 -0.021 -0.01 1 0;    33 4 -0.006 -0.004 1 0];T=60;%仿真代数               遗传算法M=40;% 群体规模pm=0.1;pc=0.8;%交叉变异概率Ugmax=1.06;Ugmin=1.0;%参数取值范围Timax=1.1;Timin=0.9;Qcmax=0.05;Qcmin=-0.05;Vimax=1.07;Vimin=0.93;Z1=1;%Z2=1;%%惩罚因子%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&*********************具体数值待定%QGmax=;QGmin=;Long=5;%单个参数字串长度,总编码长度3Lbestv=-inf;bval=round(rand(M,3*Long));%初始种群 round 四舍五入取整函数  编码后的初始种群%%%%%%%%%%%%%bestv=-inf%最优适应度初值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Y=zeros(n);               %zeros就是生成一个全0的矩阵Times=1;                  %置迭代次数为初始值%创建节点导纳矩阵   电导统一为零for i=1:n1        p=B1(i,1);        q=B1(i,2);        Y(p,q)=Y(p,q)-1/((B1(i,3)+B1(i,4))*B1(i,5));        Y(q,p)=Y(p,q);        Y(p,p)=Y(p,p)+1/(B1(i,3)+B1(i,4))+0.5*B1(i,6);%低压侧不变        Y(q,q)=Y(q,q)+1/((B1(i,3)+B1(i,4))*B1(i,5)^2)+0.5*B1(i,6);%高压侧阻抗乘以变比平方  输入时注意低压侧在前end%disp('节点导纳矩阵:') ;Y;G=real(Y);B=imag(Y);OrgS=zeros(2*n-2,1);DetaS=zeros(2*n-2,1);   %将OrgS、DetaS初始化%创建OrgS,用于存储初始功率参数Q=0;PQV=0;x=1.655;         %%%x1=6.7,x2=9.85,x=x1+x2;其中x1为定子漏抗,x2为转子漏抗xp=18.8;         %%%xc=,xm=,xp=xc*xm/(xc-xm);其中xc为机端并联电容器电抗,xm为激磁电抗h=0;for i=1:n    %对PQ(V)节点的处理    h=h+1;    if i~=isb&&B2(i,2)==3            Q(i)=-(B2(i,5))^2/xp+(-(B2(i,5))^2+sqrt((B2(i,5))^4-4*(B2(i,3))^2*x^2))/2*x;         B2(i,4)=Q(i);         B2(i,2)=1;          PQV=h;    end  end       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Ig=0.01;Q=0;PI=0;h=0;for i=1:n    %对PI节点的处理    h=h+1;    if i~=isb&&B2(i,2)==4            Q(i)=sqrt(Ig^2*((B2(i,5))^2)-B(i,3)^2);        %e=B2(i,5),f=0,e^2+f^2=B2(i,5))^2,其中e和f为光伏发电系统接入节点电压的实部和虚部         B2(i,4)=Q(i);         B2(i,2)=1;          PI=h;    end  end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%h=0;j=0;for i=1:n            %对PQ节点的处理    if i~=isb&&B2(i,2)==1           h=h+1;        for j=1:n            OrgS(2*h-1,1)=OrgS(2*h-1,1)+B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));   %Pi 书P57页11-45            OrgS(2*h,1)=OrgS(2*h,1)+B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));       %Qi  同上        end    endendfor i=1:n           %对PV节点的处理    if i~=isb&&B2(i,2)==2        h=h+1;        for j=1:n            OrgS(2*h-1,1)=OrgS(2*h-1,1)+ B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); %同上            OrgS(2*h,1)=OrgS(2*h,1)+ B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));    %同上        end    endend%disp('PQ、PV节点初始计算值:') ;             %用所给参数计算出的初始PQ、PV节点参数OrgS;%创建PVU 用于存储PV节点的初始电压PVU=zeros(n-H-1,2);t=0;for i=1:n    if B2(i,2)==2        t=t+1;        PVU(t,1)=B2(i,5);        PVU(t,2)=B2(i,6);    endend%disp('PV节点初始值:电压、相位ei、fi:')   ; PVU;%创建DetaS,用于存储有功功率、无功功率和电压幅值的不平衡量 书p58 11-46和11-47h=0;for i=1:n           %对PQ节点的处理    if i~=isb&&B2(i,2)==1        h=h+1;        DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);        DetaS(2*h,1)=B2(i,4)-OrgS(2*h,1);    endendt=0;for i=1:n           %对PV节点的处理    if i~=isb&&B2(i,2)==2        h=h+1;        t=t+1;        DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);        DetaS(2*h,1)=PVU(t,1)^2+PVU(t,2)^2-B2(i,5)^2-B2(i,6)^2;    endend%disp('P、Q、V不平衡量:')  ;DetaS;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%创建I,用于存储节点电流参数(计算雅克比矩阵用 具体见纸板公式推导)I=zeros(n-1,1);h=0;for i=1:n   if i~=isb        h=h+1;        I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,5)+B2(i,6)*sqrt(-1));                                               end                                                           endI;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%创建Jacbi(雅可比矩阵)     各元素是书中各元素求法乘个-1 所以△W=J△VJacbi=zeros(2*n-2);h=0;k=0;for i=1:n       %对PQ节点的处理    if B2(i,2)==1        h=h+1;        for j=1:n            if j~=isb                k=k+1;                if i==j     %对角元素的处理                    Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));                          Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));                    Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));                    Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));                else        %非对角元素的处理                    Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6);                    Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6);                    Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);                    Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);                end                if k==(n-1) %将用于内循环的指针置于初始值,以确保雅可比矩阵换行                    k=0;                end            end        end    endendk=0;for i=1:n       %对PV节点的处理    if B2(i,2)==2        h=h+1;        for j=1:n            if j~=isb                k=k+1;                if i==j     %对角元素的处理                    Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));                    Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));                    Jacbi(2*h,2*k-1)=2*B2(i,6);                    Jacbi(2*h,2*k)=2*B2(i,5);                else        %非对角元素的处理                    Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6);                    Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6);                    Jacbi(2*h,2*k-1)=0;                    Jacbi(2*h,2*k)=0;                end                if k==(n-1)     %将用于内循环的指针置于初始值,以确保雅可比矩阵换行                    k=0;                end            end        end    endend%disp('雅克比矩阵为:')  ;Jacbi; %列参数跟书上的相反   这里面第一列是对电压相位的偏导 第二列是对幅值的偏导%求解修正方程,获取节点电压的不平衡量DetaU=zeros(2*n-2,1);DetaU=Jacbi\DetaS;       %disp('求解修正方程得:')  ;DetaU;%修正节点电压j=0;for i=1:n       %对PQ节点处理    if B2(i,2)==1        j=j+1;        B2(i,5)=B2(i,5)+DetaU(2*j,1);        B2(i,6)=B2(i,6)+DetaU(2*j-1,1);    endendfor i=1:n       %对PV节点的处理    if B2(i,2)==2        j=j+1;       B2(i,5)=B2(i,5)+DetaU(2*j,1);       B2(i,6)=B2(i,6)+DetaU(2*j-1,1);    endendfor i=1:n            %对PQ(V)节点的处理    if i==PQV       B2(i,2)=3;     endendfor i=1:n            %对PI节点的处理    if i==PI       B2(i,2)=4;     endend%disp('修正后的B2阵:')  ;B2;%开始循环**********************************************************************while max(abs(DetaU))>pr%先取绝对值在找出最大值来与误差精度比较for i=1:n            %对PQ(V)节点的处理    if i~=isb&&B2(i,2)==3            Q(i)=-(B2(i,5))^2/xp+(-(B2(i,5))^2+sqrt((B2(i,5))^4-4*(B2(i,3))^2*x^2))/2*x;         B2(i,4)=Q(i);    end    if B2(i,2)==3       B2(i,2)=1;     endendfor i=1:n    %对PI节点的处理    if i~=isb&&B2(i,2)==4            Q(i)=sqrt(Ig^2*((B2(i,5))^2)-B(i,3)^2);                 B2(i,4)=Q(i);    end    if B2(i,2)==4       B2(i,2)=1;     endendOrgS=zeros(2*n-2,1);        h=0;j=0;end   bval(M,:)=bvalxx;%最优保留%位点变异mm=rand(M,3*Long)<pm;%N行mm(M,:)=zeros(1,3*Long);%最后一行不变异,强制赋0bval(mm)=1-bval(mm); %%%对应mm为1的位置变异enddisp('遗传算法优化后的结果如下:');disp('最优参数为:');optxx    %输出最优参数disp('电压最优适应度值为:');bestv   %输出最优适应度值disp('节点电压幅值(按节点由小到大的顺序)为:');B2(:,5)disp('优化后的平衡节点功率为:');Sbdisp('优化后的网损为:');minPloss=1/bestv%-F0tocplot(1./Bfit1);% 绘制最优适应度进化曲线title ('\bf最优适应度进化曲线');xlabel ('\bf\it种群代数\rm\bf (代)');ylabel ('\bf\it最优适应度\rm\bf ()');%pause%plot(B2(1:17,5));

3 仿真结果

4 参考文献

[1]李文峰. 基于遗传算法的电力系统无功优化[J]. 电气开关, 2014, 52(4):3.​

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

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

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值