Beispiel #1
0
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 3

    area = Area(
        'Grid',
        [
            Area(
                'Energy Community',
                [
                    Area('Load 1', strategy=LoadHoursStrategy(
                        avg_power_W=500, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=10, final_buying_rate=10),
                         appliance=SwitchableAppliance()),
                    Area('Load 2', strategy=LoadHoursStrategy(
                        avg_power_W=500, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=15, final_buying_rate=15),
                         appliance=SwitchableAppliance()),
                    Area('Load 3', strategy=LoadHoursStrategy(
                        avg_power_W=500, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=30, final_buying_rate=30),
                         appliance=SwitchableAppliance()),
                    Area('Local Supply',
                         strategy=FinitePowerPlant(energy_rate=10, max_available_power_kW=1.0),
                         appliance=SimpleAppliance()),
                ],
            ),
        ],
        config=config
    )
    return area
Beispiel #2
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area('House 1', [
                Area('H1 General Load',
                     strategy=LoadHoursStrategy(avg_power_W=200,
                                                hrs_per_day=6,
                                                hrs_of_day=list(range(12, 18)),
                                                final_buying_rate=25)),
                Area('H1 Storage1', strategy=StorageStrategy(initial_soc=50)),
                Area('H1 Storage2', strategy=StorageStrategy(initial_soc=50)),
            ]),
            Area('House 2', [
                Area('H2 General Load',
                     strategy=LoadHoursStrategy(avg_power_W=200,
                                                hrs_per_day=4,
                                                hrs_of_day=list(range(12, 16)),
                                                final_buying_rate=35)),
                Area(
                    'H2 PV',
                    strategy=PVStrategy(3, 80),
                ),
            ]),
            Area('Cell Tower',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24)),
                                            final_buying_rate=35))
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_range_wh=(40, 120), energy_price=30)
            #      ),
        ],
        config=config)
    return area
def load_hours_strategy_test4():
    strategy = LoadHoursStrategy(avg_power_W=620,
                                 hrs_per_day=4,
                                 hrs_of_day=[8, 9, 10, 12],
                                 initial_buying_rate=10)
    strategy.accept_offer = Mock()
    return strategy
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load 1',
                         strategy=LoadHoursStrategy(avg_power_W=200, hrs_of_day=list(range(0, 24)),
                                                    max_energy_rate=user_profile_int),
                         appliance=SwitchableAppliance()),
                    Area('H1 General Load 2',
                         strategy=LoadHoursStrategy(avg_power_W=200, hrs_of_day=list(range(0, 24)),
                                                    max_energy_rate=user_profile_str),
                         appliance=SwitchableAppliance()),
                ]
            ),
            Area('Commercial Energy Producer',
                 strategy=CommercialStrategy(energy_rate=34),
                 appliance=SimpleAppliance()
                 ),
        ],
        config=config
    )
    return area
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 2
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load 1',
                 strategy=LoadHoursStrategy(
                     avg_power_W=200,
                     hrs_of_day=list(range(0, 24)),
                     update_interval=duration(minutes=30),
                     initial_buying_rate=user_profile_int,
                     final_buying_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H1 General Load 2',
                 strategy=LoadHoursStrategy(
                     avg_power_W=200,
                     hrs_of_day=list(range(0, 24)),
                     initial_buying_rate=user_profile_str,
                     final_buying_rate=35),
                 appliance=SwitchableAppliance()),
        ]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=9),
             appliance=SimpleAppliance()),
    ],
                config=config)
    return area
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=6,
                                            hrs_of_day=list(range(12, 18)),
                                            max_energy_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage1',
                 strategy=CustomStorageStrategy(initial_capacity_kWh=0.6),
                 appliance=SwitchableAppliance()),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16)),
                                            max_energy_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H2 PV', strategy=PVStrategy(4, 80), appliance=PVAppliance()),
        ]),
        Area('Cell Tower',
             strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 max_energy_rate=35),
             appliance=SwitchableAppliance())
    ],
                config=config)
    return area
Beispiel #7
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load', strategy=LoadHoursStrategy(avg_power_W=100,
                                                                       hrs_per_day=12,
                                                                       hrs_of_day=list(
                                                                           range(7, 20)))
                         ),
                    Area('H1 PV', strategy=PVStrategy(panel_count=1),
                         )
                ]
            ),
            Area(
                'House 2',
                [
                    Area('H2 General Load', strategy=LoadHoursStrategy(avg_power_W=100,
                                                                       hrs_per_day=4,
                                                                       hrs_of_day=list(
                                                                           range(12, 16)))
                         ),

                ]
            ),

        ],
        config=config
    )
    return area
Beispiel #8
0
def get_setup(config):
    GlobalConfig.POWER_FLOW = True
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load',
                         strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=6,
                                                    hrs_of_day=list(
                                                        range(12, 18)),
                                                    final_buying_rate=35),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage1',
                         strategy=StorageStrategy(initial_soc=50),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage2',
                         strategy=StorageStrategy(initial_soc=50),
                         appliance=SwitchableAppliance()),
                ],
                grid_fee_percentage=0,
                grid_fee_constant=0,
            ),
            Area(
                'House 2',
                [
                    Area('H2 General Load',
                         strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=4,
                                                    hrs_of_day=list(
                                                        range(12, 16)),
                                                    final_buying_rate=35),
                         appliance=SwitchableAppliance()),
                    Area('H2 PV',
                         strategy=PVStrategy(panel_count=4,
                                             initial_selling_rate=30,
                                             final_selling_rate=5,
                                             max_panel_power_W=100),
                         appliance=PVAppliance()),
                ],
                grid_fee_percentage=0,
                grid_fee_constant=0,
            ),
            Area('Cell Tower',
                 strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                     hrs_per_day=24,
                                                     hrs_of_day=list(
                                                         range(0, 24)),
                                                     final_buying_rate=35),
                 appliance=SwitchableAppliance()),
            Area('DSO',
                 strategy=InfiniteBusStrategy(energy_buy_rate=10,
                                              energy_sell_rate=30),
                 appliance=SimpleAppliance()),
        ],
        config=config,
    )
    return area
Beispiel #9
0
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.IAASettings.BID_OFFER_MATCH_TYPE = \
        BidOfferMatchAlgoEnum.PAY_AS_CLEAR.value

    area = Area(
        'Grid',
        [
            Area(
                'Energy Community',
                [
                    Area('Load 1', strategy=LoadHoursStrategy(
                        avg_power_W=500, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=10, final_buying_rate=10),
                         ),
                    Area('Load 2', strategy=LoadHoursStrategy(
                        avg_power_W=500, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=15, final_buying_rate=15),
                         ),
                    Area('Load 3', strategy=LoadHoursStrategy(
                        avg_power_W=500, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=30, final_buying_rate=30),
                         ),
                    Area('Local Supply',
                         strategy=FinitePowerPlant(energy_rate=10, max_available_power_kW=1.0),
                         ),
                ],
            ),
        ],
        config=config
    )
    return area
Beispiel #10
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16))),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_capacity_kWh=0.6),
                 appliance=SwitchableAppliance()),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16))),
                 appliance=SwitchableAppliance()),
            Area('H2 PV', strategy=PVStrategy(6, 80), appliance=PVAppliance()),
        ]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=30),
             appliance=SimpleAppliance()),
    ],
                config=config)
    return area
def get_setup(config):
    DeviceRegistry.REGISTRY = device_registry_dict
    ConstSettings.BalancingSettings.ENABLE_BALANCING_MARKET = True
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=6,
                                            hrs_of_day=list(range(0, 18)),
                                            final_buying_rate=35)),
            Area('H1 Storage1', strategy=StorageStrategy(initial_soc=50)),
            Area('H1 Storage2', strategy=StorageStrategy(initial_soc=50)),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16)),
                                            final_buying_rate=35)),
            Area(
                'H2 PV',
                strategy=PVStrategy(4, 80),
            ),
        ]),
        Area('Cell Tower',
             strategy=LoadHoursStrategy(avg_power_W=100,
                                        hrs_per_day=24,
                                        hrs_of_day=list(range(0, 24)),
                                        final_buying_rate=35))
    ],
                config=config)
    return area
Beispiel #12
0
def get_setup(config):
    ConstSettings.IAASettings.AlternativePricing.PRICING_SCHEME = 1
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24))),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_soc=50),
                 appliance=SwitchableAppliance()),
            Area('H1 PV', strategy=PVStrategy(4, 0), appliance=PVAppliance()),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24))),
                 appliance=SwitchableAppliance()),
            Area('H2 PV', strategy=PVStrategy(4, 0), appliance=PVAppliance()),
            Area('H2 Storage1',
                 strategy=StorageStrategy(initial_soc=100),
                 appliance=SwitchableAppliance()),
        ]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=30),
             appliance=SimpleAppliance()),
    ],
                config=config)
    return area
Beispiel #13
0
def test_use_market_maker_rate_parameter_is_respected(use_mmr, expected_rate):
    GlobalConfig.market_maker_rate = 9
    load = LoadHoursStrategy(200,
                             final_buying_rate=33,
                             use_market_maker_rate=use_mmr)
    load.area = FakeArea()
    load.event_activate()
    assert all(v == expected_rate for v in load.bid_update.final_rate.values())
Beispiel #14
0
def get_setup(config):

    ConstSettings.IAASettings.MARKET_TYPE = 3
    ConstSettings.IAASettings.PAY_AS_CLEAR_AGGREGATION_ALGORITHM = 1
    ConstSettings.GeneralSettings.MARKET_CLEARING_FREQUENCY_PER_SLOT = 1
    ConstSettings.LoadSettings.INITIAL_BUYING_RATE = 35
    ConstSettings.LoadSettings.FINAL_BUYING_RATE = 35
    ConstSettings.StorageSettings.INITIAL_BUYING_RATE = 24.99
    ConstSettings.StorageSettings.FINAL_BUYING_RATE = 25
    ConstSettings.StorageSettings.INITIAL_SELLING_RATE = 30
    ConstSettings.StorageSettings.FINAL_SELLING_RATE = 25.01

    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load1',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(24)),
                                            initial_buying_rate=28.8,
                                            fit_to_limit=False,
                                            energy_rate_increase_per_update=0),
                 appliance=SwitchableAppliance()),
            Area('H1 General Load2',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(24)),
                                            initial_buying_rate=18.8,
                                            fit_to_limit=False,
                                            energy_rate_increase_per_update=0),
                 appliance=SwitchableAppliance()),
            Area('H1 General Load3',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(24)),
                                            initial_buying_rate=8.8,
                                            fit_to_limit=False,
                                            energy_rate_increase_per_update=0),
                 appliance=SwitchableAppliance()),
            Area('H1 CEP1',
                 strategy=FinitePowerPlant(energy_rate=5.1,
                                           max_available_power_kW=0.1),
                 appliance=SimpleAppliance()),
            Area('H1 CEP2',
                 strategy=FinitePowerPlant(energy_rate=15.5,
                                           max_available_power_kW=0.1),
                 appliance=SimpleAppliance()),
            Area('H1 CEP3',
                 strategy=FinitePowerPlant(energy_rate=25.001,
                                           max_available_power_kW=0.1),
                 appliance=SimpleAppliance()),
            Area('H1 CEP4',
                 strategy=FinitePowerPlant(energy_rate=28.001,
                                           max_available_power_kW=0.1),
                 appliance=SimpleAppliance()),
        ]),
    ],
                config=config)
    return area
Beispiel #15
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load',
                         strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=6,
                                                    hrs_of_day=list(
                                                        range(12, 18)),
                                                    final_buying_rate=35),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage1',
                         strategy=StorageStrategy(initial_soc=50),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage2',
                         strategy=StorageStrategy(initial_soc=50),
                         appliance=SwitchableAppliance()),
                ],
                transfer_fee_pct=0,
                transfer_fee_const=0,
            ),
            Area(
                'House 2',
                [
                    Area('H2 General Load',
                         strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=4,
                                                    hrs_of_day=list(
                                                        range(12, 16)),
                                                    final_buying_rate=35),
                         appliance=SwitchableAppliance()),
                    Area('H2 PV',
                         strategy=PVStrategy(panel_count=4,
                                             initial_selling_rate=30,
                                             final_selling_rate=5),
                         appliance=PVAppliance()),
                ],
                transfer_fee_pct=0,
                transfer_fee_const=0,
            ),
            Area('Cell Tower',
                 strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                     hrs_per_day=24,
                                                     hrs_of_day=list(
                                                         range(0, 24)),
                                                     final_buying_rate=35),
                 appliance=SwitchableAppliance()),
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_rate=30),
            #      appliance=SimpleAppliance()
            #      ),
        ],
        config=config)
    return area
Beispiel #16
0
def get_setup(config):
    market_maker_rate = 3
    ConstSettings.IAASettings.MARKET_TYPE = 1
    config.update_config_parameters(market_maker_rate=market_maker_rate)

    houses_1 = [
        Area(f'House 1 {i}',
             children=[
                 Area(f'House 1 {i} Loads ',
                      strategy=LoadHoursStrategy(avg_power_W=500,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 initial_buying_rate=1,
                                                 final_buying_rate=12))
             ]) for i in range(1, 50)
    ]
    houses_2 = [
        Area(f'House 2 {i}',
             children=[
                 Area(f'House 2 {i} Loads ',
                      strategy=LoadHoursStrategy(avg_power_W=500,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 initial_buying_rate=1,
                                                 final_buying_rate=12))
             ]) for i in range(1, 50)
    ]
    houses_3 = [
        Area(f'House 3 {i}',
             children=[
                 Area(f'House 3 {i} Loads',
                      strategy=LoadHoursStrategy(avg_power_W=500,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 initial_buying_rate=1,
                                                 final_buying_rate=12))
             ]) for i in range(1, 50)
    ]
    flats = [
        Area(f'Flat {i}',
             children=[
                 Area(f'Flat {i} Loads ',
                      strategy=LoadHoursStrategy(avg_power_W=500,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 initial_buying_rate=1,
                                                 final_buying_rate=12))
             ]) for i in range(1, 120)
    ]

    area = Area('Grid', [
        Area('Micro-grid', children=[*houses_1, *houses_2, *houses_3, *flats]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=market_maker_rate)),
    ],
                config=config)
    return area
Beispiel #17
0
def get_setup(config):
    ConstSettings.GeneralSettings.DEFAULT_UPDATE_INTERVAL = 5
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load',
                         strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=6,
                                                    hrs_of_day=list(
                                                        range(12, 18)),
                                                    final_buying_rate=25),
                         grid_fee_percentage=0),
                    Area('H1 Storage1',
                         strategy=StorageStrategy(initial_soc=50),
                         grid_fee_percentage=0),
                    Area('H1 Storage2',
                         strategy=StorageStrategy(initial_soc=50),
                         grid_fee_percentage=0),
                ],
                grid_fee_percentage=0,
                grid_fee_constant=0,
            ),
            Area(
                'House 2',
                [
                    Area('H2 General Load',
                         strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=4,
                                                    hrs_of_day=list(
                                                        range(12, 16)),
                                                    final_buying_rate=35),
                         grid_fee_percentage=0),
                    Area('H2 PV',
                         strategy=PVStrategy(10),
                         grid_fee_percentage=0),
                ],
                grid_fee_percentage=0,
                grid_fee_constant=0,
            ),
            Area('Cell Tower',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24)),
                                            final_buying_rate=35),
                 grid_fee_percentage=0)
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_range_wh=(40, 120), energy_price=30),
            #
            #      ),
        ],
        config=config)
    return area
Beispiel #18
0
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.IAASettings.BID_OFFER_MATCH_TYPE = \
        BidOfferMatchAlgoEnum.PAY_AS_CLEAR.value
    # ConstSettings.GeneralSettings.SUPPLY_DEMAND_PLOTS = False
    ConstSettings.GeneralSettings.MARKET_CLEARING_FREQUENCY_PER_SLOT = 3
    ConstSettings.GeneralSettings.DEFAULT_UPDATE_INTERVAL = 5

    area = Area('Grid', [
        Area('House 1', [
            Area(
                'H1 General Load',
                strategy=LoadHoursStrategy(avg_power_W=100,
                                           hrs_per_day=6,
                                           hrs_of_day=list(range(12, 18)),
                                           initial_buying_rate=35,
                                           final_buying_rate=35),
            ),
            Area(
                'H1 Storage1',
                strategy=StorageStrategy(initial_soc=50),
            ),
            Area(
                'H1 Storage2',
                strategy=StorageStrategy(initial_soc=50),
            ),
        ]),
        Area('House 2', [
            Area(
                'H2 General Load',
                strategy=LoadHoursStrategy(avg_power_W=100,
                                           hrs_per_day=4,
                                           hrs_of_day=list(range(12, 16)),
                                           final_buying_rate=35),
            ),
            Area(
                'H2 PV',
                strategy=PVStrategy(4),
            ),
            Area(
                'H2 CEP',
                strategy=CommercialStrategy(energy_rate=10),
            ),
        ]),
        Area(
            'Cell Tower',
            strategy=LoadHoursStrategy(avg_power_W=100,
                                       hrs_per_day=24,
                                       hrs_of_day=list(range(0, 24)),
                                       final_buying_rate=35),
        ),
    ],
                config=config)
    return area
Beispiel #19
0
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.GeneralSettings.EXPORT_ENERGY_TRADE_PROFILE_HR = True
    ConstSettings.GeneralSettings.EXPORT_OFFER_BID_TRADE_HR = True

    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=6,
                                            hrs_of_day=list(range(12, 18)),
                                            final_buying_rate=30,
                                            fit_to_limit=True,
                                            update_interval=1)),
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_soc=50,
                                          min_allowed_soc=10,
                                          battery_capacity_kWh=1.2,
                                          max_abs_battery_power_kW=5,
                                          initial_selling_rate=30,
                                          final_buying_rate=25,
                                          final_selling_rate=25.1,
                                          initial_buying_rate=0,
                                          fit_to_limit=True,
                                          update_interval=1)),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16)),
                                            final_buying_rate=30,
                                            fit_to_limit=True,
                                            update_interval=1)),
            Area('H2 PV',
                 strategy=PVStrategy(4,
                                     initial_selling_rate=30,
                                     final_selling_rate=0,
                                     fit_to_limit=True,
                                     update_interval=1)),
        ]),
        Area('Cell Tower',
             strategy=LoadHoursStrategy(avg_power_W=100,
                                        hrs_per_day=24,
                                        hrs_of_day=list(range(0, 24)),
                                        final_buying_rate=30,
                                        fit_to_limit=True,
                                        update_interval=1)),
        Area('Market Maker',
             strategy=MarketMakerStrategy(energy_rate=30,
                                          grid_connected=True)),
    ],
                config=config)
    return area
Beispiel #20
0
def test_load_hour_strategy_increases_rate_when_fit_to_limit_is_false():
    load = LoadHoursStrategy(avg_power_W=100,
                             initial_buying_rate=0,
                             final_buying_rate=30,
                             fit_to_limit=False,
                             energy_rate_increase_per_update=10,
                             update_interval=5)
    load.area = FakeArea()
    load.event_activate()
    assert all([
        rate == -10
        for rate in load.bid_update.energy_rate_change_per_update.values()
    ])
Beispiel #21
0
def get_setup(config):

    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.LoadSettings.INITIAL_BUYING_RATE = 35
    ConstSettings.LoadSettings.FINAL_BUYING_RATE = 35
    ConstSettings.StorageSettings.INITIAL_BUYING_RATE = 24.99
    ConstSettings.StorageSettings.FINAL_BUYING_RATE = 25
    ConstSettings.StorageSettings.INITIAL_SELLING_RATE = 30
    ConstSettings.StorageSettings.FINAL_SELLING_RATE = 25.01

    area = Area(
        'Grid',
        [
            Area('House 1', [
                Area('H1 General Load',
                     strategy=LoadHoursStrategy(avg_power_W=100,
                                                hrs_per_day=6,
                                                hrs_of_day=list(range(12, 18)),
                                                final_buying_rate=35),
                     appliance=SwitchableAppliance()),
                Area('H1 Storage1',
                     strategy=StorageStrategy(initial_soc=50),
                     appliance=SwitchableAppliance()),
                Area('H1 Storage2',
                     strategy=StorageStrategy(),
                     appliance=SwitchableAppliance())
            ]),
            Area('House 2', [
                Area('H2 General Load',
                     strategy=LoadHoursStrategy(avg_power_W=100,
                                                hrs_per_day=4,
                                                hrs_of_day=list(range(12, 16)),
                                                final_buying_rate=35),
                     appliance=SwitchableAppliance()),
                Area('H2 PV', strategy=PVStrategy(4), appliance=PVAppliance()),
            ]),
            Area('Cell Tower',
                 strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                     hrs_per_day=24,
                                                     hrs_of_day=list(
                                                         range(0, 24)),
                                                     final_buying_rate=35),
                 appliance=SwitchableAppliance())
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_range_wh=(40, 120), energy_price=30),
            #      appliance=SimpleAppliance()
            #      ),
        ],
        config=config)
    return area
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area(
                'H1 General Load',
                strategy=LoadHoursStrategy(avg_power_W=200,
                                           hrs_per_day=6,
                                           hrs_of_day=list(range(12, 18)),
                                           final_buying_rate=35),
            ),
            Area(
                'H1 Storage1',
                strategy=StorageStrategy(
                    initial_soc=50,
                    final_buying_rate=final_buying_rate_profile,
                    final_selling_rate=final_selling_rate_profile,
                    max_abs_battery_power_kW=5.0),
            ),
            Area(
                'H1 Storage2',
                strategy=StorageStrategy(
                    initial_soc=50,
                    final_buying_rate=final_buying_rate_profile_2,
                    final_selling_rate=final_selling_rate_profile_2,
                    max_abs_battery_power_kW=5.0),
            ),
        ]),
        Area('House 2', [
            Area(
                'H2 General Load',
                strategy=LoadHoursStrategy(avg_power_W=200,
                                           hrs_per_day=4,
                                           hrs_of_day=list(range(12, 16)),
                                           final_buying_rate=35),
            ),
            Area(
                'H2 PV',
                strategy=PVStrategy(4),
            ),
        ]),
        Area(
            'Cell Tower',
            strategy=LoadHoursStrategy(avg_power_W=100,
                                       hrs_per_day=24,
                                       hrs_of_day=list(range(0, 24)),
                                       final_buying_rate=35),
        ),
    ],
                config=config)
    return area
Beispiel #23
0
def get_setup(config):

    ConstSettings.IAASettings.MARKET_TYPE = 3
    # ConstSettings.GeneralSettings.SUPPLY_DEMAND_PLOTS = False
    ConstSettings.GeneralSettings.MARKET_CLEARING_FREQUENCY_PER_SLOT = 3
    ConstSettings.LoadSettings.INITIAL_BUYING_RATE = 35
    ConstSettings.LoadSettings.FINAL_BUYING_RATE = 35
    ConstSettings.StorageSettings.INITIAL_BUYING_RATE = 24.99
    ConstSettings.StorageSettings.FINAL_BUYING_RATE = 25
    ConstSettings.StorageSettings.INITIAL_SELLING_RATE = 30
    ConstSettings.StorageSettings.FINAL_SELLING_RATE = 25.01

    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=6,
                                            hrs_of_day=list(range(12, 18)),
                                            initial_buying_rate=35,
                                            final_buying_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_soc=50),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage2',
                 strategy=StorageStrategy(initial_soc=50),
                 appliance=SwitchableAppliance()),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16)),
                                            final_buying_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H2 PV', strategy=PVStrategy(4), appliance=PVAppliance()),
            Area('H2 CEP',
                 strategy=CommercialStrategy(energy_rate=10),
                 appliance=SimpleAppliance()),
        ]),
        Area('Cell Tower',
             strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 final_buying_rate=35),
             appliance=SwitchableAppliance()),
    ],
                config=config)
    return area
Beispiel #24
0
def get_setup(config):
    DeviceRegistry.REGISTRY = device_registry_dict
    ConstSettings.BalancingSettings.ENABLE_BALANCING_MARKET = True
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load', strategy=LoadHoursStrategy(avg_power_W=200,
                                                                       hrs_per_day=6,
                                                                       hrs_of_day=list(
                                                                           range(12, 18)),
                                                                       max_energy_rate=35),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage1', strategy=StorageStrategy(initial_capacity_kWh=0.6),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage2', strategy=StorageStrategy(initial_capacity_kWh=0.6),
                         appliance=SwitchableAppliance()),
                ]
            ),
            Area(
                'House 2',
                [
                    Area('H2 General Load', strategy=LoadHoursStrategy(avg_power_W=200,
                                                                       hrs_per_day=4,
                                                                       hrs_of_day=list(
                                                                           range(12, 16)),
                                                                       max_energy_rate=35),
                         appliance=SwitchableAppliance()),
                    Area('H2 PV', strategy=PVStrategy(4, 80),
                         appliance=PVAppliance()),

                ]
            ),
            Area('Cell Tower', strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                                   hrs_per_day=24,
                                                                   hrs_of_day=list(range(0, 24)),
                                                                   max_energy_rate=35),
                 appliance=SwitchableAppliance()),
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_rate=30),
            #      appliance=SimpleAppliance()
            #      ),

        ],
        config=config
    )
    return area
def get_setup(config):

    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.IAASettings.MIN_OFFER_AGE = 0
    ConstSettings.IAASettings.MIN_BID_AGE = 0

    area = Area(
        "Grid",
        [
            Area("Community", [
                Area("Family 2 children with PV + ESS", [
                    Area("Family General Load",
                         strategy=LoadHoursStrategy(avg_power_W=5680,
                                                    hrs_of_day=list(range(24)),
                                                    hrs_per_day=24,
                                                    initial_buying_rate=23,
                                                    final_buying_rate=23)),
                    Area("Family PV",
                         strategy=PVStrategy(max_panel_power_W=17985,
                                             panel_count=1,
                                             initial_selling_rate=6,
                                             final_selling_rate=6)),
                    Area("Family ESS",
                         strategy=StorageStrategy(initial_soc=20,
                                                  battery_capacity_kWh=5,
                                                  initial_buying_rate=22.94,
                                                  final_buying_rate=22.94,
                                                  initial_selling_rate=22.95,
                                                  final_selling_rate=22.95))
                ]),
                Area("Community PP",
                     strategy=FinitePowerPlant(max_available_power_kW=10,
                                               energy_rate=1)),
                Area("Community Load",
                     strategy=LoadHoursStrategy(avg_power_W=1200,
                                                hrs_of_day=list(range(24)),
                                                hrs_per_day=24,
                                                initial_buying_rate=10,
                                                final_buying_rate=10))
            ],
                 grid_fee_constant=4.0),
            Area("DSO",
                 strategy=InfiniteBusStrategy(energy_buy_rate=20,
                                              energy_sell_rate=22))
        ],
        config=config,
        grid_fee_constant=4.0,
    )
    return area
Beispiel #26
0
def get_setup(config):
    ConstSettings.GeneralSettings.EXPORT_SUPPLY_DEMAND_PLOTS = True
    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.IAASettings.BID_OFFER_MATCH_TYPE = \
        BidOfferMatchAlgoEnum.PAY_AS_CLEAR.value
    ConstSettings.IAASettings.PAY_AS_CLEAR_AGGREGATION_ALGORITHM = 1
    ConstSettings.GeneralSettings.MARKET_CLEARING_FREQUENCY_PER_SLOT = 1
    ConstSettings.IAASettings.MIN_OFFER_AGE = 0
    ConstSettings.IAASettings.MIN_BID_AGE = 0

    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load1', strategy=LoadHoursStrategy(
                        avg_power_W=100, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=28.8, fit_to_limit=False,
                        energy_rate_increase_per_update=0),
                         ),
                    Area('H1 General Load2', strategy=LoadHoursStrategy(
                        avg_power_W=100, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=18.8, fit_to_limit=False,
                        energy_rate_increase_per_update=0),
                         ),
                    Area('H1 General Load3', strategy=LoadHoursStrategy(
                        avg_power_W=100, hrs_per_day=24, hrs_of_day=list(range(24)),
                        initial_buying_rate=8.8, fit_to_limit=False,
                        energy_rate_increase_per_update=0),
                         ),
                    Area('H1 CEP1',
                         strategy=FinitePowerPlant(energy_rate=5.1, max_available_power_kW=0.1),
                         ),
                    Area('H1 CEP2',
                         strategy=FinitePowerPlant(energy_rate=15.5, max_available_power_kW=0.1),
                         ),
                    Area('H1 CEP3',
                         strategy=FinitePowerPlant(energy_rate=25.001, max_available_power_kW=0.1),
                         ),
                    Area('H1 CEP4',
                         strategy=FinitePowerPlant(energy_rate=28.001, max_available_power_kW=0.1),
                         ),
                ]
            ),
        ],
        config=config
    )
    return area
Beispiel #27
0
def get_setup(config):
    area = Area('Grid', [
        Area(
            'House 1',
            [
                Area('Penalty PV',
                     strategy=PVStrategy(panel_count=10,
                                         initial_selling_rate=30,
                                         final_selling_rate=5),
                     appliance=PVAppliance()),
            ],
            grid_fee_percentage=0,
            transfer_fee_const=0,
        ),
        Area(
            'House 2',
            [
                Area('Non Penalty Load',
                     strategy=LoadHoursStrategy(avg_power_W=100,
                                                hrs_per_day=6,
                                                hrs_of_day=list(range(10, 16)),
                                                final_buying_rate=35),
                     appliance=SwitchableAppliance()),
            ],
            grid_fee_percentage=0,
            transfer_fee_const=0,
        ),
    ],
                config=config)
    return area
def get_setup(config):
    config.grid_fee_type = 1
    ConstSettings.GeneralSettings.DEFAULT_UPDATE_INTERVAL = 5
    area = Area('Grid', [
        Area('Neighborhood 1', [
            Area('House 1', [
                Area('H1 General Load',
                     strategy=LoadHoursStrategy(avg_power_W=200,
                                                hrs_per_day=24,
                                                hrs_of_day=list(range(0, 24)),
                                                initial_buying_rate=30,
                                                final_buying_rate=30),
                     appliance=SwitchableAppliance()),
            ],
                 grid_fee_constant=0)
        ],
             grid_fee_constant=1),
        Area('Neighborhood 2', [
            Area('House 2', [
                Area('H2 PV',
                     strategy=PVStrategy(panel_count=10,
                                         initial_selling_rate=10,
                                         final_selling_rate=10),
                     appliance=PVAppliance()),
            ],
                 grid_fee_constant=0),
        ],
             grid_fee_constant=1)
    ],
                config=config,
                grid_fee_constant=2)
    return area
def get_setup(config):
    area = Area(
        'Grid',
        children=[
            Area(
                'House 1',
                event_list=[DisconnectIntervalAreaEvent(6, 16)],
                children=[
                    Area('H1 General Load', strategy=LoadHoursStrategy(avg_power_W=200,
                                                                       hrs_per_day=24,
                                                                       hrs_of_day=list(
                                                                           range(0, 24)),
                                                                       final_buying_rate=27),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage1', strategy=StorageStrategy(initial_soc=50,
                                                                 battery_capacity_kWh=30,
                                                                 max_abs_battery_power_kW=1),
                         appliance=SwitchableAppliance()),
                ]
            ),
            Area('Commercial Energy Producer',
                 strategy=CommercialStrategy(energy_rate=22),
                 appliance=SimpleAppliance()
                 ),

        ],
        config=config
    )
    return area
Beispiel #30
0
def get_setup(config):
    config.read_market_maker_rate(30)
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load', strategy=LoadHoursStrategy(avg_power_W=100,
                                                                       hrs_per_day=24,
                                                                       hrs_of_day=list(
                                                                           range(0, 24)),
                                                                       final_buying_rate=14),
                         appliance=SwitchableAppliance()),
                    Area('H1 Storage1', strategy=StorageStrategy(energy_rate_decrease_per_update=7,
                                                                 battery_capacity_kWh=1.2,
                                                                 max_abs_battery_power_kW=5,
                                                                 final_buying_rate=12,
                                                                 final_selling_rate=17.01),

                         appliance=SwitchableAppliance()),
                    Area('H1 PV', strategy=PVStrategy(panel_count=4,
                                                      final_selling_rate=5,
                                                      energy_rate_decrease_per_update=7),
                         appliance=PVAppliance()),

                ]
            ),
            Area('Commercial Energy Producer',
                 strategy=CommercialStrategy(energy_rate=15),
                 appliance=SimpleAppliance()),
        ],
        config=config
    )
    return area