コード例 #1
0
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)),
            ],
                 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),
                )
            ],
                 grid_fee_constant=0),
        ],
             grid_fee_constant=1)
    ],
                config=config,
                grid_fee_constant=2)
    return area
コード例 #2
0
ファイル: d3asim_2948.py プロジェクト: rimaaugustine/d3a
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area('Load', strategy=LoadHoursStrategy(avg_power_W=100,
                                                    hrs_per_day=24,
                                                    hrs_of_day=list(range(0, 24)),
                                                    initial_buying_rate=0,
                                                    use_market_maker_rate=True)),
            Area('Market Maker',
                 strategy=MarketMakerStrategy(energy_rate=30)

                 ),
        ],
        config=config,
        grid_fee_constant=5,
    )
    return area
コード例 #3
0
    def test_export_unmatched_loads_is_reported_correctly_for_all_loads_matched(
            self):
        house1 = Area("House1", [self.area1, self.area2])
        self.grid = Area("Grid", [house1])
        self.grid._markets.past_markets = {}
        for i in range(1, 11):
            timeslot = DateTime(2018, 1, 1, 12 + i, 0, 0)
            self.strategy1.state.desired_energy_Wh[timeslot] = 100
            self.strategy2.state.desired_energy_Wh[timeslot] = 100
            mock_market = MagicMock(spec=Market)
            mock_market.time_slot = timeslot
            mock_market.traded_energy = {"load1": -0.101, "load2": -0.101}
            house1._markets.past_markets[timeslot] = mock_market
            self.grid._markets.past_markets[timeslot] = mock_market

        unmatched_loads = export_unmatched_loads(self.grid)
        assert unmatched_loads["unmatched_load_count"] == 0
        assert unmatched_loads["all_loads_met"]
コード例 #4
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=15,
                                            hrs_of_day=list(range(5, 20))),
                 appliance=SwitchableAppliance()),
            Area('H1 PV1',
                 strategy=PVPredefinedStrategy(panel_count=1, risk=80),
                 appliance=PVAppliance()),
            Area('H1 PV2',
                 strategy=PVPredefinedStrategy(panel_count=1, risk=80),
                 appliance=PVAppliance()),
        ]),
    ],
                config=config)
    return area
コード例 #5
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area('Load', strategy=LoadHoursStrategy(avg_power_W=200,
                                                    hrs_per_day=24,
                                                    hrs_of_day=list(
                                                        range(0, 24)),
                                                    final_buying_rate=40)
                 ),
            Area('Market Maker', strategy=MarketMakerStrategy(energy_rate=18.7,
                                                              grid_connected=False)
                 ),

        ],
        config=config
    )
    return area
コード例 #6
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_soc=40,
                                          battery_capacity_kWh=5,
                                          max_abs_battery_power_kW=5,
                                          initial_buying_rate=0,
                                          final_buying_rate=16.99,
                                          final_selling_rate=17.01)),
        ]),
        Area(
            'Commercial Energy Producer',
            strategy=CommercialStrategy(energy_rate=15),
        )
    ],
                config=config)
    return area
コード例 #7
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24)),
                                            final_buying_rate=35),
                 appliance=SwitchableAppliance()),
        ]),
        Area('Finite Commercial Producer Profile',
             strategy=FinitePowerPlant(
                 energy_rate=31.3,
                 max_available_power_kW=diesel_power_profile_kW),
             appliance=SwitchableAppliance()),
    ],
                config=config)
    return area
コード例 #8
0
ファイル: d3asim_778.py プロジェクト: mukundwadhwa/d3a-1
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 2
    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=24,
                                            hrs_of_day=list(range(0, 24)),
                                            initial_buying_rate=0,
                                            final_buying_rate=30))
        ]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=30),
             appliance=SimpleAppliance()),
    ],
                config=config)
    return area
コード例 #9
0
ファイル: test_area.py プロジェクト: mukundwadhwa/d3a-1
    def test_cycle_markets(self):
        GlobalConfig.end_date = GlobalConfig.start_date + GlobalConfig.sim_duration
        self.area = Area(name="Street",
                         children=[Area(name="House")],
                         config=GlobalConfig,
                         grid_fee_percentage=1)
        self.area.parent = Area(name="GRID")
        self.area.config.market_count = 5
        self.area.activate()
        assert len(self.area.all_markets) == 5

        assert len(self.area.balancing_markets) == 5
        self.area.current_tick = 900
        self.area._cycle_markets()
        assert len(self.area.past_markets) == 1
        assert len(self.area.past_balancing_markets) == 1
        assert len(self.area.all_markets) == 5
        assert len(self.area.balancing_markets) == 5
コード例 #10
0
    def test_export_unmatched_loads_is_reported_correctly_for_half_loads_unmatched(
            self):
        house1 = Area("House1", [self.area1, self.area2])
        self.grid = Area("Grid", [house1])
        self.grid._markets.past_markets = {}
        for i in range(1, 11):
            timeslot = today(tz=TIME_ZONE).add(hours=12 + i)
            self.strategy1.state.desired_energy_Wh[timeslot] = 100
            self.strategy2.state.desired_energy_Wh[timeslot] = 100
            mock_market = MagicMock(spec=Market)
            mock_market.time_slot = timeslot
            mock_market.traded_energy = {"load1": -0.09, "load2": -0.101}
            house1._markets.past_markets[timeslot] = mock_market
            self.grid._markets.past_markets[timeslot] = mock_market

        unmatched_loads, unmatched_loads_redis = \
            ExportUnmatchedLoads(self.grid).get_current_market_results(all_past_markets=True)
        assert get_number_of_unmatched_loads(unmatched_loads) == 10
コード例 #11
0
 def setUp(self):
     ConstSettings.IAASettings.MARKET_TYPE = 2
     self.market1 = OneSidedMarket(name="test_market")
     self.market1.id = "id1"
     self.market2 = OneSidedMarket(name="test_market")
     self.market2.id = "id2"
     self.area = Area(name="test_area")
     self.area._markets.markets = {1: self.market1, 2: self.market2}
     self.publisher = AreaToMarketEventPublisher(self.area)
コード例 #12
0
ファイル: test_area.py プロジェクト: SpyrosTzavikas/d3a
    def setUp(self):
        ConstSettings.BalancingSettings.ENABLE_BALANCING_MARKET = True
        DeviceRegistry.REGISTRY = {
            "H1 General Load": (33, 35),
            "H2 General Load": (33, 35),
            "H1 Storage1": (23, 25),
            "H1 Storage2": (23, 25),
        }

        self.appliance = MagicMock(spec=SimpleAppliance)
        self.strategy = MagicMock(spec=StorageStrategy)
        self.config = MagicMock(spec=SimulationConfig)
        self.config.slot_length = duration(minutes=15)
        self.config.tick_length = duration(seconds=15)
        self.area = Area("test_area", None, self.strategy, self.appliance,
                         self.config, None)
        self.area.parent = self.area
        self.area.children = [self.area]
コード例 #13
0
def get_setup(config):
    DeviceRegistry.REGISTRY = device_registry_dict
    ConstSettings.BalancingSettings.FLEXIBLE_LOADS_SUPPORT = False
    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=8,
                                            hrs_of_day=list(range(8, 16)))),
        ]),
        Area('House 2', [
            Area('H2 PV', strategy=PVStrategy(4, 0)),
        ]),
    ],
                config=config)
    return area
コード例 #14
0
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
コード例 #15
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
コード例 #16
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.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),
                 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
コード例 #17
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
コード例 #18
0
def get_setup(config):
    area = Area('Grid', [
        Area('InfiniteBus',
             strategy=InfiniteBusStrategy(energy_sell_rate=30,
                                          energy_buy_rate=12),
             appliance=SimpleAppliance()),
        Area('House', [
            Area('Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=10,
                                            hrs_of_day=list(range(8, 19))),
                 appliance=SwitchableAppliance()),
            Area('PV',
                 strategy=PVPredefinedStrategy(cloud_coverage=0),
                 appliance=PVAppliance()),
        ]),
    ],
                config=config)
    return area
コード例 #19
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('PV', strategy=PVStrategy(
                        max_panel_power_W=2000, initial_selling_rate=30, final_selling_rate=30.0),
                         appliance=PVAppliance()),
                    Area('storage', strategy=StorageExternalStrategy(
                        initial_soc=50, battery_capacity_kWh=20),
                         appliance=SwitchableAppliance()),
                ],
            ),
        ],
        config=config
    )
    return area
コード例 #20
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 DefinedLoad',
                         strategy=DefinedLoadStrategy(daily_load_profile=profile_path,
                                                      final_buying_rate=36)
                         ),
                ]
            ),
            Area('Commercial Energy Producer', strategy=CommercialStrategy()
                 ),
        ],
        config=config
    )
    return area
コード例 #21
0
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)),
                     final_buying_rate=user_profile_int)),
            Area('H1 General Load 2',
                 strategy=LoadHoursStrategy(
                     avg_power_W=200,
                     hrs_of_day=list(range(0, 24)),
                     final_buying_rate=user_profile_str)),
        ]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=34)),
    ],
                config=config)
    return area
コード例 #22
0
ファイル: test_area.py プロジェクト: dirkbig/d3a
    def test_keep_past_markets(self):
        ConstSettings.GeneralSettings.KEEP_PAST_MARKETS = True
        self.area = Area(name="Street", children=[Area(name="House")],
                         config=GlobalConfig, transfer_fee_pct=5)
        self.area.config.market_count = 1
        self.area.activate()
        self.area._bc = False

        self.area._cycle_markets(False, False, False)
        assert len(self.area.past_markets) == 0

        current_time = today(tz=TIME_ZONE).add(hours=1)
        self.area._markets.rotate_markets(current_time, self.stats, self.dispatcher)
        assert len(self.area.past_markets) == 1

        self.area._markets.create_future_markets(current_time, True, self.area)
        current_time = today(tz=TIME_ZONE).add(hours=2)
        self.area._markets.rotate_markets(current_time, self.stats, self.dispatcher)
        assert len(self.area.past_markets) == 2
コード例 #23
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_capacity_kWh=2,
                                          initial_rate_option=2,
                                          energy_rate_decrease_option=2,
                                          energy_rate_decrease_per_update=3,
                                          battery_capacity_kWh=5,
                                          max_abs_battery_power_kW=5,
                                          break_even=(16.99, 17.01)),
                 appliance=SwitchableAppliance()),
        ]),
        Area('Commercial Energy Producer',
             strategy=CommercialStrategy(energy_rate=15),
             appliance=SimpleAppliance()),
    ],
                config=config)
    return area
コード例 #24
0
ファイル: test_area.py プロジェクト: dirkbig/d3a
    def test_delete_past_markets_instead_of_last(self):
        self.area = Area(name="Street", children=[Area(name="House")],
                         config=GlobalConfig, transfer_fee_pct=5)
        self.area.config.market_count = 1
        self.area.activate()
        self.area._bc = False

        self.area._cycle_markets(False, False, False)
        assert len(self.area.past_markets) == 0

        current_time = today(tz=TIME_ZONE).add(hours=1)
        self.area._markets.rotate_markets(current_time, self.stats, self.dispatcher)
        assert len(self.area.past_markets) == 1

        self.area._markets.create_future_markets(current_time, True, self.area)
        current_time = today(tz=TIME_ZONE).add(hours=2)
        self.area._markets.rotate_markets(current_time, self.stats, self.dispatcher)
        assert len(self.area.past_markets) == 1
        assert list(self.area.past_markets)[-1].time_slot == today(tz=TIME_ZONE).add(hours=1)
コード例 #25
0
def get_setup(config):
    area = Area('Grid', [
        Area('Electrolyzer',
             strategy=ElectrolyzerStrategy(
                 discharge_profile=electrolizer_profile_file,
                 conversion_factor_kg_to_kWh=50,
                 reservoir_capacity_kg=56.0,
                 reservoir_initial_capacity_kg=10,
                 production_rate_kg_h=2.8),
             appliance=SwitchableAppliance()),
        Area('PV',
             strategy=PVPredefinedStrategy(panel_count=1),
             appliance=PVAppliance()),
        Area("Commercial Energy Producer",
             strategy=CommercialStrategy(),
             appliance=SwitchableAppliance()),
    ],
                config=config)
    return area
コード例 #26
0
ファイル: default_2a.py プロジェクト: NunoEdgarGFlowHub/d3a
def get_setup(config):

    ConstSettings.IAASettings.MARKET_TYPE = 2
    ConstSettings.LoadSettings.INITIAL_BUYING_RATE = 35
    ConstSettings.LoadSettings.FINAL_BUYING_RATE = 35
    ConstSettings.StorageSettings.BUYING_RANGE = RangeLimit(24.99, 25)
    ConstSettings.StorageSettings.SELLING_RANGE = RangeLimit(30, 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
コード例 #27
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24)),
                                            final_buying_rate=25)),
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_soc=100,
                                          battery_capacity_kWh=5,
                                          max_abs_battery_power_kW=5,
                                          initial_buying_rate=0,
                                          final_buying_rate=16.99,
                                          final_selling_rate=17.01)),
        ]),
    ],
                config=config)
    return area
コード例 #28
0
ファイル: d3asim_1535.py プロジェクト: mukundwadhwa/d3a-1
def get_setup(config):
    area = Area('Grid', [
        Area('Finite Power Plant',
             strategy=FinitePowerPlant(energy_rate=30,
                                       max_available_power_kW=100),
             appliance=SwitchableAppliance()),
        Area('Load',
             strategy=LoadHoursStrategy(avg_power_W=100,
                                        hrs_per_day=9,
                                        hrs_of_day=list(range(8, 18))),
             appliance=SwitchableAppliance(),
             children=[
                 Area("Forbidden Load",
                      strategy=LoadHoursStrategy(avg_power_W=100,
                                                 hrs_per_day=9))
             ]),
    ],
                config=config)
    return area
コード例 #29
0
 def setUp(self):
     self.ext_strategy_mock = MagicMock
     d3a.models.area.redis_external_connection.ExternalStrategy = self.ext_strategy_mock
     d3a.models.area.redis_external_connection.StrictRedis = MagicMock()
     redis_db_object = MagicMock()
     redis_db_object.pubsub = MagicMock
     d3a.models.area.redis_external_connection.StrictRedis.from_url = \
         MagicMock(return_value=redis_db_object)
     self.area = Area(name="base_area")
     self.external_connection = RedisAreaExternalConnection(self.area)
コード例 #30
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)),
                                                                       max_energy_rate=25),
                         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_range_wh=(40, 120), energy_price=30),
            #      appliance=SimpleAppliance()
            #      ),

        ],
        config=config
    )
    return area