global_settings

Contents

global_settings#

A singleton object that contains global settings such as penalty cost values. A single global_settings object with the name ‘global_settings’ is automatically created when SHOP is initialized

Input connections

Output connections

License

SHOP_OPEN

Release version

14.0.0.1

Attributes#

load_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the creation of load penalty variables to add to the load balance constraint. Can also be set with the command ‘penalty flag’.

rsv_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of reservoir storage penalty variables. Can also be set with the command ‘penalty flag’.

volume_ramp_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables for volume ramping on reservoir. Can also be set with the command ‘penalty flag’.

level_ramp_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables for level ramping on reservoir. Can also be set with the command ‘penalty flag’.

production_ramp_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables for power ramping on plant production. Can also be set with the command ‘penalty flag’.

plant_min_q_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the min discharge restrictions on all plants. Default value -1 uses the min_q_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

plant_min_p_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the min power restrictions on all plants. Default value -1 uses the min_p_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

plant_max_q_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the max discharge restrictions on all plants. Default value -1 uses the max_q_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

plant_max_p_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the max power restrictions on all plants. Default value -1 uses the max_p_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

gate_min_q_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the min discharge restrictions on all gates. Default value -1 uses the min_q_penalty_flag specified on each gate to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

gate_max_q_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the max discharge restrictions on all gates. Default value -1 uses the max_q_penalty_flag specified on each gate to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

gate_ramp_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables to the gate ramping restrictions. Can also be set with the command ‘penalty flag’.

plant_schedule_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables to allow breaking the plant production or discharge schedule. Can also be set with the command ‘penalty flag’.

gen_discharge_schedule_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables to allow breaking the generator discharge schedule.

pump_schedule_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables to allow breaking the pump consumption or upflow schedule.

power_limit_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the addition of penalty variables to allow breaking the sum power limits for a group of plants. Can also be set with the command ‘penalty flag’.

power_limit_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for breaking the constraints limiting the sum power output for a group of plants. Default value is 50000 NOK/MWh. Can also be set with the command ‘penalty cost’.

load_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for not fulfilling the load obligation. Default value is 5000 NOK/MWh. Can also be set with the command ‘penalty cost’.

rsv_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking the reservoir water balance constraints. Default value is 10,000,000 NOK/Mm3. Can also be set with the command ‘penalty cost’.

rsv_hard_limit_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking the hard min/max volume or level limit constraints on all reservoirs. Default value is 9,000,000 NOK/Mm3. Can also be set with the command ‘set rsv_hard_limit_penalty_cost’.

volume_ramp_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking the reservoir volume ramping constraints. Default value is 100 NOK/MM3. Can also be set with the command ‘penalty cost’.

level_ramp_penalty_cost#

Data type: double. Unit: NOK/METER.

The penalty cost for breaking the reservoir level ramping constraints. Default value is 100 NOK/METER.

production_ramp_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for breaking the plant power production ramping constraints. Default value is 100 NOK/MWh. Can also be set with the command ‘penalty cost’.

plant_discharge_ramp_penalty_cost#

Data type: double. Unit: NOK/M3/S.

The penalty cost for breaking the plant discharge ramping constraints. Default value is 100 NOK/m3s. Can also be set with the command ‘penalty cost’.

plant_soft_p_penalty#

Data type: double. Unit: NOK/MWH.

The penalty cost for breaking max and min power production constraints on plant level if max_p_penalty_cost and min_p_penalty_cost are not set for the plant. Default value is 100 NOK/MWh. Can also be set with the command ‘penalty cost’.

plant_soft_q_penalty#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking max and min discharge constraints on plant level if max_q_penalty_cost and min_q_penalty_cost are not set for the plant. Default value is 100000 NOK/Mm3. Can also be set with the command ‘penalty cost’.

plant_sched_penalty_cost_up#

Data type: double. Unit: NOK.

The penalty cost for breaking the plant production or discharge schedules in upward direction. Default value is 1000000 NOK/MWh or 1000000 NOK/Mm3.

plant_sched_penalty_cost_down#

Data type: double. Unit: NOK.

The penalty cost for breaking the plant production or discharge schedules in downward direction. Default value is 1000000 NOK/MWh or 1000000 NOK/Mm3.

gen_discharge_sched_penalty_cost_up#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking the generator discharge schedule in upward direction. Default value is 1000000 NOK/Mm3.

gen_discharge_sched_penalty_cost_down#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking the generator discharge schedules in downward direction. Default value is 1000000 NOK/Mm3.

pump_sched_penalty_cost_up#

Data type: double. Unit: NOK.

The penalty cost for breaking the pump production or discharge schedules in upward direction. Default value is 1000000 NOK/MWh or 1000000 NOK/Mm3.

pump_sched_penalty_cost_down#

Data type: double. Unit: NOK.

The penalty cost for breaking the pump production or discharge schedules in downward direction. Default value is 1000000 NOK/MWh or 1000000 NOK/Mm3.

gate_ramp_penalty_cost#

Data type: double. Unit: NOK/M3/S.

The penalty cost for breaking the gate discharge ramping constraints. Default value is 360 NOK/(m3/s). Can also be set with the command ‘penalty cost’.

discharge_group_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for breaking the discharge group constraints. Default value is 1000000 NOK/Mm3.

reserve_schedule_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for breaking the unit reserve schedule constraints. Default value is 10000 NOK/MWH. Can also be set with the command ‘set reserve_schedule_penalty_cost’.

reserve_group_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for delivering less than the reserve obligations of any reserve type in any reserve group. Default value is 10000 NOK/MWH. Can also be set with the command ‘set reserve_penalty_cost’.

bypass_cost#

Data type: double. Unit: NOK/MM3.

The cost of discharging water in bypass gates. Default value is 0.01 NOK/Mm3.

gate_cost#

Data type: double. Unit: NOK/MM3.

The cost of discharging water in regular gates. Default value is 0 NOK/Mm3.

overflow_cost#

Data type: double. Unit: NOK/MM3.

The cost of discharging water in spill gates. Default value is 50000 NOK/Mm3. Can also be set with the command ‘penalty cost’.

overflow_cost_time_factor#

Data type: double. Unit: NOK/MM3H.

A small negative cost element added to the spillage cost to avoid all flooding to occur at the end of the optimization period. Default value is -0.000001 NOK/Mm3/h. Can also be set with the command ‘penalty cost’.

gen_reserve_ramping_cost#

Data type: double. Unit: NOK/MW.

The default cost for ramping on all reserves types delivered on generators if generator specific or reserve type specific costs are not present. See the reserve type specific attributes fcr_n_ramping_cost, fcr_d_ramping_cost, frr_ramping_cost, and rr_ramping_cost and the command ‘set reserve_ramping_cost’.

pump_reserve_ramping_cost#

Data type: double. Unit: NOK/MW.

The default cost for ramping on all reserves types delivered on pumps if pump specific or reserve type specific costs are not present. See the reserve type specific attributes fcr_n_ramping_cost, fcr_d_ramping_cost, frr_ramping_cost, and rr_ramping_cost and the command ‘set reserve_ramping_cost’.

reserve_contribution_cost#

Data type: double. Unit: NOK.

The cost for a unit participating in the reserve delivery per time step. Default value is 0 NOK. Can also be set with the command ‘set reserve_contribution_cost’.

gate_ramp_cost#

Data type: double. Unit: NOK/M3/S.

The cost of ramping on gate discharge. Default value is 0 NOK/(m3/s).

reserve_group_slack_cost#

Data type: double. Unit: NOK/MWH.

The cost for delivering more than the reserve obligations of any reserve type in any reserve group. Default value is 0.000001 NOK/MWH. Can also be set with the command ‘set reserve_slack_cost’.

fcr_n_ramping_cost#

Data type: double. Unit: NOK/MW.

The cost for ramping on the FCR-N reserves delivered by the generators and pumps if unit specific costs are not provided. Default value of 1e40 signifies that the ramping cost is not specified, and that the default gen_reserve_ramping_cost should be used instead. Can also be set with the command ‘set reserve_ramping_cost’.

fcr_d_ramping_cost#

Data type: double. Unit: NOK/MW.

The cost for ramping on the FCR-D reserves delivered by the generators and pumps if unit specific costs are not provided. Default value of 1e40 signifies that the ramping cost is not specified, and that the default gen_reserve_ramping_cost should be used instead. Can also be set with the command ‘set reserve_ramping_cost’.

frr_ramping_cost#

Data type: double. Unit: NOK/MW.

The cost for ramping on the FRR reserves delivered by the generators and pumps if unit specific costs are not provided. Default value of 1e40 signifies that the ramping cost is not specified, and that the default gen_reserve_ramping_cost should be used instead. Can also be set with the command ‘set reserve_ramping_cost’.

rr_ramping_cost#

Data type: double. Unit: NOK/MW.

The cost for ramping on the RR reserves delivered by the generators and pumps if unit specific costs are not provided. Default value of 1e40 signifies that the ramping cost is not specified, and that the default gen_reserve_ramping_cost should be used instead. Can also be set with the command ‘set reserve_ramping_cost’.

fcr_n_up_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved FCR-N up capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

fcr_n_down_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved FCR-N down capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

fcr_d_up_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved FCR-D up capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

fcr_d_down_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved FCR-D down capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

frr_up_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved FRR up capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

frr_down_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved FRR down capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

rr_up_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved RR up capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

rr_down_activation_factor#

Data type: double. Unit: NO_UNIT.

The fraction (between 0 and 1) of the reserved RR down capacity that is assumed to be activated for all units in the system, the plant specific attribute with the same name will override this value.

fcr_n_up_activation_time#

Data type: double. Unit: NO_UNIT.

The expected activation duration for the reserved FCR-N up capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

fcr_n_down_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved FCR-N down capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

fcr_d_up_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved FCR-D up capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

fcr_d_down_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved FCR-D down capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

frr_up_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved FRR up capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

frr_down_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved FRR down capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

rr_up_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved RR up capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

rr_down_activation_time#

Data type: double. Unit: HOUR.

The expected activation duration for the reserved RR down capacity that is assumed for all units in the system, the plant specific attribute with the same name will override this value.

fcr_n_up_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of FCR-N up reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

fcr_n_down_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of FCR-N down reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

fcr_d_up_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of FCR-D up reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

fcr_d_down_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of FCR-D down reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

frr_up_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of FRR up reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

frr_down_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of FRR down reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

rr_up_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of RR up reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

rr_down_activation_penalty_cost#

Data type: double. Unit: NOK/MM3.

The penalty cost for violating the reservoir volume constraints due to potential activation of RR down reserves. Can also be set with the command ‘set reserve_activation_penalty_cost’.

reserve_tactical_activation_cost_scaling#

Data type: double. Unit: NO_UNIT.

The penalty cost for violating the tactical reservoir volumes is decided by the reserve activation penalty cost scaled by this factor. Can also be set with the command ‘set reserve_tactical_activation_cost_scaling’.

rsv_period_limit_penalty_cost#

Data type: double. Unit: NOK/METER.

The penalty cost for breaking the reservoir period level limit constraints, such as the dynamic_level_limit. Default value is 100 000 NOK/METER.

plant_soft_consumption_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for breaking max and min consumption constraints on plant level if no penalty costs are set for the plant. Default value is 100 NOK/MWh. Can also be set with the command ‘penalty cost’.

plant_soft_upflow_penalty_cost#

Data type: double. Unit: NOK/MWH.

The penalty cost for breaking max and min upflow constraints on plant level if no penalty costs are set for the plant. Default value is 100 NOK/MWh. Can also be set with the command ‘penalty cost’.

plant_min_consumption_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the min consumption restrictions on all plants. Default value -1 uses the min_consumption_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

plant_max_consumption_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the max consumption restrictions on all plants. Default value -1 uses the max_consumption_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

plant_min_upflow_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the min upflow restrictions on all plants. Default value -1 uses the min_upflow_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

plant_max_upflow_penalty_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the addition of penalty variables to the max upflow restrictions on all plants. Default value -1 uses the min_upflow_penalty_flag specified on each plant to decide if the penalty variables should be added. Can also be set with the command ‘penalty flag’.

include_rr_schedules_in_bp_curves#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) inclusion of RR reserve schedules in best profit calculations. Default setting is off.

use_heuristic_basis#

Data type: int. Unit: NO_UNIT.

If this parameter is set to 1 a heuristic start basis is given to CPLEX, while a value of 0 (default) does not provide CPLEX with a start basis guess. Can also be set with the command ‘set optbasis’.

nodelog#

Data type: int. Unit: NO_UNIT.

Set the MIP node logging interval (100 is default) used by CPLEX when updating the CPLEX log file. Can also be set with the command ‘set mip_nodelog’.

max_num_threads#

Data type: int. Unit: NO_UNIT.

Set the max number of threads CPLEX can use when solving a MIP problem or using the barrier solver. Default of -1 lets CPLEX use all available threads. Can also be set with the command ‘set max_num_threads’.

parallelmode#

Data type: int. Unit: NO_UNIT.

Choose the parallel mode CPLEX uses when solving a problem in parallel: 1 (default) gives deterministic result behaviour while -1 lets CPLEX fully utilize the parallel processing. A value of 0 lts CPLEX choose based on the problem. Can also be set with the command ‘set parallel_mode’.

timelimit#

Data type: double. Unit: SECOND.

Maximal number of seconds that can be used to solve a SHOP iteration in CPLEX. Default value is 900 s. Can also be set with the command ‘set timelimit’.

mipgap_rel#

Data type: double. Unit: NO_UNIT.

The maximal relative objective function gap between final integer solution and best bound in CPLEX. Default value is -1 which uses default CPLEX relative MIP gap. Can also be set with the command ‘set mipgap’.

mipgap_abs#

Data type: double. Unit: NOK.

The maximal objective function gap between final integer solution and best bound in CPLEX. Default value is -1 which uses default CPLEX absolute MIP gap. Can also be set with the command ‘set mipgap’.

inteps#

Data type: double. Unit: NO_UNIT.

Numerical tolerance for when CPLEX will consider a decimal number to be integer. Default value is 0.00001. Can also be set with the command ‘set inteps’.

input_basis_name#

Data type: string. Unit: STRING.

Name of the file containing a saved input basis for the optimization problem is saved. If no name is given, no input basis will be loaded. Can also be set with the command ‘read optbasis’.

output_basis_name#

Data type: string. Unit: STRING.

Name of the file where the optimal basis from the optimization problem in the next iteration is saved. If no name is given, no basis will be saved. Can also be set with the command ‘save optbasis’.

solver_algorithm#

Data type: string. Unit: STRING.

Name of the solution algorithm CPLEX will use to solve linear problems, can be either ‘PRIMAL’, ‘DUAL’ (default), ‘BARRIER’, ‘NETPRIMAL’, ‘NETDUAL’, or ‘CONCURRENT’. Can also be set with the command ‘set method’.

cplex_int_params#

Data type: xy. Unit: x: NO_UNIT and y: NO_UNIT.

Specify any integer parameter that can be set in CPLEX by specifying the identifiers as x values and the int parameters as y values. See the CPLEX documentation for a complete list of parameters to set. For instance, the ‘MIP emphasis switch’ parameter has an id of 2058 and may take the values from 0 to 5.

cplex_double_params#

Data type: xy. Unit: x: NO_UNIT and y: NO_UNIT.

Specify any floating point parameter that can be set in CPLEX by specifying the identifiers as x values and the double parameters as y values. See the CPLEX documentation for a complete list of parameters to set. For instance, the ‘Benders optimality cut tolerance’ parameter has an id of 1510 and may be any number from 1e-9 to 1e-1.

gurobi_int_params#

Data type: sy. Unit: s: STRING and y: NO_UNIT.

Specify any integer parameter that can be set in Gurobi by specifying the parameter names as the strings and the parameter values as the y values. See the Gurobi documentation for a complete list of parameters to set. For instance, ‘MIPFocus’ is a valid parameter name that may take integer values from 0 to 3.

gurobi_double_params#

Data type: sy. Unit: s: STRING and y: NO_UNIT.

Specify any floating point parameter that can be set in Gurobi by specifying the parameter names as the strings and the parameter values as the y values. See the Gurobi documentation for a complete list of parameters to set. For instance, ‘Cutoff’ is a valid parameter name that may take any double value.

min_lp_info#

Data type: int. Unit: NO_UNIT.

Set this to 1 to avoid copying over the variable and constraint names to CPLEX (default behaviour), which could save time and memory for large SHOP models. Can also be set with the command ‘set lp_info’.

n_seg_up#

Data type: int. Unit: NO_UNIT.

Number of segments to be used above best efficient point in incremental mode. Can also be set with the command ‘set nseg’.

n_seg_down#

Data type: int. Unit: NO_UNIT.

Number of segments to be used below best efficient point in incremental mode. Can also be set with the command ‘set nseg’.

n_mip_seg_up#

Data type: int. Unit: NO_UNIT.

Number of segments to be used above best efficient point in full mode. Can also be set with the command ‘set nseg’.

n_mip_seg_down#

Data type: int. Unit: NO_UNIT.

Number of segments to be used below best efficient point in full mode. Can also be set with the command ‘set nseg’.

dyn_pq_seg_flag#

Data type: int. Unit: NO_UNIT.

Flag determining whether dynamically define the segments in the building of the original PQ curve for all the units in incremental mode if no flag series on the plant is provided. Can also be set with the command ‘set dyn_seg’.

dyn_mip_pq_seg_flag#

Data type: int. Unit: NO_UNIT.

Flag determining whether dynamically define the number of points of the original PQ curve for all the units in full mode if no flag series on the plant or generator is provided. Can also be set with the command ‘set dyn_seg’.

bypass_segments#

Data type: int. Unit: NO_UNIT.

Change the number of variables used to describe the flow in bypass gates. Default number of segments is 1.

gate_segments#

Data type: int. Unit: NO_UNIT.

Change the number of variables used to describe the flow in regular gates. Default number of segments is 3.

overflow_segments#

Data type: int. Unit: NO_UNIT.

Change the number of variables used to describe the flow in spill gates. Default number of segments is 3.

gravity#

Data type: double. Unit: NO_UNIT.

The value of the acceleration due to gravity. Default value is 9.81 m/s2. Can also be set with the command ‘set gravity’.

gen_reserve_min_free_cap_factor#

Data type: double. Unit: NO_UNIT.

The fraction of the maximal generator production that must be left open while the generator is delivering FCR. Default value is 0.02. Can also be set with the command ‘set reserve_min_capacity’.

fcr_n_band#

Data type: double. Unit: NO_UNIT.

The size of the frequency range in either direction where FCR-N is activated. Default value is 0.1 Hz (49.9 to 50.1 Hz). Can also be set with the command ‘set fcr_n_band’.

fcr_d_band#

Data type: double. Unit: NO_UNIT.

The size of the frequency range in upward direction where FCR-D is activated. Default value is 0.4 Hz (49.5 to 49.9 Hz). Can also be set with the command ‘set fcr_d_band’.

universal_mip#

Data type: int. Unit: NO_UNIT.

Toggle the use of binary variables for generator and pump unit commitment on (1) or off (0). Default value of -1 uses mip_flag on each plant to decide if binary variables should be used. Can also be set by the command ‘set universal_mip’.

universal_overflow_mip#

Data type: int. Unit: NO_UNIT.

Toggle the use of binary variables to for reservoir to prevent non-physical spill. Default value of -1 uses overflow_mip_flag on each reservoir to decide if binary variables should be used. Can also be set by the command ‘set universal_overflow_mip’.

universal_river_mip#

Data type: int. Unit: NO_UNIT.

Toggle the use of binary variables to for river to prevent flow when water level is below weir. Default value of -1 uses river_mip_flag on each river to decide if binary variables should be used. Can also be set by the command ‘set universal_river_mip’.

linear_startup#

Data type: int. Unit: NO_UNIT.

Toggle the building of linear startup and shutdown costs for generators and pumps on (1) or off (0) when MIP is not active. Default value of -1 uses linear_startup_flag on each plant to decide if startup and shutdown costs should be used. Can also be set by the command ‘set linear_startup’.

dyn_flex_mip_steps#

Data type: int. Unit: NO_UNIT.

Set the number of time steps used for dynamic flexible MIP. Default value of -1 turns off the dynamic flexible MIP functionality. Can also be set with the command ‘set dyn_flex_mip’.

merge_blocks#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the mering of similar and adjacent time steps for gate discharge and plant production results. A value of 2 will only keep merged blocks from the previous iteration and stop further merging. Can also be set with the command ‘set merge’.

power_head_optimization#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) power head optimization functionality. Can also be set with the command ‘set power_head_optimization’.

droop_discretization_limit#

Data type: double. Unit: NO_UNIT.

Set the limit for fixing the droop value of all units that have a resulting droop below the specified limit. The droop is fixed to the closest legal discrete value below the given limit, which is the closest integer below unless the unit has a defined discrete_droop_values attribute. Default value is 0.0. Can also be set with the command ‘set discrete_droop_limit’.

droop_cost_exponent#

Data type: double. Unit: NO_UNIT.

Set this value to any positive number higher than 1.0 to build a convex and increasing cost curve for the droop value instead of using a linear cost. The number represents the degree of the convex polynomial used to build the cost curve, which means that a value of 2.0 results in a quadratic cost curve. Can also be set with the command ‘set droop_cost_exponent’.

droop_ref_value#

Data type: double. Unit: NO_UNIT.

Used to scale the exponential droop cost when the droop_cost_exponent is higher than 1. The exponential cost will be the same as the standard linear cost for the reference value. Can also be set with the command ‘set droop_ref_value’.

disable_rsv_penalties#

Data type: int. Unit: NO_UNIT.

Disable the use of reservoir penalty variables by setting this parameter to 1. This means that SHOP is unable to create or destroy water by using penalties, but the optimization model may be infeasible. Therefore, this feature is mostly useful for debugging models with lots of reservoir penalties. See the corresponding ‘disable_penalties’ on the reservoir object for individual reservoir specification.

binary_reserve_limits#

Data type: int. Unit: NO_UNIT.

If this attribute is set to 1, binary variables will be used to enforce the minimum reserve limit imposed by frr_down_min etc. on unit and plant level. If it is set to zero the binary variables are relaxed, and fixed to 0 or 1 in incremental iterations based on the reserve delivery in the previous iteration. The default option of -1 will use binary variables in full iterations if the mip_flag on the plant is active, and otherwise relax and fix them to either 0 or 1 depending on the reserve delivery in the previous iteration.

universal_strict_pq_uploading#

Data type: int. Unit: NO_UNIT.

If this attribute is set to 1, binary variables will be used to enforce the correct uploading of each segment in the PQ curves of all generators and time steps. Setting the attribute to zero will disable all use of binary variables in the PQ curve segmentation, while the default setting of -1 will let the plant attributes strict_pq_uploading_flag and strict_pq_uploading_upon_detection determine the behaviour. Can also be set with the command ‘set universal_strict_pq_uploading’.

use_armadillo_solver#

Data type: int. Unit: NO_UNIT.

Toggle the use of the new internal linear algebra solver for tunnel networks based on the Armadillo C++ library (1, default) versus the old solver (0).

create_cuts#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the createion of cuts for the start time of the SHOP run.

pump_head_optimization#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the inclusion of pump variables in the power head optimization. Can also be set with the command ‘set power_head_optimization’.

save_pq_curves#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the saving of the constructed PQ curves for each unit. Can also be set with the command ‘save pq_curves’.

build_original_pq_curves_by_discharge_limits#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the building of the original PQ curves by only considering physical discharge-related limits. Can also be set with the command ‘set build_original_pq_curves_by_discharge_limits’.

plant_unbalance_recommit#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the heuristic that attempts to recommit units in a better way for hours without MIP and the resulting plant discharge is smaller than the optimal discharge from solver. Can also be set with the command ‘set plant_unbalance_recommit’.

prefer_start_vol#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the preference of start_vol over start_level for reservoirs where both are specified. Initial water level will be preferred if this attribute is set to zero. Can also be set with the command ‘set initial_reservoir’.

bp_print_discharge#

Data type: int. Unit: NO_UNIT.

Set this attribute to 1 (default 0) to also print the generator discharge to the BP files. Can also be set with the command ‘print bp_curves’.

prod_from_ref_prod#

Data type: int. Unit: NO_UNIT.

Set this attribute to 1 (default 0) to create a production schedule for all generators based on the ref_production attribute before calculating the BP curves. Can also be set with the command ‘set prod_from_ref_prod’.

bp_min_points#

Data type: int. Unit: NO_UNIT.

… Can also be set with the command ‘set min_bp_points’.

bp_mode#

Data type: int. Unit: NO_UNIT.

Decides how the BP algorithm selects points from the MC curves to create the final BP curves: use regulation profit as jump criteria (0, default), use operational profit as jump criteria (1), or follow the unit comination uploading of the MC curves directly (2). Can also be set with the command ‘create bp_curves’.

stop_cost_from_start_cost#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the usage of the input generator start cost as stop cost. Can also be set with the command ‘set stop_cost_from_start_cost’.

ownership_scaling#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the rescaling of the production results for plants and generators that have an ownership less than 100. The scaled results are only found in the text result files. Can also be set with the command ‘set ownership_scaling’.

time_delay_unit#

Data type: string. Unit: STRING.

Deprecated: All time delay should be modelled by using the river object (does not require additional license), which is independent of this attribute. Specifies the time unit of the time delay for plants and gates in the system. Must be either ‘MINUTE’, ‘HOUR’ or ‘TIME_STEP_LENGTH’ (default). Can also be set with the command ‘set time_delay_unit’.

bypass_loss#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the addition of the flow in bypass gates when calculating tailrace loss for plants if tailrace_loss_from_bypass_flag is not used. Can also be set with the command ‘set bypass_loss’.

gen_turn_off_limit#

Data type: double. Unit: NO_UNIT.

A decimal number between 0 and 1 that signifies if the generator operates below the fraction (the decimal number) of its minimum operating limit in full mode without MIP, the generator will be turned off. Default value is 0.5. Can also be set with the command ‘set gen_turn_off_limit’.

pump_turn_off_limit#

Data type: double. Unit: NO_UNIT.

A decimal number between 0 and 1 that signifies if the pump operates below the fraction (the decimal number) of its minimum operating limit in full mode without MIP, the pump will be turned off. Default value is 0.5. Can also be set with the command ‘set pump_turn_off_limit’.

fcr_n_equality_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) the building of constraints to force the fcr_n delivery for all units to by symmetric. Can also be set with the command ‘set fcr_n_equality_flag’.

delay_valuation_mode#

Data type: int. Unit: NO_UNIT.

The value 0 (default) uses the first value in the water value description to set the value of water in transition at the end of the optimization period. Setting the value to 1 will use the middle point of the water value description instead. Can also be set with the command ‘set delay_valuation_mode’.

universal_affinity_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0) the use of affinity equations for translating turbine efficiency curves of generators. Default value of -1 uses affinity_eq_flag on each generator to decide if affinity equations should be used. Can also be set by the command ‘set universal_affinity’.

ramp_code#

Data type: int. Unit: NO_UNIT.

Toggle the building of ramping constraints on (1), off (-1), or when violated in previous iteration (0, default). Can also be set with the command ‘set ramping’.

shop_log_name#

Data type: string. Unit: STRING.

Name of the log file written to by SHOP, default is ‘shop.log’. Can also be set with the command ‘log file’.

shop_yaml_log_name#

Data type: string. Unit: STRING.

Name of the yaml log file written to by SHOP, default is ‘shop_yaml.yaml’.

solver_log_name#

Data type: string. Unit: STRING.

Name of the log file written to by the solver, default is ‘cplex.log’. Can also be set with the command ‘log file’.

minimal_infeasible_problem_file#

Data type: string. Unit: STRING.

Name of the log file written to by the solver when the problem is infeasible, default is ‘minimal_infeasible_problem.lp’. Can also be set with the command ‘log file infeasible.lp /lpmin’.

model_file_name#

Data type: string. Unit: STRING.

Name of the file where the model seen by the optimization solver will be written to in the next iteration. If no name is given, the model will not be printed to file. Can also be set with the command ‘print model’.

pq_curves_name#

Data type: string. Unit: STRING.

Name of the file the PQ curves will be written to if activated by setting the print_<>_pq_curves attributes. A default file name based on the iteration will be used if this attribute is not set. Can also be set with the command ‘print pq_curves’.

shop_xmllog#

Data type: int. Unit: NO_UNIT.

Write the log to xml format if this value is set to 1 instead of the default value 0. Can also be set with the command ‘set xmllog’.

get_duals_from_mip#

Data type: int. Unit: NO_UNIT.

Set value to 1 to fix binary variables after solving a MIP iteration and solving the resulting linear problem again to get dual values. Default value of 0 does not re-solve MIP problems to get dual values. Can also be set with the command ‘set duals_from_mip’.

bid_aggregation_level#

Data type: int. Unit: NO_UNIT.

Set the bid aggregation level of the SHARM bidding functionality to add all plants to the same bid group (0) or to create individual bid groups for each plant (1). If set to -1 (default), the plants are placed in bid groups according to the bid_group attribute on the plant. Can also be set with the command ‘set bid_aggregation_level’.

simple_pq_recovery#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) simplified building of PQ curves with a single segment for problematic generators suffering from non-physical uploading of the PQ segments. Can also be turned on with the command ‘set simple_pq_recovery’.

rr_up_schedule_slack_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) slack variable for RR_UP schedule on generators. Penalty cost for slack is set equal to reserve_slack_cost.

binary_pump_schedule_slack_flag#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) slack variable to allow binary pumps to deliver more reserve capacity than specified in their reserve schedules. The penalty cost for slack is set equal to reserve_slack_cost.

bp_ref_mc_from_market#

Data type: int. Unit: NO_UNIT.

Turn on (1) or off (0, default) functionality taking marginal cost from market description for current operating point on the best profit curve.

bp_bid_matrix_points#

Data type: int. Unit: NO_UNIT.

The maximum number of price columns allowed in the best_profit_bid_matrix on the plant object.

ramp_scale_factor#

Data type: double. Unit: NO_UNIT.

Used to scale all input ramping values for production and discharge on plants, gates, and reservoirs. Can also be set with the command ‘set ramp_scale_factor’.

river_flow_penalty_cost#

Data type: double. Unit: NOK/H/M3/S.

The default penalty cost for breaking the min_flow and max_flow constraints defined on river objects.

river_flow_schedule_penalty_cost#

Data type: double. Unit: NOK/H/M3/S.

The default penalty cost for breaking the flow_schedule constraints defined on river objects.

recommit#

Data type: int. Unit: NO_UNIT.

Turn on (1, default) or off (0) the general heuristic that attempts to recommit units in a better way for hours without MIP.

droop_cost#

Data type: double. Unit: NOK.

The global cost added to the inverse droop variables related to FCR reserve delivery, which makes SHOP prefer high droop settings (default is 55). The unit-specific droop_cost attributes will override this value if specified. The droop cost could skew optimization against reserve market prices.

rr_down_stop_mip#

Data type: int. Unit: NO_UNIT.

Setting this attribute to 1 turns on the use of binary variables in full iterations to ensure all generators delivering RR-DOWN reserves have valid stop deliveries. This forces RR-DOWN to either be allocated as a spinning reserve down to p_rr_min (defaults to p_min) or down to a full stop, and no other spinning reserves can be allocated on the unit if RR-DOWN is delivered down to stop. RR-DOWN allocation in forbidden production regions (between 0 and p_rr_min) is also prohibited. The generator attribute ‘rr_down_stop_mip_flag’ can be used to override this attribute per generator.

rr_up_stop_mip#

Data type: int. Unit: NO_UNIT.

Setting this attribute to 1 turns on the use of binary variables in full iterations to ensure all pumps delivering RR-UP reserves have valid stop deliveries. This forces RR-UP to either be allocated as a spinning reserve up to p_rr_min (defaults to p_min) or up to a full stop, and no other spinning reserves can be allocated on the unit if RR-UP is delivered to stop. RR-UP allocation in forbidden consumption regions (between 0 and p_rr_min) is also prohibited. The pump attribute ‘rr_up_stop_mip_flag’ can be used to override this attribute per pump.

plant_max_prod_reserve_strategy#

Data type: string. Unit: STRING.

Determines what type of max limit constraints will be added to limit the production including upward reserve capacity on plant level: ‘OFF’ (default) - no max constraint is added, ‘ALL’ - max_prod_all on the plant will be used as upper limit for plant production including upward reserves, ‘AVAILABLE’ - max_prod_available on the plant will be used as upper limit, ‘SPINNING’ - max_prod_spinning on the plant will be used as upper limit. This setting is overridden by the plant attribute ‘max_prod_reserve_strategy’, and can also be set with the command ‘set plant_max_prod_reserve_strategy’.

plant_min_prod_reserve_strategy#

Data type: string. Unit: STRING.

Determines what type of min limit constraints will be added to limit the production including downward reserve capacity on plant level: ‘OFF’ (default) - no min constraint for plant production including downward reserves, ‘SPINNING’ - the min_prod_spinning attribute on the plant will be used as lower limit. This setting is overridden by the plant attribute ‘min_prod_reserve_strategy’, and can also be set with the command ‘set plant_min_prod_reserve_strategy’.

frr_mip#

Data type: int. Unit: NO_UNIT.

Setting this attribute to 1 will turn on the use of binary variables in full iterations to ensure that delivered FRR reserves are outside forbidden zones.

scale_bp_curves_by_best_point_mc#

Data type: int. Unit: NO_UNIT.

Setting this attribute to 1 will scale all MC, AC, and the BP curves generated by the best profit functionality by the marginal cost of the plant at the best point operation in each time step. This makes the y-values of the curves dimensionless and easy to scale.

shop_version#

Data type: string. Unit: STRING.

Version string.

river_big_m_factor#

Data type: double. Unit: NO_UNIT.

Scale factor to reduce the river big-M value relative to result in previous iteration to reduce computation time.