0001 function qcqp_opf_test(casedata)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 [nVAR, nEQ, nINEQ, C, c, A, a, B, b, S] = qcqp_opf(casedata);
0023
0024
0025 cvx_begin sdp
0026 cvx_precision best
0027 cvx_solver sedumi
0028 variable Z(nVAR,nVAR) hermitian
0029
0030 minimize( vec(C)'*vec(Z) + c )
0031
0032 for k = 1:nEQ
0033 vec((A{k}+A{k}')/2)'*vec(Z) == real(a(k));
0034 vec((A{k}-A{k}')/(2*1i))'*vec(Z) == imag(a(k));
0035 end
0036
0037 for k = 1:nINEQ
0038 if B{k}' == B{k}
0039 vec(B{k})'*vec(Z) <= b(k);
0040 else
0041 vec((B{k}+B{k}')/2)'*vec(Z) <= real(b(k));
0042 vec((B{k}-B{k}')/(2*1i))'*vec(Z) <= imag(b(k));
0043 end
0044 end
0045
0046 Z >= 0;
0047 cvx_end
0048
0049
0050 [nVAR, nEQ, nINEQ, C, c, A, a, B, b, S] = qcqp_opf(casedata,1);
0051
0052
0053 cvx_begin sdp
0054 cvx_precision best
0055 cvx_solver sedumi
0056 variable Z(nVAR,nVAR) hermitian
0057
0058 minimize( vec(C)'*vec(Z) + c )
0059
0060 for k = 1:nEQ
0061 vec(A{k})'*vec(Z) == a(k);
0062 end
0063
0064 for k = 1:nINEQ
0065 vec(B{k})'*vec(Z) <= b(k);
0066 end
0067
0068 Z >= 0;
0069 cvx_end
0070
0071
0072 [nVAR, nEQ, nINEQ, C, c, A, a, B, b, S] = qcqp_opf(casedata,2);
0073
0074
0075 cvx_begin sdp
0076 cvx_precision best
0077 cvx_solver sedumi
0078 variable Z(nVAR,nVAR) symmetric
0079
0080 minimize( vec(C)'*vec(Z) + c )
0081
0082 for k = 1:nEQ
0083 vec(A{k})'*vec(Z) == a(k);
0084 end
0085
0086 for k = 1:nINEQ
0087 vec(B{k})'*vec(Z) <= b(k);
0088 end
0089
0090 Z >= 0;
0091 cvx_end