Hello,
I am new in this forum. Here is my problem:
I’m solving some conic relaxations of the AC optimal power flow problem using CVX 2.1. Below is the general model. When I solve the SDP relaxation for n>= 1000, everything is ok with MOSEK 8.0.0.60 but when I solve any other conic relaxation (e.g. SOCP), I get this message Mosek error: MSK_RES_TRM_STALL ().
Can anyone tell me what matters? I read somewhere that when the above MOSEK message occures, it is likely due to bad scaling. But why I don’t have this message for the SDP relaxation?
Thank you very much for your help.
n = 1354: number of buses (vertices) in a graph
nGen << n: number of generator buses
busgen: nGen by n 0-1 matrix
nBranch = 1991: number of branches in the network
edges: list of edges in the graph
Yft: cell of nBranch 2 by 2 matrices
incidentF, incidentT: nBranch by n 0-1 matrix
SDP relaxation: replace XXXXXXX in the model by
V == hermitian_semidefinite(n)
SOCP relaxation: replace XXXXXXX in the model by
for l = 1:size(edges,1)
[V(edges(l,1),edges(l,1)) V(edges(l,1),edges(l,2)); V(edges(l,2),edges(l,1)) V(edges(l,2),edges(l,2))] == hermitian_semidefinite(2)
end
cvx_solver mosek
cvx_precision default
cvx_begin
variable V(n,n) hermitian
variables pf(nBranch) qf(nBranch) pt(nBranch) qt(nBranch)
variables pG(nGen) qG(nGen)
minimize ( c2’*(pG.^2) + c1’*pG + sum(c0) + const )
subject to
% CONIC CONSTRAINTS
XXXXXXXXXXXXXXXXXX
% PF EQUATIONS
busgen’*pG - pL - diag(gs)*diag(V) == incidentF’*pf + incidentT’*pt
busgen’*qG - qL + diag(bs)*diag(V) == incidentF’qf + incidentT’qt
% VOLTAGE LIMITS
Vl <= diag(V) <= Vu
% GENERATION LIMITS
pGl <= pG <= pGu
qGl <= qG <= qGu
% BRANCH CONSTRAINTS
for l=1:nBranch
% FLOW INJECTION
pf(l) + 1iqf(l) == conj(Yft{l}(1,1))V(from(l),from(l)) + conj(Yft{l}(1,2))V(from(l),to(l))
pt(l) + 1iqt(l) == conj(Yft{l}(2,1))V(to(l),from(l)) + conj(Yft{l}(2,2))V(to(l),to(l))
% FLOW LIMITS
if (su(l) ~= 0)
[su(l) pf(l) + 1iqf(l); pf(l) - 1iqf(l) su(l)] == hermitian_semidefinite(2)
[su(l) pt(l) + 1iqt(l); pt(l) - 1iqt(l) su(l)] == hermitian_semidefinite(2)
end
end
cvx_end