oemof.solph.options

Optional classes to be added to a network class.

class oemof.solph._options.Investment(maximum=inf, minimum=0, ep_costs=0, existing=0, nonconvex=False, offset=0, **kwargs)[source]

Bases: object

Parameters:
  • maximum (float, \(P_{invest,max}\) or \(E_{invest,max}\)) – Maximum of the additional invested capacity
  • minimum (float, \(P_{invest,min}\) or \(E_{invest,min}\)) – Minimum of the additional invested capacity. If nonconvex is True, minimum defines the threshold for the invested capacity.
  • ep_costs (float, \(c_{invest,var}\)) – Equivalent periodical costs for the investment per flow capacity.
  • existing (float, \(P_{exist}\) or \(E_{exist}\)) – Existing / installed capacity. The invested capacity is added on top of this value. Not applicable if nonconvex is set to True.
  • nonconvex (bool) – If True, a binary variable for the status of the investment is created. This enables additional fix investment costs (offset) independent of the invested flow capacity. Therefore, use the offset parameter.
  • offset (float, \(c_{invest,fix}\)) – Additional fix investment costs. Only applicable if nonconvex is set to True.

For the variables, constraints and parts of the objective function, which are created, see oemof.solph.blocks.investment_flow.InvestmentFlowBlock and oemof.solph.components._generic_storage.GenericInvestmentStorageBlock.

class oemof.solph._options.NonConvex(**kwargs)[source]

Bases: object

Parameters:
  • startup_costs (numeric (iterable or scalar)) – Costs associated with a start of the flow (representing a unit).

  • shutdown_costs (numeric (iterable or scalar)) – Costs associated with the shutdown of the flow (representing a unit).

  • activity_costs (numeric (iterable or scalar)) – Costs associated with the active operation of the flow, independently from the actual output.

  • inactivity_costs (numeric (iterable or scalar)) – Costs associated with not operating the flow.

  • minimum_uptime (numeric (1 or positive integer)) – Minimum time that a flow must be greater then its minimum flow after startup. Be aware that minimum up and downtimes can contradict each other and may lead to infeasible problems.

  • minimum_downtime (numeric (1 or positive integer)) – Minimum time a flow is forced to zero after shutting down. Be aware that minimum up and downtimes can contradict each other and may to infeasible problems.

  • maximum_startups (numeric (0 or positive integer)) – Maximum number of start-ups.

  • maximum_shutdowns (numeric (0 or positive integer)) – Maximum number of shutdowns.

  • initial_status (numeric (0 or 1)) – Integer value indicating the status of the flow in the first time step (0 = off, 1 = on). For minimum up and downtimes, the initial status is set for the respective values in the edge regions e.g. if a minimum uptime of four timesteps is defined, the initial status is fixed for the four first and last timesteps of the optimization period. If both, up and downtimes are defined, the initial status is set for the maximum of both e.g. for six timesteps if a minimum downtime of six timesteps is defined in addition to a four timestep minimum uptime.

  • positive_gradient (dict, default: {‘ub’: None, ‘costs’: 0}) –

    A dictionary containing the following two keys:

    • ‘ub’: numeric (iterable, scalar or None), the normed upper bound on the positive difference (flow[t-1] < flow[t]) of two consecutive flow values.
    • ‘costs`: numeric (scalar or None), the gradient cost per unit.
  • negative_gradient (dict, default: {‘ub’: None, ‘costs’: 0}) –

    A dictionary containing the following two keys:

    • ‘ub’: numeric (iterable, scalar or None), the normed upper bound on the negative difference (flow[t-1] > flow[t]) of two consecutive flow values.
    • ‘costs`: numeric (scalar or None), the gradient cost per unit.
max_up_down

Compute or return the _max_up_down attribute.