-
Notifications
You must be signed in to change notification settings - Fork 15
app_sensor_suitcase
This diagnostic suite includes a variety of analytics:
- Economizer
- Excessive Daylight Lighting
- Excessive Nighttime Lighting
- Setback Points During Unoccupied Hours
- Comfort Optimizations
- Short Cycling
- Too Narrow Room Temperature Setpoint Thresholds
Sample explanatory text for aveTodVar
:
"This metric is used to understand regularity of operations, and the likelihood of consistency in the building's demand responsiveness.
It gives a coefficient of variation that ranges from 0 to 1.
This coefficient can be interpreted based on rules of thumb.
For example, variability above 0.15 is generally considered high for commercial buildings."
Program economizer
- Get inputs:
-
times
, vector of date-times (typically a time-specific format). -
loads
, vector of power data recorded attimes
(float).
-
- Assume:
-
times
are hourly observations. That is, each day has 24 observations. If the original data were recorded at finer granularity, then theloads
represent the average power for the hour in question.
-
- Find the load variability for each unique
timeOfDay
intimes
:- Set
todLoads
to those entries fromloads
that were recorded at one uniquetimeOfDay
fromtimes
. - Set
todCt
to the number of observations intodLoads
. - Set
todAve
to the average oftodLoads
. - Set
todSumSqDev
to the sum of the squares of the differences betweentodLoads
andtodAve
. - Set
todStdDev
to the corrected sample standard deviation of thetodLoads
, that is, to the square root of (todSumSqDev
/ (todCt
- 1)). - Set
todVar
to the variability oftodLoads
, that is, totodStdDev
/todAve
.
- Set
- Find the average of the daily load variabilities:
- Set
aveTodVar
to the average of thetodVar
values.
- Set
- Return
aveTodVar
.
These statistics summarize the minima and maxima across all the data.
The load maximum intensity is the largest load, across all the data, normalized by the building area.
Sample explanatory text for loadMaxIntensity
:
"Load maximum intensity [W/sf]:
The daily maximum usage could be dominated by a single large load, or could be the sum of several smaller ones.
Long periods of usage near the maximum increase overall energy use."
The peak load is the maximum load, across all the data, normalized by the building area.
TODO: resolve apparent duplication with loadMaxIntensity
.
If not a duplicate, add peakLoadIntensity
to pseudo-code below.
If duplicate, remove paragraph below on peakLoadIntensity
but merge explanatory text.
Also remove from TOC above.
Sample explanatory text for peakLoadIntensity
:
"Peak Load [W/sf]:
This is the absolute maximum electric load based on all of your data.
The median for commercial buildings under 150,000 sf is 4.4 W/sf.
Values much higher than 4.4 therefore indicate an opportunity to improve building performance."
The load minimum intensity is the smallest load, across all the data, normalized by the building area.
Sample explanatory text for loadMinIntensity
:
"Load minimum intensity [W/sf]:
Minimum usage is often dominated by loads that run 24 hours a day.
In homes, these include refrigerators and vampire loads.
In commercial buildings, these include ventilation, hallway lighting, computers, and vampire loads."
Program excessiveDaylightLighting
- Get inputs:
-
loads
, vector of power data recorded attimes
(float). -
areaFt2
, floor area of corresponding space [ft^2] (float).
-
- Calculate statistics:
- Set
loadMax
to the maximum value inloads
. - Set
loadMaxIntensity
toloadMax
/areaFt2
. - Set
loadMin
to the minimum value inloads
. - Set
loadMinIntensity
toloadMin
/areaFt2
.
- Set
- Return
loadMaxIntensity
andloadMinIntensity
.
These statistics find a set of daily metrics, and average those metrics across all the days for which data are available. For example, the daily load 95th percentile is the average of the load observed at the 95th percentile of each day's readings.
Sample interpretive text for aveDayBase
:
"Minimum usage is often dominated by loads that run 24 hours a day.
In homes, these include refrigerators and vampire loads.
In commercial buildings, these include ventilation, hallway lighting, computers, and vampire loads."
Sample interpretive text for aveDayPeak
:
"The daily maximum usage could be dominated by a single large load, or could be the sum of several smaller ones.
Long periods of usage near the maximum increase overall energy use."
Sample interpretive text for aveDayBPRatio
:
"Values over 0.33 indicate that significant loads are shut off for parts of the day.
To save energy, look to extend and deepen shutoff periods, while also reducing peak energy use."
Sample explanatory text for aveDayRange
:
"This is a rough estimate of the total load turned on and off every day.
Higher values may indicate good control, but could also indicate excessive peak usage."
Program excessiveNighttimeLighting
- Get inputs:
-
times
, vector of date-times (typically a time-specific format). -
loads
, vector of power data recorded attimes
(float).
-
- Calculate statistics:
- For each day in
times
, find the metrics of interest:- Set
dayBase
to the 5th percentile ofloads
for the day. - Set
dayPeak
to the 95th percentile ofloads
for the day. - Set
dayBPRatio
todayBase
/dayPeak
. - Set
dayRange
todayPeak
-dayBase
.
- Set
- Average across days:
- Set
aveDayBase
to the average of thedayBase
values. - Set
aveDayPeak
to the average of thedayPeak
values. - Set
aveDayBPRatio
to the average of thedayBPRatio
values. - Set
aveDayRange
to the average of thedayRange
values.
- Set
- For each day in
- Return
aveDayBase
,aveDayPeak
,aveDayBPRatio
, andaveDayRange
.
These statistics find a set of daily metrics, and average those metrics across all the days for which data are available. For example, the daily load 95th percentile is the average of the load observed at the 95th percentile of each day's readings.
Sample interpretive text for aveDayBase
:
"Minimum usage is often dominated by loads that run 24 hours a day.
In homes, these include refrigerators and vampire loads.
In commercial buildings, these include ventilation, hallway lighting, computers, and vampire loads."
Sample interpretive text for aveDayPeak
:
"The daily maximum usage could be dominated by a single large load, or could be the sum of several smaller ones.
Long periods of usage near the maximum increase overall energy use."
Sample interpretive text for aveDayBPRatio
:
"Values over 0.33 indicate that significant loads are shut off for parts of the day.
To save energy, look to extend and deepen shutoff periods, while also reducing peak energy use."
Sample explanatory text for aveDayRange
:
"This is a rough estimate of the total load turned on and off every day.
Higher values may indicate good control, but could also indicate excessive peak usage."
Program setbackUnoccupied
- Get inputs:
-
times
, vector of date-times (typically a time-specific format). -
loads
, vector of power data recorded attimes
(float).
-
- Calculate statistics:
- For each day in
times
, find the metrics of interest:- Set
dayBase
to the 5th percentile ofloads
for the day. - Set
dayPeak
to the 95th percentile ofloads
for the day. - Set
dayBPRatio
todayBase
/dayPeak
. - Set
dayRange
todayPeak
-dayBase
.
- Set
- Average across days:
- Set
aveDayBase
to the average of thedayBase
values. - Set
aveDayPeak
to the average of thedayPeak
values. - Set
aveDayBPRatio
to the average of thedayBPRatio
values. - Set
aveDayRange
to the average of thedayRange
values.
- Set
- For each day in
- Return
aveDayBase
,aveDayPeak
,aveDayBPRatio
, andaveDayRange
.
These statistics find a set of daily metrics, and average those metrics across all the days for which data are available. For example, the daily load 95th percentile is the average of the load observed at the 95th percentile of each day's readings.
Sample interpretive text for aveDayBase
:
"Minimum usage is often dominated by loads that run 24 hours a day.
In homes, these include refrigerators and vampire loads.
In commercial buildings, these include ventilation, hallway lighting, computers, and vampire loads."
Sample interpretive text for aveDayPeak
:
"The daily maximum usage could be dominated by a single large load, or could be the sum of several smaller ones.
Long periods of usage near the maximum increase overall energy use."
Sample interpretive text for aveDayBPRatio
:
"Values over 0.33 indicate that significant loads are shut off for parts of the day.
To save energy, look to extend and deepen shutoff periods, while also reducing peak energy use."
Sample explanatory text for aveDayRange
:
"This is a rough estimate of the total load turned on and off every day.
Higher values may indicate good control, but could also indicate excessive peak usage."
Program comfortOptimization
- Get inputs:
-
times
, vector of date-times (typically a time-specific format). -
loads
, vector of power data recorded attimes
(float).
-
- Calculate statistics:
- For each day in
times
, find the metrics of interest:- Set
dayBase
to the 5th percentile ofloads
for the day. - Set
dayPeak
to the 95th percentile ofloads
for the day. - Set
dayBPRatio
todayBase
/dayPeak
. - Set
dayRange
todayPeak
-dayBase
.
- Set
- Average across days:
- Set
aveDayBase
to the average of thedayBase
values. - Set
aveDayPeak
to the average of thedayPeak
values. - Set
aveDayBPRatio
to the average of thedayBPRatio
values. - Set
aveDayRange
to the average of thedayRange
values.
- Set
- For each day in
- Return
aveDayBase
,aveDayPeak
,aveDayBPRatio
, andaveDayRange
.
These statistics find a set of daily metrics, and average those metrics across all the days for which data are available. For example, the daily load 95th percentile is the average of the load observed at the 95th percentile of each day's readings.
Sample interpretive text for aveDayBase
:
"Minimum usage is often dominated by loads that run 24 hours a day.
In homes, these include refrigerators and vampire loads.
In commercial buildings, these include ventilation, hallway lighting, computers, and vampire loads."
Sample interpretive text for aveDayPeak
:
"The daily maximum usage could be dominated by a single large load, or could be the sum of several smaller ones.
Long periods of usage near the maximum increase overall energy use."
Sample interpretive text for aveDayBPRatio
:
"Values over 0.33 indicate that significant loads are shut off for parts of the day.
To save energy, look to extend and deepen shutoff periods, while also reducing peak energy use."
Sample explanatory text for aveDayRange
:
"This is a rough estimate of the total load turned on and off every day.
Higher values may indicate good control, but could also indicate excessive peak usage."
Program checkForShortCycling
- Get inputs:
-
times
, vector of date-times (typically a time-specific format). -
loads
, vector of power data recorded attimes
(float).
-
- Calculate statistics:
- For each day in
times
, find the metrics of interest:- Set
dayBase
to the 5th percentile ofloads
for the day. - Set
dayPeak
to the 95th percentile ofloads
for the day. - Set
dayBPRatio
todayBase
/dayPeak
. - Set
dayRange
todayPeak
-dayBase
.
- Set
- Average across days:
- Set
aveDayBase
to the average of thedayBase
values. - Set
aveDayPeak
to the average of thedayPeak
values. - Set
aveDayBPRatio
to the average of thedayBPRatio
values. - Set
aveDayRange
to the average of thedayRange
values.
- Set
- For each day in
- Return
aveDayBase
,aveDayPeak
,aveDayBPRatio
, andaveDayRange
.
These statistics find a set of daily metrics, and average those metrics across all the days for which data are available. For example, the daily load 95th percentile is the average of the load observed at the 95th percentile of each day's readings.
Sample interpretive text for aveDayBase
:
"Minimum usage is often dominated by loads that run 24 hours a day.
In homes, these include refrigerators and vampire loads.
In commercial buildings, these include ventilation, hallway lighting, computers, and vampire loads."
Sample interpretive text for aveDayPeak
:
"The daily maximum usage could be dominated by a single large load, or could be the sum of several smaller ones.
Long periods of usage near the maximum increase overall energy use."
Sample interpretive text for aveDayBPRatio
:
"Values over 0.33 indicate that significant loads are shut off for parts of the day.
To save energy, look to extend and deepen shutoff periods, while also reducing peak energy use."
Sample explanatory text for aveDayRange
:
"This is a rough estimate of the total load turned on and off every day.
Higher values may indicate good control, but could also indicate excessive peak usage."
Program narrowThresholds
- Get inputs:
-
times
, vector of date-times (typically a time-specific format). -
loads
, vector of power data recorded attimes
(float).
-
- Calculate statistics:
- For each day in
times
, find the metrics of interest:- Set
dayBase
to the 5th percentile ofloads
for the day. - Set
dayPeak
to the 95th percentile ofloads
for the day. - Set
dayBPRatio
todayBase
/dayPeak
. - Set
dayRange
todayPeak
-dayBase
.
- Set
- Average across days:
- Set
aveDayBase
to the average of thedayBase
values. - Set
aveDayPeak
to the average of thedayPeak
values. - Set
aveDayBPRatio
to the average of thedayBPRatio
values. - Set
aveDayRange
to the average of thedayRange
values.
- Set
- For each day in
- Return
aveDayBase
,aveDayPeak
,aveDayBPRatio
, andaveDayRange
.