pymgrid.envs.ContinuousMicrogridEnv#

class pymgrid.envs.ContinuousMicrogridEnv(modules, add_unbalanced_module=True, loss_load_cost=10, overgeneration_cost=2, flat_spaces=True)[source]#

Microgrid environment with a continuous action space.

Implements the OpenAI Gym API for a microgrid; inherits from both Microgrid and gym.Env.

Parameters#

moduleslist, Microgrid, NonModularMicrogrid, or int.

The constructor can be called in three ways:

  1. Passing a list of microgrid modules. This is identical to the Microgrid constructor.

  2. Passing a Microgrid or NonModularMicrogrid instance. This will effectively wrap the microgrid instance with the Gym API.

  3. Passing an integer in [0, 25). This will be result in loading the corresponding pymgrid25 benchmark microgrids.

add_unbalanced_modulebool, default True.

Whether to add an unbalanced energy module to your microgrid. Such a module computes and attributes costs to any excess supply or demand. Set to True unless modules contains an UnbalancedEnergyModule.

loss_load_costfloat, default 10.0

Cost per unit of unmet demand. Ignored if add_unbalanced_module=False.

overgeneration_costfloat, default 2.0

Cost per unit of excess generation. Ignored if add_unbalanced_module=False.

flat_spacesbool, default True

Whether the environment’s spaces should be flat.

If True, all continuous spaces are gym.spaces.Box.

Otherwise, they are nested gym.spaces.Dict of gym.spaces.Tuple of gym.spaces.Box, corresponding to the structure of the control arg of Microgrid.run().

Methods

close()

Override close in your subclass to perform any necessary cleanup.

dump([stream])

Save a microgrid to a YAML buffer.

from_microgrid(microgrid)

Construct an RL environment from a microgrid.

from_nonmodular(nonmodular)

Convert to Microgrid from old-style NonModularMicrogrid.

from_normalized(data_dict[, act, obs])

De-normalize an action or observation.

from_scenario([microgrid_number])

Load one of the pymgrid25 benchmark microgrids.

get_empty_action([sample_flex_modules])

Get an action for the microgrid with no values set.

get_forecast_horizon()

Get the forecast horizon of timeseries modules contained in the microgrid.

get_log([as_frame, drop_singleton_key])

Collect a log of controls and responses of the microgrid.

load(stream)

Load a microgrid from a yaml buffer.

reset()

Reset the microgrid and flush the log.

run(action[, normalized])

Run the microgrid for a single step.

sample_action([strict_bound, ...])

Get a random action within the microgrid's action space.

set_forecast_horizon(value)

set_forecaster(forecaster[, ...])

Set the forecaster for timeseries modules in the microgrid.

step(action)

Run one timestep of the environment's dynamics.

to_nonmodular()

Convert Microgrid to old-style NonModularMicrogrid.

to_normalized(data_dict[, act, obs])

Normalize an action or observation.

Attributes

action_space

Space object corresponding to valid actions.

controllable

List of all controllable modules in the microgrid.

fixed

List of all fixed modules in the microgrid.

flat_spaces

Whether the environment's spaces are flat.

flex

List of all flex modules in the microgrid.

log

Microgrid's log as a DataFrame.

module_list

List of all modules in the microgrid.

modules

View of the module container.

n_modules

Number of modules in the microgrid.

np_random

Returns the environment's internal _np_random that if not set will initialise with a random seed.

observation_space

Space object corresponding to valid observations.

state_dict

State of the microgrid as a dict.

state_series

State of the microgrid as a pandas Series.

yaml_tag

Tag used for yaml serialization.