actor package

OMEGAlpes offers a library of models associated with the “multi-actor” approach through the Actor package. An explicit actor model aims to differentiate technical issues from stakeholder-induced issues, and to differentiate the decisions made by the stakeholders. This model does not attempt to model the actors as such but is restricted to the constraints and objectives carried by the actors that influence the project framework.

It is a matter of being able to differentiate the technical part of the model from the part associated with the actors. When modelling, this approach can lead stakeholders to question what is technical and what is related to actor’s choices. It also helps to provide additional insights in stakeholder negotiations by identifying whether the issues are technical or actor-related. Negotiation can then be facilitated by the fact that decisions are associated with their stakeholders and their influence on the project can be assessed.

The modeling logic behind actor package is debatable, especially as, by refining the technical considerations, it is possible to take it into account on the energy layer. However, we are convinced that bringing stakeholders into the modelling loop can facilitate the technical refinement of the energy model and can help decision-making and negotiations between stakeholders.

The actor modelling is based on a main actor class defined on the actor module. Then, the actors are divided in two categories: the “operator actors” who operates energy units and the “regulator actors” who unable to create regulation constraints.

Actor module

This modules define the basic Actor object

Few methods are available:

  • add_external_constraint
  • add_external_dynamic_constraint
  • add_objective
class omegalpes.actor.actor.Actor(name, no_warn=True, verbose=True)[source]

Bases: omegalpes.general.optimisation.core.OptObject

Description

Actor class is the basic class to model an actor. The basic actor is defined by its name and description. An actor is then defined by its constraints and objectives.

Attributes

  • description : description as an Actor OptObject
add_actor_constraint(cst_name, exp)[source]

Enable to add an external constraint linked with an actor

Parameters:
  • cst_name – name of the constraint
  • exp – expression of the constraint
add_actor_dynamic_constraint(cst_name, exp_t, t_range='for t in time.I')[source]

Enable to add an external dynamic constraint linked with an actor. A dynamic constraint changes over time

Parameters:
  • cst_name – name of the constraint
  • exp – expression of the constraint depending on the time
  • t_range – expression of time for the constraint
add_objective(obj_name, exp)[source]

Enable to add an objective linked with an actor

Parameters:
  • obj_name – name of the objective
  • exp – expression of the objective
remove_actor_constraints(ext_cst_name_list=None)[source]

Enable to remove an external constraint linked with an actor

Parameters:ext_cst_name_list – list of external constraint that would be removed

The Actor class is defined as an abstract class, i.e. not specific to a particular actor, and has generic methods for adding or removing constraints and goals. Regarding the constraints, a distinction is made between:

  • definition constraints (DefinitionConstraint), used to calculate quantities or to represent physical phenomena (e.g. storage state of charge) considered a priori as non-negotiable;
  • technical constraints (TechnicalConstraint), used to represent technical issues (e.g. operating power of a production unit) considered a priori as non-negotiable unless technical changes are made;
  • actor-specific constraints, ActorConstraint and ActorDynamicConstraint, to model a constraint that is due to actor decisions (e.g. minimal level of energy consumption over a period).

Those constraints are exclusive, and only actor-specific constraints are a priori negotiable as decided by the stakeholders themselves. Actors modeling includes additional objectives. In OMEGAlpes, a weight can be added to an objective in order to give more importance to one or more objectives compared to the others.

Area of responsibility

In order to link the energy units to the actors, an area of responsibility is defined for each actor in the model. These are the energy units they operate (for the operating stakeholders) or build (for the developer). From a modelling point of view, this notion of area of responsibility limits the constraints and objectives of the stakeholders, which can only be applied to the area of responsibility of the latter. To do so , it is necessary to define the stakeholder’s responsibility space in the modelling by using two attributes associated to the Actor class:

  • operated_unit_list : to indicate the energy units within the stakeholder’s area of responsibility,
  • operated_node_list : to indicate which nodes are part of the stakeholder’s area of responsibility.

Operator_actors module

This module defines the operator_actor and its scope of responsibility

class omegalpes.actor.operator_actors.operator_actors.OperatorActor(name, operated_unit_type_tuple, operated_unit_list=None, operated_node_list=None, verbose=True)[source]

Bases: omegalpes.actor.actor.Actor

Description

OperatorActor class inherits from the the basic class Actor. It enables one to model an actor who operates energy units which is part of its scope of responsibility. An operator actor has objectives and constraints which are linked to the energy units he operates.

Attributes

  • name : name of the actor
  • operated_unit_list: list of the energy units operated by the actor or more precisely in its scope of responsibility

Operators can only influence - with respect to constraints and objectives - the units within its scope of responsibility, as defined in the following sub-section. Based on a typology of operator actors, we have developed the following classes: Consumer, Producer, Prosumer, Supplier.

Consumer_actors module

This module describes the Consumer actor

Few objectives and constraints are available.

Objectives :
  • maximize_consumption
  • minimize_consumption
  • minimize_co2_consumption
  • minimize_consumption_costs
Constraints :
  • energy_consumption_minimum
  • energy_consumption_maximum
  • power_consumption_minimum
  • power_consumption_maximum
class omegalpes.actor.operator_actors.consumer_actors.Consumer(name, operated_unit_list, operated_node_list=None, verbose=True)[source]

Bases: omegalpes.actor.operator_actors.operator_actors.OperatorActor

Description

Consumer class inherits from the the class OperatorActor. It enables one to model a consumer actor.
add_energy_consumption_maximum(max_e_tot, cst_operated_unit_list=None)[source]

To create the actor constraint of a maximum of energy consumption.

Parameters:
  • max_e_tot – Maximum of the total energy consumption over the study period
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_energy_consumption_minimum(min_e_tot, cst_operated_unit_list=None)[source]

To create the actor constraint of a minimum of energy consumption.

Parameters:
  • min_e_tot – Minimum of the total energy consumption over the study period
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_consumption_by_unit_maximum(max_p, time, cst_operated_unit_list=None)[source]

To create the actor constraint of a maximum of power consumption for each unit.

Parameters:
  • max_p – Maximum of the power consumption. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_consumption_by_unit_minimum(min_p, time, cst_operated_unit_list=None)[source]

To create the actor constraint of a minimum of power consumption for each unit.

Parameters:
  • min_p – Minimum of the power consumption. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_consumption_total_maximum(max_p, time, cst_operated_unit_list=None)[source]

To create the actor constraint of a maximum of power consumption.

Parameters:
  • max_p – Minimum of the power consumption. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_consumption_total_minimum(min_p, time, cst_operated_unit_list=None)[source]

To create the constraint of a minimum of power consumption considering all the units.

Parameters:
  • min_p – Minimum of the power consumption. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
maximize_consumption(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to maximize the consumption of the consumer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty
  • weight – Weight coefficient for the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_co2_consumption(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the co2 emissions due to the consumer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty
  • weight – Weight coefficient for the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_consumption(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the consumption of the consumer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty
  • weight – Weight coefficient for the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_consumption_cost(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the expenses due to the consumer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty
  • weight – Weight coefficient for the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)

Consumer class inherits from the the class OperatorActor. It enables one to model a consumer actor.

Producer_actors module

This module describes the Producer actor

Few objectives and constraints are available.

Objectives :
  • maximize_production
  • minimize_production
  • minimize_time_of_use
  • minimize_co2_emissions
  • minimize_costs
  • minimize_operating_cost
  • minimize_starting_cost
Constraints :
  • energy_production_minimum
  • energy_production_maximum
  • power_production_minimum
  • power_production_maximum
class omegalpes.actor.operator_actors.producer_actors.Producer(name, operated_unit_list, operated_node_list=None, verbose=True)[source]

Bases: omegalpes.actor.operator_actors.operator_actors.OperatorActor

Description

Producer class inherits from the the class OperatorActor. It enables one to model an energy producer actor.
add_energy_production_maximum(max_e_tot, cst_operated_unit_list=None)[source]

To create the actor constraint of a maximum of energy production.

Parameters:
  • max_e_tot – Maximum of the total energy production over the period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_energy_production_minimum(min_e_tot, cst_operated_unit_list=None)[source]

To create the actor constraint of a minimum of energy production.

Parameters:
  • min_e_tot – Minimum of the total energy production over the period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_production_by_unit_maximum(max_p, time, cst_operated_unit_list=None)[source]

To create the actor constraint of a maximum of power production for each unit.

Parameters:
  • max_p – Maximum of the power production. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_production_by_unit_minimum(min_p, time, cst_operated_unit_list=None)[source]

To create the actor constraint of a minimum of power production for each unit.

Parameters:
  • min_p – Minimum of the power production. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_production_total_maximum(max_p, time, cst_operated_unit_list=None)[source]

To create the actor constraint of a maximum of power production.

Parameters:
  • max_p – Minimum of the power production. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_power_production_total_minimum(min_p, time, cst_operated_unit_list=None)[source]

To create the constraint of a minimum of power production considering all the units.

Parameters:
  • min_p – Minimum of the power production. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
add_temporary_stop(time, start='YYYY-MM-DD HH:MM:SS', end='YYYY-MM-DD HH:MM:SS', period_index=None, cst_production_unit_list=None)[source]

To create the actor constraint giving the possibility to stop the production during a period.

Parameters:
  • start – start of the stop period
  • end – end of the stop period
  • period_index – period index for the stop period, to use instead of start and end
  • cst_production_unit_list – List of units on which the constraint will be applied. Might be empty.
maximize_production(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to maximize the production of the producer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty.
  • weight – Weight coefficient for the objective
minimize_co2_emissions(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the co2 emissions of the producer’s units (all or part of them). based on the quantity “co2_emission”

Parameters:
  • obj_operated_unit_list – list of the operated energy units on which the objective will be applied
  • weight – weight of the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_costs(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the cost of the producer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – list of the operated energy units on which the objective will be applied
  • weight – weight of the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_operating_cost(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the operating costs of the producer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – list of the operated energy units on which the objective will be applied
  • weight – weight of the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_production(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the production of the producer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty.
  • weight – Weight coefficient for the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_starting_cost(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the starting costs of the producer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – list of the operated energy units on which the objective will be applied
  • weight – weight of the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
minimize_time_of_use(obj_operated_unit_list=None, weight=1, pareto=False)[source]

To create the objective in order to minimize the time of use of the producer’s units (all or part of them).

Parameters:
  • obj_operated_unit_list – List of units on which the objective will be applied. Might be empty.
  • weight – Weight coefficient for the objective
  • pareto – if True, OMEGAlpes calculates a pareto front based on this objective (two objectives needed)
power_consumption_maximum(max_p, time, cst_operated_unit_list=None)[source]
DEPRECATED: please use

add_power_production_total_maximum or

add_power_production_by_units_maximum instead

To create the actor constraint of a maximum of power consumption.

Parameters:
  • max_p – Maximum of the power consumption. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.
power_consumption_minimum(min_p, time, cst_operated_unit_list=None)[source]
DEPRECATED: please use

add_power_production_total_minimum or

add_power_production_by_units_minimum instead

To create the actor constraint of a minimum of power consumption.

Parameters:
  • min_p – Minimum of the power consumption. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_operated_unit_list – List of units on which the constraint will be applied. Might be empty.

Producer class inherits from the the class OperatorActor. It enables one to model an energy producer actor.

Prosumer_actors module

Prosumer class inherits from the the class OperatorActor, Consumer and Producer. It enables one to model an actor which is at the same time an energy producer and consumer

Regulator_actors module

This module defines the operator_actor and its scope of responsibility

One constraint is available :
  • co2_emission_maximum
class omegalpes.actor.regulator_actors.regulator_actors.LocalAuthorities(name)[source]

Bases: omegalpes.actor.regulator_actors.regulator_actors.RegulatorActor

Description

LocalAuthorities class inherits from the basic class RegulatorActor. It focuses on local Authorities constraints
class omegalpes.actor.regulator_actors.regulator_actors.RegulatorActor(name, verbose=True)[source]

Bases: omegalpes.actor.actor.Actor

Description

RegulatorActor class inherits from the the basic class Actor. It enables one to model an actor who can add constraints on all energy units of the study case.

Attributes

  • name : name of the actor
add_co2_emission_maximum(time, co2_max, cst_production_list)[source]

To create the actor constraint of a maximum of CO2 emission.

Parameters:
  • co2_max – Maximum of the CO2 emission. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_production_list – List of production units on which the

constraint will be applied.

add_particles_emission_maximum(time, particle_max, cst_production_list)[source]

To create the actor constraint of a maximum of CO2 emission.

Parameters:
  • particle_max – Maximum of the particle emission. May be an int, float or a list with the size of the period study
  • time – period of the study
  • cst_production_list – List of production units on which the

constraint will be applied.

class omegalpes.actor.regulator_actors.regulator_actors.StateAuthorities(name)[source]

Bases: omegalpes.actor.regulator_actors.regulator_actors.RegulatorActor

Description

StateAuthorities class inherits from the basic class RegulatorActor. It focuses on local Authorities constraints

Regulators do not operate any particular energy unit but influence the energy system with regard to grid and/or resource regulation. Their decisions can affect all energy units. From a modelling point of view, we have modelled the RegulatorActor class which inherits from the Actor class.

The regulatory actors are divided into two main categories: local regulatory authorities (e.g. local authorities) and regulatory authorities outside the project (e.g. State, National Energy Regulator entities, such as CRE in France), respectively modelled by the classes LocalAuthority and StateAuthority.