Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce total occupancy #102

Merged
merged 12 commits into from
Jan 26, 2024
10 changes: 5 additions & 5 deletions documentation/reference_doc/4_3_occupancy.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ \subsubsection{Overview}
Hours of operation are added to the model using operation start time and duration inputs. The start times and durations are assigned to each model through the sampling process using a set of distributions based on building type. They are then further broken down by weekday and weekend (Figure~\ref{fig:start_time} and Figure~\ref{fig:duration}). When applied to the model, the start time and duration are used to establish operating hour start and end times. These times are used to adjust the other schedules in the model (e.g., lighting, thermostat). This is achieved by stretching or shrinking the schedule on the temporal axis to align all schedules with the operating hours for the model. Note that because the weekday and weekend start times and durations are sampled independently, they are not aligned in a given building model.

\subsubsection{Hours of Operation Derivation}
We derived the hours of operation by applying the method introduced in \cite{bianchi2020modeling} to 1 year of AMI data from 6,070 buildings spread across eight utilities (the commercial schedules AMI data set). We first extracted the two-dimensional distribution of \textit{High Load Start Time} and \textit{High Load Duration} from this AMI data set, as an approximation of the schedule of hours of operations for each building type. Then, we compared this distribution with the inputs of ComStock at the start of
We derived the hours of operation by applying the method introduced in \cite{bianchi2020modeling} to 1 year of AMI data from 6,070 buildings spread across eight utilities (the commercial schedules AMI data set). We first extracted the two-dimensional distribution of \textit{High Load Start Time} and \textit{High Load Duration} from this AMI data set, as an approximation of the schedule of hours of operations for each building type. Then, we compared this distribution with the inputs of ComStock at the start of
the \href{https://www.nrel.gov/buildings/end-use-load-profiles.html}{End-Use Load Profiles} (EULP) calibration.

Figure~\ref{fig:utility_building_type} lists the number of buildings for each building type from each utility's AMI data set that was considered during the EULP project. The utility data sets and names are listed in Table 10 of the EULP Final Technical Report \citep{eulp_final_report}. Among the 15 building types considered in ComStock, 14 can be found in the commercial schedules AMI data set. The only exception is secondary schools, because all schools were grouped together in the AMI data.
Expand All @@ -23,9 +23,9 @@ \subsubsection{Occupancy Density}
The majority of the ComStock occupancy density values are from the DOE prototype models. These are derived primarily from ASHRAE 62.1-2004 \citep{ashrae_62.1_2004}, with some space type densities originating from the International Building Code 2003 \citep{icc_2003}. Prototype hotel guest rooms were assumed to have 1.5 occupants each, and occupancy rates for the two hotel models were assumed to be 65\% to align with the industry average occupancy rate and \cite{jiang_2008}. Rooms were randomly assigned occupants so that 65\% of the rooms were occupied. Most of the DOE prototype hospital and outpatient space type occupancy densities were replaced with values from the 2007 Green Guide for Healthcare (GGHC), which includes typical occupancy densities for healthcare space types \citep{gghc_2007}.

\subsubsection{Occupancy Schedules}
The maximum number of people in a zone (calculated from occupancy density and zone floor area) is multiplied by an hourly occupancy schedule with values ranging from zero to one to capture the variation in building occupancy throughout the day. Figures \ref{fig:occupancy_schedules_1} and \ref{fig:occupancy_schedules_2} show the national base occupancy schedules used in ComStock, broken down by building type. For the California occupancy schedules, please see figures \ref{fig:occupancy_schedules_deer_1} and \ref{fig:occupancy_schedules_deer_2} in the Appendix. For buildings in all states except California, the base schedules are the DOE prototype occupancy schedules. California uses schedules from DEER prototype models \citep{cpuc_deer}. The DOE prototype documentation \citep{deru_2011} notes that there are few data sources that provide operating schedules for use in building energy simulations. Thus, the schedules in the prototype models were derived from two primary data sources: the Advanced Energy Design Guide Technical Support Documents \citep{jiang_2008,doebber_2009,liu_2007,pless_2007} and ASHRAE 90.1-1989 Section 13 \citep{ashrae_1989}. These schedules were then modified to account for real-world building operation, based on the experience of the engineers who created the DOE prototype models. Classroom occupancy schedules for primary and secondary schools were adjusted by factors of 0.75 and 0.70, respectively, to meet the student numbers documented in \cite{pless_2007}. Table~\ref{tab:occupancy_schedule_source} lists the data sources for occupancy schedules in each of the prototype buildings (both DOE and DEER).
The maximum number of people in a zone (calculated from occupancy density and zone floor area) is multiplied by an hourly occupancy schedule with values ranging from zero to one to capture the variation in building occupancy throughout the day. Figures \ref{fig:occupancy_schedules_1} and \ref{fig:occupancy_schedules_2} show the national base occupancy schedules used in ComStock, broken down by building type. For the California occupancy schedules, please see figures \ref{fig:occupancy_schedules_deer_1} and \ref{fig:occupancy_schedules_deer_2} in the Appendix. For buildings in all states except California, the base schedules are the DOE prototype occupancy schedules. California uses schedules from DEER prototype models \citep{cpuc_deer}. The DOE prototype documentation \citep{deru_2011} notes that there are few data sources that provide operating schedules for use in building energy simulations. Thus, the schedules in the prototype models were derived from two primary data sources: the Advanced Energy Design Guide Technical Support Documents \citep{jiang_2008,doebber_2009,liu_2007,pless_2007} and ASHRAE 90.1-1989 Section 13 \citep{ashrae_1989}. These schedules were then modified to account for real-world building operation, based on the experience of the engineers who created the DOE prototype models. Classroom occupancy schedules for primary and secondary schools were adjusted by factors of 0.75 and 0.70, respectively, to meet the student numbers documented in \cite{pless_2007}. Table~\ref{tab:occupancy_schedule_source} lists the data sources for occupancy schedules in each of the prototype buildings (both DOE and DEER). Occupancy schedules in ComStock buildings are further adjusted so that the total daily occupancy in the building stock does not exceed the average daily occupancy of the United Stated building stock as derived from analysis of locations in the American Time Use Survey \citep{atus2018} Activity file. This adjustment applies a 23\% reduction factor to all occupant schedule values, resulting in a peak daily total occupancy in ComStock models of approximatly 115M people.

These base occupancy schedules are stretched, compressed, or shifted in time to reflect the model’s assigned hours of operation. For example, the base occupancy schedule for large offices is 9 a.m.--5 p.m. (8 hours of operation). If one large office model is assigned a start time of 8 a.m. and an operating duration of 10 hours, the base schedules in the model will be stretched so that the occupied period is an additional two hours long. All schedules in the model (occupancy, lighting, thermostat, plug load, etc.) are modified in the same manner to ensure coordination between occupancy, lighting, etc.
These base occupancy schedules are stretched, compressed, or shifted in time to reflect the model’s assigned hours of operation. For example, the base occupancy schedule for large offices is 9 a.m.--5 p.m. (8 hours of operation). If one large office model is assigned a start time of 8 a.m. and an operating duration of 10 hours, the base schedules in the model will be stretched so that the occupied period is an additional two hours long. All schedules in the model (occupancy, lighting, thermostat, plug load, etc.) are modified in the same manner to ensure coordination between occupancy, lighting, etc.


\subsubsection{Occupancy Activity Schedules}
Expand All @@ -50,11 +50,11 @@ \subsubsection{Occupancy Activity Schedules}
width=0.9\textwidth]{figures/occupancy_schedules_1.png}
\caption[National base occupancy schedules excluding California]{National base occupancy schedules for food service, lodging, healthcare, and education ComStock building types, excluding California. See Figure \ref{fig:occupancy_schedules_deer_1} for California.}
\label{fig:occupancy_schedules_1}
\end{figure}
\end{figure}

\begin{figure}
\centering \includegraphics[trim={0 0 0 0}, clip, % L B R T
width=0.9\textwidth]{figures/occupancy_schedules_2.png}
\caption[National base occupancy schedules excluding California]{National base occupancy schedules for retail, office, and warehouse ComStock building types, excluding California. See Figure \ref{fig:occupancy_schedules_deer_2} for California.}
\label{fig:occupancy_schedules_2}
\end{figure}
\end{figure}
9 changes: 9 additions & 0 deletions documentation/reference_doc/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -706,3 +706,12 @@ @misc{eia_fuel_oil_and_propane
url = {https://www.eia.gov/dnav/pet/pet_pri_dist_a_epd2_prt_dpgal_a.htm},
note = {Accessed: 2023-12-20}
}

@misc{atus2018,
title = {American Time Use Survey (ATUS), 2018},
author = {{U.S. Bureau of Labor Statistics (BLS)}},
shortauthor = {BLS},
year = 2018,
howpublished = {https://www.bls.gov/tus/},
note = {Accessed: 2023-11-27}
}
15 changes: 8 additions & 7 deletions national/housing_characteristics/options_lookup.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -4950,14 +4950,15 @@ baseline_window_type Triple - LowE - Clear - Thermally Broken Aluminum replace_b
baseline_window_type Triple - LowE - Tinted/Reflective - Thermally Broken Aluminum replace_baseline_windows window_pane_type=Triple - LowE - Tinted/Reflective - Thermally Broken Aluminum u_value_ip=0.299 shgc=0.224 vlt=0.32
baseline_hvac_sizing autosize hardsize_model apply_hardsize=false
baseline_hvac_sizing hardsize hardsize_model apply_hardsize=true
ground_thermal_conductivity 0.5 ChangeBuildingLocation soil_conductivity=0.5
ground_thermal_conductivity 0.8 ChangeBuildingLocation soil_conductivity=0.8
ground_thermal_conductivity 1.1 ChangeBuildingLocation soil_conductivity=1.1
ground_thermal_conductivity 1.4 ChangeBuildingLocation soil_conductivity=1.4
ground_thermal_conductivity 1.7 ChangeBuildingLocation soil_conductivity=1.7
occupancy_schedule_adjust adjust_schedule adjust_occupancy_schedule peak_occ_frac=0.231
ground_thermal_conductivity 0.5 ChangeBuildingLocation soil_conductivity=0.5
ground_thermal_conductivity 0.8 ChangeBuildingLocation soil_conductivity=0.8
ground_thermal_conductivity 1.1 ChangeBuildingLocation soil_conductivity=1.1
ground_thermal_conductivity 1.4 ChangeBuildingLocation soil_conductivity=1.4
ground_thermal_conductivity 1.7 ChangeBuildingLocation soil_conductivity=1.7
ground_thermal_conductivity 2.0 ChangeBuildingLocation soil_conductivity=2.0
ground_thermal_conductivity 2 ChangeBuildingLocation soil_conductivity=2.0
ground_thermal_conductivity 2.3 ChangeBuildingLocation soil_conductivity=2.3
ground_thermal_conductivity 2 ChangeBuildingLocation soil_conductivity=2.0
ground_thermal_conductivity 2.3 ChangeBuildingLocation soil_conductivity=2.3
ground_thermal_conductivity 2.6 ChangeBuildingLocation soil_conductivity=2.6
env_exterior_wall_insulation exterior_wall_insulation upgrade_env_exterior_wall_insulation
env_roof_insul_aedg roof_insul_aedg upgrade_env_roof_insul_aedg
Expand Down
3 changes: 2 additions & 1 deletion resources/measures/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Measures are added to the workflow in order they first appear in the [`options_l
| set_interior_equipment_template | Updates interior equipment properties if template is newer than the template of original construction |
| set_service_water_heating_template | Updates SWH equipment efficiencies and controls if template is newer than the template of original construction |
| set_hvac_template | Move to next measure unless template is newer than template of original construction |
| | Do a sizing run, which populates the SQL file with the EnergyPlus-calculated capacities and flows
| | Do a sizing run, which populates the SQL file with the EnergyPlus-calculated capacities and flows
| | Updates HVAC equipment efficiencies and controls based on updated equipment sizes. |
| add_blinds_to_selected_windows | For CA buildings only, adds blinds to a fraction of the windows in the model based on building type |
| prototype_space_type_assignment | Adds AdditionalProperties info to space types. No changes to EnergyPlus model inputs. |
Expand All @@ -55,6 +55,7 @@ Measures are added to the workflow in order they first appear in the [`options_l
| add_thermostat_setpoint_variability | Modifies the heating and cooling setpoints and setbacks/setups. |
| set_primary_kitchen_equipment | Replaces kitchen equiment with discrete equipment assumptions |
| replace_baseline_windows | Replaces windows in model (originally based on code) with windows of a specific technology type (single-pane, double-pane, etc.) |
| adjust_occupancy_schedule | Reduced the values of all occupancy schedules in the model by a specified percentage |
| hardsize_model | Do a sizing run, which populates the SQL file with the EnergyPlus-calculated capacities and flows |
| | Hard-size HVAC and SWH equipment in the model based on EnergyPlus-calculated capacities and flows. No model changes from here forward will be reflected in the sizing of HVAC equipment unless done intentionally as part of an upgrade. |
| fault_hvac_economizer_damper_stuck | Models a stuck economizer damper fault |
Expand Down
30 changes: 30 additions & 0 deletions resources/measures/adjust_occupancy_schedule/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ComStock™, Copyright (c) 2023 Alliance for Sustainable Energy, LLC. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.

3. Redistribution of this software, without modification, must refer to the software by the same designation.
Redistribution of a modified version of this software (i) may not refer to the modified version by the same
designation, or by any confusingly similar designation, and (ii) must refer to the underlying software originally
provided by Alliance as “ComStock™”. Except to comply with the foregoing, the term “ComStock™”, or any confusingly
similar designation may not be used to refer to any modified version of this software or any modified version of the
underlying software originally provided by Alliance without the prior written consent of Alliance.

4. The name of the copyright holder(s), any contributors, the United States Government, the United States Department of
Energy, or any of their employees may not be used to endorse or promote products derived from this software without
specific prior written permission from the respective party.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE UNITED STATES GOVERNMENT, OR THE UNITED
STATES DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 changes: 34 additions & 0 deletions resources/measures/adjust_occupancy_schedule/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@


###### (Automatically generated documentation)

# adjust_occupancy_schedule

## Description
Adjusts People occupancy schedules to change total occupant count

## Modeler Description
Adjusts People schedule so that peak occupancy is a user-input fraction of existing schedule values

## Measure Type
ModelMeasure

## Taxonomy


## Arguments


### Peak Occupancy Fraction

**Name:** peak_occ_frac,
**Type:** Double,
**Units:** ,
**Required:** true,
**Model Dependent:** false






45 changes: 45 additions & 0 deletions resources/measures/adjust_occupancy_schedule/README.md.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<%#= README.md.erb is used to auto-generate README.md. %>
<%#= To manually maintain README.md throw away README.md.erb and manually edit README.md %>
###### (Automatically generated documentation)

# <%= name %>

## Description
<%= description %>

## Modeler Description
<%= modelerDescription %>

## Measure Type
<%= measureType %>

## Taxonomy
<%= taxonomy %>

## Arguments

<% arguments.each do |argument| %>
### <%= argument[:display_name] %>
<%= argument[:description] %>
**Name:** <%= argument[:name] %>,
**Type:** <%= argument[:type] %>,
**Units:** <%= argument[:units] %>,
**Required:** <%= argument[:required] %>,
**Model Dependent:** <%= argument[:model_dependent] %>
<% if argument[:type] == "Choice" && !argument[:model_dependent]%>
**Choice Display Names** <%= argument[:choice_display_names] %>
<% end %>
<% end %>

<% if arguments.size == 0 %>
<%= "This measure does not have any user arguments" %>
<% end %>

<% if outputs.size > 0 %>
## Outputs
<% output_names = [] %>
<% outputs.each do |output| %>
<% output_names << output[:display_name] %>
<% end %>
<%= output_names.join(", ") %>
<% end %>
Empty file.
Loading