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