Skip to content

Simulated Load

Configurable load that follows time-varying profiles or constant power consumption.

Configuration

json
{
  "Name": "test-load",
  "DeviceClass": "SimulatedLoad",
  "AssetType": "Load",
  "SimulatedLoad": {
    "ProfileType": "Residential",
    "PowerW": 2000.0,
    "InitialImportRegisterWh": 8000000.0
  }
}

Configuration Options

PropertyDescriptionDefault
ProfileTypeLoad profile typeResidential
PowerWPower in watts (usage depends on profile)2,000 W
InitialImportRegisterWhStarting energy register8,000,000 Wh (8 MWh)

Profile Types

Residential

Typical home consumption with time-of-day variation:

TimePowerDescription
00:00-06:00500 WStandby appliances
06:00-09:003,000 WMorning routine
09:00-17:00800 WDaytime (work hours)
17:00-22:004,000 WEvening peak
22:00-24:001,500 WLate evening

Includes ±20% random variance for realism. PowerW is ignored.

Commercial

Office/commercial building pattern. Uses PowerW as peak demand:

Time% of PeakDescription
Weekend10%Security, minimal HVAC
00:00-07:0015%Night (baseline systems)
07:00-09:0060%Startup
09:00-17:0085%Business hours
17:00-19:0050%Closing
19:00-24:0020%Evening

Constant

Fixed power consumption. Uses PowerW directly.

Examples

Constant 5 kW Load

json
{
  "Name": "constant-load",
  "DeviceClass": "SimulatedLoad",
  "AssetType": "Load",
  "SimulatedLoad": {
    "ProfileType": "Constant",
    "PowerW": 5000.0
  }
}

Commercial Building (100 kW Peak)

json
{
  "Name": "office-building",
  "DeviceClass": "SimulatedLoad",
  "AssetType": "Load",
  "SimulatedLoad": {
    "ProfileType": "Commercial",
    "PowerW": 100000.0
  }
}

Residential Home

json
{
  "Name": "home-load",
  "DeviceClass": "SimulatedLoad",
  "AssetType": "Load",
  "SimulatedLoad": {
    "ProfileType": "Residential"
  }
}

Custom Load Profiles

CSV Profile

Load profile from CSV file for measured data:

csharp
services.AddSingleton<ILoadProfileProvider>(
    new CsvLoadProfile("path/to/load-data.csv"));

Custom Implementation

Implement ILoadProfileProvider for custom patterns:

csharp
public interface ILoadProfileProvider
{
    double GetLoadPower(DateTime utcTime);
}

Register via DI:

csharp
services.AddSingleton<ILoadProfileProvider, MyCustomLoadProfile>();