The house object implements a single family home. More...
Functions | |
double | house::get_Tsolar (int hour, int month, double Tair, double Tout) |
This function calculates the solar air temperature based on the envelope construction, reflectivity of the color of envelope surface (assumed to be 0.75) and latitude adjustment factor based on time of day. | |
house::house (MODULE *module) | |
House object constructor: Registers the class and publishes the variables that can be set by the user. | |
int | house::init (OBJECT *parent) |
Map circuit variables to meter. | |
int | house::init_climate (void) |
Checks for climate object and maps the climate variables to the house object variables. | |
TIMESTAMP | house::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::sync (TIMESTAMP t0, TIMESTAMP t1) |
Updates the total internal gain and synchronizes with the hvac equipment load. | |
TIMESTAMP | house::sync_hvac_load (TIMESTAMP t1, double nHours) |
HVAC load synchronizaion is based on the equipment capacity, COP, solar loads and total internal gain from end uses. | |
TIMESTAMP | house::sync_thermostat (TIMESTAMP t0, TIMESTAMP t1) |
The PLC control code for house thermostat. |
The house object implements a single family home.
The house 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::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::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 house model considers the following four major heat gains/losses that contribute to the building heating/cooling load:
1. Conduction through exterior walls, roof and fenestration (based on envelope UA)
2. Air infiltration (based on specified air change rate)
3. Solar radiation (based on CLTD model and using tmy data)
4. Internal gains from lighting, people, equipment and other end use objects.
The heating/cooling load is calculated as below:
Q = U x A x
where
Q = cooling load for roof, wall or fenestration (Btu/h)
U = overall heat transfer coefficient for roof, wall or fenestration
A = area of wall, roof or fenestration
= corrected cooling load temperature difference (degF)
where
CLTD = temperature difference based on construction types (taken from ASHRAE Handbook)
LM = correction for latitude based on tables from ASHRAE Handbook
= room air temperature (degF)
= average outdoor air temperature on a design day (degF)
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 and attached to the electrical panel with a 50 amp/220-240V circuit.
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.
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];
double house::get_Tsolar | ( | int | hour, | |
int | month, | |||
double | Tair, | |||
double | Tout | |||
) | [inherited] |
This function calculates the solar air temperature based on the envelope construction, reflectivity of the color of envelope surface (assumed to be 0.75) and latitude adjustment factor based on time of day.
Definition at line 884 of file house_a.cpp.
house::house | ( | 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 148 of file house_a.cpp.
int house::init | ( | OBJECT * | parent | ) | [inherited] |
Map circuit variables to meter.
Initalize house and HVAC model properties, and internal gain variables.
Definition at line 306 of file house_a.cpp.
int house::init_climate | ( | void | ) | [inherited] |
Checks for climate object and maps the climate variables to the house 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 252 of file house_a.cpp.
TIMESTAMP house::sync | ( | TIMESTAMP | t0, | |
TIMESTAMP | t1 | |||
) | [inherited] |
Updates the total internal gain and synchronizes with the hvac equipment load.
Also synchronizes the voltages and current in the panel with the meter.
Definition at line 764 of file house_a.cpp.
TIMESTAMP house::sync_hvac_load | ( | TIMESTAMP | t1, | |
double | nHours | |||
) | [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.
Definition at line 790 of file house_a.cpp.
TIMESTAMP house::sync_thermostat | ( | TIMESTAMP | t0, | |
TIMESTAMP | t1 | |||
) | [inherited] |
The PLC control code for house thermostat.
The heat or cool mode is based on the house air temperature, thermostat setpoints and deadband.
Definition at line 510 of file house_a.cpp.