Warning: You have unbounded variables in an implication leading to a lousy big-M relaxation.
But I think all involved variables have explicit bound constraints.
Procedures are as follows:
%% +++++变量
S_GasStation_op = sdpvar(2,10*3); %门站的出力
P_DNGFP_op = sdpvar(6,10*3); %DNGFP的出力P
P_grid_op = sdpvar(2,10*3);% 外部电网出力P
P_d_cut_op = sdpvar(54,10*3); %节点切负荷P
P_line_op = sdpvar(61,10*3);%线路输送功率P
V_angle = sdpvar(54,10*3);
S_pipe_op = sdpvar(22,10*3); %管道运行流量
S_d_g_analog1 = sdpvar(17,10*3);
S_d_g_analog2 = sdpvar(17,10*3);
P_d_analog1 = sdpvar(54,10*3);
P_d_analog2 = sdpvar(54,10*3);
%% ++++++++++++++++++运行子问题++++++++++++++++++
%% ++++++++++++++运行子问题的公共约束条件++++
% +++++++外部接入电源出力约束
F_op_analog = [ P_grid_op <= 15/100*ones(2,10*3)];
F_op_analog = F_op_analog + [ P_grid_op >=0 ];
% +++++++电力潮流约束
for t=1:10
for l=22:61
if B(l,3*t) == 0
F_op_analog = F_op_analog +[ P_line_op(l,3*t-2:3*t) == zeros(1,3) ];
end
end
end
% +++++++配电线路流量及容量约束
F_op_analog = F_op_analog + [ V_angle(53,10*3) ==0 ];%平衡节点
F_op_analog = F_op_analog + [ ( P_line_op == B .* ( A_connect_node_line_TR * V_angle ) ):'line' ];
F_op_analog = F_op_analog + [ P_line_op <= S_line_max ];
F_op_analog = F_op_analog + [ P_line_op >= -S_line_max ];
for t=1:10
for i=32:50
if k_node_connect(i,3*t) == 0 %判断节点和线路是否连接,如果不连接,则负荷得不到满足
F_op_analog = F_op_analog + [ V_angle(i,3*t-2:3*t) == zeros(1,3) ] ;
end
end
end
% +++++++ 燃气电厂出力约束
F_op_analog = F_op_analog + [ P_DNGFP_op >= 0 ];
F_op_analog = F_op_analog +[ ( P_DNGFP_op <= S_DNGFP_max ) :'DNGFP' ];
% +++++++城市门站出力约束
F_op_analog = F_op_analog + [ S_GasStation_op >= 0];
F_op_analog = F_op_analog + [ ( S_GasStation_op <= S_GasStation_max ): 'GasStation' ];
% +++++++配气主干管道潮流及容量约束
F_op_analog = F_op_analog + [ ( S_pipe_op >= -S_pipe_max ): 'pipelow'];
F_op_analog = F_op_analog + [ ( S_pipe_op <= S_pipe_max ): 'pipeup'];
% +++++++切负荷量约束
for t=1:10
F_op_analog = F_op_analog + [ sum(sum(P_d_cut_op(:,3*t-2:3*t))) <= 0.005 * sum(sum(P_d(:,3*t-2:3*t))) ];
end
F_op_analog = F_op_analog + [ P_d >= P_d_cut_op ];
F_op_analog = F_op_analog + [ 0 <= P_d_cut_op ];
ddd = binvar(54,10*3);
ttt = binvar(54,10*3);
iii = binvar(17,10*3);
jjj = binvar(17,10*3);
for t=1:30
for i=1:54
F_op_analog = F_op_analog + implies(A_connect_node_DNGFP(i,:) * P_DNGFP_op(:,t) + A_connect_node_grid(i,:) * P_grid_op(:,t) + P_d_cut_op(i,t) <= P_d(i,t), ddd(i,t) );
F_op_analog = F_op_analog + implies(ddd(i,t), P_d_analog1(i,t) == A_connect_node_line(i,:) * P_line_op(:,t) + P_d(i,t) - ( A_connect_node_DNGFP(i,:) * P_DNGFP_op(:,t) + A_connect_node_grid(i,:) * P_grid_op(:,t) + P_d_cut_op(i,t) ));
F_op_analog = F_op_analog + implies(ddd(i,t) , P_d_analog2(i,t) == 0 );
F_op_analog = F_op_analog + implies(ddd(i,t) , P_d_analog1(i,t) <= P_d(i,t) - ( A_connect_node_DNGFP(i,:) * P_DNGFP_op(:,t) + A_connect_node_grid(i,:) * P_grid_op(:,t) + P_d_cut_op(i,t) ) );
F_op_analog = F_op_analog + implies(ddd(i,t) , P_d_analog1(i,t) >= 0 );
F_op_analog = F_op_analog + implies(A_connect_node_DNGFP(i,:) * P_DNGFP_op(:,t) + A_connect_node_grid(i,:) * P_grid_op(:,t) + P_d_cut_op(i,t) >= P_d(i,t), ttt(i,t) );
F_op_analog = F_op_analog + implies(ttt(i,t), P_d_analog2(i,t) == -A_connect_node_line(i,:) * P_line_op(:,t) + ( A_connect_node_DNGFP(i,:) * P_DNGFP_op(:,t) + A_connect_node_grid(i,:) * P_grid_op(:,t) + P_d_cut_op(i,t) ) - P_d(i,t));
F_op_analog = F_op_analog + implies(ttt(i,t), P_d_analog1(i,t) == 0 );
F_op_analog = F_op_analog + implies(ttt(i,t), P_d_analog2(i,t) <= ( A_connect_node_DNGFP(i,:) * P_DNGFP_op(:,t) + A_connect_node_grid(i,:) * P_grid_op(:,t) + P_d_cut_op(i,t) ) - P_d(i,t));
F_op_analog = F_op_analog + implies(ttt(i,t), P_d_analog2(i,t) >= 0 );
end
for p=1:17
F_op_analog = F_op_analog + implies(A_connect_gasnode_GasStation(p,:) * S_GasStation_op(:,t) - A_connect_gasnode_DNGFP(p,:) * P_DNGFP_op(:,t)/y_efficiency - S_d_g(p,t)<=0, iii(p,t));
F_op_analog = F_op_analog + implies(iii(p,t), S_d_g_analog1(p,t) + A_connect_gasnode_GasStation(p,:) * S_GasStation_op(:,t)- A_connect_gasnode_DNGFP(p,:) * P_DNGFP_op(:,t)/y_efficiency - S_d_g(p,t) - A_connect_gasnode_pipe(p,:) * S_pipe_op(:,t) == 0 );
F_op_analog = F_op_analog + implies(iii(p,t), S_d_g_analog2(p,t) == 0 );
F_op_analog = F_op_analog + implies(iii(p,t), S_d_g_analog1(p,t) <= - A_connect_gasnode_GasStation(p,:) * S_GasStation_op(:,t) + A_connect_gasnode_DNGFP(p,:) * P_DNGFP_op(:,t)/y_efficiency + S_d_g(p,t));
F_op_analog = F_op_analog + implies(iii(p,t), S_d_g_analog1(p,t) >=0);
F_op_analog = F_op_analog + implies(A_connect_gasnode_GasStation(p,:) * S_GasStation_op(:,t) - A_connect_gasnode_DNGFP(p,:) * P_DNGFP_op(:,t)/y_efficiency - S_d_g(p,t)>= 0, jjj(p,t));
F_op_analog = F_op_analog + implies(jjj(p,t), - S_d_g_analog2(p,t) + A_connect_gasnode_GasStation(p,:) * S_GasStation_op(:,t)- A_connect_gasnode_DNGFP(p,:) * P_DNGFP_op(:,t)/y_efficiency - S_d_g(p,t) - A_connect_gasnode_pipe(p,:) * S_pipe_op(:,t) == 0 );
F_op_analog = F_op_analog + implies(jjj(p,t), S_d_g_analog1(p,t) == 0 );
F_op_analog = F_op_analog + implies(jjj(p,t), S_d_g_analog2(p,t) <= A_connect_gasnode_GasStation(p,:) * S_GasStation_op(:,t) - A_connect_gasnode_DNGFP(p,:) * P_DNGFP_op(:,t)/y_efficiency - S_d_g(p,t));
F_op_analog = F_op_analog + implies(jjj(p,t), S_d_g_analog2(p,t) >=0);
end
end