House_e
[Residential loads (residential)]

The house_e object implements a single family home. More...

Enumerations

enum  IMPLICITENDUSEFLAGS {
  IEU_LIGHTS = 0x00000001, IEU_PLUGS = 0x00000002, IEU_OCCUPANCY = 0x00000004, IEU_DISHWASHER = 0x00000100,
  IEU_MICROWAVE = 0x00000200, IEU_FREEZER = 0x00010000, IEU_REFRIGERATOR = 0x00020000, IEU_RANGE = 0x00040000,
  IEU_EVCHARGER = 0x00080000, IEU_WATERHEATER = 0x00100000, IEU_CLOTHESWASHER = 0x01000000, IEU_DRYER = 0x02000000,
  IEU_ALL = 0x03170303
}
enum  IMPLICITENDUSESOURCE { IES_ELCAP1990 = 0, IES_ELCAP2010 = 1, IES_RBSA2014 = 2 }

Functions

CIRCUIT * house_e::attach (OBJECT *obj, double limit, int is220=false, enduse *pEnduse=NULL)
 Attaches an end-use object to a house_e panel The attach() method automatically assigns an end-use load to the first appropriate available circuit.
 house_e::house_e (MODULE *module)
 House object constructor: Registers the class and publishes the variables that can be set by the user.
int house_e::init (OBJECT *parent)
 Map circuit variables to meter.
int house_e::init_climate (void)
 Checks for climate object and maps the climate variables to the house_e object variables.
TIMESTAMP house_e::postsync (TIMESTAMP t0, TIMESTAMP t1)
 Removes load contributions from parent object.
TIMESTAMP house_e::presync (TIMESTAMP t0, TIMESTAMP t1)
 Updates the aggregated power from all end uses, calculates the HVAC kWh use for the next synch time.
TIMESTAMP house_e::sync (TIMESTAMP t0, TIMESTAMP t1)
 Updates the total internal gain and synchronizes with the system equipment load.
TIMESTAMP house_e::sync_thermostat (TIMESTAMP t0, TIMESTAMP t1)
 The PLC control code for house_e thermostat.
void house_e::update_system (double dt=0)
 HVAC load synchronizaion is based on the equipment capacity, COP, solar loads and total internal gain from end uses.

Variables

static enumeration house_e::implicit_enduse_source = IES_ELCAP1990
 source of implicit enduses (e.g., ELCAP1990, ELCAP2010, RBSA2014)
static set house_e::implicit_enduses_active = IEU_ALL
 implicit enduses that are to be activated

Detailed Description

The house_e object implements a single family home.

The house_e only includes the heating/cooling system and the power panel. All other end-uses must be explicitly defined and attached to the panel using the house_e::attach() method.

Residential panels use a split secondary transformer:

		-----)||(------------------ 1    <-- 120V
		     )||(      120V         ^
		1puV )||(----------- 3(N)  240V  <-- 0V
		     )||(      120V         v
		-----)||(------------------ 2    <-- 120V
	

120V objects are assigned alternatively to circuits 1-3 and 2-3 in the order in which they call attach. 240V objects are assigned to circuit 1-2

Circuit breakers will open on over-current with respect to the maximum current given by load when house_e::attach() was called. After a breaker opens, it is reclosed within an average of 5 minutes (on an exponential distribution). Each time the breaker is reclosed, the breaker failure probability is increased. The probability of failure is always 1/N where N is initially a large number (e.g., 100). N is progressively decremented until it reaches 1 and the probability of failure is 100%.

The Equivalent Thermal Parameter (ETP) approach is used to model the residential loads and energy consumption. Solving the ETP model simultaneously for T_{air} and T_{mass}, the heating/cooling loads can be obtained as a function of time.

In the current implementation, the HVAC equipment is defined as part of the house_e and attached to the electrical panel with a 50 amp/220-240V circuit.

Implicit enduses

The use of implicit enduses is controlled globally by the implicit_enduse global variable. All houses in the system will employ the same set of global enduses, meaning that the loadshape is controlled by the default schedule.

Credits

The original concept for ETP was developed by Rob Pratt and Todd Taylor around 1990. The first derivation and implementation of the solution was done by Ross Guttromson and David Chassin for PDSS in 2004.

Billing system

Contract terms are defined according to which contract type is being used. For subsidized and fixed price contracts, the terms are defined using the following format:

    period=[YQMWDH];fee=[$/period];energy=[c/kWh];

Time-use contract terms are defined using

    period=[YQMWDH];fee=[$/period];offpeak=[c/kWh];onpeak=[c/kWh];hours=[int24mask];

When TOU includes critical peak pricing, use

    period=[YQMWDH];fee=[$/period];offpeak=[c/kWh];onpeak=[c/kWh];hours=[int24mask]>;critical=[$/kWh];

RTP is defined using

    period=[YQMWDH];fee=[$/period];bid_fee=[$/bid];market=[name];

Demand pricing uses

    period=[YQMWDH];fee=[$/period];energy=[c/kWh];demand_limit=[kW];demand_price=[$/kW];

Enumeration Type Documentation

Enumerator:
IEU_LIGHTS 

implicit lights load

IEU_PLUGS 

implicit plugs load

IEU_OCCUPANCY 

implicit occupancy load

IEU_DISHWASHER 

implicit dishwasher load

IEU_MICROWAVE 

implicit microwave load

IEU_FREEZER 

implicit freezer load

IEU_REFRIGERATOR 

implicit refrigerator load

IEU_RANGE 

implicit cooking load

IEU_EVCHARGER 

implicit evcharger load

IEU_WATERHEATER 

implicit waterheater load

IEU_CLOTHESWASHER 

implicit clotheswasher load

IEU_DRYER 

implicit dryer load

IEU_ALL 
Todo:
add other implicit enduse flags as they are defined

all (needed to filter)

Definition at line 26 of file house_e.h.

Enumerator:
IES_ELCAP1990 

implicit enduse data source is ELCAP 1990

IES_ELCAP2010 

implicit enduse data source is ELCAP 2010

IES_RBSA2014 

implicit enduse data source is RBSA 2014

Definition at line 51 of file house_e.h.


Function Documentation

CIRCUIT * house_e::attach ( OBJECT *  obj,
double  breaker_amps,
int  is220 = false,
enduse *  pLoad = NULL 
) [inherited]

Attaches an end-use object to a house_e panel The attach() method automatically assigns an end-use load to the first appropriate available circuit.

Returns:
pointer to the voltage on the assigned circuit
Parameters:
obj object to attach
breaker_amps breaker capacity (in Amps)
is220 0 for 120V, 1 for 240V load
pLoad reference to load structure

Definition at line 1774 of file house_e.cpp.

house_e::house_e ( MODULE *  mod  )  [inherited]

House object constructor: Registers the class and publishes the variables that can be set by the user.

Sets default randomized values for published variables.

Definition at line 163 of file house_e.cpp.

References IES_ELCAP1990, IES_ELCAP2010, IES_RBSA2014, IEU_CLOTHESWASHER, IEU_DISHWASHER, IEU_DRYER, IEU_EVCHARGER, IEU_FREEZER, IEU_LIGHTS, IEU_MICROWAVE, IEU_OCCUPANCY, IEU_PLUGS, IEU_RANGE, IEU_REFRIGERATOR, and IEU_WATERHEATER.

int house_e::init ( OBJECT *  parent  )  [inherited]

Map circuit variables to meter.

Initalize house_e and HVAC model properties, and internal gain variables.

Definition at line 1270 of file house_e.cpp.

int house_e::init_climate ( void   )  [inherited]

Checks for climate object and maps the climate variables to the house_e object variables.

Currently Tout, RHout and solar flux data from TMY files are used. If no climate object is linked, then Tout will be set to 74 degF, RHout is set to 75% and solar flux will be set to zero for all orientations.

Definition at line 772 of file house_e.cpp.

TIMESTAMP house_e::sync ( TIMESTAMP  t0,
TIMESTAMP  t1 
) [inherited]

Updates the total internal gain and synchronizes with the system equipment load.

Also synchronizes the voltages and current in the panel with the meter.

Definition at line 2529 of file house_e.cpp.

TIMESTAMP house_e::sync_thermostat ( TIMESTAMP  t0,
TIMESTAMP  t1 
) [inherited]

The PLC control code for house_e thermostat.

The heat or cool mode is based on the house_e air temperature, thermostat setpoints and deadband. This function will update T<mode>{On,Off} as necessary to maintain the setpoints.

Definition at line 2740 of file house_e.cpp.

void house_e::update_system ( double  dt = 0  )  [inherited]

HVAC load synchronizaion is based on the equipment capacity, COP, solar loads and total internal gain from end uses.

The modeling approach is based on the Equivalent Thermal Parameter (ETP) method of calculating the air and mass temperature in the conditioned space. These are solved using a dual decay solver to obtain the time for next state change based on the thermostat set points. This synchronization function updates the HVAC equipment load and power draw.

Todo:
document COP calculation constants

Definition at line 1979 of file house_e.cpp.


GridLAB-D™ Version 4.1
An open-source smart grid simulator created by PNNL for the US Department of Energy Office of Electricity