The tariff_design
pipeline runs GridLAB-D tariff_design template.
Recommended pipeline settings:
Setting | Recommended value |
---|---|
Pipeline name | Tariff_Design |
Description | Run GridLAB-D |
DockerHub Repository | slacgismo/gridlabd:develop |
Git Clone URL (https) | https://github.com/openfido/tariff_design |
Repository Branch | main |
Entrypoint Script (.sh) | openfido.sh |
The configuration file config.csv
must be uploaded with the first row as Header, Value
. The following parameters are recognized in config.csv
:
WEATHER_STATION
: Specifies the weather station for the tariff simulation environment. No default.STARTTIME
: Specifies the starting time for the tariff simulation. Recommended to use ISO8601 format. No default (subject to change).STOPTIME
: Specifies the ending time for the tariff simulation. Recommended to use ISO8601 format. No default (subject to change).TIMEZONE
: Specifies time zone ofSTARTTIME
andSTOPTIME
. Recommended to use ISO8601 format. No default (subject to change).MODEL
: Specifies name of model for tariff simulation. File of the same name must be provided as input. Optional, default ismodel.glm
.OUTPUT
: Specifies name of output file to store results of tariff simulation. Optional, default isoutput.csv
.TARIFF_UTILITY
: Specifies utility company name. Values must bePacific Gas & Electric Co
,San Diego Gas & Electric Co
, orSouthern California Edison Co
. If value not provided, will attempt simulation usingTARIFF_NAME
andTARIFF_REGION
.TARIFF_NAME
: Specifies tariff name. Values must beE-TOU-C3
,E-7 Residential Time of Use Baseline
,E-1
,E-7
,E-6
,DR
,EV-TOU-2
,TOU-D-B
, orTOU-D-TEV
. If value not provided, will attempt simulation usingTARIFF_UTILITY
andTARIFF_REGION
.TARIFF_REGION
: Specifies tariff region. Values must beRegion R
,REGION P
,REGION T
,REGION Z
,MOUTAIN BASELINE REGION
,REGION 15
.TARIFF_INDEX_SPECIFIC
: Some tariffs need extra information to simulate. When encountered, provide this field with a corresponding value specified by the error message.
The model.glm
file also requires various definitions and module declarations currently:
module powerflow;
module residential;
#input "config.csv" -f config -t config
#define tariff_index=${TARIFF_INDEX}
clock {
timezone ${TIMEZONE};
starttime ${STARTTIME};
stoptime ${STOPTIME};
}
#input "${WEATHER_STATION}.tmy3"
An example of a complete model.glm
file is shown below:
module powerflow;
module residential;
#input "config.csv" -f config -t config
#define tariff_index=${TARIFF_INDEX}
clock {
timezone ${TIMEZONE};
starttime ${STARTTIME};
stoptime ${STOPTIME};
}
#input "${WEATHER_STATION}.tmy3"
#define PRIMARY_VOLTAGE=4800V
#define POWER_RATING=500
#define RESISTANCE=0.011
#define REACTANCE=0.02
class meter
{
string monthly_charges;
string monthly_usage;
string monthly_power;
double monthly_updated_charges[$];
double monthly_updated_usage[kWh];
double monthly_updated_power[W];
}
object meter
{
bustype "SWING";
name "meter_1";
nominal_voltage "4800V";
phases "ABCN";
}
object transformer_configuration {
name "transformer_type1";
connect_type "SINGLE_PHASE_CENTER_TAPPED";
install_type "PADMOUNT";
power_rating ${POWER_RATING};
primary_voltage ${PRIMARY_VOLTAGE};
secondary_voltage "120V";
resistance ${RESISTANCE};
reactance ${REACTANCE};
}
#for ID in ${RANGE 1, 20}
object transformer {
name transformer_${ID};
phases "AS";
from "meter_1";
to "submeter_${ID}";
configuration "transformer_type1";
}
object triplex_meter
{
name "submeter_${ID}";
nominal_voltage "120V";
phases "AS";
object house
{
floor_area random.triangle(1000,2000);
thermal_integrity_level "NORMAL";
gas_enduses "WATERHEATER|DRYER|RANGE";
heating_system_type "HEAT_PUMP";
};
}
#done
Below is an example of config.csv
:
Header | Value |
---|---|
WEATHER_STATION | CA-San_Francisco_Intl_Ap |
STARTTIME | 2020-01-01T00:00:00-00:00 |
STOPTIME | 2021-01-15T00:00:00-12:00 |
TIMEZONE | PST+8PDT |
MODEL | model.glm |
OUTPUT | output.csv |
TARIFF_UTILITY | Pacific Gas & Electric Co |
TARIFF_NAME | E-TOU-C3 |
TARIFF_REGION | Region R |
An optional clock.glm
file can also be uploaded containing a clock object. The clock object must have the following properties:
STARTTIME
: Specifies the starting time for the tariff simulation. Recommended to use ISO8601 format. No default (subject to change).STOPTIME
: Specifies the ending time for the tariff simulation. Recommended to use ISO8601 format. No default (subject to change).TIMEZONE
: Specifies time zone ofSTARTTIME
andSTOPTIME
. Recommended to use ISO8601 format. No default (subject to change). Note that the same values inconfig.csv
must still be provided. However, theclock.glm
values will be used. Below is an exampleclock.glm
:
clock {
timezone "PST+8PDT";
starttime "2020-12-08 16:00:00 PST";
stoptime "2021-1-09 12:00:00 PST";
}
output.csv
or the name specified in OUTPUT
of config.csv
is generated in the output folder. It will contain the following data by column:
Meter_ID
: The name of the meter as the index.Date
: The date that row results are sampled.Days
: The number of days the row results accumulated.Cost ($)
: The amount incurred based on the configured simulation.Energy (kWh)
: The electricty consumption.Peak Power (W)
: The measured demand during simulation duration.
Three bargraphs (.png) are generated in the output folder for each meter: one for Cost ($)
, Energy (kWh)
, and Peak Power (W)
. The values of each meter for each month during the simulation duration will be plotted.
Three histograms (.png) are generated in the output folder, plotting the distribution of Cost ($)
, Energy (kWh)
, and Peak Power (W)
across all triplex meters.