MPOPTION Used to set and retrieve a MATPOWER options vector. OPT = MPOPTION returns the default options vector OPT = MPOPTION(NAME1, VALUE1, NAME2, VALUE2, ...) returns the default options vector with new values for up to 7 options, NAME# is the name of an option, and VALUE# is the new value. OPT = MPOPTION(OPT, NAME1, VALUE1, NAME2, VALUE2, ...) same as above except it uses the options vector OPT as a base instead of the default options vector. Examples: opt = mpoption('PF_ALG', 2, 'PF_TOL', 1e-4); opt = mpoption(opt, 'OPF_ALG', 565, 'VERBOSE', 2); The currently defined options are as follows: idx - NAME, default description [options] --- ------------- ----------------------------------------- power flow options 1 - PF_ALG, 1 AC power flow algorithm [ 1 - Newton's method ] [ 2 - Fast-Decoupled (XB version) ] [ 3 - Fast-Decoupled (BX version) ] [ 4 - Gauss-Seidel ] 2 - PF_TOL, 1e-8 termination tolerance on per unit P & Q mismatch 3 - PF_MAX_IT, 10 maximum number of iterations for Newton's method 4 - PF_MAX_IT_FD, 30 maximum number of iterations for fast decoupled method 5 - PF_MAX_IT_GS, 1000 maximum number of iterations for Gauss-Seidel method 6 - ENFORCE_Q_LIMS, 0 enforce gen reactive power limits at expense of |V| [ 0 - do NOT enforce limits ] [ 1 - enforce limits, simultaneous bus type conversion ] [ 2 - enforce limits, one-at-a-time bus type conversion ] 10 - PF_DC, 0 DC modeling for power flow & OPF [ 0 - use AC formulation & corresponding algorithm options ] [ 1 - use DC formulation, ignore AC algorithm options ] OPF options 11 - OPF_ALG, 0 solver to use for AC OPF [ 0 - choose default solver based on availability in the ] [ following order, 540, 560 ] [ 300 - constr, MATLAB Optimization Toolbox 1.x and 2.x ] [ 320 - dense successive LP ] [ 340 - sparse successive LP (relaxed) ] [ 360 - sparse successive LP (full) ] [ 500 - MINOPF, MINOS-based solver, requires optional ] [ MEX-based MINOPF package, available from: ] [ http://www.pserc.cornell.edu/minopf/ ] [ 520 - fmincon, MATLAB Optimization Toolbox >= 2.x ] [ 540 - PDIPM, primal/dual interior point method, requires ] [ optional MEX-based TSPOPF package, available from: ] [ http://www.pserc.cornell.edu/tspopf/ ] [ 545 - SC-PDIPM, step-controlled variant of PDIPM, requires ] [ TSPOPF (see 540) ] [ 550 - TRALM, trust region based augmented Langrangian ] [ method, requires TSPOPF (see 540) ] [ 560 - MIPS, MATLAB Interior Point Solver ] [ primal/dual interior point method (pure MATLAB) ] [ 565 - MIPS-sc, step-controlled variant of MIPS ] [ primal/dual interior point method (pure MATLAB) ] [ 580 - IPOPT, requires MEX interface to IPOPT solver ] [ available from: https://projects.coin-or.org/Ipopt/ ] [ 600 - KNITRO, requires MATLAB Optimization Toolbox and ] KNITRO libraries available from: http://www.ziena.com/ ] 16 - OPF_VIOLATION, 5e-6 constraint violation tolerance 17 - CONSTR_TOL_X, 1e-4 termination tol on x for constr/fmincon 18 - CONSTR_TOL_F, 1e-4 termination tol on f for constr/fmincon 19 - CONSTR_MAX_IT, 0 max number of iterations for constr/fmincon [ 0 => default ] 20 - LPC_TOL_GRAD, 3e-3 termination tolerance on gradient, LP-based solver 21 - LPC_TOL_X, 1e-4 termination tolerance on x (min step size), LP-based solver 22 - LPC_MAX_IT, 400 maximum number of iterations, LP-based slvr 23 - LPC_MAX_RESTART, 5 maximum number of restarts, LP-based solver 24 - OPF_FLOW_LIM, 0 qty to limit for branch flow constraints [ 0 - apparent power flow (limit in MVA) ] [ 1 - active power flow (limit in MW) ] [ 2 - current magnitude (limit in MVA at 1 p.u. voltage) ] 25 - OPF_IGNORE_ANG_LIM, 0 ignore angle difference limits for branches even if specified [ 0 or 1 ] 26 - OPF_ALG_DC, 0 solver to use for DC OPF [ 0 - choose default solver based on availability in the ] [ following order: 500, 600, 700, 100, 300, 200 ] [ 100 - BPMPD, requires optional MEX-based BPMPD_MEX package ] [ available from: http://www.pserc.cornell.edu/bpmpd/ ] [ 200 - MIPS, MATLAB Interior Point Solver ] [ primal/dual interior point method (pure MATLAB) ] [ 250 - MIPS-sc, step-controlled variant of MIPS ] [ 300 - MATLAB Optimization Toolbox, QUADPROG, LINPROG ] [ 400 - IPOPT, requires MEX interface to IPOPT solver ] available from: https://projects.coin-or.org/Ipopt/ ] [ 500 - CPLEX, requires Matlab interface to CPLEX solver ] [ 600 - MOSEK, requires Matlab interface to MOSEK solver ] available from: http://www.mosek.com/ ] [ 700 - GUROBI, requires Matlab interface to Gurobi optimizer ] available from: http://www.gurobi.com/ ] output options 31 - VERBOSE, 1 amount of progress info printed [ 0 - print no progress info ] [ 1 - print a little progress info ] [ 2 - print a lot of progress info ] [ 3 - print all progress info ] 32 - OUT_ALL, -1 controls pretty-printing of results [ -1 - individual flags control what prints ] [ 0 - do not print anything ] [ (overrides individual flags) ] [ 1 - print everything ] [ (overrides individual flags) ] 33 - OUT_SYS_SUM, 1 print system summary [ 0 or 1 ] 34 - OUT_AREA_SUM, 0 print area summaries [ 0 or 1 ] 35 - OUT_BUS, 1 print bus detail [ 0 or 1 ] 36 - OUT_BRANCH, 1 print branch detail [ 0 or 1 ] 37 - OUT_GEN, 0 print generator detail [ 0 or 1 ] (OUT_BUS also includes gen info) 38 - OUT_ALL_LIM, -1 controls what constraint info is printed [ -1 - individual flags control what constraint info prints ] [ 0 - no constraint info (overrides individual flags) ] [ 1 - binding constraint info (overrides individual flags) ] [ 2 - all constraint info (overrides individual flags) ] 39 - OUT_V_LIM, 1 control output of voltage limit info [ 0 - do not print ] [ 1 - print binding constraints only ] [ 2 - print all constraints ] [ (same options for OUT_LINE_LIM, OUT_PG_LIM, OUT_QG_LIM) ] 40 - OUT_LINE_LIM, 1 control output of line flow limit info 41 - OUT_PG_LIM, 1 control output of gen P limit info 42 - OUT_QG_LIM, 1 control output of gen Q limit info 52 - RETURN_RAW_DER, 0 return constraint and derivative info in results.raw (in fields g, dg, df, d2f) FMINCON options 55 - FMC_ALG, 4 algorithm used by fmincon for OPF for Optimization Toolbox 4 and later [ 1 - active-set ] [ 2 - interior-point, w/default 'bfgs' Hessian approx ] [ 3 - interior-point, w/ 'lbfgs' Hessian approx ] [ 4 - interior-point, w/exact user-supplied Hessian ] [ 5 - interior-point, w/Hessian via finite differences ] KNITRO options 58 - KNITRO_OPT, 0 a non-zero integer N indicates that all KNITRO options should be handled by a KNITRO options file named 'knitro_user_options_N.txt' IPOPT options 60 - IPOPT_OPT, 0 See IPOPT_OPTIONS for details. MINOPF options 61 - MNS_FEASTOL, 0 (1e-3) primal feasibility tolerance, set to value of OPF_VIOLATION by default 62 - MNS_ROWTOL, 0 (1e-3) row tolerance set to value of OPF_VIOLATION by default 63 - MNS_XTOL, 0 (1e-3) x tolerance set to value of CONSTR_TOL_X by default 64 - MNS_MAJDAMP, 0 (0.5) major damping parameter 65 - MNS_MINDAMP, 0 (2.0) minor damping parameter 66 - MNS_PENALTY_PARM, 0 (1.0) penalty parameter 67 - MNS_MAJOR_IT, 0 (200) major iterations 68 - MNS_MINOR_IT, 0 (2500) minor iterations 69 - MNS_MAX_IT, 0 (2500) iterations limit 70 - MNS_VERBOSITY, -1 [ -1 - controlled by VERBOSE option ] [ 0 - print nothing ] [ 1 - print only termination status message ] [ 2 - print termination status and screen progress ] [ 3 - print screen progress, report file (usually fort.9) ] 71 - MNS_CORE, 0 (1200 * nb + 2 * (nb + ng)^2) memory allocation 72 - MNS_SUPBASIC_LIM, 0 (2*nb + 2*ng) superbasics limit 73 - MNS_MULT_PRICE, 0 (30) multiple price MIPS (including MIPS-sc), PDIPM, SC-PDIPM, and TRALM options 81 - PDIPM_FEASTOL, 0 feasibility (equality) tolerance for MIPS, PDIPM and SC-PDIPM, set to value of OPF_VIOLATION by default 82 - PDIPM_GRADTOL, 1e-6 gradient tolerance for MIPS, PDIPM and SC-PDIPM 83 - PDIPM_COMPTOL, 1e-6 complementary condition (inequality) tolerance for MIPS, PDIPM and SC-PDIPM 84 - PDIPM_COSTTOL, 1e-6 optimality tolerance for MIPS, PDIPM and SC-PDIPM 85 - PDIPM_MAX_IT, 150 maximum number of iterations for MIPS, PDIPM and SC-PDIPM 86 - SCPDIPM_RED_IT, 20 maximum number of MIPS-sc or SC-PDIPM reductions per iteration 87 - TRALM_FEASTOL, 0 feasibility tolerance for TRALM set to value of OPF_VIOLATION by default 88 - TRALM_PRIMETOL, 5e-4 primal variable tolerance for TRALM 89 - TRALM_DUALTOL, 5e-4 dual variable tolerance for TRALM 90 - TRALM_COSTTOL, 1e-5 optimality tolerance for TRALM 91 - TRALM_MAJOR_IT, 40 maximum number of major iterations 92 - TRALM_MINOR_IT, 100 maximum number of minor iterations 93 - SMOOTHING_RATIO, 0.04 piecewise linear curve smoothing ratio used in SC-PDIPM and TRALM CPLEX options 95 - CPLEX_LPMETHOD, 0 solution algorithm for continuous LPs [ 0 - automatic: let CPLEX choose ] [ 1 - primal simplex ] [ 2 - dual simplex ] [ 3 - network simplex ] [ 4 - barrier ] [ 5 - sifting ] [ 6 - concurrent (dual, barrier, and primal) ] 96 - CPLEX_QPMETHOD, 0 solution algorithm for continuous QPs [ 0 - automatic: let CPLEX choose ] [ 1 - primal simplex optimizer ] [ 2 - dual simplex optimizer ] [ 3 - network optimizer ] [ 4 - barrier optimizer ] 97 - CPLEX_OPT, 0 See CPLEX_OPTIONS for details MOSEK options 111 - MOSEK_LP_ALG, 0 solution algorithm for continuous LPs (MSK_IPAR_OPTIMIZER) [ 0 - automatic: let MOSEK choose ] [ 1 - interior point ] [ 4 - primal simplex ] [ 5 - dual simplex ] [ 6 - primal dual simplex ] [ 7 - automatic simplex (MOSEK chooses which simplex method) ] [ 10 - concurrent ] 112 - MOSEK_MAX_IT, 0 (400) interior point max iterations (MSK_IPAR_INTPNT_MAX_ITERATIONS) 113 - MOSEK_GAP_TOL, 0 (1e-8) interior point relative gap tolerance (MSK_DPAR_INTPNT_TOL_REL_GAP) 114 - MOSEK_MAX_TIME, 0 (-1) maximum time allowed for solver (MSK_DPAR_OPTIMIZER_MAX_TIME) 115 - MOSEK_NUM_THREADS, 0 (1) maximum number of threads to use (MSK_IPAR_INTPNT_NUM_THREADS) 116 - MOSEK_OPT, 0 See MOSEK_OPTIONS for details Gurobi options 121 - GRB_METHOD, 1 solution algorithm (Method) [ 0 - primal simplex ] [ 1 - dual simplex ] [ 2 - barrier ] [ 3 - concurrent (LP only) ] [ 4 - deterministic concurrent (LP only) ] 122 - GRB_TIMELIMIT, Inf maximum time allowed for solver (TimeLimit) 123 - GRB_THREADS, 0 (auto) maximum number of threads to use (Threads) 124 - GRB_OPT, 0 See GUROBI_OPTIONS for details deprecated options 51 - SPARSE_QP, 1 pass sparse matrices to QP and LP solvers if possible [ 0 or 1 ]
0001 function [options, names] = mpoption(varargin) 0002 %MPOPTION Used to set and retrieve a MATPOWER options vector. 0003 % 0004 % OPT = MPOPTION 0005 % returns the default options vector 0006 % 0007 % OPT = MPOPTION(NAME1, VALUE1, NAME2, VALUE2, ...) 0008 % returns the default options vector with new values for up to 7 0009 % options, NAME# is the name of an option, and VALUE# is the new 0010 % value. 0011 % 0012 % OPT = MPOPTION(OPT, NAME1, VALUE1, NAME2, VALUE2, ...) 0013 % same as above except it uses the options vector OPT as a base 0014 % instead of the default options vector. 0015 % 0016 % Examples: 0017 % opt = mpoption('PF_ALG', 2, 'PF_TOL', 1e-4); 0018 % opt = mpoption(opt, 'OPF_ALG', 565, 'VERBOSE', 2); 0019 % 0020 % The currently defined options are as follows: 0021 % 0022 % idx - NAME, default description [options] 0023 % --- ------------- ----------------------------------------- 0024 % power flow options 0025 % 1 - PF_ALG, 1 AC power flow algorithm 0026 % [ 1 - Newton's method ] 0027 % [ 2 - Fast-Decoupled (XB version) ] 0028 % [ 3 - Fast-Decoupled (BX version) ] 0029 % [ 4 - Gauss-Seidel ] 0030 % 2 - PF_TOL, 1e-8 termination tolerance on per unit 0031 % P & Q mismatch 0032 % 3 - PF_MAX_IT, 10 maximum number of iterations for 0033 % Newton's method 0034 % 4 - PF_MAX_IT_FD, 30 maximum number of iterations for 0035 % fast decoupled method 0036 % 5 - PF_MAX_IT_GS, 1000 maximum number of iterations for 0037 % Gauss-Seidel method 0038 % 6 - ENFORCE_Q_LIMS, 0 enforce gen reactive power limits 0039 % at expense of |V| 0040 % [ 0 - do NOT enforce limits ] 0041 % [ 1 - enforce limits, simultaneous bus type conversion ] 0042 % [ 2 - enforce limits, one-at-a-time bus type conversion ] 0043 % 10 - PF_DC, 0 DC modeling for power flow & OPF 0044 % [ 0 - use AC formulation & corresponding algorithm options ] 0045 % [ 1 - use DC formulation, ignore AC algorithm options ] 0046 % OPF options 0047 % 11 - OPF_ALG, 0 solver to use for AC OPF 0048 % [ 0 - choose default solver based on availability in the ] 0049 % [ following order, 540, 560 ] 0050 % [ 300 - constr, MATLAB Optimization Toolbox 1.x and 2.x ] 0051 % [ 320 - dense successive LP ] 0052 % [ 340 - sparse successive LP (relaxed) ] 0053 % [ 360 - sparse successive LP (full) ] 0054 % [ 500 - MINOPF, MINOS-based solver, requires optional ] 0055 % [ MEX-based MINOPF package, available from: ] 0056 % [ http://www.pserc.cornell.edu/minopf/ ] 0057 % [ 520 - fmincon, MATLAB Optimization Toolbox >= 2.x ] 0058 % [ 540 - PDIPM, primal/dual interior point method, requires ] 0059 % [ optional MEX-based TSPOPF package, available from: ] 0060 % [ http://www.pserc.cornell.edu/tspopf/ ] 0061 % [ 545 - SC-PDIPM, step-controlled variant of PDIPM, requires ] 0062 % [ TSPOPF (see 540) ] 0063 % [ 550 - TRALM, trust region based augmented Langrangian ] 0064 % [ method, requires TSPOPF (see 540) ] 0065 % [ 560 - MIPS, MATLAB Interior Point Solver ] 0066 % [ primal/dual interior point method (pure MATLAB) ] 0067 % [ 565 - MIPS-sc, step-controlled variant of MIPS ] 0068 % [ primal/dual interior point method (pure MATLAB) ] 0069 % [ 580 - IPOPT, requires MEX interface to IPOPT solver ] 0070 % [ available from: https://projects.coin-or.org/Ipopt/ ] 0071 % [ 600 - KNITRO, requires MATLAB Optimization Toolbox and ] 0072 % KNITRO libraries available from: http://www.ziena.com/ ] 0073 % 16 - OPF_VIOLATION, 5e-6 constraint violation tolerance 0074 % 17 - CONSTR_TOL_X, 1e-4 termination tol on x for constr/fmincon 0075 % 18 - CONSTR_TOL_F, 1e-4 termination tol on f for constr/fmincon 0076 % 19 - CONSTR_MAX_IT, 0 max number of iterations for constr/fmincon 0077 % [ 0 => default ] 0078 % 20 - LPC_TOL_GRAD, 3e-3 termination tolerance on gradient, LP-based 0079 % solver 0080 % 21 - LPC_TOL_X, 1e-4 termination tolerance on x (min step size), 0081 % LP-based solver 0082 % 22 - LPC_MAX_IT, 400 maximum number of iterations, LP-based slvr 0083 % 23 - LPC_MAX_RESTART, 5 maximum number of restarts, LP-based solver 0084 % 24 - OPF_FLOW_LIM, 0 qty to limit for branch flow constraints 0085 % [ 0 - apparent power flow (limit in MVA) ] 0086 % [ 1 - active power flow (limit in MW) ] 0087 % [ 2 - current magnitude (limit in MVA at 1 p.u. voltage) ] 0088 % 25 - OPF_IGNORE_ANG_LIM, 0 ignore angle difference limits for branches 0089 % even if specified [ 0 or 1 ] 0090 % 26 - OPF_ALG_DC, 0 solver to use for DC OPF 0091 % [ 0 - choose default solver based on availability in the ] 0092 % [ following order: 500, 600, 700, 100, 300, 200 ] 0093 % [ 100 - BPMPD, requires optional MEX-based BPMPD_MEX package ] 0094 % [ available from: http://www.pserc.cornell.edu/bpmpd/ ] 0095 % [ 200 - MIPS, MATLAB Interior Point Solver ] 0096 % [ primal/dual interior point method (pure MATLAB) ] 0097 % [ 250 - MIPS-sc, step-controlled variant of MIPS ] 0098 % [ 300 - MATLAB Optimization Toolbox, QUADPROG, LINPROG ] 0099 % [ 400 - IPOPT, requires MEX interface to IPOPT solver ] 0100 % available from: https://projects.coin-or.org/Ipopt/ ] 0101 % [ 500 - CPLEX, requires Matlab interface to CPLEX solver ] 0102 % [ 600 - MOSEK, requires Matlab interface to MOSEK solver ] 0103 % available from: http://www.mosek.com/ ] 0104 % [ 700 - GUROBI, requires Matlab interface to Gurobi optimizer ] 0105 % available from: http://www.gurobi.com/ ] 0106 % output options 0107 % 31 - VERBOSE, 1 amount of progress info printed 0108 % [ 0 - print no progress info ] 0109 % [ 1 - print a little progress info ] 0110 % [ 2 - print a lot of progress info ] 0111 % [ 3 - print all progress info ] 0112 % 32 - OUT_ALL, -1 controls pretty-printing of results 0113 % [ -1 - individual flags control what prints ] 0114 % [ 0 - do not print anything ] 0115 % [ (overrides individual flags) ] 0116 % [ 1 - print everything ] 0117 % [ (overrides individual flags) ] 0118 % 33 - OUT_SYS_SUM, 1 print system summary [ 0 or 1 ] 0119 % 34 - OUT_AREA_SUM, 0 print area summaries [ 0 or 1 ] 0120 % 35 - OUT_BUS, 1 print bus detail [ 0 or 1 ] 0121 % 36 - OUT_BRANCH, 1 print branch detail [ 0 or 1 ] 0122 % 37 - OUT_GEN, 0 print generator detail [ 0 or 1 ] 0123 % (OUT_BUS also includes gen info) 0124 % 38 - OUT_ALL_LIM, -1 controls what constraint info is printed 0125 % [ -1 - individual flags control what constraint info prints ] 0126 % [ 0 - no constraint info (overrides individual flags) ] 0127 % [ 1 - binding constraint info (overrides individual flags) ] 0128 % [ 2 - all constraint info (overrides individual flags) ] 0129 % 39 - OUT_V_LIM, 1 control output of voltage limit info 0130 % [ 0 - do not print ] 0131 % [ 1 - print binding constraints only ] 0132 % [ 2 - print all constraints ] 0133 % [ (same options for OUT_LINE_LIM, OUT_PG_LIM, OUT_QG_LIM) ] 0134 % 40 - OUT_LINE_LIM, 1 control output of line flow limit info 0135 % 41 - OUT_PG_LIM, 1 control output of gen P limit info 0136 % 42 - OUT_QG_LIM, 1 control output of gen Q limit info 0137 % 52 - RETURN_RAW_DER, 0 return constraint and derivative info 0138 % in results.raw (in fields g, dg, df, d2f) 0139 % FMINCON options 0140 % 55 - FMC_ALG, 4 algorithm used by fmincon for OPF 0141 % for Optimization Toolbox 4 and later 0142 % [ 1 - active-set ] 0143 % [ 2 - interior-point, w/default 'bfgs' Hessian approx ] 0144 % [ 3 - interior-point, w/ 'lbfgs' Hessian approx ] 0145 % [ 4 - interior-point, w/exact user-supplied Hessian ] 0146 % [ 5 - interior-point, w/Hessian via finite differences ] 0147 % 0148 % KNITRO options 0149 % 58 - KNITRO_OPT, 0 a non-zero integer N indicates that all 0150 % KNITRO options should be handled by a 0151 % KNITRO options file named 0152 % 'knitro_user_options_N.txt' 0153 % 0154 % IPOPT options 0155 % 60 - IPOPT_OPT, 0 See IPOPT_OPTIONS for details. 0156 % 0157 % MINOPF options 0158 % 61 - MNS_FEASTOL, 0 (1e-3) primal feasibility tolerance, 0159 % set to value of OPF_VIOLATION by default 0160 % 62 - MNS_ROWTOL, 0 (1e-3) row tolerance 0161 % set to value of OPF_VIOLATION by default 0162 % 63 - MNS_XTOL, 0 (1e-3) x tolerance 0163 % set to value of CONSTR_TOL_X by default 0164 % 64 - MNS_MAJDAMP, 0 (0.5) major damping parameter 0165 % 65 - MNS_MINDAMP, 0 (2.0) minor damping parameter 0166 % 66 - MNS_PENALTY_PARM, 0 (1.0) penalty parameter 0167 % 67 - MNS_MAJOR_IT, 0 (200) major iterations 0168 % 68 - MNS_MINOR_IT, 0 (2500) minor iterations 0169 % 69 - MNS_MAX_IT, 0 (2500) iterations limit 0170 % 70 - MNS_VERBOSITY, -1 0171 % [ -1 - controlled by VERBOSE option ] 0172 % [ 0 - print nothing ] 0173 % [ 1 - print only termination status message ] 0174 % [ 2 - print termination status and screen progress ] 0175 % [ 3 - print screen progress, report file (usually fort.9) ] 0176 % 71 - MNS_CORE, 0 (1200 * nb + 2 * (nb + ng)^2) memory allocation 0177 % 72 - MNS_SUPBASIC_LIM, 0 (2*nb + 2*ng) superbasics limit 0178 % 73 - MNS_MULT_PRICE, 0 (30) multiple price 0179 % 0180 % MIPS (including MIPS-sc), PDIPM, SC-PDIPM, and TRALM options 0181 % 81 - PDIPM_FEASTOL, 0 feasibility (equality) tolerance 0182 % for MIPS, PDIPM and SC-PDIPM, set 0183 % to value of OPF_VIOLATION by default 0184 % 82 - PDIPM_GRADTOL, 1e-6 gradient tolerance for MIPS, PDIPM 0185 % and SC-PDIPM 0186 % 83 - PDIPM_COMPTOL, 1e-6 complementary condition (inequality) 0187 % tolerance for MIPS, PDIPM and SC-PDIPM 0188 % 84 - PDIPM_COSTTOL, 1e-6 optimality tolerance for MIPS, PDIPM 0189 % and SC-PDIPM 0190 % 85 - PDIPM_MAX_IT, 150 maximum number of iterations for MIPS, 0191 % PDIPM and SC-PDIPM 0192 % 86 - SCPDIPM_RED_IT, 20 maximum number of MIPS-sc or SC-PDIPM 0193 % reductions per iteration 0194 % 87 - TRALM_FEASTOL, 0 feasibility tolerance for TRALM 0195 % set to value of OPF_VIOLATION by default 0196 % 88 - TRALM_PRIMETOL, 5e-4 primal variable tolerance for TRALM 0197 % 89 - TRALM_DUALTOL, 5e-4 dual variable tolerance for TRALM 0198 % 90 - TRALM_COSTTOL, 1e-5 optimality tolerance for TRALM 0199 % 91 - TRALM_MAJOR_IT, 40 maximum number of major iterations 0200 % 92 - TRALM_MINOR_IT, 100 maximum number of minor iterations 0201 % 93 - SMOOTHING_RATIO, 0.04 piecewise linear curve smoothing ratio 0202 % used in SC-PDIPM and TRALM 0203 % 0204 % CPLEX options 0205 % 95 - CPLEX_LPMETHOD, 0 solution algorithm for continuous LPs 0206 % [ 0 - automatic: let CPLEX choose ] 0207 % [ 1 - primal simplex ] 0208 % [ 2 - dual simplex ] 0209 % [ 3 - network simplex ] 0210 % [ 4 - barrier ] 0211 % [ 5 - sifting ] 0212 % [ 6 - concurrent (dual, barrier, and primal) ] 0213 % 96 - CPLEX_QPMETHOD, 0 solution algorithm for continuous QPs 0214 % [ 0 - automatic: let CPLEX choose ] 0215 % [ 1 - primal simplex optimizer ] 0216 % [ 2 - dual simplex optimizer ] 0217 % [ 3 - network optimizer ] 0218 % [ 4 - barrier optimizer ] 0219 % 97 - CPLEX_OPT, 0 See CPLEX_OPTIONS for details 0220 % 0221 % MOSEK options 0222 % 111 - MOSEK_LP_ALG, 0 solution algorithm for continuous LPs 0223 % (MSK_IPAR_OPTIMIZER) 0224 % [ 0 - automatic: let MOSEK choose ] 0225 % [ 1 - interior point ] 0226 % [ 4 - primal simplex ] 0227 % [ 5 - dual simplex ] 0228 % [ 6 - primal dual simplex ] 0229 % [ 7 - automatic simplex (MOSEK chooses which simplex method) ] 0230 % [ 10 - concurrent ] 0231 % 112 - MOSEK_MAX_IT, 0 (400) interior point max iterations 0232 % (MSK_IPAR_INTPNT_MAX_ITERATIONS) 0233 % 113 - MOSEK_GAP_TOL, 0 (1e-8) interior point relative gap tolerance 0234 % (MSK_DPAR_INTPNT_TOL_REL_GAP) 0235 % 114 - MOSEK_MAX_TIME, 0 (-1) maximum time allowed for solver 0236 % (MSK_DPAR_OPTIMIZER_MAX_TIME) 0237 % 115 - MOSEK_NUM_THREADS, 0 (1) maximum number of threads to use 0238 % (MSK_IPAR_INTPNT_NUM_THREADS) 0239 % 116 - MOSEK_OPT, 0 See MOSEK_OPTIONS for details 0240 % 0241 % Gurobi options 0242 % 121 - GRB_METHOD, 1 solution algorithm (Method) 0243 % [ 0 - primal simplex ] 0244 % [ 1 - dual simplex ] 0245 % [ 2 - barrier ] 0246 % [ 3 - concurrent (LP only) ] 0247 % [ 4 - deterministic concurrent (LP only) ] 0248 % 122 - GRB_TIMELIMIT, Inf maximum time allowed for solver (TimeLimit) 0249 % 123 - GRB_THREADS, 0 (auto) maximum number of threads to use (Threads) 0250 % 124 - GRB_OPT, 0 See GUROBI_OPTIONS for details 0251 % 0252 % deprecated options 0253 % 51 - SPARSE_QP, 1 pass sparse matrices to QP and LP 0254 % solvers if possible [ 0 or 1 ] 0255 0256 % MATPOWER 0257 % $Id: mpoption.m,v 1.53 2011/12/01 19:15:20 cvs Exp $ 0258 % by Ray Zimmerman, PSERC Cornell 0259 % Copyright (c) 1996-2011 by Power System Engineering Research Center (PSERC) 0260 % 0261 % This file is part of MATPOWER. 0262 % See http://www.pserc.cornell.edu/matpower/ for more info. 0263 % 0264 % MATPOWER is free software: you can redistribute it and/or modify 0265 % it under the terms of the GNU General Public License as published 0266 % by the Free Software Foundation, either version 3 of the License, 0267 % or (at your option) any later version. 0268 % 0269 % MATPOWER is distributed in the hope that it will be useful, 0270 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0271 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0272 % GNU General Public License for more details. 0273 % 0274 % You should have received a copy of the GNU General Public License 0275 % along with MATPOWER. If not, see <http://www.gnu.org/licenses/>. 0276 % 0277 % Additional permission under GNU GPL version 3 section 7 0278 % 0279 % If you modify MATPOWER, or any covered work, to interface with 0280 % other modules (such as MATLAB code and MEX-files) available in a 0281 % MATLAB(R) or comparable environment containing parts covered 0282 % under other licensing terms, the licensors of MATPOWER grant 0283 % you additional permission to convey the resulting work. 0284 0285 %%----- set up default option values ----- 0286 i = 1; 0287 if rem(nargin, 2) %% odd number of arguments 0288 options = varargin{1}; %% base options vector passed in 0289 i = 2; %% start processing parameters with 2nd one 0290 else %% even number of parameters 0291 options = [ %% use defaults for base options vector 0292 0293 %% power flow options 0294 1; %% 1 - PF_ALG 0295 1e-8; %% 2 - PF_TOL 0296 10; %% 3 - PF_MAX_IT 0297 30; %% 4 - PF_MAX_IT_FD 0298 1000; %% 5 - PF_MAX_IT_GS 0299 0; %% 6 - ENFORCE_Q_LIMS 0300 0; %% 7 - RESERVED7 0301 0; %% 8 - RESERVED8 0302 0; %% 9 - RESERVED9 0303 0; %% 10 - PF_DC 0304 0305 %% OPF options 0306 0; %% 11 - OPF_ALG 0307 0; %% 12 - RESERVED12 (was OPF_ALG_POLY = 100) 0308 0; %% 13 - RESERVED13 (was OPF_ALG_PWL = 200) 0309 0; %% 14 - RESERVED14 (was OPF_POLY2PWL_PTS = 10) 0310 0; %% 15 - OPF_NEQ, not a user option (number of eq constraints 0311 %% for copf_solver, lpopf_solver, set by program) 0312 5e-6; %% 16 - OPF_VIOLATION 0313 1e-4; %% 17 - CONSTR_TOL_X 0314 1e-4; %% 18 - CONSTR_TOL_F 0315 0; %% 19 - CONSTR_MAX_IT 0316 3e-3; %% 20 - LPC_TOL_GRAD 0317 1e-4; %% 21 - LPC_TOL_X 0318 400; %% 22 - LPC_MAX_IT 0319 5; %% 23 - LPC_MAX_RESTART 0320 0; %% 24 - OPF_FLOW_LIM 0321 0; %% 25 - OPF_IGNORE_ANG_LIM 0322 0; %% 26 - OPF_ALG_DC 0323 0; %% 27 - RESERVED27 0324 0; %% 28 - RESERVED28 0325 0; %% 29 - RESERVED29 0326 0; %% 30 - RESERVED30 0327 0328 %% output options 0329 1; %% 31 - VERBOSE 0330 -1; %% 32 - OUT_ALL 0331 1; %% 33 - OUT_SYS_SUM 0332 0; %% 34 - OUT_AREA_SUM 0333 1; %% 35 - OUT_BUS 0334 1; %% 36 - OUT_BRANCH 0335 0; %% 37 - OUT_GEN 0336 -1; %% 38 - OUT_ALL_LIM 0337 1; %% 39 - OUT_V_LIM 0338 1; %% 40 - OUT_LINE_LIM 0339 1; %% 41 - OUT_PG_LIM 0340 1; %% 42 - OUT_QG_LIM 0341 0; %% 43 - RESERVED43 (was OUT_RAW) 0342 0; %% 44 - RESERVED44 0343 0; %% 45 - RESERVED45 0344 0; %% 46 - RESERVED46 0345 0; %% 47 - RESERVED47 0346 0; %% 48 - RESERVED48 0347 0; %% 49 - RESERVED49 0348 0; %% 50 - RESERVED50 0349 0350 %% other options 0351 1; %% 51 - SPARSE_QP 0352 0; %% 52 - RETURN_RAW_DER 0353 0; %% 53 - RESERVED53 0354 0; %% 54 - RESERVED54 0355 4; %% 55 - FMC_ALG 0356 0; %% 56 - RESERVED56 0357 0; %% 57 - RESERVED57 0358 0; %% 58 - KNITRO_OPT 0359 0; %% 59 - RESERVED59 0360 0; %% 60 - IPOPT_OPT 0361 0362 %% MINOPF options 0363 0; %% 61 - MNS_FEASTOL 0364 0; %% 62 - MNS_ROWTOL 0365 0; %% 63 - MNS_XTOL 0366 0; %% 64 - MNS_MAJDAMP 0367 0; %% 65 - MNS_MINDAMP 0368 0; %% 66 - MNS_PENALTY_PARM 0369 0; %% 67 - MNS_MAJOR_IT 0370 0; %% 68 - MNS_MINOR_IT 0371 0; %% 69 - MNS_MAX_IT 0372 -1; %% 70 - MNS_VERBOSITY 0373 0; %% 71 - MNS_CORE 0374 0; %% 72 - MNS_SUPBASIC_LIM 0375 0; %% 73 - MNS_MULT_PRICE 0376 0; %% 74 - RESERVED74 0377 0; %% 75 - RESERVED75 0378 0; %% 76 - RESERVED76 0379 0; %% 77 - RESERVED77 0380 0; %% 78 - RESERVED78 0381 0; %% 79 - RESERVED79 0382 0; %% 80 - FORCE_PC_EQ_P0, for c3sopf 0383 0384 %% MIPS, PDIPM, SC-PDIPM, and TRALM options 0385 0; %% 81 - PDIPM_FEASTOL 0386 1e-6; %% 82 - PDIPM_GRADTOL 0387 1e-6; %% 83 - PDIPM_COMPTOL 0388 1e-6; %% 84 - PDIPM_COSTTOL 0389 150; %% 85 - PDIPM_MAX_IT 0390 20; %% 86 - SCPDIPM_RED_IT 0391 0; %% 87 - TRALM_FEASTOL 0392 5e-4; %% 88 - TRALM_PRIMETOL 0393 5e-4; %% 89 - TRALM_DUALTOL 0394 1e-5; %% 90 - TRALM_COSTTOL 0395 40; %% 91 - TRALM_MAJOR_IT 0396 100; %% 92 - TRALM_MINOR_IT 0397 0.04; %% 93 - SMOOTHING_RATIO 0398 0; %% 94 - RESERVED94 0399 0400 %% CPLEX options 0401 0; %% 95 - CPLEX_LPMETHOD 0402 0; %% 96 - CPLEX_QPMETHOD 0403 0; %% 97 - CPLEX_OPT 0404 0; %% 98 - RESERVED98 0405 0; %% 99 - RESERVED99 0406 0; %% 100 - RESERVED100 0407 0; %% 101 - RESERVED101 0408 0; %% 102 - RESERVED102 0409 0; %% 103 - RESERVED103 0410 0; %% 104 - RESERVED104 0411 0; %% 105 - RESERVED105 0412 0; %% 106 - RESERVED106 0413 0; %% 107 - RESERVED107 0414 0; %% 108 - RESERVED108 0415 0; %% 109 - RESERVED109 0416 0; %% 110 - RESERVED110 0417 0418 %% MOSEK options 0419 0; %% 111 - MOSEK_LP_ALG 0420 0; %% 112 - MOSEK_MAX_IT 0421 0; %% 113 - MOSEK_GAP_TOL 0422 0; %% 114 - MOSEK_MAX_TIME 0423 0; %% 115 - MOSEK_NUM_THREADS 0424 0; %% 116 - MOSEK_OPT 0425 0; %% 117 - RESERVED117 0426 0; %% 118 - RESERVED118 0427 0; %% 119 - RESERVED119 0428 0; %% 120 - RESERVED120 0429 0430 %% Gurobi options 0431 1; %% 121 - GRB_METHOD 0432 Inf; %% 122 - GRB_TIMELIMIT 0433 0; %% 123 - GRB_THREADS 0434 0; %% 124 - GRB_OPT 0435 ]; 0436 end 0437 0438 %%----- set up option names ----- 0439 %% power flow options 0440 names = char( 'PF_ALG', ... %% 1 0441 'PF_TOL', ... %% 2 0442 'PF_MAX_IT', ... %% 3 0443 'PF_MAX_IT_FD', ... %% 4 0444 'PF_MAX_IT_GS', ... %% 5 0445 'ENFORCE_Q_LIMS', ... %% 6 0446 'RESERVED7', ... %% 7 0447 'RESERVED8', ... %% 8 0448 'RESERVED9', ... %% 9 0449 'PF_DC' ); %% 10 0450 0451 %% OPF options 0452 names = char( names, ... 0453 'OPF_ALG', ... %% 11 0454 'RESERVED12', ... %% 12 (was OPF_ALG_POLY) 0455 'RESERVED13', ... %% 13 (was OPF_ALG_PWL) 0456 'RESERVED14', ... %% 14 (was OPF_POLY2PWL_PTS) 0457 'OPF_NEQ', ... %% 15 0458 'OPF_VIOLATION', ... %% 16 0459 'CONSTR_TOL_X', ... %% 17 0460 'CONSTR_TOL_F', ... %% 18 0461 'CONSTR_MAX_IT', ... %% 19 0462 'LPC_TOL_GRAD' ); %% 20 0463 names = char( names, ... 0464 'LPC_TOL_X', ... %% 21 0465 'LPC_MAX_IT', ... %% 22 0466 'LPC_MAX_RESTART', ... %% 23 0467 'OPF_FLOW_LIM', ... %% 24 0468 'OPF_IGNORE_ANG_LIM', ... %% 25 0469 'OPF_ALG_DC', ... %% 26 0470 'RESERVED27', ... %% 27 0471 'RESERVED28', ... %% 28 0472 'RESERVED29', ... %% 29 0473 'RESERVED30' ); %% 30 0474 0475 %% output options 0476 names = char( names, ... 0477 'VERBOSE', ... %% 31 0478 'OUT_ALL', ... %% 32 0479 'OUT_SYS_SUM', ... %% 33 0480 'OUT_AREA_SUM', ... %% 34 0481 'OUT_BUS', ... %% 35 0482 'OUT_BRANCH', ... %% 36 0483 'OUT_GEN', ... %% 37 0484 'OUT_ALL_LIM', ... %% 38 0485 'OUT_V_LIM', ... %% 39 0486 'OUT_LINE_LIM' ); %% 40 0487 names = char( names, ... 0488 'OUT_PG_LIM', ... %% 41 0489 'OUT_QG_LIM', ... %% 42 0490 'RESERVED43', ... %% 43 (was OUT_RAW) 0491 'RESERVED44', ... %% 44 0492 'RESERVED45', ... %% 45 0493 'RESERVED46', ... %% 46 0494 'RESERVED47', ... %% 47 0495 'RESERVED48', ... %% 48 0496 'RESERVED49', ... %% 49 0497 'RESERVED50' ); %% 50 0498 %% other options 0499 names = char( names, ... 0500 'SPARSE_QP', ... %% 51 0501 'RETURN_RAW_DER', ... %% 52 0502 'RESERVED53', ... %% 53 0503 'RESERVED54', ... %% 54 0504 'FMC_ALG', ... %% 55 0505 'RESERVED56', ... %% 56 0506 'RESERVED57', ... %% 57 0507 'KNITRO_OPT', ... %% 58 0508 'RESERVED59', ... %% 59 0509 'IPOPT_OPT' ); %% 60 0510 %% MINOS options 0511 names = char( names, ... 0512 'MNS_FEASTOL', ... %% 61 0513 'MNS_ROWTOL', ... %% 62 0514 'MNS_XTOL', ... %% 63 0515 'MNS_MAJDAMP', ... %% 64 0516 'MNS_MINDAMP', ... %% 65 0517 'MNS_PENALTY_PARM', ... %% 66 0518 'MNS_MAJOR_IT', ... %% 67 0519 'MNS_MINOR_IT', ... %% 68 0520 'MNS_MAX_IT', ... %% 69 0521 'MNS_VERBOSITY' ); %% 70 0522 %% other flags 0523 names = char( names, ... 0524 'MNS_CORE', ... %% 71 0525 'MNS_SUPBASIC_LIM', ... %% 72 0526 'MNS_MULT_PRICE', ... %% 73 0527 'RESERVED74', ... %% 74 0528 'RESERVED75', ... %% 75 0529 'RESERVED76', ... %% 76 0530 'RESERVED77', ... %% 77 0531 'RESERVED78', ... %% 78 0532 'RESERVED79', ... %% 79 0533 'FORCE_PC_EQ_P0' ); %% 80 0534 0535 %% MIPS, PDIPM, SC-PDIPM, and TRALM options 0536 names = char( names, ... 0537 'PDIPM_FEASTOL', ... %% 81 0538 'PDIPM_GRADTOL', ... %% 82 0539 'PDIPM_COMPTOL', ... %% 83 0540 'PDIPM_COSTTOL', ... %% 84 0541 'PDIPM_MAX_IT', ... %% 85 0542 'SCPDIPM_RED_IT', ... %% 86 0543 'TRALM_FEASTOL', ... %% 87 0544 'TRALM_PRIMETOL', ... %% 88 0545 'TRALM_DUALTOL', ... %% 89 0546 'TRALM_COSTTOL', ... %% 90 0547 'TRALM_MAJOR_IT', ... %% 91 0548 'TRALM_MINOR_IT', ... %% 92 0549 'SMOOTHING_RATIO' ); %% 93 0550 0551 %% CPLEX options 0552 names = char( names, ... 0553 'RESERVED94', ... %% 94 0554 'CPLEX_LPMETHOD', ... %% 95 0555 'CPLEX_QPMETHOD', ... %% 96 0556 'CPLEX_OPT', ... %% 97 0557 'RESERVED98', ... %% 98 0558 'RESERVED99', ... %% 99 0559 'RESERVED100', ... %% 100 0560 'RESERVED101', ... %% 101 0561 'RESERVED102', ... %% 102 0562 'RESERVED103', ... %% 103 0563 'RESERVED104', ... %% 104 0564 'RESERVED105', ... %% 105 0565 'RESERVED106', ... %% 106 0566 'RESERVED107', ... %% 107 0567 'RESERVED108', ... %% 108 0568 'RESERVED109', ... %% 109 0569 'RESERVED110' ); %% 110 0570 0571 %% MOSEK options 0572 names = char( names, ... 0573 'MOSEK_LP_ALG', ... %% 111 0574 'MOSEK_MAX_IT', ... %% 112 0575 'MOSEK_GAP_TOL', ... %% 113 0576 'MOSEK_MAX_TIME', ... %% 114 0577 'MOSEK_NUM_THREADS', ... %% 115 0578 'MOSEK_OPT', ... %% 116 0579 'RESERVED117', ... %% 117 0580 'RESERVED118', ... %% 118 0581 'RESERVED119', ... %% 119 0582 'RESERVED120' ); %% 120 0583 0584 %% Gurobi options 0585 names = char( names, ... 0586 'GRB_METHOD', ... %% 121 0587 'GRB_TIMELIMIT', ... %% 122 0588 'GRB_THREADS', ... %% 123 0589 'GRB_OPT' ); %% 124 0590 0591 %%----- process parameters ----- 0592 while i <= nargin 0593 %% get parameter name and value 0594 pname = varargin{i}; 0595 pval = varargin{i+1}; 0596 0597 %% get parameter index 0598 namestr = names'; 0599 namestr = namestr(:)'; 0600 namelen = size(names, 2); 0601 pidx = ceil(findstr([pname blanks(namelen-length(pname))], namestr) / namelen); 0602 if isempty(pidx) 0603 error('"%s" is not a valid named option', pname); 0604 end 0605 % fprintf('''%s'' (%d) = %d\n', pname, pidx, pval); 0606 0607 %% update option 0608 options(pidx) = pval; 0609 0610 i = i + 2; %% go to next parameter 0611 end