Skip to content
David M. Lorenzetti edited this page Oct 3, 2014 · 2 revisions

Daily summary application

Introduction

This application calculates a number of metrics that summarize daily energy use:

  • Load variability
  • Minima and maxima
    • Load maximum intensity
    • Peak load benchmark
    • Load mininum intensity
  • Daily averages
    • Daily load 95th percentile
    • Daily load 5th percentile
    • Daily load ratio (also known as the base-to-peak load ratio)
    • Daily load range
## Pseudo-code: Load variability

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 findLoadVariability

  • Get inputs:
    • times, vector of date-times (typically a time-specific format).
    • loads, vector of power data recorded at times (float).
  • Assume:
    • times are hourly observations. That is, each day has 24 observations. If the original data were recorded at finer granularity, then the loads represent the average power for the hour in question.
  • Find the load variability for each unique timeOfDay in times:
    • Set todLoads to those entries from loads that were recorded at one unique timeOfDay from times.
    • Set todCt to the number of observations in todLoads.
    • Set todAve to the average of todLoads.
    • Set todSumSqDev to the sum of the squares of the differences between todLoads and todAve.
    • Set todStdDev to the corrected sample standard deviation of the todLoads, that is, to the square root of (todSumSqDev / (todCt - 1)).
    • Set todVar to the variability of todLoads, that is, to todStdDev / todAve.
  • Find the average of the daily load variabilities:
    • Set aveTodVar to the average of the todVar values.
  • Return aveTodVar.
## Pseudo-code: Minima and maxima

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 findExtrema

  • Get inputs:
    • loads, vector of power data recorded at times (float).
    • areaFt2, floor area of corresponding space [ft^2] (float).
  • Calculate statistics:
    • Set loadMax to the maximum value in loads.
    • Set loadMaxIntensity to loadMax / areaFt2.
    • Set loadMin to the minimum value in loads.
    • Set loadMinIntensity to loadMin / areaFt2.
  • Return loadMaxIntensity and loadMinIntensity.
## Pseudo-code: Daily averages

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 findDailyAverages

  • Get inputs:
    • times, vector of date-times (typically a time-specific format).
    • loads, vector of power data recorded at times (float).
  • Calculate statistics:
    • For each day in times, find the metrics of interest:
      • Set dayBase to the 5th percentile of loads for the day.
      • Set dayPeak to the 95th percentile of loads for the day.
      • Set dayBPRatio to dayBase / dayPeak.
      • Set dayRange to dayPeak - dayBase.
    • Average across days:
      • Set aveDayBase to the average of the dayBase values.
      • Set aveDayPeak to the average of the dayPeak values.
      • Set aveDayBPRatio to the average of the dayBPRatio values.
      • Set aveDayRange to the average of the dayRange values.
  • Return aveDayBase, aveDayPeak, aveDayBPRatio, and aveDayRange.