1 主要内容
程序采用适用于辐射状网络的DistFlow潮流模型,可输入任意故障线路编号,得到优化重构结果。这个程序是配电网故障重构可视化matlab+yalmip的升级版,原来的程序是以电压质量作为目标函数的,未采用配电网严格的辐射状和连续状约束,如果改目标为网损或者弃负荷就会出现环网或者孤岛的情形。
本升级后的程序加入了辐射状和连续状约束,保证网络连通性和辐射性,改换成任意目标都不会导致配电网或者环网,本程序以网损和弃负荷作为目标,以二阶锥、电压电流、欧姆定律、网络潮流等作为约束条件,非常有利于初学者掌握配网故障重构的精髓!
2 部分代码
%% 2.设变量 V = sdpvar(nb,T);%电压的平方 I = sdpvar(nl,T);%电流的平方 P = sdpvar(nl,T);%线路有功 Q = sdpvar(nl,T);%线路无功 Pg = sdpvar(nb,T);%发电机有功 Qg = sdpvar(nb,T);%发电机无功 lamda = sdpvar(nb,T);%弃负荷比例 Zij=binvar(nl,1);%网架结构 Z0=[ones(nl-nc,1);zeros(nc,1)];%初始拓扑 assign(Zij,Z0); %% 3.设约束 Constraints = []; %% 网络重构约束 Constraints = [Constraints, sum(Zij) == 32]; Constraints = [Constraints, I(AA) == 0]; Constraints = [Constraints, 0<=lamda<=1]; % P_tree = sdpvar(37,1);%虚拟有功 % Pin_tree = -upstream*P_tree + dnstream*P_tree;%虚拟节点注入有功 % Constraints = [Constraints,-Zij <= P_tree <= Zij]; % Constraints = [Constraints, Pin_tree(1:32) + 0.01==0]; %% 潮流约束 %节点功率约束 Pin = -upstream*P + upstream*(I.*(r*ones(1,T))) + dnstream*P;%节点注入有功 Qin = -upstream*Q + upstream*(I.*(x*ones(1,T))) + dnstream*Q;%节点注入无功 Constraints = [Constraints, Pin + (1-lamda).*pload - Pg==0]; Constraints = [Constraints, Qin + qload - Qg==0]; %欧姆定律约束 m = 1.06*1.06 - 0.94*0.94; M = (ones(nl,1) - Zij)*m; Constraints = [Constraints, V(branch(:,1),:) - V(branch(:,2),:) <= M + 2*(r).*P + 2*(x).*Q - ((r.^2 + x.^2)).*I]; Constraints = [Constraints, V(branch(:,1),:) - V(branch(:,2),:) >= -M + 2*(r).*P + 2*(x).*Q - ((r.^2 + x.^2)).*I];
3 程序结果
支路13故障
星标为故障线路,红色线路为断开支路,黑实线为常规闭合支路,黑虚线为联络闭合支路。
支路20故障
星标为故障线路,红色线路为断开支路,黑实线为常规闭合支路,黑虚线为联络闭合支路。
支路5故障
星标为故障线路,红色线路为断开支路,黑实线为常规闭合支路,黑虚线为联络闭合支路。