diff --git a/.github/workflows/build_documentation.yml b/.github/workflows/build_documentation.yml index 9467877f2cd..e4994b62d26 100644 --- a/.github/workflows/build_documentation.yml +++ b/.github/workflows/build_documentation.yml @@ -18,11 +18,13 @@ jobs: matrix: include: - os: ubuntu-24.04 - generator: "Unix Makefiles" + generator: "Ninja" pretty: 'Ubuntu 24.04' + build_html: true - os: windows-2022 generator: "Visual Studio 17 2022" pretty: "Windows" + build_html: false # - os: macos-15 # generator: "Unix Makefiles" # pretty: 'Mac arm64' @@ -40,7 +42,11 @@ jobs: - name: Set up LaTeX on Linux if: runner.os == 'Linux' - run: sudo apt update && sudo apt install -y texlive texlive-xetex texlive-science poppler-utils + run: sudo apt update && sudo apt install -y texlive texlive-xetex texlive-science poppler-utils ninja-build + + - name: Set up Pandoc on Linux + if: runner.os == 'Linux' && matrix.build_html + run: sudo apt install -y pandoc - name: Setup up LaTeX on Mac if: runner.os == 'macOS' @@ -50,6 +56,10 @@ jobs: echo "/Library/TeX/texbin" >> $GITHUB_PATH brew install poppler + - name: Set up Pandoc on Mac + if: runner.os == 'macOS' && matrix.build_html + run: brew install pandoc + - name: Set up LaTeX on Windows if: runner.os == 'Windows' run: | @@ -111,6 +121,10 @@ jobs: fi; echo "TOC is available for pass NO.2" + - name: Set up Pandoc on Windows + if: runner.os == 'Windows' && matrix.build_html + run: choco install pandoc + - name: Preinstall Packages on macOS if: runner.os == 'macOS' working-directory: ./doc/test @@ -129,14 +143,16 @@ jobs: - name: Configure CMake working-directory: ./doc/build - run: cmake -G "${{ matrix.generator }}" -DTEX_INTERACTION=batchmode -DDOCS_TESTING=ON .. + run: | + cmake -G "${{ matrix.generator }}" -DTEX_INTERACTION=batchmode -DDOCS_TESTING=ON \ + ${{ matrix.build_html && '-DBUILD_HTML_DOCS:BOOL=ON' || '' }} .. - name: Add problem matcher run: echo "::add-matcher::.github/workflows/doc-problem-match.json" - name: Build Docs working-directory: ./doc/build - run: cmake --build . -j 4 + run: cmake --build . --target docs -j 4 - name: Upload EngineeringReference uses: actions/upload-artifact@v7 @@ -208,6 +224,20 @@ jobs: name: "AllDocumentation-${{ matrix.os }}-${{ github.event.pull_request.head.sha }}" path: ${{ github.workspace }}/doc/build/pdf/ + - name: Build HTML Docs + if: matrix.build_html + working-directory: ./doc/build + run: | + ninja html_docs + tar -czf html.tar.gz -C html . + + - name: Upload HTML documentation + uses: actions/upload-artifact@v7 + if: matrix.build_html + with: + name: "HtmlDocumentation-${{ matrix.os }}-${{ github.event.pull_request.head.sha }}" + path: ${{ github.workspace }}/doc/build/html.tar.gz + - name: Upload log folder upon failure if: failure() && runner.os == 'Windows' uses: actions/upload-artifact@v7 diff --git a/.gitignore b/.gitignore index 84899b53c43..3ee2a5000c6 100644 --- a/.gitignore +++ b/.gitignore @@ -52,8 +52,7 @@ doc/title.tex # ignore the doxygen and sphinx built API docs doc/readthedocs/doxygen/_build -doc/readthedocs/sphinx/_build -doc/readthedocs/sphinx/_build_c +doc/readthedocs/sphinx/_build* /doc/readthedocs/sphinx/schema.rst # now that we have python, ignore some things diff --git a/.readthedocs.yml b/.readthedocs.yml index a6a7012f219..ff1d86433ae 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -10,6 +10,18 @@ build: python: "3.11" apt_packages: - doxygen + - cmake + - texlive-xetex + jobs: + pre_build: + - bash doc/readthedocs/install_pandoc.sh "$READTHEDOCS_OUTPUT/tools" + post_build: + # Build the pandoc-based chunked HTML guides (Engineering Reference, I/O Reference, etc.) + # and publish them alongside the Sphinx runtime/API docs. + - cmake -S doc -B doc/build -DBUILD_HTML_DOCS:BOOL=ON -DPANDOC="$READTHEDOCS_OUTPUT/tools/pandoc-3.11/bin/pandoc" + - cmake --build doc/build --target html_docs -j 4 + - mkdir -p "$READTHEDOCS_OUTPUT/html/guides" + - cp -r doc/build/html/. "$READTHEDOCS_OUTPUT/html/guides/" python: install: diff --git a/README.md b/README.md index 88c1659aaae..a50cfbed574 100644 --- a/README.md +++ b/README.md @@ -36,20 +36,30 @@ Iteration **(pre-)releases** may be created during a development cycle, however If an interim release is intended for active use by users, such as a bug-fix-only or performance-only re-release, it will be clearly specified on the release notes and a public announcement will accompany this type of release. Our releases are now built by GitHub Actions. -## Core Documentation - -Program documentation is installed alongside the program, with the pdfs also available [online](https://energyplus.net/documentation). -Big Ladder also produces html based documentation [online](http://bigladdersoftware.com/epx/docs/). - -## API Documentation +## Documentation [![Read the Docs](https://img.shields.io/readthedocs/energyplus?label=docs%20%28latest%29&color=5AC451)](https://energyplus.readthedocs.io/en/latest/) [![Read the Docs](https://img.shields.io/readthedocs/energyplus?label=docs%20%28stable%29&color=5AC451)](https://energyplus.readthedocs.io/en/stable/) -An API has been developed to allow access to internal EnergyPlus functionality and open up the possibility for new workflow opportunities around EnergyPlus. -A C API is developed to expose the C++ functions, then Python bindings are built on top of that to maximize the accessibility. -Documentation is being built and posted on ReadTheDocs and that documentation will continue to be expanded over time as the API grows. -The badges above here show the status, and link out to, the `latest` documentation (most recent commit to the `develop` branch) as well as the `stable` documentation (most recent release tag). +The [EnergyPlus documentation site](https://energyplus.readthedocs.io/en/latest/) brings together +introductory material, user and developer guides, input-schema documentation, and the C and Python +API references. Start with the [Quick Start Guide](https://energyplus.readthedocs.io/en/latest/quick_start/quick_start.html) +to install EnergyPlus and run a first simulation, or browse the complete documentation for detailed +modeling and development guidance. + +Key references include: + +- [Getting Started](https://energyplus.readthedocs.io/en/latest/guides/getting-started/index.html) — a comprehensive introduction to EnergyPlus concepts, workflows, input files, and output files. +- [Input Output Reference](https://energyplus.readthedocs.io/en/latest/guides/input-output-reference/index.html) — an encyclopedic reference to EnergyPlus input objects and output reports. +- [Engineering Reference](https://energyplus.readthedocs.io/en/latest/guides/engineering-reference/index.html) — the theoretical background, algorithms, and calculation methods used by EnergyPlus. +- [EnergyPlus epJSON input schema](https://energyplus.readthedocs.io/en/latest/schema.html) — searchable definitions for EnergyPlus input objects and fields. +- [C API reference](https://energyplus.readthedocs.io/en/latest/c.html) — the native API for embedding EnergyPlus and accessing runtime, data-transfer, functional, and callback interfaces. +- [Python API reference](https://energyplus.readthedocs.io/en/latest/api.html) — Python bindings for the EnergyPlus C API and supporting functionality. + +The [`latest`](https://energyplus.readthedocs.io/en/latest/) documentation follows the `develop` branch, while [`stable`](https://energyplus.readthedocs.io/en/stable/) follows the most recent release. +PDF documentation is also included with the packages on the [EnergyPlus releases page](https://github.com/NatLabRockies/EnergyPlus/releases). Big Ladder maintains an independent [archive of web-based EnergyPlus documentation](https://bigladdersoftware.com/epx/docs/) for released versions. + +For local build instructions and information about contributing documentation, see the [documentation contributor guide](doc/readthedocs/README.md). ## License & Contributing Development diff --git a/doc/.gitignore b/doc/.gitignore index 2f3591a1c23..3cad09cec62 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -53,3 +53,6 @@ *.nlo # Texpad + +*/chunked/* +*/single_dir/* diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 627447ce62a..e44d1c48d39 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -16,6 +16,15 @@ endif() find_package(LATEX COMPONENTS XELATEX) +option(BUILD_HTML_DOCS "Also build paginated HTML documentation (requires pandoc)" OFF) + +if(BUILD_HTML_DOCS) + find_program(PANDOC NAMES pandoc) + if(NOT PANDOC) + message(FATAL_ERROR "BUILD_HTML_DOCS is ON but pandoc was not found in PATH") + endif() +endif() + set(TEX_INTERACTION "batchmode" CACHE STRING "Choose the interaction mode for TeX.") @@ -42,6 +51,23 @@ if(EXISTS "${XELATEX_COMPILER}") set_target_properties(docs PROPERTIES FOLDER Documentation) + if(BUILD_HTML_DOCS) + file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/html) + file(COPY ${PROJECT_SOURCE_DIR}/html/index.html ${PROJECT_SOURCE_DIR}/html/style.css ${PROJECT_SOURCE_DIR}/html/media + DESTINATION ${PROJECT_BINARY_DIR}/html) + + # Aggregate target: depends on each individual zHTML_ target added via create_html_doc_target + if(hasParent AND BUILD_DOCS_ONLY_WITH_PACKAGE) + # Because we don't want to rebuild doc automatically, we do not add it to the 'ALL' rule + message(STATUS "The target `html_docs` was added, but not to the default build rule. It will be triggered by `make html_docs` or `make package`") + add_custom_target(html_docs) + else() + # Building standalone, so add to ALL + add_custom_target(html_docs ALL) + endif() + set_target_properties(html_docs PROPERTIES FOLDER Documentation) + endif() + include(cmake/doc-targets.cmake) # add each of the documents, they have their own CMakeLists.txt files diff --git a/doc/cmake/BuildHtmlDocumentation.cmake b/doc/cmake/BuildHtmlDocumentation.cmake new file mode 100644 index 00000000000..caf5691c951 --- /dev/null +++ b/doc/cmake/BuildHtmlDocumentation.cmake @@ -0,0 +1,79 @@ +# Caller needs to set: + # PANDOC, the path to the pandoc executable + # INNAME, the name of the input tex file (without extension) + # OUTNAME, the directory name to use under html/ in the build tree (eg "input-output-reference") + # HTML_ASSETS_DIR, the doc/html directory holding the shared templates/css/lua filters + # ORIGINAL_CMAKE_SOURCE_DIR, the root of the source repo (doc/) + # ORIGINAL_CMAKE_BINARY_DIR, the root of the build tree (doc/'s binary dir) + # Python_EXECUTABLE, used to build the search index from pandoc's sitemap.json + +set(COMMAND_ECHO_MODE NONE) + +if(WIN32) + set(TEXINPUTS_SEPARATOR ";") +else() + set(TEXINPUTS_SEPARATOR ":") +endif() +set(ENV{TEXINPUTS} "${ORIGINAL_CMAKE_BINARY_DIR}${TEXINPUTS_SEPARATOR}$ENV{TEXINPUTS}") + +set(HTML_OUT_DIR "${ORIGINAL_CMAKE_BINARY_DIR}/html/${OUTNAME}") + +file(REMOVE_RECURSE "${HTML_OUT_DIR}") + +# Pandoc versions used by local development and Read the Docs do not expose the +# same MathML option. Prefer the current spelling when available, while retaining +# compatibility with older Pandoc releases. +execute_process( + COMMAND "${PANDOC}" --help + OUTPUT_VARIABLE PANDOC_HELP + ERROR_QUIET + RESULT_VARIABLE PANDOC_HELP_RESULT +) + +if(PANDOC_HELP_RESULT EQUAL 0 AND PANDOC_HELP MATCHES "--math-method") + set(PANDOC_MATHML_OPTION "--math-method=mathml") +else() + set(PANDOC_MATHML_OPTION "--mathml") +endif() + +execute_process( + COMMAND "${PANDOC}" + --to=chunkedhtml + ${PANDOC_MATHML_OPTION} + --standalone + --table-of-contents + --split-level=2 + --metadata=doc-class:${OUTNAME} + --output=${HTML_OUT_DIR} + --template=${HTML_ASSETS_DIR}/template_chunked.html + --css=style.css + --include-in-header=${HTML_ASSETS_DIR}/header.html + --include-after-body=${HTML_ASSETS_DIR}/footer.html + --lua-filter=${HTML_ASSETS_DIR}/bootstrap-tables.lua + --lua-filter=${HTML_ASSETS_DIR}/numbered-cross-references.lua + --lua-filter=${HTML_ASSETS_DIR}/object-index.lua + ${INNAME}.tex + RESULT_VARIABLE ERRCODE + COMMAND_ECHO ${COMMAND_ECHO_MODE} +) + +if(NOT ERRCODE EQUAL 0) + message(FATAL_ERROR "pandoc failed to build the HTML documentation for ${INNAME} (error code ${ERRCODE})") +endif() + +# Build search index from sitemap (levels 2, 3 & 5: groups, objects, field names) +execute_process( + COMMAND "${Python_EXECUTABLE}" "${ORIGINAL_CMAKE_SOURCE_DIR}/cmake/build_search_index.py" + "${HTML_OUT_DIR}/sitemap.json" "${HTML_OUT_DIR}/search-index.js" + RESULT_VARIABLE ERRCODE + COMMAND_ECHO ${COMMAND_ECHO_MODE} +) + +if(NOT ERRCODE EQUAL 0) + message(FATAL_ERROR "Failed to build the search index for ${INNAME} (error code ${ERRCODE})") +endif() + +# Copy assets that pandoc doesn't copy for chunked output +file(COPY "${HTML_ASSETS_DIR}/style.css" DESTINATION "${HTML_OUT_DIR}") +file(MAKE_DIRECTORY "${HTML_OUT_DIR}/media") +file(COPY "${ORIGINAL_CMAKE_SOURCE_DIR}/../release/ep_nobg.svg" DESTINATION "${HTML_OUT_DIR}/media") diff --git a/doc/cmake/build_search_index.py b/doc/cmake/build_search_index.py new file mode 100644 index 00000000000..b1a1c02c26d --- /dev/null +++ b/doc/cmake/build_search_index.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 +# EnergyPlus, Copyright (c) 1996-present, The Board of Trustees of the +# University of Illinois, The Regents of the University of California, through +# Lawrence Berkeley National Laboratory (subject to receipt of any required +# approvals from the U.S. Dept. of Energy), Oak Ridge National Laboratory, +# managed by UT-Battelle, Alliance for Energy Innovation, LLC, and other +# contributors. All rights reserved. +# +# NOTICE: This Software was developed under funding from the U.S. Department of +# Energy and the U.S. Government consequently retains certain rights. As such, +# the U.S. Government has been granted for itself and others acting on its +# behalf a paid-up, nonexclusive, irrevocable, worldwide license in the +# Software to reproduce, distribute copies to the public, prepare derivative +# works, and perform publicly and display publicly, and to permit others to do +# so. +# +# 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) Neither the name of the University of California, Lawrence Berkeley +# National Laboratory, the University of Illinois, U.S. Dept. of Energy nor +# the names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# (4) Use of EnergyPlus(TM) Name. If Licensee (i) distributes the software in +# stand-alone form without changes from the version obtained under this +# License, or (ii) Licensee makes a reference solely to the software +# portion of its product, Licensee must refer to the software as +# "EnergyPlus version X" software, where "X" is the version number Licensee +# obtained under this License and may not use a different name for the +# software. Except as specifically required in this Section (4), Licensee +# shall not use in a company name, a product name, in advertising, +# publicity, or other promotional activities any name, trade name, +# trademark, logo, or other designation of "EnergyPlus", "E+", "e+" or +# confusingly similar designation, without the U.S. Department of Energy's +# prior written consent. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 OWNER OR CONTRIBUTORS 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. + +"""Build a search-index.js file from a pandoc chunkedhtml sitemap.json. + +Usage: build_search_index.py +""" +import argparse +import json +import pathlib + + +def collect(node, out): + section = node["section"] + if int(section["level"]) in (2, 3, 5): + out.append({"t": section["title"], "p": section["path"]}) + for sub in node.get("subsections", []): + collect(sub, out) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("sitemap", type=pathlib.Path, help="Path to pandoc's sitemap.json") + parser.add_argument("output", type=pathlib.Path, help="Path to write search-index.js to") + args = parser.parse_args() + + index = [] + collect(json.loads(args.sitemap.read_text()), index) + args.output.write_text("window.SEARCH_INDEX=" + json.dumps(index) + ";") + + +if __name__ == "__main__": + main() diff --git a/doc/cmake/doc-targets.cmake b/doc/cmake/doc-targets.cmake index fdece204c7d..bbbe7fc0983 100644 --- a/doc/cmake/doc-targets.cmake +++ b/doc/cmake/doc-targets.cmake @@ -29,3 +29,34 @@ macro( CREATE_DOC_TARGET SOURCE_FILENAME OUTPUT_FILENAME ) ) endif() endmacro() + +# Add custom command, target, and dependencies for the HTML rendering of a documentation file. +# OUTPUT_DIRNAME becomes the directory name under html/ in the build tree, eg html/${OUTPUT_DIRNAME}/index.html +macro( CREATE_HTML_DOC_TARGET SOURCE_FILENAME OUTPUT_DIRNAME ) + add_custom_command( OUTPUT ${PROJECT_BINARY_DIR}/html/${OUTPUT_DIRNAME}/index.html + COMMAND ${CMAKE_COMMAND} -DPANDOC=${PANDOC} -DINNAME=${SOURCE_FILENAME} -DOUTNAME=${OUTPUT_DIRNAME} + -DHTML_ASSETS_DIR=${PROJECT_SOURCE_DIR}/html + -DORIGINAL_CMAKE_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DORIGINAL_CMAKE_BINARY_DIR=${PROJECT_BINARY_DIR} + -DPython_EXECUTABLE=${Python_EXECUTABLE} + -P ${PROJECT_SOURCE_DIR}/cmake/BuildHtmlDocumentation.cmake + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/${SOURCE_FILENAME} + DEPENDS ${INCLUDED_TEX} ${INCLUDED_IMAGES} + ${PROJECT_SOURCE_DIR}/cmake/BuildHtmlDocumentation.cmake + ${PROJECT_SOURCE_DIR}/cmake/build_search_index.py + ${PROJECT_SOURCE_DIR}/html/bootstrap-tables.lua + ${PROJECT_SOURCE_DIR}/html/numbered-cross-references.lua + ${PROJECT_SOURCE_DIR}/html/object-index.lua + ${PROJECT_SOURCE_DIR}/html/template_chunked.html + ${PROJECT_SOURCE_DIR}/html/header.html + ${PROJECT_SOURCE_DIR}/html/footer.html + ${PROJECT_SOURCE_DIR}/html/style.css + ) + + add_custom_target( zHTML_${OUTPUT_DIRNAME} + DEPENDS ${PROJECT_BINARY_DIR}/html/${OUTPUT_DIRNAME}/index.html + ) + + add_dependencies(html_docs zHTML_${OUTPUT_DIRNAME}) + + set_target_properties(zHTML_${OUTPUT_DIRNAME} PROPERTIES FOLDER Documentation) +endmacro() diff --git a/doc/engineering-reference/CMakeLists.txt b/doc/engineering-reference/CMakeLists.txt index ed40e398cc2..6628d4a779d 100644 --- a/doc/engineering-reference/CMakeLists.txt +++ b/doc/engineering-reference/CMakeLists.txt @@ -540,3 +540,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/engineering-reference/media/ankle_draft.png) create_doc_target("engineering-reference" "EngineeringReference") + +if(BUILD_HTML_DOCS) + create_html_doc_target("engineering-reference" "engineering-reference") +endif() diff --git a/doc/engineering-reference/media/ChillerHeaterPlantLoopEIRSchematic.PNG b/doc/engineering-reference/media/ChillerHeaterPlantLoopEIRSchematic.png similarity index 100% rename from doc/engineering-reference/media/ChillerHeaterPlantLoopEIRSchematic.PNG rename to doc/engineering-reference/media/ChillerHeaterPlantLoopEIRSchematic.png diff --git a/doc/engineering-reference/src/advanced-surface-concepts/exterior-naturally-vented-cavity.tex b/doc/engineering-reference/src/advanced-surface-concepts/exterior-naturally-vented-cavity.tex index 5c3368c8d44..a8f556be207 100644 --- a/doc/engineering-reference/src/advanced-surface-concepts/exterior-naturally-vented-cavity.tex +++ b/doc/engineering-reference/src/advanced-surface-concepts/exterior-naturally-vented-cavity.tex @@ -125,20 +125,20 @@ \subsection{Cavity Heat Balance}\label{cavity-heat-balance} Modeling natural ventilation air exchanges in a general way is challenging.~ Simplistic engineering models are used to model \({\dot m_{vent}}\) ~resulting from natural buoyancy and wind forces.~ Reasoning that the configuration is similar to single-side natural ventilation, we elect to use correlations for natural ventilation presented as equations (29) and (30) in Chapter 26 of ASHRAE Handbook of Fundamentals (2001). \begin{equation} -{\dot m_{vent}} = \rho \,{{\rm{\rlap{--} \dot V}}_{{\rm{tot}}}} +{\dot m_{vent}} = \rho \,{{\overline{\dot V}}_{{\mathrm{tot}}}} \end{equation} where, \(\rho\) ~is the density of air {[}kg/m\(^{3}\){]}, and -\(\rlap{--} \dot{V}_{tot} = \rlap{--} \dot{V}_{wind} + \rlap{--} \dot{V}_{thermal}\) ~is the total volumetric flow rate of air ventilating in and out of the cavity. +\(\overline{\dot{V}}_{tot} = \overline{\dot{V}}_{wind} + \overline{\dot{V}}_{thermal}\) ~is the total volumetric flow rate of air ventilating in and out of the cavity. -\(\rlap{--} \dot{V}_{wind} = C_{v}A_{in}U_{\infty}\) +\(\overline{\dot{V}}_{wind} = C_{v}A_{in}U_{\infty}\) -\({{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{a,cav}} - {T_{amb}}} \right)/{T_{a,cav}}}\) ~ (if \(T_{a,cav} > T_{amb}\) ) +\({{\overline{\dot V}}_{{\mathrm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{a,cav}} - {T_{amb}}} \right)/{T_{a,cav}}}\) ~ (if \(T_{a,cav} > T_{amb}\) ) -\({{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{amb}} - {T_{a,cav}}} \right)/{T_{amb}}}\) ~ (if \(T_{amb} > T_{a,cav}\) ~and baffle is vertical) +\({{\overline{\dot V}}_{{\mathrm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{amb}} - {T_{a,cav}}} \right)/{T_{amb}}}\) ~ (if \(T_{amb} > T_{a,cav}\) ~and baffle is vertical) \({C_v}\) ~is the effectiveness of the openings that depends on opening geometry and the orientation with respect to the wind.~ ASHRAE HoF (2001) indicates values ranging from 0.25 to 0.6.~ This value is available for user input. @@ -154,7 +154,7 @@ \subsection{Cavity Heat Balance}\label{cavity-heat-balance} \(\Delta {H_{NPL}}\) ~is the height from midpoint of lower opening to the Neutral Pressure Level.~ This is value is available for user input. -If the cavity is horizontal and \(T_{amb} > T_{a,cav}\) ~then \({{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}}{\rm{ = 0}}\) ~because this is a stable situation. +If the cavity is horizontal and \(T_{amb} > T_{a,cav}\) ~then \({{\overline{\dot V}}_{{\mathrm{thermal}}}}{\mathrm{ = 0}}\) ~because this is a stable situation. \subsection{Underlying Heat Transfer Surface}\label{underlying-heat-transfer-surface} diff --git a/doc/engineering-reference/src/air-heat-balance-manager-processes/air-exchange.tex b/doc/engineering-reference/src/air-heat-balance-manager-processes/air-exchange.tex index 29838dc3c58..d443f9c2a47 100644 --- a/doc/engineering-reference/src/air-heat-balance-manager-processes/air-exchange.tex +++ b/doc/engineering-reference/src/air-heat-balance-manager-processes/air-exchange.tex @@ -34,7 +34,7 @@ \subsection{Temperature Difference Controlled Air Exchange}\label{temperature-di c\(_{P,Avg}\) is the average specific heat of air within the two zones (J/kg.K) -\({\dot m_{{\rm{MixingFlowToReceivingZone}}}}\) is the mass of moist air flowing into the receiving zone (kg\(_{air}\)/s) +\({\dot m_{{\mathrm{MixingFlowToReceivingZone}}}}\) is the mass of moist air flowing into the receiving zone (kg\(_{air}\)/s) Moisture\(_{MixingFlowToReceivingZone}\) is the moisture mass flow rate into the receiving zone (kg\(_{H2O}\)/s) @@ -42,7 +42,7 @@ \subsection{Temperature Difference Controlled Air Exchange}\label{temperature-di \(\rho_{Avg}\) is the average density of air within the two zones (kg/s) -\({\dot Q_{{\rm{MixingFlowToReceivingZone}}}}\) is the energy added to receiving zone air by mixing mass flow (W) +\({\dot Q_{{\mathrm{MixingFlowToReceivingZone}}}}\) is the energy added to receiving zone air by mixing mass flow (W) T\(_{ReceivingZone}\) is the temperature in the receiving zone (\(^{o}\)C) @@ -50,9 +50,9 @@ \subsection{Temperature Difference Controlled Air Exchange}\label{temperature-di \({\dot V_{Air}}\) is the volume rate of air flow defined by the user (m\(^{3}\)/s) -W\(_{ReceivingZone}\) is the humidity ratio in the receiving zone (kg\(_{H2O}\)/kg\(_{dry\\ air}\)) +W\(_{ReceivingZone}\) is the humidity ratio in the receiving zone (kg\(_{H2O}\)/kg\(_{dry air}\)) -W\(_{SourceZone}\) is the humidity ratio in the source zone (kg\(_{H2O}\)/kg\(_{dry\\ air}\)) +W\(_{SourceZone}\) is the humidity ratio in the source zone (kg\(_{H2O}\)/kg\(_{dry air}\)) For cross-mixing, the mass of moist air exchanged between the two zones is assumed to be equal.~ Again, the density and specific heat are based on the average conditions in the two zones. Note that the temperature and humidity ratio differences ensure that when the energy and~ moisture terms are used in the Moisture Predictor-Corrector, they correctly reflect a loss or gain in each zone. @@ -78,17 +78,17 @@ \subsection{Temperature Difference Controlled Air Exchange}\label{temperature-di where -\({\dot m_{{\rm{MixingFlowToSourceZone}}}}\) is the mass of moist air flowing into the source zone (kg\(_{air}\)/s) +\({\dot m_{{\mathrm{MixingFlowToSourceZone}}}}\) is the mass of moist air flowing into the source zone (kg\(_{air}\)/s) Moisture\(_{MixingFlowToSourceZone}\) is the moisture mass flow rate into the source zone (kg\(_{H2O}\)/s) -\({\dot Q_{{\rm{MixingFlowToSourceZone}}}}\) is the sensible energy added to source zone air by mixing mass flow (W) +\({\dot Q_{{\mathrm{MixingFlowToSourceZone}}}}\) is the sensible energy added to source zone air by mixing mass flow (W) -\({\dot Q_{{\rm{MixingFlowToReceivingZone}}}}\) is the sensible energy added to receiving zone air by mixing mass flow, W +\({\dot Q_{{\mathrm{MixingFlowToReceivingZone}}}}\) is the sensible energy added to receiving zone air by mixing mass flow, W -\(Moistur{e_{{\rm{MixingFlowToSourceZone}}}}\)is the latent load added to source zone air by mixing mass flow (kg\(_{H2O}\)/s) +\(Moistur{e_{{\mathrm{MixingFlowToSourceZone}}}}\)is the latent load added to source zone air by mixing mass flow (kg\(_{H2O}\)/s) -\(Moistur{e_{{\rm{MixingFlowToReceivingZone}}}}\)is the latent load added to receiving zone air by mixing mass flow (kg\(_{H2O}\)/s) +\(Moistur{e_{{\mathrm{MixingFlowToReceivingZone}}}}\)is the latent load added to receiving zone air by mixing mass flow (kg\(_{H2O}\)/s) \subsection{Density Difference Controlled Air Exchange}\label{density-difference-controlled-air-exchange} diff --git a/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex b/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex index aed463d89b9..344e550a14e 100644 --- a/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex +++ b/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex @@ -418,7 +418,7 @@ \subsubsection{Linkage models}\label{linkage-models} \end{tabular} \begin{equation} -C_{Shape} = \left\{ \begin{array}{l}0.754\;\;\;{\rm{for}}\;{\rm{a}}\;{\rm{circle}}\;{\rm{opening}}\\0.942(w/D)\;{\rm{for}}\;{\rm{a}}\;{\rm{rectangle}}\;{\rm{opening}}\end{array} \right\} +C_{Shape} = \left\{ \begin{array}{l}0.754\;\;\;{\mathrm{for}}\;{\mathrm{a}}\;{\mathrm{circle}}\;{\mathrm{opening}}\\0.942(w/D)\;{\mathrm{for}}\;{\mathrm{a}}\;{\mathrm{rectangle}}\;{\mathrm{opening}}\end{array} \right\} \end{equation} where: @@ -1007,7 +1007,7 @@ \subsection{Integration of the AirflowNetwork Model}\label{integration-of-the-ai B = \sum kg_{mass,sched-loads} + MW_{airflow} + \dot{m}_{sys,in} W_{sys} + \sum_{i = 1}^{surf_s} A_i h_{mi} \rho_{air_z} W_{surf_{s_i}} + QADS_{m,z} \end{equation} -where MW\(_{airflow}\) is the sum of mass flow rate multiplied by humidity ratio for infiltration and mixing and Q\(_{ADS,m,z\\}\)is the added total latent (moisture) load in the zone due to Air Distribution System losses from the AirflowNetwork model described above. This coefficient is used in the prediction of moisture as described in the section ``Moisture Predictor-Corrector'' found elsewhere in this document. +where MW\(_{airflow}\) is the sum of mass flow rate multiplied by humidity ratio for infiltration and mixing and Q\(_{ADS,m,z}\)is the added total latent (moisture) load in the zone due to Air Distribution System losses from the AirflowNetwork model described above. This coefficient is used in the prediction of moisture as described in the section ``Moisture Predictor-Corrector'' found elsewhere in this document. \subsection{Model Output}\label{model-output} @@ -1023,13 +1023,13 @@ \subsection{Single Sided Wind Pressure Coefficient Algorithm} geometry and wind direction). Consider first the 2-aperture case, where air flows in through one opening of area -$A_\textup{in}$ and exits through another of equal area. Let us denote the flow rate +$A_\textrm{in}$ and exits through another of equal area. Let us denote the flow rate of ambient air into the room by $Q$, and define a dimensionless flow rate $Q'$ by \begin{equation} -Q'=Q/(A_\textup{in} U_\textup{ref}), +Q'=Q/(A_\textrm{in} U_\textrm{ref}), \end{equation} -where $U_\textup{ref}$ is a reference velocity taken as the undisturbed wind speed -$U(z_\textup{ref})$ at a reference height $z_\textup{ref} = 10 \textup{m}$. There is a +where $U_\textrm{ref}$ is a reference velocity taken as the undisturbed wind speed +$U(z_\textrm{ref})$ at a reference height $z_\textrm{ref} = 10 \textrm{m}$. There is a pressure difference $\Delta p(t)$ between the two opening locations, with time-averaged mean value $\overline{\Delta p}$ and standard deviation $\sigma_{\Delta p}$. @@ -1060,14 +1060,14 @@ \subsection{Single Sided Wind Pressure Coefficient Algorithm} where $a_p$, $a_\sigma$ and $a_s$ are constants, the mean and fluctuating pressure difference terms have been written as pressure coefficients \begin{equation} -\Delta c_p=\frac{\overline{\Delta p}}{\frac{1}{2} \rho U_\textup{ref}^2}, +\Delta c_p=\frac{\overline{\Delta p}}{\frac{1}{2} \rho U_\textrm{ref}^2}, \end{equation} \begin{equation} -\sigma_{\Delta c_p}=\frac{\sigma_{\Delta p}}{\frac{1}{2} \rho U_\textup{ref}^2}, +\sigma_{\Delta c_p}=\frac{\sigma_{\Delta p}}{\frac{1}{2} \rho U_\textrm{ref}^2}, \end{equation} $\rho$ being the ambient air density and \begin{equation} -U_L'=\frac{U_L}{U_\textup{ref}}. +U_L'=\frac{U_L}{U_\textrm{ref}}. \end{equation} The pressure-difference mechanisms \ref{ss-mean-mech} and \ref{ss-unsteady-mech} are @@ -1125,7 +1125,7 @@ \subsubsection{Estimation of pressure difference coefficients} \begin{equation} \sigma_{\Delta c_p}=g(s',\theta) \end{equation} -where the dimensionless separation $s' = s/\textup{WB}$, +where the dimensionless separation $s' = s/\textrm{WB}$, \begin{equation} f(s',\theta)=s'\cdot\Pi(\theta), \end{equation} @@ -1319,7 +1319,7 @@ \subsubsection{Procedures of occupant ventilation control}\label{procedures-of-o The thermal comfort check requires the thermal comfort temperature and the comfort band. The comfort temperature of Tcomf is calculated as a function of the outdoor dry-bulb temperature Tout. The comfort temperature calculation may be based on two curves and a boundary temperature point. \begin{equation} -T_{comf} = \left\{ \begin{array}{ll} \rm{Low Temp Curve,} & \min T_{out} < x \leq \rm{Boundary Point} \\ \rm{High Temp Curve,} & \rm{Boundary Point} \leq x < \max T_{out} \end{array}\right. +T_{comf} = \left\{ \begin{array}{ll} \mathrm{Low Temp Curve,} & \min T_{out} < x \leq \mathrm{Boundary Point} \\ \mathrm{High Temp Curve,} & \mathrm{Boundary Point} \leq x < \max T_{out} \end{array}\right. \end{equation} Step 5: Thermal band calculation @@ -1327,7 +1327,7 @@ \subsubsection{Procedures of occupant ventilation control}\label{procedures-of-o The comfort band is calculated as a function of the design personal dissatisfaction PPD. \begin{equation} -\theta = -0.0028 \left(100-\rm{PPD}\right)^2 + 0.3419 \left(100-\rm{PPD}\right) - 6.6275 +\theta = -0.0028 \left(100-\mathrm{PPD}\right)^2 + 0.3419 \left(100-\mathrm{PPD}\right) - 6.6275 \end{equation} This equation is valid for PPD 0\% to 35\% @@ -1349,7 +1349,7 @@ \subsubsection{Procedures of occupant ventilation control}\label{procedures-of-o If the opening probability check is true and upper boundary check is satisfied, a window will be opened, regardless of open/closed status at the previous time step. If the opening probability check is false and upper boundary check is satisfied, a window will remain at the status from the previous time step. \begin{equation} -T_g > \left(T_{comf} + \theta\right)~~\&~~\rm{OpeningProbability} +T_g > \left(T_{comf} + \theta\right)~~\&~~\mathrm{OpeningProbability} \end{equation} Step 7: Lower boundary check of thermal comfort @@ -1367,7 +1367,7 @@ \subsubsection{Procedures of occupant ventilation control}\label{procedures-of-o If the closing probability check is true and lower boundary check is satisfied, a window will be closed, regardless of open/closed status at the previous time step. If the closing probability check is false and lower boundary check is satisfied, a window will remain at the status from the previous time step. \begin{equation} -T_g < \left(T_{comf} - \theta\right)~~\&~~\rm{ClosingProbability} +T_g < \left(T_{comf} - \theta\right)~~\&~~\mathrm{ClosingProbability} \end{equation} The output variables from the model are open status, opening probability status, and closing probability status. The detailed description of opening status is given in the Airflow Network Outputs section in the Input Output Reference. diff --git a/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex b/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex index 817dc6b7e22..53a4ac8cdfb 100644 --- a/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex +++ b/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex @@ -205,7 +205,7 @@ \subsubsection{Infiltration inverse modeling}\label{Infiltration inverse modelin It is not easy to estimate as the infiltration is caused by various sources of unknown leakages. The development of the hybrid model fills the gap when estimating the infiltration that reflects all complexities of design flow rate, coefficients, and climate conditions by only requiring easily attainable zone air temperature, humidity ratio, or CO$_2$ concentration data. The development of the infiltration hybrid modeling algorithm is consistent with the EnergyPlus source code. The approach derives the infiltration mass flow rate, $\dot{m}_{inf}$ by reformulating the zone air heat. moisture, or CO$_2$ balance equations. The 3rd order backward difference method is used for the inverse model development for the infiltration hybrid modeling. The inverse model using the analytical solution cannot be realized in a mathematical form. The time-series zone air temperature, $T_z$ using the 3rd order method is shown in the following equation. \begin{equation} -T_z^t = \\ \frac {\left(\begin{aligned}\Sigma Q_i &+ \Sigma(h_i A_i T_{si}) + \Sigma (\dot{m}_i C_p T_{zi}) + \dot{m}_{inf} C_p T_o\\ &+ \dot{m}_{sys} C_p T_{sup}^t - \frac{C_z}{\delta t}\left(-3T_z^{t-\delta t} + \frac {3} {2} T_z^{t-2\delta t} - \frac {1} {3} T_z^{t-3\delta t}\right)\end{aligned}\right)} { \frac {11}{6} \frac {C_z} {\delta t} + \Sigma (h_i A_i) + \Sigma (\dot{m}_i C_p) + \dot{m}_{inf} C_p + \dot{m}_{sys} C_p} +T_z^t = \frac {\left(\begin{aligned}\Sigma Q_i &+ \Sigma(h_i A_i T_{si}) + \Sigma (\dot{m}_i C_p T_{zi}) + \dot{m}_{inf} C_p T_o\\ &+ \dot{m}_{sys} C_p T_{sup}^t - \frac{C_z}{\delta t}\left(-3T_z^{t-\delta t} + \frac {3} {2} T_z^{t-2\delta t} - \frac {1} {3} T_z^{t-3\delta t}\right)\end{aligned}\right)} { \frac {11}{6} \frac {C_z} {\delta t} + \Sigma (h_i A_i) + \Sigma (\dot{m}_i C_p) + \dot{m}_{inf} C_p + \dot{m}_{sys} C_p} \end{equation} The equation below shows the inverse algorithm for infiltration hybrid modeling method to derive the zone infiltration mass flow rate using the measured zone air temperature. diff --git a/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex b/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex index fdb66d501eb..4b6d913303f 100644 --- a/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex +++ b/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex @@ -105,19 +105,19 @@ \subsection{User Defined RoomAir Temperatures}\label{user-defined-roomair-temper The patterns defined by the object `RoomAir:TemperaturePattern:SurfaceMapping' are fairly straightforward.~ The user directly inputs values for \(\Delta {T_{ai}}\) for each surface.~ The pattern ``maps'' specific surfaces, identified by name, to \(\Delta {T_{ai}}\) values.~ This provides completely general control (but in practice may be cumbersome to use).~ The other patterns focus on temperature changes in the vertical direction.~ Surfaces do not need to be identified, but all the surfaces with the same height will be assigned the same \(\Delta {T_{ai}}\) values. -The patterns defined by the object `RoomAir:TemperaturePattern:NondimensonalHeight' apply a temperature profile based on a non-dimensionalized height, \({\rm Z}\).~ The height of each surface is defined to be the z-coordinate of the surface's centroid relative to the average z-coordinate of the floor surfaces.~ The zone ceiling height is used as the length scale to non-dimensionalize each surface's height so that, +The patterns defined by the object `RoomAir:TemperaturePattern:NondimensonalHeight' apply a temperature profile based on a non-dimensionalized height, \(\mathrm{Z}\).~ The height of each surface is defined to be the z-coordinate of the surface's centroid relative to the average z-coordinate of the floor surfaces.~ The zone ceiling height is used as the length scale to non-dimensionalize each surface's height so that, \begin{equation} -{{\rm Z}_i} = ({z_{i,centroid}} - {z_{floorAvg}})/Ceiling\;Height +{\mathrm{Z}_i} = ({z_{i,centroid}} - {z_{floorAvg}})/Ceiling\;Height \end{equation} (where ``\emph{i's''} represents each surface in the zone that is affected by the model) The values for \({Z_i}\) are constrained to be between 0.01 and 0.99 because the value is meant to describe the air layer near the surface (say approximate 0.1 m from the surface) rather than the surface itself. -The user-defined profile is treated as a look up table or piecewise linear model.~ The values for \(\Delta {T_{ai}}\) are determined by searching the \({\rm Z}\) values in the user-defined profile and performing linear interpolation on the associated \(\Delta {T_a}\) values. +The user-defined profile is treated as a look up table or piecewise linear model.~ The values for \(\Delta {T_{ai}}\) are determined by searching the \(\mathrm{Z}\) values in the user-defined profile and performing linear interpolation on the associated \(\Delta {T_a}\) values. -The patterns defined by the object `RoomAir:TemperaturePattern:ConstantGradient' apply a constant temperature gradient in the vertical direction.~ The model assumes that \({T_{MAT}}\) occurs at the mid-plane so that \({{\rm Z}_{{T_{MAT}}}} = 0.5\) (by definition).~ The surface \({Z_i}\) values are compared to \({Z_{{T_{MAT}}}}\) and then scaled with zone ceiling height to obtain values for the change in height (in units of meters), \(\Delta z\).~ The user defined gradient, \(grad\), (units of \(^{\circ}\)C/m) is then used to determine \(\Delta {T_{ai}}\) values using: +The patterns defined by the object `RoomAir:TemperaturePattern:ConstantGradient' apply a constant temperature gradient in the vertical direction.~ The model assumes that \({T_{MAT}}\) occurs at the mid-plane so that \({\mathrm{Z}_{{T_{MAT}}}} = 0.5\) (by definition).~ The surface \({Z_i}\) values are compared to \({Z_{{T_{MAT}}}}\) and then scaled with zone ceiling height to obtain values for the change in height (in units of meters), \(\Delta z\).~ The user defined gradient, \(grad\), (units of \(^{\circ}\)C/m) is then used to determine \(\Delta {T_{ai}}\) values using: \begin{equation} \Delta {T_{ai}} = \Delta z * grad @@ -234,7 +234,7 @@ \subsubsection{Single Plume Two Layer Model}\label{single-plume-two-layer-model} For an ideal gas: \begin{equation} -\Delta \rho /\rho = \Delta {\rm T}/{\rm T} +\Delta \rho /\rho = \Delta \mathrm{T}/\mathrm{T} \end{equation} resulting in the following relation between heat input rate and buoyancy flux: @@ -365,7 +365,7 @@ \subsubsection{Implementation}\label{implementation} We now make an initial estimate of the height fraction \emph{Fr\(_{hb}\)} (height of the boundary layer divided by the total zone height). \begin{equation} -F{r_{hb}} = \left( {{{24.55} \mathord{\left/ {\vphantom {{24.55} {{H_{ceil}}}}} \right. } {{H_{ceil}}}}} \right){\left( {\frac{{0.000833 \cdot MC{P_{tot}}}}{{{N_{plumes}} \cdot \dot Q_{perplume}^{1/3}}}} \right)^{3/5}} +F{r_{hb}} = \left( {{\frac{{24.55}}{{H_{ceil}}}}} \right){\left( {\frac{{0.000833 \cdot MC{P_{tot}}}}{{{N_{plumes}} \cdot \dot Q_{perplume}^{1/3}}}} \right)^{3/5}} \label{eq:RoomAirHeightBoundaryLayer} \end{equation} @@ -473,7 +473,7 @@ \subsubsection{Final calculations}\label{final-calculations} The displacement ventilation calculation finishes by calculating some report variables. Using Equation~\ref{eq:RoomAirHeightBoundaryLayer}, setting the boundary height to 1.5 meters and solving for the flow, we calculate a minimum flow fraction: \begin{equation} -{\dot V_{\min }} = {(1.5/{\rm{24}}{\rm{.55)}}^{{\rm{5/3}}}} \cdot {N_{plumes}} \cdot \dot Q_{perplume}^{1/3} +{\dot V_{\min }} = {(1.5/{\mathrm{24}}{\mathrm{.55)}}^{{\mathrm{5/3}}}} \cdot {N_{plumes}} \cdot \dot Q_{perplume}^{1/3} \end{equation} \begin{equation} @@ -600,7 +600,7 @@ \subsubsection{Final calculations}\label{final-calculations} For reporting purposes, if the zone is deemed to be mixed, the displacement ventilation report variables are set to flag values. -If \({T_{mx}} < {T_{oc}}\) ~or \(MC{P_{tot}} \le 0\) ~or \({H_{fr}} \cdot {H_{ceil}} < {H_{fl,top}} + \Delta {z_{occ,\min }}\) ~or \({T_{mx}} - {T_{oc}} < \Delta {T_{Crit{\mathop{\rm Re}\nolimits} p}}\) +If \({T_{mx}} < {T_{oc}}\) ~or \(MC{P_{tot}} \le 0\) ~or \({H_{fr}} \cdot {H_{ceil}} < {H_{fl,top}} + \Delta {z_{occ,\min }}\) ~or \({T_{mx}} - {T_{oc}} < \Delta {T_{Crit\operatorname{Re} p}}\) \begin{equation} Grad{T_{avg}} = - 9.999 diff --git a/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex b/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex index 027000eb989..06bc18efd27 100644 --- a/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex +++ b/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex @@ -129,13 +129,13 @@ \subsubsection{Plant/Condenser Supply Side}\label{plantcondenser-supply-side} where: -\( \dot m_{br} \) = \rm{ final~resolved~branch~flow~rate} +\( \dot m_{br} \) = \textrm{ final~resolved~branch~flow~rate} -\( \dot m_{br\_request} \) = \rm{ requested~branch~flow~rate } +\( \dot m_{br\_request} \) = \textrm{ requested~branch~flow~rate } -\( \dot m_{tot\_request} \) = \rm{ total~loop~mass~flow~rate~request} +\( \dot m_{tot\_request} \) = \textrm{ total~loop~mass~flow~rate~request} -\( \dot m_{tot\_available} \) = \rm{ total~loop~mass~flow~rate~available} +\( \dot m_{tot\_available} \) = \textrm{ total~loop~mass~flow~rate~available} It is also necessary to monitor the flow constraints at the branches and components since once the flow rates are changed, the components must be resimulated by the controlling loop (air loop, zone equipment, or plant supply side). The controllers for these components must know if the constraints have been modified so that the simulation does not toggle between a component requesting a flow that the pump cannot meet and the pump then resetting the flow to what it can provide. Note that once a flow rate for any component has changed that this signals the need to resimulate any sub-loop to which it might have an indirect connection. Currently, this means that if a flow rate on the plant demand side changes, the simulation must recalculate the conditions on both the air loop and zone equipment sub-loops since coils and other equipment could be on either side of the main air loop. Similarly, if the condenser demand side simulation results in a change in flow rate through a chiller condenser, then the plant supply side must be triggered to perform its calculations again. Care has been taken to avoid cases where the various half-loops might simply keep triggering the resimulation of their indirect connections in an infinite loop. @@ -831,7 +831,7 @@ \subsubsection{Pressure Drop Calculations:}\label{pressure-drop-calculations} The user enters roughness, e, or a fixed value of friction factor to account for frictional losses on the branch, as well as an equivalent length L. If the user enters roughness then the friction factor is calculated from a Moody chart approximation (Haaland, 1983): \begin{equation} -f = {\left\{ { - 1.8\log \left[ {{{\left( {\frac{{e/D}}{{3.7}}} \right)}^{1.11}} + \frac{{6.9}}{{{\mathop{\rm Re}\nolimits} }}} \right]} \right\}^{ - 2}} +f = {\left\{ { - 1.8\log \left[ {{{\left( {\frac{{e/D}}{{3.7}}} \right)}^{1.11}} + \frac{{6.9}}{{\operatorname{Re} }}} \right]} \right\}^{ - 2}} \end{equation} If the user enters minor loss information, then the friction factor information can be left out. diff --git a/doc/engineering-reference/src/building-system-simulation-system-manager/primary-air-system-simulation.tex b/doc/engineering-reference/src/building-system-simulation-system-manager/primary-air-system-simulation.tex index 51c17a7d14b..141256f2b2a 100644 --- a/doc/engineering-reference/src/building-system-simulation-system-manager/primary-air-system-simulation.tex +++ b/doc/engineering-reference/src/building-system-simulation-system-manager/primary-air-system-simulation.tex @@ -126,7 +126,7 @@ \subsubsection{Begin Environment Initializations}\label{begin-environment-initia For each branch, loop over all the nodes on the branch and set the node data to the following values: \begin{equation} -{T_{node}} = {20^{\rm{o}}}C +{T_{node}} = {20^{\mathrm{o}}}C \end{equation} \begin{equation} @@ -134,7 +134,7 @@ \subsubsection{Begin Environment Initializations}\label{begin-environment-initia \end{equation} \begin{equation} -{h_{node}} = {\mathop{\rm PsyHFnTdbW}\nolimits} {\rm{(}}20.0,{W_{oa}}{\rm{)}} +{h_{node}} = \operatorname{PsyHFnTdbW} {\mathrm{(}}20.0,{W_{oa}}{\mathrm{)}} \end{equation} \begin{equation} @@ -169,13 +169,13 @@ \subsubsection{Begin Environment Initializations}\label{begin-environment-initia Q{u_{node}} = 0.0 \end{equation} -where \({W_{oa}}\) is the humidity ratio of the outside air; \({\rm{PsyHFnTdbW}}\) is the EnergyPlus psychrometric function for enthalpy \emph{h}, given temperature and humidity ratio; and \emph{Qu} is quality. +where \({W_{oa}}\) is the humidity ratio of the outside air; \({\mathrm{PsyHFnTdbW}}\) is the EnergyPlus psychrometric function for enthalpy \emph{h}, given temperature and humidity ratio; and \emph{Qu} is quality. \subsubsection{System Time Step Initializations}\label{system-time-step-initializations} For each branch in each air loop, loop over all the nodes on the branch and set \({\dot m_{setpt,node}} = 0.0\) ; if it is the start of an HVAC solution sequence set \({\dot m_{\max avail,node}} = {\dot m_{\max ,node}}\) . Then set the mass flow rate setpoints for the air loop nodes. -1)~~~~On each air loop, loop over the outlet branches and find the loop outlet nodes. If it is the start of an HVAC solution sequence, set \({\dot m_{setpt,outletnode}} = {\dot m_{outletbr,\max }}\) . This will insure that during the first pass through the full loop that the mass flow rate will be at the maximum. Otherwise, set \({\dot m_{setpt,outletnode}} = {\dot m_{zone{\rm{ }}eq{\rm{ }}inletnode}}\) . This sets the air loop flow rate to the total zone requirement. +1)~~~~On each air loop, loop over the outlet branches and find the loop outlet nodes. If it is the start of an HVAC solution sequence, set \({\dot m_{setpt,outletnode}} = {\dot m_{outletbr,\max }}\) . This will insure that during the first pass through the full loop that the mass flow rate will be at the maximum. Otherwise, set \({\dot m_{setpt,outletnode}} = {\dot m_{zone{\mathrm{ }}eq{\mathrm{ }}inletnode}}\) . This sets the air loop flow rate to the total zone requirement. 2)~~~~Pass the mass flow rate setpoint upstream to the start of the outlet branches; through the splitter, if one exists; and upstream to the beginning node of the splitter inlet branch. diff --git a/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex b/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex index ce1a295482c..91793b71f50 100644 --- a/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex +++ b/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex @@ -76,7 +76,7 @@ \subsubsection{Begin Environment Initializations}\label{begin-environment-initia For each controlled zone initialize the zone inlet, exhaust and zone nodes to standard conditions. Namely: \begin{equation} -{T_{node}} = {20^{\rm{o}}}C +{T_{node}} = {20^{\mathrm{o}}}C \end{equation} \begin{equation} @@ -84,7 +84,7 @@ \subsubsection{Begin Environment Initializations}\label{begin-environment-initia \end{equation} \begin{equation} -{h_{node}} = {\mathop{\rm PsyHFnTdbW}\nolimits} {\rm{(}}20.0,{W_{oa}}{\rm{)}} +{h_{node}} = \operatorname{PsyHFnTdbW} {\mathrm{(}}20.0,{W_{oa}}{\mathrm{)}} \end{equation} \begin{equation} @@ -99,7 +99,7 @@ \subsubsection{Begin Environment Initializations}\label{begin-environment-initia {p_{node}} = {p_{oa}} \end{equation} -where \emph{W\(_{oa}\)} is the humidity of the outside air; \({\rm{PsyHFnTdbW}}\) is the EnergyPlus psychrometric function for enthalpy \emph{h}, given temperature and humidity ratio; \emph{p\(_{oa}\)} is the pressure of the outside air; and \emph{Qu} is quality. +where \emph{W\(_{oa}\)} is the humidity of the outside air; \({\mathrm{PsyHFnTdbW}}\) is the EnergyPlus psychrometric function for enthalpy \emph{h}, given temperature and humidity ratio; \emph{p\(_{oa}\)} is the pressure of the outside air; and \emph{Qu} is quality. \subsubsection{System Time Step Initializations}\label{system-time-step-initializations-000} diff --git a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/climate-calculations.tex b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/climate-calculations.tex index db64e88c9aa..97231ecf561 100644 --- a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/climate-calculations.tex +++ b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/climate-calculations.tex @@ -210,7 +210,7 @@ \subsubsection{ASHRAE Revised Clear Sky Model (``Tau Model'')}\label{ashrae-revi The model requires relative air mass, m, calculated as follows: \begin{equation} -m = {1 \mathord{\left/ {\vphantom {1 {\left[ {\sin \beta + 0.50572 \cdot {{\left( {6.07995 + \beta } \right)}^{ - 1.6364}}} \right]}}} \right. } {\left[ {\sin \beta + 0.50572 \cdot {{\left( {6.07995 + \beta } \right)}^{ - 1.6364}}} \right]}} +m = {\frac{1}{\left[ {\sin \beta + 0.50572 \cdot {{\left( {6.07995 + \beta } \right)}^{ - 1.6364}}} \right]}} \end{equation} where \(\beta\) = solar altitude, degrees. diff --git a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex index 03252562a49..e5d22449954 100644 --- a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex +++ b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex @@ -653,7 +653,7 @@ \subsubsection{Interior Solar Radiation Absorbed by Opaque Surfaces}\label{inter where \begin{equation} -VMULT(ZoneNum) = \frac{1}{{\sum\limits_{i = 1}^{{N_{surf}}} {AbsIntSur{f_i}*{A_i}} }}{\rm{ [}}{{\rm{m}}^{{\rm{ - 2}}}}] +VMULT(ZoneNum) = \frac{1}{{\sum\limits_{i = 1}^{{N_{surf}}} {AbsIntSur{f_i}*{A_i}} }}{\mathrm{ [}}{{\mathrm{m}}^{{\mathrm{ - 2}}}}] \end{equation} and \emph{Q\(_{sw}\)} is given by: @@ -693,7 +693,7 @@ \subsubsection{Interior Solar Radiation Absorbed by Opaque Surfaces}\label{inter \emph{EnclSolDB(ZoneNum)} is calculated as: \begin{equation} -EnclSolDB(ZoneNum) = BTOTZone - BABSZone{\rm{ [}}{{\rm{m}}^{\rm{2}}}] +EnclSolDB(ZoneNum) = BTOTZone - BABSZone{\mathrm{ [}}{{\mathrm{m}}^{\mathrm{2}}}] \end{equation} where @@ -725,11 +725,11 @@ \subsubsection{Interior Solar Radiation Absorbed by Opaque Surfaces}\label{inter \emph{InOutProjSLFracMult} = shadowing factor due to inside and outside projections of window frame and/or divider ( = 1.0 if there is no frame or divider). -\emph{BABSZone} is given by the following sum (see Figure~\ref{fig:vertical-section-through-a-two-zone-building}): +\emph{BABSZone} is given by the following sum\footnote{If Solar Distribution = FullInteriorAndExterior in the Building object, the program calculates where beam solar from exterior windows falls inside the zone. Otherwise, all beam solar is assumed to fall on the floor.} (see Figure~\ref{fig:vertical-section-through-a-two-zone-building}): \begin{equation} \begin{array}{rl} -BABSZone = & {Beam~absorbed~by~opaque~inside~surfaces}\footnote{If Solar Distribution = FullInteriorAndExterior in the Building object, the program calculates where beam solar from exterior windows falls inside the zone. Otherwise, all beam solar is assumed to fall on the floor.} \\ +BABSZone = & {Beam~absorbed~by~opaque~inside~surfaces} \\ & + {Beam~transmitted~through~the~zone's~interior~windows} \\ & + {Beam~transmitted~back~out~of~the~zone's~exterior~windows} \\ & + {Beam~absorbed~by~the~zone's~exterior~and~interior~windows} \\ @@ -787,7 +787,7 @@ \subsubsection{Interior Solar Radiation Absorbed by Windows}\label{interior-sola The interior short-wave radiation absorbed by layer \emph{l} (glass, shade or blind) of a window is equal to: \begin{equation} -\begin{array}{l}QS(ZoneNum)*\alpha_{l,back}^{dif}(SurfNum) + \\BeamSolarRad*\frac{{\alpha_{l,back}^{beam}(SurfNum)}}{{A(SurfNum)}}\sum\limits_{i = 1}^{{N_{extwin}}} {TB{m_i}*Aoverla{p_i}(SurfNum)} *CosIn{c_i}{\rm{ [W/}}{{\rm{m}}^{\rm{2}}}]\end{array} +\begin{array}{l}QS(ZoneNum)*\alpha_{l,back}^{dif}(SurfNum) + \\BeamSolarRad*\frac{{\alpha_{l,back}^{beam}(SurfNum)}}{{A(SurfNum)}}\sum\limits_{i = 1}^{{N_{extwin}}} {TB{m_i}*Aoverla{p_i}(SurfNum)} *CosIn{c_i}{\mathrm{ [W/}}{{\mathrm{m}}^{\mathrm{2}}}]\end{array} \end{equation} where @@ -807,7 +807,7 @@ \subsubsection{Interior Solar Radiation Transmitted by Interior Windows}\label{i The interior diffuse short-wave radiation transmitted by an interior window to the adjacent zone is given by \begin{equation} -QS(ZoneNum)*{\tau ^{dif}}(SurfNum)*A(SurfNum){\rm{ [W]}} +QS(ZoneNum)*{\tau ^{dif}}(SurfNum)*A(SurfNum){\mathrm{ [W]}} \end{equation} where @@ -819,13 +819,13 @@ \subsubsection{Interior Solar Radiation Transmitted by Interior Windows}\label{i The interior beam solar radiation transmitted by an interior window to the adjacent zone is \begin{equation} -BeamSolarRad*{\tau ^{beam}}(SurfNum)\sum\limits_{i = 1}^{{N_{extwin}}} {TB{m_i}*Aoverla{p_i}(SurfNum)*CosIn{c_i}{\rm{ [W}}]} +BeamSolarRad*{\tau ^{beam}}(SurfNum)\sum\limits_{i = 1}^{{N_{extwin}}} {TB{m_i}*Aoverla{p_i}(SurfNum)*CosIn{c_i}{\mathrm{ [W}}]} \end{equation} where \({\tau ^{beam}}(SurfNum)\) is the beam-to-beam transmittance of the interior window at the angle of incidence of beam solar from the exterior window on the interior window. The program does not track where this radiation falls in the adjacent zone: it is counted as diffuse radiation in that zone. Therefore, \begin{equation} -QS(ZoneNum) \to QS(ZoneNum) + [{\rm{beam solar from adjacent zones]}}*VMULT(ZoneNum) +QS(ZoneNum) \to QS(ZoneNum) + [{\mathrm{beam solar from adjacent zones]}}*VMULT(ZoneNum) \end{equation} \subsection{Ground Reflectances}\label{ground-reflectances} @@ -833,7 +833,7 @@ \subsection{Ground Reflectances}\label{ground-reflectances} Ground reflectance values (Ref Object: Site:GroundReflectance) are used to calculate the ground reflected solar amount.~ This fractional amount (entered monthly) is used in the following equation: \begin{equation} -{\rm{GroundReflectedSolar = (BeamSolar}} \bullet {\rm{COS(SunZenithAngle) + DiffuseSolar)}} \bullet {\rm{GroundReflectance}} +{\mathrm{GroundReflectedSolar = (BeamSolar}} \bullet {\mathrm{COS(SunZenithAngle) + DiffuseSolar)}} \bullet {\mathrm{GroundReflectance}} \end{equation} Of course, the Ground Reflected Solar is never allowed to be negative.~ The Snow Ground Reflectance Modifier can further modify the ground reflectance when snow is on the ground.~ If the user enters 0.0 for each month, no ground reflected solar is used. @@ -845,13 +845,13 @@ \subsection{Ground Reflectances (Snow)}\label{ground-reflectances-snow} Ground Reflected Solar Modifier is used to modified the basic monthly ground reflectance when snow is on the ground (from design day input or weather data values). Values can range from 0.0 to 1.0. \begin{equation} -{\rm{GroundReflectanc}}{{\rm{e}}_{{\rm{used}}}} = {\rm{GroundReflectance}} \bullet SolarModifie{r_{Snow}} +{\mathrm{GroundReflectanc}}{{\mathrm{e}}_{{\mathrm{used}}}} = {\mathrm{GroundReflectance}} \bullet SolarModifie{r_{Snow}} \end{equation} Daylighting Ground Reflected Solar Modifier is used to modified the basic monthly ground reflectance when snow is on the ground (from design day input or weather data values). Values can range from 0.0 to 1.0. \begin{equation} -{\rm{DaylightingGroundReflectanc}}{{\rm{e}}_{{\rm{used}}}} = {\rm{GroundReflectance}} \bullet DaylightingModifie{r_{Snow}} +{\mathrm{DaylightingGroundReflectanc}}{{\mathrm{e}}_{{\mathrm{used}}}} = {\mathrm{GroundReflectance}} \bullet DaylightingModifie{r_{Snow}} \end{equation} \subsection{References}\label{references-041} diff --git a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/sky-radiance-model.tex b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/sky-radiance-model.tex index c812ef9ffaf..131f96909ad 100644 --- a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/sky-radiance-model.tex +++ b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/sky-radiance-model.tex @@ -97,9 +97,9 @@ \subsection{Sky Diffuse Solar Radiation on a Tilted Surface}\label{sky-diffuse-s \begin{equation} \begin{array}{rcl} - I_{horizon} & = \rm{irradiance~on~surface~from~sky~horizon} & = I_h F_2\sin S \\ - I_{dome} & = \rm{irradiance~on~surface~from~sky~dome} & = I_h (1 - F_1)(1 + \cos S)/2 \\ - I_{circumsolar} & = \rm{irradiance~on~surface~from~circumsolar~region} & = I_h F_1 a/b + I_{horizon} & = \mathrm{irradiance~on~surface~from~sky~horizon} & = I_h F_2\sin S \\ + I_{dome} & = \mathrm{irradiance~on~surface~from~sky~dome} & = I_h (1 - F_1)(1 + \cos S)/2 \\ + I_{circumsolar} & = \mathrm{irradiance~on~surface~from~circumsolar~region} & = I_h F_1 a/b \end{array} \end{equation} @@ -189,7 +189,7 @@ \subsection{Shadowing of Sky Diffuse Solar Radiation}\label{shadowing-of-sky-dif For the horizon source the following ratio is calculated by dividing the horizon line into 24 intervals of equal length: \begin{equation} -{R_{horiz}} = \frac{{{\rm{Irradiance~from~horizon~with~obstructions}}}}{{{\rm{Irradiance~from~horizon~without~obstructions}}}} = \frac{{\sum\limits_{i = 1}^{24} {{I_i}S{F_i}} }}{{\sum\limits_{i = 1}^{24} {{I_i}} }} +{R_{horiz}} = \frac{{{\mathrm{Irradiance~from~horizon~with~obstructions}}}}{{{\mathrm{Irradiance~from~horizon~without~obstructions}}}} = \frac{{\sum\limits_{i = 1}^{24} {{I_i}S{F_i}} }}{{\sum\limits_{i = 1}^{24} {{I_i}} }} \end{equation} where I\(_{i}\) is the unobstructed irradiance on the surface from the i\(^{th}\) interval, SF\(_{i}\) is the sunlit fraction from radiation coming from the \emph{i}\(^{th}\) interval, and the sums are over intervals whose center lies in front of the surface. \emph{SF\(_{i}\)} is calculated using the beam solar shadowing method as though the sun were located at the \emph{i}\(^{th}\) horizon point. Here: @@ -211,7 +211,7 @@ \subsection{Shadowing of Sky Diffuse Solar Radiation}\label{shadowing-of-sky-dif The corresponding ratio for the isotropic sky dome is given by: \begin{equation} -{R_{dome}} = \frac{{{\rm{Irradiance~from~dome~with~obstructions}}}}{{{\rm{Irradiance~from~dome~without~obstructions}}}} = \frac{{\sum\limits_{i = 1}^{24} {\sum\limits_{j = 1}^6 {{I_{ij}}S{F_{ij}}} } }}{{\sum\limits_{i = 1}^{24} {\sum\limits_{j = 1}^6 {{I_{ij}}} } }} +{R_{dome}} = \frac{{{\mathrm{Irradiance~from~dome~with~obstructions}}}}{{{\mathrm{Irradiance~from~dome~without~obstructions}}}} = \frac{{\sum\limits_{i = 1}^{24} {\sum\limits_{j = 1}^6 {{I_{ij}}S{F_{ij}}} } }}{{\sum\limits_{i = 1}^{24} {\sum\limits_{j = 1}^6 {{I_{ij}}} } }} \end{equation} where (\emph{i,j}) is a grid of 144 points (6 in altitude by 24 in azimuth) covering the sky dome, \emph{I\(_{ij}\)} is the unobstructed irradiance on the surface from the sky element at the \emph{ij}\(^{th}\) point, \emph{SF\(_{ij}\)} is the sunlit fraction for radiation coming from the \emph{ij}\(^{th}\) element, and the sum is over points lying in front of the surface. Here: @@ -237,7 +237,7 @@ \subsection{Shadowing of Sky Diffuse Solar Radiation}\label{shadowing-of-sky-dif Because the circumsolar region is assumed to be concentrated at the solar disk, the circumsolar ratio is: \begin{equation} -{R_{circumsolar}} = \frac{{{\rm{Irradiance~from~circumsolar~region~with~obstructions}}}}{{{\rm{Irradiance~from~circumsolar~without~obstructions}}}} = S{F_{sun}} +{R_{circumsolar}} = \frac{{{\mathrm{Irradiance~from~circumsolar~region~with~obstructions}}}}{{{\mathrm{Irradiance~from~circumsolar~without~obstructions}}}} = S{F_{sun}} \end{equation} where \emph{SF\(_{sun}\)} is the beam sunlit fraction. The total sky diffuse irradiance on the surface with shadowing is then: diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex index 1414bf4f9ca..58d9ce97496 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex @@ -113,27 +113,27 @@ \subsection{Daylight Factors}\label{daylight-factors} The following daylight factors are calculated: \begin{equation} -{d_{sky}} = \frac{{{\rm{Illuminance~at~reference~point~due~to~sky-related~light}}}}{{{E_{h,sky}}}} +{d_{sky}} = \frac{{{\mathrm{Illuminance~at~reference~point~due~to~sky-related~light}}}}{{{E_{h,sky}}}} \end{equation} \begin{equation} -{d_{sun}} = \frac{{{\rm{Illuminance~at~reference~point~due~to~sun-related~light}}}}{{{E_{h,sun}}}} +{d_{sun}} = \frac{{{\mathrm{Illuminance~at~reference~point~due~to~sun-related~light}}}}{{{E_{h,sun}}}} \end{equation} \begin{equation} -{w_{sky}} = \frac{{{\rm{Average~window~luminance~due~to~sky-related~light}}}}{{{E_{h,sky}}}} +{w_{sky}} = \frac{{{\mathrm{Average~window~luminance~due~to~sky-related~light}}}}{{{E_{h,sky}}}} \end{equation} \begin{equation} -{w_{sun}} = \frac{{{\rm{Average~window~luminance~due~to~sun-related~light}}}}{{{E_{h,sun}}}} +{w_{sun}} = \frac{{{\mathrm{Average~window~luminance~due~to~sun-related~light}}}}{{{E_{h,sun}}}} \end{equation} \begin{equation} -{b_{sky}} = \frac{{{\rm{Window~background~luminance~due~to~sky-related~light}}}}{{{E_{h,sky}}}} +{b_{sky}} = \frac{{{\mathrm{Window~background~luminance~due~to~sky-related~light}}}}{{{E_{h,sky}}}} \end{equation} \begin{equation} -{b_{sun}} = \frac{{{\rm{Window~background~luminance~due~to~sun-related~light}}}}{{{E_{h,sun}}}} +{b_{sun}} = \frac{{{\mathrm{Window~background~luminance~due~to~sun-related~light}}}}{{{E_{h,sun}}}} \end{equation} For a daylit zone with \emph{N} windows these six daylight factors are calculated for each of the following combinations of reference point, window, sky-condition/sun-position and shading device: @@ -184,7 +184,7 @@ \subsubsection{Clear Sky}\label{clear-sky} The clear sky luminance distribution has the form (Kittler, 1965; CIE, 1973) \begin{equation} -{\psi_{cs}}({\theta_{sky}},{\phi_{sky}}) = {L_z}\frac{{(0.91 + 10{e^{ - 3\gamma }} + 0.45{{\cos }^2}\gamma )(1 - {e^{ - 0.32{\rm{cosec}}{\phi_{sky}}}})}}{{0.27385(0.91 + 10{e^{ - 3(\frac{\pi }{2} - {\phi_{sun}})}} + 0.45{{\sin }^2}{\phi_{sun}})}} +{\psi_{cs}}({\theta_{sky}},{\phi_{sky}}) = {L_z}\frac{{(0.91 + 10{e^{ - 3\gamma }} + 0.45{{\cos }^2}\gamma )(1 - {e^{ - 0.32{\mathrm{cosec}}{\phi_{sky}}}})}}{{0.27385(0.91 + 10{e^{ - 3(\frac{\pi }{2} - {\phi_{sun}})}} + 0.45{{\sin }^2}{\phi_{sun}})}} \end{equation} Here, \emph{L\(_{z}\)} is the zenith luminance (i.e., the luminance of the sky at a point directly overhead). In the calculation of daylight factors, which are ratios of interior and exterior illumination quantities that are both proportional to \emph{L\(_{z}\)}, the zenith luminance cancels out. For this reason we will use \emph{L\(_{z}\)} = 1.0 for all sky luminance distributions. @@ -202,7 +202,7 @@ \subsubsection{Clear Turbid Sky}\label{clear-turbid-sky} The clear turbid sky luminance distribution has the form {[}Matsuura, 1987{]}: \begin{equation} -{\psi_{ts}}({\theta_{sky}},{\phi_{sky}}) = {L_z}\frac{{(0.856 + 16{e^{ - 3\gamma }} + 0.3{{\cos }^2}\gamma )(1 - {e^{ - 0.32{\rm{cosec}}{\phi_{sky}}}})}}{{0.27385(0.856 + 10{e^{ - 3(\frac{\pi }{2} - {\phi_{sun}})}} + 0.3{{\sin }^2}{\phi_{sun}})}} +{\psi_{ts}}({\theta_{sky}},{\phi_{sky}}) = {L_z}\frac{{(0.856 + 16{e^{ - 3\gamma }} + 0.3{{\cos }^2}\gamma )(1 - {e^{ - 0.32{\mathrm{cosec}}{\phi_{sky}}}})}}{{0.27385(0.856 + 10{e^{ - 3(\frac{\pi }{2} - {\phi_{sun}})}} + 0.3{{\sin }^2}{\phi_{sun}})}} \end{equation} \subsubsection{Intermediate Sky}\label{intermediate-sky} @@ -291,7 +291,7 @@ \subsection{Direct Component of Interior Daylight Illuminance}\label{direct-comp The subtended solid angle is approximated by: \begin{equation} -d\Omega = \frac{{dxdy}}{{{D^2}}}\cos B +d\Omega = \frac{{dxdy}}{{{D^2}}}\cos {B} \label{eq:SubtendedSolidAngle} \end{equation} @@ -314,7 +314,7 @@ \subsection{Direct Component of Interior Daylight Illuminance}\label{direct-comp \end{equation} \begin{equation} -{\hat W_n} = {\rm{ window~outward~normal }} = {\hat W_{21}} \times {\hat W_{23}} = \frac{{{{\vec W}_1} - {{\vec W}_2}}}{{\left| {{{\vec W}_1} - {{\vec W}_2}} \right|}} \times \frac{{{{\vec W}_3} - {{\vec W}_2}}}{{\left| {{{\vec W}_3} - {{\vec W}_2}} \right|}} +{\hat W_n} = {\mathrm{ window~outward~normal }} = {\hat W_{21}} \times {\hat W_{23}} = \frac{{{{\vec W}_1} - {{\vec W}_2}}}{{\left| {{{\vec W}_1} - {{\vec W}_2}} \right|}} \times \frac{{{{\vec W}_3} - {{\vec W}_2}}}{{\left| {{{\vec W}_3} - {{\vec W}_2}} \right|}} \end{equation} Equation~\ref{eq:SubtendedSolidAngle} becomes exact as \(dx/D\) and \(dy/D \to 0\) and is accurate to better than about 1\% for \(dx \le D/4\) and \(dy \le D/4\) . @@ -607,7 +607,7 @@ \subsubsection{Glare Index}\label{glare-index} The net daylight glare at a reference point due to all of the windows in a room is expressed in terms of a \emph{glare index} given by \begin{equation} -{G_I} = 10{\log_{10}}\sum\limits_{i = 1}^{\scriptstyle \substack{number~of \\ windows}} {{{\rm{G}}_{\rm{i}}}} +{G_I} = 10{\log_{10}}\sum\limits_{i = 1}^{\scriptstyle \substack{number~of \\ windows}} {{{\mathrm{G}}_{\mathrm{i}}}} \end{equation} where \emph{G\(_{i}\)} is the glare constant at the reference point due to the \emph{i\(^{th}\)} window. diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex index db70e97ff72..b9314d5beae 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex @@ -481,7 +481,7 @@ \subsection{Window Light Well}\label{window-light-well} The well efficiency depends on the visible reflectance of well's side walls and on the well cavity ratio, \textbf{\emph{WCR}}, which is given by: \begin{equation} -WCR = \frac{{{\rm{2}}{\rm{.5 x Well~Height x Well~Perimeter}}}}{{{\rm{Well~Area}}}} +WCR = \frac{{{\mathrm{2}}{\mathrm{.5 x Well~Height x Well~Perimeter}}}}{{{\mathrm{Well~Area}}}} \end{equation} Well Height, Well Perimeter and Well Area are inputs to the model and are discussed in the figure caption above. @@ -489,7 +489,7 @@ \subsection{Window Light Well}\label{window-light-well} The model in EnergyPlus was implemented by fitting a curve to the data presented as Figure~8-21, ``Efficiency factors for various depths of light wells based on well-interreflectance values,'' found in the Lighting Handbook (IES 1993).~ The figure below reproduces that reference data and shows well efficiency vs.~WCR for different side wall reflectances. For use in the EnergyPlus calculation, a fit has been made to this graph that gives the following mathematical expression, where ``Reflectance'' is the user input value of the well-wall reflectance expressed as a fraction: \begin{equation} -{\rm{Well~efficiency}} = {e^{ - WCR*(0.16368 - 0.144678*{\rm{Reflectance}})}} +{\mathrm{Well~efficiency}} = {e^{ - WCR*(0.16368 - 0.144678*{\mathrm{Reflectance}})}} \end{equation} \begin{figure}[hbtp] % fig 73 diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/time-step-daylighting-calculation.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/time-step-daylighting-calculation.tex index 21f35c612ac..1476d5a2064 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/time-step-daylighting-calculation.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/time-step-daylighting-calculation.tex @@ -196,7 +196,7 @@ \subsection{Interior Illuminance}\label{interior-illuminance} The total illuminance at a reference point from all of the exterior windows in a zone is \begin{equation} - {I_{tot}}({i_L}) = \sum\limits_{\genfrac{}{}{0pt}{2}{\rm{windows}}{\rm{in~zone}}} {{I_{win}}({i_s},{i_L})} + {I_{tot}}({i_L}) = \sum\limits_{\substack{\mathrm{windows}\\\mathrm{in~zone}}} {{I_{win}}({i_s},{i_L})} \end{equation} where i\(_{S}\) = 1 if the window is unshaded and \emph{i\(_{S}\)} = 2 if the window is shaded that time step. (Before the illuminance calculation is done the window shading control will have been simulated to determine whether or not the window is shaded.) @@ -204,7 +204,7 @@ \subsection{Interior Illuminance}\label{interior-illuminance} Similarly, the total background luminance is calculated: \begin{equation} - {B_{tot}}({i_L}) = \sum\limits_{\genfrac{}{}{0pt}{2}{\rm{windows}}{\rm{in~zone}}} {{B_{win}}({i_s},{i_L})} + {B_{tot}}({i_L}) = \sum\limits_{\substack{\mathrm{windows}\\\mathrm{in~zone}}} {{B_{win}}({i_s},{i_L})} \end{equation} \subsection{Glare Index}\label{glare-index-000} @@ -212,7 +212,7 @@ \subsection{Glare Index}\label{glare-index-000} The net glare index at each reference point is calculated as: \begin{equation} - {G_I}({i_L}) = 10{\log_{10}}\sum\limits_{\genfrac{}{}{0pt}{2}{\rm{windows}}{\rm{in~zone}}} {\frac{{{S_{win}}{{({i_L},{i_S})}^{1.6}}\Omega {{({i_L})}^{0.8}}}}{{B({i_L}) + 0.07\omega {{({i_L})}^{0.5}}{S_{win}}({i_L},{i_S})}}} + {G_I}({i_L}) = 10{\log_{10}}\sum\limits_{\substack{\mathrm{windows}\\\mathrm{in~zone}}} {\frac{{{S_{win}}{{({i_L},{i_S})}^{1.6}}\Omega {{({i_L})}^{0.8}}}}{{B({i_L}) + 0.07\omega {{({i_L})}^{0.5}}{S_{win}}({i_L},{i_S})}}} \end{equation} where @@ -254,7 +254,7 @@ \subsection{Lighting Control System Simulation}\label{lighting-control-system-si Once the final daylight illuminance value at each reference point has been determined, the electric lighting control is simulated. The fractional electric lighting output, \emph{f\(_{L}\)}, required to meet the setpoint at reference point \emph{i\(_{L}\)} is given by \begin{equation} -{f_L}({i_L}) = {\rm{max}}\left[ {0,\frac{{{I_{set}}({i_L}) - {I_{tot}}({i_L})}}{{{I_{set}}({i_L})}}} \right] +{f_L}({i_L}) = {\mathrm{max}}\left[ {0,\frac{{{I_{set}}({i_L}) - {I_{tot}}({i_L})}}{{{I_{set}}({i_L})}}} \right] \end{equation} Here, \emph{I\(_{set}\)} is the illuminance setpoint and \emph{I\(_{tot}\)} is the daylight illuminance at the reference point. This relationship assumes that the electric lights at full power produce an illuminance equal to \emph{I\(_{set}\)} at the reference point. @@ -292,7 +292,7 @@ \subsubsection{Stepped Control}\label{stepped-control} f_P = \left\{ \begin{array}{cl} 0 & for~f_L = 0 \\ - \frac{\mathop{\rm int} (N_L f_L) + 1}{N_L} & for~0 < f_L < 1 \\ + \frac{\mathop\mathrm{int} (N_L f_L) + 1}{N_L} & for~0 < f_L < 1 \\ 1 & for~f_L = 1 \end{array} \right. diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex index e3bcd560b57..aa401e0a916 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex @@ -473,22 +473,28 @@ \subsection{Glazing System Properties}\label{glazing-system-properties} {P_v} = \frac{{\int {P(\lambda ){E_s}(\lambda )V(\lambda )d\lambda } }}{{\int {{E_s}(\lambda )V(\lambda )d\lambda } }} \end{equation} -where \({E_s}(\lambda )\) is the solar spectral irradiance function and \(V(\lambda )\) is the photopic response function of the eye. The default functions are shown in Table~\ref{table:solar-spectral-irradiance-function.} and Table~\ref{table:photopic-response-function.}. They can be overwritten by user defined solar and/or visible spectrum using the objects Site:SolarAndVisibleSpectrum and Site:SpectrumData. They are expressed as a set of values followed by the corresponding wavelengths for values. +where \({E_s}(\lambda )\) is the solar spectral irradiance function and \(V(\lambda )\) is the photopic response function of the eye. The default functions are shown in Table~\ref{table:solar-spectral-irradiance-function} and Table~\ref{table:photopic-response-function}. They can be overwritten by user defined solar and/or visible spectrum using the objects Site:SolarAndVisibleSpectrum and Site:SpectrumData. They are expressed as a set of values followed by the corresponding wavelengths for values. When a choice of Spectral is entered as the optical data type, the correlations to store the glazing system's angular performance are generated based on angular performance at 10 degree increments. When a choice of SpectralAndAngle is entered as the optical data type, the correlations for the glazing system will be generated using 10 degree increments or more if the SpectralAndAngle properties include data for more angles. For each incident angle, the properties of the SpectralAndAngle layer(s) is calculated by linear interpolation, and then the performance of the entire glazing system is calculated for that angle. The glazing system properties at each angle are used to generate polynomial curve fits with 6 coefficients as a function of cosine of incident angle. The polynomial curves are then used in the simulation to calculate optical properties at each timestep. If a glazing layer has optical properties that are roughly constant with wavelength, the wavelength-dependent values of \(T_{i,i}\), \(R^{f}_{i,i}\) and \(R^{b}_{i,i}\) in Equations~\ref{eq:Tijequation} to~\ref{eq:Ajtothefequation} can be replaced with constant values for that layer. \begin{table} -\caption{Solar spectral irradiance function.} +\caption{Solar spectral irradiance function. \label{table:solar-spectral-irradiance-function}} \begin{tabular}{|| r r r r r r r r r r ||} \hline\hline \multicolumn{10}{|| l ||}{Air mass 1.5 terrestrial solar global spectral irradiance values (W/m-micron) on a} \\ \multicolumn{10}{|| l ||}{37 degree tilted surface.~Corresponds to wavelengths in following data block.} \\ \multicolumn{10}{|| l ||}{Based on ISO 9845-1 and ASTM E 892;~derived from Optics5 data file} \\ \multicolumn{10}{|| l ||}{ISO-9845GlobalNorm.std, 10-14-99.} \\ +\ifdefined\pandoc +Air mass 1.5 terrestrial solar global spectral irradiance values (W/m-micron) on a & & & & & & & & & \\ +37 degree tilted surface.~Corresponds to wavelengths in following data block. & & & & & & & & & \\ +Based on ISO 9845-1 and ASTM E 892;~derived from Optics5 data file & & & & & & & & & \\ +ISO-9845GlobalNorm.std, 10-14-99. & & & & & & & & & \\ +\fi \hline -0.0, & 9.5, & 42.3, & 107.8, & 181.0, & 246.0, & 395.3, & 390.1, & 435.3, & 438.9, \\ +\hfill 0.0, & 9.5, & 42.3, & 107.8, & 181.0, & 246.0, & 395.3, & 390.1, & 435.3, & 438.9, \\ 483.7, & 520.3, & 666.2, & 712.5, & 720.7, & 1013.1, & 1158.2, & 1184.0, & 1071.9, & 1302.0, \\ 1526.0, & 1599.6, & 1581.0, & 1628.3, & 1539.2, & 1548.7, & 1586.5, & 1484.9, & 1572.4, & 1550.7, \\ 1561.5, & 1501.5, & 1395.5, & 1485.3, & 1434.1, & 1419.9, & 1392.3, & 1130.0, & 1316.7, & 1010.3, \\ @@ -501,8 +507,11 @@ \subsection{Glazing System Properties}\label{glazing-system-properties} 82.2, & 71.5, & 70.2, & 62.0, & 21.2, & 18.5, & 3.2~ & & & \\ \hline \multicolumn{10}{|| l ||}{Wavelengths (microns) corresponding to above data block} \\ +\ifdefined\pandoc +Wavelengths (microns) corresponding to above data block & & & & & & & & & \\ +\fi \hline -0.3000, & 0.3050, & 0.3100, & 0.3150, & 0.3200, & 0.3250, & 0.3300, & 0.3350, & 0.3400, & 0.3450, \\ +\hfill 0.3000, & 0.3050, & 0.3100, & 0.3150, & 0.3200, & 0.3250, & 0.3300, & 0.3350, & 0.3400, & 0.3450, \\ 0.3500, & 0.3600, & 0.3700, & 0.3800, & 0.3900, & 0.4000, & 0.4100, & 0.4200, & 0.4300, & 0.4400, \\ 0.4500, & 0.4600, & 0.4700, & 0.4800, & 0.4900, & 0.5000, & 0.5100, & 0.5200, & 0.5300, & 0.5400, \\ 0.5500, & 0.5700, & 0.5900, & 0.6100, & 0.6300, & 0.6500, & 0.6700, & 0.6900, & 0.7100, & 0.7180, \\ @@ -515,19 +524,24 @@ \subsection{Glazing System Properties}\label{glazing-system-properties} 2.1480, & 2.1980, & 2.2700, & 2.3600, & 2.4500, & 2.4940, & 2.5370~ & & & \\ \hline\hline \end{tabular} -\label{table:solar-spectral-irradiance-function.} \end{table} \begin{table} -\caption{Photopic response function.} +\caption{Photopic response function. \label{table:photopic-response-function}} \begin{tabular}{|| r r r r r r r r r r ||} \hline\hline \multicolumn{10}{|| l ||}{Photopic response function values corresponding to wavelengths in following data block.} \\ \multicolumn{10}{|| l ||}{Based on CIE 1931 observer; ISO/CIE 10527, CIE Standard Calorimetric Observers;} \\ \multicolumn{10}{|| l ||}{derived from Optics5 data file "CIE 1931 Color Match from E308.txt",} \\ \multicolumn{10}{|| l ||}{which is the same as WINDOW4 file Cie31t.dat.} \\ +\ifdefined\pandoc +Photopic response function values corresponding to wavelengths in following data block. & & & & & & & & & \\ +Based on CIE 1931 observer; ISO/CIE 10527, CIE Standard Calorimetric Observers; & & & & & & & & & \\ +derived from Optics5 data file "CIE 1931 Color Match from E308.txt", & & & & & & & & & \\ +which is the same as WINDOW4 file Cie31t.dat. & & & & & & & & & \\ +\fi \hline -0.0000, & 0.0001, & 0.0001, & 0.0002, & 0.0004, & 0.0006, & 0.0012, & 0.0022, & 0.0040, & 0.0073, \\ +\hfill 0.0000, & 0.0001, & 0.0001, & 0.0002, & 0.0004, & 0.0006, & 0.0012, & 0.0022, & 0.0040, & 0.0073, \\ 0.0116, & 0.0168, & 0.0230, & 0.0298, & 0.0380, & 0.0480, & 0.0600, & 0.0739, & 0.0910, & 0.1126, \\ 0.1390, & 0.1693, & 0.2080, & 0.2586, & 0.3230, & 0.4073, & 0.5030, & 0.6082, & 0.7100, & 0.7932, \\ 0.8620, & 0.9149, & 0.9540, & 0.9803, & 0.9950, & 1.0000, & 0.9950, & 0.9786, & 0.9520, & 0.9154, \\ @@ -538,8 +552,11 @@ \subsection{Glazing System Properties}\label{glazing-system-properties} 0.0000~ & & & & & & & & & \\ \hline \multicolumn{10}{|| l ||}{Wavelengths (microns) corresponding to above data block} \\ +\ifdefined\pandoc +Wavelengths (microns) corresponding to above data block & & & & & & & & & \\ +\fi \hline -.380, & .385, & .390, & .395, & .400, & .405, & .410, & .415, & .420, & .425, \\ +\hfill .380, & .385, & .390, & .395, & .400, & .405, & .410, & .415, & .420, & .425, \\ .430, & .435, & .440, & .445, & .450, & .455, & .460, & .465, & .470, & .475, \\ .480, & .485, & .490, & .495, & .500, & .505, & .510, & .515, & .520, & .525, \\ .530, & .535, & .540, & .545, & .550, & .555, & .560, & .565, & .570, & .575, \\ @@ -550,7 +567,6 @@ \subsection{Glazing System Properties}\label{glazing-system-properties} .780~ & & & & & & & & & \\ \hline\hline \end{tabular} -\label{table:photopic-response-function.} \end{table} \subsection{Calculation of Angular Properties}\label{calculation-of-angular-properties} @@ -772,7 +788,7 @@ \subsubsection{Shade/Glazing System Properties for Short-Wave Radiation}\label{s \end{equation} \begin{equation} -A_{j,b}^{dif,sys} = \frac{{{\tau_{sh}}}}{{1 - R_b^{dif}{\rho_{sh}}}}A_{j,b}^{dif},{\rm{ }}~j = 1~to~N +A_{j,b}^{dif,sys} = \frac{{{\tau_{sh}}}}{{1 - R_b^{dif}{\rho_{sh}}}}A_{j,b}^{dif},{\mathrm{ }}~j = 1~to~N \end{equation} \begin{equation} @@ -909,7 +925,7 @@ \subsubsection{Direct-to-Direct Blind Transmittance}\label{direct-to-direct-blin Figure~\ref{fig:a-side-view-of-a-cell-formed-by-adjacent}(b) shows the case where some of the direct radiation passes through the cell without hitting the slats. From the geometry in this figure we see that \begin{equation} -\tau_{bl,f}^{dir,dir} = 1 - \frac{{|w|}}{h},{\rm{ }}|w|{\rm{ }} \le {\rm{ }}h +\tau_{bl,f}^{dir,dir} = 1 - \frac{{|w|}}{h},{\mathrm{ }}|w|{\mathrm{ }} \le {\mathrm{ }}h \end{equation} where @@ -946,7 +962,7 @@ \subsubsection{Direct-to-Diffuse Blind Transmittance, Reflectance and Absorptanc In addition we have the following equation relating \emph{G} and \emph{J}: \begin{equation} -{G_i} = \sum\limits_{j = 1}^6 {{J_j}{F_{ji}}{\rm{ , }}~i = 1,6} +{G_i} = \sum\limits_{j = 1}^6 {{J_j}{F_{ji}}{\mathrm{ , }}~i = 1,6} \end{equation} where \({F_{ji}}\) is the view factor between \({s_j}\) and \({s_i}\), i.e., \({F_{ji}}\) is the fraction of radiation leaving \({s_j}\) that is intercepted by \({s_i}\). @@ -1003,15 +1019,15 @@ \subsubsection{Direct-to-Diffuse Blind Transmittance, Reflectance and Absorptanc The view factors, \({F_{ij}}\), are obtained as follows. The cell we are dealing with is a convex polygon with \emph{n} sides. In such a polygon the view factors must satisfy the following constraints: \begin{equation} -\sum\limits_{j = 1}^n {{F_{ij}} = 1{\rm{, }}~i = 1,n} +\sum\limits_{j = 1}^n {{F_{ij}} = 1{\mathrm{, }}~i = 1,n} \end{equation} \begin{equation} -{s_i}{F_{ij}} = {s_j}{F_{ji}}{\rm{, }}i = 1,n{\rm{; }}~j = 1,n +{s_i}{F_{ij}} = {s_j}{F_{ji}}{\mathrm{, }}i = 1,n{\mathrm{; }}~j = 1,n \end{equation} \begin{equation} -{F_{ii}} = 0{\rm{, }}~i = 1,n +{F_{ii}} = 0{\mathrm{, }}~i = 1,n \end{equation} These constraints lead to simple equations for the view factors for \emph{n} = 3 and 4. For \emph{n} = 3, we have the following geometry and view factor expression: @@ -1037,7 +1053,7 @@ \subsubsection{Direct-to-Diffuse Blind Transmittance, Reflectance and Absorptanc \end{equation} \begin{equation} -{F_{13}} = \frac{{h + {s_3} - {d_3}}}{{2h}}{\rm{ , etc}}{\rm{.}} +{F_{13}} = \frac{{h + {s_3} - {d_3}}}{{2h}}{\mathrm{ , etc}}{\mathrm{.}} \end{equation} \begin{figure}[hbtp] % fig 81 @@ -1062,7 +1078,7 @@ \subsubsection{Direct-to-Diffuse Blind Transmittance, Reflectance and Absorptanc \; \varphi_b \le \varphi_s + \frac{\pi }{2} \; - \rm{ (beam~hits~front~of~slats)} + \mathrm{ (beam~hits~front~of~slats)} \end{equation} \begin{equation} @@ -1075,7 +1091,7 @@ \subsubsection{Direct-to-Diffuse Blind Transmittance, Reflectance and Absorptanc \; \varphi_b > \varphi_s + \frac{\pi }{2} \; - \rm{ (beam~hits~back~of~slats)} + \mathrm{ (beam~hits~back~of~slats)} \end{equation} For unit incident direct flux, the front direct-to-diffuse transmittance and reflectance of the blind are: @@ -1136,17 +1152,17 @@ \subsubsection{Blind properties for sky and ground diffuse radiation}\label{blin For horizontal slats on a vertical window (the most common configuration) the blind diffuse-to-diffuse properties will be sensitive to whether the radiation is incident upward from the ground or downward from the sky (Figure~\ref{fig:side-view-of-horizontal-slats-in-a-vertical}). For this reason we also calculate the following solar properties for a blind consisting of horizontal slats in a vertical plane: -\(\tau_{bl,f}^{gnd - dif,dif} = {\rm{ }}\) front transmittance for ground diffuse solar +\(\tau_{bl,f}^{gnd - dif,dif} = {\mathrm{ }}\) front transmittance for ground diffuse solar -\(\tau_{bl,f}^{sky - dif,dif} = {\rm{ }}\) front transmittance for sky diffuse solar +\(\tau_{bl,f}^{sky - dif,dif} = {\mathrm{ }}\) front transmittance for sky diffuse solar $\rho_{bl,f}^{gnd - dif,dif} = $ front reflectance for ground diffuse solar -\(\rho_{bl,f}^{sky - dif,dif} = {\rm{ }}\) front reflectance for sky diffuse solar +\(\rho_{bl,f}^{sky - dif,dif} = {\mathrm{ }}\) front reflectance for sky diffuse solar -\(\alpha_{bl,f}^{gnd - dif,dif} = {\rm{ }}\) front absorptance for ground diffuse solar +\(\alpha_{bl,f}^{gnd - dif,dif} = {\mathrm{ }}\) front absorptance for ground diffuse solar -\(\alpha_{bl,f}^{sky - dif,dif} = {\rm{ }}\) front absorptance for sky diffuse solar +\(\alpha_{bl,f}^{sky - dif,dif} = {\mathrm{ }}\) front absorptance for sky diffuse solar These are obtained by integrating over sky and ground elements, as shown in Figure~\ref{fig:side-view-of-horizontal-slats-in-a-vertical}, treating each element as a source of direct radiation of irradiance \(I({\phi_s})\) incident on the blind at profile angle \({\phi_s}\). This gives: @@ -1262,7 +1278,7 @@ \subsubsection{Interior Blind}\label{interior-blind} \end{equation} \begin{equation} -A_{gl,j,f}^{dir,sys}(\phi ,{\phi_s}) = A_{gl,j,f}^{dir}(\phi ) + \frac{{T_{gl}^{dir}(\phi )\alpha_{gl,j,b}^{dif}\rho_{bl,f}^{dir}({\phi_s})}}{{1 - \rho_{bl,f}^{dir}({\phi_s})R_{gl,b}^{dif}}}{\rm{, }}~j = 1,N +A_{gl,j,f}^{dir,sys}(\phi ,{\phi_s}) = A_{gl,j,f}^{dir}(\phi ) + \frac{{T_{gl}^{dir}(\phi )\alpha_{gl,j,b}^{dif}\rho_{bl,f}^{dir}({\phi_s})}}{{1 - \rho_{bl,f}^{dir}({\phi_s})R_{gl,b}^{dif}}}{\mathrm{, }}~j = 1,N \end{equation} \begin{equation} @@ -1282,15 +1298,15 @@ \subsubsection{Interior Blind}\label{interior-blind} \end{equation} \begin{equation} -A_{gl,j,f}^{dif,sys} = A_{gl,j,f}^{dif} + \frac{{T_{gl}^{dif}\rho_{bl,f}^{dif}A_{gl,j,b}^{dif}}}{{1 - \rho_{bl,f}^{dif}R_{gl,b}^{dif}}}{\rm{, }}~j = 1,N +A_{gl,j,f}^{dif,sys} = A_{gl,j,f}^{dif} + \frac{{T_{gl}^{dif}\rho_{bl,f}^{dif}A_{gl,j,b}^{dif}}}{{1 - \rho_{bl,f}^{dif}R_{gl,b}^{dif}}}{\mathrm{, }}~j = 1,N \end{equation} \begin{equation} -A_{gl,j,f}^{sky - dif,sys} = A_{gl,j,f}^{dif} + \frac{{T_{gl}^{dif}\rho_{bl,f}^{sky - dif}A_{gl,j,b}^{dif}}}{{1 - \rho_{bl,f}^{sky - dif}R_{gl,b}^{dif}}}{\rm{, }}~j = 1,N +A_{gl,j,f}^{sky - dif,sys} = A_{gl,j,f}^{dif} + \frac{{T_{gl}^{dif}\rho_{bl,f}^{sky - dif}A_{gl,j,b}^{dif}}}{{1 - \rho_{bl,f}^{sky - dif}R_{gl,b}^{dif}}}{\mathrm{, }}~j = 1,N \end{equation} \begin{equation} -A_{gl,j,f}^{gnd - dif,sys} = A_{gl,j,f}^{dif} + \frac{{T_{gl}^{dif}\rho_{bl,f}^{gnd - dif}A_{gl,j,b}^{dif}}}{{1 - \rho_{bl,f}^{gnd - dif}R_{gl,b}^{dif}}}{\rm{, }}~j = 1,N +A_{gl,j,f}^{gnd - dif,sys} = A_{gl,j,f}^{dif} + \frac{{T_{gl}^{dif}\rho_{bl,f}^{gnd - dif}A_{gl,j,b}^{dif}}}{{1 - \rho_{bl,f}^{gnd - dif}R_{gl,b}^{dif}}}{\mathrm{, }}~j = 1,N \end{equation} \begin{equation} @@ -1345,15 +1361,15 @@ \subsubsection{Exterior Blind}\label{exterior-blind} \end{equation} \begin{equation} -A_{gl,j,f}^{dif,sys} = \frac{{\tau_{bl,f}^{dif,dif}A_{gl,j,f}^{dif}}}{{1 - R_{gl,f}^{dif}\rho_{bl,b}^{dif}}},{\rm{ }}~j = 1,N +A_{gl,j,f}^{dif,sys} = \frac{{\tau_{bl,f}^{dif,dif}A_{gl,j,f}^{dif}}}{{1 - R_{gl,f}^{dif}\rho_{bl,b}^{dif}}},{\mathrm{ }}~j = 1,N \end{equation} \begin{equation} -A_{gl,j,f}^{sky - dif,sys} = \frac{{\tau_{bl,f}^{sky - dif,dif}A_{gl,j,f}^{dif}}}{{1 - R_{gl,f}^{dif}\rho_{bl,b}^{dif}}},{\rm{ }}~j = 1,N +A_{gl,j,f}^{sky - dif,sys} = \frac{{\tau_{bl,f}^{sky - dif,dif}A_{gl,j,f}^{dif}}}{{1 - R_{gl,f}^{dif}\rho_{bl,b}^{dif}}},{\mathrm{ }}~j = 1,N \end{equation} \begin{equation} -A_{gl,j,f}^{gnd - dif,sys} = \frac{{\tau_{bl,f}^{gnd - dif,dif}A_{gl,j,f}^{dif}}}{{1 - R_{gl,f}^{dif}\rho_{bl,b}^{dif}}},{\rm{ }}~j = 1,N +A_{gl,j,f}^{gnd - dif,sys} = \frac{{\tau_{bl,f}^{gnd - dif,dif}A_{gl,j,f}^{dif}}}{{1 - R_{gl,f}^{dif}\rho_{bl,b}^{dif}}},{\mathrm{ }}~j = 1,N \end{equation} \begin{equation} @@ -1401,7 +1417,7 @@ \subsubsection{Solar Radiation Transmitted and Absorbed by a Window/Blind System Let the direct solar incident on the window be: \begin{equation} -{I_{dir,inc}} = {f_{sunlit}}{I_{dir,norm}}\cos \phi {\rm{ }}(W/{m^2}) +{I_{dir,inc}} = {f_{sunlit}}{I_{dir,norm}}\cos \phi {\mathrm{ }}(W/{m^2}) \end{equation} where \({f_{sunlit}}\) is the fraction of the window that is sunlit (determined by the shadowing calculations), \({I_{dir,norm}}\) is the direct normal solar irradiance, and \(\phi\) is the angle of incidence. @@ -1431,7 +1447,7 @@ \subsubsection{Solar Radiation Transmitted and Absorbed by a Window/Blind System \emph{Direct solar absorbed by glass layers:} \begin{equation} -{I_{dir,inc}}A_{gl,j,f}^{dir,sys}(\phi ,{\phi_s}),{\rm{ }}~j = 1,N +{I_{dir,inc}}A_{gl,j,f}^{dir,sys}(\phi ,{\phi_s}),{\mathrm{ }}~j = 1,N \end{equation} \subsubsection{For windows whose blinds have vertical slats:}\label{for-windows-whose-blinds-have-vertical-slats} @@ -1451,7 +1467,7 @@ \subsubsection{For windows whose blinds have vertical slats:}\label{for-windows- \emph{Diffuse solar absorbed by glass layers:} \begin{equation} -({I_{sky,inc}} + {I_{gnd,inc}})A_{gl,j,f}^{dif,sys},{\rm{ }}~j = 1,N{\rm{ }} +({I_{sky,inc}} + {I_{gnd,inc}})A_{gl,j,f}^{dif,sys},{\mathrm{ }}~j = 1,N{\mathrm{ }} \end{equation} \subsubsection{For windows of tilt angle \(\gamma\) ~whose blinds have horizontal slats:}\label{for-windows-of-tilt-angle-gamma-whose-blinds-have-horizontal-slats} @@ -1479,7 +1495,7 @@ \subsubsection{For windows of tilt angle \(\gamma\) ~whose blinds have horizonta \emph{Diffuse solar absorbed by glass layers:} \begin{equation} -\begin{array}{l}A_{gl,j,f}^{sky - dif,sys}\left[ {\left( {1 - \frac{{|\cos \gamma |}}{2}} \right){I_{sky,inc}} + \frac{{|\cos \gamma |}}{2}{I_{gnd,inc}}} \right] + \\A_{gl,j,f}^{gnd - dif,sys}\left[ {\frac{{|\cos \gamma |}}{2}{I_{sky,inc}} + \left( {1 - \frac{{|\cos \gamma |}}{2}} \right){I_{gnd,inc}}} \right],{\rm{ }}~j = 1,N\end{array} +\begin{array}{l}A_{gl,j,f}^{sky - dif,sys}\left[ {\left( {1 - \frac{{|\cos \gamma |}}{2}} \right){I_{sky,inc}} + \frac{{|\cos \gamma |}}{2}{I_{gnd,inc}}} \right] + \\A_{gl,j,f}^{gnd - dif,sys}\left[ {\frac{{|\cos \gamma |}}{2}{I_{sky,inc}} + \left( {1 - \frac{{|\cos \gamma |}}{2}} \right){I_{gnd,inc}}} \right],{\mathrm{ }}~j = 1,N\end{array} \end{equation} \subsubsection{Screens}\label{screens} @@ -1514,7 +1530,7 @@ \subsubsection{Screens}\label{screens} The screen material diameter and spacing are then used to determine the screen material aspect ratio for use in the screen model. \begin{equation} -\gamma = {D \mathord{\left/ {\vphantom {D S}} \right. } S} +\gamma = {\frac{D}{S}} \end{equation} where @@ -1548,7 +1564,7 @@ \subsubsection{Screen Beam Transmittance}\label{screen-beam-transmittance} Given the diffuse reflectance \(\rho_sc\) and the screen aspect ratio \(\gamma\), the model takes the direction of solar incidence, the relative solar altitude angle α' and the relative solar azimuth angle \(\phi\)', illustrated in Figure~\ref{fig:schematic-of-a-vertical-window-screen-facing}, and calculates the direct beam transmittance \emph{T\(_{beam}\)} (\(\alpha\)', \(\varphi\)') as follows. Since the direct beam transmittance is only a function of the incident angle and the screen material aspect ratio, the following applies to both solar and visible radiation. \begin{equation} -\alpha '' = {\rm{arctan}}\left( {\tan \alpha '\sec \varphi '} \right) +\alpha '' = {\mathrm{arctan}}\left( {\tan \alpha '\sec \varphi '} \right) \end{equation} \begin{equation} @@ -1614,7 +1630,7 @@ \subsubsection{Screen Beam Transmittance}\label{screen-beam-transmittance} \end{equation} \begin{equation} -{\delta_{max}} = 89.7 - {{10\gamma } \mathord{\left/ {\vphantom {{10\gamma } {0.16}}} \right. } {0.16}} +{\delta_{max}} = 89.7 - {\frac{{10\gamma }}{0.16}} \end{equation} \begin{equation} @@ -1794,7 +1810,7 @@ \subsubsection{Screen Diffuse Properties}\label{screen-diffuse-properties} R_{sc}^{dif,dif}(\gamma ,{\rho_{sc}}) = \frac{{\sum\limits_{j = 1}^N {\sum\limits_{i = 1}^M {R_{sc}^{dir,dif}(\gamma ,{\rho_{sc}},{\theta_j},{\phi_i})\sin ({\theta_j})\cos ({\theta_j})} } }}{{\sum\limits_{j = 1}^N {\sum\limits_{i = 1}^M {\sin ({\theta_j})\cos ({\theta_j})} } }} \end{equation} -There is an assumption in both of these formulas that the brightness of the sky (or ground) diffuse radiation is the same for all directions. For this reason, the solar azimuth angle \(\phi\) and solar altitude angle \(\theta\) have a range of 0 to \({\pi \mathord{\left/ {\vphantom {\pi 2}} \right. } 2}\) ~(instead of \({{ - \pi } \mathord{\left/ {\vphantom {{ - \pi } 2}} \right. } 2}\) ~to \({{ + \pi } \mathord{\left/ {\vphantom {{ + \pi } 2}} \right. } 2}\) ) because the screen is assumed to have identical optical properties for radiation incident at the same angles on either side of a vertical or horizontal plane perpendicular to the screen. +There is an assumption in both of these formulas that the brightness of the sky (or ground) diffuse radiation is the same for all directions. For this reason, the solar azimuth angle \(\phi\) and solar altitude angle \(\theta\) have a range of 0 to \({\frac{\pi}{2}}\) ~(instead of \({\frac{{ - \pi }}{2}}\) ~to \({\frac{{ + \pi }}{2}}\) ) because the screen is assumed to have identical optical properties for radiation incident at the same angles on either side of a vertical or horizontal plane perpendicular to the screen. Since the screen direct transmittance model is derived with respect to a different coordinate axis labeling, a coordinate transform is needed in order to calculate the diffuse optical properties. In these calculations, for each spherical solar coordinates (\(\theta\), \(\phi\)) we need the corresponding screen relative solar coordinates (\(\alpha\)', \(\varphi\)') to evaluate the screen transmittance model for that direction. @@ -1913,7 +1929,7 @@ \subsubsection{Solar Radiation Transmitted and Absorbed by a Window/Screen Syste Let the direct solar incident on the window be \begin{equation} -{I_{dir,inc}} = {f_{sunlit}}{I_{dir,norm}}\cos \phi {\rm{ }}(W/{m^2}) +{I_{dir,inc}} = {f_{sunlit}}{I_{dir,norm}}\cos \phi {\mathrm{ }}(W/{m^2}) \end{equation} where \({f_{sunlit}}\) is the fraction of the window that is sunlit (determined by the shadowing calculations), \({I_{dir,norm}}\) is the direct normal solar irradiance, and \(\phi\) ~is the angle of incidence. @@ -1937,7 +1953,7 @@ \subsubsection{Solar Radiation Transmitted and Absorbed by a Window/Screen Syste \emph{Direct solar absorbed by glass layers:} \begin{equation} -{I_{dir,inc}}A_{gl,j,f}^{dir,sys}(\phi ,{\phi_s}),{\rm{ }}~j = 1,N +{I_{dir,inc}}A_{gl,j,f}^{dir,sys}(\phi ,{\phi_s}),{\mathrm{ }}~j = 1,N \end{equation} \emph{Diffuse solar entering zone from incident diffuse solar:} @@ -1955,7 +1971,7 @@ \subsubsection{Solar Radiation Transmitted and Absorbed by a Window/Screen Syste \emph{Diffuse solar absorbed by glass layers:} \begin{equation} -({I_{sky,inc}} + {I_{gnd,inc}})A_{gl,j,f}^{dif,sys},{\rm{ }}~j = 1,N{\rm{ }} +({I_{sky,inc}} + {I_{gnd,inc}})A_{gl,j,f}^{dif,sys},{\mathrm{ }}~j = 1,N{\mathrm{ }} \end{equation} \subsection{Complex Fenestration Calculation Module}\label{complex-fenestration-calculation-module} @@ -1973,28 +1989,28 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe A general scattering fenestration system is characterized by BTDFs and BRDFs, which were described above.~ Given an incident direction \textbf{\emph{p}}\(^{(I)}\), and an incident irradiance \emph{E}( \textbf{\emph{p}}\(^{(I)}\)), the transmitted radiance in the outgoing direction \textbf{\emph{p}}\(^{(T)}\) is: \begin{equation} -S({{\bf{p}}^{{\rm{(T)}}}}) = {\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}})dE({{\bf{p}}^{{\rm{(I)}}}}) +S({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})dE({{\mathbf{p}}^{{\mathrm{(I)}}}}) \label{eq:SofptotheTDiffEq} \end{equation} where the function $\mathcal{T}$ is the BTDF.~ In the absence of a source of effectively plane-parallel incident radiation (such as direct sunlight) d\emph{E(\textbf{p}}\(^{(I)}\)\emph{)} is an infinitesimal quantity, and the right side of the equation must be summed over the irradiance from all incident directions to produce the outgoing radiance: \begin{equation} -S({{\bf{p}}^{{\rm{(T)}}}}) = \int {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}})\frac{{dE({{\bf{p}}^{{\rm{(I)}}}})}}{{d\Omega }}d\Omega } +S({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \int {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})\frac{{dE({{\mathbf{p}}^{{\mathrm{(I)}}}})}}{{d\Omega }}d\Omega } \label{eq:SofptotheTIntegral} \end{equation} A similar equation gives the reflected radiance in the direction \textbf{\emph{p}}\(^{(R)}\): \begin{equation} -S({{\bf{p}}^{{\rm{(R)}}}}) = \int {{\mathop{\rm \mathcal{R}}\nolimits} ({{\bf{p}}^{{\rm{(R)}}}},{{\bf{p}}^{{\rm{(I)}}}})\frac{{dE({{\bf{p}}^{{\rm{(I)}}}})}}{{d\Omega }}d\Omega } +S({{\mathbf{p}}^{{\mathrm{(R)}}}}) = \int {\operatorname{\mathcal{R}} ({{\mathbf{p}}^{{\mathrm{(R)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})\frac{{dE({{\mathbf{p}}^{{\mathrm{(I)}}}})}}{{d\Omega }}d\Omega } \label{eq:SofptotheREquation} \end{equation} We can express the irradiance in terms of the exterior luminance, S, in that direction: \begin{equation} -dE({{\bf{p}}^{{\rm{(I)}}}})dA = {S^{{\rm{(I)}}}}({{\bf{p}}^{{\rm{(I)}}}})\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}dA +dE({{\mathbf{p}}^{{\mathrm{(I)}}}})dA = {S^{{\mathrm{(I)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}})\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}{dA} \label{eq:dEpIdAEquation} \end{equation} @@ -2007,7 +2023,7 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe which allows one to express the transmittance of exterior radiation to produce the total outgoing radiance from the fenestration into the room in a particular direction: \begin{equation} -S({{\bf{p}}^{{\rm{(T)}}}}) = \int\limits_{{\Omega ^{{\rm{(I)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}}){S^{{\rm{(I)}}}}({{\bf{p}}^{{\rm{(I)}}}})\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} +S({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \int\limits_{{\Omega ^{{\mathrm{(I)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}){S^{{\mathrm{(I)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}})\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \label{eq:SofPtotheTEquation} \end{equation} @@ -2016,11 +2032,11 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe The radiance in Equation~\ref{eq:SofPtotheTEquation} is emitted from the back side of the element of area shown in Figure~\ref{fig:irradiance-geometry}.~ Considering a second surface, viewing the back side of the fenestration system, we can use Equation~\ref{eq:dEpIdAEquation} to calculate the irradiance on surface 2: \begin{equation} -{E^{{\rm{(2)}}}}({{\bf{p}}^{{\rm{(T)}}}})d{A^{{\rm{(2)}}}} = {S^{{\rm{(T)}}}}({{\bf{p}}^{{\rm{(T)}}}})\left( { - {{\bf{p}}^{{\rm{(T)}}}}\cdot {{\bf{n}}^{{\rm{(2)}}}}} \right)d{\Omega ^{{\rm{(I,2)}}}}d{A^{{\rm{(2)}}}} +{E^{{\mathrm{(2)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}})d{A^{{\mathrm{(2)}}}} = {S^{{\mathrm{(T)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}})\left( { - {{\mathbf{p}}^{{\mathrm{(T)}}}}\cdot {{\mathbf{n}}^{{\mathrm{(2)}}}}} \right)d{\Omega ^{{\mathrm{(I,2)}}}}d{A^{{\mathrm{(2)}}}} \label{eq:E2pTdA2Equation1} \end{equation} -This expression, however, contains a number of new quantities, such as \(d{\Omega ^{{\rm{(I,2)}}}}\), the element of solid angle for incoming radiation as seen from surface 2.~ We can sort this out by referring to Figure~\ref{fig:radiation-exchange-between-two-surface} and making some changes and clarifications in notation. +This expression, however, contains a number of new quantities, such as \(d{\Omega ^{{\mathrm{(I,2)}}}}\), the element of solid angle for incoming radiation as seen from surface 2.~ We can sort this out by referring to Figure~\ref{fig:radiation-exchange-between-two-surface} and making some changes and clarifications in notation. \begin{figure}[hbtp] % fig 91 \centering @@ -2028,91 +2044,91 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe \caption{Radiation exchange between two surface elements \protect \label{fig:radiation-exchange-between-two-surface}} \end{figure} -In this figure, we consider that surface 1 is the back side of the fenestration system, and surface 2 is some other surface in the room that receives the transmitted solar radiation through the fenestration system.~ We consider infinitesimal elements \emph{dA}\(^{(1)}\) and \emph{dA}\(^{(2)}\) of the two surfaces, and define vector surface elements by \emph{d\textbf{A}}\textbf{\(^{(}\)}\(^{1)}\) = \emph{dA}\(^{(1)}\)\textbf{\emph{n}}\(^{(1)}\) and \emph{d\textbf{A}}\textbf{\(^{(}\)}\(^{1)}\) = \emph{dA}\(^{(1)}\)\textbf{\emph{n}}\(^{(1)}\).~ The quantity \textbf{\emph{r}} in the figure denotes a vector pointing from surface 1 to surface 2, the magnitude of which is the distance \emph{r} between the two surface elements.~ This is used to define two unit vectors: \({{\bf{\hat r}}^{{\rm{(1)}}}} = {{\bf{r}} \mathord{\left/ {\vphantom {{\bf{r}} r}} \right. } r}\) ~is a unit vector pointing from surface element 1 to surface element 2, and \({{\bf{\hat r}}^{{\rm{(2)}}}} = - {{\bf{r}} \mathord{\left/ {\vphantom {{\bf{r}} r}} \right. } r}\) ~is a unit vector pointing from surface element 2 back to surface element 1.~ The unit vector \textbf{\emph{p}}\(^{(T)}\) in Equation~\ref{eq:SofPtotheTEquation} is in fact \({{\bf{\hat r}}^{{\rm{(1)}}}}\) .~ The shaded quadrilaterals in the figure are the projected area elements normal to \textbf{\emph{r}}.~ Since the areas are infinitesimal, all the radiation leaving one surface element and arriving at the other will be in the direction \textbf{\emph{r}}, so that all radiation will be contained within the parallelepiped defined by the dashed lines (parallel to \textbf{\emph{r}}) joining the corners of the two surface elements.~ It follows that the area \emph{dA}\(^{(2)}\)~ is not independent of \emph{dA}\(^{(1)}\).~ The figure also shows the solid angle that has been denoted \emph{d}\(\Omega\)\(^{(I,2)}\) above, which is the solid angle subtended by \emph{dA}\(^{(1)}\) as seen from \emph{dA}\(^{(2)}\) and is given by: +In this figure, we consider that surface 1 is the back side of the fenestration system, and surface 2 is some other surface in the room that receives the transmitted solar radiation through the fenestration system.~ We consider infinitesimal elements \emph{dA}\(^{(1)}\) and \emph{dA}\(^{(2)}\) of the two surfaces, and define vector surface elements by \emph{d\textbf{A}}\textbf{\(^{(}\)}\(^{1)}\) = \emph{dA}\(^{(1)}\)\textbf{\emph{n}}\(^{(1)}\) and \emph{d\textbf{A}}\textbf{\(^{(}\)}\(^{1)}\) = \emph{dA}\(^{(1)}\)\textbf{\emph{n}}\(^{(1)}\).~ The quantity \textbf{\emph{r}} in the figure denotes a vector pointing from surface 1 to surface 2, the magnitude of which is the distance \emph{r} between the two surface elements.~ This is used to define two unit vectors: \({{\mathbf{\hat r}}^{{\mathrm{(1)}}}} = {\frac{{\mathbf{r}}}{r}}\) ~is a unit vector pointing from surface element 1 to surface element 2, and \({{\mathbf{\hat r}}^{{\mathrm{(2)}}}} = - {\frac{{\mathbf{r}}}{r}}\) ~is a unit vector pointing from surface element 2 back to surface element 1.~ The unit vector \textbf{\emph{p}}\(^{(T)}\) in Equation~\ref{eq:SofPtotheTEquation} is in fact \({{\mathbf{\hat r}}^{{\mathrm{(1)}}}}\) .~ The shaded quadrilaterals in the figure are the projected area elements normal to \textbf{\emph{r}}.~ Since the areas are infinitesimal, all the radiation leaving one surface element and arriving at the other will be in the direction \textbf{\emph{r}}, so that all radiation will be contained within the parallelepiped defined by the dashed lines (parallel to \textbf{\emph{r}}) joining the corners of the two surface elements.~ It follows that the area \emph{dA}\(^{(2)}\)~ is not independent of \emph{dA}\(^{(1)}\).~ The figure also shows the solid angle that has been denoted \emph{d}\(\Omega\)\(^{(I,2)}\) above, which is the solid angle subtended by \emph{dA}\(^{(1)}\) as seen from \emph{dA}\(^{(2)}\) and is given by: \begin{equation} -d{\Omega ^{{\rm{(I,2)}}}} = \frac{{d{{\bf{A}}^{{\rm{(1)}}}} \cdot {{\bf{r}}^{{\rm{(1)}}}}}}{{{r^2}}} +d{\Omega ^{{\mathrm{(I,2)}}}} = \frac{{d{{\mathbf{A}}^{{\mathrm{(1)}}}} \cdot {{\mathbf{r}}^{{\mathrm{(1)}}}}}}{{{r^2}}} \label{eq:dOmegaI2Equation} \end{equation} The net power from surface element 1 to surface element 2 is: \begin{equation} -{W^{(1 \to 2)}} = \left( {{S^{{\rm{(1)}}}}({{{\bf{\hat r}}}^{{\rm{(1)}}}}) - {S^{{\rm{(2)}}}}({{{\bf{\hat r}}}^{{\rm{(2)}}}})} \right)\frac{{\left( {d{{\bf{A}}^{{\rm{(1)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(1)}}}}} \right)\left( {d{{\bf{A}}^{{\rm{(2)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(2)}}}}} \right)}}{{{r^2}}} +{W^{(1 \to 2)}} = \left( {{S^{{\mathrm{(1)}}}}({{{\mathbf{\hat r}}}^{{\mathrm{(1)}}}}) - {S^{{\mathrm{(2)}}}}({{{\mathbf{\hat r}}}^{{\mathrm{(2)}}}})} \right)\frac{{\left( {d{{\mathbf{A}}^{{\mathrm{(1)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(1)}}}}} \right)\left( {d{{\mathbf{A}}^{{\mathrm{(2)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(2)}}}}} \right)}}{{{r^2}}} \end{equation} -where \({S^{{\rm{(1)}}}}({{\bf{\hat r}}^{{\rm{(1)}}}})\) ~is the radiance leaving surface element 1 in the direction of surface element 2, and vice-versa for \({S^{{\rm{(2)}}}}({{\bf{\hat r}}^{{\rm{(2)}}}})\) .~ In this case, the latter is zero and the former is the quantity called \emph{S}\(^{(T)}\)(\textbf{\emph{p}}\(^{(T)}\)) above.~ Given Equation~\ref{eq:dOmegaI2Equation}, we can recognize the quantity multiplying the radiance as the solid angle \emph{d}\(\Omega\)\(^{(I,2)}\) times the projected area of surface element 2 perpendicular to \textbf{\emph{r}}.~ But the expression is symmetrical in the two surface elements, so we could also express it as: +where \({S^{{\mathrm{(1)}}}}({{\mathbf{\hat r}}^{{\mathrm{(1)}}}})\) ~is the radiance leaving surface element 1 in the direction of surface element 2, and vice-versa for \({S^{{\mathrm{(2)}}}}({{\mathbf{\hat r}}^{{\mathrm{(2)}}}})\) .~ In this case, the latter is zero and the former is the quantity called \emph{S}\(^{(T)}\)(\textbf{\emph{p}}\(^{(T)}\)) above.~ Given Equation~\ref{eq:dOmegaI2Equation}, we can recognize the quantity multiplying the radiance as the solid angle \emph{d}\(\Omega\)\(^{(I,2)}\) times the projected area of surface element 2 perpendicular to \textbf{\emph{r}}.~ But the expression is symmetrical in the two surface elements, so we could also express it as: \begin{equation} -{W^{(1 \to 2)}} = {S^{{\rm{(T)}}}}({{\bf{p}}^{{\rm{(T)}}}})\left( {d{{\bf{A}}^{{\rm{(1)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(1)}}}}} \right)d{\Omega ^{{\rm{(T)}}}} +{W^{(1 \to 2)}} = {S^{{\mathrm{(T)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}})\left( {d{{\mathbf{A}}^{{\mathrm{(1)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(1)}}}}} \right)d{\Omega ^{{\mathrm{(T)}}}} \end{equation} where \begin{equation} -d{\Omega ^{{\rm{(T)}}}} = \frac{{\left( {d{{\bf{A}}^{{\rm{(2)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(2)}}}}} \right)}}{{{r^2}}} +d{\Omega ^{{\mathrm{(T)}}}} = \frac{{\left( {d{{\mathbf{A}}^{{\mathrm{(2)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(2)}}}}} \right)}}{{{r^2}}} \end{equation} The superscript (T) is used here because the solid angle element pertains to the direction \textbf{\emph{p}}\(^{(T)}\).~ In the particular case under discussion that restricts attention to those directions for which the outgoing radiation strikes surface element 2.~ We can now rewrite Equation~\ref{eq:E2pTdA2Equation1} as: \begin{equation} -{E^{{\rm{(2)}}}}({{\bf{p}}^{{\rm{(T)}}}})d{A^{{\rm{(2)}}}} = {S^{{\rm{(T)}}}}({{\bf{p}}^{{\rm{(T)}}}})\left( {{{\bf{n}}^{{\rm{(1)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(1)}}}}} \right)d{\Omega ^{{\rm{(T)}}}}d{A^{{\rm{(1)}}}} +{E^{{\mathrm{(2)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}})d{A^{{\mathrm{(2)}}}} = {S^{{\mathrm{(T)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}})\left( {{{\mathbf{n}}^{{\mathrm{(1)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(1)}}}}} \right)d{\Omega ^{{\mathrm{(T)}}}}d{A^{{\mathrm{(1)}}}} \label{eq:E2pTdA2Equation} \end{equation} -and since, as can readily be seen from Figure~\ref{fig:radiation-exchange-between-two-surface}, \(\left( {d{{\bf{A}}^{{\rm{(1)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(1)}}}}} \right) = \left( {d{{\bf{A}}^{{\rm{(2)}}}} \cdot {{{\bf{\hat r}}}^{{\rm{(2)}}}}} \right)\) , this becomes: +and since, as can readily be seen from Figure~\ref{fig:radiation-exchange-between-two-surface}, \(\left( {d{{\mathbf{A}}^{{\mathrm{(1)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(1)}}}}} \right) = \left( {d{{\mathbf{A}}^{{\mathrm{(2)}}}} \cdot {{{\mathbf{\hat r}}}^{{\mathrm{(2)}}}}} \right)\) , this becomes: \begin{equation} -{E^{{\rm{(2)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = {S^{{\rm{(T)}}}}({{\bf{p}}^{{\rm{(T)}}}})\left( { - {{\bf{p}}^{{\rm{(T)}}}} \cdot {{\bf{n}}^{{\rm{(2)}}}}} \right)d{\Omega ^{{\rm{(T)}}}} +{E^{{\mathrm{(2)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = {S^{{\mathrm{(T)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}})\left( { - {{\mathbf{p}}^{{\mathrm{(T)}}}} \cdot {{\mathbf{n}}^{{\mathrm{(2)}}}}} \right)d{\Omega ^{{\mathrm{(T)}}}} \end{equation} Substituting Equation~\ref{eq:SofPtotheTEquation} for \emph{S}\(^{(T)}\)(\textbf{\emph{p}}\(^{(T)}\)), we obtain a propagation equation for outside radiation passing through the window and arriving at surface element 2: \begin{equation} -E^{(2)}(\bf{p}^{(T)}) = \int_{\Omega^{(I)}} - \rm T (\bf{p}^{(T)},\bf{p}^{(I)}) - S^{(I)}(\bf{p}^{(I)})(-\bf{p}^{(I)}\cdot\bf{n}^{(I)}) - d\Omega^{(I)}(-\bf{p}^{(T)}\cdot\bf{n}^{(2)})d\Omega^{(T)} +E^{(2)}(\mathbf{p}^{(T)}) = \int_{\Omega^{(I)}} + \operatorname{T} (\mathbf{p}^{(T)},\mathbf{p}^{(I)}) + S^{(I)}(\mathbf{p}^{(I)})(-\mathbf{p}^{(I)}\cdot\mathbf{n}^{(I)}) + d\Omega^{(I)}(-\mathbf{p}^{(T)}\cdot\mathbf{n}^{(2)})d\Omega^{(T)} \end{equation} or, in terms involving only irradiance: \begin{equation} -{E^{{\rm{(2)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = \int\limits_{{\Omega ^{{\rm{(I)}}}}} {{\mathop{\rm T}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}})E({{\bf{p}}^{{\rm{(I)}}}})d{\Omega ^{{\rm{(I)}}}}} \left( { - {{\bf{p}}^{{\rm{(T)}}}} \cdot {{\bf{n}}^{{\rm{(2)}}}}} \right)d{\Omega ^{{\rm{(T)}}}} +{E^{{\mathrm{(2)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \int\limits_{{\Omega ^{{\mathrm{(I)}}}}} {\operatorname{T} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})E({{\mathbf{p}}^{{\mathrm{(I)}}}})d{\Omega ^{{\mathrm{(I)}}}}} \left( { - {{\mathbf{p}}^{{\mathrm{(T)}}}} \cdot {{\mathbf{n}}^{{\mathrm{(2)}}}}} \right)d{\Omega ^{{\mathrm{(T)}}}} \end{equation} Comparing these two equations with Equations~\ref{eq:SofptotheTDiffEq} and~\ref{eq:SofptotheREquation}, we can see that physically they represent the processes of (a) propagation of radiation outgoing at one surface (initially, the sky ``surface''), where it is characterized by radiance, to incidence on a second surface, characterized by irradiance, followed (b) transmittance, which converts incoming radiation traveling in a given direction to outgoing radiation in a different set of directions, characterized again by radiance.~ We can make the former of these processes explicit by defining a propagation function.~ Considering the first surface element to be located at a position specified by the vector \textbf{\emph{x}}\(^{(1)}\) and the second at \textbf{\emph{x}}\(^{(2)}\), then radiation leaving surface 1 in a direction \textbf{\emph{p}}\(^{(1)}\) and arriving at surface 2 in a direction \textbf{\emph{p}}\(^{(2)}\) produces an irradiance given by: \begin{equation} -{E^{(2)}}({{\bf{p}}^{{\rm{(2)}}}}) = \int {\mathcal{L}({{\bf{x}}^{{\rm{(2)}}}},{{\bf{p}}^{{\rm{(2)}}}};{{\bf{x}}^{{\rm{(1)}}}},{{\bf{p}}^{{\rm{(1)}}}}){S^{{\rm{(1)}}}}({{\bf{p}}^{{\rm{(1)}}}})} d{\Omega ^{{\rm{(1)}}}} +{E^{(2)}}({{\mathbf{p}}^{{\mathrm{(2)}}}}) = \int {\mathcal{L}({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{p}}^{{\mathrm{(2)}}}};{{\mathbf{x}}^{{\mathrm{(1)}}}},{{\mathbf{p}}^{{\mathrm{(1)}}}}){S^{{\mathrm{(1)}}}}({{\mathbf{p}}^{{\mathrm{(1)}}}})} d{\Omega ^{{\mathrm{(1)}}}} \label{eq:E2p2Equation} \end{equation} where the propagation function $\mathcal{L}$ is defined by: \begin{equation} -\mathcal{L}({{\bf{x}}^{{\rm{(2)}}}},{{\bf{p}}^{{\rm{(2)}}}};{{\bf{x}}^{{\rm{(1)}}}},{{\bf{p}}^{{\rm{(1)}}}}) = \left( { - {{\bf{p}}^{{\rm{(2)}}}}\cdot {{\bf{n}}^{{\rm{(2)}}}}} \right)d{\Omega ^{{\rm{(2)}}}}\delta ({{\bf{p}}^{{\rm{(2)}}}},{{\bf{p}}^{{\rm{(1)}}}})\delta ({{\bf{x}}^{{\rm{(2)}}}},{{\bf{x}}^{{\rm{(1)}}}} + {\bf{r}}) +\mathcal{L}({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{p}}^{{\mathrm{(2)}}}};{{\mathbf{x}}^{{\mathrm{(1)}}}},{{\mathbf{p}}^{{\mathrm{(1)}}}}) = \left( { - {{\mathbf{p}}^{{\mathrm{(2)}}}}\cdot {{\mathbf{n}}^{{\mathrm{(2)}}}}} \right)d{\Omega ^{{\mathrm{(2)}}}}\delta ({{\mathbf{p}}^{{\mathrm{(2)}}}},{{\mathbf{p}}^{{\mathrm{(1)}}}})\delta ({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{x}}^{{\mathrm{(1)}}}} + {\mathbf{r}}) \label{eq:ScriptLEquation} \end{equation} The spatial dependence is inserted to guarantee that the geometrical relations in Figure~\ref{fig:radiation-exchange-between-two-surface} are preserved.~ The delta functions in direction and spatial vectors are the mathematically standard \(\delta\)-distributions defined so that: \begin{equation} -\int {\delta ({{\bf{p}}^{{\rm{(2)}}}},{{\bf{p}}^{{\rm{(1)}}}})} f({{\bf{p}}^{{\rm{(1)}}}})d{\Omega ^{{\rm{(1)}}}} = f({{\bf{p}}^{{\rm{(2)}}}}) +\int {\delta ({{\mathbf{p}}^{{\mathrm{(2)}}}},{{\mathbf{p}}^{{\mathrm{(1)}}}})} f({{\mathbf{p}}^{{\mathrm{(1)}}}})d{\Omega ^{{\mathrm{(1)}}}} = f({{\mathbf{p}}^{{\mathrm{(2)}}}}) \label{eq:deltap2p1fp1dOmega1Equation} \end{equation} \begin{equation} -\int\limits_\Omega {\delta ({{\bf{p}}^{{\rm{(2)}}}},{{\bf{p}}^{{\rm{(1)}}}})d{\Omega ^{{\rm{(1)}}}}} = \left\{ {\begin{array}{*{20}{c}}1&{{{\bf{p}}^{{\rm{(2)}}}} \in \Omega }\\0&{{{\bf{p}}^{{\rm{(2)}}}} \notin \Omega }\end{array}} \right. +\int\limits_\Omega {\delta ({{\mathbf{p}}^{{\mathrm{(2)}}}},{{\mathbf{p}}^{{\mathrm{(1)}}}})d{\Omega ^{{\mathrm{(1)}}}}} = \left\{ {\begin{array}{ccc}1&{{{\mathbf{p}}^{{\mathrm{(2)}}}} \in \Omega }\\0&{{{\mathbf{p}}^{{\mathrm{(2)}}}} \notin \Omega }\end{array}} \right. \label{eq:deltap2p1dOmega1Integral} \end{equation} \begin{equation} -\int {\delta ({{\bf{x}}^{{\rm{(2)}}}},{{\bf{x}}^{{\rm{(1)}}}})} f({{\bf{x}}^{{\rm{(1)}}}})d{A^{{\rm{(1)}}}} = f({{\bf{x}}^{{\rm{(2)}}}}) +\int {\delta ({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{x}}^{{\mathrm{(1)}}}})} f({{\mathbf{x}}^{{\mathrm{(1)}}}})d{A^{{\mathrm{(1)}}}} = f({{\mathbf{x}}^{{\mathrm{(2)}}}}) \end{equation} \begin{equation} -\int\limits_A {\delta ({{\bf{x}}^{{\rm{(2)}}}},{{\bf{x}}^{{\rm{(1)}}}})d{A^{{\rm{(1)}}}}} = \left\{ {\begin{array}{*{20}{c}}1&{{{\bf{x}}^{{\rm{(2)}}}} \in A}\\0&{{{\bf{x}}^{{\rm{(2)}}}} \notin A}\end{array}} \right. +\int\limits_A {\delta ({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{x}}^{{\mathrm{(1)}}}})d{A^{{\mathrm{(1)}}}}} = \left\{ {\begin{array}{ccc}1&{{{\mathbf{x}}^{{\mathrm{(2)}}}} \in A}\\0&{{{\mathbf{x}}^{{\mathrm{(2)}}}} \notin A}\end{array}} \right. \end{equation} for an arbitrary function \emph{f}.~ {[}In Equations~\ref{eq:deltap2p1fp1dOmega1Equation} and~\ref{eq:deltap2p1dOmega1Integral}, the integration is assumed to be over all possible values of either direction or position, so that the vectors \textbf{\emph{p}}\(^{(2)}\) and \textbf{\emph{x}}\(^{(2)}\) are necessarily within the domain of integration.{]} @@ -2128,69 +2144,69 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe The method begins by approximating the integrals in Equations~\ref{eq:dEpIdAEquation} and~\ref{eq:E2p2Equation} by finite sums.~ It does this by defining a set of finite solid angle elements \{\(\Delta {\Omega_i}\)\} that covers the relevant solid angle hemisphere (whether incident, transmitted or reflected directions).~ Each solid angle element is characterized by a direction \textbf{\emph{p}}\emph{\(_{i}\)}, and it is assumed that this may be substituted for any direction within the solid angle element.~ This set of solid angle elements and corresponding directions is termed a basis.~ Note that, since \textbf{\emph{p}}\emph{\(_{i}\)} is a two-dimensional vector, enumerating the solid angle elements with a single index \emph{i} implicitly includes specifying an ordering of the direction vectors.~ Equation~\ref{eq:SofPtotheTEquation} then becomes: \begin{equation} -S({{\bf{p}}_j}^{{\rm{(T)}}}) = \sum\limits_i {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}_j}^{{\rm{(T)}}},{{\bf{p}}_i}^{{\rm{(I)}}}){S^{{\rm{(I)}}}}({{\bf{p}}_i}^{{\rm{(I)}}})\left( { - {{\bf{p}}_i}^{{\rm{(I)}}}\cdot {\bf{n}}} \right)\Delta {\Omega_i}^{{\rm{(I)}}}} +S({{\mathbf{p}}_j}^{{\mathrm{(T)}}}) = \sum\limits_i {\operatorname{\mathcal{T}} ({{\mathbf{p}}_j}^{{\mathrm{(T)}}},{{\mathbf{p}}_i}^{{\mathrm{(I)}}}){S^{{\mathrm{(I)}}}}({{\mathbf{p}}_i}^{{\mathrm{(I)}}})\left( { - {{\mathbf{p}}_i}^{{\mathrm{(I)}}}\cdot {\mathbf{n}}} \right)\Delta {\Omega_i}^{{\mathrm{(I)}}}} \label{eq:SofptotheTmodifiedEquation} \end{equation} and Equation~\ref{eq:E2p2Equation} becomes: \begin{equation} -{E^{(2)}}({{\bf{p}}_j}^{{\rm{(2)}}}) = \sum\limits_i {\int\limits_{\Delta {\Omega_i}} {\mathcal{L}({{\bf{x}}^{{\rm{(2)}}}},{{\bf{p}}_j}^{{\rm{(2)}}};{{\bf{x}}^{{\rm{(1)}}}},{{\bf{p}}_i}^{{\rm{(1)}}}){S^{{\rm{(1)}}}}({{\bf{p}}_i}^{{\rm{(1)}}})d{\Omega ^{{\rm{(1)}}}}} } +{E^{(2)}}({{\mathbf{p}}_j}^{{\mathrm{(2)}}}) = \sum\limits_i {\int\limits_{\Delta {\Omega_i}} {\mathcal{L}({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{p}}_j}^{{\mathrm{(2)}}};{{\mathbf{x}}^{{\mathrm{(1)}}}},{{\mathbf{p}}_i}^{{\mathrm{(1)}}}){S^{{\mathrm{(1)}}}}({{\mathbf{p}}_i}^{{\mathrm{(1)}}})d{\Omega ^{{\mathrm{(1)}}}}} } \end{equation} Referring to the definition of the propagation function in Equation~\ref{eq:ScriptLEquation} and properties of the \(\delta\)-distribution in Equation~\ref{eq:deltap2p1dOmega1Integral}, we see that the integrals in the summation will all be zero, except when \textbf{\emph{p}}\emph{\(_{j}\)}\(^{(2)}\) is contained in the solid angle element \(\Delta\)\(\Omega\)\emph{\(_{i}\)}.~ In that case the integration produces \textbf{\emph{p}}\emph{\(_{i}\)}\(^{(1)}\) = \textbf{\emph{p}}\emph{\(_{j}\)}\(^{(2)}\).~ We can retain the formal summation by utilizing the finite-dimensional form of the \(\delta\)-distribution, known as the Kronicker delta, \(\delta\)\emph{\(_{ij}\)}: \begin{equation} -{\delta_{ij}} = \left\{ {\begin{array}{*{20}{c}}1&{i = j}\\0&{i \ne j}\end{array}} \right. +{\delta_{ij}} = \left\{ {\begin{array}{ccc}1&{i = j}\\0&{i \ne j}\end{array}} \right. \end{equation} Then, the integral becomes: \begin{equation} -\int\limits_{\Delta {\Omega_i}} {\mathcal{L}({{\bf{x}}^{{\rm{(2)}}}},{{\bf{p}}_j}^{{\rm{(2)}}};{{\bf{x}}^{{\rm{(1)}}}},{{\bf{p}}_i}^{{\rm{(1)}}}){S^{{\rm{(1)}}}}({{\bf{p}}_i}^{{\rm{(1)}}})d{\Omega ^{{\rm{(1)}}}}} = \lambda ( - {{\bf{p}}_j}^{{\rm{(2)}}}){\delta_{ij}} \cdot \delta ({{\bf{x}}^{{\rm{(2)}}}},{{\bf{x}}^{{\rm{(1)}}}} + {\bf{r}}) +\int\limits_{\Delta {\Omega_i}} {\mathcal{L}({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{p}}_j}^{{\mathrm{(2)}}};{{\mathbf{x}}^{{\mathrm{(1)}}}},{{\mathbf{p}}_i}^{{\mathrm{(1)}}}){S^{{\mathrm{(1)}}}}({{\mathbf{p}}_i}^{{\mathrm{(1)}}})d{\Omega ^{{\mathrm{(1)}}}}} = \lambda ( - {{\mathbf{p}}_j}^{{\mathrm{(2)}}}){\delta_{ij}} \cdot \delta ({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{x}}^{{\mathrm{(1)}}}} + {\mathbf{r}}) \label{eq:ScriptLx2pj2x1pi1S1pi1Integral} \end{equation} where the function \(\lambda\) is defined as: \begin{equation} -{\lambda ^{{\rm{(s)}}}}({{\bf{p}}_j}) = \left( {{{\bf{p}}_j}\cdot {{\bf{n}}^{{\rm{(s)}}}}} \right)\Delta {\Omega_j} +{\lambda ^{{\mathrm{(s)}}}}({{\mathbf{p}}_j}) = \left( {{{\mathbf{p}}_j}\cdot {{\mathbf{n}}^{{\mathrm{(s)}}}}} \right)\Delta {\Omega_j} \label{eq:lambdaspjEquation} \end{equation} and the superscript (s) refers to the surface. -The LBNL method, which focuses on glazing systems consisting of plane-parallel layers, makes particular assumptions that allow one to ignore the spatial dependence of $\mathcal{L}$.~ Since the only effect of the function \(\delta ({{\bf{x}}^{{\rm{(2)}}}},{{\bf{x}}^{{\rm{(1)}}}} + {\bf{r}})\)~in Equation~\ref{eq:ScriptLEquation} is to require that if the expression is formally integrated over two separate surface areas, only the parts of the integration that satisfy the geometric constraints will contribute (in effect, the integration is over only one of the surfaces), we will drop the spatial dependence in the present discussion and replace it later when we consider the total energy transfer between different surfaces. +The LBNL method, which focuses on glazing systems consisting of plane-parallel layers, makes particular assumptions that allow one to ignore the spatial dependence of $\mathcal{L}$.~ Since the only effect of the function \(\delta ({{\mathbf{x}}^{{\mathrm{(2)}}}},{{\mathbf{x}}^{{\mathrm{(1)}}}} + {\mathbf{r}})\)~in Equation~\ref{eq:ScriptLEquation} is to require that if the expression is formally integrated over two separate surface areas, only the parts of the integration that satisfy the geometric constraints will contribute (in effect, the integration is over only one of the surfaces), we will drop the spatial dependence in the present discussion and replace it later when we consider the total energy transfer between different surfaces. Equations~\ref{eq:ScriptLx2pj2x1pi1S1pi1Integral} (without the delta distribution in \textbf{\emph{x}}) and~\ref{eq:lambdaspjEquation} are then considered to define the components of a diagonal matrix: \begin{equation} -\begin{array}{*{20}{c}}{{\bf{\Lambda }^{{\rm{(s)}}}} = \left( {{\Lambda ^{{\rm{(s)}}}}_{ij}} \right)}&{{\rm{where}}}&{\Lambda_{ij}^{{\rm{(s)}}} = \left( {{{\bf{p}}_j}\cdot {{\bf{n}}^{{\rm{(s)}}}}} \right)\Delta {\Omega_j}{\delta_{ij}}}\end{array} +\begin{array}{ccc}{{\mathbf{\Lambda }^{{\mathrm{(s)}}}} = \left( {{\Lambda ^{{\mathrm{(s)}}}}_{ij}} \right)}&{{\mathrm{where}}}&{\Lambda_{ij}^{{\mathrm{(s)}}} = \left( {{{\mathbf{p}}_j}\cdot {{\mathbf{n}}^{{\mathrm{(s)}}}}} \right)\Delta {\Omega_j}{\delta_{ij}}}\end{array} \label{eq:LambdasEquation} \end{equation} Considering the radiance in the various basis directions to be the components of a vector: \begin{equation} -\bf{S} = \left( +\mathbf{S} = \left( \begin{array}{c} S_1 \\ ... \\ S_j \\ ... \end{array} \right) \text{where~} - S_j = S(\bf{p}_j) + S_j = S(\mathbf{p}_j) \end{equation} Equation~\ref{eq:SofPtotheTEquation} becomes: \begin{equation} -\begin{array}{*{20}{c}}{{S^{{\rm{(T)}}}}_j = \sum\limits_i {{T_{ji}}} \sum\limits_k {{\Lambda_{ik}}} {S_k}}&{{\rm{where}}}&{{T_{ji}} = {\mathcal{T}} ({{\bf{p}}_j}^{{\rm{(T)}}},{{\bf{p}}_i}^{{\rm{(I)}}})}\end{array} +\begin{array}{ccc}{{S^{{\mathrm{(T)}}}}_j = \sum\limits_i {{T_{ji}}} \sum\limits_k {{\Lambda_{ik}}} {S_k}}&{{\mathrm{where}}}&{{T_{ji}} = {\mathcal{T}} ({{\mathbf{p}}_j}^{{\mathrm{(T)}}},{{\mathbf{p}}_i}^{{\mathrm{(I)}}})}\end{array} \end{equation} which has the obvious character of a series of matrix multiplications.~ (Note that the superscript (T) here means transmitted, not the matrix operation transpose.)~ Similarly, the reflectance matrix elements are: \begin{equation} -{R_{ij}} = {\mathcal{R}} ({{\bf{p}}^{{\rm{(R)}}}},{{\bf{p}}^{{\rm{(I)}}}}) +{R_{ij}} = {\mathcal{R}} ({{\mathbf{p}}^{{\mathrm{(R)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}) \label{eq:RijEquation} \end{equation} @@ -2203,25 +2219,25 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe \end{array} \right) \text{where} - ~E_i = \frac{dE(\bf{p}_j)}{d\Omega} + ~E_i = \frac{dE(\mathbf{p}_j)}{d\Omega} \end{equation} and Equations~\ref{eq:SofptotheTDiffEq} -~\ref{eq:dEpIdAEquation} can be rewritten as matrix equations: \begin{equation} -{{\bf{S}}^{{\rm{(T)}}}} = {\bf{T}} \cdot {{\bf{E}}^{{\rm{(I)}}}} +{{\mathbf{S}}^{{\mathrm{(T)}}}} = {\mathbf{T}} \cdot {{\mathbf{E}}^{{\mathrm{(I)}}}} \end{equation} \begin{equation} -{{\bf{S}}^{{\rm{(R)}}}} = {\bf{R}} \cdot {{\bf{E}}^{{\rm{(I)}}}} +{{\mathbf{S}}^{{\mathrm{(R)}}}} = {\mathbf{R}} \cdot {{\mathbf{E}}^{{\mathrm{(I)}}}} \end{equation} \begin{equation} -{{\bf{E}}^{{\rm{(I)}}}}{\bf{ = }}{\bf{\Lambda }^{{\rm{(I)}}}} \cdot {{\bf{S}}^{{\rm{(I)}}}} +{{\mathbf{E}}^{{\mathrm{(I)}}}}{\mathbf{ = }}{\mathbf{\Lambda }^{{\mathrm{(I)}}}} \cdot {{\mathbf{S}}^{{\mathrm{(I)}}}} \end{equation} \begin{equation} -{{\bf{S}}^{{\rm{(T)}}}}{\bf{ = T}} \cdot {\bf{\Lambda }^{{\rm{(I)}}}} \cdot {{\bf{S}}^{{\rm{(I)}}}} +{{\mathbf{S}}^{{\mathrm{(T)}}}}{\mathbf{ = T}} \cdot {\mathbf{\Lambda }^{{\mathrm{(I)}}}} \cdot {{\mathbf{S}}^{{\mathrm{(I)}}}} \end{equation} (These are for radiation incident on the front surface of the fenestration; there is a similar set of equations for radiation incident on the back surface and propagating in an opposite sense to that in the above equations.) @@ -2251,11 +2267,11 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe The transmittance and reflectance are overall system properties.~ (For daylighting calculations, one also needs the transmittance and reflectance averaged over the visible spectrum only; the quantities indicated in the table pertain to the entire solar spectrum.)~ For the optical calculations we do not need to know anything about the individual layers making up the fenestration.~ However, the thermal calculation of heat flow through the fenestration requires knowledge of the amount of radiation absorbed in each of the fenestration layers.~ As indicated in the table, we therefore need the in-situ layer absorptance for each layer, referenced to the incident surface.~ This is denoted $A_i^{F,n}$~for the fraction of the $i^{th}$ component of the irradiance incident on the front surface of the fenestration that is absorbed in layer \emph{n}, with a similar quantity, $A_i^{B,n}$, for irradiance incident on the back surface.~ The term ``in-situ layer absorptance'' is used because these are not simply the absorptance of the layer, but include the transmittance and interreflection by other layers of the system prior to the absorptance in layer \emph{n}.~ The absorptance is a row vector, having possibly a different value for each direction of the incident irradiance, so that for an irradiance $E_{i}^{F}$ on the front surface of a fenestration and $E_{i}^{B}$ on the back surface, the power $Q^{n}$ absorbed per unit area in layer \emph{n} would be \begin{equation} -{Q^n} = \sum\limits_i {{\mathop{\rm \mathcal{A}}\nolimits}_i^{F,n}E_i^F} + \sum\limits_j {{\mathop{\rm \mathcal{A}}\nolimits}_j^{B,n}E_j^B} +{Q^n} = \sum\limits_i {\operatorname{\mathcal{A}}_i^{F,n}E_i^F} + \sum\limits_j {\operatorname{\mathcal{A}}_j^{B,n}E_j^B} \label{eq:QnVectorMatrixEquation} \end{equation} -(In the vector/matrix language, \({Q^n} = {\bf{\mathcal{A}}^{F,n}} \cdot {{\bf{E}}^F} + {\bf{\mathcal{A}}^{B,n}} \cdot {{\bf{E}}^B}\) ) +(In the vector/matrix language, \({Q^n} = {\mathbf{\mathcal{A}}^{F,n}} \cdot {{\mathbf{E}}^F} + {\mathbf{\mathcal{A}}^{B,n}} \cdot {{\mathbf{E}}^B}\) ) \subparagraph{Bases and Coordinate Systems}\label{bases-and-coordinate-systems} @@ -2285,69 +2301,69 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Exterior -EnergyPlus models the exterior radiance in two parts, a moving sun radiance \({S^{{\rm{(Sun)}}}}(t)\Delta {\Omega ^{{\rm{(Sun)}}}}\) ~and a constant-shape direction-dependent sky radiance \({S^{{\rm{(Sky)}}}}({\bf{p}},t)\) .~ The intensities of these vary with time.~ For the solar radiation there is a single sky radiance model.~ For daylight calculations the treatment is similar for exterior luminance, except that there are a number of user-selectable sky luminance models.~ Here we will discuss radiance; the treatment of luminance is analogous. +EnergyPlus models the exterior radiance in two parts, a moving sun radiance \({S^{{\mathrm{(Sun)}}}}(t)\Delta {\Omega ^{{\mathrm{(Sun)}}}}\) ~and a constant-shape direction-dependent sky radiance \({S^{{\mathrm{(Sky)}}}}({\mathbf{p}},t)\) .~ The intensities of these vary with time.~ For the solar radiation there is a single sky radiance model.~ For daylight calculations the treatment is similar for exterior luminance, except that there are a number of user-selectable sky luminance models.~ Here we will discuss radiance; the treatment of luminance is analogous. The direct normal solar intensity (at a given time) is: \begin{equation} -{I^{{\rm{(D)}}}}(t) = {S^{{\rm{(Sun)}}}}(t)\Delta {\Omega ^{{\rm{(Sun)}}}} +{I^{{\mathrm{(D)}}}}(t) = {S^{{\mathrm{(Sun)}}}}(t)\Delta {\Omega ^{{\mathrm{(Sun)}}}} \end{equation} and if we let: \begin{equation} -{S^{{\rm{(Sky)}}}}({\bf{p}},t) = {I^{{\rm{(Sky)}}}}(t)s({\bf{p}}) +{S^{{\mathrm{(Sky)}}}}({\mathbf{p}},t) = {I^{{\mathrm{(Sky)}}}}(t)s({\mathbf{p}}) \end{equation} where the shape function for the sky radiance model, \emph{s}, is defined so that: \begin{equation} -\int\limits_{2\pi } {s({\bf{p}})d\Omega } = 1 +\int\limits_{2\pi } {s({\mathbf{p}})d\Omega } = 1 \label{eq:spdOmegaIntegral} \end{equation} then the global solar irradiance on a horizontal surface at a given time is: \begin{equation} -{I^{{\rm{(G)}}}}(t) = {I^{{\rm{(Sky)}}}}(t)\left( {1 - \int\limits_{\Delta {\Omega ^{{\rm{(Sun)}}}}} {s({\bf{p}})d\Omega } } \right) + {I^{{\rm{(D)}}}}(t)\cos {\theta ^{{\rm{(Sun)}}}}(t) +{I^{{\mathrm{(G)}}}}(t) = {I^{{\mathrm{(Sky)}}}}(t)\left( {1 - \int\limits_{\Delta {\Omega ^{{\mathrm{(Sun)}}}}} {s({\mathbf{p}})d\Omega } } \right) + {I^{{\mathrm{(D)}}}}(t)\cos {\theta ^{{\mathrm{(Sun)}}}}(t) \end{equation} It must be understood that in Equation~\ref{eq:spdOmegaIntegral} the integration region 2\(\pi\) means integration over the sky hemisphere and that \emph{s(\textbf{p})} is zero for upward-going directions. -With the sky radiance shape \emph{s(\textbf{p})} specified in the EnergyPlus code, the angular size of the sun \(\Delta {\Omega ^{{\rm{(Sun)}}}}\) ~known, and the solar zenith angle \({\theta ^{{\rm{(Sun)}}}}(t)\) ~calculated in the code, the two hourly input quantities \emph{I}\(^{(D)}\)\emph{(t)} and \emph{I}\(^{(G)}\)\emph{(t)} determine the exterior radiance for any given hour. +With the sky radiance shape \emph{s(\textbf{p})} specified in the EnergyPlus code, the angular size of the sun \(\Delta {\Omega ^{{\mathrm{(Sun)}}}}\) ~known, and the solar zenith angle \({\theta ^{{\mathrm{(Sun)}}}}(t)\) ~calculated in the code, the two hourly input quantities \emph{I}\(^{(D)}\)\emph{(t)} and \emph{I}\(^{(G)}\)\emph{(t)} determine the exterior radiance for any given hour. In this context, the transmitted radiance for a complex fenestration system given in Equation~\ref{eq:dEpIdAEquation} becomes: \begin{equation} -\begin{array}{c}S({{\bf{p}}^{{\rm{(T)}}}}) = {I^{({\bf{Sky}})}}(t)\int\limits_{{\Omega ^{{\rm{(Sky)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}})s({{\bf{p}}^{{\rm{(I)}}}})\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} \\ + \int\limits_{{\Omega ^{{\rm{(Gnd)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}}){S^{{\rm{(Gnd)}}}}({{\bf{p}}^{{\rm{(I)}}}},t)\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} \\ + H\left( {\Delta {\Omega ^{{\rm{(Sun)}}}}(t) \not\subset {\Omega ^{{\rm{(Sf)}}}}} \right)\int\limits_{\Delta {\Omega ^{{\rm{(Sun)}}}}(t)} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}}){S^{{\rm{(Sun)}}}}({{\bf{p}}^{{\rm{(I)}}}},t)\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} \\ + \int\limits_{{\Omega ^{{\rm{(Sf)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}}){S^{{\rm{(Refl)}}}}({{\bf{p}}^{{\rm{(I)}}}},t)\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} \end{array} +\begin{array}{c}S({{\mathbf{p}}^{{\mathrm{(T)}}}}) = {I^{({\mathbf{Sky}})}}(t)\int\limits_{{\Omega ^{{\mathrm{(Sky)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})s({{\mathbf{p}}^{{\mathrm{(I)}}}})\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \\ + \int\limits_{{\Omega ^{{\mathrm{(Gnd)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}){S^{{\mathrm{(Gnd)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}},t)\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \\ + H\left( {\Delta {\Omega ^{{\mathrm{(Sun)}}}}(t) \not\subset {\Omega ^{{\mathrm{(Sf)}}}}} \right)\int\limits_{\Delta {\Omega ^{{\mathrm{(Sun)}}}}(t)} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}){S^{{\mathrm{(Sun)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}},t)\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \\ + \int\limits_{{\Omega ^{{\mathrm{(Sf)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}){S^{{\mathrm{(Refl)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}},t)\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \end{array} \end{equation} -where the incoming hemisphere viewed by the fenestration has been broken up into four parts.~ The viewed sky (excluding the part containing the sun) is \({\Omega ^{{\rm{(Sky)}}}}\) , the viewed ground is \({\Omega ^{{\rm{(Gnd)}}}}\) , the part subtended by the sun is \(\Delta\Omega\)\(^{(Sun)}\), and the part subtended by one or more exterior surfaces (shading or reflecting objects) is \(\Omega\)\(^{(Sf)}\).~ These solid angles must exclude the exterior surfaces.~ The symbol \emph{H} represents a Helmholtz function: Its value is one if its logical argument is true, zero otherwise.~ It has been inserted into the equation to account for those times when the sun is behind an exterior object.~ Where there are multiple exterior shading or reflecting objects, \(\Omega\)\(^{(Sf)}\) may consist of several regions that may be disjoint or connected, depending on the exterior geometry.~ As indicated in the equation, \(\Delta\Omega\)\(^{(Sun)}\) is time-dependent, to account for the sun's movement; \(\Omega\)\(^{(Gnd)}\) and \(\Omega\)\(^{(Sf)}\)~ are fixed, but as written \({\Omega ^{{\rm{(Sky)}}}}\) ~has a time dependence induced by the exclusion of the solid angle subtended by the sun.~ So that we can discuss the parts separately, we break the outgoing radiance down by source: +where the incoming hemisphere viewed by the fenestration has been broken up into four parts.~ The viewed sky (excluding the part containing the sun) is \({\Omega ^{{\mathrm{(Sky)}}}}\) , the viewed ground is \({\Omega ^{{\mathrm{(Gnd)}}}}\) , the part subtended by the sun is \(\Delta\Omega\)\(^{(Sun)}\), and the part subtended by one or more exterior surfaces (shading or reflecting objects) is \(\Omega\)\(^{(Sf)}\).~ These solid angles must exclude the exterior surfaces.~ The symbol \emph{H} represents a Helmholtz function: Its value is one if its logical argument is true, zero otherwise.~ It has been inserted into the equation to account for those times when the sun is behind an exterior object.~ Where there are multiple exterior shading or reflecting objects, \(\Omega\)\(^{(Sf)}\) may consist of several regions that may be disjoint or connected, depending on the exterior geometry.~ As indicated in the equation, \(\Delta\Omega\)\(^{(Sun)}\) is time-dependent, to account for the sun's movement; \(\Omega\)\(^{(Gnd)}\) and \(\Omega\)\(^{(Sf)}\)~ are fixed, but as written \({\Omega ^{{\mathrm{(Sky)}}}}\) ~has a time dependence induced by the exclusion of the solid angle subtended by the sun.~ So that we can discuss the parts separately, we break the outgoing radiance down by source: \begin{equation} -S({{\bf{p}}^{{\rm{(T)}}}}) = {S^{{\rm{(Sky)}}}}({{\bf{p}}^{{\rm{(T)}}}}) + {S^{{\rm{(Gnd)}}}}({{\bf{p}}^{{\rm{(T)}}}}) + {S^{{\rm{(Sun)}}}}({{\bf{p}}^{{\rm{(T)}}}}) + {S^{{\rm{(Sf)}}}}({{\bf{p}}^{{\rm{(T)}}}}) +S({{\mathbf{p}}^{{\mathrm{(T)}}}}) = {S^{{\mathrm{(Sky)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) + {S^{{\mathrm{(Gnd)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) + {S^{{\mathrm{(Sun)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) + {S^{{\mathrm{(Sf)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) \label{eq:SpTSkyGndSunSfEquation} \end{equation} -By subtracting the radiation from the part of the sky hidden by the sun from \({S^{{\rm{(Sun)}}}}\) ~and adding it back into \emph{S}\(^{(Sky)}\) we can remove the time dependence of \(\Omega\)\(^{(Sky)}\): +By subtracting the radiation from the part of the sky hidden by the sun from \({S^{{\mathrm{(Sun)}}}}\) ~and adding it back into \emph{S}\(^{(Sky)}\) we can remove the time dependence of \(\Omega\)\(^{(Sky)}\): \begin{equation} -\begin{array}{c}{S^{{\rm{(Sun)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = H\left( {\Delta {\Omega ^{{\rm{(Sun)}}}}(t) \not\subset {\Omega ^{{\rm{(Sf)}}}}} \right)\\ \times \int\limits_{\Delta {\Omega ^{{\rm{(Sun)}}}}(t)} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}})\left[ {{S^{{\rm{(Sun)}}}}({{\bf{p}}^{{\rm{(I)}}}},t) - {I^{({\bf{Sky}})}}(t)s({{\bf{p}}^{{\rm{(I)}}}})} \right]\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} \end{array} +\begin{array}{c}{S^{{\mathrm{(Sun)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = H\left( {\Delta {\Omega ^{{\mathrm{(Sun)}}}}(t) \not\subset {\Omega ^{{\mathrm{(Sf)}}}}} \right)\\ \times \int\limits_{\Delta {\Omega ^{{\mathrm{(Sun)}}}}(t)} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})\left[ {{S^{{\mathrm{(Sun)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}},t) - {I^{({\mathbf{Sky}})}}(t)s({{\mathbf{p}}^{{\mathrm{(I)}}}})} \right]\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \end{array} \label{eq:SSunpTEquation} \end{equation} \begin{equation} -{S^{{\rm{(Sky)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = {I^{({\bf{Sky}})}}(t)\int\limits_{{\Omega ^{{\rm{(Sky)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}})s({{\bf{p}}^{{\rm{(I)}}}})\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} +{S^{{\mathrm{(Sky)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = {I^{({\mathbf{Sky}})}}(t)\int\limits_{{\Omega ^{{\mathrm{(Sky)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}})s({{\mathbf{p}}^{{\mathrm{(I)}}}})\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \label{eq:SSkypTEquation} \end{equation} -Now in Equation~\ref{eq:SSkypTEquation} the integral is to be evaluated without regard to the sun position, and therefore \({\Omega ^{{\rm{(Sky)}}}}\) ~is time-independent. +Now in Equation~\ref{eq:SSkypTEquation} the integral is to be evaluated without regard to the sun position, and therefore \({\Omega ^{{\mathrm{(Sky)}}}}\) ~is time-independent. We can further simplify Equation~\ref{eq:SpTSkyGndSunSfEquation} by noting that the angular size of the sun is small, and both \emph{s}(\textbf{\emph{p}}\(^{(I)}\)) and \( mathcal{T}\)(\textbf{\emph{p}}\(^{(T)}\), \textbf{\emph{p}}\(^{(I)}\)) can be considered as constant over the range of directions in DW\(^{(Sun)}\).~ We can therefore evaluate them at the direction \textbf{\emph{p}}\(^{(Sun)}\)(t) of the center of the sun and move them out of the integration, resulting in: \begin{equation} -{S^{{\rm{(Sun)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = {\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(Sun)}}}})\left[ {{I^{{\rm{(D)}}}} - {I^{{\rm{(Sky)}}}}s({{\bf{p}}^{{\rm{(Sun)}}}})\Delta {\Omega ^{{\rm{(Sun)}}}}} \right]\cos {\theta ^{{\rm{(Sun)}}}}H\left( {{{\bf{p}}^{{\rm{(Sun)}}}} \not\subset {\Omega ^{{\rm{(Sf)}}}}} \right) +{S^{{\mathrm{(Sun)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(Sun)}}}})\left[ {{I^{{\mathrm{(D)}}}} - {I^{{\mathrm{(Sky)}}}}s({{\mathbf{p}}^{{\mathrm{(Sun)}}}})\Delta {\Omega ^{{\mathrm{(Sun)}}}}} \right]\cos {\theta ^{{\mathrm{(Sun)}}}}H\left( {{{\mathbf{p}}^{{\mathrm{(Sun)}}}} \not\subset {\Omega ^{{\mathrm{(Sf)}}}}} \right) \end{equation} In this equation we have dropped the explicit time dependence, but \textbf{\emph{p}}\(^{(Sun)}\), \emph{q}\(^{(Sun)}\), \emph{I}\(^{(D)}\), and \emph{I}\(^{(Sky)}\) are time-varying, while \(\Delta\Omega\)\(^{(Sun)}\) is simply the constant angular size of the sun. @@ -2355,20 +2371,20 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe We separate the reflected radiance \emph{S}\(^{(Sf)}\) into separate components for each surface: \begin{equation} -{S^{{\rm{(Sf)}}}} = \sum\limits_n {{S^{{\rm{(Sf, n)}}}}} +{S^{{\mathrm{(Sf)}}}} = \sum\limits_n {{S^{{\mathrm{(Sf, n)}}}}} \end{equation} The individual shading surface reflected radiances are then: \begin{equation} -{S^{{\rm{(Sf, n)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = \int\limits_{{\Omega ^{{\rm{(Sf, n)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}}){S^{{\rm{(Refl, n)}}}}({{\bf{p}}^{{\rm{(I)}}}},t)\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} +{S^{{\mathrm{(Sf, n)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \int\limits_{{\Omega ^{{\mathrm{(Sf, n)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}){S^{{\mathrm{(Refl, n)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}},t)\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \label{eq:SSfnpTEquation} \end{equation} The solid angle of integration in this expression is subtended by the portion of the exterior reflecting surface \emph{n} viewed by the fenestration; if one surface lies behind another, the hidden part of its surface is removed from the solid angle it subtends.~ This is summarized by the requirement: \begin{equation} -\begin{array}{l}{\Omega ^{{\rm{(Sf)}}}} = \bigcup\limits_n {{\Omega ^{{\rm{(Sf, n)}}}}} \\\bigcap\limits_n {{\Omega ^{{\rm{(Sf, n)}}}}} = 0\end{array} +\begin{array}{l}{\Omega ^{{\mathrm{(Sf)}}}} = \bigcup\limits_n {{\Omega ^{{\mathrm{(Sf, n)}}}}} \\\bigcap\limits_n {{\Omega ^{{\mathrm{(Sf, n)}}}}} = 0\end{array} \end{equation} (This requirement will need to be modified to handle the case of transmitting exterior surfaces.) @@ -2376,20 +2392,20 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe \emph{S}\(^{(Refl,n)}\) is time dependent because the incident radiation on the surface depends on the sun position.~ Equation~\ref{eq:SSkypTEquation} must be evaluated after the exterior surface shading or reflectance calculations, in order to enforce the requirement that: \begin{equation} -{\Omega ^{{\rm{(Sky)}}}} \cap {\Omega ^{{\rm{(Sf)}}}} = 0 +{\Omega ^{{\mathrm{(Sky)}}}} \cap {\Omega ^{{\mathrm{(Sf)}}}} = 0 \end{equation} Finally, the transmitted radiance from the ground-reflected exterior radiation is: \begin{equation} -{S^{{\rm{(Gnd)}}}}({{\bf{p}}^{{\rm{(T)}}}}) = \int\limits_{{\Omega ^{{\rm{(Gnd)}}}}} {{\mathop{\rm \mathcal{T}}\nolimits} ({{\bf{p}}^{{\rm{(T)}}}},{{\bf{p}}^{{\rm{(I)}}}}){S^{{\rm{(Gnd)}}}}({{\bf{p}}^{{\rm{(I)}}}},t)\left( { - {{\bf{p}}^{{\rm{(I)}}}}\cdot {\bf{n}}} \right)d{\Omega ^{{\rm{(I)}}}}} +{S^{{\mathrm{(Gnd)}}}}({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \int\limits_{{\Omega ^{{\mathrm{(Gnd)}}}}} {\operatorname{\mathcal{T}} ({{\mathbf{p}}^{{\mathrm{(T)}}}},{{\mathbf{p}}^{{\mathrm{(I)}}}}){S^{{\mathrm{(Gnd)}}}}({{\mathbf{p}}^{{\mathrm{(I)}}}},t)\left( { - {{\mathbf{p}}^{{\mathrm{(I)}}}}\cdot {\mathbf{n}}} \right)d{\Omega ^{{\mathrm{(I)}}}}} \label{eq:SGndpTEquation} \end{equation} Here, not only is there the requirement that: \begin{equation} -{\Omega ^{{\rm{(Gnd)}}}} \cap {\Omega ^{{\rm{(Sf)}}}} = 0 +{\Omega ^{{\mathrm{(Gnd)}}}} \cap {\Omega ^{{\mathrm{(Sf)}}}} = 0 \end{equation} but also the incident radiation on the ground may be affected by shading or reflection from exterior surfaces.~ Since this is dependent on the sun position, \emph{S}\(^{(Gnd)}\) is time dependent, as indicated in Equation~\ref{eq:SGndpTEquation}. @@ -2397,16 +2413,16 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Applying the discretization of the previous section and the definitions in Equations~\ref{eq:LambdasEquation} -~\ref{eq:RijEquation}, we can rewrite Equation~\ref{eq:SSkypTEquation} as: \begin{equation} -{S_j}^{{\rm{(T,Sky)}}} = {I^{({\bf{Sky}})}}(t)\sum\limits_{i \in {\Omega ^{{\rm{(Sky)}}}}} {{T_{ji}}{\Lambda_{ii}}{s_i}} +{S_j}^{{\mathrm{(T,Sky)}}} = {I^{({\mathbf{Sky}})}}(t)\sum\limits_{i \in {\Omega ^{{\mathrm{(Sky)}}}}} {{T_{ji}}{\Lambda_{ii}}{s_i}} \end{equation} where \begin{equation} -{s_i} = s({{\bf{p}}_i}^{{\rm{(I)}}}) +{s_i} = s({{\mathbf{p}}_i}^{{\mathrm{(I)}}}) \end{equation} -is the sky radiance shape factor evaluated at the central direction of the i\(^{th}\) solid angle bin.~ A ``T'' superscript has been added on the left-hand side of the equation to denote that \emph{S} is the transmitted outgoing radiance (due to incident sky radiation for the fenestration under discussion).~ The stipulation \(i \in {\Omega ^{{\rm{(Sky)}}}}\) ~on the summation means that the sum is to include only those solid angle elements for which the sky is viewed by the fenestration.~ This is essentially a shading calculation, in addition to a restriction to downward-going incident directions.~ We anticipate the result of this calculation by defining a sky geometric factor: +is the sky radiance shape factor evaluated at the central direction of the i\(^{th}\) solid angle bin.~ A ``T'' superscript has been added on the left-hand side of the equation to denote that \emph{S} is the transmitted outgoing radiance (due to incident sky radiation for the fenestration under discussion).~ The stipulation \(i \in {\Omega ^{{\mathrm{(Sky)}}}}\) ~on the summation means that the sum is to include only those solid angle elements for which the sky is viewed by the fenestration.~ This is essentially a shading calculation, in addition to a restriction to downward-going incident directions.~ We anticipate the result of this calculation by defining a sky geometric factor: \begin{equation} V_i^{(Sky)} = \left\{ @@ -2429,26 +2445,26 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Similarly, Equation~\ref{eq:SSfnpTEquation} becomes: \begin{equation} -{S_j}^{{\rm{(T, Sf, n)}}} = \sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}{S^{{\rm{(Refl, n)}}}}({{\bf{p}}_i}^{{\rm{(I)}}},t)} +{S_j}^{{\mathrm{(T, Sf, n)}}} = \sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}{S^{{\mathrm{(Refl, n)}}}}({{\mathbf{p}}_i}^{{\mathrm{(I)}}},t)} \label{eq:SjTSfnEquation} \end{equation} where \(V_{i}^{(Sf,\, n)}\) is another geometric view factor, defined analogously to Equation~\ref{eq:ViSkyEquation}, giving the fraction of the solid angle \(\Delta {\Omega_i}\) that views the exterior surface \emph{n}. Note that: \begin{equation} -V_i^{{\rm{(Sky)}}} + \sum\limits_{\rm{n}} {V_i^{{\rm{(Sf, n)}}}} = 1 +V_i^{{\mathrm{(Sky)}}} + \sum\limits_{\mathrm{n}} {V_i^{{\mathrm{(Sf, n)}}}} = 1 \end{equation} -The quantity \(S^{(Refl,n)} (\bf{p}_i^{(I)},t)\) is in fact the reflected radiance at a particular location on the n\(^{th}\) exterior surface --- the location where the direction \textbf{\emph{p}}\emph{\(_{i}\)}\(^{(I)}\) intersects the surface. (This statement will become more precise when the spatial dependence dropped from Equation~\ref{eq:ScriptLx2pj2x1pi1S1pi1Integral} is re-inserted.) This surface is assumed to have either a diffuse reflectance \(\rho\)\(^{(n)}\) or a specular reflectance \(\rho\)\(^{(sp,\\ n)}\). (Both properties are possible simultaneously, but EnergyPlus assumes that an exterior surface is either diffusing or specular, but not both.) The reflectance is assumed uniform over the surface, but the particular location (effectively, the image of the fenestration projected onto surface n) may or may not view the sky, or, at a particular time, the sun. We denote the incident irradiance of the surface n by \(E_i^n\). This irradiance pertains only to the surface n (in the present EnergyPlus calculation) and is independent of the fenestration or its basis.~ We attach the subscript i simply as a reminder that the irradiance pertains to the portion of the surface that is viewed by the solid angle element \(\Delta {\Omega_i}\) of the fenestration f (which would become important if the EnergyPlus shading calculations were modified to relax the assumption of uniform incident irradiance on exterior surfaces) and that the irradiance pertains only to those surfaces n that are viewed by the solid angle element i. For specularly reflecting surfaces, we make the following definitions: First, within the set of basis solid angles \(\Delta {\Omega_i}\), let s(\emph{t}) identify the one containing the sun direction at time \emph{t}, and let r(\emph{t}) identify the one containing the specular reflection direction of the sun at time \emph{t}. We then define a contingent direct beam irradiance, which we denote by \(E_{i{\rm{ }}r(t)}^{(D,n)}\) . This irradiance is non-zero only if \(i = r(t)\) this direction is such that i is the specularly reflected direction for the surface n. If this is the case, then \(E_{i = r(t)}^{(D,n)}\) is the incident direct beam irradiance. With this definition: +The quantity \(S^{(Refl,n)} (\mathbf{p}_i^{(I)},t)\) is in fact the reflected radiance at a particular location on the n\(^{th}\) exterior surface --- the location where the direction \textbf{\emph{p}}\emph{\(_{i}\)}\(^{(I)}\) intersects the surface. (This statement will become more precise when the spatial dependence dropped from Equation~\ref{eq:ScriptLx2pj2x1pi1S1pi1Integral} is re-inserted.) This surface is assumed to have either a diffuse reflectance \(\rho\)\(^{(n)}\) or a specular reflectance \(\rho\)\(^{(sp, n)}\). (Both properties are possible simultaneously, but EnergyPlus assumes that an exterior surface is either diffusing or specular, but not both.) The reflectance is assumed uniform over the surface, but the particular location (effectively, the image of the fenestration projected onto surface n) may or may not view the sky, or, at a particular time, the sun. We denote the incident irradiance of the surface n by \(E_i^n\). This irradiance pertains only to the surface n (in the present EnergyPlus calculation) and is independent of the fenestration or its basis.~ We attach the subscript i simply as a reminder that the irradiance pertains to the portion of the surface that is viewed by the solid angle element \(\Delta {\Omega_i}\) of the fenestration f (which would become important if the EnergyPlus shading calculations were modified to relax the assumption of uniform incident irradiance on exterior surfaces) and that the irradiance pertains only to those surfaces n that are viewed by the solid angle element i. For specularly reflecting surfaces, we make the following definitions: First, within the set of basis solid angles \(\Delta {\Omega_i}\), let s(\emph{t}) identify the one containing the sun direction at time \emph{t}, and let r(\emph{t}) identify the one containing the specular reflection direction of the sun at time \emph{t}. We then define a contingent direct beam irradiance, which we denote by \(E_{i{\mathrm{ }}r(t)}^{(D,n)}\) . This irradiance is non-zero only if \(i = r(t)\) this direction is such that i is the specularly reflected direction for the surface n. If this is the case, then \(E_{i = r(t)}^{(D,n)}\) is the incident direct beam irradiance. With this definition: \begin{equation} -{S^{{\rm{(Refl, n)}}}}({{\bf{p}}_i}^{{\rm{(I)}}},t) = {\rho ^{{\rm{(sp, n)}}}}E_{i{\rm{ }}r(t)}^{(D,n)} + {\rho ^{{\rm{(n)}}}}E_i^n +{S^{{\mathrm{(Refl, n)}}}}({{\mathbf{p}}_i}^{{\mathrm{(I)}}},t) = {\rho ^{{\mathrm{(sp, n)}}}}E_{i{\mathrm{ }}r(t)}^{(D,n)} + {\rho ^{{\mathrm{(n)}}}}E_i^n \end{equation} -If we then define normalized irradiance factors \emph{U} by \(E_i^n = U_i^{(Sky,n)}{I^{(Sky)}}(t) + U_{i{\rm{ }}Sun(tsh)}^{(D,n)}{I^{(D)}}(t)\) ~and \(E_{i{\rm{ }}r(t)}^{(D,n)} = U_{i{\rm{ }}r(t)}^{(D,n)}{I^{(D)}}(t)\) , where \(U_{i{\rm{ }}Sun(tsh)}^{(D,n)}\) ~denotes the fraction of the beam solar that irradiates the surface for a given sun direction.~ It is evaluated during the shading calculation, as indicated by the notation \emph{Sun(tsh)}.~ With these definitions we can rewrite the equation as: +If we then define normalized irradiance factors \emph{U} by \(E_i^n = U_i^{(Sky,n)}{I^{(Sky)}}(t) + U_{i{\mathrm{ }}Sun(tsh)}^{(D,n)}{I^{(D)}}(t)\) ~and \(E_{i{\mathrm{ }}r(t)}^{(D,n)} = U_{i{\mathrm{ }}r(t)}^{(D,n)}{I^{(D)}}(t)\) , where \(U_{i{\mathrm{ }}Sun(tsh)}^{(D,n)}\) ~denotes the fraction of the beam solar that irradiates the surface for a given sun direction.~ It is evaluated during the shading calculation, as indicated by the notation \emph{Sun(tsh)}.~ With these definitions we can rewrite the equation as: \begin{equation} -S^{(Refl,n)}(\bf{p}_i^{(I)},t) = +S^{(Refl,n)}(\mathbf{p}_i^{(I)},t) = I^{(D)}(t) U_{i r(t)}^{(D,n)} \rho^{(sp,n)} + I^{(D)}(t) U_{i Sun(tsh)}^{(D,n)} \rho^{(n)} + I^{(sky)}(t) U_i^{(Sky,n)} \rho^{(n)} @@ -2457,26 +2473,26 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe and Equation~\ref{eq:SjTSfnEquation} becomes, in terms of the incident irradiances: \begin{equation} -{S_j}^{{\rm{(T, Sf, n)}}} = \sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}\left( {{\rho ^{{\rm{(sp, n)}}}}E_{i{\rm{ }}r(t)}^{(D,n)} + {\rho ^{{\rm{(n)}}}}E_i^n} \right)} +{S_j}^{{\mathrm{(T, Sf, n)}}} = \sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}\left( {{\rho ^{{\mathrm{(sp, n)}}}}E_{i{\mathrm{ }}r(t)}^{(D,n)} + {\rho ^{{\mathrm{(n)}}}}E_i^n} \right)} \end{equation} and in terms of the normalized irradiance factors, \begin{equation} -\begin{array}{c}{S_j}^{{\rm{(T, Sf, n)}}} = \sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}{I^{{\rm{(D)}}}}(t)U_{i{\rm{ r(}}t{\rm{)}}}^{{\rm{(D,n)}}}{\rho ^{{\rm{(sp, n)}}}}} \\ + \sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}\left[ {{I^{{\rm{(D)}}}}(t)U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D,n)}}}{\rho ^{{\rm{(n)}}}} + {I^{(Sky)}}(t)U_i^{{\rm{(Sky,n)}}}{\rho ^{{\rm{(n)}}}}} \right]} \end{array} +\begin{array}{c}{S_j}^{{\mathrm{(T, Sf, n)}}} = \sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}{I^{{\mathrm{(D)}}}}(t)U_{i{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(D,n)}}}{\rho ^{{\mathrm{(sp, n)}}}}} \\ + \sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}\left[ {{I^{{\mathrm{(D)}}}}(t)U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D,n)}}}{\rho ^{{\mathrm{(n)}}}} + {I^{(Sky)}}(t)U_i^{{\mathrm{(Sky,n)}}}{\rho ^{{\mathrm{(n)}}}}} \right]} \end{array} \label{eq:SjTSfnidownEquation} \end{equation} The specularly reflected term can be removed from the sum, since only one value of i can contribute: \begin{equation} -{S_j}^{{\rm{(T, Sf, n)}}} = {T_{j{\rm{ r(}}t{\rm{)}}}}{\Lambda_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}}V_{{\rm{ r(}}t{\rm{)}}}^{{\rm{(Sf, n)}}}E_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}^{{\rm{(D,n)}}}{\rho ^{{\rm{(sp, n)}}}} + {\rho ^{{\rm{(n)}}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}E_i^n} +{S_j}^{{\mathrm{(T, Sf, n)}}} = {T_{j{\mathrm{ r(}}t{\mathrm{)}}}}{\Lambda_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}}V_{{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(Sf, n)}}}E_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}^{{\mathrm{(D,n)}}}{\rho ^{{\mathrm{(sp, n)}}}} + {\rho ^{{\mathrm{(n)}}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}E_i^n} \end{equation} and \begin{equation} -\begin{array}{c}{S_j}^{{\rm{(T, Sf, n)}}} = {T_{j{\rm{ r(}}t{\rm{)}}}}{\Lambda_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}}V_{{\rm{ r(}}t{\rm{)}}}^{{\rm{(Sf, n)}}}U_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}^{{\rm{(D,n)}}}{I^{(D)}}(t){\rho ^{{\rm{(sp, n)}}}}\\ + {\rho ^{{\rm{(n)}}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}\left( {{I^{{\rm{(D)}}}}(t)U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D,n)}}} + U_i^{(Sky,n)}{I^{(Sky)}}(t)} \right)} \end{array} +\begin{array}{c}{S_j}^{{\mathrm{(T, Sf, n)}}} = {T_{j{\mathrm{ r(}}t{\mathrm{)}}}}{\Lambda_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}}V_{{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(Sf, n)}}}U_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}^{{\mathrm{(D,n)}}}{I^{(D)}}(t){\rho ^{{\mathrm{(sp, n)}}}}\\ + {\rho ^{{\mathrm{(n)}}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}\left( {{I^{{\mathrm{(D)}}}}(t)U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D,n)}}} + U_i^{(Sky,n)}{I^{(Sky)}}(t)} \right)} \end{array} \end{equation} which separates specular and diffuse reflectance from the exterior surfaces. @@ -2486,20 +2502,20 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Ground radiation is treated in the same way as radiation reflected from interior surfaces, except that one sums only over upward-going incident directions and the ground is assumed to be diffusely reflecting.~ The transmitted radiance from ground reflectance is: \begin{equation} -{S_j}^{{\rm{(T, Gnd)}}} = {\rho ^{{\rm{(Gnd)}}}}\sum\limits_{i{\rm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}E_i^{(Gnd)}} +{S_j}^{{\mathrm{(T, Gnd)}}} = {\rho ^{{\mathrm{(Gnd)}}}}\sum\limits_{i{\mathrm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}E_i^{(Gnd)}} \label{eq:SjTGndEquation} \end{equation} -In this equation, the symbol \(E_i^{(Gnd)}\) ~is shorthand for a spatial calculation.~ The solid angle region \(\Delta {\Omega_i}\) ~views (from various points over the fenestration area) some spatial region of the ground.~ The symbol \(E_i^{(Gnd)}\) ~denotes the incident irradiance on the ground over this spatial region.~ In the absence of shading, this would be simply \({I^{(G)}} = {I^{(Sky)}} + {I^{(D)}}\cos {\theta_{Sun}}\) ; shading requires a more complex calculation.~ Currently the EnergyPlus code does a Monte-Carlo calculation: rays are randomly generated from the window, when they strike the ground a calculation is made to determine whether that point receives direct solar radiation and what portion of the sky it views (reflected radiation from surfaces is neglected).~ Here we would perform that calculation for each region of the ground i viewed by a basis solid angle element, instead of generating random rays from the window.~ We denote the results of that calculation by \(E_i^{(Gnd)} = U_{i{\rm{ }}Sun(tsh)}^{(D,Gnd)}{I^{(D)}}(t) + U_i^{(Sky,Gnd)}{I^{(Sky)}}(t)\), where the \emph{U}'s are average viewing factors for the sun and sky, calculated as part of the shading calculation (which is indicated by the subscript \emph{tsh}: \emph{Sun(tsh)} is the sun direction as specified by the shading calculation.~ This then gives: +In this equation, the symbol \(E_i^{(Gnd)}\) ~is shorthand for a spatial calculation.~ The solid angle region \(\Delta {\Omega_i}\) ~views (from various points over the fenestration area) some spatial region of the ground.~ The symbol \(E_i^{(Gnd)}\) ~denotes the incident irradiance on the ground over this spatial region.~ In the absence of shading, this would be simply \({I^{(G)}} = {I^{(Sky)}} + {I^{(D)}}\cos {\theta_{Sun}}\) ; shading requires a more complex calculation.~ Currently the EnergyPlus code does a Monte-Carlo calculation: rays are randomly generated from the window, when they strike the ground a calculation is made to determine whether that point receives direct solar radiation and what portion of the sky it views (reflected radiation from surfaces is neglected).~ Here we would perform that calculation for each region of the ground i viewed by a basis solid angle element, instead of generating random rays from the window.~ We denote the results of that calculation by \(E_i^{(Gnd)} = U_{i{\mathrm{ }}Sun(tsh)}^{(D,Gnd)}{I^{(D)}}(t) + U_i^{(Sky,Gnd)}{I^{(Sky)}}(t)\), where the \emph{U}'s are average viewing factors for the sun and sky, calculated as part of the shading calculation (which is indicated by the subscript \emph{tsh}: \emph{Sun(tsh)} is the sun direction as specified by the shading calculation.~ This then gives: \begin{equation} -{S_j}^{{\rm{(T, Gnd)}}} = {\rho ^{{\rm{(Gnd)}}}}\sum\limits_{i{\rm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}\left( {U_{i{\rm{ }}Sun(tsh)}^{(D,Gnd)}{I^{(D)}}(t) + U_i^{(Sky,Gnd)}{I^{(Sky)}}(t)} \right)} +{S_j}^{{\mathrm{(T, Gnd)}}} = {\rho ^{{\mathrm{(Gnd)}}}}\sum\limits_{i{\mathrm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}\left( {U_{i{\mathrm{ }}Sun(tsh)}^{(D,Gnd)}{I^{(D)}}(t) + U_i^{(Sky,Gnd)}{I^{(Sky)}}(t)} \right)} \end{equation} The transmitted radiance from direct beam radiation is: \begin{equation} -{S_j}^{{\rm{(T, Sun)}}} = {T_{j{\rm{ s}}(t)}}\cos {\theta ^{{\rm{(Sun)}}}}{I^{{\rm{(D)}}}}(t)V_{i{\rm{ s(}}t{\rm{)}}}^{{\rm{(D)}}} +{S_j}^{{\mathrm{(T, Sun)}}} = {T_{j{\mathrm{ s}}(t)}}\cos {\theta ^{{\mathrm{(Sun)}}}}{I^{{\mathrm{(D)}}}}(t)V_{i{\mathrm{ s(}}t{\mathrm{)}}}^{{\mathrm{(D)}}} \label{eq:SjTSunEquation} \end{equation} @@ -2512,37 +2528,37 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe We begin with the discretized form of Equation~\ref{eq:E2pTdA2Equation}, in which we also modify the surface notation.~ In that equation, the surfaces involved are termed (1) and (2), where radiation is outgoing from surface 1 and incoming to surface 2.~ Here radiation is outgoing from the inner surface of the fenestration, so we label that surface (f).~ The receiving surface is one of the surfaces of the zone in which the fenestration is located.~ We number those surfaces with the index \emph{k}, so the receiving surface is labeled (\emph{k}).~ Equation~\ref{eq:E2pTdA2Equation} then becomes: \begin{equation} -dW_j^{{\rm{(f}} \to k{\rm{)}}} = {E^{{\rm{(}}k{\rm{)}}}}({{\bf{p}}_j}^{{\rm{(T)}}})d{A^{{\rm{(}}k{\rm{)}}}} = {S_j}^{{\rm{(T)}}} \cdot \left( {{{\bf{n}}^{{\rm{(f)}}}} \cdot {{\bf{p}}_j}^{{\rm{(T)}}}} \right)\Delta {\Omega_j}^{{\rm{(T)}}}d{A^{{\rm{(f)}}}} +dW_j^{{\mathrm{(f}} \to k{\mathrm{)}}} = {E^{{\mathrm{(}}k{\mathrm{)}}}}({{\mathbf{p}}_j}^{{\mathrm{(T)}}})d{A^{{\mathrm{(}}k{\mathrm{)}}}} = {S_j}^{{\mathrm{(T)}}} \cdot \left( {{{\mathbf{n}}^{{\mathrm{(f)}}}} \cdot {{\mathbf{p}}_j}^{{\mathrm{(T)}}}} \right)\Delta {\Omega_j}^{{\mathrm{(T)}}}d{A^{{\mathrm{(f)}}}} \end{equation} -or, noting that \(\left(\bf{n}^{(f)}\cdot\bf{p}_j^{(T)}\right) \Delta\Omega^{(T)} = \Lambda_{jj}^{(T)}\) ~(where the superscript T is retained in case the incoming and outgoing bases are defined differently), +or, noting that \(\left(\mathbf{n}^{(f)}\cdot\mathbf{p}_j^{(T)}\right) \Delta\Omega^{(T)} = \Lambda_{jj}^{(T)}\) ~(where the superscript T is retained in case the incoming and outgoing bases are defined differently), \begin{equation} -dW_j^{{\rm{(f}} \to k{\rm{)}}} = {E^{{\rm{(}}k{\rm{)}}}}({{\bf{p}}_j}^{{\rm{(T)}}})d{A^{{\rm{(}}k{\rm{)}}}} = {S_j}^{{\rm{(T)}}}\Lambda_{jj}^{{\rm{(T)}}}d{A^{{\rm{(f)}}}} +dW_j^{{\mathrm{(f}} \to k{\mathrm{)}}} = {E^{{\mathrm{(}}k{\mathrm{)}}}}({{\mathbf{p}}_j}^{{\mathrm{(T)}}})d{A^{{\mathrm{(}}k{\mathrm{)}}}} = {S_j}^{{\mathrm{(T)}}}\Lambda_{jj}^{{\mathrm{(T)}}}d{A^{{\mathrm{(f)}}}} \end{equation} If we integrate this expression over the fenestration area \emph{A}\(^{(f)}\) we obtain the total power leaving the fenestration surface in direction \emph{j}; however, all of that power may not reach surface \emph{k}: some may strike the inner window reveal or a different zone surface.~ If we define a spatial projection operator by: \begin{equation} -{{\bf{x}}^{{\rm{(}}k{\rm{)}}}} = {{\mathop{\rm \mathcal{P}}\nolimits} ^{{\rm{(}}k{\rm{)}}}}({\bf{p}}_j^{{\rm{(T)}}},{{\bf{x}}^{{\rm{(f)}}}}) \equiv {{\mathop{\rm \mathcal{P}}\nolimits}_j}^{{\rm{(}}k{\rm{)}}}({{\bf{x}}^{{\rm{(f)}}}}) +{{\mathbf{x}}^{{\mathrm{(}}k{\mathrm{)}}}} = {\operatorname{\mathcal{P}} ^{{\mathrm{(}}k{\mathrm{)}}}}({\mathbf{p}}_j^{{\mathrm{(T)}}},{{\mathbf{x}}^{{\mathrm{(f)}}}}) \equiv {\operatorname{\mathcal{P}}_j}^{{\mathrm{(}}k{\mathrm{)}}}({{\mathbf{x}}^{{\mathrm{(f)}}}}) \end{equation} where \textbf{\emph{x}}\(^{(k)}\) is in the plane of surface \emph{k}, and a geometric form factor by: \begin{equation} -F_j^{{\rm{(}}k{\rm{)}}} = \frac{1}{{{A^{{\rm{(f)}}}}}}\int\limits_{{{\mathop{\rm \mathcal{P}}\nolimits}_j}^{{\rm{(}}k{\rm{)}}}({{\bf{x}}^{{\rm{(f)}}}}) \in {A^{{\rm{(}}k{\rm{)}}}}} {d{A^{{\rm{(f)}}}}} +F_j^{{\mathrm{(}}k{\mathrm{)}}} = \frac{1}{{{A^{{\mathrm{(f)}}}}}}\int\limits_{{\operatorname{\mathcal{P}}_j}^{{\mathrm{(}}k{\mathrm{)}}}({{\mathbf{x}}^{{\mathrm{(f)}}}}) \in {A^{{\mathrm{(}}k{\mathrm{)}}}}} {d{A^{{\mathrm{(f)}}}}} \end{equation} then: \begin{equation} -dW_j^{{\rm{(f}} \to k{\rm{)}}} = {S_j}^{{\rm{(T)}}}\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}{A^{{\rm{(f)}}}} +dW_j^{{\mathrm{(f}} \to k{\mathrm{)}}} = {S_j}^{{\mathrm{(T)}}}\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}{A^{{\mathrm{(f)}}}} \end{equation} The total power leaving the fenestration (in any direction) and arriving at surface \emph{k} is then \begin{equation} -W_j^{{\rm{(f}} \to k{\rm{)}}} = \sum\limits_j {{S_j}^{{\rm{(T)}}}\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}{A^{{\rm{(f)}}}}} +W_j^{{\mathrm{(f}} \to k{\mathrm{)}}} = \sum\limits_j {{S_j}^{{\mathrm{(T)}}}\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}{A^{{\mathrm{(f)}}}}} \label{eq:WjftokEquation} \end{equation} @@ -2554,7 +2570,7 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe \caption{Mismatch of irradiated and viewed fenestration areas for different incident and outgoing directions \protect \label{fig:mismatch-of-irradiated-and-viewed}} \end{figure} -In this figure, the portion of the fenestration area not viewed by the plane of surface \emph{k} is instead viewed by one or more of the inner window reveals.~ Similarly, the portion of the fenestration not irradiated in the figure is in fact irradiated by diffusely reflected radiation from the outer window reveals.~ We can account for this by replacing the area \emph{A}\(^{(f)}\) in Equation~\ref{eq:WjftokEquation} with the overlap area \(A_{ji}^{{\rm{(f, Src), }}k}\) \emph{~}(dark shaded in the figure), where ``Src'' stands for the source of the incident radiation.~ This area is defined by: +In this figure, the portion of the fenestration area not viewed by the plane of surface \emph{k} is instead viewed by one or more of the inner window reveals.~ Similarly, the portion of the fenestration not irradiated in the figure is in fact irradiated by diffusely reflected radiation from the outer window reveals.~ We can account for this by replacing the area \emph{A}\(^{(f)}\) in Equation~\ref{eq:WjftokEquation} with the overlap area \(A_{ji}^{{\mathrm{(f, Src), }}k}\) \emph{~}(dark shaded in the figure), where ``Src'' stands for the source of the incident radiation.~ This area is defined by: \begin{equation} A_{ji}^{\left( {f,Src} \right),k} = \left. {A_i^{\left( {f,Src} \right)}} \right|A_j^{\left( f \right),k} @@ -2563,70 +2579,70 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe The total power at the interior surface \emph{k} for each source of radiation then becomes: \begin{equation} -{W^{{\rm{(Sky), }}k}} = {I^{({\bf{Sky}})}}(t)\sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sky)}}}A_{ji}^{{\rm{(f, Sky), }}k}{s_i}} } +{W^{{\mathrm{(Sky), }}k}} = {I^{({\mathbf{Sky}})}}(t)\sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sky)}}}A_{ji}^{{\mathrm{(f, Sky), }}k}{s_i}} } \end{equation} \begin{equation} -\begin{array}{c}{W^{{\rm{(Sf,n)}},k}} = {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(sp, n)}}}}\sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}{T_{j{\rm{ r(}}t{\rm{)}}}}{\Lambda_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}}V_{{\rm{ r(}}t{\rm{)}}}^{{\rm{(Sf, n)}}}A_{j{\rm{ r(}}t{\rm{)}}}^{{\rm{(f, Sf, n), }}k}U_{{\rm{ r(}}t{\rm{) s(}}t{\rm{)}}}^{{\rm{(D,n)}}}} \\ + {I^{(D)}}(t){\rho ^{{\rm{(n)}}}}\sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}A_{ji}^{{\rm{(f, Sf, n), }}k}U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D,n)}}}} } \\ + {I^{(Sky)}}(t){\rho ^{{\rm{(n)}}}}\sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}A_{ji}^{{\rm{(f, Sf, n), }}k}U_i^{{\rm{(Sky,n)}}}} } \end{array} +\begin{array}{c}{W^{{\mathrm{(Sf,n)}},k}} = {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(sp, n)}}}}\sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}{T_{j{\mathrm{ r(}}t{\mathrm{)}}}}{\Lambda_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}}V_{{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(Sf, n)}}}A_{j{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(f, Sf, n), }}k}U_{{\mathrm{ r(}}t{\mathrm{) s(}}t{\mathrm{)}}}^{{\mathrm{(D,n)}}}} \\ + {I^{(D)}}(t){\rho ^{{\mathrm{(n)}}}}\sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}A_{ji}^{{\mathrm{(f, Sf, n), }}k}U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D,n)}}}} } \\ + {I^{(Sky)}}(t){\rho ^{{\mathrm{(n)}}}}\sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}A_{ji}^{{\mathrm{(f, Sf, n), }}k}U_i^{{\mathrm{(Sky,n)}}}} } \end{array} \end{equation} \begin{equation} -\begin{array}{c}{W^{{\rm{(Gnd)}},k}} = {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(Gnd)}}}}\sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}A_{ji}^{{\rm{(f, Gnd), }}k}U_{i{\rm{ }}Sky(tch)}^{{\rm{(D, Gnd)}}}} } \\ + {I^{({\bf{Sky}})}}(t){\rho ^{{\rm{(Gnd)}}}}\sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}A_{ji}^{{\rm{(f, Gnd), }}k}U_i^{{\rm{( Sky,Gnd)}}}} } \end{array} +\begin{array}{c}{W^{{\mathrm{(Gnd)}},k}} = {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(Gnd)}}}}\sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}A_{ji}^{{\mathrm{(f, Gnd), }}k}U_{i{\mathrm{ }}Sky(tch)}^{{\mathrm{(D, Gnd)}}}} } \\ + {I^{({\mathbf{Sky}})}}(t){\rho ^{{\mathrm{(Gnd)}}}}\sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}A_{ji}^{{\mathrm{(f, Gnd), }}k}U_i^{{\mathrm{( Sky,Gnd)}}}} } \end{array} \end{equation} \begin{equation} -{W^{{\rm{(Sun)}},k}} = {I^{{\rm{(D)}}}}(t)\sum\limits_j {F_j^{{\rm{(}}k{\rm{)}}}\Lambda_{jj}^{{\rm{(T)}}}{T_{j{\rm{ s}}(t)}}\cos {\theta_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}}}V_{i{\rm{ s(}}t{\rm{)}}}^{{\rm{(D)}}}A_{j{\rm{ s(}}t{\rm{)}}}^{{\rm{(f, Sun), }}k}} +{W^{{\mathrm{(Sun)}},k}} = {I^{{\mathrm{(D)}}}}(t)\sum\limits_j {F_j^{{\mathrm{(}}k{\mathrm{)}}}\Lambda_{jj}^{{\mathrm{(T)}}}{T_{j{\mathrm{ s}}(t)}}\cos {\theta_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}}}V_{i{\mathrm{ s(}}t{\mathrm{)}}}^{{\mathrm{(D)}}}A_{j{\mathrm{ s(}}t{\mathrm{)}}}^{{\mathrm{(f, Sun), }}k}} \end{equation} If we define a series of solar irradiation factors, Z, that describe the fraction of the radiation incident on the fenestration due to a given exterior radiation source that is ultimately incident on the interior surface \emph{k}: \begin{equation} -{Z^{{\rm{(Sky), }}k}} = \sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sky)}}}A_{ji}^{{\rm{(f, Sky), }}k}{s_i}} } +{Z^{{\mathrm{(Sky), }}k}} = \sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sky)}}}A_{ji}^{{\mathrm{(f, Sky), }}k}{s_i}} } \label{eq:ZSkykEquation} \end{equation} \begin{equation} -{Z_{{\rm{r(}}t{\rm{)}}}}^{{\rm{(sp, Sf, n)}},k} = \sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}{T_{j{\rm{ r(}}t{\rm{)}}}}{\Lambda_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}}V_{{\rm{ r(}}t{\rm{)}}}^{{\rm{(Sf, n)}}}A_{j{\rm{ r(}}t{\rm{)}}}^{{\rm{(f, Sf, n), }}k}U_{{\rm{ r(}}t{\rm{) s(}}t{\rm{)}}}^{{\rm{(D,n)}}}} +{Z_{{\mathrm{r(}}t{\mathrm{)}}}}^{{\mathrm{(sp, Sf, n)}},k} = \sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}{T_{j{\mathrm{ r(}}t{\mathrm{)}}}}{\Lambda_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}}V_{{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(Sf, n)}}}A_{j{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(f, Sf, n), }}k}U_{{\mathrm{ r(}}t{\mathrm{) s(}}t{\mathrm{)}}}^{{\mathrm{(D,n)}}}} \end{equation} \begin{equation} -{Z_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun, Sf, n)}},k} = \sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}A_{ji}^{{\rm{(f, Sf, n), }}k}U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D,n)}}}} } +{Z_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun, Sf, n)}},k} = \sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}A_{ji}^{{\mathrm{(f, Sf, n), }}k}U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D,n)}}}} } \end{equation} \begin{equation} -{Z^{{\rm{(Sky, Sf, n)}},k}} = \sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}A_{ji}^{{\rm{(f, Sf, n), }}k}U_i^{{\rm{(Sky, n)}}}} } +{Z^{{\mathrm{(Sky, Sf, n)}},k}} = \sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}down} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}A_{ji}^{{\mathrm{(f, Sf, n), }}k}U_i^{{\mathrm{(Sky, n)}}}} } \end{equation} \begin{equation} -{Z_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(D, Gnd)}},k} = \sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}A_{ji}^{{\rm{(f, Gnd), }}k}U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D, Gnd)}}}} } +{Z_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(D, Gnd)}},k} = \sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}A_{ji}^{{\mathrm{(f, Gnd), }}k}U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D, Gnd)}}}} } \end{equation} \begin{equation} -{Z^{{\rm{(Sky, Gnd)}},k}} = \sum\limits_j {\Lambda_{jj}^{{\rm{(T)}}}F_j^{{\rm{(}}k{\rm{)}}}\sum\limits_{i{\rm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}A_{ji}^{{\rm{(f, Gnd), }}k}U_i^{{\rm{(Sky, Gnd)}}}} } +{Z^{{\mathrm{(Sky, Gnd)}},k}} = \sum\limits_j {\Lambda_{jj}^{{\mathrm{(T)}}}F_j^{{\mathrm{(}}k{\mathrm{)}}}\sum\limits_{i{\mathrm{ }}up} {{T_{ji}}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}A_{ji}^{{\mathrm{(f, Gnd), }}k}U_i^{{\mathrm{(Sky, Gnd)}}}} } \end{equation} \begin{equation} -{Z_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}},k} = \sum\limits_j {F_j^{{\rm{(}}k{\rm{)}}}\Lambda_{jj}^{{\rm{(T)}}}{T_{j{\rm{ s}}(t)}}\cos {\theta_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}}}V_{i{\rm{ s(}}t{\rm{)}}}^{{\rm{(D)}}}A_{j{\rm{ s(}}t{\rm{)}}}^{{\rm{(f, Sun), }}k}} +{Z_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}},k} = \sum\limits_j {F_j^{{\mathrm{(}}k{\mathrm{)}}}\Lambda_{jj}^{{\mathrm{(T)}}}{T_{j{\mathrm{ s}}(t)}}\cos {\theta_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}}}V_{i{\mathrm{ s(}}t{\mathrm{)}}}^{{\mathrm{(D)}}}A_{j{\mathrm{ s(}}t{\mathrm{)}}}^{{\mathrm{(f, Sun), }}k}} \label{eq:ZstSunkEquation} \end{equation} then Equations~\ref{eq:ZSkykEquation} through~\ref{eq:ZstSunkEquation} become: \begin{equation} -{W^{{\rm{(Sky), }}k}} = {I^{({\bf{Sky}})}}(t){Z^{{\rm{(Sky), }}k}} +{W^{{\mathrm{(Sky), }}k}} = {I^{({\mathbf{Sky}})}}(t){Z^{{\mathrm{(Sky), }}k}} \label{eq:WSkykEquation} \end{equation} \begin{equation} -\begin{array}{c}{W^{{\rm{(Sf,n)}},k}} = {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(sp, n)}}}}{Z_{{\rm{r(}}t{\rm{)}}}}^{{\rm{(sp, Sf, n)}},k} + {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(n)}}}}{Z_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun, Sf, n)}},k}\\ + {I^{({\bf{Sky}})}}(t){\rho ^{{\rm{(n)}}}}{Z^{{\rm{(Sky, Sf, n)}},k}}\end{array} +\begin{array}{c}{W^{{\mathrm{(Sf,n)}},k}} = {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(sp, n)}}}}{Z_{{\mathrm{r(}}t{\mathrm{)}}}}^{{\mathrm{(sp, Sf, n)}},k} + {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(n)}}}}{Z_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun, Sf, n)}},k}\\ + {I^{({\mathbf{Sky}})}}(t){\rho ^{{\mathrm{(n)}}}}{Z^{{\mathrm{(Sky, Sf, n)}},k}}\end{array} \end{equation} \begin{equation} -{W^{{\rm{(Gnd)}},k}} = {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(Gnd)}}}}{Z_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(D, Gnd)}},k} + {I^{({\bf{Sky}})}}(t){\rho ^{{\rm{(Gnd)}}}}{Z^{{\rm{(Sky, Gnd)}},k}} +{W^{{\mathrm{(Gnd)}},k}} = {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(Gnd)}}}}{Z_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(D, Gnd)}},k} + {I^{({\mathbf{Sky}})}}(t){\rho ^{{\mathrm{(Gnd)}}}}{Z^{{\mathrm{(Sky, Gnd)}},k}} \end{equation} \begin{equation} -{W^{{\rm{(Sun)}},k}} = {I^{{\rm{(D)}}}}(t){Z_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}},k} +{W^{{\mathrm{(Sun)}},k}} = {I^{{\mathrm{(D)}}}}(t){Z_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}},k} \label{eq:WSunkEquation} \end{equation} @@ -2697,47 +2713,47 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe For thermal calculations, it is necessary to know the energy absorbed in each layer of the fenestration.~ This depends only on the incident geometry, but otherwise is calculated in the same manner as the solar flux incident on interior surfaces. ~For a given layer l of a fenestration f, we define a source-referenced absorption factor, K(source),l.~ This is the amount of energy absorbed in layer l divided by the relevant solar intensity (which might be beam, diffuse, or reflected beam or diffuse, depending on the source of the radiation).~ These absorption factors and the resultant source-specific absorbed solar powers are calculated by the analogs {[}see Equation~\ref{eq:QnVectorMatrixEquation} or Equations~\ref{eq:ZSkykEquation} through~\ref{eq:ZstSunkEquation}{]}: \begin{equation} -{K^{{\rm{(Sky), }}l}} = {A^{{\rm{(f)}}}}\sum\limits_{i{\rm{ }}down} {{\mathop{\rm \mathcal{A}}\nolimits}_i^{F,l}{\Lambda_{ii}}V_i^{{\rm{(Sky)}}}{s_i}} +{K^{{\mathrm{(Sky), }}l}} = {A^{{\mathrm{(f)}}}}\sum\limits_{i{\mathrm{ }}down} {\operatorname{\mathcal{A}}_i^{F,l}{\Lambda_{ii}}V_i^{{\mathrm{(Sky)}}}{s_i}} \end{equation} \begin{equation} -{Q^{{\rm{(Sky), }}l}} = {I^{({\bf{Sky}})}}(t){K^{{\rm{(Sky), }}l}} +{Q^{{\mathrm{(Sky), }}l}} = {I^{({\mathbf{Sky}})}}(t){K^{{\mathrm{(Sky), }}l}} \end{equation} \begin{equation} -{K_{{\rm{r(}}t{\rm{)}}}}^{{\rm{(sp, Sf, n)}},l} = {A^{{\rm{(f)}}}}{\mathop{\rm \mathcal{A}}\nolimits}_{r(t)}^{F,l}{\Lambda_{{\rm{ r(}}t{\rm{) r(}}t{\rm{)}}}}V_{{\rm{ r(}}t{\rm{)}}}^{{\rm{(Sf, n)}}}U_{{\rm{ r(}}t{\rm{) s(}}t{\rm{)}}}^{{\rm{(D,n)}}} +{K_{{\mathrm{r(}}t{\mathrm{)}}}}^{{\mathrm{(sp, Sf, n)}},l} = {A^{{\mathrm{(f)}}}}\operatorname{\mathcal{A}}_{r(t)}^{F,l}{\Lambda_{{\mathrm{ r(}}t{\mathrm{) r(}}t{\mathrm{)}}}}V_{{\mathrm{ r(}}t{\mathrm{)}}}^{{\mathrm{(Sf, n)}}}U_{{\mathrm{ r(}}t{\mathrm{) s(}}t{\mathrm{)}}}^{{\mathrm{(D,n)}}} \end{equation} \begin{equation} -{K_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun, Sf, n)}},l} = {A^{{\rm{(f)}}}}\sum\limits_{i{\rm{ }}down} {{\mathop{\rm \mathcal{A}}\nolimits}_i^{F,l}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D,n)}}}} +{K_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun, Sf, n)}},l} = {A^{{\mathrm{(f)}}}}\sum\limits_{i{\mathrm{ }}down} {\operatorname{\mathcal{A}}_i^{F,l}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D,n)}}}} \end{equation} \begin{equation} -{K^{{\rm{(Sky, Sf, n)}},l}} = {A^{{\rm{(f)}}}}\sum\limits_{i{\rm{ }}down} {{\mathop{\rm \mathcal{A}}\nolimits}_i^{F,l}{\Lambda_{ii}}V_i^{{\rm{(Sf, n)}}}U_i^{{\rm{(Sky, n)}}}} +{K^{{\mathrm{(Sky, Sf, n)}},l}} = {A^{{\mathrm{(f)}}}}\sum\limits_{i{\mathrm{ }}down} {\operatorname{\mathcal{A}}_i^{F,l}{\Lambda_{ii}}V_i^{{\mathrm{(Sf, n)}}}U_i^{{\mathrm{(Sky, n)}}}} \end{equation} \begin{equation} -\begin{array}{c}{Q^{{\rm{(Sf,n)}},l}} = {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(sp, n)}}}}{K_{{\rm{r(}}t{\rm{)}}}}^{{\rm{(sp, Sf, n)}},l} + {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(n)}}}}{K_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun, Sf, n)}},l}\\ + {I^{({\bf{Sky}})}}(t){\rho ^{{\rm{(n)}}}}{K^{{\rm{(Sky, Sf, n)}},l}}\end{array} +\begin{array}{c}{Q^{{\mathrm{(Sf,n)}},l}} = {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(sp, n)}}}}{K_{{\mathrm{r(}}t{\mathrm{)}}}}^{{\mathrm{(sp, Sf, n)}},l} + {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(n)}}}}{K_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun, Sf, n)}},l}\\ + {I^{({\mathbf{Sky}})}}(t){\rho ^{{\mathrm{(n)}}}}{K^{{\mathrm{(Sky, Sf, n)}},l}}\end{array} \end{equation} \begin{equation} -{K_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(D, Gnd)}},l} = {A^{{\rm{(f)}}}}\sum\limits_{i{\rm{ }}up} {{\mathop{\rm \mathcal{A}}\nolimits}_i^{F,l}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}U_{i{\rm{ }}Sun(tsh)}^{{\rm{(D, Gnd)}}}} +{K_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(D, Gnd)}},l} = {A^{{\mathrm{(f)}}}}\sum\limits_{i{\mathrm{ }}up} {\operatorname{\mathcal{A}}_i^{F,l}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}U_{i{\mathrm{ }}Sun(tsh)}^{{\mathrm{(D, Gnd)}}}} \end{equation} \begin{equation} -{K^{{\rm{(Sky, Gnd)}},l}} = {A^{{\rm{(f)}}}}\sum\limits_{i{\rm{ }}up} {{\mathop{\rm \mathcal{A}}\nolimits}_i^{F,l}{\Lambda_{ii}}V_i^{{\rm{(Gnd)}}}U_i^{{\rm{(Sky, Gnd)}}}} +{K^{{\mathrm{(Sky, Gnd)}},l}} = {A^{{\mathrm{(f)}}}}\sum\limits_{i{\mathrm{ }}up} {\operatorname{\mathcal{A}}_i^{F,l}{\Lambda_{ii}}V_i^{{\mathrm{(Gnd)}}}U_i^{{\mathrm{(Sky, Gnd)}}}} \end{equation} \begin{equation} -{Q^{{\rm{(Gnd)}},l}} = {I^{{\rm{(D)}}}}(t){\rho ^{{\rm{(Gnd)}}}}{K_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(D, Gnd)}},l} + {I^{({\bf{Sky}})}}(t){\rho ^{{\rm{(Gnd)}}}}{K^{{\rm{(Sky, Gnd)}},l}} +{Q^{{\mathrm{(Gnd)}},l}} = {I^{{\mathrm{(D)}}}}(t){\rho ^{{\mathrm{(Gnd)}}}}{K_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(D, Gnd)}},l} + {I^{({\mathbf{Sky}})}}(t){\rho ^{{\mathrm{(Gnd)}}}}{K^{{\mathrm{(Sky, Gnd)}},l}} \end{equation} \begin{equation} -{K_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}},l} = {A^{{\rm{(f)}}}}{\mathop{\rm \mathcal{A}}\nolimits}_{{\rm{s}}(t)}^{F,l}\cos {\theta_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}}}V_{i{\rm{ s(}}t{\rm{)}}}^{{\rm{(D)}}} +{K_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}},l} = {A^{{\mathrm{(f)}}}}\operatorname{\mathcal{A}}_{{\mathrm{s}}(t)}^{F,l}\cos {\theta_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}}}V_{i{\mathrm{ s(}}t{\mathrm{)}}}^{{\mathrm{(D)}}} \end{equation} \begin{equation} -{Q^{{\rm{(Sun)}},l}} = {I^{{\rm{(D)}}}}(t){K_{{\rm{s(}}t{\rm{)}}}}^{{\rm{(Sun)}},l} +{Q^{{\mathrm{(Sun)}},l}} = {I^{{\mathrm{(D)}}}}(t){K_{{\mathrm{s(}}t{\mathrm{)}}}}^{{\mathrm{(Sun)}},l} \end{equation} \subparagraph{Comment on Bases}\label{comment-on-bases} @@ -2749,17 +2765,17 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe The specular property means that one should not be using Equation~\ref{eq:SofptotheTDiffEq} at all to describe the transmittance.~ Instead, one should use the equation: \begin{equation} -S({{\bf{p}}^{{\rm{(T)}}}}) = \tau ({{\bf{p}}^{{\rm{(T)}}}}) \cdot E({{\bf{p}}^{{\rm{(T)}}}}) +S({{\mathbf{p}}^{{\mathrm{(T)}}}}) = \tau ({{\mathbf{p}}^{{\mathrm{(T)}}}}) \cdot E({{\mathbf{p}}^{{\mathrm{(T)}}}}) \end{equation} -This equation is shoehorned into the integral calculation of equation through the use of a delta function in the incident direction vector, resulting (after the discretization) in a diagonal matrix for the transmittance (or reflectance).~ The outgoing radiance element on the diagonal would be calculated as \emph{T\(_{ii}\)}\emph{\(\Lambda\)\(_{ii}\)}, where multiplication by \emph{\(\Lambda\)\(_{ii}\)} substitutes for integration over the basis solid angle element. For a specular glazing, \(T_{ii} = \tau(\bf{p}_i^{(T)})/\Lambda_{ii}\), so one recovers the correct transmittance when one does the multiplication. However, there is still a problem in principle: For a specular fenestration, the angular spread of the outgoing radiation will be that of the source, which for direct sunlight is very small; the calculation, however, assumes the angular spread of the basis element. This problem disappears in the geometric approximation to be used in EnergyPlus: by considering only the central direction of each basis element, the outgoing radiation in that direction is essentially assumed to be specular, so the blurring in the discretization is undone. +This equation is shoehorned into the integral calculation of equation through the use of a delta function in the incident direction vector, resulting (after the discretization) in a diagonal matrix for the transmittance (or reflectance).~ The outgoing radiance element on the diagonal would be calculated as \emph{T\(_{ii}\)}\emph{\(\Lambda\)\(_{ii}\)}, where multiplication by \emph{\(\Lambda\)\(_{ii}\)} substitutes for integration over the basis solid angle element. For a specular glazing, \(T_{ii} = \tau(\mathbf{p}_i^{(T)})/\Lambda_{ii}\), so one recovers the correct transmittance when one does the multiplication. However, there is still a problem in principle: For a specular fenestration, the angular spread of the outgoing radiation will be that of the source, which for direct sunlight is very small; the calculation, however, assumes the angular spread of the basis element. This problem disappears in the geometric approximation to be used in EnergyPlus: by considering only the central direction of each basis element, the outgoing radiation in that direction is essentially assumed to be specular, so the blurring in the discretization is undone. The axial symmetry of conventional glazings means that the transmittance (or reflectance) depends on only the incident angle, not the azimuthal angle about the normal to the fenestration plane.~ So if one specifies the diagonal elements of the matrix, all of the terms with the same incident angles but different azimuthal angles will be the same.~ One could alternatively specify only the specular transmittance at each of the incident angle values, provided one also indicated that it was for an axially symmetric fenestration.~ Since expanding this set of values to the equivalent diagonal elements is a trivial calculation, how one specifies a specular glazing is completely a question of user convenience.~ For example, if one were dealing with the WINDOW full basis, would it be more user-friendly to specify \begin{enumerate} \def\labelenumi{(\arabic{enumi})} \item - \(T_{ii} = \tau(\bf{p}_i^{(T)})/\Lambda_{ii}\) , for 145 values, 135 of which are repeats of the previous value + \(T_{ii} = \tau(\mathbf{p}_i^{(T)})/\Lambda_{ii}\) , for 145 values, 135 of which are repeats of the previous value \item \(\tau ({\theta_i})\) ~for 9 values of incident angle, \emph{\(\theta\)\(_{i}\)} ? \end{enumerate} @@ -2867,7 +2883,7 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Direct solar radiation transmitted through other windows is using solar overlap calculations described in the section on Overlapping Shadows. Overlapping is used to determine amount of energy transferred through the window is hitting certain surface.~ That is used to calculate energy absorbed in walls and same approach will be used to calculate energy absorbed in window layers (Equation~\ref{eq:AISurfEquation}).~ In case when receiving surface is complex fenestration, it is not enough just to apply Equation~\ref{eq:AISurfEquation} because factor AbsIntSurf is now depending of incoming angle which is defined through front and back directional absorptance matrices.~ It would mean that for each outgoing directions of transmitting complex fenestration, algorithm would need to determine what is best matching basis direction of receiving surface.~ Best receiving direction is used to determine absorptance factors which will be used in Equation~\ref{eq:AISurfEquation}.~ It is important to understand that for basis definition, each unit vector defining one beam is going towards surface, which would mean that best matching directions from surface to surface will actually have minimal dot product. \begin{equation} -Bes{t_{in}} = {\rm{min}}\left( {dot\left( {ou{t_p},i{n_1}} \right),dot\left( {ou{t_p},i{n_2}} \right), \ldots ,dot\left( {ou{t_p},i{n_N}} \right)} \right) +Bes{t_{in}} = {\mathrm{min}}\left( {dot\left( {ou{t_p},i{n_1}} \right),dot\left( {ou{t_p},i{n_2}} \right), \ldots ,dot\left( {ou{t_p},i{n_N}} \right)} \right) \label{eq:BestinEquation} \end{equation} diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex index 6a21c1e1867..2f34d0dc161 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex @@ -84,11 +84,11 @@ \subsubsection{Absorbed Radiation}\label{absorbed-radiation} \emph{S\(_{i}\)} in Equations~\ref{eq:GlazingFace1HeatBalEquation} to~\ref{eq:GlazingFace4HeatBalEquation} is the radiation (short-wave and long-wave from zone lights and equipment) absorbed on the \emph{i}\(^{th}\) face. Short-wave radiation (solar and short-wave from lights) is assumed to be absorbed uniformly along a glass layer, so for the purposes of the heat balance calculation it is split equally between the two faces of a layer. Glass layers are assumed to be opaque to IR so that the thermal radiation from lights and equipment is assigned only to the inside (room-side) face of the inside glass layer. For \emph{N} glass layers \emph{S\(_{i}\)} is given by \begin{equation} -{S_{2j - 1}} = {S_{2j}} = \frac{1}{2}\left( {I_{bm}^{ext}\cos \phi A_j^f(\phi ) + I_{dif}^{ext}A_j^{f,dif} + I_{sw}^{{\mathop{\rm int}} }A_j^{b,dif}} \right),{\rm{ ~}}j = 1{\rm{~to~}}N +{S_{2j - 1}} = {S_{2j}} = \frac{1}{2}\left( {I_{bm}^{ext}\cos \phi A_j^f(\phi ) + I_{dif}^{ext}A_j^{f,dif} + I_{sw}^{{\mathop\mathrm{int}} }A_j^{b,dif}} \right),{\mathrm{ ~}}j = 1{\mathrm{~to~}}N \end{equation} \begin{equation} -{S_{2N}} = {S_{2N}} + {\varepsilon_{2N}}I_{lw}^{{\mathop{\rm int}} } +{S_{2N}} = {S_{2N}} + {\varepsilon_{2N}}I_{lw}^{{\mathop\mathrm{int}} } \end{equation} Here @@ -97,15 +97,15 @@ \subsubsection{Absorbed Radiation}\label{absorbed-radiation} \(I_{dif}^{ext}\) = exterior diffuse solar incident on glazing from outside -\(I_{sw}^{{\mathop{\rm int}} }\) = interior short-wave radiation (from lights and from reflected diffuse solar) incident on glazing from inside +\(I_{sw}^{{\mathop\mathrm{int}} }\) = interior short-wave radiation (from lights and from reflected diffuse solar) incident on glazing from inside -\(I_{lw}^{{\mathop{\rm int}} }\) = long-wave radiation from lights and equipment incident on glazing from inside +\(I_{lw}^{{\mathop\mathrm{int}} }\) = long-wave radiation from lights and equipment incident on glazing from inside \({\varepsilon_{2N}}\) = emissivity (thermal absorptance) of the room-side face of the inside glass layer \subsection{Room-Side Convection}\label{room-side-convection} -The correlation for room-side convection coefficient, \({h_i}\) , is from ISO 15099 section 8.3.2.2.~ (Prior to EnergyPlus version 3.1, the value for \({h_i}\) ~was modeled using the ``Detailed'' algorithm for opaque surface heat transfer, e.g.~for a vertical surface \({h_i} = 1.31{\left| {\Delta T} \right|^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}}\) ; see section Detailed Natural Convection Algorithm).~ The ISO 15099 correlation is for still room air and is determined in terms of the Nusselt number, \(Nu\), is: +The correlation for room-side convection coefficient, \({h_i}\) , is from ISO 15099 section 8.3.2.2.~ (Prior to EnergyPlus version 3.1, the value for \({h_i}\) ~was modeled using the ``Detailed'' algorithm for opaque surface heat transfer, e.g.~for a vertical surface \({h_i} = 1.31{\left| {\Delta T} \right|^{{\frac{1}{3}}}}\) ; see section Detailed Natural Convection Algorithm).~ The ISO 15099 correlation is for still room air and is determined in terms of the Nusselt number, \(Nu\), is: \begin{equation} {h_i} = Nu\left( {\frac{\lambda }{H}} \right) @@ -144,33 +144,33 @@ \subsection{Room-Side Convection}\label{room-side-convection} Case A. \({0^\circ } \le \gamma < 15^\circ\) \begin{equation} -Nu = 0.13Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}} +Nu = 0.13Ra_H^{{\frac{1}{3}}} \end{equation} Case B. \(15^\circ \le \gamma \le 90^\circ\) \begin{equation} -R{a_{cv}} = 2.5 \times {10^5}{\left( {\frac{{{e^{0.72\gamma }}}}{{\sin \lambda }}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}}} +R{a_{cv}} = 2.5 \times {10^5}{\left( {\frac{{{e^{0.72\gamma }}}}{{\sin \lambda }}} \right)^{{\frac{1}{5}}}} \end{equation} \begin{equation} -Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}};\;for\;R{a_H} \le R{a_{CV}} +Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\frac{1}{4}}}};\;for\;R{a_H} \le R{a_{CV}} \end{equation} \begin{equation} -Nu = 0.13\left( {Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}} - Ra_{CV}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} \right) + 0.56{\left( {R{a_{CV}}\sin \gamma } \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}};\;R{a_H} > R{a_{CV}} +Nu = 0.13\left( {Ra_H^{{\frac{1}{3}}} - Ra_{CV}^{{\frac{1}{3}}}} \right) + 0.56{\left( {R{a_{CV}}\sin \gamma } \right)^{{\frac{1}{4}}}};\;R{a_H} > R{a_{CV}} \end{equation} Case C. \(90^\circ < \gamma \le 179^\circ\) \begin{equation} -Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}};\;{10^5} \le R{a_H}\sin \gamma < {10^{11}} +Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\frac{1}{4}}}};\;{10^5} \le R{a_H}\sin \gamma < {10^{11}} \end{equation} Case D. \(179^\circ < \gamma \le 180^\circ\) \begin{equation} -Nu = 0.58Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}};\;R{a_H} \le {10^{11}} +Nu = 0.58Ra_H^{{\frac{1}{5}}};\;R{a_H} \le {10^{11}} \end{equation} The material properties are evaluated at the mean film temperature.~ Standard EnergyPlus psychrometric functions are used for \(\rho\) ~and \({c_p}\).~ Thermal conductivity is calculated using: @@ -216,7 +216,7 @@ \subsection{Solving the Glazing Heat Balance Equations}\label{solving-the-glazin Repeat steps 4 to 9 until the difference, \(\Delta {\theta_i}\), between values of the \({\theta_i}\)~in successive iterations is less than some tolerance value. Currently, the test is: \begin{equation} -\frac{1}{{2N}}\sum\limits_{i = 1}^{2N} {|\Delta {\theta_i}|{\rm{ }} < 0.02K} +\frac{1}{{2N}}\sum\limits_{i = 1}^{2N} {|\Delta {\theta_i}|{\mathrm{ }} < 0.02K} \end{equation} If this test does not pass after 100 iterations, the tolerance is increased to 0.2K. If the test still fails the program stops and an error message is issued. @@ -371,7 +371,7 @@ \subsection{Apportioning of Absorbed Short-Wave Radiation in Shading Device Laye If a shading device has a non-zero short-wave transmittance then absorption takes place throughout the shading device layer. The following algorithm is used to apportion the absorbed short-wave radiation to the two faces of the layer. Here \emph{f\(_{1}\)} is the fraction assigned to the face closest to the incident radiation and \emph{f\(_{2}\)} is the fraction assigned to the face furthest from the incident radiation. \begin{equation} -{f_1} = 1,~{\rm{ }}{f_2} = 0{\rm{~if~}}{\tau_{sh}} = 0 +{f_1} = 1,~{\mathrm{ }}{f_2} = 0{\mathrm{~if~}}{\tau_{sh}} = 0 \end{equation} Otherwise: @@ -885,7 +885,7 @@ \subsection{Beam Solar Reflection from Window Reveal Surfaces}\label{beam-solar- The beam solar reflected from a sunlit region of area \(A\) is given by: \begin{equation} -R = {I_B}A\cos \beta (1 - a){\rm{ }} +R = {I_B}A\cos \beta (1 - a){\mathrm{ }} \end{equation} where @@ -996,7 +996,7 @@ \subsection{Heat Balance Equations for Shading Device and Adjacent Glass}\label{ The convective heat transfer coefficient is given by: \begin{equation} -{h_{cv}} = 2{h_c} + 4v +{h_{cv}} = 2{h_c} + 4{v} \label{eq:hcvConvectiveCoefficientEquation} \end{equation} @@ -1090,7 +1090,7 @@ \subsubsection{Pressure Balance Equation}\label{pressure-balance-equation} The \emph{Δp\(_{B}\)} term is due to the acceleration of air to velocity \emph{v} (Bernoulli's law). It is given by: \begin{equation} -\Delta {p_B} = \frac{\rho }{2}{v^2}{\rm{ (Pa)}} +\Delta {p_B} = \frac{\rho }{2}{v^2}{\mathrm{ (Pa)}} \end{equation} where \emph{$\rho$}~is the gap air density evaluated at \emph{T\(_{gap}\)} (kg/m\(^{3}\)). @@ -1098,7 +1098,7 @@ \subsubsection{Pressure Balance Equation}\label{pressure-balance-equation} The \emph{Δp\(_{HP}\)} term represents the pressure drop due to friction with the shading layer and glass surfaces as the air moves through the gap. Assuming steady laminar flow, it is given by the Hagen-Poiseuille law for flow between parallel plates {[}Munson et al. 1998{]}: \begin{equation} -\Delta {p_{HP}} = 12\mu \frac{H}{{{s^2}}}{v^{}}{\rm{ (Pa)}} +\Delta {p_{HP}} = 12\mu \frac{H}{{{s^2}}}{v^{}}{\mathrm{ (Pa)}} \end{equation} where \emph{$\mu$} is the viscosity of air at temperature \emph{T\(_{gap}\)} (Pa-s). @@ -1106,7 +1106,7 @@ \subsubsection{Pressure Balance Equation}\label{pressure-balance-equation} The \emph{Δp\(_{Z}\)} term is the sum of the pressure drops at the inlet and outlet openings: \begin{equation} -\Delta {p_Z} = \frac{{\rho {v^2}}}{2}\left( {{Z_{in}} + {Z_{out}}} \right){\rm{ (Pa)}} +\Delta {p_Z} = \frac{{\rho {v^2}}}{2}\left( {{Z_{in}} + {Z_{out}}} \right){\mathrm{ (Pa)}} \end{equation} Here, the inlet pressure drop factor, Z\(_{in}\), and the outlet pressure drop factor, Z\(_{out}\), are given by: @@ -1251,19 +1251,19 @@ \subsubsection{Pressure Balance Equation}\label{pressure-balance-equation} The heat added (or removed) from the air as it passes through the gap produces a convective gain (or loss) to the zone air given by: \begin{equation} -{q_v} = LW\left[ {{h_{cv}}\left( {{T_{gl}} - {T_{gap}}} \right) + {h_{cv}}\left( {{T_{sh}} - {T_{gap}}} \right)} \right] = 2{h_{cv}}LW\left( {{T_{ave}} - {T_{gap}}} \right){\rm{ (W)}} +{q_v} = LW\left[ {{h_{cv}}\left( {{T_{gl}} - {T_{gap}}} \right) + {h_{cv}}\left( {{T_{sh}} - {T_{gap}}} \right)} \right] = 2{h_{cv}}LW\left( {{T_{ave}} - {T_{gap}}} \right){\mathrm{ (W)}} \end{equation} This can also be expressed as: \begin{equation} -{q_v} = \dot m{C_p}\left( {{T_{gap,out}} - {T_{gap,in}}} \right){\rm{ (W)}} +{q_v} = \dot m{C_p}\left( {{T_{gap,out}} - {T_{gap,in}}} \right){\mathrm{ (W)}} \end{equation} where the air mass flow rate in the gap is given by: \begin{equation} -\dot m = \rho {A_{gap}}v{\rm{ (kg/s)}} +\dot m = \rho {A_{gap}}v{\mathrm{ (kg/s)}} \end{equation} \subsection{Improved Airflow Equations for Window Screens and Horizontal Louvered Blind Systems} @@ -1468,7 +1468,7 @@ \subsection{Heat Balance Equations for Between-Glass Shading Device}\label{heat- where the driving pressure difference between gap \#1 and \#2 is: \begin{equation} -\Delta {p_{T,1,2}} = {\rho_0}{T_0}gH\sin \phi \frac{{\left| {{T_{gap,1}} - {T_{gap,2}}} \right|}}{{{T_{gap,1}}{T_{gap,2}}}}{\rm{~~~~~(Pa)}} +\Delta {p_{T,1,2}} = {\rho_0}{T_0}gH\sin \phi \frac{{\left| {{T_{gap,1}} - {T_{gap,2}}} \right|}}{{{T_{gap,1}}{T_{gap,2}}}}{\mathrm{~~~~~(Pa)}} \label{eq:DeltapT12Equation} \end{equation} @@ -1568,7 +1568,7 @@ \subsection{Heat Balance Equations for Between-Glass Shading Device}\label{heat- 7)~~~~Get \({T_{gap,1}}\) ,\({T_{gap,2}}\) from Equations~\ref{eq:Tgap1Equation} and~\ref{eq:Tgap2Equation}. -The values \({h_{cv,1}}{\rm{,~}}{h_{cv,2}}{\rm{,~}}{T_{gap,1}}\)~and \({T_{gap,2}}\) are then used in the face heat balance equations to find new values of the face temperatures \({\theta_2}{\rm{,~}}{\theta_3},{\rm{~}}{\theta_5}\) and \({\theta_6}\). These are used in turn to get new values of \({h_{cv,1}}{\rm{,~}}{h_{cv,2}}{\rm{,~}}{T_{gap,1}}\)~and \({T_{gap,2}}\) until the whole iterative process converges. +The values \({h_{cv,1}}{\mathrm{,~}}{h_{cv,2}}{\mathrm{,~}}{T_{gap,1}}\)~and \({T_{gap,2}}\) are then used in the face heat balance equations to find new values of the face temperatures \({\theta_2}{\mathrm{,~}}{\theta_3},{\mathrm{~}}{\theta_5}\) and \({\theta_6}\). These are used in turn to get new values of \({h_{cv,1}}{\mathrm{,~}}{h_{cv,2}}{\mathrm{,~}}{T_{gap,1}}\)~and \({T_{gap,2}}\) until the whole iterative process converges. \subsection{Airflow Windows}\label{airflow-windows} @@ -1635,7 +1635,7 @@ \subsection{Airflow Windows}\label{airflow-windows} The air velocity is determined by the gap cross-sectional area in the flow direction and the air flow rate, which is an input value that is constant or can vary according to a user-specified schedule: \begin{equation} -v = \frac{F}{{{A_{gap}}}}{\rm{~~~~~~(m/s)}} +v = \frac{F}{{{A_{gap}}}}{\mathrm{~~~~~~(m/s)}} \end{equation} where @@ -1677,7 +1677,7 @@ \subsection{Airflow Windows}\label{airflow-windows} The convective heat gain to the zone air due to the gap airflow when the airflow destination is indoor air is: \begin{equation} -{q_v} = \dot m({C_{p,out}}{T_{gap,out}} - {C_{p,i}}{T_i}){\rm{~~~~~~(W)}} +{q_v} = \dot m({C_{p,out}}{T_{gap,out}} - {C_{p,i}}{T_i}){\mathrm{~~~~~~(W)}} \end{equation} where @@ -1689,7 +1689,7 @@ \subsection{Airflow Windows}\label{airflow-windows} and where the air mass flow rate in the gap is: \begin{equation} -\dot m = \rho F{\rm{~~~~~~(kg/s)}} +\dot m = \rho F{\mathrm{~~~~~~(kg/s)}} \end{equation} \subsubsection{Fan Energy}\label{fan-energy} @@ -1701,7 +1701,7 @@ \subsubsection{Airflow Window with Between-Glass Shading Device}\label{airflow-w Figure~\ref{fig:airflow-window-with-between-glass-shading} shows the case of a double-glazed airflow window with a between glass shading device. The heat balance equations in this case are the same as those for the between-glass shading device with natural convection (Figure~\ref{fig:glazing-system-with-two-glass-layers-and-a} and following equations) except that now: \begin{equation} -v = \frac{{F/2}}{{{A_{gap}}}}{\rm{~~~~~~(m/s)}} +v = \frac{{F/2}}{{{A_{gap}}}}{\mathrm{~~~~~~(m/s)}} \end{equation} where \emph{A\(_{gap}\)} = \emph{sW} is the cross-sectional area of the gap on either side of the shading device. It is assumed that the shading device is centered between the two panes of glass so that the airflow, \emph{F}, is divided equally between the two gaps. @@ -1709,13 +1709,13 @@ \subsubsection{Airflow Window with Between-Glass Shading Device}\label{airflow-w The convective heat gain to the zone air due to the airflow through the two gaps when the airflow destination is indoor air is: \begin{equation} -{q_v} = \dot m({C_{p,ave,out}}{T_{gap,ave,out}} - {C_{p,i}}{T_i}{\rm{) (W)}} +{q_v} = \dot m({C_{p,ave,out}}{T_{gap,ave,out}} - {C_{p,i}}{T_i}{\mathrm{) (W)}} \end{equation} where the average temperature of the two outlet air streams is: \begin{equation} -{T_{gap,ave,out}}{\rm{ = }}({T_{gap,1,out}} + {T_{gap,2,out}})/2 +{T_{gap,ave,out}}{\mathrm{ = }}({T_{gap,1,out}} + {T_{gap,2,out}})/2 \end{equation} and @@ -2010,17 +2010,17 @@ \subsubsection{Calculation of the deflection and thermal performance caused by p \end{figure} \begin{equation} -\emph{\(\Delta\)P\(_{i}\)} = \emph{P\(_{gap(i)}\)} - \emph{P\(_{gap(i-1)}\)} (for~i-th~pane) {~~[}Force~per~unit~Area;~SI:~Pa,~IP:~psi{]} +\textit{\(\Delta\)P\(_{i}\)} = \textit{P\(_{gap(i)}\)} - \textit{P\(_{gap(i-1)}\)} (for~i-th~pane) {~~[}Force~per~unit~Area;~SI:~Pa,~IP:~psi{]} \label{eq:IGUdPiIthPane} \end{equation} \begin{equation} -\emph{\(\Delta\)P\(_{i}\)} = \emph{P\(_{gap(1)}\)} - \emph{P\(_{a}\)} (first~pane) {~~[}Force~per~unit~Area;~SI:~Pa,~IP:~psi{]} +\textit{\(\Delta\)P\(_{i}\)} = \textit{P\(_{gap(1)}\)} - \textit{P\(_{a}\)} (first~pane) {~~[}Force~per~unit~Area;~SI:~Pa,~IP:~psi{]} \label{eq:IGUdPiFirstPane} \end{equation} \begin{equation} -\emph{\(\Delta\)P\(_{i}\)} = \emph{P\(_{a}\) - P\(_{gap(n-1)}\)} (last~pane) {~~[}Force~per~unit~Area;~SI:~Pa,~IP:~psi{]} +\textit{\(\Delta\)P\(_{i}\)} = \textit{P\(_{a}\) - P\(_{gap(n-1)}\)} (last~pane) {~~[}Force~per~unit~Area;~SI:~Pa,~IP:~psi{]} \label{eq:IGUdPiLastPane} \end{equation} @@ -2076,13 +2076,13 @@ \subsubsection{Calculation of the deflection and thermal performance caused by p The important part of calculating deflection of the IGU is to determine mean deflection value for each glazing pane. Mean deflection value is used to calculate gap volume in deflected state (see Equation~\ref{eq:IGUGapVolume}). Mean deflection of glazing pane can be calculated by integrating Equation~\ref{eq:IGUDeflection}: \begin{equation} -\overline {{L_{D\left( i \right)}}} = \mathop \smallint \limits_{x = 0}^W \mathop \smallint \limits_{y = 0}^H \frac{{16\cdot \Delta {P_{\left( i \right)}}}}{{{\pi ^6}\cdot {D_{\left( i \right)}}}}\mathop \sum \limits_{m = 1,3,5 \ldots }^\infty \mathop \sum \limits_{n = 1,3,5 \ldots }^\infty \frac{{\sin \frac{{m\pi x}}{W}\sin \frac{{n\pi y}}{H}}}{{mn{{\left( {{{\left( {\frac{m}{W}} \right)}^2} + {{\left( {\frac{n}{H}} \right)}^2}} \right)}^2}}} +\overline {{L_{D\left( i \right)}}} = \mathop \int \limits_{x = 0}^W \mathop \int \limits_{y = 0}^H \frac{{16\cdot \Delta {P_{\left( i \right)}}}}{{{\pi ^6}\cdot {D_{\left( i \right)}}}}\mathop \sum \limits_{m = 1,3,5 \ldots }^\infty \mathop \sum \limits_{n = 1,3,5 \ldots }^\infty \frac{{\sin \frac{{m\pi x}}{W}\sin \frac{{n\pi y}}{H}}}{{mn{{\left( {{{\left( {\frac{m}{W}} \right)}^2} + {{\left( {\frac{n}{H}} \right)}^2}} \right)}^2}}} \end{equation} This is identical to the following expression: \begin{equation} -\overline {{L_{D\left( i \right)}}} = \frac{{16\cdot \Delta {P_{\left( i \right)}}}}{{{\pi ^6}\cdot {D_{\left( i \right)}}}}\mathop \sum \limits_{m = 1,3,5 \ldots }^\infty \mathop \sum \limits_{n = 1,3,5 \ldots }^\infty \frac{{\mathop \smallint \nolimits_{x = 0}^W \mathop \smallint \nolimits_{y = 0}^H \sin \frac{{m\pi x}}{W}\sin \frac{{n\pi y}}{H}}}{{mn{{\left( {{{\left( {\frac{m}{W}} \right)}^2} + {{\left( {\frac{n}{H}} \right)}^2}} \right)}^2}}} +\overline {{L_{D\left( i \right)}}} = \frac{{16\cdot \Delta {P_{\left( i \right)}}}}{{{\pi ^6}\cdot {D_{\left( i \right)}}}}\mathop \sum \limits_{m = 1,3,5 \ldots }^\infty \mathop \sum \limits_{n = 1,3,5 \ldots }^\infty \frac{{\mathop \int \nolimits_{x = 0}^W \mathop \int \nolimits_{y = 0}^H \sin \frac{{m\pi x}}{W}\sin \frac{{n\pi y}}{H}}}{{mn{{\left( {{{\left( {\frac{m}{W}} \right)}^2} + {{\left( {\frac{n}{H}} \right)}^2}} \right)}^2}}} \end{equation} and because the integral of sin(x) is equal to --cos(x), the above equation will become: @@ -2162,7 +2162,7 @@ \subsubsection{Calculation of the thermal performance caused by measured deflect An important thing to note is that the ratios $\PB{R_{\PB{i}}}$\ for all gaps in glazing system are equal. \begin{equation} -{R_{\left( 1 \right)}} = {R_{\left( 2 \right)}} = \ldots = {R_{\left( i \right)}} = \ldots = {R_{\left( {n - 1} \right)}} = R +{R_{\left( 1 \right)}} = {R_{\left( 2 \right)}} = \ldots = {R_{\left( i \right)}} = \ldots = {R_{\left( {n - 1} \right)}} = {R} \label{eq:IGUDefletionRatioEquivalency} \end{equation} @@ -2403,39 +2403,39 @@ \subsubsection{Drapes and Curtains}\label{drapes-and-curtains} Off-normal Transmittance: \begin{equation} -{\rm{\tau }}_{{\rm{bb}}}^{\rm{m}}\left( {\rm{\theta }} \right) = {\rm{\tau }}_{{\rm{bb}}}^{\rm{m}}{\rm{(\theta }} = {\rm{0)}} \cdot {\rm{co}}{{\rm{s}}^{\rm{b}}}\left( {\rm{\theta }} \right) +{\mathrm{\tau }}_{{\mathrm{bb}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau }}_{{\mathrm{bb}}}^{\mathrm{m}}{\mathrm{(\theta }} = {\mathrm{0)}} \cdot {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}}\left( {\mathrm{\theta }} \right) \end{equation} \begin{equation} -{\rm{\tau }}_{{\rm{bt}}}^{\rm{m}}\left( {\rm{\theta }} \right) = {\rm{\tau }}_{{\rm{bt}}}^{\rm{m}}{\rm{(\theta }} = {\rm{0)}} \cdot {\rm{co}}{{\rm{s}}^{\rm{b}}}\left( {\rm{\theta }} \right) +{\mathrm{\tau }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau }}_{{\mathrm{bt}}}^{\mathrm{m}}{\mathrm{(\theta }} = {\mathrm{0)}} \cdot {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}}\left( {\mathrm{\theta }} \right) \end{equation} \begin{equation} -{\rm{b}} = {\left[ {\; - 0.5 \cdot \ln \;\left( {\;{{\left[ {{\rm{\tau }}_{{\rm{bb}}}^{\rm{m}}{\rm{(\theta }} = {\rm{0)}}\;{\rm{,}}\;\;{\rm{0}}{\rm{.01}}} \right]}^{\;\max }}\;} \right)\;\;,\;\;0.35\;} \right]^{\;\max }} +{\mathrm{b}} = {\left[ {\; - 0.5 \cdot \ln \;\left( {\;{{\left[ {{\mathrm{\tau }}_{{\mathrm{bb}}}^{\mathrm{m}}{\mathrm{(\theta }} = {\mathrm{0)}}\;{\mathrm{,}}\;\;{\mathrm{0}}{\mathrm{.01}}} \right]}^{\;\max }}\;} \right)\;\;,\;\;0.35\;} \right]^{\;\max }} \end{equation} \begin{equation} -{\rm{b}} = {\left[ {\; - 0.5 \cdot \ln \;\left( {\;{{\left[ {{\rm{\tau }}_{{\rm{bt}}}^{\rm{m}}{\rm{(\theta }} = {\rm{0)}}\;{\rm{,}}\;\;{\rm{0}}{\rm{.01}}} \right]}^{\;\max }}\;} \right)\;\;,\;\;0.35\;} \right]^{\;\max }} +{\mathrm{b}} = {\left[ {\; - 0.5 \cdot \ln \;\left( {\;{{\left[ {{\mathrm{\tau }}_{{\mathrm{bt}}}^{\mathrm{m}}{\mathrm{(\theta }} = {\mathrm{0)}}\;{\mathrm{,}}\;\;{\mathrm{0}}{\mathrm{.01}}} \right]}^{\;\max }}\;} \right)\;\;,\;\;0.35\;} \right]^{\;\max }} \end{equation} \begin{equation} -{\rm{\tau }}_{{\rm{bt}}}^{\rm{m}}\left( {\rm{\theta }} \right) = {\rm{\tau }}_{{\rm{bd}}}^{\rm{m}}\left( {\rm{\theta }} \right) + {\rm{\tau }}_{{\rm{bb}}}^{\rm{m}}\left( {\rm{\theta }} \right) +{\mathrm{\tau }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau }}_{{\mathrm{bd}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) + {\mathrm{\tau }}_{{\mathrm{bb}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) \end{equation} The off-normal reflectance: \begin{equation} -{\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {\rm{\theta }} \right) = {\rm{\rho }}_{{\rm{bd}}}^{\rm{m}}\left( {\rm{\theta }} \right) = {\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right) + \left( {{\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = 9{\rm{0}}^\circ } \right) - {\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right)} \right) \cdot \left( {1 - {\rm{co}}{{\rm{s}}^{{\rm{0}}{\rm{.6}}}}\left( {\rm{\theta }} \right)} \right) +{\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) = {\mathrm{\rho }}_{{\mathrm{bd}}}^{\mathrm{m}}\left( {\mathrm{\theta }} \right) = {\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) + \left( {{\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = 9{\mathrm{0}}^\circ } \right) - {\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)} \right) \cdot \left( {1 - {\mathrm{co}}{{\mathrm{s}}^{{\mathrm{0}}{\mathrm{.6}}}}\left( {\mathrm{\theta }} \right)} \right) \end{equation} \begin{equation} -{\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{90}}^\circ } \right) = {\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right) + \left( {{\rm{1}} - {\rm{\rho }}_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right)} \right)\;\left( {\,0.7{{\left( {\;{\rm{\rho }}_{}^{\rm{y}}} \right)}^{\;0.7}}} \right) +{\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{90}}^\circ } \right) = {\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) + \left( {{\mathrm{1}} - {\mathrm{\rho }}_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)} \right)\;\left( {\,0.7{{\left( {\;{\mathrm{\rho }}_{}^{\mathrm{y}}} \right)}^{\;0.7}}} \right) \end{equation} The apparent yarn reflectance is given by: \begin{equation} -{\rho ^y} = \frac{{\rho_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right)}}{{{\rm{1}} - \tau_{{\rm{bb}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right)}} = \frac{{\rho_{{\rm{bt}}}^{\rm{m}}\left( {{\rm{\theta }} = {\rm{0}}} \right)}}{{{\rm{1}} - {{\rm{A}}_{\rm{o}}}}} +{\rho ^y} = \frac{{\rho_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}}{{{\mathrm{1}} - \tau_{{\mathrm{bb}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}} = \frac{{\rho_{{\mathrm{bt}}}^{\mathrm{m}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}}{{{\mathrm{1}} - {{\mathrm{A}}_{\mathrm{o}}}}} \end{equation} The above set of equations for drapery fabrics are used subject to the condition that the solar absorptance of the fabric, at normal incidence, is not less than 1\% (ASHRE 1311-RP). The diffuse-diffuse material properties, for Equivalent layer window model, are determined using Rhomberg integration with 32 panels covering the range from $\theta = 0$ to $\theta = 90^{o}$ (ASHRAE 1311-RP). The subscript ``X'' stands for either front or back side of the layer. @@ -2451,11 +2451,11 @@ \subsubsection{Drapes and Curtains}\label{drapes-and-curtains} The above set of equations for drapery fabrics apply to the full range of A\(_{o}\), fabric transmittance and fabric reflectance including that falls within the bounds of Keyes' (1967) fabric chart plus sheer fabrics (ASHRAE 1311-RP). The longwave thermal emissivity and thermal transmittances of drapery fabric are calculated using the following correlations and fabric openness fraction (Kotey et al. 2008). \begin{equation} -{\varepsilon ^{\rm{m}}} = {\rm{0}}{\rm{.87}} \cdot \left( {{\rm{1 - }}{{\rm{A}}_{\rm{o}}}} \right) +{\varepsilon ^{\mathrm{m}}} = {\mathrm{0}}{\mathrm{.87}} \cdot \left( {{\mathrm{1 - }}{{\mathrm{A}}_{\mathrm{o}}}} \right) \end{equation} \begin{equation} -{\tau ^{\rm{m}}} = {\rm{1}} - {\rm{0}}{\rm{.95}} \cdot \left( {{\rm{1}} - {{\rm{A}}_{\rm{o}}}} \right) +{\tau ^{\mathrm{m}}} = {\mathrm{1}} - {\mathrm{0}}{\mathrm{.95}} \cdot \left( {{\mathrm{1}} - {{\mathrm{A}}_{\mathrm{o}}}} \right) \end{equation} The optical and thermal properties determined using the above same sets of equations are equally valid for pleated drape shades (Kotey, et. al., 2009a). For pleated drape, the effective beam-beam and beam-diffuse solar properties are determined by tracking both radiation components, for a given incident angle, and interaction with a fabric pleated rectangular geometry shown in Figure~\ref{fig:geometry-used-for-pleated-drape-analysis}. The solar optical properties of the two different pleat planes are evaluated on the basis of the local solar incidence angle. Therefore, the effective layer properties are influenced not just by horizontal solar profile angle, {$\Omega$\(_{H}\), but also by incidence angle (ASHRAE 1311-RP). @@ -2485,52 +2485,52 @@ \subsubsection{Roller Blinds}\label{roller-blinds} The off-normal properties of roller-blind are determined from solar properties of roller blind fabric measured at normal incidence ($\theta = 0$) using correlations (Kotey, et. al., 2009b). The off-normal properties for roller blind shades are calculated using the set equations given below: \begin{equation} -{{\rm{\tau }}_{bb}}\left( {\rm{\theta }} \right) = \left\{ \begin{array}{l}{{\rm{\tau }}_{bb}}{\rm{(\theta }} = {\rm{0)}} \cdot {\rm{co}}{{\rm{s}}^{\rm{b}}}{\kern 1pt} \left( {\frac{{\rm{\theta }}}{{{{\rm{\theta }}_{{\rm{cutoff}}}}}} \cdot \frac{\pi }{2}} \right)\quad \theta < {\theta_{CutOff}}\\0\quad \quad \quad \theta \ge {\theta_{CutOff}}\end{array} \right. +{{\mathrm{\tau }}_{bb}}\left( {\mathrm{\theta }} \right) = \left\{ \begin{array}{l}{{\mathrm{\tau }}_{bb}}{\mathrm{(\theta }} = {\mathrm{0)}} \cdot {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}} \left( {\frac{{\mathrm{\theta }}}{{{{\mathrm{\theta }}_{{\mathrm{cutoff}}}}}} \cdot \frac{\pi }{2}} \right)\quad \theta < {\theta_{CutOff}}\\0\quad \quad \quad \theta \ge {\theta_{CutOff}}\end{array} \right. \end{equation} \begin{equation} -{\rm{b}} = {\rm{0}}{\rm{.6}} \cdot {\rm{co}}{{\rm{s}}^{{\rm{0}}{\rm{.3}}}}\left( {{{\rm{A}}_{\rm{o}}} \cdot \frac{{\rm{\pi }}}{{\rm{2}}}} \right) +{\mathrm{b}} = {\mathrm{0}}{\mathrm{.6}} \cdot {\mathrm{co}}{{\mathrm{s}}^{{\mathrm{0}}{\mathrm{.3}}}}\left( {{{\mathrm{A}}_{\mathrm{o}}} \cdot \frac{{\mathrm{\pi }}}{{\mathrm{2}}}} \right) \end{equation} \begin{equation} -{{\rm{\theta }}_{{\rm{cutoff}}}} = {\rm{65}}^\circ + \;\left( {{\rm{90}}^\circ - {\rm{65}}^\circ } \right) \cdot \left( {{\rm{1}} - {\rm{cos}}\left( {{{\rm{A}}_{\rm{o}}} \cdot \frac{{\rm{\pi }}}{{\rm{2}}}} \right)} \right) +{{\mathrm{\theta }}_{{\mathrm{cutoff}}}} = {\mathrm{65}}^\circ + \;\left( {{\mathrm{90}}^\circ - {\mathrm{65}}^\circ } \right) \cdot \left( {{\mathrm{1}} - {\mathrm{cos}}\left( {{{\mathrm{A}}_{\mathrm{o}}} \cdot \frac{{\mathrm{\pi }}}{{\mathrm{2}}}} \right)} \right) \end{equation} \begin{equation} -{\rm{\tau }}_{{\rm{bt}}}^{}\left( {\rm{\theta }} \right) = {\rm{\tau }}_{{\rm{bt}}}^{}{\rm{(\theta }} = {\rm{0)}} \cdot {\rm{co}}{{\rm{s}}^{\rm{b}}}{\kern 1pt} \left( {\rm{\theta }} \right) +{\mathrm{\tau }}_{{\mathrm{bt}}}^{}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau }}_{{\mathrm{bt}}}^{}{\mathrm{(\theta }} = {\mathrm{0)}} \cdot {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}} \left( {\mathrm{\theta }} \right) \end{equation} \begin{equation} b = \left\{ \begin{array}{lc} - 0.133 \cdot \left( \rm{\tau}^{str} + 0.003 \right)^{-0.467} &\text{if} \left( 0 \le \rm{\tau}^{str} \le 0.33 \right) \\ - 0.33 \cdot \left( 1 - \rm{\tau}^{str} \right) &\text{if} \left( 0.33 < \rm{\tau}^{str} \le 1 \right) + 0.133 \cdot \left( \mathrm{\tau}^{str} + 0.003 \right)^{-0.467} &\text{if} \left( 0 \le \mathrm{\tau}^{str} \le 0.33 \right) \\ + 0.33 \cdot \left( 1 - \mathrm{\tau}^{str} \right) &\text{if} \left( 0.33 < \mathrm{\tau}^{str} \le 1 \right) \end{array} \right. \end{equation} \begin{equation} -{\rm{\tau }}_{}^{{\rm{str}}} = \frac{{{\rm{\tau }}_{{\rm{bt}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right) - {{\rm{\tau }}_{{\rm{bb}}}}\left( {{\rm{\theta }} = {\rm{0}}} \right)}}{{{\rm{1}} - {{\rm{\tau }}_{{\rm{bb}}}}\left( {{\rm{\theta }} = {\rm{0}}} \right)}} +{\mathrm{\tau }}_{}^{{\mathrm{str}}} = \frac{{{\mathrm{\tau }}_{{\mathrm{bt}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) - {{\mathrm{\tau }}_{{\mathrm{bb}}}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}}{{{\mathrm{1}} - {{\mathrm{\tau }}_{{\mathrm{bb}}}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}} \end{equation} \begin{equation} -{\rm{\tau_{bt}}}\left( {\rm{\theta }} \right) = {\rm{\tau_{bd}}}\left( {\rm{\theta }} \right) + {\rm{\tau_{bb}}}\left( {\rm{\theta }} \right) +{\mathrm{\tau_{bt}}}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau_{bd}}}\left( {\mathrm{\theta }} \right) + {\mathrm{\tau_{bb}}}\left( {\mathrm{\theta }} \right) \end{equation} The off-normal solar property calculation of roller blind is based on a set of correlations developed from measurement data using samples of commonly used commercially produced roller blind material openness range of 0.0 -- 0.14. Thus, these correlations are not applicable for shades with materials openness fraction exceeding 0.20. The mean solar reflectance of a roller blind material was found to be purely diffuse and unaffected by incidence angle and is given by: \begin{equation} -{\rm{\rho }}_{{\rm{bt}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right) = {\rm{\rho }}_{{\rm{bd}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right) = {\rm{\rho }}_{{\rm{bt}}}^{}\left( {\rm{\theta }} \right) = {\rm{\rho }}_{{\rm{bd}}}^{}\left( {\rm{\theta }} \right) +{\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) = {\mathrm{\rho }}_{{\mathrm{bd}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) = {\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {\mathrm{\theta }} \right) = {\mathrm{\rho }}_{{\mathrm{bd}}}^{}\left( {\mathrm{\theta }} \right) \end{equation} The diffuse-diffuse transmittance and reflectance are obtained by Rhomberg numerical integration. The longwave properties of roller blind material determined using the material property and the openness fraction (Kotey et al. 2008) as shown below: \begin{equation} -{\varepsilon ^{{\rm{rb}}}} = {\rm{0}}{\rm{.91}} \cdot \left( {{\rm{1 - }}{{\rm{A}}_{\rm{o}}}} \right) +{\varepsilon ^{{\mathrm{rb}}}} = {\mathrm{0}}{\mathrm{.91}} \cdot \left( {{\mathrm{1 - }}{{\mathrm{A}}_{\mathrm{o}}}} \right) \end{equation} \begin{equation} -{\tau ^{{\rm{rb}}}} = {\rm{1}} - {\rm{0}}{\rm{.95}} \cdot \left( {{\rm{1}} - {{\rm{A}}_{\rm{o}}}} \right) +{\tau ^{{\mathrm{rb}}}} = {\mathrm{1}} - {\mathrm{0}}{\mathrm{.95}} \cdot \left( {{\mathrm{1}} - {{\mathrm{A}}_{\mathrm{o}}}} \right) \end{equation} \subsubsection{Insect Screens}\label{insect-screens} @@ -2546,61 +2546,61 @@ \subsubsection{Insect Screens}\label{insect-screens} Openness can be determined by optical measurement at normal incidence, A\(_{o}\) = $\tau_{bb}$ ($\theta = 0$), but in the case of insect screens A\(_{o}\) can reliably be calculated knowing wire diameter (\emph{d}), and wire spacing (\emph{s}) as follows: \begin{equation} -{A_o} = {\left( {1 - {d \mathord{\left/ {\vphantom {d s}} \right. } s}} \right)^2} +{A_o} = {\left( {1 - {\frac{d}{s}}} \right)^2} \end{equation} The incidence angle beyond which direct beam transmission is cut off, {$\theta$}\(_{CutOff}\), can also be estimated purely from geometry and is given by: \begin{equation} -{\theta_{CutOff}} = co{s^{ - 1}}\left( {{d \mathord{\left/ {\vphantom {d S}} \right. } S}} \right) +{\theta_{CutOff}} = co{s^{ - 1}}\left( {{\frac{d}{S}}} \right) \end{equation} The off-normal properties are calculated as follows. \begin{equation} -{\tau_{bb}}\left( {\rm{\theta }} \right) = \left\{ \begin{array}{l}{\tau_{bb}}{\rm{(\theta }} = {\rm{0)}} \cdot {\rm{co}}{{\rm{s}}^{\rm{b}}}\left( {\frac{{\rm{\theta }}}{{{{\rm{\theta }}_{{\rm{cutoff}}}}}} \cdot \frac{\pi }{{\rm{2}}}} \right)\quad {\rm{\theta }} < {{\rm{\theta }}_{{\rm{cutoff}}}}\\0\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \;\,{\rm{\theta }} \ge {{\rm{\theta }}_{{\rm{cutoff}}}}\end{array} \right. +{\tau_{bb}}\left( {\mathrm{\theta }} \right) = \left\{ \begin{array}{l}{\tau_{bb}}{\mathrm{(\theta }} = {\mathrm{0)}} \cdot {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}}\left( {\frac{{\mathrm{\theta }}}{{{{\mathrm{\theta }}_{{\mathrm{cutoff}}}}}} \cdot \frac{\pi }{{\mathrm{2}}}} \right)\quad {\mathrm{\theta }} < {{\mathrm{\theta }}_{{\mathrm{cutoff}}}}\\0\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \;\,{\mathrm{\theta }} \ge {{\mathrm{\theta }}_{{\mathrm{cutoff}}}}\end{array} \right. \end{equation} \begin{equation} -{\rm{b}} = - {\rm{0}}{\rm{.45}}\;{\rm{ln}}\;\left( {{\rm{MAX}}\left( {{{\rm{\tau }}_{{\rm{bb}}}}\left( {{\rm{\theta }} = {\rm{0}}} \right){\rm{,}}\;{\rm{0}}{\rm{.01}}} \right)} \right)\; + \;{\rm{0}}{\rm{.1}} +{\mathrm{b}} = - {\mathrm{0}}{\mathrm{.45}}\;{\mathrm{ln}}\;\left( {{\mathrm{MAX}}\left( {{{\mathrm{\tau }}_{{\mathrm{bb}}}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right){\mathrm{,}}\;{\mathrm{0}}{\mathrm{.01}}} \right)} \right)\; + \;{\mathrm{0}}{\mathrm{.1}} \end{equation} \begin{equation} -{\rm{\tau }}_{{\rm{bt}}}^{}\left( {\rm{\theta }} \right) = {\rm{\tau }}_{{\rm{bt}}}^{}{\rm{(\theta }} = {\rm{0)}} \cdot {\rm{co}}{{\rm{s}}^{\rm{b}}}\left( {\rm{\theta }} \right) +{\mathrm{\tau }}_{{\mathrm{bt}}}^{}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau }}_{{\mathrm{bt}}}^{}{\mathrm{(\theta }} = {\mathrm{0)}} \cdot {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}}\left( {\mathrm{\theta }} \right) \end{equation} \begin{equation} -{\rm{b}} = - {\rm{0}}{\rm{.65}}\;{\rm{ln}}\;\left( {{\rm{MAX}}\left( {{{\rm{\tau }}_{{\rm{bt}}}}\left( {{\rm{\theta }} = {\rm{0}}} \right){\rm{,}}\;{\rm{0}}{\rm{.01}}} \right)} \right)\; + \;{\rm{0}}{\rm{.1}} +{\mathrm{b}} = - {\mathrm{0}}{\mathrm{.65}}\;{\mathrm{ln}}\;\left( {{\mathrm{MAX}}\left( {{{\mathrm{\tau }}_{{\mathrm{bt}}}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right){\mathrm{,}}\;{\mathrm{0}}{\mathrm{.01}}} \right)} \right)\; + \;{\mathrm{0}}{\mathrm{.1}} \end{equation} \begin{equation} -{\rm{\tau }}_{{\rm{bd}}}^{}\left( {\rm{\theta }} \right) = {\rm{\tau }}_{{\rm{bt}}}^{}\left( {\rm{\theta }} \right) - {\rm{\tau }}_{{\rm{bb}}}^{}\left( {\rm{\theta }} \right) +{\mathrm{\tau }}_{{\mathrm{bd}}}^{}\left( {\mathrm{\theta }} \right) = {\mathrm{\tau }}_{{\mathrm{bt}}}^{}\left( {\mathrm{\theta }} \right) - {\mathrm{\tau }}_{{\mathrm{bb}}}^{}\left( {\mathrm{\theta }} \right) \end{equation} \begin{equation} -{\rm{\rho }}_{{\rm{bt}}}^{}\left( {\rm{\theta }} \right) = {\rm{\rho }}_{{\rm{bt}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right) + \left( {{\rm{\rho }}_{{\rm{bt}}}^{}\left( {{\rm{\theta }} = 9{\rm{0}}^\circ } \right) - {\rm{\rho }}_{{\rm{bt}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right)} \right) \cdot \left( {1 - {\rm{co}}{{\rm{s}}^{\rm{b}}}\left( {\rm{\theta }} \right)} \right) +{\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {\mathrm{\theta }} \right) = {\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) + \left( {{\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {{\mathrm{\theta }} = 9{\mathrm{0}}^\circ } \right) - {\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)} \right) \cdot \left( {1 - {\mathrm{co}}{{\mathrm{s}}^{\mathrm{b}}}\left( {\mathrm{\theta }} \right)} \right) \end{equation} \begin{equation} -{\rm{b}} = - {\rm{0}}{\rm{.45}}\;{\rm{ln}}\;{\left( {{{\rm{\rho }}^{\rm{w}}}} \right)^{}} +{\mathrm{b}} = - {\mathrm{0}}{\mathrm{.45}}\;{\mathrm{ln}}\;{\left( {{{\mathrm{\rho }}^{\mathrm{w}}}} \right)^{}} \end{equation} \begin{equation} -{\rm{\rho }}_{}^{\rm{w}} = \frac{{{\rm{\rho }}_{{\rm{bt}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right)}}{{{\rm{1}} - {\rm{\tau }}_{{\rm{bb}}}^{}\left( {{\rm{\theta }} = {\rm{0}}} \right)}} +{\mathrm{\rho }}_{}^{\mathrm{w}} = \frac{{{\mathrm{\rho }}_{{\mathrm{bt}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}}{{{\mathrm{1}} - {\mathrm{\tau }}_{{\mathrm{bb}}}^{}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)}} \end{equation} \begin{equation} -{\rho_{{\rm{bt}}}}\left( {{\rm{\theta }} = {\rm{90}}^\circ } \right) = {\rho_{{\rm{bt}}}}\left( {{\rm{\theta }} = {\rm{0}}} \right) + \left( {1 - {\rho_{{\rm{bt}}}}\left( {{\rm{\theta }} = {\rm{0}}} \right)} \right)\;\left( {{\rm{0}}{\rm{.35}}{\rho ^{\rm{w}}}} \right) +{\rho_{{\mathrm{bt}}}}\left( {{\mathrm{\theta }} = {\mathrm{90}}^\circ } \right) = {\rho_{{\mathrm{bt}}}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right) + \left( {1 - {\rho_{{\mathrm{bt}}}}\left( {{\mathrm{\theta }} = {\mathrm{0}}} \right)} \right)\;\left( {{\mathrm{0}}{\mathrm{.35}}{\rho ^{\mathrm{w}}}} \right) \end{equation} The diffuse-diffuse material properties are obtained by Rhomberg numerical integration. The longwave properties of insect screen are given by expressions similar those formulated for drapery fabrics, and roller blinds (Kotey et al. 2008) is given by: \begin{equation} -{\varepsilon ^{screen}} = {\varepsilon ^{\rm{w}}} \cdot \left( {{\rm{1 - }}{{\rm{A}}_{\rm{o}}}} \right) +{\varepsilon ^{screen}} = {\varepsilon ^{\mathrm{w}}} \cdot \left( {{\mathrm{1 - }}{{\mathrm{A}}_{\mathrm{o}}}} \right) \end{equation} \begin{equation} -{\tau ^{{\rm{screen}}}} = {\rm{1 - }}{\tau ^{\rm{w}}} \cdot \left( {{\rm{1 - }}{{\rm{A}}_{\rm{o}}}} \right) +{\tau ^{{\mathrm{screen}}}} = {\mathrm{1 - }}{\tau ^{\mathrm{w}}} \cdot \left( {{\mathrm{1 - }}{{\mathrm{A}}_{\mathrm{o}}}} \right) \end{equation} The apparent wire material emissivity can be taken as $\varepsilon^w = 0.93$\ for common insect screens - screens with dark, rough, non-metallic wire surfaces. The corresponding infrared wire material transmittance is $\tau^w = 0.98$. A lower infrared emissivity can be used for screens constructed with shiny metallic wire. For example, to model stainless-steel wire mesh use $\varepsilon^w = 0.32$\ and $\tau^w = 0.81$. diff --git a/doc/engineering-reference/src/integrated-solution-manager/basis-for-the-zone-and-air-system-integration.tex b/doc/engineering-reference/src/integrated-solution-manager/basis-for-the-zone-and-air-system-integration.tex index 2a898a7b1b0..29e4e6b879c 100644 --- a/doc/engineering-reference/src/integrated-solution-manager/basis-for-the-zone-and-air-system-integration.tex +++ b/doc/engineering-reference/src/integrated-solution-manager/basis-for-the-zone-and-air-system-integration.tex @@ -62,21 +62,21 @@ \section{Basis for the Zone and Air System Integration}\label{basis-for-the-zone In order to calculate the derivative term with respect to time, a finite difference approximation may be used, such as: \begin{equation} -\frac{{dT}}{{dt}} = {\left( {\delta t} \right)^{ - 1}}\left( {{T_z}^t - {T_z}^{t - \delta t}} \right) + {\rm O}\left( {\delta t} \right) +\frac{{dT}}{{dt}} = {\left( {\delta t} \right)^{ - 1}}\left( {{T_z}^t - {T_z}^{t - \delta t}} \right) + \mathrm{O}\left( {\delta t} \right) \label{eq:AirHeatBalFinDiffApprox} \end{equation} The use of numerical integration in a long time simulation is a cause for some concern due to the potential build-up of truncation error over many time steps. In this case, the finite difference approximation is of low order that further aggravates the problem. However, the cyclic nature of building energy simulations should cause truncation errors to cancel over each daily cycle so that no net accumulation of error occurs, even over many days of simulation (Walton, 1990). The Euler formula, Equation~\ref{eq:AirHeatBalFinDiffApprox}, was employed in Equation~\ref{eq:DiffEqZoneAirHeatBalSubQsys} to replace the derivative term. All the terms containing the zone mean air temperature were then grouped on the left hand side of the equation. Since the remaining terms are not known at the current time, they were lagged by one time step and collected on the right hand side. This manipulation resulted in Equation~\ref{eq:ZoneMeanAirTempUpdating}, the formula for updating the zone mean air temperature: \begin{equation} -\begin{array}{l}{C_z}\frac{{T_z^t - T_z^{t - \delta t}}}{{dt}} + T_z^t\left( {\sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p} + {{\dot m}_{\inf }}{C_p} + {{\dot m}_{sys}}{C_p}} \right) = \\\sum\limits_{i = 1}^{{N_{sl}}} {\dot Q_i^t} + {{\dot m}_{sys}}{C_p}T_{{\rm{supply}}}^t + {\left( {\sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i}{T_{si}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p}{T_{zi}} + {{\dot m}_{\inf }}{C_p}{T_\infty }} \right)^{t - \delta t}}\end{array} +\begin{array}{l}{C_z}\frac{{T_z^t - T_z^{t - \delta t}}}{{dt}} + T_z^t\left( {\sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p} + {{\dot m}_{\inf }}{C_p} + {{\dot m}_{sys}}{C_p}} \right) = \\\sum\limits_{i = 1}^{{N_{sl}}} {\dot Q_i^t} + {{\dot m}_{sys}}{C_p}T_{{\mathrm{supply}}}^t + {\left( {\sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i}{T_{si}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p}{T_{zi}} + {{\dot m}_{\inf }}{C_p}{T_\infty }} \right)^{t - \delta t}}\end{array} \label{eq:ZoneMeanAirTempUpdating} \end{equation} One final rearrangement was to move the lagged temperature in the derivative approximation to the right side of the equation. The explicit appearance of the zone air temperature was thus eliminated from one side of the equation. An energy balance equation that includes the effects of zone capacitance was then obtained by dividing both sides by the coefficient of Tz: \begin{equation} -T_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {\dot Q_i^t} + {{\dot m}_{sys}}{C_p}T_{{\rm{supply}}}^t + {{\left( {{C_z}\frac{{T_z^{}}}{{\delta t}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i}{T_{si}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p}{T_{zi}} + {{\dot m}_{\inf }}{C_p}{T_\infty }} \right)}^{t - \delta t}}}}{{\frac{{{C_z}}}{{\delta t}} + \left( {\sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p} + {{\dot m}_{\inf }}{C_p} + {{\dot m}_{sys}}{C_p}} \right)}} +T_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {\dot Q_i^t} + {{\dot m}_{sys}}{C_p}T_{{\mathrm{supply}}}^t + {{\left( {{C_z}\frac{{T_z^{}}}{{\delta t}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i}{T_{si}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p}{T_{zi}} + {{\dot m}_{\inf }}{C_p}{T_\infty }} \right)}^{t - \delta t}}}}{{\frac{{{C_z}}}{{\delta t}} + \left( {\sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p} + {{\dot m}_{\inf }}{C_p} + {{\dot m}_{sys}}{C_p}} \right)}} \label{eq:TztFromZoneAirEnergyBalance} \end{equation} @@ -97,15 +97,11 @@ \section{Basis for the Zone and Air System Integration}\label{basis-for-the-zone and the zone temperature update equation becomes: +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -T_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {{{\dot Q}_i}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i}{T_{si}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p}{T_{zi}}\, + {{\dot m}_{\inf }}{C_p}{T_\infty } + {{\dot m}_{sys}}{C_p}{T_{{\rm{supply}}}} - \left( {\frac{{{C_z}}}{{\delta t}}} \right)\left( { - 3T_z^{t - \delta t} + \frac{3}{2}T_z^{t - 2\delta t} - \frac{1}{3}T_z^{t - 3\delta t}} \right)}}{{\left( {\frac{{11}}{6}} \right)\frac{{{C_z}}}{{\delta t}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} A + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p} + {{\dot m}_{\inf }}{C_p} + {{\dot m}_{sys}}C}} +T_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {{{\dot Q}_i}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} {A_i}{T_{si}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p}{T_{zi}}\, + {{\dot m}_{\inf }}{C_p}{T_\infty } + {{\dot m}_{sys}}{C_p}{T_{{\mathrm{supply}}}} - \left( {\frac{{{C_z}}}{{\delta t}}} \right)\left( { - 3T_z^{t - \delta t} + \frac{3}{2}T_z^{t - 2\delta t} - \frac{1}{3}T_z^{t - 3\delta t}} \right)}}{{\left( {\frac{{11}}{6}} \right)\frac{{{C_z}}}{{\delta t}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{h_i}} A + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_p} + {{\dot m}_{\inf }}{C_p} + {{\dot m}_{sys}}C}} \label{eq:ZoneTemperatureUpdateEquation} -\end{equation} +\end{equation}} This is the form historically used in EnergyPlus and is the current default referred to as 3rdOrderBackwardDifference in the ZoneAirHeatBalanceAlgorithm object. This algorithm requires zone air temperatures at three previous time steps and uses constant temperature coefficients. The assumption is that three previous time steps lengths are the same. diff --git a/doc/engineering-reference/src/integrated-solution-manager/carbon-dioxide-predictor-corrector.tex b/doc/engineering-reference/src/integrated-solution-manager/carbon-dioxide-predictor-corrector.tex index 816b85f39aa..477535a8f72 100644 --- a/doc/engineering-reference/src/integrated-solution-manager/carbon-dioxide-predictor-corrector.tex +++ b/doc/engineering-reference/src/integrated-solution-manager/carbon-dioxide-predictor-corrector.tex @@ -77,7 +77,7 @@ \subsection{Carbon Dioxide Prediction}\label{carbon-dioxide-prediction} For the carbon dioxide concentration prediction case, the equation is solved for the anticipated system response as shown below. \begin{equation} -{\rm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{\sup }} - C_z^t} \right) +{\mathrm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{\sup }} - C_z^t} \right) \end{equation} Since the program provides three solution algorithms, the carbon dioxide prediction from each solution algorithm is given below. @@ -87,7 +87,7 @@ \subsubsection{EulerMethod}\label{eulermethod} For this solution algorithm, the air mass balance for the predicted air system load or response is: \begin{equation} -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[kg/\sec ] = {\rho_{air}}{V_Z}{C_{CO2}}{\left( {\delta t} \right)^{ - 1}}\left( {C_{{\rm{setpoint}}}^t - C_z^{t - \delta t}} \right)\\\;\;\;\; - \left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} *{{10}^6} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{zi}} - C_{{\rm{setpoint}}}^t} \right) + {{\dot m}_{\inf }}\left( {{C_\infty } - C_{{\rm{setpoint}}}^t} \right)} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[kg/\sec ] = {\rho_{air}}{V_Z}{C_{CO2}}{\left( {\delta t} \right)^{ - 1}}\left( {C_{{\mathrm{setpoint}}}^t - C_z^{t - \delta t}} \right)\\\;\;\;\; - \left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} *{{10}^6} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{zi}} - C_{{\mathrm{setpoint}}}^t} \right) + {{\dot m}_{\inf }}\left( {{C_\infty } - C_{{\mathrm{setpoint}}}^t} \right)} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} \end{equation} \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference} @@ -95,26 +95,22 @@ \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference} For this solution algorithm, the air mass balance for the predicted system load or response is given below: \begin{equation} -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[kg/\sec ] = \left[ {\frac{{{\rho_{air}}{V_z}{C_{CO2}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right) + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }}} \right]*C_{{\rm{setpoint}}}^t\\\;\;\;\; - \left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}*{{10}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{zi}} + {{\dot m}_{\inf }}{C_\infty } + \frac{{{\rho_{air}}{V_z}{C_{CO2}}}}{{\delta t}}\left( {3C_z^{t - \delta t} - \frac{3}{2}C_z^{t - 2\delta t} + \frac{1}{3}C_z^{t - 3\delta t}} \right)} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[kg/\sec ] = \left[ {\frac{{{\rho_{air}}{V_z}{C_{CO2}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right) + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }}} \right]*C_{{\mathrm{setpoint}}}^t\\\;\;\;\; - \left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}*{{10}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{zi}} + {{\dot m}_{\inf }}{C_\infty } + \frac{{{\rho_{air}}{V_z}{C_{CO2}}}}{{\delta t}}\left( {3C_z^{t - \delta t} - \frac{3}{2}C_z^{t - 2\delta t} + \frac{1}{3}C_z^{t - 3\delta t}} \right)} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} \end{equation} \subsubsection{AnalyticalSolution}\label{analyticalsolution} For this solution algorithm, the air mass balance for the predicted air system load or response is given below: +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[kg/\sec ] = \left[ {\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }}} \right]*\;\left[ {C_{{\rm{setpoint}}}^t - C_z^{t - \delta t}*\exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_Z}{C_{CO2}}}}\delta t} \right)} \right]*\\\;\;\;{\left[ {1 - \exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_Z}{C_{CO2}}}}\delta t} \right)} \right]^{ - 1}} - \;\left( {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}*{{10}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{zi}}\; + {{\dot m}_{\inf }}{C_\infty }} \right)\end{array} -\end{equation} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[kg/\sec ] = \left[ {\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }}} \right]*\;\left[ {C_{{\mathrm{setpoint}}}^t - C_z^{t - \delta t}*\exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_Z}{C_{CO2}}}}\delta t} \right)} \right]*\\\;\;\;{\left[ {1 - \exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_Z}{C_{CO2}}}}\delta t} \right)} \right]^{ - 1}} - \;\left( {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}*{{10}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{zi}}\; + {{\dot m}_{\inf }}{C_\infty }} \right)\end{array} +\end{equation}} At the prediction point in the simulation, the system air mass flows are not known; therefore, the system response is approximated. The predicted air system carbon dioxide load is then used in the system simulation to achieve the best results possible. If a central HVAC system provides the outdoor flow rate from a Controller:MechanicalVentilation object, the outdoor airflow rate may be approximated as: \begin{equation} -{\rm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{\sup }} - C_z^t} \right) \approx {\dot m_{OA,z}}\left( {{C_\infty } - C_{{\rm{setpoint}}}^t} \right) +{\mathrm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{\sup }} - C_z^t} \right) \approx {\dot m_{OA,z}}\left( {{C_\infty } - C_{{\mathrm{setpoint}}}^t} \right) \end{equation} where: @@ -137,14 +133,10 @@ \subsubsection{EulerMethod}\label{eulermethod-1} \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference-1} +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt C_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}*{{10}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{zi}} + {{\dot m}_{\inf }}{C_\infty } + {{\dot m}_{sys}}{C_{\sup }} + \frac{{{\rho_{air}}{V_Z}{C_{CO2}}}}{{\delta t}}(3C_z^{t - \delta t} - \frac{3}{2}C_z^{t - 2\delta t} + \frac{1}{3}C_z^{t - 3\delta t})}}{{\frac{{{\rho_{air}}{V_Z}{C_{CO2}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right) + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}}}} -\end{equation} +\end{equation}} \subsubsection{AnalyticalSolution}\label{analyticalsolution-1} diff --git a/doc/engineering-reference/src/integrated-solution-manager/generic-contaminant-predictor-corrector.tex b/doc/engineering-reference/src/integrated-solution-manager/generic-contaminant-predictor-corrector.tex index 91d6eec8d99..94428bf7e83 100644 --- a/doc/engineering-reference/src/integrated-solution-manager/generic-contaminant-predictor-corrector.tex +++ b/doc/engineering-reference/src/integrated-solution-manager/generic-contaminant-predictor-corrector.tex @@ -3,7 +3,7 @@ \section{Generic Contaminant Predictor-Corrector}\label{generic-contaminant-pred The transient air mass balance equation for the change in zone air generic contaminant concentration may be expressed as follows: \begin{equation} -\begin{array}{l}{\rho_{air}}{V_z}{M_{for}}\frac{{dC_{f,z}^t}}{{dt}} = \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{10}^6} - } {\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}{C_{f,z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{f,z,i}} - C_{f,z}^t} \right) \\ +\begin{array}{l}{\rho_{air}}{V_z}{M_{for}}\frac{{dC_{f,z}^t}}{{dt}} = \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{10}^6} - } {\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}{C_{f,z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{f,z,i}} - C_{f,z}^t} \right) \\ \quad \quad \quad + {{\dot m}_{\inf }}\left( {{C_{f,\infty }} - C_{f,z}^t} \right) + {{\dot m}_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) + \sum\limits_j {{h_j}\rho {A_j}(\frac{{{C_{s,j}}}}{{{k_j}}} - {C_{f,z}})} + {S_f}(C_{f,z}^{t - \delta t})\end{array} \end{equation} @@ -13,7 +13,7 @@ \section{Generic Contaminant Predictor-Corrector}\label{generic-contaminant-pred The zone air density is used to convert the volumetric rate of generic contaminant generation from user input into mass generation rate {[}kg/s{]}.The coefficient of 10\(^{6}\) is used to make the units of generic contaminant as ppm. -\({\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}{C_{f,z}}}\) = Sum of removal rate from sinks in a zone or interior surfaces {[}ppm-kg/s{]} +\({\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}{C_{f,z}}}\) = Sum of removal rate from sinks in a zone or interior surfaces {[}ppm-kg/s{]} \(\sum_{i = 1}^{N_{zones}} \dot m_i \left( C_{f,z,i} - C_{f,z}^t \right)\) = Generic contaminant transfer due to interzone air mixing {[}ppm-kg/s{]} @@ -53,14 +53,10 @@ \section{Generic Contaminant Predictor-Corrector}\label{generic-contaminant-pred The zone air generic contaminant concentration update at the current time step using the EulerMethod may be expressed as follows: +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -\begin{array}{l}{\rho_{air}}{V_z}{M_{for}}{\left( {\delta t} \right)^{ - 1}}\left( {C_{f,z}^t - C_{f,z}^{t - \delta t}} \right) = \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6} - } {\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}{C_{f,z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{f,z,i}} - C_{f,z}^t} \right)\;\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; + {{\dot m}_{\inf }}\left( {{C_{f,\infty }} - C_{f,z}^t} \right) + {{\dot m}_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) + \sum\limits_j {{h_j}\rho {A_j}(\frac{{{C_{s,j}}}}{{{k_j}}} - {C_{f,z}})} + {S_f}\end{array} -\end{equation} +\begin{array}{l}{\rho_{air}}{V_z}{M_{for}}{\left( {\delta t} \right)^{ - 1}}\left( {C_{f,z}^t - C_{f,z}^{t - \delta t}} \right) = \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6} - } {\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}{C_{f,z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{f,z,i}} - C_{f,z}^t} \right)\;\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; + {{\dot m}_{\inf }}\left( {{C_{f,\infty }} - C_{f,z}^t} \right) + {{\dot m}_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) + \sum\limits_j {{h_j}\rho {A_j}(\frac{{{C_{s,j}}}}{{{k_j}}} - {C_{f,z}})} + {S_f}\end{array} +\end{equation}} To preserve the stability of the calculation of the zone generic contaminant concentration, the third order differential approximation, derived by a Taylor Series and used in the calculation of the next time step's zone air temperature, is also applied to the zone air carbon dioxide calculations. This algorithm is the default choice and is defined as ThirdOrderBackwardDifference in the ZoneAirHeatBalanceAlgorithm object. @@ -73,7 +69,7 @@ \section{Generic Contaminant Predictor-Corrector}\label{generic-contaminant-pred The coefficients of the approximated derivative are very close to the coefficients of the analogous Adams-Bashforth algorithm. Then the approximated derivative is substituted into the mass balance, and the terms with the carbon dioxide concentration at past time steps are all put on the right-hand side of the equation. This third order derivative zone carbon dioxide update increases the number of previous time steps that are used in calculating the new zone generic contaminant concentration and decreases the dependence on the most recent. The higher order derivative approximations have the potential to allow the use of larger time steps by smoothing transitions through sudden changes in zone operating conditions. \begin{equation} -\begin{array}{l}\frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right)C_{f,z}^t + {\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}C_{f,z}^t} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} C_{f,z}^t + {{\dot m}_{\inf }}C_{f,z}^t + {{\dot m}_{sys}}C_{f,z}^t + \sum\limits_j {{h_j}\rho {A_j}C_{f,z}^t} \\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}} + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,\sup }} + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}}} + {S_f}\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; - \frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( { - 3C_{f,z}^{t - \delta t} + \frac{3}{2}C_{f,z}^{t - 2\delta t} - \frac{1}{3}C_{f,z}^{t - 3\delta t}} \right)\end{array} +\begin{array}{l}\frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right)C_{f,z}^t + {\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}C_{f,z}^t} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} C_{f,z}^t + {{\dot m}_{\inf }}C_{f,z}^t + {{\dot m}_{sys}}C_{f,z}^t + \sum\limits_j {{h_j}\rho {A_j}C_{f,z}^t} \\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}} + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,\sup }} + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}}} + {S_f}\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; - \frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( { - 3C_{f,z}^{t - \delta t} + \frac{3}{2}C_{f,z}^{t - 2\delta t} - \frac{1}{3}C_{f,z}^{t - 3\delta t}} \right)\end{array} \end{equation} This gives us the basic air mass balance equation that will be solved in two different ways, one way for the predict step and one way for the correct step. @@ -85,7 +81,7 @@ \subsection{Generic Contaminant Prediction}\label{generic-contaminant-prediction For the generic contaminant concentration prediction case, the equation is solved for the anticipated system response as shown below. \begin{equation} -{\rm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) +{\mathrm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) \end{equation} Since the program provides three solution algorithms, the generic contaminant prediction from each solution algorithm is given below. @@ -95,7 +91,7 @@ \subsubsection{EulerMethod}\label{eulermethod-000} For this solution algorithm, the air mass balance for the predicted air system load or response is: \begin{equation} -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[kg/\sec ] = {\rho_{air}}{V_z}{M_{for}}{\left( {\delta t} \right)^{ - 1}}\left( {{C_{{\rm{setpoint}}}} - C_{f,z}^{t - \delta t}} \right)\\\;\;\;\;\;\;\; - \left[ {\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6} - } {\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}{C_{{\rm{setpoint}}}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{f,z,i}} - {C_{{\rm{setpoint}}}}} \right) + {S_f}} \right]\\\;\;\;\;\;\; - \left[ {{{\dot m}_{\inf }}\left( {{C_{f,\infty }} - {C_{{\rm{setpoint}}}}} \right) + \sum\limits_j {{h_j}\rho {A_j}(\frac{{{C_{s,j}}}}{{{k_j}}} - {C_{{\rm{setpoint}}}})} } \right]\;\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[kg/\sec ] = {\rho_{air}}{V_z}{M_{for}}{\left( {\delta t} \right)^{ - 1}}\left( {{C_{{\mathrm{setpoint}}}} - C_{f,z}^{t - \delta t}} \right)\\\;\;\;\;\;\;\; - \left[ {\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6} - } {\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}{C_{{\mathrm{setpoint}}}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{C_{f,z,i}} - {C_{{\mathrm{setpoint}}}}} \right) + {S_f}} \right]\\\;\;\;\;\;\; - \left[ {{{\dot m}_{\inf }}\left( {{C_{f,\infty }} - {C_{{\mathrm{setpoint}}}}} \right) + \sum\limits_j {{h_j}\rho {A_j}(\frac{{{C_{s,j}}}}{{{k_j}}} - {C_{{\mathrm{setpoint}}}})} } \right]\;\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} \end{equation} \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference-000} @@ -103,27 +99,23 @@ \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference- For this solution algorithm, the air mass balance for the predicted system load or response is given below: {\scriptsize +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[kg/\sec ] = \frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right){C_{{\rm{setpoint}}}} - \left[ {{\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}{C_{{\rm{setpoint}}}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{{\rm{setpoint}}}} + {{\dot m}_{\inf }}{C_{{\rm{setpoint}}}}} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; - \left[ {\sum\limits_j {{h_j}\rho {A_j}{C_{{\rm{setpoint}}}}} + \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}} + {{\dot m}_{\inf }}{C_{f,\infty }} + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}} + {S_f}} } \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; + \frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( { - 3C_{f,z}^{t - \delta t} + \frac{3}{2}C_{f,z}^{t - 2\delta t} - \frac{1}{3}C_{f,z}^{t - 3\delta t}} \right)\end{array} -\end{equation}} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[kg/\sec ] = \frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( {\frac{{11}}{6}} \right){C_{{\mathrm{setpoint}}}} - \left[ {{\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}{C_{{\mathrm{setpoint}}}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{{\mathrm{setpoint}}}} + {{\dot m}_{\inf }}{C_{{\mathrm{setpoint}}}}} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; - \left[ {\sum\limits_j {{h_j}\rho {A_j}{C_{{\mathrm{setpoint}}}}} + \sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}} + {{\dot m}_{\inf }}{C_{f,\infty }} + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}} + {S_f}} } \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; + \frac{{{\rho_{air}}{V_z}{M_{for}}}}{{\delta t}}\left( { - 3C_{f,z}^{t - \delta t} + \frac{3}{2}C_{f,z}^{t - 2\delta t} - \frac{1}{3}C_{f,z}^{t - 3\delta t}} \right)\end{array} +\end{equation}}} \subsubsection{AnalyticalSolution}\label{analyticalsolution-000} For this solution algorithm, the air mass balance for the predicted air system load or response is given below: \begin{equation} -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[kg/\sec ] = \left[ {\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }} + {\rho_{air}}\sum\limits_i^{{N_{{\rm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } } \right]*\\\;\;\;\;\;\;\;\;\;\;\;\left[ {C_{{\rm{setpoint}}}^t - C_z^{t - \delta t}*\exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {\rho_{air}}\sum\limits_i^{{N_{{\rm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}{{{\rho_{air}}{V_Z}{M_{FOR}}}}\delta t} \right)} \right]*\\\;\;\;\;\;\;\;\;\;\;\;{\left[ {1 - \exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }} + {\rho_{air}}\sum\limits_i^{{N_{{\rm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}{{{\rho_{air}}{V_Z}{M_{FOR}}}}\delta t} \right)} \right]^{ - 1}} - \\\;\;\;\;\;\;\;\;\;\;\;\left( {\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}}\; + {{\dot m}_{\inf }}{C_{f,\infty }} + \sum\limits_j {{h_j}\rho {A_j}} \frac{{{C_{s,j}}}}{{{k_j}}} + {S_f}} \right)\end{array} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[kg/\sec ] = \left[ {\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }} + {\rho_{air}}\sum\limits_i^{{N_{{\mathrm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } } \right]*\\\;\;\;\;\;\;\;\;\;\;\;\left[ {C_{{\mathrm{setpoint}}}^t - C_z^{t - \delta t}*\exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {\rho_{air}}\sum\limits_i^{{N_{{\mathrm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}{{{\rho_{air}}{V_Z}{M_{FOR}}}}\delta t} \right)} \right]*\\\;\;\;\;\;\;\;\;\;\;\;{\left[ {1 - \exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }} + {\rho_{air}}\sum\limits_i^{{N_{{\mathrm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}{{{\rho_{air}}{V_Z}{M_{FOR}}}}\delta t} \right)} \right]^{ - 1}} - \\\;\;\;\;\;\;\;\;\;\;\;\left( {\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}}\; + {{\dot m}_{\inf }}{C_{f,\infty }} + \sum\limits_j {{h_j}\rho {A_j}} \frac{{{C_{s,j}}}}{{{k_j}}} + {S_f}} \right)\end{array} \end{equation} At the prediction point in the simulation, the system air mass flows are not known; therefore, the system response is approximated. The predicted air system generic contaminant load is then used in the system simulation to achieve the best results possible. If a central HVAC system provides the outdoor flow rate from a Controller:MechanicalVentilation object, the outdoor airflow rate may be approximated as: \begin{equation} -{\rm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) \approx {\dot m_{OA,z}}\left( {{C_{f,\infty }} - C_{{\rm{setpoint}}}^t} \right) +{\mathrm{PredictedSystemLoad}} = {\dot m_{sys}}\left( {{C_{f,\sup }} - C_{f,z}^t} \right) \approx {\dot m_{OA,z}}\left( {{C_{f,\infty }} - C_{{\mathrm{setpoint}}}^t} \right) \end{equation} where: @@ -141,19 +133,19 @@ \subsection{Generic Contaminant Correction}\label{generic-contaminant-correction \subsubsection{EulerMethod}\label{eulermethod-1-000} \begin{equation} -\begin{array}{l}C_{f,z}^t = \frac{{\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}{C_{f,z,i}}} + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,\sup }} + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}} + {\rho_{air}}{V_Z}{M_{FOR}}\frac{{C_{f,z}^{t - \delta t}}}{{\delta t}} + {S_f}} }}{{{\rho_{air}}{V_z}{M_{for}}{{\left( {\delta t} \right)}^{ - 1}} + {\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + \sum\limits_j {{h_j}\rho {A_j}} }}\\\end{array} +\begin{array}{l}C_{f,z}^t = \frac{{\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}{C_{f,z,i}}} + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,\sup }} + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}} + {\rho_{air}}{V_Z}{M_{FOR}}\frac{{C_{f,z}^{t - \delta t}}}{{\delta t}} + {S_f}} }}{{{\rho_{air}}{V_z}{M_{for}}{{\left( {\delta t} \right)}^{ - 1}} + {\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + \sum\limits_j {{h_j}\rho {A_j}} }}\\\end{array} \end{equation} \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference-1-000} \begin{equation} -\begin{array}{l}C_{f,z}^t = \frac{\begin{array}{l}\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}{C_{f,z,i}}} + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,\sup }}\\ + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}} + \frac{{{\rho_{air}}{V_Z}{M_{FOR}}}}{{\delta t}}(3C_{f,z}^{t - \delta t} - \frac{3}{2}C_{f,z}^{t - 2\delta t} + \frac{1}{3}C_{f,z}^{t - 3\delta t}) + {S_f}} \end{array}}{{{\rho_{air}}{V_z}{M_{for}}{{\left( {\delta t} \right)}^{ - 1}}\left( {\frac{{11}}{6}} \right) + {\rho_{air}}\sum\limits_i^{N{\rm{sink}}} {{R_{f,i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + \sum\limits_j {{h_j}\rho {A_j}} }}\\\end{array} +\begin{array}{l}C_{f,z}^t = \frac{\begin{array}{l}\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}{C_{f,z,i}}} + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,\sup }}\\ + \sum\limits_j {{h_j}\rho {A_j}\frac{{{C_{s,j}}}}{{{k_j}}} + \frac{{{\rho_{air}}{V_Z}{M_{FOR}}}}{{\delta t}}(3C_{f,z}^{t - \delta t} - \frac{3}{2}C_{f,z}^{t - 2\delta t} + \frac{1}{3}C_{f,z}^{t - 3\delta t}) + {S_f}} \end{array}}{{{\rho_{air}}{V_z}{M_{for}}{{\left( {\delta t} \right)}^{ - 1}}\left( {\frac{{11}}{6}} \right) + {\rho_{air}}\sum\limits_i^{N{\mathrm{sink}}} {{R_{f,i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + \sum\limits_j {{h_j}\rho {A_j}} }}\\\end{array} \end{equation} \subsubsection{AnalyticalSolution}\label{analyticalsolution-1-000} \begin{equation} -\begin{array}{l}C_{f,z}^t = \left[ {C_{f,z}^{t - \delta t} - \frac{{\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}}\; + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,sys}} + \sum\limits_j {{h_j}\rho {A_j}} \frac{{{C_{s,j}}}}{{{k_j}}}}}{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + {\rho_{air}}\sum\limits_i^{{N_{{\rm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}} \right]*\\\;\;\;\;\;\;\;\;\;\exp \left[ { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + {\rho_{air}}\sum\limits_i^{{N_{{\rm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}{{{\rho_{air}}{V_Z}{M_{FOR}}}}\delta t} \right] + \\\;\;\;\;\;\;\;\;\frac{{\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}}\; + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,sys}} + \sum\limits_j {{h_j}\rho {A_j}} \frac{{{C_{s,j}}}}{{{k_j}}} + {S_f}}}{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + {\rho_{air}}\sum\limits_i^{{N_{{\rm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}\end{array} +\begin{array}{l}C_{f,z}^t = \left[ {C_{f,z}^{t - \delta t} - \frac{{\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}}\; + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,sys}} + \sum\limits_j {{h_j}\rho {A_j}} \frac{{{C_{s,j}}}}{{{k_j}}}}}{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + {\rho_{air}}\sum\limits_i^{{N_{{\mathrm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}} \right]*\\\;\;\;\;\;\;\;\;\;\exp \left[ { - \frac{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + {\rho_{air}}\sum\limits_i^{{N_{{\mathrm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}{{{\rho_{air}}{V_Z}{M_{FOR}}}}\delta t} \right] + \\\;\;\;\;\;\;\;\;\frac{{\sum\limits_{i = 1}^{{N_{source}}} {{\rho_{air}}{G_{f,i}}*{{1.0}^6}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {C_{f,z,i}}\; + {{\dot m}_{\inf }}{C_{f,\infty }} + {{\dot m}_{sys}}{C_{f,sys}} + \sum\limits_j {{h_j}\rho {A_j}} \frac{{{C_{s,j}}}}{{{k_j}}} + {S_f}}}{{\sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}} + {\rho_{air}}\sum\limits_i^{{N_{{\mathrm{sink}}}}} {{R_{f,i}} + \sum\limits_j {{h_j}\rho {A_j}} } }}\end{array} \end{equation} The above solutions are implemented in the Correct Zone Air Generic Contaminant step in the Zone Contaminant Predictor Corrector module of EnergyPlus. diff --git a/doc/engineering-reference/src/integrated-solution-manager/moisture-predictor-corrector.tex b/doc/engineering-reference/src/integrated-solution-manager/moisture-predictor-corrector.tex index 645d16babf2..69f17fa64a0 100644 --- a/doc/engineering-reference/src/integrated-solution-manager/moisture-predictor-corrector.tex +++ b/doc/engineering-reference/src/integrated-solution-manager/moisture-predictor-corrector.tex @@ -53,8 +53,8 @@ \subsection{Moisture Prediction}\label{moisture-prediction} \begin{equation} \begin{array}{l} - \rm{PredictedSystemLoad} = \dot{m}_{sys}*\left(W_z^t - W_{sup}\right) \\ - \rm{MassFlow * HumRat} = \frac{kg_{air}}{sec}\frac{kg_{water}}{kg_{air}} = \frac{kg_{water}}{sec} + \mathrm{PredictedSystemLoad} = \dot{m}_{sys}*\left(W_z^t - W_{sup}\right) \\ + \mathrm{MassFlow * HumRat} = \frac{kg_{air}}{sec}\frac{kg_{water}}{kg_{air}} = \frac{kg_{water}}{sec} \end{array} \end{equation} @@ -65,29 +65,21 @@ \subsubsection{EulerMethod}\label{eulermethod-001} For this solution algorithm, the air mass balance for the predicted air system load or response is: {\scriptsize +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = {\rho_{air}}{V_z}{C_W}{\left( {\delta t} \right)^{ - 1}}\left( {W_{{\rm{setpoint}}}^t - W_z^{t - \delta t}} \right) \\ -- \left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}\left( {{W_{surf{s_i}}} - W_{{\rm{setpoint}}}^t} \right) + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{W_{zi}} - W_{{\rm{setpoint}}}^t} \right) + {{\dot m}_{\inf }}\left( {{W_\infty } - W_{{\rm{setpoint}}}^t} \right)} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} -\end{equation}} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = {\rho_{air}}{V_z}{C_W}{\left( {\delta t} \right)^{ - 1}}\left( {W_{{\mathrm{setpoint}}}^t - W_z^{t - \delta t}} \right) \\ +- \left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}\left( {{W_{surf{s_i}}} - W_{{\mathrm{setpoint}}}^t} \right) + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \left( {{W_{zi}} - W_{{\mathrm{setpoint}}}^t} \right) + {{\dot m}_{\inf }}\left( {{W_\infty } - W_{{\mathrm{setpoint}}}^t} \right)} \right]\\\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\end{array} +\end{equation}}} \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference-001} For this solution algorithm, the air mass balance for the predicted system load or response is given below: {\scriptsize +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = \left( {\frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}}\left( {\frac{{11}}{6}} \right) + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }}} \right)W_z^t - \\\;\;\;\left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}{W_{surf{s_i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}} + {{\dot m}_{\inf }}{W_\infty } + \frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}}\left( {3W_z^{t - \delta t} - \frac{3}{2}W_z^{t - 2\delta t} + \frac{1}{3}W_z^{t - 3\delta t}} \right)} \right]\;\;\end{array} -\end{equation}} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = \left( {\frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}}\left( {\frac{{11}}{6}} \right) + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }}} \right)W_z^t - \\\;\;\;\left[ {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}{W_{surf{s_i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}} + {{\dot m}_{\inf }}{W_\infty } + \frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}}\left( {3W_z^{t - \delta t} - \frac{3}{2}W_z^{t - 2\delta t} + \frac{1}{3}W_z^{t - 3\delta t}} \right)} \right]\;\;\end{array} +\end{equation}}} Then, using the following substitutions, the air mass balance equation becomes: @@ -104,7 +96,7 @@ \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference- \end{equation} \begin{equation} -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = \left[ {\frac{{11}}{6}*C + A} \right]\;*{W_{SetPo{\mathop{\rm int}} }} - \\\;\;\;\;\;\;\;\;\;\left[ {B + C*\left( {3W_z^{t - \delta t} - \frac{3}{2}W_z^{t - 2\delta t} + \frac{1}{3}W_z^{t - 3\delta t}} \right)} \right]\end{array} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = \left[ {\frac{{11}}{6}*C + A} \right]\;*{W_{SetPo{\mathop\mathrm{int}} }} - \\\;\;\;\;\;\;\;\;\;\left[ {B + C*\left( {3W_z^{t - \delta t} - \frac{3}{2}W_z^{t - 2\delta t} + \frac{1}{3}W_z^{t - 3\delta t}} \right)} \right]\end{array} \end{equation} \subsubsection{AnalyticalSolution}\label{analyticalsolution-001} @@ -112,7 +104,7 @@ \subsubsection{AnalyticalSolution}\label{analyticalsolution-001} For this solution algorithm, the air mass balance for the predicted air system load or response is given below: \begin{equation} -\begin{array}{l}{\rm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = \left[ {\sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}}\; + {{\dot m}_{\inf }}} \right]*\\\;\;\;\left[ {W_{{\rm{setpoint}}}^t - W_z^{t - \delta t}*\exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}}\; + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_z}{C_W}}}\delta t} \right)} \right]*\\\;\;\;{\left[ {1 - \exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_z}{C_W}}}\delta t} \right)} \right]^{ - 1}} - \\\;\;\;\left( {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}{W_{surf{s_i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}}\; + {{\dot m}_{\inf }}{W_\infty }} \right)\end{array} +\begin{array}{l}{\mathrm{PredictedSystemLoad}}\;[k{g_{Water}}/\sec ] = \left[ {\sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}}\; + {{\dot m}_{\inf }}} \right]*\\\;\;\;\left[ {W_{{\mathrm{setpoint}}}^t - W_z^{t - \delta t}*\exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}}\; + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_z}{C_W}}}\delta t} \right)} \right]*\\\;\;\;{\left[ {1 - \exp \left( { - \frac{{\sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} \; + {{\dot m}_{\inf }}}}{{{\rho_{air}}{V_z}{C_W}}}\delta t} \right)} \right]^{ - 1}} - \\\;\;\;\left( {\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}{W_{surf{s_i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}}\; + {{\dot m}_{\inf }}{W_\infty }} \right)\end{array} \end{equation} At the prediction point in the simulation, the system air mass flows are not known; therefore, the system response is approximated. The predicted air system moisture load is then used in the system simulation to achieve the best results possible. The system simulation components that have moisture control will try to meet this predicted moisture load. For example, humidifiers will look for positive moisture loads and add moisture at the specified rate to achieve the relative humidity setpoint. Likewise, dehumidification processes will try to remove moisture at the specified negative predicted moisture load to meet the relative humidity setpoint. @@ -127,26 +119,18 @@ \subsection{Moisture Correction}\label{moisture-correction} \subsubsection{EulerMethod}\label{eulermethod-1-001} +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt W_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}{W_{surf{s_i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}} + {{\dot m}_{\inf }}{W_\infty } + {{\dot m}_{sys}}{W_{\sup }} + {\rho_{air}}{V_z}{C_W}\frac{{W_z^{t - \delta t}}}{{\delta t}}}}{{\frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}{\rho_{ai{r_z}}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}}}} -\end{equation} +\end{equation}} \subsubsection{ThirdOrderBackwardDifference}\label{thirdorderbackwarddifference-1-001} {\scriptsize +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt W_z^t = \frac{{\sum\limits_{i = 1}^{{N_{sl}}} {k{g_{mas{s_{sched\;load}}}}} + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}} {\rho_{ai{r_z}}}{W_{surf{s_i}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} {W_{zi}} + {{\dot m}_{\inf }}{W_\infty } + {{\dot m}_{sys}}{W_{\sup }} + \frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}}(3W_z^{t - \delta t} - \frac{3}{2}W_z^{t - 2\delta t} + \frac{1}{3}W_z^{t - 3\delta t})}}{{\frac{{{\rho_{air}}{V_z}{C_W}}}{{\delta t}}\left( {\frac{{11}}{6}} \right) + \sum\limits_{i = 1}^{{N_{surfaces}}} {{A_i}{h_{mi}}{\rho_{ai{r_z}}}} + \sum\limits_{i = 1}^{{N_{zones}}} {{{\dot m}_i}} + {{\dot m}_{\inf }} + {{\dot m}_{sys}}}} -\end{equation}} +\end{equation}}} Using the same A, B, and C parameters from the prediction step modified with actual zone mass flows with the air system ON and OFF result in: diff --git a/doc/engineering-reference/src/integrated-solution-manager/summary-of-time-marching-solution.tex b/doc/engineering-reference/src/integrated-solution-manager/summary-of-time-marching-solution.tex index 426e0b73be7..f86a85d0e68 100644 --- a/doc/engineering-reference/src/integrated-solution-manager/summary-of-time-marching-solution.tex +++ b/doc/engineering-reference/src/integrated-solution-manager/summary-of-time-marching-solution.tex @@ -31,7 +31,7 @@ \subsection{Variable Timestep}\label{variable-timestep} The program's decision to adapt the time step is made by first using the usual zone time step and executing the full predictor-corrector calculations to find resulting zone temperatures. The maximum temperature change experienced by any zone in the model is determined. If this maximum zone temperature change is more than a preset limit of 0.3°C, then the simulation switches to using the shorter system time step. The number of system time steps (within a particular zone time step) is modeled from the results for the maximum zone temperature change (just obtained from the corrector) by assuming that temperature change is linear. The number of system time steps indicated by the temperatures is: \begin{equation} -\left( {\frac{{Maximum{\kern 1pt} \;Zone\;Temperature\;Change}}{{Maximum\;Zone\;Temperature\;Difference\;\{ .3C\} }}} \right) + 1.0 +\left( {\frac{{Maximum \;Zone\;Temperature\;Change}}{{Maximum\;Zone\;Temperature\;Difference\;\{ .3C\} }}} \right) + 1.0 \end{equation} The limit for the number of system time steps is: diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex index 8e57a042daf..d674c872104 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex @@ -427,7 +427,7 @@ \subsubsection{Max Water Flow Rate of Coil}\label{max-water-flow-rate-of-coil} \subsubsection{Number of Tubes per Row}\label{number-of-tubes-per-row} \begin{equation} -N_{tube/row} = {\mathop{\rm Int}\nolimits} ({\rm{13750}}\cdot \dot Vcoil,water,max) +N_{tube/row} = \operatorname{Int} ({\mathrm{13750}}\cdot \dot Vcoil,water,max) \end{equation} \begin{equation} @@ -515,7 +515,7 @@ \subsubsection{Fin Surface Area}\label{fin-surface-area} \subsubsection{Total Tube Inside Area}\label{total-tube-inside-area} \begin{equation} -\emph{A\(_{tube,total\, inside}\)} = 4.4 *\emph{D\(_{tube,inside}\)} *\emph{N\(_{tube\, rows}\)} *\emph{N\(_{tubes/row}\)} +\textit{A\(_{tube,total\, inside}\)} = 4.4 *\textit{D\(_{tube,inside}\)} *\textit{N\(_{tube\, rows}\)} *\textit{N\(_{tubes/row}\)} \end{equation} Where \emph{D\(_{tube,inside}\)} is the tube inside diameter. @@ -523,7 +523,7 @@ \subsubsection{Total Tube Inside Area}\label{total-tube-inside-area} \subsubsection{Tube Outside Surf Area}\label{tube-outside-surf-area} \begin{equation} -\emph{A\(_{tube,outside}\)} = 4.1 *\emph{D\(_{tube,outside}\)} *\emph{N\(_{tube\, rows}\)} *\emph{N\(_{tubes/row}\)} +\textit{A\(_{tube,outside}\)} = 4.1 *\textit{D\(_{tube,outside}\)} *\textit{N\(_{tube\, rows}\)} *\textit{N\(_{tubes/row}\)} \end{equation} Where \emph{D\(_{tube,outside}\)} is the tube outside diameter. @@ -531,7 +531,7 @@ \subsubsection{Tube Outside Surf Area}\label{tube-outside-surf-area} \subsubsection{Coil Depth}\label{coil-depth} \begin{equation} -\emph{Depth\(_{coil}\)} = \emph{Depth\(_{tube\, spacing}\)} * \emph{N\(_{tube\, rows}\)} +\textit{Depth\(_{coil}\)} = \textit{Depth\(_{tube\, spacing}\)} * \textit{N\(_{tube\, rows}\)} \end{equation} @@ -714,7 +714,7 @@ \subsubsection{Rated Total Cooling Capacity}\label{rated-total-cooling-capacity- The calculation for coil operating temperatures (inlet and outlet) are identical to that done for \emph{Coil:Cooling:WaterToAirHeatPump:EquationFit}. The calculations for air enthalpy are similar to that done for \emph{Coil:Cooling:WaterToAirHeatPump:EquationFit.} The difference is in calculating the total cooling capacity temperature modifier function at the selected nominal speed level, as below: \begin{equation} -TotCapTempModFra{c_{NominalSpeed}} = {\rm{a}} + {\rm{b*}}W{B_i} + c*WB_i^2 + {\rm{d*EWT}} + e*EW{T^2} + f*W{B_i}*EWT +TotCapTempModFra{c_{NominalSpeed}} = {\mathrm{a}} + {\mathrm{b*}}W{B_i} + c*WB_i^2 + {\mathrm{d*EWT}} + e*EW{T^2} + f*W{B_i}*EWT \end{equation} where: @@ -877,21 +877,21 @@ \subsubsection{UA of the Coil}\label{ua-of-the-coil} The design coil load is the system design sensible cooling capacity: \begin{equation} -\emph{Q\(_{coil,des}\)} = \emph{HeatCap\(_{sys}\)} +\textit{Q\(_{coil,des}\)} = \textit{HeatCap\(_{sys}\)} \end{equation} The required inputs for the simple coil model are: \begin{equation} -\emph{T\(_{in,air}\)} = \emph{HeatMixTemp\(_{sys}\)} +\textit{T\(_{in,air}\)} = \textit{HeatMixTemp\(_{sys}\)} \end{equation} \begin{equation} -\emph{W\(_{in,air}\)} = \emph{HeatMixHumRat\(_{sys}\)} +\textit{W\(_{in,air}\)} = \textit{HeatMixHumRat\(_{sys}\)} \end{equation} \begin{equation} -\emph{T\(_{in,water}\)} = \emph{ExitTemp\(_{plt,hw,des}\)} +\textit{T\(_{in,water}\)} = \textit{ExitTemp\(_{plt,hw,des}\)} \end{equation} \begin{equation} @@ -903,13 +903,13 @@ \subsubsection{UA of the Coil}\label{ua-of-the-coil} For duct type = \emph{main, other} or default \begin{equation} -\emph{\(\dot m_{in,air} = \rho{air} \cdot DesMainVolFlow_{sys}\)} +\textit{\(\dot m_{in,air} = \rho{air} \cdot DesMainVolFlow_{sys}\)} \end{equation} for duct type = \emph{cooling} \begin{equation} -\emph{\(\dot m_{in,air} = \rho_{air} \cdot DesCoolVolFlowsys\)} +\textit{\(\dot m_{in,air} = \rho_{air} \cdot DesCoolVolFlowsys\)} \end{equation} for duct type = \emph{heating} @@ -1022,7 +1022,7 @@ \subsubsection{Maximum Steam Flow Rate}\label{maximum-steam-flow-rate} \setcounter{enumi}{1} \tightlist \item - Sizing based on minimum outdoor air flow. The outdoor air fraction is calculated as \emph{Frac}\(_{oa}\) = \emph{DesOutAirVolFlow\(_{sys}\)} / \emph{DesVolFlow}. \emph{DesVolFlow} is \({{{{\mathop m\limits^ \bullet }_{air,des}}} \mathord{\left/ {\vphantom {{{{\mathop m\limits^ \bullet }_{air,des}}} {{\rho_{air}}}}} \right. } {{\rho_{air}}}}\). + Sizing based on minimum outdoor air flow. The outdoor air fraction is calculated as \emph{Frac}\(_{oa}\) = \emph{DesOutAirVolFlow\(_{sys}\)} / \emph{DesVolFlow}. \emph{DesVolFlow} is \({\frac{{{{\mathop m\limits^ \bullet }_{air,des}}}}{{\rho_{air}}}}\). \end{enumerate} \emph{T\(_{air,coil,des,in}\)} = \emph{Frac}\(_{oa}\)HeatOutTemp\(_{sys}\) + (1.- \emph{Frac\(_{oa}\)}) \emph{HeatRetTemp\(_{sys}\)} (see Table~\ref{table:system-sizing-data} System Sizing Data) @@ -1062,7 +1062,7 @@ \subsubsection{Nominal Capacity of the Coil}\label{nominal-capacity-of-the-coil} The value is obtained from the system design array. \begin{equation} -\emph{Cap\(_{nom}\)} = \emph{HeatCap\(_{sys}\)} +\textit{Cap\(_{nom}\)} = \textit{HeatCap\(_{sys}\)} \end{equation} \paragraph{Zone Coils}\label{zone-coils-3} @@ -1072,33 +1072,33 @@ \subsubsection{Nominal Capacity of the Coil}\label{nominal-capacity-of-the-coil} If the coil is not part of an induction unit then obtain the coil inlet temperature from the zone design data array; \begin{equation} -\emph{T\(_{in,air}\) = DesHeatCoilInTemp\(_{zone}\)} +\textit{T\(_{in,air}\) = DesHeatCoilInTemp\(_{zone}\)} \end{equation} If the coil is part of an induction unit take into account the induced air: \begin{equation} -\emph{Frac\(_{minflow}\)} = \emph{MinFlowFrac\(_{zone}\)} +\textit{Frac\(_{minflow}\)} = \textit{MinFlowFrac\(_{zone}\)} \end{equation} \begin{equation} -\emph{T\(_{in,air}\)} = \emph{DesHeatCoilInTemp\(_{zone}\)} * \emph{Frac\(_{minflow}\)} + +\textit{T\(_{in,air}\)} = \textit{DesHeatCoilInTemp\(_{zone}\)} * \textit{Frac\(_{minflow}\)} + \end{equation} \begin{equation} -\emph{ZoneTempAtHeatPeak\(_{zone}\)} *(1- \emph{Frac\(_{minflow}\)}) +\textit{ZoneTempAtHeatPeak\(_{zone}\)} *(1- \textit{Frac\(_{minflow}\)}) \end{equation} \begin{equation} -\emph{T\(_{out,air}\) = HeatDesTemp\(_{zone}\)} +\textit{T\(_{out,air}\) = HeatDesTemp\(_{zone}\)} \end{equation} \begin{equation} -W\emph{\(_{out,air}\) = HeatDesHumRat\(_{zone}\)} +W\textit{\(_{out,air}\) = HeatDesHumRat\(_{zone}\)} \end{equation} \begin{equation} -\emph{Q\(_{coil,des}\)} = \emph{C\(_{p,air}\)} * \emph{DesHeatMassFlow\(_{zone}\)} *(\emph{T\(_{out,air}\)}-\emph{T\(_{in,air}\)}) +\textit{Q\(_{coil,des}\)} = \textit{C\(_{p,air}\)} * \textit{DesHeatMassFlow\(_{zone}\)} *(\textit{T\(_{out,air}\)}-\textit{T\(_{in,air}\)}) \end{equation} Here \emph{c\(_{p,air}\)} is calculated at the outlet humidity and the average of the inlet and outlet temperatures. @@ -1142,43 +1142,43 @@ \subsubsection{System Coils}\label{system-coils-5} The rated cooling capacity is obtained by dividing the peak cooling capacity by the \emph{Cooling Capacity Modifier Curve} evaluated at peak mixed wetbulb and outdoor drybulb temperatures. \begin{equation} -\emph{T\(_{mix}\)} = \emph{CoolMixTemp\(_{sys}\)} +\textit{T\(_{mix}\)} = \textit{CoolMixTemp\(_{sys}\)} \end{equation} \begin{equation} -\emph{W\(_{mix}\)} = \emph{CoolMixHumRat\(_{sys}\)} +\textit{W\(_{mix}\)} = \textit{CoolMixHumRat\(_{sys}\)} \end{equation} \begin{equation} -\emph{T\(_{sup}\)} = \emph{CoolSupTemp\(_{sys}\)} +\textit{T\(_{sup}\)} = \textit{CoolSupTemp\(_{sys}\)} \end{equation} \begin{equation} -\emph{W\(_{sup}\)} = \emph{CoolSupHumRat\(_{sys}\)} +\textit{W\(_{sup}\)} = \textit{CoolSupHumRat\(_{sys}\)} \end{equation} \begin{equation} -\emph{T\(_{outside}\)} = \emph{CoolOutTemp\(_{sys}\)} +\textit{T\(_{outside}\)} = \textit{CoolOutTemp\(_{sys}\)} \end{equation} \begin{equation} -\emph{r\(_{air}\)} = \emph{PsyRhoAirFnPbTdbW}(\emph{p\(_{air,std}\)}, \emph{T\(_{mix}\)},\emph{W\(_{mix}\)}) +\textit{r\(_{air}\)} = \textit{PsyRhoAirFnPbTdbW}(\textit{p\(_{air,std}\)}, \textit{T\(_{mix}\)},\textit{W\(_{mix}\)}) \end{equation} \begin{equation} -\emph{h\(_{mix}\)} = \emph{PsyHFnTdbW}(\emph{T\(_{mix}\)},\emph{W\(_{mix}\)}) +\textit{h\(_{mix}\)} = \textit{PsyHFnTdbW}(\textit{T\(_{mix}\)},\textit{W\(_{mix}\)}) \end{equation} \begin{equation} -\emph{h\(_{sup}\)} = \emph{PsyHFnTdbW}(\emph{T\(_{sup}\)},\emph{W\(_{sup}\)}) +\textit{h\(_{sup}\)} = \textit{PsyHFnTdbW}(\textit{T\(_{sup}\)},\textit{W\(_{sup}\)}) \end{equation} \begin{equation} -\emph{T\(_{mix,wb}\)} = \emph{PsyTwbFnTdbWPb}(\emph{T\(_{mix}\)},\emph{W\(_{mix}\)}, \emph{p\(_{air,std}\)}) +\textit{T\(_{mix,wb}\)} = \textit{PsyTwbFnTdbWPb}(\textit{T\(_{mix}\)},\textit{W\(_{mix}\)}, \textit{p\(_{air,std}\)}) \end{equation} \begin{equation} -\emph{CapModFac} = \emph{CurveValue}(CCapFTemp,\emph{T\(_{mix,wb}\)},\emph{T\(_{outside}\)}) +\textit{CapModFac} = \textit{CurveValue}(CCapFTemp,\textit{T\(_{mix,wb}\)},\textit{T\(_{outside}\)}) \end{equation} \emph{Q\(_{fan,heat,des}\)} = design fan heat (W) - see Section \ref{design-fan-heat} @@ -1188,7 +1188,7 @@ \subsubsection{System Coils}\label{system-coils-5} \end{equation} \begin{equation} -\emph{CCap\(_{rated}\)} = \emph{CCap\(_{peak}\)}/ \emph{CapModFac} +\textit{CCap\(_{rated}\)} = \textit{CCap\(_{peak}\)}/ \textit{CapModFac} \end{equation} We check that the design volume flow per total capacity is within the prescribed range: @@ -1238,43 +1238,43 @@ \subsubsection{Zone Coils}\label{zone-coils-5} The rated cooling capacity for zone coils is calculated in the same manner as for system coils. \begin{equation} -\emph{T\(_{mix}\)} = \emph{DesCoolCoilInTemp\(_{zone}\)} +\textit{T\(_{mix}\)} = \textit{DesCoolCoilInTemp\(_{zone}\)} \end{equation} \begin{equation} -\emph{W\(_{mix}\)} = \emph{DesCoolCoilInHumRat\(_{zone}\)} +\textit{W\(_{mix}\)} = \textit{DesCoolCoilInHumRat\(_{zone}\)} \end{equation} \begin{equation} -\emph{T\(_{sup}\)} = \emph{CoolDesTemp\(_{zone}\)} +\textit{T\(_{sup}\)} = \textit{CoolDesTemp\(_{zone}\)} \end{equation} \begin{equation} -\emph{W\(_{sup}\)} = \emph{CoolDesHumRat\(_{zone}\)} +\textit{W\(_{sup}\)} = \textit{CoolDesHumRat\(_{zone}\)} \end{equation} \begin{equation} -\emph{T\(_{outside}\)} = \emph{T\(_{outside}\),\(_{desday,peak}\)} +\textit{T\(_{outside}\)} = \textit{T\(_{outside}\),\(_{desday,peak}\)} \end{equation} \begin{equation} -\emph{r\(_{air}\)} = \emph{PsyRhoAirFnPbTdbW}(\emph{p\(_{air,std}\)}, \emph{T\(_{mix}\)},\emph{W\(_{mix}\)}) +\textit{r\(_{air}\)} = \textit{PsyRhoAirFnPbTdbW}(\textit{p\(_{air,std}\)}, \textit{T\(_{mix}\)},\textit{W\(_{mix}\)}) \end{equation} \begin{equation} -\emph{h\(_{mix}\)} = \emph{PsyHFnTdbW}(\emph{T\(_{mix}\)},\emph{W\(_{mix}\)}) +\textit{h\(_{mix}\)} = \textit{PsyHFnTdbW}(\textit{T\(_{mix}\)},\textit{W\(_{mix}\)}) \end{equation} \begin{equation} -\emph{h\(_{sup}\)} = \emph{PsyHFnTdbW}(\emph{T\(_{sup}\)},\emph{W\(_{sup}\)}) +\textit{h\(_{sup}\)} = \textit{PsyHFnTdbW}(\textit{T\(_{sup}\)},\textit{W\(_{sup}\)}) \end{equation} \begin{equation} -\emph{T\(_{mix,wb}\)} = \emph{PsyTwbFnTdbWPb}(\emph{T\(_{mix}\)},\emph{W\(_{mix}\)}, \emph{p\(_{air,std}\)}) +\textit{T\(_{mix,wb}\)} = \textit{PsyTwbFnTdbWPb}(\textit{T\(_{mix}\)},\textit{W\(_{mix}\)}, \textit{p\(_{air,std}\)}) \end{equation} \begin{equation} -\emph{CapModFac} = \emph{CurveValue}(CCapFTemp,\emph{T\(_{mix,wb}\)},\emph{T\(_{outside}\)}) +\textit{CapModFac} = \textit{CurveValue}(CCapFTemp,\textit{T\(_{mix,wb}\)},\textit{T\(_{outside}\)}) \end{equation} \begin{equation} @@ -1282,7 +1282,7 @@ \subsubsection{Zone Coils}\label{zone-coils-5} \end{equation} \begin{equation} -\emph{CCap\(_{rated}\)} = \emph{CCap\(_{peak}\)}/ \emph{CapModFac} +\textit{CCap\(_{rated}\)} = \textit{CCap\(_{peak}\)}/ \textit{CapModFac} \end{equation} We check that the design volume flow per total capacity is within the prescribed range: @@ -1306,25 +1306,25 @@ \subsubsection{Zone Coils}\label{zone-coils-5} where \begin{equation} -\emph{FlowCapRatio\(_{min}\)} = 0.00004027 m^{3}/s per watt (300 cfm/ton) +\textit{FlowCapRatio\(_{min}\)} = 0.00004027 m^{3}/s per watt (300 cfm/ton) \end{equation} and \begin{equation} -\emph{FlowCapRatio\(_{max}\)} = 0.00006041 m^{3}/s per watt (450 cfm/ton) +\textit{FlowCapRatio\(_{max}\)} = 0.00006041 m^{3}/s per watt (450 cfm/ton) \end{equation} We check the design flow to the total cooling capacity ratio for dedicated zone outdoor unit DX cooling coils to be within the limits prescribed below: \begin{equation} -\emph{FlowCapRatio\(_{min}\)} = 0.00001677 m^{3}/s per Watt (125 cfm/ton) +\textit{FlowCapRatio\(_{min}\)} = 0.00001677 m^{3}/s per Watt (125 cfm/ton) \end{equation} and \begin{equation} -\emph{FlowCapRatio\(_{max}\)} = 0.00003355 m^{3}/s per Watt (250 cfm/ton) +\textit{FlowCapRatio\(_{max}\)} = 0.00003355 m^{3}/s per Watt (250 cfm/ton) \end{equation} \subsubsection{Rated Total Heating Capacity}\label{rated-total-heating-capacity-2} @@ -1417,7 +1417,7 @@ \subsection{Coil:Cooling:DX:VariableSpeed Sizing}\label{coilcoolingdxvariablespe The calculation for coil operating temperatures (inlet and outlet) are identical to that done for Coil:Cooling:DX:SingleSpeed. The calculations for air enthalpy are similar to that done for Coil:Cooling:DX:SingleSpeed\emph{.} The difference is in calculating the total cooling capacity temperature modifier function at the selected nominal speed level, as below: \begin{equation} -TotCapTempModFra{c_{NominalSpeed}} = {\rm{a}} + {\rm{b*}}W{B_i} + c*WB_i^2 + {\rm{d*}}D{B_o} + e*D{B_o}{T^2} + f*W{B_i}*D{B_o} +TotCapTempModFra{c_{NominalSpeed}} = {\mathrm{a}} + {\mathrm{b*}}W{B_i} + c*WB_i^2 + {\mathrm{d*}}D{B_o} + e*D{B_o}{T^2} + f*W{B_i}*D{B_o} \end{equation} where @@ -2326,27 +2326,27 @@ \subsubsection{Maximum Hot Water Flow}\label{maximum-hot-water-flow} \subsubsection{Maximum Cold Water Flow}\label{maximum-cold-water-flow} \begin{equation} -\emph{T\(_{coil,in}\)} = \emph{DesColdCoilInTemp\(_{zone}\)} +\textit{T\(_{coil,in}\)} = \textit{DesColdCoilInTemp\(_{zone}\)} \end{equation} \begin{equation} -\emph{T\(_{coil,out}\)} = \emph{ColdDesTemp\(_{zone}\)} +\textit{T\(_{coil,out}\)} = \textit{ColdDesTemp\(_{zone}\)} \end{equation} \begin{equation} -\emph{W\(_{coil,in}\)} = \emph{DesCoolCoilInHumRat\(_{zone}\)} +\textit{W\(_{coil,in}\)} = \textit{DesCoolCoilInHumRat\(_{zone}\)} \end{equation} \begin{equation} -\emph{W\(_{coil,out}\)} = \emph{CoolDesHumRat\(_{zone}\)} +\textit{W\(_{coil,out}\)} = \textit{CoolDesHumRat\(_{zone}\)} \end{equation} \begin{equation} -\emph{H\(_{coil,in}\)} = \emph{PsyHFnTdbW}(\emph{T\(_{coil,in}\)}, \emph{W\(_{coil,in}\)}) +\textit{H\(_{coil,in}\)} = \textit{PsyHFnTdbW}(\textit{T\(_{coil,in}\)}, \textit{W\(_{coil,in}\)}) \end{equation} \begin{equation} -\emph{H\(_{coil,out}\)} = \emph{PsyHFnTdbW}(\emph{T\(_{coil,out}\)}, \emph{W\(_{coil,out}\)}) +\textit{H\(_{coil,out}\)} = \textit{PsyHFnTdbW}(\textit{T\(_{coil,out}\)}, \textit{W\(_{coil,out}\)}) \end{equation} \begin{equation} @@ -2454,19 +2454,19 @@ \subsubsection{Supply air volumetric flow rate when no cooling or heating is nee \subsubsection{Outside air volumetric flow rate during cooling operation}\label{outside-air-volumetric-flow-rate-during-cooling-operation} \begin{equation} -\dot V_{OA,cooling} = {\rm{MIN}}(MinO{A_{zone}},\dot V_{SA,cooling}) +\dot V_{OA,cooling} = {\mathrm{MIN}}(MinO{A_{zone}},\dot V_{SA,cooling}) \end{equation} \subsubsection{Outside air volumetric flow rate during heating operation}\label{outside-air-volumetric-flow-rate-during-heating-operation} \begin{equation} -\dot V_{OA,heating} = {\rm{MIN}}(MinO{A_{zone}},\dot V_{SA,heating}) +\dot V_{OA,heating} = {\mathrm{MIN}}(MinO{A_{zone}},\dot V_{SA,heating}) \end{equation} \subsubsection{Outside air volumetric flow rate when no cooling or heating is needed}\label{outside-air-volumetric-flow-rate-when-no-cooling-or-heating-is-needed} \begin{equation} -\dot V_{OA,~no~cool~or~heat} = {\rm{MIN}}(MinO{A_{zone}},\dot V_{SA,~no~cool~or~heat}) +\dot V_{OA,~no~cool~or~heat} = {\mathrm{MIN}}(MinO{A_{zone}},\dot V_{SA,~no~cool~or~heat}) \end{equation} \subsubsection{Maximum supply air temperature from supplemental heater}\label{maximum-supply-air-temperature-from-supplemental-heater} @@ -2526,7 +2526,7 @@ \subsection{Single Duct Terminal Units}\label{single-duct-terminal-units} \subsubsection{Maximum Air Flow Rate}\label{maximum-air-flow-rate-3} \begin{equation} -{\dot V_{air,\max ,{\rm{terminal}}}} = Max(DesCoolVolFlow_{zone},DesHeatVolFlow_{zone}) +{\dot V_{air,\max ,{\mathrm{terminal}}}} = Max(DesCoolVolFlow_{zone},DesHeatVolFlow_{zone}) \end{equation} \subsubsection{Maximum Heating Air Flow Rate}\label{maximum-heating-air-flow-rate} @@ -2622,7 +2622,7 @@ \subsubsection{Secondary Fan Flow Rate}\label{secondary-fan-flow-rate} If the cooler is part of the outdoor air path of a central air system, then the secondary fan flow rate is sized to be the maximum of either the design minimum outdoor air flow rate or one-half of the main design flow rate. \begin{equation} -{\dot V_{fan,\max }} = MAX({\rm{DesOutAirVolFlow, 0}}{\rm{.5*DesMainVolFlow)}} +{\dot V_{fan,\max }} = MAX({\mathrm{DesOutAirVolFlow, 0}}{\mathrm{.5*DesMainVolFlow)}} \end{equation} \subsection{Secondary DX Coils Sizing}\label{secondary-dx-coils-sizing} @@ -2630,7 +2630,7 @@ \subsection{Secondary DX Coils Sizing}\label{secondary-dx-coils-sizing} The secondary DX coils model does not have a standalone object and it is models as add-on feature to the DX Coils. When the secondary DX coil is added to a primary DX cooling coil, the heat rejected to secondary zone is sensible only and is treated as internal gain, hence secondary air flow rate is not required in the model. Where as when the secondary DX coil is added to a primary DX heating coil, then the heat removed from secondary zone may have sensible and latent components and is treated as internal gain. The sensible/latent component split among other parameters requires secondary coil air flow rate. Hence secondary coil air flow rate sizing is added based on the primary DX cooling coil only. \begin{equation} - \dot{V}_{\rm{SecCoil}} = \dot{V}_{\rm{PriHeatCoil}} \cdot \text{ScalingFactor} + \dot{V}_{\mathrm{SecCoil}} = \dot{V}_{\mathrm{PriHeatCoil}} \cdot \text{ScalingFactor} \end{equation} where: diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex index a93989cca53..7955439fa90 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex @@ -287,7 +287,7 @@ \subsubsection{EndSysSizingCalc}\label{endsyssizingcalc} \emph{SysCoolOutTemp} = (\emph{T\(_{OA,zone\, peak}\) *DesCoolMassFlow\(_{zone}\)}) /NonCoinCoolMassFlow\(_{sys}\) - \emph{SysCoolOutHumRat} = (\emph{W\(_{OA,zone\\ peak}\) *DesCoolMassFlow\(_{zone}\)}) /NonCoinCoolMassFlow\(_{sys}\) + \emph{SysCoolOutHumRat} = (\emph{W\(_{OA,zone peak}\) *DesCoolMassFlow\(_{zone}\)}) /NonCoinCoolMassFlow\(_{sys}\) At the end of the zone loop calculate mixed air conditions and the system sensible cooling capacity. @@ -319,9 +319,9 @@ \subsubsection{EndSysSizingCalc}\label{endsyssizingcalc} \emph{SysHeatRetHumRat} = (\emph{ZoneHumRatAtHeatPeak *}\emph{DesHeatMassFlow\(_{zone}\)})/ \emph{NonCoinHeatMassFlow\(_{sys}\)} -\emph{SysHeatOutTemp} = (\emph{T\(_{OA,zone\\ peak}\) *DesHeatMassFlow\(_{zone}\)})/NonCoinHeatMassFlow\(_{sys}\) +\emph{SysHeatOutTemp} = (\emph{T\(_{OA,zone peak}\) *DesHeatMassFlow\(_{zone}\)})/NonCoinHeatMassFlow\(_{sys}\) -\emph{SysHeatOutHumRat} = (\emph{W\(_{OA,zone\\ peak}\) *DesHeatMassFlow\(_{zone}\)})/NonCoinHeatMassFlow\(_{sys}\) +\emph{SysHeatOutHumRat} = (\emph{W\(_{OA,zone peak}\) *DesHeatMassFlow\(_{zone}\)})/NonCoinHeatMassFlow\(_{sys}\) At the end of the zone loop calculate mixed air conditions and the system sensible cooling capacity. diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex index 46adde99728..2902caeed31 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex @@ -53,7 +53,7 @@ \subsection{Design Outdoor Air Calculation}\label{design-outdoor-air-calculation \end{equation} \begin{equation} -O{A_{ACH}} = {V_{zone}}\left( {{\raise0.7ex\hbox{{OAFlowAirChangesperHour}} \!\mathord{\left/ {\vphantom {{OAFlowAirChangesperHour} {3600}}}\right.}\!\lower0.7ex\hbox{{3600}}}} \right) +O{A_{ACH}} = {V_{zone}}\left( {{\frac{{OAFlowAirChangesperHour}}{{3600}}}} \right) \end{equation} where: diff --git a/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex b/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex index b309e360d38..fa8cd4a3853 100644 --- a/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex +++ b/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex @@ -424,7 +424,7 @@ \subsubsection{Voltage Model} The expression $\int{Idt}$ is the amount of capacity removed and can be calculated from the following equation. \begin{equation} -\int{Idt} = q_{max} - q +\int{Idt} = q_{max} - {q} \label{Equation: charge_removed} \end{equation} The parameters $V_o$, $K$,$a$, and $B$ are dependent on battery chemistry and can be obtained from the manufacturer's voltage vs charge-removed curves. Default values are included in the Lithium-Ion NMC model with the parameter values obtained from (Tremblay 2007). The voltage model does not incorporate temperature effects, but the impact of temperature is indirectly implemented through battery capacity which is coupled with the thermal model. @@ -448,14 +448,14 @@ \subsubsection{Thermal Model} \subsubsection{Capacity Model} The lithium ion capacity model updates the charge of the battery depending on the charging and discharging current. A positive value indicates charging and negative value of current indicates discharging. The updated capacity at each time-step is computed using the following equation. \begin{equation} -q = q - I\Delta t +q = q - I\Delta {t} \label{Equation: capacity_update_nmc} \end{equation} The battery is only allowed to charge and discharge to the user defined maximum and minimum state of charge. Capacity relates to the battery energy through voltage as shown below. \begin{equation} -E = qV +E = q{V} \label{Equation: energy_nmc} \end{equation} diff --git a/doc/engineering-reference/src/on-site-generation/generators.tex b/doc/engineering-reference/src/on-site-generation/generators.tex index 2ed868c9626..9a2d5e072b3 100644 --- a/doc/engineering-reference/src/on-site-generation/generators.tex +++ b/doc/engineering-reference/src/on-site-generation/generators.tex @@ -33,7 +33,7 @@ \subsection{Internal Combustion Engine}\label{internal-combustion-engine} where T\(_{reference}\) is the reference temperature for the fuel lower heating value (given as 25\(^{\circ}\)C in manufacturer's data) and: \begin{equation} -{T_{stack}} = {T_{DesignMinExhaust}} + {\frac{{\left( {{T_{exhaust}} - {T_{DesignMinExhaust}}} \right)}}{{{\rm{exp}}\left( {\frac{{{\rm{UA}}}}{{{{{\rm{\dot m}}}_{{\rm{exhaust}}}}C{p_{exhaust}}}}} \right)}}^2} +{T_{stack}} = {T_{DesignMinExhaust}} + {\frac{{\left( {{T_{exhaust}} - {T_{DesignMinExhaust}}} \right)}}{{{\mathrm{exp}}\left( {\frac{{{\mathrm{UA}}}}{{{{{\mathrm{\dot m}}}_{{\mathrm{exhaust}}}}C{p_{exhaust}}}}} \right)}}^2} \end{equation} Finally heat recovered from the lube oil and the water jacket are accounted for as follows: @@ -53,13 +53,13 @@ \subsection{Turbine Generator}\label{turbine-generator} The combustion turbine generator model was originally developed for the BLAST program and was subsequently adapted for use in EnergyPlus. The model uses the following set of equations all of which are equation fits to the PLR (Part Load Ratio) of the generator and the entering air temperature. The coefficients must be derived from manufacturers data. For electric power generated in Watts, the fuel input rate is calculated in J/s. \begin{equation} -\frac{{{\rm{fuel~energy~input~rate}}}}{{{\rm{electric~power~output}}}} = \left[ {{a_1} + {a_2}PLR + {a_3}PL{R^2}} \right] * \left[ {{b_1} + {b_2}\Delta T + {b_3}\Delta {T^2}} \right] +\frac{{{\mathrm{fuel~energy~input~rate}}}}{{{\mathrm{electric~power~output}}}} = \left[ {{a_1} + {a_2}PLR + {a_3}PL{R^2}} \right] * \left[ {{b_1} + {b_2}\Delta T + {b_3}\Delta {T^2}} \right] \end{equation} The electrical load and engine generator nominal load capacity are used to compute the part load ratio. \begin{equation} -PLR = \frac{{{\rm{Electric~energy~output}}}}{{{\rm{nominal~generating~capacity}}}} +PLR = \frac{{{\mathrm{Electric~energy~output}}}}{{{\mathrm{nominal~generating~capacity}}}} \end{equation} The temperature difference shows the deviation of ambient air temperature from the manufacturers design air temperature. @@ -71,13 +71,13 @@ \subsection{Turbine Generator}\label{turbine-generator} A second curve fit calculates the exhaust temperature (C) by multiplying the exhaust temperature (C) for a particular part load by a correction factor based on the deviation from design temperature. \begin{equation} -{{\rm{T}}_{exhaust}} = \left[ {{c_1} + {c_2}PLR + {c_3}PL{R^2}} \right] * \left[ {{d_1} + {d_2}\Delta T + {d_3}\Delta {T^2}} \right] +{{\mathrm{T}}_{exhaust}} = \left[ {{c_1} + {c_2}PLR + {c_3}PL{R^2}} \right] * \left[ {{d_1} + {d_2}\Delta T + {d_3}\Delta {T^2}} \right] \end{equation} The exhaust gas temp is used if a stack heat exchanger is used to recover waste heat from the exhaust.~ This temperature is the inlet temperature to the heat exchanger which is modeled in a UA-effectiveness form: \begin{equation} -{T_{stack}} = {T_{DesignMinExhaust}} + {\frac{{\left( {{T_{exhaust}} - {T_{DesignMinExhaust}}} \right)}}{{{\rm{exp}}\left( {\frac{{{\rm{UA}}}}{{{{{\rm{\dot m}}}_{{\rm{exhaust}}}}C{p_{exhaust}}}}} \right)}}^2} +{T_{stack}} = {T_{DesignMinExhaust}} + {\frac{{\left( {{T_{exhaust}} - {T_{DesignMinExhaust}}} \right)}}{{{\mathrm{exp}}\left( {\frac{{{\mathrm{UA}}}}{{{{{\mathrm{\dot m}}}_{{\mathrm{exhaust}}}}C{p_{exhaust}}}}} \right)}}^2} \end{equation} Where the design minimum exhaust temperature is a user input to the model and the exhaust mass flow rate and the UA are fit from manufacturers data as follows: @@ -87,13 +87,13 @@ \subsection{Turbine Generator}\label{turbine-generator} \end{equation} \begin{equation} -\frac{{{\rm{exhaust~gas~flow~rate}}}}{{{\rm{Nominal~Generating~Capacity}}}} = \left[ {{f_1} + {f_2}\Delta T + {f_3}\Delta {T^2}} \right] +\frac{{{\mathrm{exhaust~gas~flow~rate}}}}{{{\mathrm{Nominal~Generating~Capacity}}}} = \left[ {{f_1} + {f_2}\Delta T + {f_3}\Delta {T^2}} \right] \end{equation} Finally, heat recovered from the lube oil is accounted for as follows: \begin{equation} -\frac{{{\rm{Recoverable~lube~oil~heat}}}}{{{\rm{electric~power~generated}}}} = {g_1} + {g_2}PLR + {g_3}PL{R^2} +\frac{{{\mathrm{Recoverable~lube~oil~heat}}}}{{{\mathrm{electric~power~generated}}}} = {g_1} + {g_2}PLR + {g_3}PL{R^2} \end{equation} \subsection{Microturbine Generator}\label{microturbine-generator} @@ -640,7 +640,7 @@ \subsection{Micro-Cogenerator}\label{micro-cogenerator} and have analytical solution: \begin{equation} -T = \left( {{T_o} + {\raise0.7ex\hbox{a} \!\mathord{\left/ {\vphantom {a b}}\right.}\!\lower0.7ex\hbox{b}}} \right){e^{bt}} - {\raise0.7ex\hbox{a} \!\mathord{\left/ {\vphantom {a b}}\right.}\!\lower0.7ex\hbox{b}} +T = \left( {{T_o} + {\frac{a}{b}}} \right){e^{bt}} - {\frac{a}{b}} \end{equation} The engine temperature at the current timestep is calculated using: @@ -1070,7 +1070,7 @@ \subsubsection{Vertical Axis Wind Turbine}\label{vertical-axis-wind-turbine} The expression for the non-dimensional angle of attack \(\alpha\) with no consideration of blade pitch is: \begin{equation} -\alpha = {\tan ^{ - 1}}\left[ {\frac{{\sin \theta }}{{{{(\omega R} \mathord{\left/ {\vphantom {{(\omega R} {{V_{Local}})/({{{V_a}} \mathord{\left/ {\vphantom {{{V_a}} {{V_{Local}}}}} \right. } {{V_{Local}}}}}}} \right. } {{V_{Local}})/({{{V_a}} \mathord{\left/ {\vphantom {{{V_a}} {{V_{Local}}}}} \right. } {{V_{Local}}}}}}) + \cos \theta }}} \right] +\alpha = {\tan ^{ - 1}}\left[ {\frac{{\sin \theta }}{{\frac{{\frac{{\omega R}}{{V_{Local}}}}}{{\frac{{V_a}}{{V_{Local}}}}} + \cos \theta }}} \right] \end{equation} The tangential and normal force coefficients, respectively, are expressed as: diff --git a/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex b/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex index feba57d79e9..f69e0582851 100644 --- a/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex +++ b/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex @@ -346,7 +346,7 @@ \subsubsection{Mathematical Description}\label{mathematical-description-2} \end{equation} \begin{equation} -{I_{mp}} = {I_{mpo}} \cdot \left\{ {{C_o} \cdot {E_e} + {C_1} \cdot E_e^2} \right\} \cdot \left\{ {1 + {\alpha_{{\mathop{\rm Im}\nolimits} p}} \cdot ({T_c} - {T_o}} \right\} +{I_{mp}} = {I_{mpo}} \cdot \left\{ {{C_o} \cdot {E_e} + {C_1} \cdot E_e^2} \right\} \cdot \left\{ {1 + {\alpha_{\operatorname{Im} p}} \cdot ({T_c} - {T_o}} \right\} \end{equation} \begin{equation} @@ -366,7 +366,7 @@ \subsubsection{Mathematical Description}\label{mathematical-description-2} \end{equation} \begin{equation} -{I_{xx}} = {I_{xxo}} \cdot \left\{ {{C_6} \cdot {E_e} + {C_7} \cdot E_e^2} \right\} \cdot \left\{ {1 + ({\alpha_{{\mathop{\rm Im}\nolimits} p}}) \cdot ({T_c} - {T_{o)}}} \right\} +{I_{xx}} = {I_{xxo}} \cdot \left\{ {{C_6} \cdot {E_e} + {C_7} \cdot E_e^2} \right\} \cdot \left\{ {1 + ({\alpha_{\operatorname{Im} p}}) \cdot ({T_c} - {T_{o)}}} \right\} \end{equation} where: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/baseboard-heaters.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/baseboard-heaters.tex index 8d78e63766d..5ee604a32b7 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/baseboard-heaters.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/baseboard-heaters.tex @@ -43,7 +43,7 @@ \subsubsection{Simulation and Control}\label{simulation-and-control-000} \end{equation} \begin{equation} -{C_{ratio}} = {{{C_{\min }}} \mathord{\left/ {\vphantom {{{C_{\min }}} {{C_{\max }}}}} \right. } {{C_{\max }}}} +{C_{ratio}} = {\frac{{{C_{\min }}}}{{C_{\max }}}} \end{equation} \begin{equation} @@ -53,11 +53,11 @@ \subsubsection{Simulation and Control}\label{simulation-and-control-000} Once the effectiveness is determined, the outlet conditions for the baseboard unit are determined using the following equations: \begin{equation} -{T_{air,outlet}} = {T_{air,inlet}} + \varepsilon {{\left( {{T_{water,inlet}} - {T_{air,inlet}}} \right){C_{\min }}} \mathord{\left/ {\vphantom {{\left( {{T_{water,inlet}} - {T_{air,inlet}}} \right){C_{\min }}} {{C_{air}}}}} \right. } {{C_{air}}}} +{T_{air,outlet}} = {T_{air,inlet}} + \varepsilon {\frac{{\left( {{T_{water,inlet}} - {T_{air,inlet}}} \right){C_{\min }}}}{{C_{air}}}} \end{equation} \begin{equation} -{T_{water,outlet}} = {T_{water,inlet}} - \left( {{T_{air,outlet}} - {T_{air,inlet}}} \right){{{C_{air}}} \mathord{\left/ {\vphantom {{{C_{air}}} {{C_{water}}}}} \right. } {{C_{water}}}} +{T_{water,outlet}} = {T_{water,inlet}} - \left( {{T_{air,outlet}} - {T_{air,inlet}}} \right){\frac{{{C_{air}}}}{{C_{water}}}} \end{equation} Now that the outlet conditions have been determined, the output of the baseboard unit (all convective) is calculated from: @@ -87,7 +87,7 @@ \subsubsection{Simulation and Control}\label{simulation-and-control-1-000} When the unit is available and there is a heating load within a space, the electric baseboard unit will meet the entire remaining provided that it has enough capacity to do so. The energy consumption of the baseboard heat is calculated using the user-supplied efficiency and the current load on the baseboard unit as follows: \begin{equation} -Energ{y_{electric}} = {{Heatin{g_{baseboard}}} \mathord{\left/ {\vphantom {{Heatin{g_{baseboard}}} {Efficiency}}} \right. } {Efficiency}} +Energ{y_{electric}} = {\frac{{Heatin{g_{baseboard}}}}{Efficiency}} \end{equation} If the unit was scheduled off or there is no heating load for the zone, then there will be no convective heat transfer to the zone from the baseboard unit. The model assumes no heat storage in the baseboard system itself and thus no residual heat transfer in future system time steps due to heat storage in the metal of the baseboard unit. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex index c4da77a679e..b9a175fb717 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex @@ -122,15 +122,15 @@ \subsubsection{Design Block Calculations}\label{design-block-calculations} \end{equation} \begin{equation} -{h_{air,in}} = {\mathop{\rm PsyHFnTdbW}\nolimits} ({T_{air,in}},{w_{air,in}}) +{h_{air,in}} = \operatorname{PsyHFnTdbW} ({T_{air,in}},{w_{air,in}}) \end{equation} \begin{equation} -{h_{air,out}} = {\mathop{\rm PsyHFnTdbW}\nolimits} ({T_{air,out}},{w_{air,out}}) +{h_{air,out}} = \operatorname{PsyHFnTdbW} ({T_{air,out}},{w_{air,out}}) \end{equation} \begin{equation} -{h_{w,sat,in}} = {\rm{PsyHFnTdbW}}({T_{w,in}},{\rm{PsyWFnTdpPb}}({T_{w,in}},{P_{atm}})) +{h_{w,sat,in}} = {\mathrm{PsyHFnTdbW}}({T_{w,in}},{\mathrm{PsyWFnTdpPb}}({T_{w,in}},{P_{atm}})) \end{equation} \begin{equation} @@ -142,13 +142,13 @@ \subsubsection{Design Block Calculations}\label{design-block-calculations} \end{equation} \begin{equation} -{h_{w,sat,out}} = {\rm{PsyHFnTdbW}}({T_{w,out}},{\rm{PsyWFnTdpPb}}({T_{w,out}},{P_{atm}})) +{h_{w,sat,out}} = {\mathrm{PsyHFnTdbW}}({T_{w,out}},{\mathrm{PsyWFnTdpPb}}({T_{w,out}},{P_{atm}})) \end{equation} We now calculate the design coil bypass factor. The bypass factor is not used in subsequent calculations. It is calculated solely to use as check on the reasonableness of the user-input design inlet and outlet conditions. First we make an initial estimate of the apparatus dew point temperature: \begin{equation} -{T_{air,dp,app}} = {\rm{PsyTdpFnWPb}}({w_{air,out}},{P_{atm}}) +{T_{air,dp,app}} = {\mathrm{PsyTdpFnWPb}}({w_{air,out}},{P_{atm}}) \end{equation} We also need the ``slope'' of temperature versus humidity ratio on the psych chart between the inlet and outlet air conditions: @@ -160,7 +160,7 @@ \subsubsection{Design Block Calculations}\label{design-block-calculations} We now obtain the actual design apparatus dewpoint temperature by iterating over the following two equations: \begin{equation} -{w_{air,dp,app}} = {\rm{PsyWFnTdpPb}}({T_{air,dp,app}},{P_{atm}}) +{w_{air,dp,app}} = {\mathrm{PsyWFnTdpPb}}({T_{air,dp,app}},{P_{atm}}) \end{equation} \begin{equation} @@ -170,7 +170,7 @@ \subsubsection{Design Block Calculations}\label{design-block-calculations} The apparatus dewpoint enthalpy is then: \begin{equation} -{h_{air,dp,app}} = {\rm{PsyHFnTdbW}}({T_{air,dp,app}},{w_{air,dp,app}}) +{h_{air,dp,app}} = {\mathrm{PsyHFnTdbW}}({T_{air,dp,app}},{w_{air,dp,app}}) \end{equation} and the coil bypass factor is: @@ -204,7 +204,7 @@ \subsubsection{Design Block Calculations}\label{design-block-calculations} The next step is to estimate the coil external heat transfer surface area. This is done in the function \emph{EstimateHEXSurfaceArea}: \begin{equation} -Are{a_{coil,ext}} = {\rm{EstimateHEXSurfaceArea}} +Are{a_{coil,ext}} = {\mathrm{EstimateHEXSurfaceArea}} \end{equation} using the following assumptions: @@ -419,7 +419,7 @@ \subsubsection{Coil Completely Wet Calculations (operating block)}\label{coil-co \end{equation} \begin{equation} -Condensatio{n_{Temp}} = {\rm{PsyTsatFnHPb(Ent}}{{\rm{h}}_{{\rm{AirCondensateTemp}}}}{\rm{,P_{atm}) }} +Condensatio{n_{Temp}} = {\mathrm{PsyTsatFnHPb(Ent}}{{\mathrm{h}}_{{\mathrm{AirCondensateTemp}}}}{\mathrm{,P_{atm}) }} \label{eq:CondensationTemp} \end{equation} @@ -443,7 +443,7 @@ \subsubsection{Coil Part Wet Part Dry Calculations (operating block)}\label{coil First, iterate between the Dry Coil and the Wet Coil. First calculate Coil Completely Dry performance by estimating the wet dry interface water temperature using equation and inputting this variable as the water inlet temperature to dry Coil. \begin{equation} - WetDryInterfac{e_{WaterTemp}} = {\rm{WaterTem}}{{\rm{p}}_{{\rm{Inlet}}}}{\rm{ + Are}}{{\rm{a}}_{{\rm{WetFraction}}}}{\rm{*(WaterTem}}{{\rm{p}}_{{\rm{Outlet}}}}{\rm{ - WaterTem}}{{\rm{p}}_{{\rm{Inlet}}}}{\rm{)}} + WetDryInterfac{e_{WaterTemp}} = {\mathrm{WaterTem}}{{\mathrm{p}}_{{\mathrm{Inlet}}}}{\mathrm{ + Are}}{{\mathrm{a}}_{{\mathrm{WetFraction}}}}{\mathrm{*(WaterTem}}{{\mathrm{p}}_{{\mathrm{Outlet}}}}{\mathrm{ - WaterTem}}{{\mathrm{p}}_{{\mathrm{Inlet}}}}{\mathrm{)}} \end{equation} The value of Surface Area Wet fraction is estimated initially as follows: @@ -794,7 +794,7 @@ \subsubsection{Underlying Correlations, Properties, and Assumptions}\label{under \end{equation} \begin{equation} -{U_c}{A_w} = \frac{{{A_w}}}{{{A_{s,total}}}}\left[ {\frac{{{1 \mathord{\left/ {\vphantom {1 {bb}}} \right. } {bb}}}}{{{R_i} + {R_{mf}} + {R_{o,w}}}}} \right] +{U_c}{A_w} = \frac{{{A_w}}}{{{A_{s,total}}}}\left[ {\frac{{{\frac{1}{bb}}}}{{{R_i} + {R_{mf}} + {R_{o,w}}}}} \right] \label{eq:CoilUcAw} \end{equation} @@ -828,7 +828,7 @@ \subsubsection{Application of Cooling Coil Model to Heating Coils}\label{applica The parameter NTU is the number of transfer units and is defined as a function of the UA value of the coil as follows: \begin{equation} -{\rm{NTU}} = \frac{{{\rm{UA}}}}{{{\rm{min}}\left( {{{\rm{C}}_{{\rm{p,a}}}}{{{\rm{\dot m}}}_{\rm{a}}}{\rm{,}}{{\rm{C}}_{{\rm{p,w}}}}{{{\rm{\dot m}}}_{\rm{w}}}} \right)}} +{\mathrm{NTU}} = \frac{{{\mathrm{UA}}}}{{{\mathrm{min}}\left( {{{\mathrm{C}}_{{\mathrm{p,a}}}}{{{\mathrm{\dot m}}}_{\mathrm{a}}}{\mathrm{,}}{{\mathrm{C}}_{{\mathrm{p,w}}}}{{{\mathrm{\dot m}}}_{\mathrm{w}}}} \right)}} \end{equation} \subsection{Hot-Water-Based Air Heating Coil}\label{hot-water-based-air-heating-coil} @@ -1112,7 +1112,7 @@ \subsubsection{Model Description}\label{model-description-2-004} \(CO{P_{rated}}\) is the coefficient of performance at rated conditions (user input) \begin{equation} -RTF{\rm{ }} = {\rm{ }}\left( {{\raise0.7ex\hbox{{PLR}} \!\mathord{\left/ {\vphantom {{PLR} {PartLoadFrac}}}\right.}\!\lower0.7ex\hbox{{PartLoadFrac}}}} \right)\,\, = \,\,runtime~fraction~of~the~cooling~coil +RTF{\mathrm{ }} = {\mathrm{ }}\left( {{\frac{{PLR}}{{PartLoadFrac}}}} \right)\,\, = \,\,runtime~fraction~of~the~cooling~coil \end{equation} The total amount of heat rejected by the condenser is then calculated and stored for use by other waste heat recovery models (e.g., Coil:Heating:Desuperheater). @@ -1170,7 +1170,7 @@ \subsubsection{Model Description}\label{model-description-2-004} The coil bypass factor is analogous to the ``ineffectiveness'' (1-\(\varepsilon\)) of a heat exchanger, and can be described in terms of the number of transfer of unit (NTU). \begin{equation} -BF = \,{e^{ - NTU}}\, = \,\,{e^{ - \,{{\left( {\frac{{UA}}{{cp}}} \right)} \mathord{\left/ {\vphantom {{\left( {\frac{{UA}}{{cp}}} \right)} {\dot m}}} \right. } {\dot m}}}}\, = \,{e^{ - \,\,{{Ao} \mathord{\left/ {\vphantom {{Ao} {\dot m}}} \right. } {\dot m}}}} +BF = \,{e^{ - NTU}}\, = \,\,{e^{ - \,{\frac{{\left( {\frac{{UA}}{{cp}}} \right)}}{\dot m}}}}\, = \,{e^{ - \,\,{\frac{{Ao}}{\dot m}}}} \label{eq:CoilBypassFactor} \end{equation} @@ -1235,7 +1235,7 @@ \subsubsection{Model Description}\label{model-description-2-004} \subsubsection{Dry Coil Conditions}\label{dry-coil-conditions} -If the model determines that the cooling coil is dry (\(\omega_{in}\) \textless{} \(\omega_{ADP}\)), then Equations~\ref{eq:Qdottotal} and~\ref{eq:CoilPower-456} are invalid since they are functions of entering wet-bulb temperature. Under dry-coil conditions, coil performance is a function of dry-bulb temperature rather than wet-bulb temperature. In this case, the model recalculates the performance of the DX cooling unit using the calculation procedure described above but with \(\omega_{in\\ =}\) \(\omega_{dry,}\) where \(\omega_{dry}\) is the inlet air humidity ratio at the coil dry-out point (SHR = 1.0). +If the model determines that the cooling coil is dry (\(\omega_{in}\) \textless{} \(\omega_{ADP}\)), then Equations~\ref{eq:Qdottotal} and~\ref{eq:CoilPower-456} are invalid since they are functions of entering wet-bulb temperature. Under dry-coil conditions, coil performance is a function of dry-bulb temperature rather than wet-bulb temperature. In this case, the model recalculates the performance of the DX cooling unit using the calculation procedure described above but with \(\omega_{in =}\) \(\omega_{dry,}\) where \(\omega_{dry}\) is the inlet air humidity ratio at the coil dry-out point (SHR = 1.0). \subsubsection{SHR Calculation Using User Specified SHR Modifier Curves}\label{shr-calculation-using-user-specified-shr-modifier-curves} @@ -1791,11 +1791,11 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Single-Speed DX Coil} \(EE{R_D}\) is the \emph{EER} at 25\% net capacity and reduced outdoor air temperature. \begin{equation} -EE{R_{B - D}} = \frac{{LF \cdot {{\dot Q}_{Total,Net,PartLoad}}}}{{Powe{r_{Total,{\kern 1pt} PartLoad}}}} +EE{R_{B - D}} = \frac{{LF \cdot {{\dot Q}_{Total,Net,PartLoad}}}}{{Powe{r_{Total, PartLoad}}}} \end{equation} \begin{equation} -Powe{r_{Total,{\kern 1pt} PartLoad}} = LF\left( {{C_D} \cdot Powe{r_{CompCondFan,{\kern 1pt} PartLoad}}} \right) + \,\left( {FanPowerPerVolFlowRate \cdot {{\dot V}_{Rated}}} \right) +Powe{r_{Total, PartLoad}} = LF\left( {{C_D} \cdot Powe{r_{CompCondFan, PartLoad}}} \right) + \,\left( {FanPowerPerVolFlowRate \cdot {{\dot V}_{Rated}}} \right) \end{equation} \begin{equation} @@ -1815,7 +1815,7 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Single-Speed DX Coil} \(Powe{r_{Total,PartLoad}}\) is the total electric power (compressors, condenser fans and evaporator fan) with 19.44\(^{\circ}\)C wet-bulb temperature air entering the cooling coil and air flow rate across the evaporator at the Rated Air Volume Flow Rate (W). The dry-bulb temperature of air entering the air-cooled condenser varies (B = 27.5\(^{\circ}\)C, C = 20.0\(^{\circ}\)C, D = 18.3\(^{\circ}\)C). -\(Powe{r_{CompCondFan,{\kern 1pt} PartLoad}}\) is the electric power of the compressor and condenser fan at the various part-load ratios, with 19.44\(^{\circ}\)C wet-bulb temperature air entering the cooling coil and rated supply air volume flow rate (W). The dry-bulb temperature of air entering the air-cooled condenser varies per the part-load ratio (B = 27.5\(^{\circ}\)C, C = 20.0\(^{\circ}\)C, D = 18.3\(^{\circ}\)C). +\(Powe{r_{CompCondFan, PartLoad}}\) is the electric power of the compressor and condenser fan at the various part-load ratios, with 19.44\(^{\circ}\)C wet-bulb temperature air entering the cooling coil and rated supply air volume flow rate (W). The dry-bulb temperature of air entering the air-cooled condenser varies per the part-load ratio (B = 27.5\(^{\circ}\)C, C = 20.0\(^{\circ}\)C, D = 18.3\(^{\circ}\)C). \(EIRTempModFa{c_{PartLoad}}\) is the Energy Input Ratio function of temperature curve evaluated with 19.44\(^{\circ}\)C wet-bulb temperature air entering the cooling coil and dry-bulb temperature of air entering the air-cooled condenser corresponding to the reduced part-load ratio (B = 27.5\(^{\circ}\)C, C = 20.0\(^{\circ}\)C, D = 18.3\(^{\circ}\)C) (dimensionless). @@ -1826,7 +1826,7 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Single-Speed DX Coil} The load factor (\emph{LF}) is the fractional ``on'' time for the desired reduced load points (75\%, 50\%, or 25\%) calculated from the following equation: \begin{equation} -LF = \frac{{\left( {{\raise0.7ex\hbox{{\% Load}} \!\mathord{\left/ {\vphantom {{\% Load} {100}}}\right.}\!\lower0.7ex\hbox{{100}}}} \right) \cdot {{\dot Q}_{StandardRating}}}}{{{{\dot Q}_{Total,Net,PartLoad}}}} +LF = \frac{{\left( {{\frac{{\% Load}}{{100}}}} \right) \cdot {{\dot Q}_{StandardRating}}}}{{{{\dot Q}_{Total,Net,PartLoad}}}} \end{equation} where \(\% Load\) is the part-load operating points, i.e., 75\% (B), 50\% (C), 25\% (D). @@ -1880,28 +1880,28 @@ \subsubsection{ANSI/ASHRAE 127 - Standard Ratings of Single-Speed DX Cooling Coi \begin{equation} \begin{array}{rl} - \rm{Power}_{Total} =& \left[ \dot{Q}_{Total,Rated} \left( \rm{TotCapTempModFac} \right) \left( \rm{TotCapFlowModFac}_{Rated} \right) \right] \\ -& \cdot \rm{EIR} + \left( \rm{FanPowerPerVolFlowRate} \cdot \dot{V}_{Rated} \right) + \mathrm{Power}_{Total} =& \left[ \dot{Q}_{Total,Rated} \left( \mathrm{TotCapTempModFac} \right) \left( \mathrm{TotCapFlowModFac}_{Rated} \right) \right] \\ +& \cdot \mathrm{EIR} + \left( \mathrm{FanPowerPerVolFlowRate} \cdot \dot{V}_{Rated} \right) \end{array} \end{equation} \begin{equation} - \frac{\rm{EIRTempModFac} \rm{EIRFlowModFac_{Rated}}}{COP_{Rated}} + \frac{\mathrm{EIRTempModFac} \mathrm{EIRFlowModFac_{Rated}}}{COP_{Rated}} \end{equation} where: \(EER\) is the Energy efficiency ratio at wet-bulb temperature of air entering the cooling coil, dry-bulb temperature of air entering the air-cooled (outdoor) condenser, and rated air volume flow through the cooling coil (W/W) -\(\rm{TotCapTempModFac}\) is the total cooling capacity function of temperature curve evaluated at the test condition of wet-bulb temperature of air entering the cooling coil and dry-bulb temperature of air entering the air-cooled (outdoor) condenser (dimensionless) +\(\mathrm{TotCapTempModFac}\) is the total cooling capacity function of temperature curve evaluated at the test condition of wet-bulb temperature of air entering the cooling coil and dry-bulb temperature of air entering the air-cooled (outdoor) condenser (dimensionless) -\(\rm{Power}_{Total}\) is the total electric power (compressors, condenser fans and evaporator fan) at the test conditions of wet-bulb temperature of air entering the cooling coil, and dry-bulb temperature of air entering the air-cooled (outdoor) condenser, and rated air volume flow through the cooling coil (W) +\(\mathrm{Power}_{Total}\) is the total electric power (compressors, condenser fans and evaporator fan) at the test conditions of wet-bulb temperature of air entering the cooling coil, and dry-bulb temperature of air entering the air-cooled (outdoor) condenser, and rated air volume flow through the cooling coil (W) \(COP_{Rated}\) is the Coefficient of Performance at rated conditions, user input (W/W) -\(\rm{EIRTempModFac}\) is the Energy Input Ratio function of temperature curve evaluated at the test condition of wet-bulb temperature of air entering the cooling coil and dry-bulb temperature of air entering the air-cooled (outdoor) condenser (dimensionless) +\(\mathrm{EIRTempModFac}\) is the Energy Input Ratio function of temperature curve evaluated at the test condition of wet-bulb temperature of air entering the cooling coil and dry-bulb temperature of air entering the air-cooled (outdoor) condenser (dimensionless) -\(\rm{EIRFlowModFac}_{Rated}\) is the Energy Input Ratio function of flow fraction curve evaluated at a flow fraction of 1.0 (dimensionless). +\(\mathrm{EIRFlowModFac}_{Rated}\) is the Energy Input Ratio function of flow fraction curve evaluated at a flow fraction of 1.0 (dimensionless). Reference: @@ -2399,7 +2399,7 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Multi-Speed DX Coil}\ \end{equation} \begin{equation} -FanPower_{CRated}^{k = 1} = FanPowerPerVolFlowRat{e^{k = 1}} \cdot {\rm{\dot V}}_{CRated}^{k = 1} +FanPower_{CRated}^{k = 1} = FanPowerPerVolFlowRat{e^{k = 1}} \cdot {\mathrm{\dot V}}_{CRated}^{k = 1} \end{equation} where: @@ -2459,7 +2459,7 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Multi-Speed DX Coil}\ \end{equation} \begin{equation} - FanPower_{CRated}^{k = 2} = FanPowerPerVolFlowRat{e^{k = 2}} \cdot {\rm{\dot V}}_{CRated}^{k = 2} + FanPower_{CRated}^{k = 2} = FanPowerPerVolFlowRat{e^{k = 2}} \cdot {\mathrm{\dot V}}_{CRated}^{k = 2} \end{equation} where: @@ -2828,43 +2828,43 @@ \subsubsection{Model Description}\label{model-description-3-003} The Rated Total Cooling Capacity at Selected Nominal Speed Level contains the rated total cooling capacity to match the building sensible or latent cooling load.~ The rated cooling capacity is used to determine a capacity scaling factor, as compared to the Reference Unit catalog capacity at the nominal speed level. \begin{equation} -{\rm{Capacity~Scale~Factor}} = \frac{{{\rm{Rated~Total~Cooling~Capacity}}}}{{{\rm{Reference~Unit~Total~Cooling~Capacity}}@{\rm{Nominal~Speed~Level}}}} +{\mathrm{Capacity~Scale~Factor}} = \frac{{{\mathrm{Rated~Total~Cooling~Capacity}}}}{{{\mathrm{Reference~Unit~Total~Cooling~Capacity}}@{\mathrm{Nominal~Speed~Level}}}} \end{equation} And then, this scaling factor is used to determine capacities at rated condition for other speed levels, as below, \begin{equation} \begin{array}{l} -{\rm{Rated~Total~Cooling~Capacity}}@{\rm{Speed~Level}}\left( {\rm{x}} \right) = \\ -{\rm{Capacity~Scale~Factor}} \times {\rm{Reference~Unit~Total~Cooling~Capacity}}@{\rm{Speed~Level}}({\rm{x}}) +{\mathrm{Rated~Total~Cooling~Capacity}}@{\mathrm{Speed~Level}}\left( {\mathrm{x}} \right) = \\ +{\mathrm{Capacity~Scale~Factor}} \times {\mathrm{Reference~Unit~Total~Cooling~Capacity}}@{\mathrm{Speed~Level}}({\mathrm{x}}) \end{array} \end{equation} The Rated Volumetric Air Flow Rate is used to determine an internal scaling factor, and calculate the air flow rates in the parent objects, as follows: \begin{equation} -{\rm{Air~Flow~Scale~Factor}} = \frac{{{\rm{Rated~Volumetric~Air~Flow~Rate}}}}{{{\rm{Reference~Unit~Vol~Air~Flow~Rate}}@{\rm{Nominal~Speed~Level}} \times {\rm{CapacityScaleFactor}}}} +{\mathrm{Air~Flow~Scale~Factor}} = \frac{{{\mathrm{Rated~Volumetric~Air~Flow~Rate}}}}{{{\mathrm{Reference~Unit~Vol~Air~Flow~Rate}}@{\mathrm{Nominal~Speed~Level}} \times {\mathrm{CapacityScaleFactor}}}} \end{equation} And the loop volumetric air flow rates in the parent objects are calculated as below: \begin{equation} \begin{array}{l} -{\rm{Loop~Volumetric~Air~Flow~Rate}}@{\rm{Speed~Level}}\left( {\rm{x}} \right) = \\ {\rm{Air~Flow~Scale~Factor}} \times {\rm{Reference~Unit~Vol~Air~Flow~Rate}}@{\rm{Speed~Level}}({\rm{x}}) \times {\rm{Capacity~Scale~Factor}} +{\mathrm{Loop~Volumetric~Air~Flow~Rate}}@{\mathrm{Speed~Level}}\left( {\mathrm{x}} \right) = \\ {\mathrm{Air~Flow~Scale~Factor}} \times {\mathrm{Reference~Unit~Vol~Air~Flow~Rate}}@{\mathrm{Speed~Level}}({\mathrm{x}}) \times {\mathrm{Capacity~Scale~Factor}} \end{array} \end{equation} If the volumetric air flow rate at one speed level is higher than the flow rate allowed by the fan in the parent object, the flow rate will be set back to the fan flow rate. -If \({\rm{Air~Flow~Scale~Factor}}\) equals to unity, the loop air flow rate become the design flow rates of the original unit (after scaled by the rated total cooling capacity). The Rated Volumetric Air Flow Rate is introduced here to correlate with the actual flow rate in the air loop, in case that these differ from the design specifications. Certainly, it is recommended that the Rated Volumetric Air Flow Rate is selected in the way that \({\rm{Air~Flow~Scale~Factor}}\) is unity, so as to get more accurate results from the performance curves. +If \({\mathrm{Air~Flow~Scale~Factor}}\) equals to unity, the loop air flow rate become the design flow rates of the original unit (after scaled by the rated total cooling capacity). The Rated Volumetric Air Flow Rate is introduced here to correlate with the actual flow rate in the air loop, in case that these differ from the design specifications. Certainly, it is recommended that the Rated Volumetric Air Flow Rate is selected in the way that \({\mathrm{Air~Flow~Scale~Factor}}\) is unity, so as to get more accurate results from the performance curves. If the condenser is evaporatively cooled, it is necessary to know the condenser air flow rate, so as to calculate the water evaporation rate. We will have fields for specifying the Reference Unit condenser volumetric air flow rates at individual speed levels, and these inputs are optional. If the condenser air flow rates are not inputted by the user, default values of condenser volumetric air flow rate as a function of the rated total cooling capacity will be used. Condenser air flow rates of the simulated unit are calculated as below, \begin{equation} \begin{array}{l} - \rm{Condenser~Volumetric~Air~Flow~Rate} @ \rm{Speed~Level} \left( {\rm{x}} \right) = \\ - \quad \quad \rm{Reference~Unit~Condenser~Vol~Air~Flow~Rate} @ \rm{Speed~Level} (\rm{x}) \times \\ - \quad \quad \quad \rm{Capacity~Scale~Factor} + \mathrm{Condenser~Volumetric~Air~Flow~Rate} @ \mathrm{Speed~Level} \left( {\mathrm{x}} \right) = \\ + \quad \quad \mathrm{Reference~Unit~Condenser~Vol~Air~Flow~Rate} @ \mathrm{Speed~Level} (\mathrm{x}) \times \\ + \quad \quad \quad \mathrm{Capacity~Scale~Factor} \end{array} \end{equation} @@ -2905,7 +2905,7 @@ \subsubsection{Performance Curves}\label{performance-curves} Note: The data used to develop the total cooling capacity modifier curve (function of temperature) should represent performance when the cooling coil is `wet' (i.e., coil providing sensible cooling and at least some dehumidification). Performance data when the cooling coil is `dry' (i.e., not providing any dehumidification) should not be included when developing this modifier curve. This model automatically detects and adjusts for `dry coil' conditions. \begin{equation} -{\rm{TotCapTempModFac}} = {\rm{a}} + {\rm{b*W}}{{\rm{B}}_{\rm{i}}} + {\rm{c*WB}}_{\rm{i}}^2 + {\rm{d*D}}{{\rm{B}}_{\rm{o}}} + {\rm{e*D}}{{\rm{B}}_{\rm{o}}}^2 + {\rm{f*W}}{{\rm{B}}_{\rm{i}}}{\rm{*D}}{{\rm{B}}_{\rm{o}}} +{\mathrm{TotCapTempModFac}} = {\mathrm{a}} + {\mathrm{b*W}}{{\mathrm{B}}_{\mathrm{i}}} + {\mathrm{c*WB}}_{\mathrm{i}}^2 + {\mathrm{d*D}}{{\mathrm{B}}_{\mathrm{o}}} + {\mathrm{e*D}}{{\mathrm{B}}_{\mathrm{o}}}^2 + {\mathrm{f*W}}{{\mathrm{B}}_{\mathrm{i}}}{\mathrm{*D}}{{\mathrm{B}}_{\mathrm{o}}} \end{equation} where: @@ -2925,7 +2925,7 @@ \subsubsection{Performance Curves}\label{performance-curves} The total cooling capacity modifier curve (function of air flow fraction) is a cubic curve with the independent variable being the ratio of the actual air flow rate across the cooling coil to the design air flow rate (i.e., fraction of design flow at the speed). \begin{equation} -{\rm{TotCapAirFlowModFac}} = {\rm{a}} + {\rm{b*f}}{{\rm{f}}_{\rm{a}}} + {\rm{c*ff}}_{\rm{a}}^2 + {\rm{d*ff}}_{\rm{a}}^3 +{\mathrm{TotCapAirFlowModFac}} = {\mathrm{a}} + {\mathrm{b*f}}{{\mathrm{f}}_{\mathrm{a}}} + {\mathrm{c*ff}}_{\mathrm{a}}^2 + {\mathrm{d*ff}}_{\mathrm{a}}^3 \end{equation} where: @@ -2936,7 +2936,7 @@ \subsubsection{Performance Curves}\label{performance-curves} \begin{equation} \begin{array}{l} - {\rm{DesignAirMassFlowRate}}@{\rm{SpeedLevel}}({\rm{x}}) = {\rm{}}\\\quad \quad \quad {\rm{ReferenceUnitAirMassFlowRate}}@{\rm{SpeedLevel}}({\rm{x}}) \times {\rm{CapacityScaleFactor}} + {\mathrm{DesignAirMassFlowRate}}@{\mathrm{SpeedLevel}}({\mathrm{x}}) = {\mathrm{}}\\\quad \quad \quad {\mathrm{ReferenceUnitAirMassFlowRate}}@{\mathrm{SpeedLevel}}({\mathrm{x}}) \times {\mathrm{CapacityScaleFactor}} \end{array} \end{equation} @@ -2951,7 +2951,7 @@ \subsubsection{Performance Curves}\label{performance-curves} The energy input ratio modifier curve as a function of temperature (EIR-FT) is a biquadratic curve with two independent variables: wet-bulb temperature of the air entering the cooling coil and the condenser entering air temperature. The output of this curve is multiplied by the rated EIR (inverse of the rated COP) at the speed level, to give the EIR at the specific entering air temperatures at which the DX unit is operating (i.e., at temperatures different from the rating point temperatures). \begin{equation} -{\rm{EIRTempModFac}} = {\rm{a}} + {\rm{b*W}}{{\rm{B}}_{\rm{i}}} + {\rm{c*WB}}_{\rm{i}}^2 + {\rm{d*D}}{{\rm{B}}_{\rm{o}}} + {\rm{e*D}}{{\rm{B}}_{\rm{o}}}^2 + {\rm{f*W}}{{\rm{B}}_{\rm{i}}}{\rm{*D}}{{\rm{B}}_{\rm{o}}} +{\mathrm{EIRTempModFac}} = {\mathrm{a}} + {\mathrm{b*W}}{{\mathrm{B}}_{\mathrm{i}}} + {\mathrm{c*WB}}_{\mathrm{i}}^2 + {\mathrm{d*D}}{{\mathrm{B}}_{\mathrm{o}}} + {\mathrm{e*D}}{{\mathrm{B}}_{\mathrm{o}}}^2 + {\mathrm{f*W}}{{\mathrm{B}}_{\mathrm{i}}}{\mathrm{*D}}{{\mathrm{B}}_{\mathrm{o}}} \end{equation} where a-f are regression curve fit coefficients. @@ -2965,7 +2965,7 @@ \subsubsection{Performance Curves}\label{performance-curves} \end{enumerate} \begin{equation} -{\rm{EIRAirFlowModFac}} = {\rm{a}} + {\rm{b*f}}{{\rm{f}}_{\rm{a}}} + {\rm{c*ff}}_{\rm{a}}^2 + {\rm{d*ff}}_{\rm{a}}^3 +{\mathrm{EIRAirFlowModFac}} = {\mathrm{a}} + {\mathrm{b*f}}{{\mathrm{f}}_{\mathrm{a}}} + {\mathrm{c*ff}}_{\mathrm{a}}^2 + {\mathrm{d*ff}}_{\mathrm{a}}^3 \end{equation} where a-d are regression curve fit coefficients. If no data is available for correction, the user can simply use a = 1.0 and set the other coefficients to 0.0. @@ -2986,21 +2986,21 @@ \subsubsection{Lowest Speed Operation}\label{lowest-speed-operation} \begin{equation} \begin{array}{l} - \rm{Q}_{\rm{total},1} = \rm{Rated~Total~Cooling~Capacity} @ \rm{Speed~Level} \left( 1 \right) \rm{*} \\ - \quad \quad \rm{TotCapTempModFa} \rm{c}_1 \rm{*TotCapAirFlowModFa} \rm{c}_1 + \mathrm{Q}_{\mathrm{total},1} = \mathrm{Rated~Total~Cooling~Capacity} @ \mathrm{Speed~Level} \left( 1 \right) \mathrm{*} \\ + \quad \quad \mathrm{TotCapTempModFa} \mathrm{c}_1 \mathrm{*TotCapAirFlowModFa} \mathrm{c}_1 \end{array} \end{equation} And the EIR is calculated as: \begin{equation} -\rm{EI} \rm{R}_1 = \frac{1.0}{\rm{Reference~Unit~COP} @ \rm{Speed}(1)}{\rm{EIRTempModFa}}{\rm{c}_1}{\rm{*EIRAirFlowModFa}}{\rm{c}_1} +\mathrm{EI} \mathrm{R}_1 = \frac{1.0}{\mathrm{Reference~Unit~COP} @ \mathrm{Speed}(1)}{\mathrm{EIRTempModFa}}{\mathrm{c}_1}{\mathrm{*EIRAirFlowModFa}}{\mathrm{c}_1} \end{equation} And the power consumption excluding the indoor fan is: \begin{equation} -{\rm{Powe}}{{\rm{r}}_1} = {{\rm{Q}}_{{\rm{total}},1}}{\rm{*EI}}{{\rm{R}}_1}{\rm{*RTF}} +{\mathrm{Powe}}{{\mathrm{r}}_1} = {{\mathrm{Q}}_{{\mathrm{total}},1}}{\mathrm{*EI}}{{\mathrm{R}}_1}{\mathrm{*RTF}} \end{equation} At the lowest speed, the dehumidification calculation is exactly the same as the single speed DX coil. That is to use the rated SHR and the design air flow rate at the lowest speed to calculate rated bypass factor of BF\(_{rated,1}\), and the corresponding effective surface area of A\(_{o,1}\). With A\(_{o,1}\) known, the coil BF can be adjusted for non-rated air flow rates. @@ -3008,13 +3008,13 @@ \subsubsection{Lowest Speed Operation}\label{lowest-speed-operation} The part load ratio for sensible cooling is: \begin{equation} -{\rm{PLR}} = {\rm{SensibleCoolingLoad}}/({{\rm{Q}}_{{\rm{total}},1}}{\rm{*SH}}{{\rm{R}}_1}) +{\mathrm{PLR}} = {\mathrm{SensibleCoolingLoad}}/({{\mathrm{Q}}_{{\mathrm{total}},1}}{\mathrm{*SH}}{{\mathrm{R}}_1}) \end{equation} For latent cooling: \begin{equation} -{\rm{PLR}} = {\rm{LatentCoolingLoad}}/[{{\rm{Q}}_{{\rm{total}},1}}{\rm{*}}(1.0 - {\rm{SH}}{{\rm{R}}_1})] +{\mathrm{PLR}} = {\mathrm{LatentCoolingLoad}}/[{{\mathrm{Q}}_{{\mathrm{total}},1}}{\mathrm{*}}(1.0 - {\mathrm{SH}}{{\mathrm{R}}_1})] \end{equation} \subsubsection{Higher Speed Operation}\label{higher-speed-operation-1-000} @@ -3025,79 +3025,79 @@ \subsubsection{Higher Speed Operation}\label{higher-speed-operation-1-000} \begin{equation} \begin{array}{l} - \rm{DesignAirFlowRateSpeedRatio} = \rm{Reference~Unit~Air~Mass~Flow~Rate} @ \rm{Speed~Level} \left( \rm{x} - 1 \right) \rm{*} \\ - \quad \quad \quad \rm{CapacityScaleFactor*} \left( 1 - \rm{SpeedRatio} \right) + \\ - \quad \quad \rm{Reference~Unit~Air~Mass~Flow~Rate} @ \rm{Speed~Level} \left( \rm{x} \right) \rm{*} \\ - \quad \quad \quad \rm{CapacityScaleFactor*SpeedRatio} + \mathrm{DesignAirFlowRateSpeedRatio} = \mathrm{Reference~Unit~Air~Mass~Flow~Rate} @ \mathrm{Speed~Level} \left( \mathrm{x} - 1 \right) \mathrm{*} \\ + \quad \quad \quad \mathrm{CapacityScaleFactor*} \left( 1 - \mathrm{SpeedRatio} \right) + \\ + \quad \quad \mathrm{Reference~Unit~Air~Mass~Flow~Rate} @ \mathrm{Speed~Level} \left( \mathrm{x} \right) \mathrm{*} \\ + \quad \quad \quad \mathrm{CapacityScaleFactor*SpeedRatio} \end{array} \end{equation} -The fraction of air flow is given by \({\rm{f}}{{\rm{f}}_{{\rm{a}},{\rm{x}} - 1}}\) = \({\rm{f}}{{\rm{f}}_{{\rm{a}},{\rm{x}}}}\) = actual air mass flow rate/DesignAirFlowRateSpeedRatio. +The fraction of air flow is given by \({\mathrm{f}}{{\mathrm{f}}_{{\mathrm{a}},{\mathrm{x}} - 1}}\) = \({\mathrm{f}}{{\mathrm{f}}_{{\mathrm{a}},{\mathrm{x}}}}\) = actual air mass flow rate/DesignAirFlowRateSpeedRatio. The total cooling capacities and EIRs at Speed x-1 and Speed x are calculated: \begin{equation} \begin{array}{l} - \rm{Q}_{\rm{total},\rm{x} - 1} = \rm{Rated~Total~Cooling~Capacity} @ \rm{Speed~Level} \left( \rm{x} - 1 \right) \rm{*} \\ - \quad \quad \quad \rm{TotCapTempModFa} \rm{c}_{\rm{x} - 1} \rm{*TotCapAirFlowModFa} \rm{c}_{\rm{x} - 1} + \mathrm{Q}_{\mathrm{total},\mathrm{x} - 1} = \mathrm{Rated~Total~Cooling~Capacity} @ \mathrm{Speed~Level} \left( \mathrm{x} - 1 \right) \mathrm{*} \\ + \quad \quad \quad \mathrm{TotCapTempModFa} \mathrm{c}_{\mathrm{x} - 1} \mathrm{*TotCapAirFlowModFa} \mathrm{c}_{\mathrm{x} - 1} \end{array} \end{equation} \begin{equation} \begin{array}{l} - \rm{Q}_{\rm{total},\rm{x}} = \rm{Rated~Total~Cooling~Capacity} @ \rm{Speed~Level} \left( \rm{x} \right) \rm{*} \\ - \quad \quad \quad \rm{TotCapTempModFa} \rm{c}_{\rm{x}} \rm{*TotCapAirFlowModFa} \rm{c}_{\rm{x}} + \mathrm{Q}_{\mathrm{total},\mathrm{x}} = \mathrm{Rated~Total~Cooling~Capacity} @ \mathrm{Speed~Level} \left( \mathrm{x} \right) \mathrm{*} \\ + \quad \quad \quad \mathrm{TotCapTempModFa} \mathrm{c}_{\mathrm{x}} \mathrm{*TotCapAirFlowModFa} \mathrm{c}_{\mathrm{x}} \end{array} \end{equation} \begin{equation} -{\rm{EI}}{{\rm{R}}_{{\rm{x}} - 1}} = \frac{{1.0}}{{{\rm{Reference~Unit~COP}}@{\rm{Speed}}({\rm{x}} - 1)}}{\rm{EIRTempModFa}}{{\rm{c}}_{{\rm{x}} - 1}}{\rm{*EIRAirFlowModFa}}{{\rm{c}}_{{\rm{x}} - 1}} +{\mathrm{EI}}{{\mathrm{R}}_{{\mathrm{x}} - 1}} = \frac{{1.0}}{{{\mathrm{Reference~Unit~COP}}@{\mathrm{Speed}}({\mathrm{x}} - 1)}}{\mathrm{EIRTempModFa}}{{\mathrm{c}}_{{\mathrm{x}} - 1}}{\mathrm{*EIRAirFlowModFa}}{{\mathrm{c}}_{{\mathrm{x}} - 1}} \end{equation} \begin{equation} -{\rm{EI}}{{\rm{R}}_{\rm{x}}} = \frac{{1.0}}{{{\rm{Reference~Unit~COP}}@{\rm{Speed}}\left( {\rm{x}} \right)}}{\rm{EIRTempModFa}}{{\rm{c}}_{\rm{x}}}{\rm{*EIRAirFlowModFa}}{{\rm{c}}_{\rm{x}}} +{\mathrm{EI}}{{\mathrm{R}}_{\mathrm{x}}} = \frac{{1.0}}{{{\mathrm{Reference~Unit~COP}}@{\mathrm{Speed}}\left( {\mathrm{x}} \right)}}{\mathrm{EIRTempModFa}}{{\mathrm{c}}_{\mathrm{x}}}{\mathrm{*EIRAirFlowModFa}}{{\mathrm{c}}_{\mathrm{x}}} \end{equation} The total cooling capacity at the corresponding speed ratio is: \begin{equation} -{{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}} = \left( {1.0 - {\rm{SpeedRatio}}} \right){\rm{*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}} - 1}} + {\rm{SpeedRatio*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}}}} +{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}} = \left( {1.0 - {\mathrm{SpeedRatio}}} \right){\mathrm{*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}} - 1}} + {\mathrm{SpeedRatio*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}}}} \end{equation} and the power consumption, excluding the indoor fan, is: \begin{equation} -{\rm{Powe}}{{\rm{r}}_{{\rm{SpeedRatio}}}} = \left( {1.0 - {\rm{SpeedRatio}}} \right){\rm{*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}} - 1}}{\rm{*EI}}{{\rm{R}}_{{\rm{x}} - 1}} + {\rm{SpeedRatio*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}}}}{\rm{*EI}}{{\rm{R}}_{\rm{x}}} +{\mathrm{Powe}}{{\mathrm{r}}_{{\mathrm{SpeedRatio}}}} = \left( {1.0 - {\mathrm{SpeedRatio}}} \right){\mathrm{*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}} - 1}}{\mathrm{*EI}}{{\mathrm{R}}_{{\mathrm{x}} - 1}} + {\mathrm{SpeedRatio*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}}}}{\mathrm{*EI}}{{\mathrm{R}}_{\mathrm{x}}} \end{equation} The net heat discharged from the condenser is: \begin{equation} -{{\rm{Q}}_{{\rm{cond}},{\rm{SpeedRatio}}}} = {\rm{Powe}}{{\rm{r}}_{{\rm{SpeedRatio}}}} + {{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}} +{{\mathrm{Q}}_{{\mathrm{cond}},{\mathrm{SpeedRatio}}}} = {\mathrm{Powe}}{{\mathrm{r}}_{{\mathrm{SpeedRatio}}}} + {{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}} \end{equation} and the effective surface area in the correlations of BF factor is calculated as below: \begin{equation} -{{\rm{A}}_{{\rm{o}},{\rm{SpeedRatio}}}} = \left( {1 - {\rm{SpeedRatio}}} \right){\rm{*}}{{\rm{A}}_{{\rm{o}},{\rm{x}} - 1}} + {\rm{SpeedRatio*}}{{\rm{A}}_{{\rm{o}},{\rm{x}}}} +{{\mathrm{A}}_{{\mathrm{o}},{\mathrm{SpeedRatio}}}} = \left( {1 - {\mathrm{SpeedRatio}}} \right){\mathrm{*}}{{\mathrm{A}}_{{\mathrm{o}},{\mathrm{x}} - 1}} + {\mathrm{SpeedRatio*}}{{\mathrm{A}}_{{\mathrm{o}},{\mathrm{x}}}} \end{equation} Using A\(_{o,SpeedRatio}\) in the same BF and SHR calculation procedure as the single speed DX cooling coil, we can get BF\(_{SpeedRatio}\) and SHR\(_{SpeedRatio}\). The sensible cooling capacity is calculated using: \begin{equation} -{{\rm{Q}}_{{\rm{sensible}},{\rm{SpeedRatio}}}} = {{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}}{\rm{*SH}}{{\rm{R}}_{{\rm{SpeedRatio}}}} +{{\mathrm{Q}}_{{\mathrm{sensible}},{\mathrm{SpeedRatio}}}} = {{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}}{\mathrm{*SH}}{{\mathrm{R}}_{{\mathrm{SpeedRatio}}}} \end{equation} If the variable-speed DX cooling coil used to match the sensible cooling load, then: \begin{equation} -{{\rm{Q}}_{{\rm{sensible}},{\rm{SpeedRatio}}}} = {\rm{SensibleLoad}} +{{\mathrm{Q}}_{{\mathrm{sensible}},{\mathrm{SpeedRatio}}}} = {\mathrm{SensibleLoad}} \end{equation} If it intends to match the latent cooling load, then: \begin{equation} -{{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}}{\rm{*}}\left( {1.0 - {\rm{SH}}{{\rm{R}}_{{\rm{SpeedRatio}}}}} \right) = {\rm{LatentLoad}} +{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}}{\mathrm{*}}\left( {1.0 - {\mathrm{SH}}{{\mathrm{R}}_{{\mathrm{SpeedRatio}}}}} \right) = {\mathrm{LatentLoad}} \end{equation} If the speed reaches the highest level, the speed ratio becomes 1.0, and Speed n represents the highest speed. @@ -3107,27 +3107,27 @@ \subsubsection{Evaporatively Cooled Condenser}\label{evaporatively-cooled-conden If using evaporative pre-cooling pad upstream of the condenser, the user must also enter the appropriate evaporative effectiveness for the media at each compressor speed, so as to correlate variation of the effectiveness as a function of compressor speed, i.e.~the variation of condenser air flow rate. The evaporative effectiveness is interpolated between speed levels as: \begin{equation} -{\rm{Effectivenes}}{{\rm{s}}_{{\rm{SpeedRatio}}}} = \left( {1.0 - {\rm{SpeedRatio}}} \right){\rm{*Effectivenes}}{{\rm{s}}_{{\rm{x}} - 1}} + {\rm{SpeedRatio*Effectivenes}}{{\rm{s}}_{\rm{x}}} +{\mathrm{Effectivenes}}{{\mathrm{s}}_{{\mathrm{SpeedRatio}}}} = \left( {1.0 - {\mathrm{SpeedRatio}}} \right){\mathrm{*Effectivenes}}{{\mathrm{s}}_{{\mathrm{x}} - 1}} + {\mathrm{SpeedRatio*Effectivenes}}{{\mathrm{s}}_{\mathrm{x}}} \end{equation} The interpolated effectiveness at the speed ratio is used to calculate the air temperature reduction across the evaporative cooling pad, and the decreased air temperature entering the condenser coil is used in place of the ambient temperature as: \begin{equation} -{{\rm{T}}_{{\rm{c}},{\rm{i}}}} = {{\rm{T}}_{{\rm{wb}},{\rm{o}}}} + (1.0 - {\rm{Effectivenes}}{{\rm{s}}_{{\rm{SpeedRatio}}}}){\rm{*}}({{\rm{T}}_{{\rm{db}},{\rm{o}}}} - {{\rm{T}}_{{\rm{wb}},{\rm{o}}}}) +{{\mathrm{T}}_{{\mathrm{c}},{\mathrm{i}}}} = {{\mathrm{T}}_{{\mathrm{wb}},{\mathrm{o}}}} + (1.0 - {\mathrm{Effectivenes}}{{\mathrm{s}}_{{\mathrm{SpeedRatio}}}}){\mathrm{*}}({{\mathrm{T}}_{{\mathrm{db}},{\mathrm{o}}}} - {{\mathrm{T}}_{{\mathrm{wb}},{\mathrm{o}}}}) \end{equation} where: -\({{\rm{T}}_{{\rm{c}},{\rm{i}}}}\) is the condenser entering air temperature (\(^{\circ}\)C) +\({{\mathrm{T}}_{{\mathrm{c}},{\mathrm{i}}}}\) is the condenser entering air temperature (\(^{\circ}\)C) -\({{\rm{T}}_{{\rm{wb}},{\rm{o}}}}\) is the outdoor air wet bulb temperature (\(^{\circ}\)C) +\({{\mathrm{T}}_{{\mathrm{wb}},{\mathrm{o}}}}\) is the outdoor air wet bulb temperature (\(^{\circ}\)C) -\({{\rm{T}}_{{\rm{db}},{\rm{o}}}}\) is the outdoor air dry bulb temperature (\(^{\circ}\)C). +\({{\mathrm{T}}_{{\mathrm{db}},{\mathrm{o}}}}\) is the outdoor air dry bulb temperature (\(^{\circ}\)C). The water consumption rate is calculated based on the interpolated condenser air flow rate at the speed ratio, i.e.~the condenser flow rate at the speed ratio is: \begin{equation} -{\dot m_{condair,{\rm{}}SpeedRatio}} = \left( {1.0 - SpeedRatio} \right){\rm{*}}{\dot m_{condair,{\rm{}}x - 1}} + SpeedRatio{\rm{*}}{\dot m_{condair,{\rm{}}x}} +{\dot m_{condair,{\mathrm{}}SpeedRatio}} = \left( {1.0 - SpeedRatio} \right){\mathrm{*}}{\dot m_{condair,{\mathrm{}}x - 1}} + SpeedRatio{\mathrm{*}}{\dot m_{condair,{\mathrm{}}x}} \end{equation} \subsubsection{Standard Rating of Variable Speed DX Cooling Coils}\label{standard-rating-of-variable-speed-dx-cooling-coils} @@ -3593,7 +3593,7 @@ \subsubsection{Frost Adjustment Factors}\label{frost-adjustment-factors} The difference between the outdoor air humidity ratio (from the weather file) and the saturated air humidity ratio at the estimated outdoor coil temperature is then calculated, and this value is used as an indication of frost formation on the outdoor coil. \begin{equation} -\Delta {\omega_{\,coil,out}}\, = \,MAX\left[ {1.0E - 6,\,\,\,{\omega_{outdoor}}\, - \,\,{\omega_{sat}}\left( {{T_{coil,out}}\,,{\rm{OutBaroPress}}} \right)} \right] +\Delta {\omega_{\,coil,out}}\, = \,MAX\left[ {1.0E - 6,\,\,\,{\omega_{outdoor}}\, - \,\,{\omega_{sat}}\left( {{T_{coil,out}}\,,{\mathrm{OutBaroPress}}} \right)} \right] \end{equation} Frost formation on the outdoor coil must be periodically removed. The fraction of compressor runtime when the coil is being defrosted is either entered by the user (for timed defrost) or is calculated by the model (for on-demand defrost) using an empirical equation and \(\Delta {\omega_{\,coil,out}}\) . Adjustment factors to total heating coil capacity and input power due to frost formation on the outdoor coil are also calculated by empirical models with \(\Delta {\omega_{\,coil,out}}\) ~or fractional defrost time period as the independent variable. The defrost time period fraction and adjustment factors due to frost formation on the outdoor coil vary depending on the defrost control type as shown below. @@ -3939,7 +3939,7 @@ \subsubsection{Heating Seasonal Performance Factor (HSPF)}\label{heating-seasona X({T_j}) = \left\{ \begin{array}{l} BL({T_J})/\mathop {{Q_h}}\limits^ \cdot ({T_j}) \\ - {\rm{or}} \\ + {\mathrm{or}} \\ 1 \end{array} \right\} @@ -3968,9 +3968,9 @@ \subsubsection{Heating Seasonal Performance Factor (HSPF)}\label{heating-seasona \begin{equation} \delta ({T_j}) = \left\{ \begin{array}{l} - {\rm{0,~if~}}{T_j} \le {T_{off}}{\rm{~or~}}\frac{{\mathop {{Q_h}}\limits^ \cdot ({T_j})}}{{\mathop {{E_h}}\limits^ \cdot ({T_j})}} < 1 \\ - {\rm{1/2,~if~}}{T_{off}} < {T_j} \le {T_{on}}{\rm{~and~}}\frac{{\mathop {{Q_h}}\limits^ \cdot ({T_j})}}{{\mathop {{E_h}}\limits^ \cdot ({T_j})}} \ge 1 \\ - {\rm{1,~if~}}{T_j} > {T_{on}}{\rm{~and~}}\frac{{\mathop {{Q_h}}\limits^ \cdot ({T_j})}}{{\mathop {{E_h}}\limits^ \cdot ({T_j})}} \ge 1 + {\mathrm{0,~if~}}{T_j} \le {T_{off}}{\mathrm{~or~}}\frac{{\mathop {{Q_h}}\limits^ \cdot ({T_j})}}{{\mathop {{E_h}}\limits^ \cdot ({T_j})}} < 1 \\ + {\mathrm{1/2,~if~}}{T_{off}} < {T_j} \le {T_{on}}{\mathrm{~and~}}\frac{{\mathop {{Q_h}}\limits^ \cdot ({T_j})}}{{\mathop {{E_h}}\limits^ \cdot ({T_j})}} \ge 1 \\ + {\mathrm{1,~if~}}{T_j} > {T_{on}}{\mathrm{~and~}}\frac{{\mathop {{Q_h}}\limits^ \cdot ({T_j})}}{{\mathop {{E_h}}\limits^ \cdot ({T_j})}} \ge 1 \end{array} \right. \end{equation} @@ -3984,13 +3984,13 @@ \subsubsection{Heating Seasonal Performance Factor (HSPF)}\label{heating-seasona Calculate \(\dot{Q}_{h} \cdot ({T_j})\) and \(\dot{E}_{h} \cdot ({T_j})\) using: \begin{equation} -\dot{Q}_{h}({T_j}) = \left\{ \begin{array}{l}\dot{Q}_{h}(-8.33) + \frac{{\left[ {\dot{{Q}_{h}}(8.33) - \dot{{Q_h}}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{16.67}}{\rm{,~if~}}{T_j} \ge 7.22^{\circ}C {\rm{~or~}}{T_j} \le -8.33^{\circ}C \\ -\dot{Q}_{h}(-8.33) + \frac{{\left[ {\dot{Q}_{h}(1.67) - \dot{Q}_{h}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{10}}{\rm{,~if~}} -8.33^{\circ}C < {T_j} < 7.22^{\circ}C\end{array} \right. +\dot{Q}_{h}({T_j}) = \left\{ \begin{array}{l}\dot{Q}_{h}(-8.33) + \frac{{\left[ {\dot{{Q}_{h}}(8.33) - \dot{{Q_h}}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{16.67}}{\mathrm{,~if~}}{T_j} \ge 7.22^{\circ}C {\mathrm{~or~}}{T_j} \le -8.33^{\circ}C \\ +\dot{Q}_{h}(-8.33) + \frac{{\left[ {\dot{Q}_{h}(1.67) - \dot{Q}_{h}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{10}}{\mathrm{,~if~}} -8.33^{\circ}C < {T_j} < 7.22^{\circ}C\end{array} \right. \end{equation} \begin{equation} -\dot{E}_{h}({T_j}) = \left\{ \begin{array}{l}\dot{E}_{h}(-8.33) + \frac{{\left[ {\dot{{E}_{h}}(8.33) - \dot{{E_h}}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{16.67}}{\rm{,~if~}}{T_j} \ge 7.22^{\circ}C {\rm{~or~}}{T_j} \le -8.33^{\circ}C \\ -\dot{E}_{h}(-8.33) + \frac{{\left[ {\dot{E}_{h}(1.67) - \dot{E}_{h}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{10}}{\rm{,~if~}} -8.33^{\circ}C < {T_j} < 7.22^{\circ}C\end{array} \right. +\dot{E}_{h}({T_j}) = \left\{ \begin{array}{l}\dot{E}_{h}(-8.33) + \frac{{\left[ {\dot{{E}_{h}}(8.33) - \dot{{E_h}}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{16.67}}{\mathrm{,~if~}}{T_j} \ge 7.22^{\circ}C {\mathrm{~or~}}{T_j} \le -8.33^{\circ}C \\ +\dot{E}_{h}(-8.33) + \frac{{\left[ {\dot{E}_{h}(1.67) - \dot{E}_{h}(-8.33)} \right] \cdot \left( {{T_j} + 8.33} \right)}}{{10}}{\mathrm{,~if~}} -8.33^{\circ}C < {T_j} < 7.22^{\circ}C\end{array} \right. \end{equation} \(\dot{Q_h}(-8.33),~\dot{Q_h}(1.67),~\dot{Q_h}(8.33),~\dot{E_h}(-8.33),~\dot{E_h}(1.67)\) and \(\dot{E_h}(8.33)\) are the \textbf{(net)} values calculated using performance curves entered by the user and supply fan power per rated air flow rate. @@ -4403,7 +4403,7 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co The following section describes the test condition for heating mode tests for Air-Source Heat Pumps, including heating-only heat pumps, and the equations required to calculate the HSPF. The HSPF for multi-speed compressor heat pumps in Btu/W-h is given by: \begin{equation} -HSPF{\rm{ = }}\frac{{\sum\limits_{\rm{j}}^{\rm{M}} {\frac{{{n_j}}}{N} \cdot BL\left( {{T_j}} \right)} }}{{\sum\limits_{\rm{j}}^{\rm{M}} {\frac{{{e_h}\left( {{T_j}} \right)}}{N}{\rm{ + }}} \sum\limits_{\rm{j}}^{\rm{M}} {\frac{{RH\left( {{T_j}} \right)}}{N}} }} \cdot {F_{def}} +HSPF{\mathrm{ = }}\frac{{\sum\limits_{\mathrm{j}}^{\mathrm{M}} {\frac{{{n_j}}}{N} \cdot BL\left( {{T_j}} \right)} }}{{\sum\limits_{\mathrm{j}}^{\mathrm{M}} {\frac{{{e_h}\left( {{T_j}} \right)}}{N}{\mathrm{ + }}} \sum\limits_{\mathrm{j}}^{\mathrm{M}} {\frac{{RH\left( {{T_j}} \right)}}{N}} }} \cdot {F_{def}} \end{equation} where: @@ -4427,7 +4427,7 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co The building heating load is calculated as follows: \begin{equation} -BL\left( {{T_j}} \right){\rm{ = }}\frac{{{\rm{18}}{\rm{.33 - }}{T_j}}}{{{\rm{18}}{\rm{.33 - }}{T_{OD}}}} \cdot C \cdot DHR +BL\left( {{T_j}} \right){\mathrm{ = }}\frac{{{\mathrm{18}}{\mathrm{.33 - }}{T_j}}}{{{\mathrm{18}}{\mathrm{.33 - }}{T_{OD}}}} \cdot C \cdot DHR \end{equation} The minimum and maximum design heating requirements for each generalized climate regions are given by: @@ -4461,43 +4461,43 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co The heating capacity delivered and electric power input of the heat pump when operating at minimum (low) compressor capacity and outdoor air temperature of \emph{T\(_{j}\)} is given by: \begin{equation} -{\rm{\dot Q}}_h^{k = 1}{\rm{(}}{{\rm{T}}_{\rm{j}}}{\rm{) = }}\left\{ +{\mathrm{\dot Q}}_h^{k = 1}{\mathrm{(}}{{\mathrm{T}}_{\mathrm{j}}}{\mathrm{) = }}\left\{ \begin{array}{l} - {\rm{\dot Q}}_h^{k = 1}(8.33) + \;\frac{{\left[ {{\rm{\dot Q}}_h^{k = 1}{\rm{(16}}{\rm{.67) - \dot Q}}_h^{k = 1}{\rm{(8}}{\rm{.33)}}} \right] \cdot \left( {{{\rm{T}}_{\rm{j}}} - 8.33} \right)}}{{\left( {16.67 - 8.33} \right)}}\,{\rm{,~if }}\,{{\rm{T}}_{\rm{j}}} \ge 4.44{\rm{^\circ C}} \\ - {\rm{\dot Q}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\rm{\dot Q}}_h^{k = 1}{\rm{(1}}{\rm{.67) - \dot Q}}_h^{k = 1}{\rm{( - 8}}{\rm{.33)}}} \right] \cdot \left( {{{\rm{T}}_{\rm{j}}} + 8.33} \right)}}{{\left( {1.67 + 8.33} \right)}}\,{\rm{,~if }}\, - 8.33{\rm{^\circ C}} \le {{\rm{T}}_{\rm{j}}} < 4.44{\rm{^\circ C}} \\ - {\rm{\dot Q}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\rm{\dot Q}}_h^{k = 1}{\rm{(8}}{\rm{.33) - \dot Q}}_h^{k = 1}{\rm{( - 8}}{\rm{.33)}}} \right] \cdot \left( {{{\rm{T}}_{\rm{j}}} + 8.33} \right)}}{{\left( {8.33 + 8.33} \right)}}\,{\rm{,~if }}{{\rm{T}}_{\rm{j}}} < - 8.33{\rm{^\circ C}}\, + {\mathrm{\dot Q}}_h^{k = 1}(8.33) + \;\frac{{\left[ {{\mathrm{\dot Q}}_h^{k = 1}{\mathrm{(16}}{\mathrm{.67) - \dot Q}}_h^{k = 1}{\mathrm{(8}}{\mathrm{.33)}}} \right] \cdot \left( {{{\mathrm{T}}_{\mathrm{j}}} - 8.33} \right)}}{{\left( {16.67 - 8.33} \right)}}\,{\mathrm{,~if }}\,{{\mathrm{T}}_{\mathrm{j}}} \ge 4.44{\mathrm{^\circ C}} \\ + {\mathrm{\dot Q}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\mathrm{\dot Q}}_h^{k = 1}{\mathrm{(1}}{\mathrm{.67) - \dot Q}}_h^{k = 1}{\mathrm{( - 8}}{\mathrm{.33)}}} \right] \cdot \left( {{{\mathrm{T}}_{\mathrm{j}}} + 8.33} \right)}}{{\left( {1.67 + 8.33} \right)}}\,{\mathrm{,~if }}\, - 8.33{\mathrm{^\circ C}} \le {{\mathrm{T}}_{\mathrm{j}}} < 4.44{\mathrm{^\circ C}} \\ + {\mathrm{\dot Q}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\mathrm{\dot Q}}_h^{k = 1}{\mathrm{(8}}{\mathrm{.33) - \dot Q}}_h^{k = 1}{\mathrm{( - 8}}{\mathrm{.33)}}} \right] \cdot \left( {{{\mathrm{T}}_{\mathrm{j}}} + 8.33} \right)}}{{\left( {8.33 + 8.33} \right)}}\,{\mathrm{,~if }}{{\mathrm{T}}_{\mathrm{j}}} < - 8.33{\mathrm{^\circ C}}\, \end{array} \right\} \end{equation} \begin{equation} -{\rm{\dot E}}_h^{k = 1}{\rm{(}}{{\rm{T}}_{\rm{j}}}{\rm{) = }}\left\{ +{\mathrm{\dot E}}_h^{k = 1}{\mathrm{(}}{{\mathrm{T}}_{\mathrm{j}}}{\mathrm{) = }}\left\{ \begin{array}{l} - {\rm{\dot E}}_h^{k = 1}(8.33) + \;\frac{{\left[ {{\rm{\dot E}}_h^{k = 1}{\rm{(16}}{\rm{.67) - \dot E}}_h^{k = 1}{\rm{(8}}{\rm{.33)}}} \right] \cdot \left( {{{\rm{T}}_{\rm{j}}} - 8.33} \right)}}{{\left( {16.67 - 8.33} \right)}}\,{\rm{,~if }}\,{{\rm{T}}_{\rm{j}}} \ge 4.44{\rm{^\circ C}} \\ - {\rm{\dot E}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\rm{\dot E}}_h^{k = 1}{\rm{(1}}{\rm{.67) - \dot E}}_h^{k = 1}{\rm{( - 8}}{\rm{.33)}}} \right] \cdot \left( {{{\rm{T}}_{\rm{j}}} + 8.33} \right)}}{{\left( {1.67 + 8.33} \right)}}\,{\rm{,~if }}\, - 8.33{\rm{^\circ C}} \le {{\rm{T}}_{\rm{j}}} < 4.44{\rm{^\circ C}} \\ - {\rm{\dot E}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\rm{\dot E}}_h^{k = 1}{\rm{(8}}{\rm{.33) - \dot E}}_h^{k = 1}{\rm{( - 8}}{\rm{.33)}}} \right] \cdot \left( {{{\rm{T}}_{\rm{j}}} + 8.33} \right)}}{{\left( {8.33 + 8.33} \right)}}\,{\rm{,~if }}{{\rm{T}}_{\rm{j}}} < - 8.33{\rm{^\circ C}}\, + {\mathrm{\dot E}}_h^{k = 1}(8.33) + \;\frac{{\left[ {{\mathrm{\dot E}}_h^{k = 1}{\mathrm{(16}}{\mathrm{.67) - \dot E}}_h^{k = 1}{\mathrm{(8}}{\mathrm{.33)}}} \right] \cdot \left( {{{\mathrm{T}}_{\mathrm{j}}} - 8.33} \right)}}{{\left( {16.67 - 8.33} \right)}}\,{\mathrm{,~if }}\,{{\mathrm{T}}_{\mathrm{j}}} \ge 4.44{\mathrm{^\circ C}} \\ + {\mathrm{\dot E}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\mathrm{\dot E}}_h^{k = 1}{\mathrm{(1}}{\mathrm{.67) - \dot E}}_h^{k = 1}{\mathrm{( - 8}}{\mathrm{.33)}}} \right] \cdot \left( {{{\mathrm{T}}_{\mathrm{j}}} + 8.33} \right)}}{{\left( {1.67 + 8.33} \right)}}\,{\mathrm{,~if }}\, - 8.33{\mathrm{^\circ C}} \le {{\mathrm{T}}_{\mathrm{j}}} < 4.44{\mathrm{^\circ C}} \\ + {\mathrm{\dot E}}_h^{k = 1}( - 8.33) + \;\frac{{\left[ {{\mathrm{\dot E}}_h^{k = 1}{\mathrm{(8}}{\mathrm{.33) - \dot E}}_h^{k = 1}{\mathrm{( - 8}}{\mathrm{.33)}}} \right] \cdot \left( {{{\mathrm{T}}_{\mathrm{j}}} + 8.33} \right)}}{{\left( {8.33 + 8.33} \right)}}\,{\mathrm{,~if }}{{\mathrm{T}}_{\mathrm{j}}} < - 8.33{\mathrm{^\circ C}}\, \end{array} \right\} \end{equation} where: -\({\rm{\dot Q}}_h^{k = 1}\left( {{\rm{16}}{\rm{.67}}} \right){\rm{~and~}}\,{\rm{\dot E}}_h^{k = 1}\left( {{\rm{16}}{\rm{.67}}} \right)\) are determined from the H0\(_{1}\) test +\({\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{16}}{\mathrm{.67}}} \right){\mathrm{~and~}}\,{\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{16}}{\mathrm{.67}}} \right)\) are determined from the H0\(_{1}\) test -\({\rm{\dot Q}}_h^{k = 1}\left( {{\rm{8}}{\rm{.33}}} \right) {\rm{~and~}} {\rm{\dot E}}_h^{k = 1}\left( {{\rm{8}}{\rm{.33}}} \right)\) are determined from the H1\(_{1}\) test +\({\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{8}}{\mathrm{.33}}} \right) {\mathrm{~and~}} {\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{8}}{\mathrm{.33}}} \right)\) are determined from the H1\(_{1}\) test -\({\rm{\dot Q}}_h^{k = 1}\left( {{\rm{1}}{\rm{.67}}} \right) {\rm{~and~}} {\rm{\dot E}}_h^{k = 1}\left( {{\rm{1}}{\rm{.67}}} \right)\) are determined from the H2\(_{1}\) test +\({\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{1}}{\mathrm{.67}}} \right) {\mathrm{~and~}} {\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{1}}{\mathrm{.67}}} \right)\) are determined from the H2\(_{1}\) test -\({\rm{\dot Q}}_h^{k = 1}\left( {{\rm{ - 8}}{\rm{.33}}} \right) {\rm{~and~}} {\rm{\dot E}}_h^{k = 1}\left( {{\rm{ - 8}}{\rm{.33}}} \right)\) are determined from the H3\(_{1}\) test. +\({\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right) {\mathrm{~and~}} {\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right)\) are determined from the H3\(_{1}\) test. An alternative to conducting or evaluating the performance at the H2\(_{1}\) test is to approximate the capacity and electric power inputs as follows: \begin{equation} -{\rm{\dot Q}}_h^{k = 1}\left( {{\rm{1}}{\rm{.67}}} \right) = 0.9 \cdot \left\{ {{\rm{\dot Q}}_h^{k = 1}\left( {{\rm{ - 8}}{\rm{.33}}} \right) + 0.6\left[ {{\rm{\dot Q}}_h^{k = 1}\left( {{\rm{8}}{\rm{.33}}} \right) - {\rm{\dot Q}}_h^{k = 1}\left( {{\rm{ - 8}}{\rm{.33}}} \right)} \right]} \right\} +{\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{1}}{\mathrm{.67}}} \right) = 0.9 \cdot \left\{ {{\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right) + 0.6\left[ {{\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{8}}{\mathrm{.33}}} \right) - {\mathrm{\dot Q}}_h^{k = 1}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right)} \right]} \right\} \end{equation} \begin{equation} -{\rm{\dot E}}_h^{k = 1}\left( {{\rm{1}}{\rm{.67}}} \right) = 0.985 \cdot \left\{ {{\rm{\dot E}}_h^{k = 1}\left( {{\rm{ - 8}}{\rm{.33}}} \right) + 0.6\left[ {{\rm{\dot E}}_h^{k = 1}\left( {{\rm{8}}{\rm{.33}}} \right) - {\rm{\dot E}}_h^{k = 1}\left( {{\rm{ - 8}}{\rm{.33}}} \right)} \right]} \right\} +{\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{1}}{\mathrm{.67}}} \right) = 0.985 \cdot \left\{ {{\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right) + 0.6\left[ {{\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{8}}{\mathrm{.33}}} \right) - {\mathrm{\dot E}}_h^{k = 1}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right)} \right]} \right\} \end{equation} The heating capacity delivered and electric power input of the heat pump when operating at maximum (high) compressor speed and outdoor air temperature of \emph{T\(_{j}\)} is given by: @@ -4512,11 +4512,11 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co where: -\(\dot Q_h^{k = 2}\left( {{\rm{8}}{\rm{.33}}} \right) {\rm{~and~}} \dot E_h^{k = 2}\left( {{\rm{8}}{\rm{.33}}} \right)\) are determined from the H1\(_{2}\) test +\(\dot Q_h^{k = 2}\left( {{\mathrm{8}}{\mathrm{.33}}} \right) {\mathrm{~and~}} \dot E_h^{k = 2}\left( {{\mathrm{8}}{\mathrm{.33}}} \right)\) are determined from the H1\(_{2}\) test -\(\dot Q_h^{k = 2}\left( {{\rm{1}}{\rm{.67}}} \right) {\rm{~and~}} \dot E_h^{k = 2}\left( {{\rm{1}}{\rm{.67}}} \right)\) are determined from the H2\(_{2}\) test +\(\dot Q_h^{k = 2}\left( {{\mathrm{1}}{\mathrm{.67}}} \right) {\mathrm{~and~}} \dot E_h^{k = 2}\left( {{\mathrm{1}}{\mathrm{.67}}} \right)\) are determined from the H2\(_{2}\) test -\(\dot Q_h^{k = 2}\left( {{\rm{ - 8}}{\rm{.33}}} \right) {\rm{~and~}} \dot E_h^{k = 2}\left( {{\rm{ - 8}}{\rm{.33}}} \right)\) are determined from the H3\(_{2}\) test. +\(\dot Q_h^{k = 2}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right) {\mathrm{~and~}} \dot E_h^{k = 2}\left( {{\mathrm{ - 8}}{\mathrm{.33}}} \right)\) are determined from the H3\(_{2}\) test. The electric energy used by the heat pumps differs depending up on whether the heat pump would operate at low (minimum) capacity, cycle between successive lower and higher speed capacities, or operate at high speed capacity in responding to the building load.~ The procedure for each operation cases is described next. @@ -4527,23 +4527,23 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co \end{equation} \begin{equation} -\frac{{{{\rm{e}}_h}\left( {{{\rm{T}}_{\rm{j}}}} \right)}}{{\rm{N}}}{\rm{ = }}\frac{{{{\rm{X}}^{k = 1}}\left( {{{\rm{T}}_{\rm{j}}}} \right) \cdot {\rm{\dot E}}_h^{k = 1}\left( {{{\rm{T}}_{\rm{j}}}} \right) \cdot {\rm{\delta }}\left( {{{\rm{T}}_{\rm{j}}}} \right)}}{{PL{F_j}}} \cdot \frac{{{{\rm{n}}_{\rm{j}}}}}{{\rm{N}}} +\frac{{{{\mathrm{e}}_h}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)}}{{\mathrm{N}}}{\mathrm{ = }}\frac{{{{\mathrm{X}}^{k = 1}}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right) \cdot {\mathrm{\dot E}}_h^{k = 1}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right) \cdot {\mathrm{\delta }}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)}}{{PL{F_j}}} \cdot \frac{{{{\mathrm{n}}_{\mathrm{j}}}}}{{\mathrm{N}}} \end{equation} \begin{equation} -\frac{{RH\left( {{{\rm{T}}_{\rm{j}}}} \right)}}{{\rm{N}}}{\rm{ = }}BL\left( {{{\rm{T}}_{\rm{j}}}} \right) \cdot \left[ {{\rm{1 - }}{{\rm{\delta }}^\prime}\left( {{{\rm{T}}_{\rm{j}}}} \right)} \right] \cdot \frac{{{{\rm{n}}_{\rm{j}}}}}{{\rm{N}}} +\frac{{RH\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)}}{{\mathrm{N}}}{\mathrm{ = }}BL\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right) \cdot \left[ {{\mathrm{1 - }}{{\mathrm{\delta }}^\prime}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)} \right] \cdot \frac{{{{\mathrm{n}}_{\mathrm{j}}}}}{{\mathrm{N}}} \end{equation} \begin{equation} -{{\rm{X}}^{k = 1}}\left( {{{\rm{T}}_{\rm{j}}}} \right){\rm{ = MIN}}\left\{ \begin{array}{l}BL\left( {{{\rm{T}}_{\rm{j}}}} \right){\rm{/\dot Q}}_h^{k = 1}\left( {{{\rm{T}}_{\rm{j}}}} \right)\\1.0\end{array} \right\} +{{\mathrm{X}}^{k = 1}}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right){\mathrm{ = MIN}}\left\{ \begin{array}{l}BL\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right){\mathrm{/\dot Q}}_h^{k = 1}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)\\1.0\end{array} \right\} \end{equation} \begin{equation} -{\delta ^\prime}{\rm{(}}{{\rm{T}}_{\rm{j}}}{\rm{) = }}\left\{ \begin{array}{l}0,\quad {\rm{if}}\,{{\rm{T}}_{\rm{j}}}\, \le \,{{\rm{T}}_{{\rm{off}}}}\,\\1/2,\quad {\rm{if}}\,{{\rm{T}}_{{\rm{off}}}} < {{\rm{T}}_{\rm{j}}}\, \le \,{{\rm{T}}_{{\rm{on}}}}\\1,\quad {\rm{if}}\,{{\rm{T}}_{\rm{j}}}\, > \,{{\rm{T}}_{{\rm{on}}}}\end{array} \right\} +{\delta ^\prime}{\mathrm{(}}{{\mathrm{T}}_{\mathrm{j}}}{\mathrm{) = }}\left\{ \begin{array}{l}0,\quad {\mathrm{if}}\,{{\mathrm{T}}_{\mathrm{j}}}\, \le \,{{\mathrm{T}}_{{\mathrm{off}}}}\,\\1/2,\quad {\mathrm{if}}\,{{\mathrm{T}}_{{\mathrm{off}}}} < {{\mathrm{T}}_{\mathrm{j}}}\, \le \,{{\mathrm{T}}_{{\mathrm{on}}}}\\1,\quad {\mathrm{if}}\,{{\mathrm{T}}_{\mathrm{j}}}\, > \,{{\mathrm{T}}_{{\mathrm{on}}}}\end{array} \right\} \end{equation} \begin{equation} -PL{F_{\rm{j}}}{\rm{ = 1 - }}C_D^h \cdot \left[ {{\rm{1 - }}{{\rm{X}}^{k = 1}}{\rm{(}}{T_j}{\rm{)}}} \right] +PL{F_{\mathrm{j}}}{\mathrm{ = 1 - }}C_D^h \cdot \left[ {{\mathrm{1 - }}{{\mathrm{X}}^{k = 1}}{\mathrm{(}}{T_j}{\mathrm{)}}} \right] \end{equation} where \(C_D^h\) is the degradation coefficient which has a minimum value of 0.25. @@ -4559,11 +4559,11 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co \end{equation} \begin{equation} -\frac{{RH\left( {{{\rm{T}}_{\rm{j}}}} \right)}}{{\rm{N}}}{\rm{ = BL}}\left( {{{\rm{T}}_{\rm{j}}}} \right) \cdot \left[ {{\rm{1 - }}{{\rm{\delta }}^\prime}\left( {{{\rm{T}}_{\rm{j}}}} \right)} \right] \cdot \frac{{{n_j}}}{N} +\frac{{RH\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)}}{{\mathrm{N}}}{\mathrm{ = BL}}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right) \cdot \left[ {{\mathrm{1 - }}{{\mathrm{\delta }}^\prime}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)} \right] \cdot \frac{{{n_j}}}{N} \end{equation} \begin{equation} -{\delta ^\prime}{\rm{(}}{{\rm{T}}_{\rm{j}}}{\rm{) = }}\left\{ \begin{array}{l}0,\quad {\rm{if}}\,{{\rm{T}}_{\rm{j}}}\, \le \,{{\rm{T}}_{{\rm{off}}}}\,\\ {\frac{1}{2}},\quad {\rm{if}}\,{{\rm{T}}_{{\rm{off}}}} < {{\rm{T}}_{\rm{j}}}\, \le \,{{\rm{T}}_{{\rm{on}}}}\\ 1,\quad {\rm{if}}\,{{\rm{T}}_{\rm{j}}}\, > \,{{\rm{T}}_{{\rm{on}}}}\end{array} \right\} +{\delta ^\prime}{\mathrm{(}}{{\mathrm{T}}_{\mathrm{j}}}{\mathrm{) = }}\left\{ \begin{array}{l}0,\quad {\mathrm{if}}\,{{\mathrm{T}}_{\mathrm{j}}}\, \le \,{{\mathrm{T}}_{{\mathrm{off}}}}\,\\ {\frac{1}{2}},\quad {\mathrm{if}}\,{{\mathrm{T}}_{{\mathrm{off}}}} < {{\mathrm{T}}_{\mathrm{j}}}\, \le \,{{\mathrm{T}}_{{\mathrm{on}}}}\\ 1,\quad {\mathrm{if}}\,{{\mathrm{T}}_{\mathrm{j}}}\, > \,{{\mathrm{T}}_{{\mathrm{on}}}}\end{array} \right\} \end{equation} \begin{equation} @@ -4603,11 +4603,11 @@ \subsubsection{Heating seasonal performance factors (HSPF) for Multi-Speed DX Co X(T\(_{j}\)) is the heating mode load factor for temperature bin j (-) -\({{\rm{\dot Q}}_{\rm{h}}}\left( {{{\rm{T}}_{\rm{j}}}} \right)\) is the space heating capacity of the heat pump when operating at outdoor temperature T\(_{j}\) (W) +\({{\mathrm{\dot Q}}_{\mathrm{h}}}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)\) is the space heating capacity of the heat pump when operating at outdoor temperature T\(_{j}\) (W) -\({{\rm{\dot E}}_{\rm{h}}}\left( {{{\rm{T}}_{\rm{j}}}} \right)\) is the electrical power consumption of the heat pump when operating at outdoor temperature T\(_{j}\) (W) +\({{\mathrm{\dot E}}_{\mathrm{h}}}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)\) is the electrical power consumption of the heat pump when operating at outdoor temperature T\(_{j}\) (W) -\({\rm{\delta }}\left( {{{\rm{T}}_{\rm{j}}}} \right)\) is the heat pump low temperature cut-off factor (-) +\({\mathrm{\delta }}\left( {{{\mathrm{T}}_{\mathrm{j}}}} \right)\) is the heat pump low temperature cut-off factor (-) \(T_{off}\) is the outdoor temperature when the compressor is automatically shut off (\(^{\circ}\)C). (If no such temperature exists, Tj is always greater than T\(_{off}\) and T\(_{on}\)). @@ -4665,7 +4665,7 @@ \subsubsection{Model Description}\label{model-description-5} The Rated Heating Capacity at Selected Nominal Speed Level contains the rated capacity to match the building heating load at the design day.~ The rated heating capacity is used to determine a capacity scaling factor, as compared to the Reference Unit capacity at the nominal speed level. \begin{equation} -{\rm{CapacityScaleFactor}} = \frac{{{\rm{RatedTotalHeatingCapacity}}}}{{{\rm{ReferenceUnitTotalHeatingCapacity}}@{\rm{NominalSpeedLevel}}}} +{\mathrm{CapacityScaleFactor}} = \frac{{{\mathrm{RatedTotalHeatingCapacity}}}}{{{\mathrm{ReferenceUnitTotalHeatingCapacity}}@{\mathrm{NominalSpeedLevel}}}} \end{equation} And then, this scaling factor is used to determine capacities at rated conditions for other speed levels, RatedTotalHeatingCapacity@SpeedLevel(x) = CapacityScaleFactor times ReferenceUnitTotalHeatingCapacity@SpeedLevel (x) @@ -4673,14 +4673,14 @@ \subsubsection{Model Description}\label{model-description-5} The Rated Volumetric Air Flow Rate is used to determine an internal scaling factor, and calculate the air flow rates in the parent objects, as follows: \begin{equation} -{\rm{AirFlowScaleFactor}} = \frac{{{\rm{RatedVolumetricAirFlowRate}}}}{{{\rm{ReferenceUnitVolAirFlowRate}}@{\rm{NominalSpeedLevel}} \times {\rm{CapacityScaleFactor}}}} +{\mathrm{AirFlowScaleFactor}} = \frac{{{\mathrm{RatedVolumetricAirFlowRate}}}}{{{\mathrm{ReferenceUnitVolAirFlowRate}}@{\mathrm{NominalSpeedLevel}} \times {\mathrm{CapacityScaleFactor}}}} \end{equation} where the loop volumetric air flow rates at various speed levels in the parent objects are calculated as LoopVolumetricAirFlowRate @ SpeedLevel (x) = AirFlowScaleFactor times ReferenceUnitVolAirFlowRate @ SpeedLevel (x) times CapacityScaleFactor. If the volumetric air flow rate at one speed level is higher than the flow rate allowed by the fan in the parent object, the flow rate will be set back to the fan flow rate. -If \({\rm{AirFlowScaleFactor}}\) equals unity, the loop air flow rate becomes the design flow rate of the Reference Unit (after scaled by the rated heating capacity). The Rated Volumetric Air Flow Rate is introduced here to correlate with the actual flow rate in the air loop, in case that it differs from the design specification. Certainly, it is recommended that the Rated Volumetric Air Flow Rate is selected in the way that \({\rm{AirFlowScaleFactor}}\) ~is unity, so as to get more accurate results from the performance curves. +If \({\mathrm{AirFlowScaleFactor}}\) equals unity, the loop air flow rate becomes the design flow rate of the Reference Unit (after scaled by the rated heating capacity). The Rated Volumetric Air Flow Rate is introduced here to correlate with the actual flow rate in the air loop, in case that it differs from the design specification. Certainly, it is recommended that the Rated Volumetric Air Flow Rate is selected in the way that \({\mathrm{AirFlowScaleFactor}}\) ~is unity, so as to get more accurate results from the performance curves. \subsubsection{Performance curves:}\label{performance-curves-201605050922} @@ -4715,7 +4715,7 @@ \subsubsection{Performance curves:}\label{performance-curves-201605050922} The total heating capacity modifier as a function of temperature curve (CAP-FT) is a biquadratic curve with two independent variables: dry-bulb temperature of the air entering the heating coil and the air DB temperature entering the evaporator coil. The output of this curve is multiplied by the rated total heating capacity at the speed, to give the total heating capacity at the specific entering air temperatures at which the ASHP unit is operating (i.e., at temperatures different from the rating point temperatures). \begin{equation} -{\rm{TotCapTempModFac}} = {\rm{a}} + {\rm{b*D}}{{\rm{B}}_{\rm{i}}} + {\rm{c*DB}}_{\rm{i}}^2 + {\rm{d*D}}{{\rm{B}}_{\rm{o}}} + {\rm{e*D}}{{\rm{B}}_{\rm{o}}}^2 + {\rm{f*D}}{{\rm{B}}_{\rm{i}}}{\rm{*D}}{{\rm{B}}_{\rm{o}}} +{\mathrm{TotCapTempModFac}} = {\mathrm{a}} + {\mathrm{b*D}}{{\mathrm{B}}_{\mathrm{i}}} + {\mathrm{c*DB}}_{\mathrm{i}}^2 + {\mathrm{d*D}}{{\mathrm{B}}_{\mathrm{o}}} + {\mathrm{e*D}}{{\mathrm{B}}_{\mathrm{o}}}^2 + {\mathrm{f*D}}{{\mathrm{B}}_{\mathrm{i}}}{\mathrm{*D}}{{\mathrm{B}}_{\mathrm{o}}} \end{equation} where: @@ -4735,7 +4735,7 @@ \subsubsection{Performance curves:}\label{performance-curves-201605050922} \end{enumerate} \begin{equation} -{\rm{TotCapAirFlowModFac}} = {\rm{a}} + {\rm{b*f}}{{\rm{f}}_{\rm{a}}} + {\rm{c*ff}}_{\rm{a}}^2 + {\rm{d*ff}}_{\rm{a}}^3 +{\mathrm{TotCapAirFlowModFac}} = {\mathrm{a}} + {\mathrm{b*f}}{{\mathrm{f}}_{\mathrm{a}}} + {\mathrm{c*ff}}_{\mathrm{a}}^2 + {\mathrm{d*ff}}_{\mathrm{a}}^3 \end{equation} where: @@ -4757,7 +4757,7 @@ \subsubsection{Performance curves:}\label{performance-curves-201605050922} The energy input ratio modifier curve as a function of temperature (EIR-FT) is a biquadratic curve with two independent variables DB\(_{i}\)~ and DB\(_{o}\). The output of this curve is multiplied by the rated EIR at the speed (inverse of the rated COP), to give the EIR at the specific entering air temperatures at which the ASHP coil unit is operating (i.e., at temperatures different from the rating point temperatures). \begin{equation} -{\rm{EIRTempModFac}} = {\rm{a}} + {\rm{b*D}}{{\rm{B}}_{\rm{i}}} + {\rm{c*DB}}_{\rm{i}}^2 + {\rm{d*D}}{{\rm{B}}_{\rm{o}}} + {\rm{e*D}}{{\rm{B}}_{\rm{o}}}^2 + {\rm{f*D}}{{\rm{B}}_{\rm{i}}}{\rm{*D}}{{\rm{B}}_{\rm{o}}} +{\mathrm{EIRTempModFac}} = {\mathrm{a}} + {\mathrm{b*D}}{{\mathrm{B}}_{\mathrm{i}}} + {\mathrm{c*DB}}_{\mathrm{i}}^2 + {\mathrm{d*D}}{{\mathrm{B}}_{\mathrm{o}}} + {\mathrm{e*D}}{{\mathrm{B}}_{\mathrm{o}}}^2 + {\mathrm{f*D}}{{\mathrm{B}}_{\mathrm{i}}}{\mathrm{*D}}{{\mathrm{B}}_{\mathrm{o}}} \end{equation} where a-f are regression curve fit coefficients. @@ -4771,7 +4771,7 @@ \subsubsection{Performance curves:}\label{performance-curves-201605050922} \end{enumerate} \begin{equation} -{\rm{EIRAirFlowModFac}} = {\rm{a}} + {\rm{b*f}}{{\rm{f}}_{\rm{a}}} + {\rm{c*ff}}_{\rm{a}}^2 + {\rm{d*ff}}_{\rm{a}}^3 +{\mathrm{EIRAirFlowModFac}} = {\mathrm{a}} + {\mathrm{b*f}}{{\mathrm{f}}_{\mathrm{a}}} + {\mathrm{c*ff}}_{\mathrm{a}}^2 + {\mathrm{d*ff}}_{\mathrm{a}}^3 \end{equation} where a-d are regression curve-fit coefficients. If no data are available for the correction, the user can simply set a = 1.0 and the other coefficients to 0.0. @@ -4787,7 +4787,7 @@ \subsubsection{Performance curves:}\label{performance-curves-201605050922} This field defines the name of a quadratic or cubic performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the unit as a function of the part load ratio (PLR, heating load/steady-state heating capacity for Speed 1): \begin{equation} -{\rm{PartLoadFrac}} = {\rm{a}} + {\rm{b*PLR}} + {\rm{c*PL}}{{\rm{R}}^2} + {\rm{d*PL}}{{\rm{R}}^3} +{\mathrm{PartLoadFrac}} = {\mathrm{a}} + {\mathrm{b*PLR}} + {\mathrm{c*PL}}{{\mathrm{R}}^2} + {\mathrm{d*PL}}{{\mathrm{R}}^3} \end{equation} and @@ -4801,13 +4801,13 @@ \subsubsection{Performance curves:}\label{performance-curves-201605050922} If PLF \textless{} 0.7, the program resets the PLF value to 0.7, and the simulation proceeds. The runtime fraction of the coil is defined as PLR/PLF. If PLF \textless{} PLR, the runtime fraction of the coil is limited to 1.0. A typical part load fraction correlation would be: \begin{equation} -{\rm{PLF}} = 0.85 + 0.15 \times {\rm{PLR}} +{\mathrm{PLF}} = 0.85 + 0.15 \times {\mathrm{PLR}} \end{equation} If the user wishes to model no efficiency degradation due to compressor cycling, the part load fraction correlation should be defined as follows: \begin{equation} -{\rm{PLF}} = 0.85 + 0.0 \times {\rm{PLR}} +{\mathrm{PLF}} = 0.85 + 0.0 \times {\mathrm{PLR}} \end{equation} \subsubsection{Lowest Speed Operation}\label{lowest-speed-operation-201605050922} @@ -4816,27 +4816,27 @@ \subsubsection{Lowest Speed Operation}\label{lowest-speed-operation-201605050922 \begin{equation} \begin{array}{rl} - Q_{total,1} &= \rm{RatedTotalHeatingCapacity @ SpeedLevel 1} \\ - &* \rm{TotCapTemModFac}_1 \rm{* TotCapAirFlowModFac}_1 + Q_{total,1} &= \mathrm{RatedTotalHeatingCapacity @ SpeedLevel 1} \\ + &* \mathrm{TotCapTemModFac}_1 \mathrm{* TotCapAirFlowModFac}_1 \end{array} \end{equation} And the EIR is calculated as: \begin{equation} -{\rm{EI}}{{\rm{R}}_1} = \frac{{1.0}}{{{\rm{ReferenceUnitCOP}}@{\rm{Speed}}(1)}}{\rm{*EIRTempModFa}}{{\rm{c}}_1}{\rm{*EIRAirFlowModFa}}{{\rm{c}}_1} +{\mathrm{EI}}{{\mathrm{R}}_1} = \frac{{1.0}}{{{\mathrm{ReferenceUnitCOP}}@{\mathrm{Speed}}(1)}}{\mathrm{*EIRTempModFa}}{{\mathrm{c}}_1}{\mathrm{*EIRAirFlowModFa}}{{\mathrm{c}}_1} \end{equation} And the power consumption including the compressor, outdoor fan and accessories (not including indoor fan power) is, \begin{equation} -{\rm{Powe}}{{\rm{r}}_1} = {{\rm{Q}}_{{\rm{total}},1}}{\rm{*EI}}{{\rm{R}}_1}{\rm{*RTF}} +{\mathrm{Powe}}{{\mathrm{r}}_1} = {{\mathrm{Q}}_{{\mathrm{total}},1}}{\mathrm{*EI}}{{\mathrm{R}}_1}{\mathrm{*RTF}} \end{equation} The fraction of the actual air mass flow to the design air mass flow rate is calculated: \begin{equation} -{\rm{f}}{{\rm{f}}_{{\rm{a}},1}} = \frac{{{\rm{actual~air~mass~flow~rate}}}}{{({\rm{ReferenceUnitAirMassFlowRate}}@{\rm{SpeedLevel}}(1) \times {\rm{CapacityScaleFactor}})}}{\rm{}} +{\mathrm{f}}{{\mathrm{f}}_{{\mathrm{a}},1}} = \frac{{{\mathrm{actual~air~mass~flow~rate}}}}{{({\mathrm{ReferenceUnitAirMassFlowRate}}@{\mathrm{SpeedLevel}}(1) \times {\mathrm{CapacityScaleFactor}})}}{\mathrm{}} \end{equation} \subsubsection{Higher Speed Operation}\label{higher-speed-operation-1-001} @@ -4847,10 +4847,10 @@ \subsubsection{Higher Speed Operation}\label{higher-speed-operation-1-001} \begin{equation} \begin{array}{rl} - \rm{DesignAirFlowRateSpeedRatio} &= \rm{ReferenceUnitAirMassFlowRate @ SpeedLevel} \PB{x-1} \\ - &* \rm{CapacityScaleFactor} * \PB{1 - SpeedRatio} \\ - &+ \rm{ReferenceUnitAirMassFlowRate @ SpeedLevel} \PB{x} \\ - &* \rm{CapacityScaleFactor*SpeedRatio} + \mathrm{DesignAirFlowRateSpeedRatio} &= \mathrm{ReferenceUnitAirMassFlowRate @ SpeedLevel} \PB{x-1} \\ + &* \mathrm{CapacityScaleFactor} * \PB{1 - SpeedRatio} \\ + &+ \mathrm{ReferenceUnitAirMassFlowRate @ SpeedLevel} \PB{x} \\ + &* \mathrm{CapacityScaleFactor*SpeedRatio} \end{array} \end{equation} @@ -4864,48 +4864,48 @@ \subsubsection{Higher Speed Operation}\label{higher-speed-operation-1-001} \begin{equation} \begin{split} -{{\rm{Q}}_{{\rm{total}},{\rm{x}} - 1}} = {\rm{RatedTotalHeatingCapacity}}@{\rm{SpeedLevel}}\left( {{\rm{x}} - 1} \right) \\ -{\rm{*TotCapTempModFa}}{{\rm{c}}_{{\rm{x}} - 1}} {\rm{*TotCapAirFlowModFa}}{{\rm{c}}_{{\rm{x}} - 1}} +{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}} - 1}} = {\mathrm{RatedTotalHeatingCapacity}}@{\mathrm{SpeedLevel}}\left( {{\mathrm{x}} - 1} \right) \\ +{\mathrm{*TotCapTempModFa}}{{\mathrm{c}}_{{\mathrm{x}} - 1}} {\mathrm{*TotCapAirFlowModFa}}{{\mathrm{c}}_{{\mathrm{x}} - 1}} \end{split} \end{equation} \begin{equation} \begin{split} -{{\rm{Q}}_{{\rm{total}},{\rm{x}}}} = {\rm{RatedTotalHeatingCapacity}}@{\rm{SpeedLevel}}\left( {\rm{x}} \right) \\ -{\rm{*TotCapTempModFa}}{{\rm{c}}_{\rm{x}}} {\rm{*TotCapAirFlowModFa}}{{\rm{c}}_{\rm{x}}} +{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}}}} = {\mathrm{RatedTotalHeatingCapacity}}@{\mathrm{SpeedLevel}}\left( {\mathrm{x}} \right) \\ +{\mathrm{*TotCapTempModFa}}{{\mathrm{c}}_{\mathrm{x}}} {\mathrm{*TotCapAirFlowModFa}}{{\mathrm{c}}_{\mathrm{x}}} \end{split} \end{equation} \begin{equation} -{\rm{EI}}{{\rm{R}}_{{\rm{x}} - 1}} = \frac{{1.0}}{{{\rm{ReferenceUnitCOP}}@{\rm{Speed}}({\rm{x}} - 1)}}{\rm{EIRTempModFa}}{{\rm{c}}_{{\rm{x}} - 1}}{\rm{*EIRAirFlowModFa}}{{\rm{c}}_{{\rm{x}} - 1}} +{\mathrm{EI}}{{\mathrm{R}}_{{\mathrm{x}} - 1}} = \frac{{1.0}}{{{\mathrm{ReferenceUnitCOP}}@{\mathrm{Speed}}({\mathrm{x}} - 1)}}{\mathrm{EIRTempModFa}}{{\mathrm{c}}_{{\mathrm{x}} - 1}}{\mathrm{*EIRAirFlowModFa}}{{\mathrm{c}}_{{\mathrm{x}} - 1}} \end{equation} \begin{equation} -{\rm{EI}}{{\rm{R}}_{\rm{x}}} = \frac{{1.0}}{{{\rm{ReferenceUnitCOP}}@{\rm{Speed}}({\rm{x}})}}{\rm{EIRTempModFa}}{{\rm{c}}_{\rm{x}}}{\rm{*EIRAirFlowModFa}}{{\rm{c}}_{\rm{x}}} +{\mathrm{EI}}{{\mathrm{R}}_{\mathrm{x}}} = \frac{{1.0}}{{{\mathrm{ReferenceUnitCOP}}@{\mathrm{Speed}}({\mathrm{x}})}}{\mathrm{EIRTempModFa}}{{\mathrm{c}}_{\mathrm{x}}}{\mathrm{*EIRAirFlowModFa}}{{\mathrm{c}}_{\mathrm{x}}} \end{equation} The total heating capacity at the corresponding speed ratio is: \begin{equation} -{{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}} = \left( {1.0 - {\rm{SpeedRatio}}} \right){\rm{*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}} - 1}} + {\rm{SpeedRatio*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}}}} +{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}} = \left( {1.0 - {\mathrm{SpeedRatio}}} \right){\mathrm{*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}} - 1}} + {\mathrm{SpeedRatio*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}}}} \end{equation} and the power consumption is: \begin{equation} -{\rm{Powe}}{{\rm{r}}_{{\rm{SpeedRatio}}}} = \left( {1.0 - {\rm{SpeedRatio}}} \right){\rm{*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}} - 1}}{\rm{*EI}}{{\rm{R}}_{{\rm{x}} - 1}} + {\rm{SpeedRatio*}}{{\rm{Q}}_{{\rm{total}},{\rm{x}}}}{\rm{*EI}}{{\rm{R}}_{\rm{x}}} +{\mathrm{Powe}}{{\mathrm{r}}_{{\mathrm{SpeedRatio}}}} = \left( {1.0 - {\mathrm{SpeedRatio}}} \right){\mathrm{*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}} - 1}}{\mathrm{*EI}}{{\mathrm{R}}_{{\mathrm{x}} - 1}} + {\mathrm{SpeedRatio*}}{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{x}}}}{\mathrm{*EI}}{{\mathrm{R}}_{\mathrm{x}}} \end{equation} The total amount of heat absorbed by the outdoor evaporator is calculated as: \begin{equation} -{{\rm{Q}}_{{\rm{evap}},{\rm{SpeedRatio}}}} = {{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}} - {\rm{Powe}}{{\rm{r}}_{{\rm{SpeedRatio}}}} +{{\mathrm{Q}}_{{\mathrm{evap}},{\mathrm{SpeedRatio}}}} = {{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}} - {\mathrm{Powe}}{{\mathrm{r}}_{{\mathrm{SpeedRatio}}}} \end{equation} Finally: \begin{equation} -{{\rm{Q}}_{{\rm{total}},{\rm{SpeedRatio}}}} = {\rm{HeatingLoad}} +{{\mathrm{Q}}_{{\mathrm{total}},{\mathrm{SpeedRatio}}}} = {\mathrm{HeatingLoad}} \end{equation} If the speed reaches the highest level, the speed ratio becomes 1.0, and Speed x represents the highest speed. @@ -4917,7 +4917,7 @@ \subsubsection{Defrost Operation}\label{defrost-operation-1} The defrost energy input ratio (EIR) curve (function of temperature) is the same as the single speed DX heating coil. It is a biquadratic curve with two independent variables: outdoor air dry-bulb temperature and the heating coil entering air wet-bulb temperature. The output of this curve represents the defrost power divided by the rated heating capacity (i.e., an energy input ratio, not a modifier applied to a rated EIR). It is multiplied by the heating coil capacity, the fractional defrost time period and the runtime fraction of the heating coil to give the defrost power at the specific temperatures at which the coil is operating. This curve is only required when a reverse-cycle defrost strategy is specified. \begin{equation} -{\rm{DefrostEIRTempModFac}} = {\rm{a}} + {\rm{b*W}}{{\rm{B}}_{\rm{i}}} + {\rm{c*WB}}_{\rm{i}}^2 + {\rm{d*D}}{{\rm{B}}_{\rm{o}}} + {\rm{e*D}}{{\rm{B}}_{\rm{o}}}^2 + {\rm{f*W}}{{\rm{B}}_{\rm{i}}}{\rm{*D}}{{\rm{B}}_{\rm{o}}} +{\mathrm{DefrostEIRTempModFac}} = {\mathrm{a}} + {\mathrm{b*W}}{{\mathrm{B}}_{\mathrm{i}}} + {\mathrm{c*WB}}_{\mathrm{i}}^2 + {\mathrm{d*D}}{{\mathrm{B}}_{\mathrm{o}}} + {\mathrm{e*D}}{{\mathrm{B}}_{\mathrm{o}}}^2 + {\mathrm{f*W}}{{\mathrm{B}}_{\mathrm{i}}}{\mathrm{*D}}{{\mathrm{B}}_{\mathrm{o}}} \end{equation} where: @@ -5077,7 +5077,7 @@ \subsubsection{Temperature-Based Operation}\label{temperature-based-operation} \end{equation} \begin{equation} -{T_{out}}{\rm{ }} = {\rm{ }}{T_{in}} +{T_{out}}{\mathrm{ }} = {\mathrm{ }}{T_{in}} \end{equation} If the amount of heat required to meet the setpoint is larger than the desuperheater coil's heating capacity, then the amount of reclaimed heat is set equal to the coil heating capacity and the outlet air dry-bulb temperature is calculated. @@ -5213,7 +5213,7 @@ \subsubsection{Model Description}\label{model-description-7} Except for the detailed condenser source, heat reclaim recovery efficiencies higher than 30\% may cause the refrigerant gas to condense which in turn impacts the performance of the refrigeration system. The model is unable to account for this refrigeration system impact, so the product of the rated heat reclaim recovery efficiency and heat reclaim efficiency modifier is not allowed to exceed 0.3.~ For the detailed refrigeration condenser, the limit for the heat reclaim efficiency has been set at 0.9 as follows: \begin{equation} -{\rm{IF~}}\left( {{\varepsilon_{{\rm{reclaim,rated}}}}} \right)\left( {HEfFTemp} \right) > Limit,{\rm{~THEN~}}HeffFTemp = \frac{{Limit}}{{{\varepsilon_{{\rm{reclaim,rated}}}}}} +{\mathrm{IF~}}\left( {{\varepsilon_{{\mathrm{reclaim,rated}}}}} \right)\left( {HEfFTemp} \right) > Limit,{\mathrm{~THEN~}}HeffFTemp = \frac{{Limit}}{{{\varepsilon_{{\mathrm{reclaim,rated}}}}}} \end{equation} where: @@ -5225,7 +5225,7 @@ \subsubsection{Model Description}\label{model-description-7} The heating capacity of the desuperheater coil is then calculated based on the product of total amount of condenser waste heat rejected by the heating source, the desuperheater coil's rated heat reclaim recovery efficiency, and the heat reclaim efficiency modifier. \begin{equation} -{\dot Q_{coil}} = {{\left( {{{\dot Q}_{cond}}} \right)\left( {{\varepsilon_{reclaim,rated}}} \right)HEffFTemp} \mathord{\left/ {\vphantom {{\left( {{{\dot Q}_{cond}}} \right)\left( {{\varepsilon_{reclaim,rated}}} \right)HEffFTemp} {DXSystemPLR}}} \right. } {DXSystemPLR}} +{\dot Q_{coil}} = {\frac{{\left( {{{\dot Q}_{cond}}} \right)\left( {{\varepsilon_{reclaim,rated}}} \right)HEffFTemp}}{DXSystemPLR}} \end{equation} where: @@ -5325,22 +5325,22 @@ \subsubsection{Model Outputs}\label{model-outputs} \end{equation} \begin{equation} -Desuperheater~On{\rm{ - }}Cycle~Parasitic~Electric~Power~(W) = {P_{parasiticload,on}}\left( {PLR} \right) +Desuperheater~On{\mathrm{ - }}Cycle~Parasitic~Electric~Power~(W) = {P_{parasiticload,on}}\left( {PLR} \right) \end{equation} \begin{equation} \begin{split} -Desuperheater~On{\rm{ - }}Cycle~Parasitic~Electric~,Consumption~(J) = \\{P_{parasiticload,on}}\left( {PLR} \right)\left( {3600} \right){t_{sys}} +Desuperheater~On{\mathrm{ - }}Cycle~Parasitic~Electric~,Consumption~(J) = \\{P_{parasiticload,on}}\left( {PLR} \right)\left( {3600} \right){t_{sys}} \end{split} \end{equation} \begin{equation} -Desuperheater~Off{\rm{ - }}Cycle~Parasitic~Electric~Power~(W) = {P_{parasiticload,off}}\left( {1 - PLR} \right) +Desuperheater~Off{\mathrm{ - }}Cycle~Parasitic~Electric~Power~(W) = {P_{parasiticload,off}}\left( {1 - PLR} \right) \end{equation} \begin{equation} \begin{split} -Desuperheater~Off{\rm{ - }}Cycle~Parasitic~Electric~Consumption~(J) = \\{P_{parasiticload,off}}\left( {1 - PLR} \right)\left( {3600} \right)\left( {{t_{sys}}} \right) +Desuperheater~Off{\mathrm{ - }}Cycle~Parasitic~Electric~Consumption~(J) = \\{P_{parasiticload,off}}\left( {1 - PLR} \right)\left( {3600} \right)\left( {{t_{sys}}} \right) \end{split} \end{equation} @@ -5691,7 +5691,7 @@ \subsubsection{Model Description}\label{model-description-8} where: \begin{equation} -PLR = part~load~ratio = \left( {\frac{{water~heating~delivered}}{{steady{\rm{ - }}state~water~heating~capacity}}} \right) +PLR = part~load~ratio = \left( {\frac{{water~heating~delivered}}{{steady{\mathrm{ - }}state~water~heating~capacity}}} \right) \end{equation} The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor runs continuously for the simulation time step). For PLR values between 0 and 1 (0 \textless{} = PLR \textless{} 1), the following rules apply: PLF \textgreater{} = 0.7 and PLF \textgreater{} = PLR. @@ -6009,7 +6009,7 @@ \subsubsection{Model Description}\label{model-description-9} The coil bypass factor is analogous to the ``ineffectiveness'' (1-\(\varepsilon\)) of a heat exchanger, and can be described in terms of the number of transfer of unit (NTU). \begin{equation} -BF = {e^{ - NTU}} = {e^{{{ - \left( {\frac{{UA}}{{{c_p}}}} \right)} \mathord{\left/ {\vphantom {{ - \left( {\frac{{UA}}{{{c_p}}}} \right)} {\dot m}}} \right. } {\dot m}}}} = {e^{ - Ao/\dot m}} +BF = {e^{ - NTU}} = {e^{{\frac{{ - \left( {\frac{{UA}}{{{c_p}}}} \right)}}{\dot m}}}} = {e^{ - Ao/\dot m}} \end{equation} For a given coil geometry, the bypass factor is only a function of air mass flow rate. The model calculates the parameter A\(_{o}\) in the equation above based on BF\(_{rated}\) and the rated air mass flow rate. With A\(_{o}\) known, the coil BF can be determined for non-rated air flow rates. @@ -6397,13 +6397,13 @@ \subsubsection{Model Description}\label{model-description-10} If PLF \textless{} 0.7, the program resets the PLF value to 0.7, and the simulation proceeds. The runtime fraction of the coil is defined as PLR/PLF. If PLF \textless{} PLR, the runtime fraction of the coil is limited to 1.0. A typical part load fraction correlation would be: \begin{equation} -{\rm{PLF}} = 0.85 + 0.15 \times {\rm{PLR}} +{\mathrm{PLF}} = 0.85 + 0.15 \times {\mathrm{PLR}} \end{equation} If the user wishes to model no efficiency degradation due to compressor cycling, the part load fraction correlation should be defined as follows: \begin{equation} -{\rm{PLF}} = 0.85 + 0.0 \times {\rm{PLR}} +{\mathrm{PLF}} = 0.85 + 0.0 \times {\mathrm{PLR}} \end{equation} Lowest Speed Operation: @@ -6423,7 +6423,7 @@ \subsubsection{Model Description}\label{model-description-10} \begin{equation} \begin{array}{rl} - EIR_1 =& \frac{1.0}{\rm{ReferenceUnitCOP@Speed(1)}} * EIRTempModFac_1 \\ + EIR_1 =& \frac{1.0}{\mathrm{ReferenceUnitCOP@Speed(1)}} * EIRTempModFac_1 \\ &* EIRAirFlowModFac_1 \\ &* EIRWaterFlowModFac_1 \end{array} @@ -6439,7 +6439,7 @@ \subsubsection{Model Description}\label{model-description-10} \begin{equation} \begin{array}{rl} - Q_{RecoverHeat,1} =& \rm{ReferenceUnitWasteHeatFractionofEnergyInput@SpeedLevel(1)} \\ + Q_{RecoverHeat,1} =& \mathrm{ReferenceUnitWasteHeatFractionofEnergyInput@SpeedLevel(1)} \\ &* Power_1 * WasteHeatTempModFac_1 \end{array} \end{equation} @@ -6575,7 +6575,7 @@ \subsubsection{Model Description}\label{model-description-10} The total amount of heat absorbed by the evaporator is calculated as: \begin{equation} -{Q_{evap,SpeedRatio}} = {Q_{total,SpeedRatio}} + {\rm{}}{Q_{RecoverHeat,SpeedRatio}} - Powe{r_{SpeedRatio}} +{Q_{evap,SpeedRatio}} = {Q_{total,SpeedRatio}} + {\mathrm{}}{Q_{RecoverHeat,SpeedRatio}} - Powe{r_{SpeedRatio}} \end{equation} Finally: @@ -6923,8 +6923,8 @@ \subsubsection{Model Description}\label{model-description-11} \begin{equation} \begin{array}{rl} - {\rm{DesignAirFlowRateSpeedRatio}} =& ReferenceUnitAirMassFlowRate@SpeedLevel\left( {x - 1} \right) \\ - &* CapacityScaleFactor * \left( {1-\rm{SpeedRatio}} \right) \\ + {\mathrm{DesignAirFlowRateSpeedRatio}} =& ReferenceUnitAirMassFlowRate@SpeedLevel\left( {x - 1} \right) \\ + &* CapacityScaleFactor * \left( {1-\mathrm{SpeedRatio}} \right) \\ &+ ReferenceUnitAirMassFlowRate@SpeedLevel\left( x \right) \\ &* CapacityScaleFactor * SpeedRatio \end{array} @@ -6932,8 +6932,8 @@ \subsubsection{Model Description}\label{model-description-11} \begin{equation} \begin{array}{rl} - \rm{DesignWaterFlowRateSpeedRatio} =& ReferenceUnitWaterMassFlowRate@SpeedLevel\left( {x - 1} \right) \\ - &* CapacityScaleFactor * \left( {1-\rm{SpeedRatio}} \right) \\ + \mathrm{DesignWaterFlowRateSpeedRatio} =& ReferenceUnitWaterMassFlowRate@SpeedLevel\left( {x - 1} \right) \\ + &* CapacityScaleFactor * \left( {1-\mathrm{SpeedRatio}} \right) \\ &+ ReferenceUnitWaterMassFlowRate@SpeedLevel\left( x \right) \\ &* CapacityScaleFactor * SpeedRatio \end{array} @@ -6995,10 +6995,10 @@ \subsubsection{Model Description}\label{model-description-11} \begin{array}{rl} Q_{RecoverHeat,SpeedRatio} =& \left( {1.0 - SpeedRatio} \right) \\ &* ReferenceUnitWasteHeatFractionofEnergyInput@SpeedLevel\left( {x - 1} \right) \\ - &* \rm{WasteHeatTempModFac}_{x - 1} * {Q_{total,x - 1}} * EIR_{x - 1} \\ + &* \mathrm{WasteHeatTempModFac}_{x - 1} * {Q_{total,x - 1}} * EIR_{x - 1} \\ &+ SpeedRatio \\ &* ReferenceUnitWasteHeatFractionofEnergyInput@SpeedLevel\left( x \right) \\ - &* \rm{WasteHeatTempModFac}_x \\ + &* \mathrm{WasteHeatTempModFac}_x \\ &* Q_{total,x} * EIR_x \end{array} \end{equation} @@ -7272,7 +7272,7 @@ \subsection{Packaged Thermal Storage Cooling Coil}\label{packaged-thermal-storag One total evaporator cooling capacity modifier curve is a function of evaporator inlet wetbulb temperature and condenser inlet drybulb temperature. \begin{equation} -EvapCapTempModFac = {f_{}}\left( {{T_{evap,wb}},{\rm{}}{T_{cond,db}}} \right) +EvapCapTempModFac = {f_{}}\left( {{T_{evap,wb}},{\mathrm{}}{T_{cond,db}}} \right) \end{equation} Another total evaporator cooling capacity modifier curve is a function of air flow fraction through the evaporator section where air flow fraction is the ratio of current air mass flow rate to the rated air mass flow rate. @@ -7284,7 +7284,7 @@ \subsection{Packaged Thermal Storage Cooling Coil}\label{packaged-thermal-storag One energy input ratio modifier curve is a function of evaporator inlet wetbulb temperature and condenser inlet drybulb temperature. \begin{equation} -EIRTempModFac = f\left( {{T_{evap,wb}},{\rm{}}{T_{cond,db}}} \right) +EIRTempModFac = f\left( {{T_{evap,wb}},{\mathrm{}}{T_{cond,db}}} \right) \end{equation} Another energy input ratio modifier curve is a function of flow fraction. @@ -7306,7 +7306,7 @@ \subsection{Packaged Thermal Storage Cooling Coil}\label{packaged-thermal-storag \end{equation} \begin{equation} -{\dot W_{elec}} = \frac{{{{\dot Q}_{evap}}\left( {EIRTempModFac} \right)\left( {EIRFlowModFac} \right)\left( {PLR} \right)}}{{\left( {CO{P_{Rated,{\rm{}}CoolOnly}}} \right)\left( {EvapPartLoadFac} \right)}} +{\dot W_{elec}} = \frac{{{{\dot Q}_{evap}}\left( {EIRTempModFac} \right)\left( {EIRFlowModFac} \right)\left( {PLR} \right)}}{{\left( {CO{P_{Rated,{\mathrm{}}CoolOnly}}} \right)\left( {EvapPartLoadFac} \right)}} \end{equation} The sensible heat ratio (SHR) is determined by a rated SHR and two performance curves. The SHR temperature modifying factor is a function of evaporator entering wetbulb and evaporator entering drybulb temperature. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex index a2cb42b72df..4a8c12fa017 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex @@ -30,7 +30,7 @@ \subsubsection{Model Description}\label{model-description-012} The model first calculates the approach temperature using the dry-bulb temperature and dewpoint temperature of the air leaving the water coil: \begin{equation} -{T_{dp}} = {\rm{PsyTdpFnWPb}}\left( {{\omega_{SA}},P} \right) +{T_{dp}} = {\mathrm{PsyTdpFnWPb}}\left( {{\omega_{SA}},P} \right) \end{equation} \begin{equation} @@ -49,12 +49,12 @@ \subsubsection{Model Description}\label{model-description-012} \({T_{SA}}\) is the supply (outlet) air dry-bulb temperature (\(^{\circ}\)C) -\({\rm{PsyTdpFnWPb}}\) is the EnergyPlus psychrometric function, returns dewpoint temperature given humidity ratio and barometric pressure. +\({\mathrm{PsyTdpFnWPb}}\) is the EnergyPlus psychrometric function, returns dewpoint temperature given humidity ratio and barometric pressure. The supply air dewpoint temperature required to meet the humidity ratio setpoint (placed on the control node by SetpointManager:SingleZone:Humidity:Maximum, SetpointManager:MultiZone:MaximumHumidity:Average~ or SetpointManager:MultiZone:Humidity:Maximum) is then calculated as a function of the humidity ratio setpoint and barometric pressure as follows: \begin{equation} -{T_{dp,SP}} = {\rm{PsyTdpFnWPb}}\left( {{\omega_{SP}},P} \right) +{T_{dp,SP}} = {\mathrm{PsyTdpFnWPb}}\left( {{\omega_{SP}},P} \right) \end{equation} where: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/ice-thermal-storage.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/ice-thermal-storage.tex index c62d79647aa..6844e45b218 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/ice-thermal-storage.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/ice-thermal-storage.tex @@ -300,7 +300,7 @@ \subsubsection{Model Description}\label{pcm-model-description} \end{equation} The stored energy state is advanced explicitly: \begin{equation} -E(t+\Delta t) = \min\!\Bigl(E_{\max}, \max\!\bigl(0,\, E(t) + \dot Q_{\mathrm{net}} \,\Delta t \bigr)\Bigr), +E(t+\Delta t) = \min\!\bigl(E_{\max}, \max\!\bigl(0,\, E(t) + \dot Q_{\mathrm{net}} \,\Delta t \bigr)\bigr), \end{equation} and $\mathrm{SOC}(t+\Delta t) = E(t+\Delta t)/E_{\max}$. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex index d82a763b0ca..a6a6b9a592f 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex @@ -87,7 +87,7 @@ \subsubsection{Load based control:}\label{load-based-control} \emph{h\(_{coil, full~load}\)} is the enthalpy of air exiting the unitary system at full-load conditions (J/kg) -\(h_{\rm{control~zone}}\) is the enthalpy of air in the control zone where the thermostat is located (J/kg) +\(h_{\mathrm{control~zone}}\) is the enthalpy of air in the control zone where the thermostat is located (J/kg) \emph{HR\(_{min}\)} is the enthalpies evaluated at a constant humidity ratio, the minimum humidity ratio of the unitary system exiting air or the air in the control zone @@ -788,7 +788,7 @@ \subsubsection{Overview}\label{overview-1} The furnace component is able to model supply air fan operation in two modes: cycling fan -- cycling coil (i.e., AUTO fan) and continuous fan -- cycling coil (i.e., fan ON). Fan:OnOff must be used to model AUTO fan, while Fan:OnOff or Fan:ConstantVolume can be used to model fan ON. The fan operation mode is specified using a supply air fan operating mode schedule where schedule values of 0 denote cycling fan operation and schedule values other than 0 (a 1 is usually used) denote continuous fan operation. Using this schedule, the furnace fan may be cycled with cooling or heating coil operation or operated continuously based on time of day (e.g., cycling fan operation at night and continuous fan operation during the daytime). If the fan operating mode schedule name field is left blank in the furnace object, the furnace assumes cycling or AUTO fan mode operation throughout the simulation. -The only output variables reported by the furnace object are the fan part-load ratio and the compressor part-load ratio (HeatCool only). The fan part-load ratio is defined as the actual air mass flow rate through the system for the time step divided by the design supply air mass flow rate specified for the furnace (\({{{{\dot m}_{actual}}} \mathord{\left/ {\vphantom {{{{\dot m}_{actual}}} {{{\dot m}_{design}}}}} \right. } {{{\dot m}_{design}}}}\)). The furnace operates based on the user-specified (or autosized) design supply air flow rate(s). The `design' supply air mass flow rate may be different for cooling, heating, and when no cooling or heating is required and the fan operates continuously based on user-specified inputs (HeatCool only). For the HeatCool version, If alternate air flow rates are specified for cooling, heating, and when no cooling or heating is required, the design supply air mass flow rate is the maximum of these specified values. Also for the HeatCool version, the compressor part-load ratio is reported as the ratio of the actual cooling load to the full-load sensible capacity (see Equation~\ref{eq:FurnacePartLoadRatio580}). Reporting of other variables of interest for the furnace (heating rate, cooling rate, energy consumption, etc.) is done by the individual system components (fan, heating coil and DX cooling coil). +The only output variables reported by the furnace object are the fan part-load ratio and the compressor part-load ratio (HeatCool only). The fan part-load ratio is defined as the actual air mass flow rate through the system for the time step divided by the design supply air mass flow rate specified for the furnace (\({\frac{{{{\dot m}_{actual}}}}{{{\dot m}_{design}}}}\)). The furnace operates based on the user-specified (or autosized) design supply air flow rate(s). The `design' supply air mass flow rate may be different for cooling, heating, and when no cooling or heating is required and the fan operates continuously based on user-specified inputs (HeatCool only). For the HeatCool version, If alternate air flow rates are specified for cooling, heating, and when no cooling or heating is required, the design supply air mass flow rate is the maximum of these specified values. Also for the HeatCool version, the compressor part-load ratio is reported as the ratio of the actual cooling load to the full-load sensible capacity (see Equation~\ref{eq:FurnacePartLoadRatio580}). Reporting of other variables of interest for the furnace (heating rate, cooling rate, energy consumption, etc.) is done by the individual system components (fan, heating coil and DX cooling coil). \subsubsection{Model Description}\label{model-description-1} @@ -1597,7 +1597,7 @@ \subsubsection{Overview}\label{overview-4} The heat pump component is able to model supply air fan operation in two modes: cycling fan -- cycling coil (i.e., AUTO fan) and continuous fan -- cycling coil (i.e., fan ON). Fan:OnOff must be used to model AUTO fan, while Fan:OnOff or Fan:ConstantVolume can be used to model fan ON. The fan operation mode is specified using a supply air fan operating mode schedule where schedule values of 0 denote cycling fan operation and schedule values other than 0 (a 1 is usually used) denote continuous fan operation. Using this schedule, the supply air fan may be cycled with cooling or heating coil operation or operated continuously based on time of day (e.g.~cycling fan operation at night and continuous fan operation during the day). -Several output variables are reported by the heat pump object including fan part-load ratio, compressor part-load ratio, cycling ratio, speed ratio and speed number. Fan part-load ratio is defined as the actual air mass flow rate through the system for the time step divided by the operating supply air mass flow rate specified for the heat pump (\({{{{\dot m}_{actual}}} \mathord{\left/ {\vphantom {{{{\dot m}_{actual}}} {{{\dot m}_{design}}}}} \right. } {{{\dot m}_{ON}}}}\) ) at speed 1. Fan part-load ratio is set to 1.0 when the heat pump operates at speeds above 1. The operating supply air mass flow rate may be different for cooling, heating, and when no cooling or heating is required. Compressor part-load ratio is the actual load for the time step divided by the full-load sensible capacity (see Equation~\ref{eq:UnitaryMultiSpeedCyclingRatioCooling} or~\ref{eq:UnitaryMultiSpeedCyclingRatioHeating}). If the defrost strategy is reverse cycle for a DX heating coil, the compressor part-load ratio is the sum of the actual load and the defrost load divided by the full-load sensible capacity. Therefore, the compressor part load ratio for the DX heating coil may be greater than the cycling ratio. This heat pump object also reports the sensible, latent and total cooling and heating rate, as well as the electricity consumption for the unit with separate accounting of auxiliary electric consumption. Furthermore, five report variables related to waste heat recovery are available if the user chooses to model this option. +Several output variables are reported by the heat pump object including fan part-load ratio, compressor part-load ratio, cycling ratio, speed ratio and speed number. Fan part-load ratio is defined as the actual air mass flow rate through the system for the time step divided by the operating supply air mass flow rate specified for the heat pump (\({\frac{{{{\dot m}_{actual}}}}{{{\dot m}_{ON}}}}\) ) at speed 1. Fan part-load ratio is set to 1.0 when the heat pump operates at speeds above 1. The operating supply air mass flow rate may be different for cooling, heating, and when no cooling or heating is required. Compressor part-load ratio is the actual load for the time step divided by the full-load sensible capacity (see Equation~\ref{eq:UnitaryMultiSpeedCyclingRatioCooling} or~\ref{eq:UnitaryMultiSpeedCyclingRatioHeating}). If the defrost strategy is reverse cycle for a DX heating coil, the compressor part-load ratio is the sum of the actual load and the defrost load divided by the full-load sensible capacity. Therefore, the compressor part load ratio for the DX heating coil may be greater than the cycling ratio. This heat pump object also reports the sensible, latent and total cooling and heating rate, as well as the electricity consumption for the unit with separate accounting of auxiliary electric consumption. Furthermore, five report variables related to waste heat recovery are available if the user chooses to model this option. \subsubsection{Model Description}\label{model-description-4} @@ -2491,10 +2491,10 @@ \subsubsection{Parameter estimation procedure}\label{parameter-estimation-proced \begin{itemize} \item Piston displacement, PD \item Clearance factor, C -\item Pressure drop across the suction and discharge valves, \({\rm{\Delta P}}\) -\item Loss factor used to define the electromechanical losses supposed to be proportional to the theoretical power, \({\rm{\eta }}\) -\item Superheat in \(^{\circ}\)C or F, \({\rm{\Delta T}}{}_{{\rm{sh}}}\) -\item Constant part of the electromechanical losses, \({\rm{W}}{}_{{\rm{loss}}}\) +\item Pressure drop across the suction and discharge valves, \({\mathrm{\Delta P}}\) +\item Loss factor used to define the electromechanical losses supposed to be proportional to the theoretical power, \({\mathrm{\eta }}\) +\item Superheat in \(^{\circ}\)C or F, \({\mathrm{\Delta T}}{}_{{\mathrm{sh}}}\) +\item Constant part of the electromechanical losses, \({\mathrm{W}}{}_{{\mathrm{loss}}}\) \item Source side heat transfer coefficient, (UA)\(_{S}\) \item Load side heat transfer coefficient, (UA)\(_{L}\) \end{itemize} @@ -2525,13 +2525,13 @@ \subsubsection{Parameter estimation procedure}\label{parameter-estimation-proced Where -\({\rm{W}}{}_{{\rm{cat}}}\) is the catalog power consumption +\({\mathrm{W}}{}_{{\mathrm{cat}}}\) is the catalog power consumption -\({\rm{W}}{}_{}\) is the model power consumption +\({\mathrm{W}}{}_{}\) is the model power consumption -\({\rm{QL}}{}_{{\rm{cat}}}\) is the catalog load side heat transfer +\({\mathrm{QL}}{}_{{\mathrm{cat}}}\) is the catalog load side heat transfer -\({\rm{QL}}{}_{}\) is the model load side heat transfer. +\({\mathrm{QL}}{}_{}\) is the model load side heat transfer. Extrapolation beyond the catalog data grants the parameter estimation model an upper hand in comparison with the equation fit and deterministic models. However, the detailed model is computationally more intensive. Moreover, when the model is implemented within a transient system simulation program, it may come across figures that are random and unplanned by the manufacturer such as low water flow rates or extreme temperatures. This oddity may result in unrealistic set of results. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex index f2a8670f992..2395c67e3fb 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex @@ -478,7 +478,7 @@ \subsubsection{Simulation}\label{simulation} The following equation describes the sigmoidal functional form for normalized \(\varphi\): \begin{equation} -\frac{{\varphi \left( {{x_{fan}}} \right)}}{{{\varphi_{\max }}}} = ({A_{spd}} + {B_{spd}}/({(1 + {e^{\left[ {{{({C_{spd}} - {x_{spd}})} \mathord{\left/ {\vphantom {{({C_{spd}} - {x_{spd}})} {{D_{spd}}}}} \right. } {{D_{spd}}}}} \right]}})^{{E_{spd}}}}) +\frac{{\varphi \left( {{x_{fan}}} \right)}}{{{\varphi_{\max }}}} = ({A_{spd}} + {B_{spd}}/({(1 + {e^{\left[ {{\frac{{({C_{spd}} - {x_{spd}})}}{{D_{spd}}}}} \right]}})^{{E_{spd}}}}) \label{eq:SigmoidalFunctionalFormForNormalized} \end{equation} @@ -920,7 +920,7 @@ \subsection{Fan Energy Index}\label{fan-energy-index} The reference fan motor efficiency is calculated according to Equation~\ref{eq:eta_mtr_calculation} using the coefficients A–E found in Table~\ref{table:reference-motor-efficiency-coefficients}: \begin{equation} -\eta_{mtr,ref} = A\cdot[log_{10} (H_{t,ref})]^4 + B\cdot[log_{10} (H_{t,ref})]^3 +C\cdot[log_{10} (H_{t,ref})]^2 +D\cdot[log_{10} (H_{t,ref})]^1 + E +\eta_{mtr,ref} = A\cdot[log_{10} (H_{t,ref})]^4 + B\cdot[log_{10} (H_{t,ref})]^3 +C\cdot[log_{10} (H_{t,ref})]^2 +D\cdot[log_{10} (H_{t,ref})]^1 + {E} \label{eq:eta_mtr_calculation} \end{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-humidifiers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-humidifiers.tex index 51e41ac0ad1..688e00766d6 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-humidifiers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-humidifiers.tex @@ -46,14 +46,14 @@ \subsubsection{Component}\label{component} The inputs to the component model are the air inlet conditions and mass flow rate and the water addition rate set by the controller. The outputs are the air outlet conditions. First the desired water addition rate is checked against component capacity. \begin{equation} -{\dot m_{w,add,needed,{\rm{max}}}} = Min({\dot m_{w,add}},Ca{p_{nom}}) +{\dot m_{w,add,needed,{\mathrm{max}}}} = Min({\dot m_{w,add}},Ca{p_{nom}}) \end{equation} where \(Ca{p_{nom}}\) is the humidifier nominal capacity (kg/s), a user input. -If \({\dot m_{w,add,needed,{\rm{max}}}}\) is zero, the outlet conditions are set to the inlet conditions and the water addition rate is set to zero. If the humidifier is scheduled on the component power consumption is set to the standby power consumption: \({W_{hum}} = {W_{stby}}\). Otherwise \({W_{hum}}\) = 0. +If \({\dot m_{w,add,needed,{\mathrm{max}}}}\) is zero, the outlet conditions are set to the inlet conditions and the water addition rate is set to zero. If the humidifier is scheduled on the component power consumption is set to the standby power consumption: \({W_{hum}} = {W_{stby}}\). Otherwise \({W_{hum}}\) = 0. -If \({\dot m_{w,add,needed,{\rm{max}}}}\) \textgreater{} 0, then the moisture and enthalpy balance equations are: +If \({\dot m_{w,add,needed,{\mathrm{max}}}}\) \textgreater{} 0, then the moisture and enthalpy balance equations are: \begin{equation} {\dot m_a} \cdot {w_{in}} + {\dot m_w} = {\dot m_a} \cdot {w_{out}} @@ -65,7 +65,7 @@ \subsubsection{Component}\label{component} where: -\({\dot m_w}\) is set equal to \({\dot m_{w,add,needed,{\rm{max}}}}\) and then the above equations are solved for \({w_{out}}\) and \({h_{out}}\) +\({\dot m_w}\) is set equal to \({\dot m_{w,add,needed,{\mathrm{max}}}}\) and then the above equations are solved for \({w_{out}}\) and \({h_{out}}\) \({\dot m_a}\) is the air mass flow rate (kg/s) @@ -107,7 +107,7 @@ \subsubsection{Component}\label{component} \(PsyWFnTdbRhPb\) is an EnergyPlus psychrometric function. -IF \({w_{out}} \le {w_{out,sat}}\), then the outlet condition is below the saturation curve and the desired moisture addition rate can be met. \({\dot m_{w,add}}\) is set to \({\dot m_{w,add,needed,{\rm{max}}}}\) and the calculation of outlet conditions is done. But if \({w_{out}} > {w_{out,sat}}\) then it is assumed that this condition will be detected and the steam addition rate throttled back to bring the outlet conditions back to the saturation condition. We need to find the point where the line drawn between state 1 (inlet) and state 2 (our desired outlet) crosses the saturation curve. This will be the new outlet condition. Rather than iterate to obtain this point, we find it approximately by solving for the point where 2 lines cross: the first drawn from state 1 to state 2, the second from \({T_1}\), \({w_{1,sat}}\) to \({T_2}\), \({w_{2,sat}}\); where: +IF \({w_{out}} \le {w_{out,sat}}\), then the outlet condition is below the saturation curve and the desired moisture addition rate can be met. \({\dot m_{w,add}}\) is set to \({\dot m_{w,add,needed,{\mathrm{max}}}}\) and the calculation of outlet conditions is done. But if \({w_{out}} > {w_{out,sat}}\) then it is assumed that this condition will be detected and the steam addition rate throttled back to bring the outlet conditions back to the saturation condition. We need to find the point where the line drawn between state 1 (inlet) and state 2 (our desired outlet) crosses the saturation curve. This will be the new outlet condition. Rather than iterate to obtain this point, we find it approximately by solving for the point where 2 lines cross: the first drawn from state 1 to state 2, the second from \({T_1}\), \({w_{1,sat}}\) to \({T_2}\), \({w_{2,sat}}\); where: \({T_1}\) is the inlet temperature (\(^{\circ}\)C) @@ -184,11 +184,11 @@ \subsubsection{Fixed Inlet WaterTemperature:}\label{fixed-inlet-watertemperature \end{equation} \begin{equation} -\eta_{actual} = \eta_{rated} \times \rm{EffModCurveValue}\left(PLR\right) +\eta_{actual} = \eta_{rated} \times \mathrm{EffModCurveValue}\left(PLR\right) \end{equation} \begin{equation} -\rm{PLR} = \frac{\dot{Q}_{NG}}{Q_{NG,nom}} +\mathrm{PLR} = \frac{\dot{Q}_{NG}}{Q_{NG,nom}} \end{equation} where: @@ -214,11 +214,11 @@ \subsubsection{Variable Inlet WaterTemperature:}\label{variable-inlet-watertempe \end{equation} \begin{equation} -\rm{PLR} = \frac{\dot{Q}_{NG}}{Q_{NG,nom}} +\mathrm{PLR} = \frac{\dot{Q}_{NG}}{Q_{NG,nom}} \end{equation} \begin{equation} -\eta_{actual} = \eta_{rated} \times \rm{EffModCurveValue}\left(PLR\right) +\eta_{actual} = \eta_{rated} \times \mathrm{EffModCurveValue}\left(PLR\right) \end{equation} \begin{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/cooling-towers-and-evaporative-fluid-coolers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/cooling-towers-and-evaporative-fluid-coolers.tex index 0a6f1eb4e00..eb4f090e96b 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/cooling-towers-and-evaporative-fluid-coolers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/cooling-towers-and-evaporative-fluid-coolers.tex @@ -81,7 +81,7 @@ \subsubsection{Model Description}\label{model-description-008} An energy balance on the water and air sides of the air/water interface yields the following equations: \begin{equation} -d{\dot Q_{total}} = {\dot m_w} c_{pw} dT_w +d{\dot Q_{total}} = {\dot m_w} c_{pw} {dT_w} \label{eq:dQtotal510} \end{equation} @@ -604,7 +604,7 @@ \subsubsection{Tower Heat Rejection}\label{tower-heat-rejection} FanPLR = \left( {\frac{{{T_{water,outlet,fanOFF}} - {T_{setpoint}}}}{{{T_{water,outlet,fanOFF}} - {T_{water,outlet,fanMIN}}}}} \right) \end{equation} -where \({T_{{\rm{setpoint}}}}\) is the outlet water setpoint temperature (\(^{\circ}\)C). +where \({T_{{\mathrm{setpoint}}}}\) is the outlet water setpoint temperature (\(^{\circ}\)C). If the outlet water temperature at minimum fan speed is above the outlet water temperature setpoint, then the cooling tower fan speed (\emph{FR\(_{air}\)}) is increased until the calculated approach temperature produces the required outlet water temperature to meet the setpoint. @@ -613,7 +613,7 @@ \subsubsection{Tower Heat Rejection}\label{tower-heat-rejection} \end{equation} \begin{equation} -{T_{water,outlet}} = {T_{{\rm{setpoint}}}} = {T_{wb,air}} + {T_{approach}} +{T_{water,outlet}} = {T_{{\mathrm{setpoint}}}} = {T_{wb,air}} + {T_{approach}} \end{equation} \begin{equation} @@ -633,7 +633,7 @@ \subsubsection{Fan Power}\label{fan-power} Else: \begin{equation} - P_{fan} = \left( {{P_{fan,design}}} \right)\left( {FanPLR} \right){\left( {F{R_{air}}} \right)^{\rm{3}}} + P_{fan} = \left( {{P_{fan,design}}} \right)\left( {FanPLR} \right){\left( {F{R_{air}}} \right)^{\mathrm{3}}} \end{equation} In addition: @@ -681,9 +681,9 @@ \subsubsection{Tower Basin Heater}\label{tower-basin-heater-1} where: -\({P_{{\rm{heater,basin}}}}\) is the tower basin heater electric power (W) +\({P_{{\mathrm{heater,basin}}}}\) is the tower basin heater electric power (W) -\({E_{{\rm{heater,basin}}}}\) is the tower basin heater electric consumption (J) +\({E_{{\mathrm{heater,basin}}}}\) is the tower basin heater electric consumption (J) \emph{T\(_{setpoint,basin}\)} is the basin heater setpoint temperature (\(^{\circ}\)C) @@ -774,7 +774,7 @@ \subsection{Cooling Tower Makeup Water Usage}\label{cooling-tower-makeup-water-u Makeup water use for all types of cooling towers is made up of three components: evaporation, drift, and blowdown. ~The first is the amount of water evaporated to reduce the water's temperature as it passes through the cooling tower. There are two methods that evaporation makeup water can be modeled in EnergyPlus.~ The first method assumes that the tower outlet air conditions are saturated (which may not always be the case for certain operating conditions). ~For this ``Saturated Exit'' mode, the enthalpy of the tower's outlet air is calculated as the inlet air enthalpy plus the water side heat transfer divided by the air mass flow rate through the tower. \begin{equation} -{\dot Q_{water}} = {\dot m_{_{water}}}{C_p}\left( {{T_{{\rm{water,inlet}}}} - {T_{{\rm{water,outlet}}}}} \right) +{\dot Q_{water}} = {\dot m_{_{water}}}{C_p}\left( {{T_{{\mathrm{water,inlet}}}} - {T_{{\mathrm{water,outlet}}}}} \right) \end{equation} \begin{equation} @@ -798,7 +798,7 @@ \subsection{Cooling Tower Makeup Water Usage}\label{cooling-tower-makeup-water-u The saturation temperature and humidity ratio are then calculated for the tower's outlet air. \begin{equation} -{T_{sat\,air,outlet}} = PsyTsatFnHPb\left( {{h_{sat\,air,outlet}},{\rm{OutBaroPress}}} \right) +{T_{sat\,air,outlet}} = PsyTsatFnHPb\left( {{h_{sat\,air,outlet}},{\mathrm{OutBaroPress}}} \right) \end{equation} \begin{equation} @@ -811,7 +811,7 @@ \subsection{Cooling Tower Makeup Water Usage}\label{cooling-tower-makeup-water-u \(PsyTsatFnHPb\) is an EnergyPlus psychrometric function, returns saturation temperature given enthalpy and barometric pressure -\({\rm{OutBaroPress}}\) is the outdoor barometric pressure (Pa) +\({\mathrm{OutBaroPress}}\) is the outdoor barometric pressure (Pa) \({\omega_{sat\,air,outlet}}\) is the saturated outlet air humidity ratio (kg\(_{water}\)/kg\(_{dry~air}\)) diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex index 4c6cbb3889f..e11a5540630 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex @@ -534,11 +534,11 @@ \subsubsection{Secondary Air Flow Fraction}\label{secondary-air-flow-fraction} \end{equation} \begin{equation} -{\dot Q_{{\mathop{\rm Re}\nolimits} quired}} = \dot m\left( {{h_{out,desired}} - {h_{in,sys}}} \right) +{\dot Q_{\operatorname{Re} quired}} = \dot m\left( {{h_{out,desired}} - {h_{in,sys}}} \right) \end{equation} \begin{equation} -PLF = \frac{{{{\dot Q}_{{\mathop{\rm Re}\nolimits} quired}}}}{{{{\dot Q}_{Full}}}} +PLF = \frac{{{{\dot Q}_{\operatorname{Re} quired}}}}{{{{\dot Q}_{Full}}}} \end{equation} where \(PLF\) is the Part Load Fraction.~ When PLF is less than 1.0, it is assumed that the cooler will deliver the desired temperature air (as long as it is less than the inlet; it doesn't need heating).~ The PLF is used along with secondary side flow fraction to modify the auxiliary fan power when the fan power modifier curve is not specified and find when the unit will overcool. @@ -677,17 +677,17 @@ \subsection{Direct Evaporative Cooler Special Research Model}\label{direct-evapo The direct cooler sometimes has the ability to overcool the air and therefore some form of modulation is useful for analysis.~ The special research model includes a Part Load Fraction, PLF, used to model the implications of controlling the amount of cooling.~ It is assumed that through some sort of on/off cycling or wetness control that the cooling electric power can be varied to exactly meet the desired temperature when PLF is less than unity.~ The auxiliary water pump power is then derated using user specified pump power modifier curve or linearly using a Part Load Fraction and a fan flow fraction when the pump power modifier curve is not specified. \begin{equation} -{\rm{FullOutput}} = {T_{db,out}} - {T_{db,in}} +{\mathrm{FullOutput}} = {T_{db,out}} - {T_{db,in}} \label{eq:IECFullOutput} \end{equation} \begin{equation} -{\rm{RequiredOutput}} = {T_{db,desired}} - {T_{db,in}} +{\mathrm{RequiredOutput}} = {T_{db,desired}} - {T_{db,in}} \label{eq:IECRequiredOutput} \end{equation} \begin{equation} -PLF = \frac{{{\rm{RequiredOutput}}}}{{{\rm{FullOutput}}}} +PLF = \frac{{{\mathrm{RequiredOutput}}}}{{{\mathrm{FullOutput}}}} \label{eq:IECPLF} \end{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/chillerheaterperformance-electric-eir.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/chillerheaterperformance-electric-eir.tex index fb03a0c51a3..eb4d0f70636 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/chillerheaterperformance-electric-eir.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/chillerheaterperformance-electric-eir.tex @@ -147,17 +147,17 @@ \subsubsection{Cooling-only mode}\label{cooling-only-mode} The part-load ratio calculated is set to be between the maximum of 1.0 and the minimum of 0.0 when it is out of the range. Once the part-load ratio is calculated the cycling ratio and false loading rate can be obtained as follows: \begin{equation} -CyclingRatio = \frac{{PL{R_{{\rm{actual}}}}}}{{PL{R_{{\rm{min}}}}}} +CyclingRatio = \frac{{PL{R_{{\mathrm{actual}}}}}}{{PL{R_{{\mathrm{min}}}}}} \end{equation} \begin{equation} -{\dot Q_{falseloading,c\lg }} = EvapCapAvai{l_{{\rm{clg}}}} \cdot PL{R_{c\lg }} \cdot CyclingRatio - \dot QEva{p_{{\rm{clg}}}} +{\dot Q_{falseloading,c\lg }} = EvapCapAvai{l_{{\mathrm{clg}}}} \cdot PL{R_{c\lg }} \cdot CyclingRatio - \dot QEva{p_{{\mathrm{clg}}}} \end{equation} The compressor power demand is then computed by: \begin{equation} -CompPowe{r_{c\lg }} = RefFullLoadPowe{r_{{\rm{clg}}}} \cdot {\rm{ }}EIRF{T_{c\lg }}{\rm{ }} \cdot EIRFPL{R_{c\lg }} \cdot CyclingRatio +CompPowe{r_{c\lg }} = RefFullLoadPowe{r_{{\mathrm{clg}}}} \cdot {\mathrm{ }}EIRF{T_{c\lg }}{\mathrm{ }} \cdot EIRFPL{R_{c\lg }} \cdot CyclingRatio \end{equation} The heat transfer rate for the chiller-heater condenser can then be computed as follows: @@ -326,11 +326,11 @@ \subsubsection{Heating-only mode and Simultaneous cooling-heating mode}\label{he Once the part-load ratio is calculated the cycling ratio and false loading rate are computed by: \begin{equation} -CyclingRatio = \frac{{PL{R_{{\rm{actual}}}}}}{{PL{R_{{\rm{min}}}}}} +CyclingRatio = \frac{{PL{R_{{\mathrm{actual}}}}}}{{PL{R_{{\mathrm{min}}}}}} \end{equation} \begin{equation} -{\dot Q_{falseloading,htg}} = EvapCapAvai{l_{{\rm{htg}}}} \cdot PL{R_{htg}} \cdot CyclingRatio - \dot QEva{p_{{\rm{htg}}}} +{\dot Q_{falseloading,htg}} = EvapCapAvai{l_{{\mathrm{htg}}}} \cdot PL{R_{htg}} \cdot CyclingRatio - \dot QEva{p_{{\mathrm{htg}}}} \end{equation} The compressor power demand is then computed by: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/ideal-loads-air-system.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/ideal-loads-air-system.tex index 2abaa869ad0..838fce89500 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/ideal-loads-air-system.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/ideal-loads-air-system.tex @@ -104,7 +104,7 @@ \subsubsection{Inputs and Data}\label{inputs-and-data-002} \end{equation} \begin{equation} - {T_{ma}} = {\mathop{\rm PsyHFnTdbW}\nolimits} ({h_{ma}},{W_{ma}}) + {T_{ma}} = \operatorname{PsyHFnTdbW} ({h_{ma}},{W_{ma}}) \end{equation} Otherwise the entering air conditions are set equal to the outside air conditions. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex index aa52bba1935..a8c238b9ddf 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex @@ -202,7 +202,7 @@ \subsection{Headered Pumps}\label{headered-pumps} The simulation starts by turning ON all pumps in the group. The pumps are then turned OFF one at a time until the flow provided is less than the flow requested. Finally the last pump is turned back ON to meet the remaining flow (FlowDifference) requested. The flow rate of the last pump depends on the pump bank type. For constant speed headered pumps, the last pump runs at the nominal flow rate, thereby giving a final headered pump flow which is equal to or greater than the flow requested. In a variable speed headered pump the last pump runs at part load so that the flow provided matches the flow requested. The power of the headered pump is then calculated as \begin{equation} -Power = (P{R_{FL}}{\rm{*N}}{}_{{\rm{FL}}} + {\rm{P}}{{\rm{R}}_{{\rm{PL}}}}{\rm{*}}{{\rm{N}}_{{\rm{PL}}}}{\rm{)*}}{{\rm{P}}_{{\rm{Nom}}}}{\rm{ }} +Power = (P{R_{FL}}{\mathrm{*N}}{}_{{\mathrm{FL}}} + {\mathrm{P}}{{\mathrm{R}}_{{\mathrm{PL}}}}{\mathrm{*}}{{\mathrm{N}}_{{\mathrm{PL}}}}{\mathrm{)*}}{{\mathrm{P}}_{{\mathrm{Nom}}}}{\mathrm{ }} \end{equation} where: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex index 5ef6060aa6b..9ea992c1ea1 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex @@ -94,16 +94,16 @@ \subsubsection{Laplace Transform Formulation}\label{laplace-transform-formulatio \begin{equation} \left[ - {\begin{array}{*{20}{c}} + {\begin{array}{ccc} {{T_1}\left( s \right)} \\ {{q_1}\left( s \right)} \end{array}} \right] = \left[ - {\begin{array}{*{20}{c}} + {\begin{array}{ccc} {{A_1}\left( s \right)}&{{B_1}\left( s \right)} \\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)} \end{array}} \right] \left[ - {\begin{array}{*{20}{c}} + {\begin{array}{ccc} {{T_2}\left( s \right)} \\ {{q_2}\left( s \right)} \end{array}} @@ -115,19 +115,19 @@ \subsubsection{Laplace Transform Formulation}\label{laplace-transform-formulatio \(T_1(s)\), \(T_2(s)\), \(q_1(s)\), and \(q_2(s)\) are the temperature and flux terms in the Laplace domain \begin{equation} -{A_1}\left( s \right) = \cosh \left( {{\ell_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} } \right) +{A_1}\left( s \right) = \cosh \left( {{\ell_1}\sqrt {{\frac{s}{{\alpha_1}}}} } \right) \end{equation} \begin{equation} -{B_1}\left( s \right) = \left( {{1 \mathord{\left/ {\vphantom {1 {{k_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} }}} \right. } {{k_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} }}} \right)\sinh \left( {{\ell_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} } \right) +{B_1}\left( s \right) = \left( {{\frac{1}{{k_1}\sqrt {{\frac{s}{{\alpha_1}}}} }}} \right)\sinh \left( {{\ell_1}\sqrt {{\frac{s}{{\alpha_1}}}} } \right) \end{equation} \begin{equation} -{C_1}\left( s \right) = {k_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} \sinh \left( {{\ell_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} } \right) +{C_1}\left( s \right) = {k_1}\sqrt {{\frac{s}{{\alpha_1}}}} \sinh \left( {{\ell_1}\sqrt {{\frac{s}{{\alpha_1}}}} } \right) \end{equation} \begin{equation} -{D_1}\left( s \right) = \cosh \left( {{\ell_1}\sqrt {{s \mathord{\left/ {\vphantom {s {{\alpha_1}}}} \right. } {{\alpha_1}}}} } \right) +{D_1}\left( s \right) = \cosh \left( {{\ell_1}\sqrt {{\frac{s}{{\alpha_1}}}} } \right) \end{equation} \(k_1\) is the thermal conductivity of the layer @@ -139,32 +139,32 @@ \subsubsection{Laplace Transform Formulation}\label{laplace-transform-formulatio The 2 x 2 matrix consisting of \(A_1(s)\), \(B_1(s)\), \(C_1(s)\), and \(D_1(s)\) is called the transmission matrix and contains all of the thermophysical properties of the layer necessary to calculate transient conduction heat transfer through it.~ It can easily be shown that a second layer could be characterized in a similar way as: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] \end{equation} where \(A_2(s)\), \(B_2(s)\), \(C_2(s)\), and \(D_2(s)\) are calculated using the properties of the second layer.~ This can be substituted into Equation to provide insight how the extension to multilayered slabs is achieved. \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] \end{equation} Thus, for a multilayered element as shown in Figure~\ref{fig:multilayered-building-element}, each separate layer has a transmission matrix of \(A_i(s)\), \(B_i(s)\), \(C_i(s)\), and \(D_i(s)\) associated with it.~ The form of the matrix equation for the multilayered element is the same as the equation for a single layer: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_{n + 1}}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_{n + 1}}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] \label{eq:LaplaceMultiLayerMatrix} \end{equation} but the transmission matrix is replaced by: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right] \cdots \left[ {\begin{array}{*{20}{c}}{{A_n}\left( s \right)}&{{B_n}\left( s \right)}\\ {{C_n}\left( s \right)}&{{D_n}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right] \cdots \left[ {\begin{array}{ccc}{{A_n}\left( s \right)}&{{B_n}\left( s \right)}\\ {{C_n}\left( s \right)}&{{D_n}\left( s \right)}\end{array}} \right] \end{equation} Equation~\ref{eq:LaplaceMultiLayerMatrix} is typically rearranged as follows: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{q_1}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{T_{n + 1}}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{q_1}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{T_{n + 1}}\left( s \right)}\end{array}} \right] \label{eq:LaplaceTransformDeriv631} \end{equation} @@ -187,11 +187,11 @@ \subsubsection{State Space Formulation}\label{state-space-formulation} This formulation can be used to solve the transient heat conduction equation by enforcing a finite difference grid over the various layers in the building element being analyzed.~ In this case, the state variables are the nodal temperatures, the environmental temperatures (interior and exterior) are the inputs, and the resulting heat fluxes at both surfaces are the outputs.~ Thus, the state space representation with finite difference variables would take the following form: \begin{equation} -\frac{{d\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right]}}{{dt}} = \left[ A \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ B \right]\left[ {\begin{array}{*{20}{c}}{{T_i}}\\ {{T_o}}\end{array}} \right] +\frac{{d\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right]}}{{dt}} = \left[ A \right]\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ B \right]\left[ {\begin{array}{ccc}{{T_i}}\\ {{T_o}}\end{array}} \right] \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{{q''}_i}}\\ {{{q''}_o}}\end{array}} \right] = \left[ C \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ D \right]\left[ {\begin{array}{*{20}{c}}{{T_i}}\\ {{T_o}}\end{array}} \right] +\left[ {\begin{array}{ccc}{{{q''}_i}}\\ {{{q''}_o}}\end{array}} \right] = \left[ C \right]\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ D \right]\left[ {\begin{array}{ccc}{{T_i}}\\ {{T_o}}\end{array}} \right] \end{equation} where \(T_1\), \(T_2\), \ldots{}, \(T_{n-1}\), Tn~are the finite difference nodal temperatures, n is the number of nodes, Ti~and To~are the interior and exterior environmental temperatures, and \({q''_i}\) ~and \({q''_o}\) ~are the heat fluxes (desired output). @@ -233,12 +233,12 @@ \subsubsection{State Space Formulation}\label{state-space-formulation} In matrix format: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{\frac{{d{T_1}}}{{dt}}}\\ {\frac{{d{T_2}}}{{dt}}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}&{\frac{1}{{RC}}}\\ {\frac{1}{{RC}}}&{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{\frac{{hA}}{C}}&0\\0&{\frac{{hA}}{C}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_o}}\\ {{T_i}}\end{array}} \right] +\left[ {\begin{array}{ccc}{\frac{{d{T_1}}}{{dt}}}\\ {\frac{{d{T_2}}}{{dt}}}\end{array}} \right] = \left[ {\begin{array}{ccc}{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}&{\frac{1}{{RC}}}\\ {\frac{1}{{RC}}}&{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{ccc}{\frac{{hA}}{C}}&0\\0&{\frac{{hA}}{C}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_o}}\\ {{T_i}}\end{array}} \right] \label{eq:QTFDeriv640} \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{{q''}_i}}\\ {{{q''}_o}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}0&{ - h}\\h&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}0&h\\ { - h}&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_o}}\\ {{T_i}}\end{array}} \right] +\left[ {\begin{array}{ccc}{{{q''}_i}}\\ {{{q''}_o}}\end{array}} \right] = \left[ {\begin{array}{ccc}0&{ - h}\\h&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{ccc}0&h\\ { - h}&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_o}}\\ {{T_i}}\end{array}} \right] \end{equation} \begin{figure}[hbtp] % fig 268 @@ -268,55 +268,55 @@ \subsubsection{Laplace Transform Formulation}\label{laplace-transform-formulatio For the first layer, it was determined that in the Laplace domain: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] \end{equation} For the second layer: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] \end{equation} To link the two layers and include the heat source between them, the following substitution is made: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{T_{2 + }}\left( s \right)}\\ {{q_{2 + }}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_2}\left( s \right)}\\ {{q_2}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{T_{2 + }}\left( s \right)}\\ {{q_{2 + }}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] \end{equation} which results in: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left\{ {\left[ {\begin{array}{*{20}{c}}{{T_{2 + }}\left( s \right)}\\ {{q_{2 + }}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}0\\ {{q_{source}}\left( s \right)}\end{array}} \right]} \right\} +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left\{ {\left[ {\begin{array}{ccc}{{T_{2 + }}\left( s \right)}\\ {{q_{2 + }}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}0\\ {{q_{source}}\left( s \right)}\end{array}} \right]} \right\} \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left\{ {\left[ {\begin{array}{*{20}{c}}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}0\\ {{q_{source}}\left( s \right)}\end{array}} \right]} \right\} +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left\{ {\left[ {\begin{array}{ccc}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}0\\ {{q_{source}}\left( s \right)}\end{array}} \right]} \right\} \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{A_2}\left( s \right)}&{{B_2}\left( s \right)}\\ {{C_2}\left( s \right)}&{{D_2}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_3}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}{{A_1}\left( s \right)}&{{B_1}\left( s \right)}\\ {{C_1}\left( s \right)}&{{D_1}\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] \label{eq:TwoLayerEquivalentQTFLaplaceForm} \end{equation} While Degiovanni concludes with this formula, some insight into what the generic equation for an element that has n layers might look like is gained by working with Equation~\ref{eq:TwoLayerEquivalentQTFLaplaceForm}.~ If a layer is added to the left of the first layer, the entire right hand side of Equation~\ref{eq:TwoLayerEquivalentQTFLaplaceForm} is multiplied by the transmission matrix of the new layer.~ Conversely, if a layer is added to the right of the second layer in Figure~\ref{fig:two-layer-example-for-deriving-the-laplace-transform-extension}, the vector containing the Laplace transform of the temperature and heat flux at interface 3 is replaced by the product of the transmission matrix of the new layer and the vector for temperature and heat flux at the next interface, and the term dealing with the heat source is not affected.~ The general equation for a building element with n layers and m layers between the left hand surface and the heat source can be derived as: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left( {\prod\limits_{i = 1}^n {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} } \right)\left[ {\begin{array}{*{20}{c}}{{T_{n + 1}}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] + \left( {\prod\limits_{i = 1}^m {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} } \right)\left[ {\begin{array}{*{20}{c}}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left( {\prod\limits_{i = 1}^n {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} } \right)\left[ {\begin{array}{ccc}{{T_{n + 1}}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] + \left( {\prod\limits_{i = 1}^m {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} } \right)\left[ {\begin{array}{ccc}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] \end{equation} or in more compact form: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_{n + 1}}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{a\left( s \right)}&{b\left( s \right)}\\ {c\left( s \right)}&{d\left( s \right)}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] +\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{q_1}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_{n + 1}}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}{a\left( s \right)}&{b\left( s \right)}\\ {c\left( s \right)}&{d\left( s \right)}\end{array}} \right]\left[ {\begin{array}{ccc}0\\ {{q_{source}}\left( s \right)}\end{array}} \right] \label{eq:LaplaceTransformDerivation649} \end{equation} -where:~ \(\left[ {\begin{array}{*{20}{c}}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^n {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]}\) ~~and~ \(\left[ {\begin{array}{*{20}{c}}{a\left( s \right)}&{b\left( s \right)}\\ {c\left( s \right)}&{d\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^m {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]}\) ~. +where:~ \(\left[ {\begin{array}{ccc}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^n {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]}\) ~~and~ \(\left[ {\begin{array}{ccc}{a\left( s \right)}&{b\left( s \right)}\\ {c\left( s \right)}&{d\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^m {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]}\) ~. Next, Equation~\ref{eq:LaplaceTransformDerivation649} must be rearranged to match the form of Equation~\ref{eq:LaplaceTransformDeriv631}, which relates the heat flux at both sides of the element to the temperature at each side.~ The matrix equation that is obtained shows that: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{q_1}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{T_{n + 1}}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{d\left( s \right) - \frac{{D\left( s \right)b\left( s \right)}}{{B\left( s \right)}}}\\ {\frac{{b\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {{q_{source}}\left( s \right)} \right] +\left[ {\begin{array}{ccc}{{q_1}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{T_{n + 1}}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}{d\left( s \right) - \frac{{D\left( s \right)b\left( s \right)}}{{B\left( s \right)}}}\\ {\frac{{b\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {{q_{source}}\left( s \right)} \right] \label{eq:LaplaceTransformDerivation650} \end{equation} @@ -325,31 +325,31 @@ \subsubsection{Laplace Transform Formulation}\label{laplace-transform-formulatio While Equation~\ref{eq:LaplaceTransformDerivation650} is correct for any single or multilayered element, the first term in the heat source transmission matrix does not appear to match the compactness of the other terms in the matrix equation.~ It can be shown (see Strand 1995: Equations 32 through 42 which detail this derivation) that the heat source transmission term for a two-layer problem reduces to: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{q_1}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{T_3}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{\frac{{{B_2}\left( s \right)}}{{B\left( s \right)}}}\\ {\frac{{{B_1}\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {{q_{source}}\left( s \right)} \right] +\left[ {\begin{array}{ccc}{{q_1}\left( s \right)}\\ {{q_3}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{T_3}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}{\frac{{{B_2}\left( s \right)}}{{B\left( s \right)}}}\\ {\frac{{{B_1}\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {{q_{source}}\left( s \right)} \right] \end{equation} If this is extended to a slab with n layers and a source between the m and m+1 layers, the general matrix equation for obtaining heat source transfer functions using the Laplace transform method is: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{q_1}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}\left( s \right)}\\ {{T_{n + 1}}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{\frac{{\bar b\left( s \right)}}{{B\left( s \right)}}}\\ {\frac{{b\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {{q_{source}}\left( s \right)} \right] +\left[ {\begin{array}{ccc}{{q_1}\left( s \right)}\\ {{q_{n + 1}}\left( s \right)}\end{array}} \right] = \left[ {\begin{array}{ccc}{\frac{{D\left( s \right)}}{{B\left( s \right)}}}&{\frac{{ - 1}}{{B\left( s \right)}}}\\ {\frac{1}{{B\left( s \right)}}}&{\frac{{ - A\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}\left( s \right)}\\ {{T_{n + 1}}\left( s \right)}\end{array}} \right] + \left[ {\begin{array}{ccc}{\frac{{\bar b\left( s \right)}}{{B\left( s \right)}}}\\ {\frac{{b\left( s \right)}}{{B\left( s \right)}}}\end{array}} \right]\left[ {{q_{source}}\left( s \right)} \right] \label{eq:LaplaceTransformDeriv652} \end{equation} where: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^n {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} +\left[ {\begin{array}{ccc}{A\left( s \right)}&{B\left( s \right)}\\ {C\left( s \right)}&{D\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^n {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{a\left( s \right)}&{b\left( s \right)}\\ {c\left( s \right)}&{d\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^m {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} +\left[ {\begin{array}{ccc}{a\left( s \right)}&{b\left( s \right)}\\ {c\left( s \right)}&{d\left( s \right)}\end{array}} \right] = \prod\limits_{i = 1}^m {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{\bar a\left( s \right)}&{\bar b\left( s \right)}\\ {\bar c\left( s \right)}&{\bar d\left( s \right)}\end{array}} \right] = \prod\limits_{i = m + 1}^n {\left[ {\begin{array}{*{20}{c}}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} +\left[ {\begin{array}{ccc}{\bar a\left( s \right)}&{\bar b\left( s \right)}\\ {\bar c\left( s \right)}&{\bar d\left( s \right)}\end{array}} \right] = \prod\limits_{i = m + 1}^n {\left[ {\begin{array}{ccc}{{A_i}\left( s \right)}&{{B_i}\left( s \right)}\\ {{C_i}\left( s \right)}&{{D_i}\left( s \right)}\end{array}} \right]} \end{equation} -At first glance, the terms in the heat source transmission matrix may appear to be reversed.~ It is expected that only the layers to the left of the source will affect \(q_1(s)\), but the presence of \(\bar b\left( s \right)\) ~in the element multiplied by \(q_{source}(s)\) to obtain \(q_1(s)\) seems to be contradictory.~ In fact, the entire term, \({{\bar b\left( s \right)} \mathord{\left/ {\vphantom {{\bar b\left( s \right)} {B\left( s \right)}}} \right. } {B\left( s \right)}}\) , must be analyzed to determine the effect of \(q_{source}(s)\) on \(q_1(s)\).~ In essence, the appearance of \(\bar b\left( s \right)\) ~removes the effects of the layers to the right of the source from B(s) leaving only the influence of the layers to the left of the source.~ The form displayed by Equation~\ref{eq:LaplaceTransformDeriv652} is, however, extremely convenient because the terms in the heat source transmission matrix have the same denominators, and thus roots, as the terms in the temperature transmission matrix.~ Thus, the same roots that are calculated for the CTFs can be used for the QTFs, saving a considerable amount of computer time during the calculation of the transfer functions. +At first glance, the terms in the heat source transmission matrix may appear to be reversed.~ It is expected that only the layers to the left of the source will affect \(q_1(s)\), but the presence of \(\bar b\left( s \right)\) ~in the element multiplied by \(q_{source}(s)\) to obtain \(q_1(s)\) seems to be contradictory.~ In fact, the entire term, \({\frac{{\bar b\left( s \right)}}{B\left( s \right)}}\) , must be analyzed to determine the effect of \(q_{source}(s)\) on \(q_1(s)\).~ In essence, the appearance of \(\bar b\left( s \right)\) ~removes the effects of the layers to the right of the source from B(s) leaving only the influence of the layers to the left of the source.~ The form displayed by Equation~\ref{eq:LaplaceTransformDeriv652} is, however, extremely convenient because the terms in the heat source transmission matrix have the same denominators, and thus roots, as the terms in the temperature transmission matrix.~ Thus, the same roots that are calculated for the CTFs can be used for the QTFs, saving a considerable amount of computer time during the calculation of the transfer functions. Once Equation~\ref{eq:LaplaceTransformDeriv652} is inverted from the Laplace domain back into the time domain, the combined CTF--QTF solution takes the following form: @@ -391,12 +391,12 @@ \subsubsection{State Space Formulation}\label{state-space-formulation-1} In obtaining the matrix equivalent for this set of equations, it should be noted that the source term is not a constant but rather an input that varies with time.~ Thus, it must be grouped with the environmental temperatures as inputs.~ The resulting matrix equations take the following form: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{\frac{{d{T_1}}}{{dt}}}\\ {\frac{{d{T_2}}}{{dt}}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}&{\frac{1}{{RC}}}\\ {\frac{1}{{RC}}}&{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}{\frac{{hA}}{C}}&0&{\frac{A}{C}}\\0&{\frac{{hA}}{C}}&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] +\left[ {\begin{array}{ccc}{\frac{{d{T_1}}}{{dt}}}\\ {\frac{{d{T_2}}}{{dt}}}\end{array}} \right] = \left[ {\begin{array}{ccc}{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}&{\frac{1}{{RC}}}\\ {\frac{1}{{RC}}}&{\frac{{ - 1}}{{RC}} - \frac{{hA}}{C}}\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{ccc}{\frac{{hA}}{C}}&0&{\frac{A}{C}}\\0&{\frac{{hA}}{C}}&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] \label{eq:QTFDeriv658} \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{{q''}_1}}\\ {{{q''}_2}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}0&{ - h}\\h&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}0&h&0\\ { - h}&0&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] +\left[ {\begin{array}{ccc}{{{q''}_1}}\\ {{{q''}_2}}\end{array}} \right] = \left[ {\begin{array}{ccc}0&{ - h}\\h&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{ccc}0&h&0\\ { - h}&0&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] \label{eq:LaplaceTransformDeriv659} \end{equation} @@ -405,11 +405,11 @@ \subsubsection{State Space Formulation}\label{state-space-formulation-1} If this analysis is extended to a finite difference network with n nodes, the corresponding matrix equations can be shown to be: \begin{equation} -\frac{{d\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right]}}{{dt}} = \left[ A \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ B \right]\left[ {\begin{array}{*{20}{c}}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] +\frac{{d\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right]}}{{dt}} = \left[ A \right]\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ B \right]\left[ {\begin{array}{ccc}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] \end{equation} \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{{q''}_i}}\\ {{{q''}_o}}\end{array}} \right] = \left[ C \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ D \right]\left[ {\begin{array}{*{20}{c}}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] +\left[ {\begin{array}{ccc}{{{q''}_i}}\\ {{{q''}_o}}\end{array}} \right] = \left[ C \right]\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ D \right]\left[ {\begin{array}{ccc}{{T_o}}\\ {{T_i}}\\ {{q_{source}}}\end{array}} \right] \end{equation} The influence of the heat source is also confirmed by the final solution form, which is identical to the Laplace transform result shown in Equation~\ref{eq:LaplaceTransformDeriv653} As with the Laplace solution method, the state space method results in a set of QTFs that relate the heat source at the current time step and several previous time steps to the current heat flux at the surface of the element. @@ -554,14 +554,14 @@ \subsubsection{Determination of Internal Temperatures}\label{determination-of-in When this equation for \(T_1\) is added to Equation~\ref{eq:LaplaceTransformDeriv659}, the resulting output matrix equation for the heat flux at both surfaces and the internal temperature is: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{{q''}_i}}\\ {{{q''}_o}}\\ {{T_1}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}0&{ - h}\\h&0\\1&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}0&h&0\\ { - h}&0&0\\0&0&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{T_i}}\\ {{T_o}}\\ {{q_{source}}}\end{array}} \right] +\left[ {\begin{array}{ccc}{{{q''}_i}}\\ {{{q''}_o}}\\ {{T_1}}\end{array}} \right] = \left[ {\begin{array}{ccc}0&{ - h}\\h&0\\1&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_1}}\\ {{T_2}}\end{array}} \right] + \left[ {\begin{array}{ccc}0&h&0\\ { - h}&0&0\\0&0&0\end{array}} \right]\left[ {\begin{array}{ccc}{{T_i}}\\ {{T_o}}\\ {{q_{source}}}\end{array}} \right] \label{eq:QTFDeriv670} \end{equation} The only difference between this relation and Equation~\ref{eq:LaplaceTransformDeriv659} is the presence of \(T_1\) on both the right and left hand side of the equation.~ The dual role of \(T_1\) as a state variable and an output parameter may seem to contradict the goal of the state space method of eliminating the state variables.~ However, due to the flexibility of the formulation, nodal temperatures can be extracted in the same manner that any other output quantity would be obtained.~ For an element with n layers, Equation~\ref{eq:QTFDeriv670} becomes: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{{{q''}_i}}\\ {{{q''}_o}}\\ {{T_s}}\end{array}} \right] = \left[ C \right]\left[ {\begin{array}{*{20}{c}}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ D \right]\left[ {\begin{array}{*{20}{c}}{{T_i}}\\ {{T_o}}\\ {{q_{source}}}\end{array}} \right] +\left[ {\begin{array}{ccc}{{{q''}_i}}\\ {{{q''}_o}}\\ {{T_s}}\end{array}} \right] = \left[ C \right]\left[ {\begin{array}{ccc}{{T_1}}\\ \vdots \\ {{T_n}}\end{array}} \right] + \left[ D \right]\left[ {\begin{array}{ccc}{{T_i}}\\ {{T_o}}\\ {{q_{source}}}\end{array}} \right] \label{eq:QTFDeriv671} \end{equation} @@ -755,7 +755,7 @@ \subsubsection{Heat Exchanger Formulation for Hydronic Systems}\label{heat-excha Knowing the inlet water temperature and water mass flow rate, the calculation procedure is somewhat involved and requires, in addition to Equations~\ref{eq:QTFDeriv672},~\ref{eq:RadSysHX673}, and~\ref{eq:RadSysHX674}, the use of a modified form of Equation~\ref{eq:LaplaceTransformDeriv653}.~ Equation~\ref{eq:LaplaceTransformDeriv653} is the standard conduction transfer function formula for a building element with an embedded source/sink of heat.~ In EnergyPlus, the surface flux on the left hand side of the equation is replaced with a surface heat balance: \begin{equation} -\left[ {\begin{array}{*{20}{c}}{Surface}\\ {Heat}\\ {Balance}\end{array}} \right] = \sum\limits_{m = 1}^M {{X_{k,m}}{T_{1,t - m + 1}}} - \sum\limits_{m = 1}^M {{Y_{k,m}}{T_{3,t - m + 1}}} + \sum\limits_{m = 1}^k {{F_m}{{q''}_{1,t - m}}} + \sum\limits_{m = 1}^M {{W_m}{q_{source,t - m + 1}}} +\left[ {\begin{array}{ccc}{Surface}\\ {Heat}\\ {Balance}\end{array}} \right] = \sum\limits_{m = 1}^M {{X_{k,m}}{T_{1,t - m + 1}}} - \sum\limits_{m = 1}^M {{Y_{k,m}}{T_{3,t - m + 1}}} + \sum\limits_{m = 1}^k {{F_m}{{q''}_{1,t - m}}} + \sum\limits_{m = 1}^M {{W_m}{q_{source,t - m + 1}}} \label{eq:RadSysHX682} \end{equation} @@ -877,31 +877,31 @@ \subsubsection{Heat Exchanger Formulation for Hydronic Systems}\label{heat-excha The previous equation combines with the following equation which is valid for an surface in the current radiant system: \begin{equation} -{{\rm{q}}_{\rm{j}}}{\rm{ = }}{{\rm{\dot m}}_{\rm{j}}}{{\rm{c}}_{\rm{p}}}{\rm{(}}{{\rm{T}}_{{\rm{water,in}}}}{\rm{ - }}{{\rm{T}}_{{\rm{water,out,j}}}}{\rm{)}} +{{\mathrm{q}}_{\mathrm{j}}}{\mathrm{ = }}{{\mathrm{\dot m}}_{\mathrm{j}}}{{\mathrm{c}}_{\mathrm{p}}}{\mathrm{(}}{{\mathrm{T}}_{{\mathrm{water,in}}}}{\mathrm{ - }}{{\mathrm{T}}_{{\mathrm{water,out,j}}}}{\mathrm{)}} \end{equation} where q\(_{j}\) is the heat transfer to the jth surface in the radiant system, \(\dot{m}_{j}\) is the mass flow rate only to this surface, and T\(_{water,out,j}\) is the outlet temperature for the jth surface.~ Combining the previous two equations results in: \begin{equation} -{\rm{(}}{{\rm{T}}_{{\rm{water,in}}}}{\rm{ - }}{{\rm{T}}_{{\rm{water,out,j}}}}{\rm{)}} = \frac{{{\varepsilon_j}\left( {{{\rm{T}}_{{\rm{water,in}}}} - {C_{k,j}}} \right)}}{{1 + \frac{{{\varepsilon_j}{{\dot m}_j}{c_p}{C_{l,j}}}}{A}}} +{\mathrm{(}}{{\mathrm{T}}_{{\mathrm{water,in}}}}{\mathrm{ - }}{{\mathrm{T}}_{{\mathrm{water,out,j}}}}{\mathrm{)}} = \frac{{{\varepsilon_j}\left( {{{\mathrm{T}}_{{\mathrm{water,in}}}} - {C_{k,j}}} \right)}}{{1 + \frac{{{\varepsilon_j}{{\dot m}_j}{c_p}{C_{l,j}}}}{A}}} \end{equation} If for each surface in the radiant system, we let: \begin{equation} -{{\rm{C}}_{m,j}} = \frac{{{\varepsilon_j}}}{{1 + \frac{{{\varepsilon_j}{{\dot m}_j}{c_p}{C_{l,j}}}}{A}}} +{{\mathrm{C}}_{m,j}} = \frac{{{\varepsilon_j}}}{{1 + \frac{{{\varepsilon_j}{{\dot m}_j}{c_p}{C_{l,j}}}}{A}}} \end{equation} then the previous equations because the slightly less complex: \begin{equation} -{\rm{(}}{{\rm{T}}_{{\rm{water,in}}}}{\rm{ - }}{{\rm{T}}_{{\rm{water,out,j}}}}{\rm{)}} = {C_{m,j}}\left( {{{\rm{T}}_{{\rm{water,in}}}} - {C_{k,j}}} \right) +{\mathrm{(}}{{\mathrm{T}}_{{\mathrm{water,in}}}}{\mathrm{ - }}{{\mathrm{T}}_{{\mathrm{water,out,j}}}}{\mathrm{)}} = {C_{m,j}}\left( {{{\mathrm{T}}_{{\mathrm{water,in}}}} - {C_{k,j}}} \right) \end{equation} Rearranging to obtain the outlet temperature for the jth surface: \begin{equation} -{{\rm{T}}_{{\rm{water,out,j}}}} = \left( {1 - {C_{m,j}}} \right){{\rm{T}}_{{\rm{water,in}}}} + {C_{m,j}}{C_{k,j}} +{{\mathrm{T}}_{{\mathrm{water,out,j}}}} = \left( {1 - {C_{m,j}}} \right){{\mathrm{T}}_{{\mathrm{water,in}}}} + {C_{m,j}}{C_{k,j}} \end{equation} The overall outlet temperature from the radiant system is just a simple mixing of all of the surface outlet temperatures based on flow fraction and results in T\(_{water,out}\). @@ -909,27 +909,27 @@ \subsubsection{Heat Exchanger Formulation for Hydronic Systems}\label{heat-excha An energy balance on the mixing valve-pump group results in the following equation that relates the radiant system inlet temperature (T\(_{water,in}\)) to the loop inlet water temperature (T\(_{loop,in}\)), the radiant system outlet temperature (T\(_{water,out}\)), and the pump heat addition: \begin{equation} -{{\rm{T}}_{{\rm{water,in}}}} = \frac{{{{\dot m}_{loop}}}}{{{{\dot m}_{system}}}}{{\rm{T}}_{{\rm{loop,in}}}} + \frac{{{{\dot m}_{recirc}}}}{{{{\dot m}_{system}}}}{{\rm{T}}_{{\rm{water,out}}}} + \frac{{PumpHeat}}{{{{\dot m}_{system}}{c_p}}} +{{\mathrm{T}}_{{\mathrm{water,in}}}} = \frac{{{{\dot m}_{loop}}}}{{{{\dot m}_{system}}}}{{\mathrm{T}}_{{\mathrm{loop,in}}}} + \frac{{{{\dot m}_{recirc}}}}{{{{\dot m}_{system}}}}{{\mathrm{T}}_{{\mathrm{water,out}}}} + \frac{{PumpHeat}}{{{{\dot m}_{system}}{c_p}}} \end{equation} Plugging in the definition of T\(_{water,out}\) based on the summation of T\(_{water,out,j}\) equations results in: \begin{equation} -{{\rm{T}}_{{\rm{water,in}}}} = \frac{{LoopTerm + RecircTerm}}{{TwiCoeff}} +{{\mathrm{T}}_{{\mathrm{water,in}}}} = \frac{{LoopTerm + RecircTerm}}{{TwiCoeff}} \end{equation} where: \begin{equation} -LoopTerm = \frac{{{{\dot m}_{loop}}}}{{{{\dot m}_{system}}}}{{\rm{T}}_{{\rm{loop,in}}}} + \frac{{PumpHeat}}{{{{\dot m}_{system}}{c_p}}} +LoopTerm = \frac{{{{\dot m}_{loop}}}}{{{{\dot m}_{system}}}}{{\mathrm{T}}_{{\mathrm{loop,in}}}} + \frac{{PumpHeat}}{{{{\dot m}_{system}}{c_p}}} \end{equation} \begin{equation} -RecircTerm = \frac{{{{\dot m}_{recirc}}}}{{{{\dot m}_{system}}}}\sum\limits_{\rm{j}} {{\rm{FlowFractio}}{{\rm{n}}_{\rm{j}}}{{\rm{T}}_{{\rm{water,out,j}}}}} +RecircTerm = \frac{{{{\dot m}_{recirc}}}}{{{{\dot m}_{system}}}}\sum\limits_{\mathrm{j}} {{\mathrm{FlowFractio}}{{\mathrm{n}}_{\mathrm{j}}}{{\mathrm{T}}_{{\mathrm{water,out,j}}}}} \end{equation} \begin{equation} -TwiCoeff = \left( {1 - \frac{{{{\dot m}_{recirc}}}}{{{{\dot m}_{system}}}}} \right)\sum\limits_{\rm{j}} {\left[ {{\rm{FlowFractio}}{{\rm{n}}_{\rm{j}}}\left( {1 - {C_{m,j}}} \right)} \right]} +TwiCoeff = \left( {1 - \frac{{{{\dot m}_{recirc}}}}{{{{\dot m}_{system}}}}} \right)\sum\limits_{\mathrm{j}} {\left[ {{\mathrm{FlowFractio}}{{\mathrm{n}}_{\mathrm{j}}}\left( {1 - {C_{m,j}}} \right)} \right]} \end{equation} Once the actual water inlet temperature is calculated with this equation, it is then possible to calculate individual outlet temperatures for each surface, the overall outlet temperature, and finally all of the necessary flow and loop quantities.~ This procedure avoids iteration but is somewhat complex to follow.~ However, this second mathematical process is only needed for select cases of the constant flow radiant system when the inlet temperature is not known explicitly.~ With the proper establishment of input data, it can be avoided. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex index 750940c584d..2676a8ee1b2 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex @@ -99,7 +99,7 @@ \subsubsection{Compressor Energy Use}\label{compressor-energy-use} The electric power input to the rack compressor(s) is calculated for each simulation time step as the sum of the connected refrigerated case evaporator loads divided by the operating COP: \begin{equation} -{P_{{\rm{rack}}}} = \frac{{\sum {{{\dot Q}_{case}} + \sum {{{\dot Q}_{walkin}}} } }}{{CO{P_{operating}}}} +{P_{{\mathrm{rack}}}} = \frac{{\sum {{{\dot Q}_{case}} + \sum {{{\dot Q}_{walkin}}} } }}{{CO{P_{operating}}}} \end{equation} where: @@ -228,9 +228,9 @@ \subsubsection{Condenser Heat Rejection, Energy Use, and Water Use}\label{conden \(\dot m_{air}\) is the mass flow rate of air through the evaporative condenser (kg/s) -\({\omega_{air,outlet}}\) is the humidity ratio of air leaving the evaporative media (kg\(_{water}\)/kg\(_{dry\\ air}\)) based on the effective dry-bulb temperature \emph{T\(_{effective}\)}, as described above, outdoor air wet-bulb temperature, and outdoor barometric pressure +\({\omega_{air,outlet}}\) is the humidity ratio of air leaving the evaporative media (kg\(_{water}\)/kg\(_{dry air}\)) based on the effective dry-bulb temperature \emph{T\(_{effective}\)}, as described above, outdoor air wet-bulb temperature, and outdoor barometric pressure -\({\omega_{air,inlet}}\) is the humidity ratio of inlet air (kg\(_{water}\)/kg\(_{dry\\ air}\)) based on conditions at the condenser air inlet node if provided, or outdoor air conditions (e.g., no adjustment for height above ground) if the condenser air inlet node field is left blank +\({\omega_{air,inlet}}\) is the humidity ratio of inlet air (kg\(_{water}\)/kg\(_{dry air}\)) based on conditions at the condenser air inlet node if provided, or outdoor air conditions (e.g., no adjustment for height above ground) if the condenser air inlet node field is left blank \({\rho_{water}}\) is the density of water evaluated at the effective air temperature (kg/m\(^{3}\)). @@ -617,7 +617,7 @@ \subsubsection{Case Defrost}\label{case-defrost} \subsubsection{Sensible Case Credits}\label{sensible-case-credits} -Refrigerated cases remove sensible energy from the surrounding environment (termed ``sensible case credits''). In this model, the sensible case credits are composed of wall heat conduction, radiation heat transfer, and sensible heat transfer by air infiltration (\({\dot Q_{walls}}\) + \({\dot Q_{rad}}\) + \({\dot Q_{{\rm{inf,sens}}}}\) in Equation~\ref{eq:TotalLoadRefCaseEvaporator}). To quantify this energy transfer, the model first calculates the rated sensible case credits by subtracting the known loads at rated conditions (fan, lighting, and anti-sweat heater) from the rated sensible cooling capacity of the case. It should be noted that the lighting and fan heat discussed here are for standard-efficiency equipment. Manufacturers typically provide ratings for both standard and high-efficiency fan and lighting equipment; however, the standard equipment is used to determine rated sensible case credits. (Some manufacturers no longer include any lighting in their rated capacity values. For these cases, P'\(_{lights,std}\) will equal zero.) +Refrigerated cases remove sensible energy from the surrounding environment (termed ``sensible case credits''). In this model, the sensible case credits are composed of wall heat conduction, radiation heat transfer, and sensible heat transfer by air infiltration (\({\dot Q_{walls}}\) + \({\dot Q_{rad}}\) + \({\dot Q_{{\mathrm{inf,sens}}}}\) in Equation~\ref{eq:TotalLoadRefCaseEvaporator}). To quantify this energy transfer, the model first calculates the rated sensible case credits by subtracting the known loads at rated conditions (fan, lighting, and anti-sweat heater) from the rated sensible cooling capacity of the case. It should be noted that the lighting and fan heat discussed here are for standard-efficiency equipment. Manufacturers typically provide ratings for both standard and high-efficiency fan and lighting equipment; however, the standard equipment is used to determine rated sensible case credits. (Some manufacturers no longer include any lighting in their rated capacity values. For these cases, P'\(_{lights,std}\) will equal zero.) \begin{equation} \dot Qc{c_{sens,rated}} = \left[ {{{\dot Q}_{case,rated}}\left( {RT{F_{rated}}} \right)\left( {1 - LH{R_{rated}}} \right) - {P'}_{lights,std}\left( {{F_l}} \right) - {P'}_{as}\left( {{F_{as}}} \right) - {P'}_{fan,std}} \right]{L_{case}} @@ -867,7 +867,7 @@ \subsubsection{Walk-In Sensible and Latent Heat Exchange}\label{walk-in-sensible \(U_{DoorZn}\) is the thermal conductance of doors facing Zone n (W/m\(^{2}\)-K) -\(U_{SurfacesZn\\}\) is the thermal conductance of surfaces facing Zone n (W/m\(^{2}\)-K) +\(U_{SurfacesZn}\) is the thermal conductance of surfaces facing Zone n (W/m\(^{2}\)-K) \(\Delta T_{Zn}\) is the difference between walk-in operating temperature and Zone n drybulb temperature (\(^{\circ}\)C). @@ -1171,7 +1171,7 @@ \subsubsection{European Standard Ratings}\label{european-standard-ratings} Five standard rating conditions have been defined in a European rating system. The capacity is reported at the rating condition as either the ``Nominal'' or ``Standard'' capacity. The ``Nominal'' capacity includes both latent and sensible loads and the ``Standard'' capacity includes sensible loads only. ``Wet Coil Factors'' are provided with the ratings to translate between the two, along with a chart giving the impact of Air Inlet Temperature on the Wet Coil Factor. The user identifies the rating condition used and whether the capacity input is ``Nominal'' or ``Standard''. These rating factors, along with the air inlet temperature and evaporating temperature are used to calculate the actual cooling capacity. \begin{equation} -{Q_{{\rm{Total}}}} = {Q_{{\rm{Nominal}}}} \times \frac{{WetCoilFactor({T_{{\rm{Coil,inlet}}}})}}{{WetCoilFactor({\rm{Standard Condition}})}} \times \frac{{\Delta T}}{{\Delta {T_{{\rm{Rated}}}}}} +{Q_{{\mathrm{Total}}}} = {Q_{{\mathrm{Nominal}}}} \times \frac{{WetCoilFactor({T_{{\mathrm{Coil,inlet}}}})}}{{WetCoilFactor({\mathrm{Standard Condition}})}} \times \frac{{\Delta T}}{{\Delta {T_{{\mathrm{Rated}}}}}} \end{equation} \subsubsection{Total Capacity Map}\label{total-capacity-map} @@ -1229,11 +1229,11 @@ \subsubsection{Refrigeration System Loads and Convergence}\label{refrigeration-s The refrigeration loads for refrigerated cases and walk-ins are added to provide the first value for the refrigeration load on a detailed system, as well as the evaporating temperature. (If there are no cases or walk-ins served directly by a system, that system is not solved until the energy transfer loads are available.) The user can also choose to include suction pipe heat gain as a load on the system. The performance of refrigeration compressors is dependent upon the condensing and evaporating temperatures. The calculation starts with an estimated condensing temperature, which is used to calculate the compressor power use. \begin{equation} -{\dot Q_{{\rm{Refrigeration}}}} = \sum {{{\dot Q}_{case}}} + \sum {{{\dot Q}_{walkin}}} ( + \sum {{{\dot Q}_{PipeHeatGain}}} ) +{\dot Q_{{\mathrm{Refrigeration}}}} = \sum {{{\dot Q}_{case}}} + \sum {{{\dot Q}_{walkin}}} ( + \sum {{{\dot Q}_{PipeHeatGain}}} ) \end{equation} \begin{equation} -{\dot Q_{System,Estimated}} = {\dot Q_{{\rm{Refrigeration}}}} + {P_{Compressors,Estimated}} +{\dot Q_{System,Estimated}} = {\dot Q_{{\mathrm{Refrigeration}}}} + {P_{Compressors,Estimated}} \end{equation} These values are in turn used to determine the total heat rejection load on the condenser, which produces a new estimate for the condensing temperature. A few iterations are usually necessary to converge upon the final condensing temperature and compressor power for each time step for each system. @@ -1327,7 +1327,7 @@ \subsubsection{Two-Stage Compression Systems}\label{two-stage-compression-system For two-stage compression systems with intercooling, there is an optimum intermediate pressure that minimizes the total power consumption of the system.~ In the case of an ideal intercooler in which the refrigerant gas enters the high-stage compressor at the same temperature as it enters the low-stage compressor, the minimum compressor work is achieved using the same pressure ratio across both compressors (Baek et al. 2005).~ Typically, the optimum intermediate pressure is approximated as the geometric mean pressure of the system as follows: \begin{equation} -{P_{{\mathop{\rm int}} ercooler}} = \sqrt {\left( {{P_{evaporator}}} \right)\left( {{P_{condenser}}} \right)} +{P_{{\mathop\mathrm{int}} ercooler}} = \sqrt {\left( {{P_{evaporator}}} \right)\left( {{P_{condenser}}} \right)} \end{equation} where \emph{P\(_{intercooler}\)} is the pressure within the intercooler shell, \emph{P\(_{evaporator}\)} is the evaporating pressure and \emph{P\(_{condenser}\)} is the condensing pressure. @@ -1454,7 +1454,7 @@ \subsubsection{Condenser Performance}\label{condenser-performance} For a cycling fan, the power variation with air flow volume is approximately linear above the minimum air volume ratio as shown in the following equation for the option ``FixedLinear'': \begin{equation} -{P_{CondFan}} = ({\rm{Air~Volume~Ratio}}){P_{CondFan,design}} +{P_{CondFan}} = ({\mathrm{Air~Volume~Ratio}}){P_{CondFan,design}} \end{equation} where: @@ -1656,7 +1656,7 @@ \subsubsection{Condenser Performance}\label{condenser-performance} For cases and walk-ins served by cascade condensers, energy needed for hot brine or hot gas defrost is reclaimed from the primary system.~ The refrigeration load the cascade condenser places upon the primary system is classified as a `transfer load', because it transfers load from one system to another. This load is the sum of all case and walk-in loads served by the secondary system, any suction piping heat gains on the secondary loop, plus the secondary loop's compressor power. The same name (Ref. Refrigeration:Condenser:Cascade, field ``Name'') used to identify the condenser in the secondary loop is used to identify the transfer load on the primary system. \begin{equation} -{\dot Q_{{\rm{Cascade}}}} = {\sum {\dot Q}_{{\rm{Case}}}} + \sum {{{\dot Q}_{{\rm{Walkin}}}} + } \sum {{{\dot Q}_{{\rm{Compressor}}}}} \left( { + \sum {{{\dot Q}_{{\rm{PipeHeatGain}}}}} } \right) +{\dot Q_{{\mathrm{Cascade}}}} = {\sum {\dot Q}_{{\mathrm{Case}}}} + \sum {{{\dot Q}_{{\mathrm{Walkin}}}} + } \sum {{{\dot Q}_{{\mathrm{Compressor}}}}} \left( { + \sum {{{\dot Q}_{{\mathrm{PipeHeatGain}}}}} } \right) \end{equation} where: @@ -1829,7 +1829,7 @@ \subsubsection{Secondary Evaporator in a Single-Phase Secondary Loop (Brine or G \(\eta\) is the heat exchanger effectiveness (dimensionless and less than one) -\(T_{BrineInRated\\}\) is the heat exchanger brine inlet temperature at rated conditions (\(^{\circ}\)C) +\(T_{BrineInRated}\) is the heat exchanger brine inlet temperature at rated conditions (\(^{\circ}\)C) \(T_{BrineOutRated}\) is the heat exchanger brine outlet temperature at rated conditions (\(^{\circ}\)C) @@ -1880,7 +1880,7 @@ \subsubsection{Secondary Evaporator in a Two-Phase Secondary Loop~ (Liquid-Overf If the flow rate through the evaporator is not input, it will be calculated based upon the input value for the Circulating Rate. \begin{equation} -Flo{w_{{\rm{RatedVol}}}} = \frac{{\sum {{{\dot Q}_{{\rm{Case}}}} + \sum {{{\dot Q}_{{\rm{WalkIn}}}} + Powe{r_{{\rm{Pump}}}}} } }}{{{\rho_{Liquid}}\Delta {h_{fg}}}} +Flo{w_{{\mathrm{RatedVol}}}} = \frac{{\sum {{{\dot Q}_{{\mathrm{Case}}}} + \sum {{{\dot Q}_{{\mathrm{WalkIn}}}} + Powe{r_{{\mathrm{Pump}}}}} } }}{{{\rho_{Liquid}}\Delta {h_{fg}}}} \end{equation} Where: @@ -1938,7 +1938,7 @@ \subsubsection{Secondary Loop Pumping Power and Secondary Loop Load}\label{secon A variable speed pump can be modeled by providing a cubic curve for pump power as a function of the ratio of total flow needed to the total flow specified at full load design conditions. \begin{equation} -{\dot Q_{Pump}} = \left[ {A{{\left( {L{F_{Pump}}} \right)}^3} + B{{\left( {L{F_{Pump}}} \right)}^2} + C\left( {L{F_{Pump}}} \right) + D} \right] \times {\rm{Powe}}{{\rm{r}}_{{\rm{PumpRated}}}} \times {\rm{Rati}}{{\rm{o}}_{{\rm{PowertoHeat}}}} +{\dot Q_{Pump}} = \left[ {A{{\left( {L{F_{Pump}}} \right)}^3} + B{{\left( {L{F_{Pump}}} \right)}^2} + C\left( {L{F_{Pump}}} \right) + D} \right] \times {\mathrm{Powe}}{{\mathrm{r}}_{{\mathrm{PumpRated}}}} \times {\mathrm{Rati}}{{\mathrm{o}}_{{\mathrm{PowertoHeat}}}} \end{equation} where \(LF_{Pump}\) is the ratio of total flow needed to the total flow specified at full load design conditions. @@ -1955,11 +1955,11 @@ \subsubsection{Secondary Loop Pumping Power and Secondary Loop Load}\label{secon where: -\({\dot Q_{{\rm{Refrigeration}}}}\) is the output variable ``Refrigeration Secondary Loop Load Heat Transfer Rate'' (W) +\({\dot Q_{{\mathrm{Refrigeration}}}}\) is the output variable ``Refrigeration Secondary Loop Load Heat Transfer Rate'' (W) -\({\dot Q_{{\rm{TotalSecondary}}}}\) is the total load the secondary loop transfers to the primary system, output variable ``Refrigeration Secondary Loop Total Heat Transfer Rate'' (W) +\({\dot Q_{{\mathrm{TotalSecondary}}}}\) is the total load the secondary loop transfers to the primary system, output variable ``Refrigeration Secondary Loop Total Heat Transfer Rate'' (W) -\({\dot Q_{{\rm{Pump}}}}\) is the pump power, function of Flow\(_{Needed}\), output variable ``Refrigeration Secondary Loop Pump Electric Power'' (W) +\({\dot Q_{{\mathrm{Pump}}}}\) is the pump power, function of Flow\(_{Needed}\), output variable ``Refrigeration Secondary Loop Pump Electric Power'' (W) \(Flow_{Needed}\) is the flow rate needed to meet the loop refrigeration load, , output variable ``Refrigeration Secondary Loop Volume Flow Rate'' (m\(^3\)/s). diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex index 2165539f721..15cd3008db8 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex @@ -339,7 +339,7 @@ \subsection{Multizone Heating Average}\label{multizone-heating-average} END IF \begin{equation} -{\overline{T_Z}} = {{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j} \bullet {T_{Zj}}} \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j} \bullet {T_{Zj}}} \right)} {\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j}} \right)}}} \right. } {\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j}} \right)}} +{\overline{T_Z}} = {\frac{{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j} \bullet {T_{Zj}}} \right)}}{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j}} \right)}} \end{equation} where: @@ -375,7 +375,7 @@ \subsection{Multizone Cooling Average}\label{multizone-cooling-average} END IF \begin{equation} -{\overline{T_Z}} = {{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j} \bullet {T_{Zj}}} \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j} \bullet {T_{Zj}}} \right)} {\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j}} \right)}}} \right. } {\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j}} \right)}} +{\overline{T_Z}} = {\frac{{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j} \bullet {T_{Zj}}} \right)}}{\left( {\sum\limits_{j = 1}^{TotZones} {{{\dot m}_{Zj}} \bullet } C{p_j}} \right)}} \end{equation} Note that for cooling \({\dot Q_{Zj}} < 0.\) The average supply air setpoint temperature \({\overline{T_{SP}}}\) is constrained to be less than or equal to the maximum setpoint temperature (user input) and greater than or equal to the minimum setpoint temperature (user input). If the sum of the zone sensible cooling loads is extremely small (i.e., no cooling load), the setpoint temperature is set to the maximum. \({\overline{T_{SP}}}\) will be applied to the setpoint node or nodes specified in the SetpointManager:MultiZone:Cooling:Average object. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex index f83ffb3f008..e9027389f31 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex @@ -275,7 +275,7 @@ \subsubsection{Mathematical Model}\label{mathematical-model} \end{equation} \begin{equation} -{{\rm{b}}_{\rm{3}}} = {\rm{ }}\left( {A \cdot {U_b}{T_{osc}} + A \cdot {U_s}{T_a} + {{\dot m}_w}{C_w}{T_{wi}}} \right) +{{\mathrm{b}}_{\mathrm{3}}} = {\mathrm{ }}\left( {A \cdot {U_b}{T_{osc}} + A \cdot {U_s}{T_a} + {{\dot m}_w}{C_w}{T_{wi}}} \right) \end{equation} The two coupled first order differential equation are solved analytically.~ Auxiliary equation of the the coupled homogeneous differential equation is given by: @@ -343,17 +343,17 @@ \subsubsection{Thermal Network Model:}\label{thermal-network-model} The steady state cover heat balance equation is given by: \begin{equation} -{q_{LWR,{\kern 1pt} 1}} + {q_{CONV,{\kern 1pt} 1}} + {q_{solar,{\kern 1pt} abs}} + {q_{LWR,{\kern 1pt} 2}} + {q_{CONV,{\kern 1pt} 2}} = 0 +{q_{LWR, 1}} + {q_{CONV, 1}} + {q_{solar, abs}} + {q_{LWR, 2}} + {q_{CONV, 2}} = 0 \end{equation} Linearizing the longwave radiation exchange and representing the convection terms using the classical equation for Newton's law of cooling, the equations for the temperatures of covers 1 and 2 are given by: \begin{equation} -{T_{c{\rm{1}}}} = \frac{{{\alpha_{c1}}{I_t} + {h_{r,{\kern 1pt} c1 - a}}{T_a} + {h_{c,{\kern 1pt} c1 - a}}{T_a} + {h_{r,{\kern 1pt} c2 - c1}}{T_{c2}} + {h_{c,{\kern 1pt} c2 - c1}}{T_{c2}}}}{{{h_{r,{\kern 1pt} c1 - a}} + {h_{c,{\kern 1pt} c1 - a}} + {h_{r,{\kern 1pt} c2 - c1}} + {h_{c,{\kern 1pt} c2 - c1}}}} +{T_{c{\mathrm{1}}}} = \frac{{{\alpha_{c1}}{I_t} + {h_{r, c1 - a}}{T_a} + {h_{c, c1 - a}}{T_a} + {h_{r, c2 - c1}}{T_{c2}} + {h_{c, c2 - c1}}{T_{c2}}}}{{{h_{r, c1 - a}} + {h_{c, c1 - a}} + {h_{r, c2 - c1}} + {h_{c, c2 - c1}}}} \end{equation} \begin{equation} -{T_{c2}} = \frac{{{\alpha_{c2}}{I_t} + {h_{r,{\kern 1pt} c2 - c1}}{T_{c1}} + {h_{c,{\kern 1pt} c2 - c1}}{T_{c1}} + {h_{r,{\kern 1pt} p - c2}}{T_p} + {h_{c,{\kern 1pt} p - c2}}{T_p}}}{{{h_{r,{\kern 1pt} c2 - c1}} + {h_{c,{\kern 1pt} c2 - c1}} + {h_{r,{\kern 1pt} p - c2}} + {h_{c,{\kern 1pt} p - c2}}}} +{T_{c2}} = \frac{{{\alpha_{c2}}{I_t} + {h_{r, c2 - c1}}{T_{c1}} + {h_{c, c2 - c1}}{T_{c1}} + {h_{r, p - c2}}{T_p} + {h_{c, p - c2}}{T_p}}}{{{h_{r, c2 - c1}} + {h_{c, c2 - c1}} + {h_{r, p - c2}} + {h_{c, p - c2}}}} \end{equation} where: @@ -397,25 +397,25 @@ \subsubsection{Other Side Condition Model}\label{other-side-condition-model} Ignoring thermal mass of the collector bottom insulation, steady state surface heat balance can be formulated on the outer plane of the collector bottom surface facing the cavity as shown in Figure~\ref{fig:illustration-for-other-side-condition-model}.~ The heat balance equation on the outer plane of the collector bottom surface is given by: \begin{equation} -{q_{cond}} + {q_{conv,{\kern 1pt} cav}} + {q_{rad,{\kern 1pt} cav}} = 0 +{q_{cond}} + {q_{conv, cav}} + {q_{rad, cav}} = 0 \end{equation} Substituting the equations for each term in the above equation yields: \begin{equation} -U_L \left( T_w - T_{osc} \right) + h_{c,{\kern 1pt} cav} \left( T_{a,{\kern 1pt} cav} - T_{osc} \right) + h_{r,{\kern 1pt} cav} \left( T_{so} - T_{osc} \right) = 0 +U_L \left( T_w - T_{osc} \right) + h_{c, cav} \left( T_{a, cav} - T_{osc} \right) + h_{r, cav} \left( T_{so} - T_{osc} \right) = 0 \end{equation} Simplifying yields the bottom insulation other side condition temperature: \begin{equation} -{T_{osc}} = \frac{{{U_L}{T_w} + {h_{c,{\kern 1pt} cav}}{T_{a,{\kern 1pt} cav}} + {h_{r,{\kern 1pt} cav}}{T_{so}}}}{{{U_L} + {h_{c,{\kern 1pt} cav}} + {h_{r,{\kern 1pt} cav}}}} +{T_{osc}} = \frac{{{U_L}{T_w} + {h_{c, cav}}{T_{a, cav}} + {h_{r, cav}}{T_{so}}}}{{{U_L} + {h_{c, cav}} + {h_{r, cav}}}} \end{equation} The cavity air temperature is determined from cavity air heat balance as follows: \begin{equation} -{T_{a,{\kern 1pt} cav}} = \frac{{{h_{c,{\kern 1pt} cav}}A{T_{osc}} + {{\dot m}_{vent}}Cp{T_a} + {h_{c,{\kern 1pt} cav}}A{T_{so}}}}{{{h_{c,{\kern 1pt} cav}}A + {{\dot m}_{vent}}Cp + {h_{c,{\kern 1pt} cav}}A}} +{T_{a, cav}} = \frac{{{h_{c, cav}}A{T_{osc}} + {{\dot m}_{vent}}Cp{T_a} + {h_{c, cav}}A{T_{so}}}}{{{h_{c, cav}}A + {{\dot m}_{vent}}Cp + {h_{c, cav}}A}} \end{equation} where: @@ -441,7 +441,7 @@ \subsubsection{Heat Transfer Coefficients}\label{heat-transfer-coefficients} The equations used to determine for the various heat transfer coefficients in the absorber and water heat balance equations are given below. The absorbed solar energy is transferred to the water by convection.~ Assuming natural convection dominated heat transfer for a hot surface facing down and a clod surface facing down the following correlation for Nusselt number by Fujii and Imura (1972).~ The Nusselt number for hot surface facing down ward is given by: \begin{equation} -Nu = 0.56{\left( {Gr \cdot \Pr \cdot cos{\kern 1pt} \theta } \right)^{1/5}}\quad {10^5} < Gr \cdot Pr < {10^{11}} +Nu = 0.56{\left( {Gr \cdot \Pr \cdot cos \theta } \right)^{1/5}}\quad {10^5} < Gr \cdot Pr < {10^{11}} \end{equation} The Nusselt number for hot surface upward and cold surface facing down is given by: @@ -455,11 +455,11 @@ \subsubsection{Heat Transfer Coefficients}\label{heat-transfer-coefficients} \end{equation} \begin{equation} -Gr = {{g{\beta_{\rm{v}}}\left( {{T_p} - {T_w}} \right)L_c^3} \mathord{\left/ {\vphantom {{g{\beta_{\rm{v}}}\left( {{T_p} - {T_w}} \right)L_c^3} {{\nu ^2}}}} \right. } {{\nu ^2}}} +Gr = {\frac{{g{\beta_{\mathrm{v}}}\left( {{T_p} - {T_w}} \right)L_c^3}}{{\nu ^2}}} \end{equation} \begin{equation} -\Pr = {\nu \mathord{\left/ {\vphantom {\nu \alpha }} \right. } \alpha } +\Pr = {\frac{\nu}{\alpha} } \end{equation} \begin{equation} @@ -467,7 +467,7 @@ \subsubsection{Heat Transfer Coefficients}\label{heat-transfer-coefficients} \end{equation} \begin{equation} -{h_w} = {{Nu \cdot k} \mathord{\left/ {\vphantom {{Nu \cdot k} {{L_c}}}} \right. } {{L_c}}} +{h_w} = {\frac{{Nu \cdot k}}{{L_c}}} \end{equation} where: @@ -497,11 +497,11 @@ \subsubsection{Heat Transfer Coefficients}\label{heat-transfer-coefficients} The various radiation and convection heat transfer coefficients are given by the following equations.~ The convection heat transfer coefficients between the covers and the absorber plate are estimated from the empirical correlation for the Nusselt number for air gap between two parallel plates developed by Hollands et al. (1976) is: \begin{equation} -N{u_a} = 1 + 1.44\left\{ {1 - \frac{{1708{{\left( {\sin 1.8\beta } \right)}^{1.6}}}}{{Ra\cos \beta }}} \right\}{\left\{ {1 - \frac{{1708}}{{Ra\cos \beta }}} \right\}} + {\left\{ {{{\left( {\frac{{Ra\cos \beta }}{{5830}}} \right)}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} - 1} \right\}} +N{u_a} = 1 + 1.44\left\{ {1 - \frac{{1708{{\left( {\sin 1.8\beta } \right)}^{1.6}}}}{{Ra\cos \beta }}} \right\}{\left\{ {1 - \frac{{1708}}{{Ra\cos \beta }}} \right\}} + {\left\{ {{{\left( {\frac{{Ra\cos \beta }}{{5830}}} \right)}^{{\frac{1}{3}}}} - 1} \right\}} \end{equation} \begin{equation} -{h_c} = {{Nu \cdot k} \mathord{\left/ {\vphantom {{Nu \cdot k} L}} \right. } L} +{h_c} = {\frac{{Nu \cdot k}}{L}} \end{equation} \begin{equation} @@ -817,7 +817,7 @@ \subsubsection{Kutscher Correlation}\label{kutscher-correlation} The correlation is a function of Reynolds number, hole geometry, the free stream air velocity, and velocity through the holes: \begin{equation} -N{u_D} = 2.75\left[ {{{\left( {\frac{P}{D}} \right)}^{ - 1.2}}{\mathop{\rm Re}\nolimits}_D^{0.43} + 0.011\sigma {{{\mathop{\rm Re}\nolimits} }_D}{{\left( {\frac{{{U_\infty }}}{{{V_h}}}} \right)}^{0.48}}} \right] +N{u_D} = 2.75\left[ {{{\left( {\frac{P}{D}} \right)}^{ - 1.2}}\operatorname{Re}_D^{0.43} + 0.011\sigma {{\operatorname{Re} }_D}{{\left( {\frac{{{U_\infty }}}{{{V_h}}}} \right)}^{0.48}}} \right] \end{equation} where: @@ -858,8 +858,8 @@ \subsubsection{Van Decker, Hollands, and Brunger Correlation}\label{van-decker-h \begin{equation} \begin{split} -{\varepsilon_{HX}} =& \left[ {1 - \left( {1 + {{{\mathop{\rm Re}\nolimits} }_s}Max{{\left( {1.733{\mathop{\rm Re}\nolimits}_w^{ - {\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 2}}\right.}\!\lower0.7ex\hbox{2}}},0.02136} \right)}^{ - 1}}} \right)} \right] \times \left[ {1 - {{\left( {1 + 0.2273{\mathop{\rm Re}\nolimits}_b^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 2}}\right.}\!\lower0.7ex\hbox{2}}}} \right)}^{ - 1}}} \right] \\ -&\times {e^{\left( { - 0.01895\frac{P}{D} - \frac{{20.62}}{{{{{\mathop{\rm Re}\nolimits} }_D}}}\frac{t}{D}} \right)}} +{\varepsilon_{HX}} =& \left[ {1 - \left( {1 + {{\operatorname{Re} }_s}Max{{\left( {1.733\operatorname{Re}_w^{ - {\frac{1}{2}}},0.02136} \right)}^{ - 1}}} \right)} \right] \times \left[ {1 - {{\left( {1 + 0.2273\operatorname{Re}_b^{{\frac{1}{2}}}} \right)}^{ - 1}}} \right] \\ +&\times {e^{\left( { - 0.01895\frac{P}{D} - \frac{{20.62}}{{{{\operatorname{Re} }_D}}}\frac{t}{D}} \right)}} \end{split} \end{equation} @@ -892,13 +892,13 @@ \subsubsection{Heat Exchanger Leaving Temperature}\label{heat-exchanger-leaving- where: -\({T_{{\rm{a,HX}}}}\) is the temperature of the air leaving the collector and entering the plenum (\(^{\circ}\)C) +\({T_{{\mathrm{a,HX}}}}\) is the temperature of the air leaving the collector and entering the plenum (\(^{\circ}\)C) \({T_{s,coll}}\) is the temperature of the collector's absorber plate (\(^{\circ}\)C) \({T_{amb}}\) is the temperature of the ambient outdoor air (\(^{\circ}\)C). -By rewriting Equation~\ref{eq:SolarCollectorHXEffect716} to solve for \({T_{{\rm{a,HX}}}}\), we see that the temperature of the heated outdoor air entering the plenum can be determined once the collector surface temperature is known: +By rewriting Equation~\ref{eq:SolarCollectorHXEffect716} to solve for \({T_{{\mathrm{a,HX}}}}\), we see that the temperature of the heated outdoor air entering the plenum can be determined once the collector surface temperature is known: \begin{equation} {T_{a,HX}} = {\varepsilon_{HX}}{T_{s,coll}} + \left( {1 - {\varepsilon_{HX}}} \right){T_{amb}} @@ -977,7 +977,7 @@ \subsubsection{Heat Exchanger}\label{heat-exchanger} {q''_{HX}} = \frac{{\dot m{c_p}({T_{a,HX}} - {T_{amb}})}}{A} \end{equation} -where \({T_{{\rm{a,HX}}}}\) is determined using correlations described above.~ When the UTSC is active, the air mass flow is determined from the operation of the outdoor air mixer component.~ When the UTSC is off, this term is zero. +where \({T_{{\mathrm{a,HX}}}}\) is determined using correlations described above.~ When the UTSC is active, the air mass flow is determined from the operation of the outdoor air mixer component.~ When the UTSC is off, this term is zero. \subsubsection{Plenum LW Radiation}\label{plenum-lw-radation} @@ -1094,25 +1094,25 @@ \subsubsection{Plenum Heat Balance}\label{plenum-heat-balance} The literature on UTSC does not appear to address the passive mode of operation and no models for \({\dot m_{vent}}\) have been identified.~ Nevertheless, natural buoyancy and wind forces are expected to drive air exchange between the plenum and ambient and some method of modeling \({\dot m_{vent}}\) is needed.~ Reasoning that the configuration is similar to single-side natural ventilation, we elect to use correlations for natural ventilation presented in Chapter 26 of the ASHRAE Handbook of Fundamentals (2001). \begin{equation} -{\dot m_{vent}} = \rho {{\rm{\rlap{--} \dot V}}_{{\rm{tot}}}} +{\dot m_{vent}} = \rho {{\overline{\dot V}}_{{\mathrm{tot}}}} \end{equation} where: \(\rho\) is the density of air (kg/m\(^{3}\)) -\({{\rm{\rlap{--} \dot V}}_{{\rm{tot}}}} = {{\rm{\rlap{--} \dot V}}_{{\rm{wind}}}} + \,{{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}}\) is the total volumetric flow rate of air ventilating in and out of the plenum (m\(^{3}\)/s) +\({{\overline{\dot V}}_{{\mathrm{tot}}}} = {{\overline{\dot V}}_{{\mathrm{wind}}}} + \,{{\overline{\dot V}}_{{\mathrm{thermal}}}}\) is the total volumetric flow rate of air ventilating in and out of the plenum (m\(^{3}\)/s) \begin{equation} -{{\rm{\rlap{--} \dot V}}_{{\rm{wind}}}} = {C_v}{A_{in}}{U_\infty } +{{\overline{\dot V}}_{{\mathrm{wind}}}} = {C_v}{A_{in}}{U_\infty } \end{equation} \begin{equation} -{{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{a,plen}} - {T_{amb}}} \right)/{T_{a,plen}}} ~ (if~{T_{a,plen}} > {T_{amb}} ) +{{\overline{\dot V}}_{{\mathrm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{a,plen}} - {T_{amb}}} \right)/{T_{a,plen}}} ~ (if~{T_{a,plen}} > {T_{amb}} ) \end{equation} \begin{equation} -{{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{amb}} - {T_{a,plen}}} \right)/{T_{amb}}} ~ (if~{T_{amb}} > {T_{a,plen}} ~ and~UTSC~vertical) +{{\overline{\dot V}}_{{\mathrm{thermal}}}} = {C_D}{A_{in}}\sqrt {2g\Delta {H_{NPL}}\left( {{T_{amb}} - {T_{a,plen}}} \right)/{T_{amb}}} ~ (if~{T_{amb}} > {T_{a,plen}} ~ and~UTSC~vertical) \end{equation} where: @@ -1131,7 +1131,7 @@ \subsubsection{Plenum Heat Balance}\label{plenum-heat-balance} \(\Delta {H_{NPL}}\) is the height from midpoint of lower opening to the Neutral Pressure Level.~ This is taken as one-fourth the overall height of the UTSC if it is mounted vertically.~ For tilted collectors, the nominal height is modified by the sine of the tilt.~ If the UTSC is mounted horizontally (e.g.~on the roof) then the \(\Delta {H_{NPL}}\) is taken as the gap thickness of the plenum. -If the UTSC is horizontal and \({T_{amb}} > {T_{a,plen}}\), then \({{\rm{\rlap{--} \dot V}}_{{\rm{thermal}}}}{\rm{ = 0}}\) because this is a stable situation. +If the UTSC is horizontal and \({T_{amb}} > {T_{a,plen}}\), then \({{\overline{\dot V}}_{{\mathrm{thermal}}}}{\mathrm{ = 0}}\) because this is a stable situation. \subsubsection{Underlying Heat Transfer Surface}\label{underlying-heat-transfer-surface-000} @@ -1310,7 +1310,7 @@ \subsubsection{Energy Balance}\label{BIPVT-energy-balance} Fluid (air) in cavity: \begin{equation} -\dot{m}C_{p}\frac{dT_{f}}{dx}=\left[h_{conv,f1}\left(T_{1}-T_{f}\right)+h_{conv,f2}\left(T_{2}-T_{f}\right)\right]\cdot W +\dot{m}C_{p}\frac{dT_{f}}{dx}=\left[h_{conv,f1}\left(T_{1}-T_{f}\right)+h_{conv,f2}\left(T_{2}-T_{f}\right)\right]\cdot {W} \label{eq:BIPVT-cavity-air} \end{equation} @@ -1575,7 +1575,7 @@ \subsubsection{Solving energy balance equations for positive flow condition}\lab re-arranging equation~\ref{eq:BIPVT-cavity-air} yields: \begin{equation} -\frac{dT_f}{dx}=A\cdot T_f+B +\frac{dT_f}{dx}=A\cdot T_f+{B} \label{eq:BIPVT-dtdx} \end{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/occupant-thermal-comfort.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/occupant-thermal-comfort.tex index b2566cb3b4e..5e28f975d8e 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/occupant-thermal-comfort.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/occupant-thermal-comfort.tex @@ -1061,13 +1061,13 @@ \subsection{Dynamic Clothing Model}\label{dynamic-clothing-model} For -5\(^{\circ}\)C \(\leq\) \(t_{a(out,6)}\) \textless{} 5\(^{\circ}\)C: \begin{equation} -{I_{cl}} = 0.818 - 0.0364{\rm{*}}{t_{a\left( {out,6} \right)}} +{I_{cl}} = 0.818 - 0.0364{\mathrm{*}}{t_{a\left( {out,6} \right)}} \end{equation} For 5\(^{\circ}\)C \(\leq\) t\(_{a(out,6)}\) \textless{} 26\(^{\circ}\)C: \begin{equation} -{I_{cl}} = {10^{\left( { - 0.1635 - 0.0066{\rm{*}}{t_{a\left( {out,6} \right)}}} \right)}} +{I_{cl}} = {10^{\left( { - 0.1635 - 0.0066{\mathrm{*}}{t_{a\left( {out,6} \right)}}} \right)}} \end{equation} Or for t\(_{a(out,6)}\) \(\geq\) 26\(^{\circ}\)C: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex index c6c4dccef96..4c000ca68cb 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex @@ -156,7 +156,7 @@ \subsubsection{Energy Balance}\label{energy-balance} Since the control algorithm must sometimes calculate the time needed to reach a specified temperature, the equations above can also be rearranged to solve for \emph{t}. \begin{equation} -t = \frac{1}{b}\ln \left( {\frac{{{\raise0.7ex\hbox{a} \!\mathord{\left/ {\vphantom {a b}}\right.}\!\lower0.7ex\hbox{b}} + {T_f}}}{{{\raise0.7ex\hbox{a} \!\mathord{\left/ {\vphantom {a b}}\right.}\!\lower0.7ex\hbox{b}} + {T_i}}}} \right) +t = \frac{1}{b}\ln \left( {\frac{{{\frac{a}{b}} + {T_f}}}{{{\frac{a}{b}} + {T_i}}}} \right) \end{equation} or, if \emph{b} = 0: @@ -461,28 +461,28 @@ \subsubsection{Model Outputs}\label{model-outputs-000} After completing the float mode or heating mode calculations and the final part-load ratio has been determined, the output (report) variables are calculated as follows: \begin{equation} -Heat~Pump~Water~Heater~Compressor~Part{\rm{ - }}Load~Ratio = PLR +Heat~Pump~Water~Heater~Compressor~Part{\mathrm{ - }}Load~Ratio = PLR \end{equation} \begin{equation} -Heat~Pump~Water~Heater~On{\rm{ - }}Cycle~Parasitic~Electric~Power~(W) = {P_{parasitic,on}}\left( {PLR} \right) +Heat~Pump~Water~Heater~On{\mathrm{ - }}Cycle~Parasitic~Electric~Power~(W) = {P_{parasitic,on}}\left( {PLR} \right) \end{equation} \begin{equation} \begin{split} -Heat~Pump~Water~Heater~On{\rm{ - }}Cycle~Parasitic~Electric~Consumption~(J) = \\{P_{parasitic,on}}\left( {PLR} \right)\left( {3600} \right){t_{sys}} +Heat~Pump~Water~Heater~On{\mathrm{ - }}Cycle~Parasitic~Electric~Consumption~(J) = \\{P_{parasitic,on}}\left( {PLR} \right)\left( {3600} \right){t_{sys}} \end{split} \end{equation} \begin{equation} \begin{split} -Heat~Pump~Water~Heater~Off{\rm{ - }}Cycle~Parasitic~Electric~Power~(W) = \\{P_{parasitic,off}}\left( {1 - PLR} \right) +Heat~Pump~Water~Heater~Off{\mathrm{ - }}Cycle~Parasitic~Electric~Power~(W) = \\{P_{parasitic,off}}\left( {1 - PLR} \right) \end{split} \end{equation} \begin{equation} \begin{split} -Heat~Pump~Water~Heater~Off{\rm{ - }}Cycle~Parasitic~Electric~Consumption~(J) = \\{P_{parasitic,off}}\left( {1 - PLR} \right)\left( {3600} \right)\left( {{t_{sys}}} \right) +Heat~Pump~Water~Heater~Off{\mathrm{ - }}Cycle~Parasitic~Electric~Consumption~(J) = \\{P_{parasitic,off}}\left( {1 - PLR} \right)\left( {3600} \right)\left( {{t_{sys}}} \right) \end{split} \end{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex index cb7910676d8..6cd54a20965 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex @@ -2195,7 +2195,7 @@ \subsection{Earthtube}\label{earthtube} Assuming a homogeneous soil of constant thermal diffusivity, the temperature at any depth z and time t can be estimated by the following expression: \begin{equation} -{T_{z,t}} = {T_m} - {A_s}\exp \left[ { - z{{\left( {\frac{\pi }{{{\rm{365}}{\alpha_s}}}} \right)}^{1/2}}} \right]\cos \left\{ {\frac{{2\pi }}{{{\rm{365}}}}\left[ {t - {t_0} - \frac{z}{2}{{\left( {\frac{{{\rm{365}}}}{{\pi {\alpha_s}}}} \right)}^{1/2}}} \right]} \right\} +{T_{z,t}} = {T_m} - {A_s}\exp \left[ { - z{{\left( {\frac{\pi }{{{\mathrm{365}}{\alpha_s}}}} \right)}^{1/2}}} \right]\cos \left\{ {\frac{{2\pi }}{{{\mathrm{365}}}}\left[ {t - {t_0} - \frac{z}{2}{{\left( {\frac{{{\mathrm{365}}}}{{\pi {\alpha_s}}}} \right)}^{1/2}}} \right]} \right\} \end{equation} In this expression, the unit of time, \emph{t}, and phase constant of the soil surface, \(t_{0}\), should be converted into days. Similarly, the unit of soil thermal diffusivity, \({\alpha_{s}}\), should also be converted into m\(^{2}\)/days. @@ -2219,15 +2219,15 @@ \subsection{Earthtube}\label{earthtube} \end{equation} \begin{equation} -Nu = \frac{{({f_a}/2)({\mathop{\rm Re}\nolimits} - 1000)\Pr }}{{1 + 12.7{{({f_a}/2)}^{1/2}}({{\Pr }^{2/3}} - 1)}} +Nu = \frac{{({f_a}/2)(\operatorname{Re} - 1000)\Pr }}{{1 + 12.7{{({f_a}/2)}^{1/2}}({{\Pr }^{2/3}} - 1)}} \end{equation} \begin{equation} -{f_a} = {(1.58\ln {\mathop{\rm Re}\nolimits} - 3.28)^{ - 2}} +{f_a} = {(1.58\ln \operatorname{Re} - 3.28)^{ - 2}} \end{equation} \begin{equation} - \mathop{\rm Re}\nolimits = \frac{{2{r_1}{V_a}}}{\nu } + \mathop\mathrm{Re}\nolimits = \frac{{2{r_1}{V_a}}}{\nu } \end{equation} \begin{equation} @@ -2800,7 +2800,7 @@ \subsection{Controls}\label{controls-2-000} \textbf{\emph{Temperature Control}}.~ If the user selects temperature control, the intent is to limit the outlet temperature of the unit for either heating or cooling or both or perhaps to provide unconditioned air to the space.~ The algorithm used to determine the outlet temperature of the unit is as follows.~ When the outdoor air temperature is at or below the low air temperature control schedule value, the outlet temperature is set to the low air temperature control schedule value and any heating equipment included in the unit description and available will attempt to provide enough heating to produce an outlet temperature equal to the low temperature schedule value.~ When the outdoor air temperature is at or above the high air temperature control schedule value, the outlet temperature of the unit is set to the high air temperature control schedule value and any cooling equipment included in the unit description and available will attempt to provide enough cooling to produce an outlet air temperature equal to the high temperature schedule value.~ When the outdoor air temperature is between the high and low temperature values, the unit will not provide any conditioning of outdoor air and will simply deliver it to the zone.~ Mathematically, this can be summarized as: \begin{equation} -{T_{out}} = \left\{ {\begin{array}{*{20}{c}}{{T_{high}}~~~~if~{T_{oa}} \ge {T_{high}}}\\ {{T_{oa}}~~~~if~{T_{low}} < {T_{oa}} < {T_{high}}}\\ {{T_{low}}~~~~if~{T_{oa}} \le {T_{low}}}\end{array}} \right. +{T_{out}} = \left\{ {\begin{array}{ccc}{{T_{high}}~~~~if~{T_{oa}} \ge {T_{high}}}\\ {{T_{oa}}~~~~if~{T_{low}} < {T_{oa}} < {T_{high}}}\\ {{T_{low}}~~~~if~{T_{oa}} \le {T_{low}}}\end{array}} \right. \end{equation} where: @@ -2832,7 +2832,7 @@ \subsection{Zone Exhaust Fan}\label{zone-exhaust-fan} The exhaust fan model is similar to, but simpler than, the models used for air system fans.~ The electric power calculation is simplified and uses a constant overall efficiency.~ All of the fan power is added to the air stream. \begin{equation} -{\dot Q_{fan}} = \frac{{\dot m{\rm{}}\Delta P}}{{{e_{tot}}{\rho_{air}}}} +{\dot Q_{fan}} = \frac{{\dot m{\mathrm{}}\Delta P}}{{{e_{tot}}{\rho_{air}}}} \end{equation} \begin{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex index 93736790427..6f8ebac73d4 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex @@ -348,7 +348,7 @@ \subsubsection{Simulation and Control}\label{simulation-and-control-2} Finally the unit sensible output is calculated: \begin{equation} -{\dot Q_{sens,out}} = {\rm{PsyHFnTdbW}}({T_{air,out}},{W_z}) - {\rm{PsyHFnTdbW(}}{T_z},{W_z}) +{\dot Q_{sens,out}} = {\mathrm{PsyHFnTdbW}}({T_{air,out}},{W_z}) - {\mathrm{PsyHFnTdbW(}}{T_z},{W_z}) \end{equation} where \emph{PsyHFnTdb} is the EnergyPlus function giving enthalpy as a function of temperature and humidity ratio. @@ -405,7 +405,7 @@ \subsubsection{Simulation and Control}\label{simulation-and-control-2} Finally the unit sensible output is calculated: \begin{equation} -{\dot Q_{sens,out}} = {\rm{PsyHFnTdbW}}({T_{air,out}},{W_z}) - {\rm{PsyHFnTdbW(}}{T_z},{W_z}) +{\dot Q_{sens,out}} = {\mathrm{PsyHFnTdbW}}({T_{air,out}},{W_z}) - {\mathrm{PsyHFnTdbW(}}{T_z},{W_z}) \end{equation} where \emph{PsyHFnTdb} is the EnergyPlus function giving enthalpy as a function of temperature and humidity ratio. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex index 1567d9aadb9..87bb5799b68 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex @@ -457,7 +457,7 @@ \subsection{Combustion Turbine Chiller}\label{combustion-turbine-chiller} where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} = \frac{{{\rm{TempCondIn - TempCondInDesign }}}}{{{\rm{TempRiseCoefficient}}}} - ({\rm{TempEvapOut - TempEvapOutDesign)}} +{\Delta_{{\mathrm{Temp}}}} = \frac{{{\mathrm{TempCondIn - TempCondInDesign }}}}{{{\mathrm{TempRiseCoefficient}}}} - ({\mathrm{TempEvapOut - TempEvapOutDesign)}} \end{equation} where: @@ -631,7 +631,7 @@ \subsubsection{Cooling}\label{cooling} The fraction of the time step during which the chiller heater is operating is computed as a function of the cooling and heating part-load ratios and the user-input minimum part-load ratio: \begin{equation} -RunFrac = {\mathop{\rm MIN}\nolimits} \left( {1.0,{\mathop{\rm MAX}\nolimits} \left( {HPLR,CPLR} \right)/MinPLR} \right) +RunFrac = \operatorname{MIN} \left( {1.0,\operatorname{MAX} \left( {HPLR,CPLR} \right)/MinPLR} \right) \end{equation} The cooling fuel input to the chiller is then computed as follows: @@ -663,7 +663,7 @@ \subsubsection{Cooling}\label{cooling} The condenser load is computed as follows: \begin{equation} -CondenserLoad = CoolingLoad + {\raise0.7ex\hbox{{CoolFuelInput}} \!\mathord{\left/ {\vphantom {{CoolFuelInput} {HFIR}}}\right.}\!\lower0.7ex\hbox{{HFIR}}} + CoolElectricPower +CondenserLoad = CoolingLoad + {\frac{{CoolFuelInput}}{{HFIR}}} + CoolElectricPower \end{equation} \subsubsection{Heating}\label{heating} @@ -737,7 +737,7 @@ \subsubsection{Heating}\label{heating} The fraction of the time step during which the chiller is operating is computed as a function of the cooling and heating part-load ratios and the user-input minimum part-load ratio: \begin{equation} -RunFrac = {\mathop{\rm MIN}\nolimits} \left( {1.0,{\mathop{\rm MAX}\nolimits} \left( {HPLR,CPLRh} \right)/MinPLR} \right) +RunFrac = \operatorname{MIN} \left( {1.0,\operatorname{MAX} \left( {HPLR,CPLRh} \right)/MinPLR} \right) \end{equation} The heating electric input to the chiller is computed as follows: @@ -886,7 +886,7 @@ \subsubsection{Cooling}\label{cooling-1} To make sure that the exhaust mass flow rate and temperature from microturbine are sufficient to drive the chiller, the heat recovery potential is compared with the cooling thermal energy input to the chiller (CoolThermalEergyInput). The heat recovery potential should be greater than the CoolThermalEnergyInput. Heat recovery potential is calculated as: \begin{equation} -{Q_{Recovery}} = {\dot m_{ExhAir}} \cdot {\rm{}}C{p_{Air}} \cdot {\rm{}}({T_{a,o}} - {T_{Abs,gen,o}}) +{Q_{Recovery}} = {\dot m_{ExhAir}} \cdot {\mathrm{}}C{p_{Air}} \cdot {\mathrm{}}({T_{a,o}} - {T_{Abs,gen,o}}) \end{equation} T\(_{abs,gen,o}\) is the minimum temperature required for the proper operation of the double-effect chiller. It will be defaulted to 176\(^{\circ}\)C. @@ -1116,17 +1116,17 @@ \subsection{Hot Water Heat Recovery from Chillers}\label{hot-water-heat-recovery If no control setpoint node was named, then the model developed by Liesen and Chillar (2004) is used to approximate the relative distribution of refrigerant flow and condenser heat transfer between the bundles.~ This model approximates the heat transfer situation by using average temperatures in and out of the condenser section. \begin{equation} -{Q_{Tot}} = ({\dot m_{Heat{\mathop{\rm Re}\nolimits} c}}*{C_{p,Heat{\mathop{\rm Re}\nolimits} c}} + {\dot m_{Cond}}*{C_{p,Cond}})*({T_{AvgOut}} - {T_{AvgIn}}) +{Q_{Tot}} = ({\dot m_{Heat\operatorname{Re} c}}*{C_{p,Heat\operatorname{Re} c}} + {\dot m_{Cond}}*{C_{p,Cond}})*({T_{AvgOut}} - {T_{AvgIn}}) \end{equation} Then the inlet temperature is flow-weighted to determine lumped inlet and outlet conditions. \begin{equation} -{T_{AvgIn}} = \frac{{({{\dot m}_{Heat{\mathop{\rm Re}\nolimits} c}}*{C_{p,Heat{\mathop{\rm Re}\nolimits} c}}*{T_{Heat{\mathop{\rm Re}\nolimits} cIn}} + {{\dot m}_{Cond}}*{C_{p,Cond}}*{T_{CondIn}})}}{{({{\dot m}_{Heat{\mathop{\rm Re}\nolimits} c}}*{C_{p,Heat{\mathop{\rm Re}\nolimits} c}} + {{\dot m}_{Cond}}*{C_{p,Cond}})}} +{T_{AvgIn}} = \frac{{({{\dot m}_{Heat\operatorname{Re} c}}*{C_{p,Heat\operatorname{Re} c}}*{T_{Heat\operatorname{Re} cIn}} + {{\dot m}_{Cond}}*{C_{p,Cond}}*{T_{CondIn}})}}{{({{\dot m}_{Heat\operatorname{Re} c}}*{C_{p,Heat\operatorname{Re} c}} + {{\dot m}_{Cond}}*{C_{p,Cond}})}} \end{equation} \begin{equation} -{T_{AvgOut}} = \frac{{{Q_{Tot}}}}{{({{\dot m}_{Heat{\mathop{\rm Re}\nolimits} c}}*{C_{p,Heat{\mathop{\rm Re}\nolimits} c}} + {{\dot m}_{Cond}}*{C_{p,Cond}})}} + {T_{AvgIn}} +{T_{AvgOut}} = \frac{{{Q_{Tot}}}}{{({{\dot m}_{Heat\operatorname{Re} c}}*{C_{p,Heat\operatorname{Re} c}} + {{\dot m}_{Cond}}*{C_{p,Cond}})}} + {T_{AvgIn}} \end{equation} The lumped outlet temperature is then used for an approximate method of determining the heat recovery rate @@ -1509,15 +1509,15 @@ \subsubsection{Standard Rating (Integrated Part Load Value)}\label{standard-rati EER at desired reduced capacity (75\%, 50\%, and 25\%) is calculated as follows \begin{equation} -COP = \frac{{\rm{1}}}{{EIR}} +COP = \frac{{\mathrm{1}}}{{EIR}} \end{equation} \begin{equation} -EIR = EnergyInputRatio = \left( {\frac{{{\rm{Power }}}}{{{\rm{PartLoadRatio * AvailChillerCap}}}}} \right) +EIR = EnergyInputRatio = \left( {\frac{{{\mathrm{Power }}}}{{{\mathrm{PartLoadRatio * AvailChillerCap}}}}} \right) \end{equation} \begin{equation} -Power = \left( {\frac{{{\rm{AvailChillerCap}}}}{{CO{P_{reference}}}}} \right)(EIRTempModFa{c_{ReducedTemp}})(EIRPLRModFa{c_{ReducedPLR}}) +Power = \left( {\frac{{{\mathrm{AvailChillerCap}}}}{{CO{P_{reference}}}}} \right)(EIRTempModFa{c_{ReducedTemp}})(EIRPLRModFa{c_{ReducedPLR}}) \end{equation} \begin{equation} @@ -1539,7 +1539,7 @@ \subsubsection{Standard Rating (Integrated Part Load Value)}\label{standard-rati If the equipment cannot be unloaded to the desired reduced capacity (75\%, 50\%, and 25\%) i.e.~if the minimum unloading ratio of the chiller is greater than desired reduced capacity, then the model is run at the minimum unloading PLR of the equipment at the condenser entering conditions defined in Table~\ref{table:standard-rating-integrated-part-load-value} and the efficiency is adjusted for cyclic performance. \begin{equation} -COP = \frac{{\rm{1}}}{{{C_D} \cdot EIRatMinPLR}} +COP = \frac{{\mathrm{1}}}{{{C_D} \cdot EIRatMinPLR}} \end{equation} where: @@ -1944,7 +1944,7 @@ \subsection{Engine Driven Chiller}\label{engine-driven-chiller} where T\(_{reference}\) is the reference temperature for the fuel lower heating value, and is given as 25\(^{\circ}\)C in manufacturer's data, and \begin{equation} -{T_{stack}} = {T_{DesignMinExhaust}} + {\frac{{\left( {{T_{exhaust}} - {T_{DesignMinExhaust}}} \right)}}{{{\rm{exp}}\left( {\frac{{{\rm{UA}}}}{{{{{\rm{\dot m}}}_{{\rm{exhaust}}}}C{p_{exhaust}}}}} \right)}}^2} +{T_{stack}} = {T_{DesignMinExhaust}} + {\frac{{\left( {{T_{exhaust}} - {T_{DesignMinExhaust}}} \right)}}{{{\mathrm{exp}}\left( {\frac{{{\mathrm{UA}}}}{{{{{\mathrm{\dot m}}}_{{\mathrm{exhaust}}}}C{p_{exhaust}}}}} \right)}}^2} \end{equation} Finally, heat recovered from the lube oil and the water jacket are accounted for as follows: diff --git a/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex b/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex index ea519de6ca0..71fd1d5f36f 100644 --- a/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex +++ b/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex @@ -7,7 +7,7 @@ \subsection{Receiving points}\label{receiving-points} An \emph{N}-sided surface is assigned \emph{N} receiving points with the following coordinates, expressed in terms of the surface vertex coordinates: \begin{equation} -{P_{ij}} = \sum\limits_{k = 1}^N {{a_{ki}}{v_{kj}},{\rm{ }}i = 1,3;{\rm{ }}j = 1,3} +{P_{ij}} = \sum\limits_{k = 1}^N {{a_{ki}}{v_{kj}},{\mathrm{ }}i = 1,3;{\mathrm{ }}j = 1,3} \end{equation} where diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex index 337de126883..7fb9794ac74 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex @@ -44,26 +44,26 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ \end{equation} % where: -\begin{wherelist} -\item[T] node temperature -\item[\Delta t] calculation time step -\item[\Delta x] finite difference layer thickness (always less +\begin{description} +\item[\(T =\)] node temperature +\item[\(\Delta t =\)] calculation time step +\item[\(\Delta x =\)] finite difference layer thickness (always less than construction layer thickness) -\item[C_p] specific heat of material -\item[k_W] thermal conductivity for interface between node $i$ and node $i+1$ -\item[k_E] thermal conductivity for interface between node $i$ and node $i-1$ -\item[\rho] density of material -\end{wherelist} +\item[\(C_p =\)] specific heat of material +\item[\(k_W =\)] thermal conductivity for interface between node $i$ and node $i+1$ +\item[\(k_E =\)] thermal conductivity for interface between node $i$ and node $i-1$ +\item[\(\rho =\)] density of material +\end{description} % with superscripts and subscripts: % -\begin{wherelist} -\item[i] node being modeled -\item[i+1] adjacent node to interior of construction -\item[i-1] adjacent node to exterior of construction -\item[j+1] new time step -\item[j] previous time step -\end{wherelist} +\begin{description} +\item[\(i =\)] node being modeled +\item[\(i+1 =\)] adjacent node to interior of construction +\item[\(i-1 =\)] adjacent node to exterior of construction +\item[\(j+1 =\)] new time step +\item[\(j =\)] previous time step +\end{description} % Then, this equation is accompanied by a second equation that relates enthalpy and temperature. @@ -145,7 +145,7 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ EnergyPlus also uses a separate, outer iteration loop across all the different inside surface heat balances so that internal long-wave radiation exchange can be properly solved. For CTF formulations, this iteration is controlled by a -maximum allowable temperature difference of \SI{0.002}\celsius\ for inside face +maximum allowable temperature difference of \SI{0.002}{\celsius} for inside face surface temperatures from one iteration to the next (or a limit of 100 iterations). CondFD uses the same default value for allowable temperature difference as CTF. However, this parameter was found to often need to be smaller for stability and @@ -162,9 +162,9 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ Iterations'' respectively. \begin{equation} -T\textsubscript{$i$,new} = T\textsubscript{$i$,old} - + \text{Relax}\left(T\textsubscript{$i$,new} - - T\textsubscript{$i$,old} \right) +T_{\text{$i$,new}} = T_{\text{$i$,old}} + + \text{Relax}\left(T_{\text{$i$,new}} + - T_{\text{$i$,old}} \right) \end{equation} Because of the iteration scheme used for CondFD, the node enthalpies get @@ -176,8 +176,8 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ from the tabulated input data of temperature/enthalpy pairs: \begin{equation} -Cp = \frac{h\textsubscript{$i$,new} - h\textsubscript{$i$,old}} - {T\textsubscript{$i$,new} - T\textsubscript{$i$,old}} +Cp = \frac{h_{\text{$i$,new}} - h_{\text{$i$,old}}} + {T_{\text{$i$,new}} - T_{\text{$i$,old}}} \end{equation} For inputs with MaterialProperty:PhaseChangeHysteresis, the specific heat is not @@ -185,9 +185,9 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ the hysteresis physics present between the melting and freezing processes. \begin{equation} -Cp = f\left(T\textsubscript{$i$,new}, T\textsubscript{$i$, prev}, - \text{PhaseState}\textsubscript{new}, - \text{PhaseState}\textsubscript{prev}\right) +Cp = f\left(T_{\text{$i$,new}}, T_{\text{$i$, prev}}, + \text{PhaseState}_{\text{new}}, + \text{PhaseState}_{\text{prev}}\right) \end{equation} The hysteresis model also has inputs for solid and liquid state values for @@ -206,9 +206,9 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ expand the freezing or melting regions accordingly. \item The total latent heat transferred during the phase transition process is set to 25000 J/kg -\item The peak freezing temperature is set to \SI{23}\celsius, where the +\item The peak freezing temperature is set to \SI{23}{\celsius}, where the freezing curve transition is centered. -\item The peak melting temperature is set to \SI{27}\celsius, where the +\item The peak melting temperature is set to \SI{27}{\celsius}, where the melting curve transition is centered. \end{itemize} @@ -233,12 +233,12 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ \end{equation} % where: -\begin{wherelist} -\item[k_o] is the \SI{20}\celsius\ value of thermal conductivity (normal IDF +\begin{description} +\item[\(k_o =\)] the \SI{20}{\celsius} value of thermal conductivity (normal IDF input) -\item[k_1] is the change in conductivity per degree temperature difference from -\SI{20}\celsius -\end{wherelist} +\item[\(k_1 =\)] the change in conductivity per degree temperature difference from +\SI{20}{\celsius} +\end{description} As of Version 7, the CondFD implementation was changed to evaluate the thermal conductivity at the interface between nodes, as shown below. In this case, @@ -276,7 +276,7 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ the phase change material in straight line segments with respect to temperature. A graph showing the effect of a large PCM on the outside surface of a zone is -shown below. The phase change temperature was \SI{30}\celsius, and the flat +shown below. The phase change temperature was \SI{30}{\celsius}, and the flat temperature response during the phase change is obvious. This example was run with a zone time step of one minute to show that such small time steps can be done with the finite difference solution technique. It is more efficient to set @@ -345,7 +345,7 @@ \subsection{Conduction Finite Difference Heat Flux Outputs}% calculated beginning with the inside face of the surface. \begin{equation} -\text{QDreport}_N = Q\textsubscript{inside} +\text{QDreport}_N = Q_{\text{inside}} \end{equation} % for the remaining nodes @@ -353,26 +353,26 @@ \subsection{Conduction Finite Difference Heat Flux Outputs}% \begin{align} \begin{split} \text{QDreport}_{i} = \text{QDreport}_{i+1} -+&\text{HeatCap1}_{i+1}\frac{T\textsubscript{$i+1$,new} - -T\textsubscript{$i+1$,old}}{\Delta t} \\ ++&\text{HeatCap1}_{i+1}\frac{T_{\text{$i+1$,new}} - +T_{\text{$i+1$,old}}}{\Delta t} \\ - \text{QSource}_{i} +&\text{HeatCap2}_{i} -\frac{T\textsubscript{$i$,new}-T\textsubscript{$i$,old}}{\Delta t} +\frac{T_{\text{$i$,new}}-T_{\text{$i$,old}}}{\Delta t} \end{split} \end{align} % where: -\begin{wherelist} -\item[\text{HeatCap1}_i] heat capacitance associated with a given outer half-node -\item[\text{HeatCap2}_i] heat capacitance associated with a given inner half-node -\item[\text{QDreport}_i] CondFD Surface Heat Flux Node \textless{} i +\begin{description} +\item[\(\text{HeatCap1}_i =\)] heat capacitance associated with a given outer half-node +\item[\(\text{HeatCap2}_i =\)] heat capacitance associated with a given inner half-node +\item[\(\text{QDreport}_i =\)] CondFD Surface Heat Flux Node \textless{} i \textgreater{} -\item[\text{QSource}_i] internal source heat flux at node $i$ -\item[Q\textsubscript{inside}] Surface Inside Face Conduction Heat Transfer Rate +\item[\(\text{QSource}_i =\)] internal source heat flux at node $i$ +\item[\(Q_{\text{inside}} =\)] Surface Inside Face Conduction Heat Transfer Rate per Area {[}W/m\(^{2}\){]} -\item[N] total number of nodes in a surface including the surface inside face +\item[\(N =\)] total number of nodes in a surface including the surface inside face node. -\end{wherelist} +\end{description} % Note that the variable \emph{TotNodes} used in the source code is actually N-1. The surface inside face node is referenced as \emph{TotNodes+1}. diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-through-the-walls.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-through-the-walls.tex index 5b3e287fde2..895d16dc4c0 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-through-the-walls.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-through-the-walls.tex @@ -52,11 +52,11 @@ \subsection{Calculation of Conduction Transfer Functions}\label{calculation-of-c The basic method used in EnergyPlus for CTF calculations is known as the state space method (Ceylan and Myers 1980; Seem 1987; Ouyang and Haghighat 1991).~ Another common, older method used Laplace transformations to reach the solution;~ the Laplace method was~ used in BLAST (Hittle, 1979; Hittle \& Bishop, 1983).~ The basic state space system is defined by the following linear matrix equations: \begin{equation} -\frac{{d\left[ {\bf{x}} \right]}}{{dt}} = \left[ {\bf{A}} \right]\left[ {\bf{x}} \right] + \left[ {\bf{B}} \right]\left[ {\bf{u}} \right] +\frac{{d\left[ {\mathbf{x}} \right]}}{{dt}} = \left[ {\mathbf{A}} \right]\left[ {\mathbf{x}} \right] + \left[ {\mathbf{B}} \right]\left[ {\mathbf{u}} \right] \end{equation} \begin{equation} -\left[ {\bf{y}} \right] = \left[ {\bf{C}} \right]\left[ {\bf{x}} \right] + \left[ {\bf{D}} \right]\left[ {\bf{u}} \right] +\left[ {\mathbf{y}} \right] = \left[ {\mathbf{C}} \right]\left[ {\mathbf{x}} \right] + \left[ {\mathbf{D}} \right]\left[ {\mathbf{u}} \right] \end{equation} where x is a vector of state variables, u is a vector of inputs, y is the output vector, t is time, and A, B, C, and D are coefficient matrices.~ Through the use of matrix algebra, the vector of state variables (x) can be eliminated from the system of equations, and the output vector (y) can be related directly to the input vector (u) and time histories of the input and output vectors. @@ -84,11 +84,11 @@ \subsection{Calculation of Conduction Transfer Functions}\label{calculation-of-c As shown in Seem (1987), the above formulation can be used to solve the transient heat conduction equation by enforcing a finite difference grid over the various layers in the building element being analyzed.~ In this case, the state variables are the nodal temperatures, the environmental temperatures (interior and exterior) are the inputs, and the resulting heat fluxes at both surfaces are the outputs.~ Thus, the state space representation with finite difference variables would take the following form: \begin{equation} -\frac{d\left[\begin{array}{c}T_1 \\ \vdots \\ T_n\end{array}\right]}{dt} = \left[\bf{A}\right]\left[\begin{array}{c}T_1 \\ \vdots \\ T_n\end{array}\right]+\left[\bf{B}\right]\left[\begin{array}{c}T_i \\ T_o\end{array}\right] +\frac{d\left[\begin{array}{c}T_1 \\ \vdots \\ T_n\end{array}\right]}{dt} = \left[\mathbf{A}\right]\left[\begin{array}{c}T_1 \\ \vdots \\ T_n\end{array}\right]+\left[\mathbf{B}\right]\left[\begin{array}{c}T_i \\ T_o\end{array}\right] \end{equation} \begin{equation} -\left[\begin{array}{c}{q''}_i \\ {q''}_o\end{array}\right] = \left[\bf{C}\right]\left[\begin{array}{c}T_1 \\ \vdots \\ T_n\end{array}\right]+\left[\bf{D}\right]\left[\begin{array}{c}T_i \\ T_o\end{array}\right] +\left[\begin{array}{c}{q''}_i \\ {q''}_o\end{array}\right] = \left[\mathbf{C}\right]\left[\begin{array}{c}T_1 \\ \vdots \\ T_n\end{array}\right]+\left[\mathbf{D}\right]\left[\begin{array}{c}T_i \\ T_o\end{array}\right] \end{equation} where T1, T2, \ldots{}, Tn-1, Tn~are the finite difference nodal temperatures, n is the number of nodes, Ti~and To~are the interior and exterior environmental temperatures, and q``i~and q''o~are the heat fluxes (desired output). @@ -104,11 +104,11 @@ \subsection{Calculation of Conduction Transfer Functions}\label{calculation-of-c \end{equation} \begin{equation} -q{``_i} = h\left( {{T_i} - {T_2}} \right) +{q''}_i = h\left( {{T_i} - {T_2}} \right) \end{equation} \begin{equation} -q{``_o} = h\left( {{T_1} - {T_o}} \right) +{q''}_o = h\left( {{T_1} - {T_o}} \right) \end{equation} where: diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/inside-heat-balance.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/inside-heat-balance.tex index 104089b6733..912ee801939 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/inside-heat-balance.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/inside-heat-balance.tex @@ -420,7 +420,7 @@ \subsubsection{Alamdari Hammond Stable Horizontal}\label{alamdari-hammond-stable Alamdari and Hammond (1983) developed the following correlation for horizontal surfaces in stable thermal situation. \begin{equation} -h = 0.6{\left( {\frac{{\left| {\Delta T} \right|}}{{D_h^2}}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}}} +h = 0.6{\left( {\frac{{\left| {\Delta T} \right|}}{{D_h^2}}} \right)^{{\frac{1}{5}}}} \end{equation} where, @@ -432,7 +432,7 @@ \subsubsection{Alamdari Hammond Unstable Horizontal}\label{alamdari-hammond-unst Alamdari and Hammond (1983) developed the following correlation for horizontal surfaces in a buoyant thermal situation. \begin{equation} -h = {\left\{ {{{\left[ {1.4{{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_h}}}} \right)}^{^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}}}} \right]}^6} + {{\left[ {1.63{{\left| {\Delta T} \right|}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}}} \right]}^6}} \right\}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 6}}\right.}\!\lower0.7ex\hbox{6}}}} +h = {\left\{ {{{\left[ {1.4{{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_h}}}} \right)}^{^{{\frac{1}{4}}}}}} \right]}^6} + {{\left[ {1.63{{\left| {\Delta T} \right|}^{{\frac{1}{3}}}}} \right]}^6}} \right\}^{{\frac{1}{6}}}} \end{equation} \subsubsection{Alamdari Hammond Vertical Wall}\label{alamdari-hammond-vertical-wall} @@ -440,7 +440,7 @@ \subsubsection{Alamdari Hammond Vertical Wall}\label{alamdari-hammond-vertical-w Alamdari and Hammond (1983) developed the following correlation for vertical surfaces. \begin{equation} -h = {\left\{ {{{\left[ {1.5{{\left( {\frac{{\left| {\Delta T} \right|}}{H}} \right)}^{^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}}}} \right]}^6} + {{\left[ {1.23{{\left| {\Delta T} \right|}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}}} \right]}^6}} \right\}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 6}}\right.}\!\lower0.7ex\hbox{6}}}} +h = {\left\{ {{{\left[ {1.5{{\left( {\frac{{\left| {\Delta T} \right|}}{H}} \right)}^{^{{\frac{1}{4}}}}}} \right]}^6} + {{\left[ {1.23{{\left| {\Delta T} \right|}^{{\frac{1}{3}}}}} \right]}^6}} \right\}^{{\frac{1}{6}}}} \end{equation} where, @@ -515,12 +515,8 @@ \subsubsection{Beausoleil Morrison Mixed Assisted Wall}\label{beausoleil-morriso Beausoleil-Morrison (2000) used blending techniques to combine correlations originally developed by Alamdari and Hammond (1983) and Fisher and Pedersen (1997) to create the following correlation is for walls where the flow driving forces from mechanical forces are augmented by the driving forces from buoyancy. +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt h = \left( \left\{ \left[1.5\left(\frac{\left|\Delta T\right|}{H}\right)^{1/4}\right]^6 + @@ -531,7 +527,7 @@ \subsubsection{Beausoleil Morrison Mixed Assisted Wall}\label{beausoleil-morriso \left[-0.199+0.190\cdot ACH^{0.8}\right] \right\}^3 \right)^{1/3} -\end{equation} +\end{equation}} where, @@ -543,12 +539,8 @@ \subsubsection{Beausoleil Morrison Mixed Opposing Wall}\label{beausoleil-morriso Beausoleil-Morrison (2000) used blending techniques to combine correlations originally developed by Alamdari and Hammond (1983) and Fisher and Pedersen (1997) to create the following correlation is for walls where the flow driving forces from mechanical forces are opposed by the driving forces from buoyancy. +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt h = \max \left\{ \begin{array}{l} \left(\left\{\left[1.5\left(\frac{\left|\Delta T\right|}{H}\right)^{1/4}\right]^6+\left[1.23\left|\Delta T\right|^2\right]^{1/6}\right\}^{1/2}-\left\{\left[\frac{T_{surf}-T_{SAT}}{\left|\Delta T\right|}\right]\cdot\left[-0.199+0.190\cdot ACH^{0.8}\right]\right\}^3\right)^{1/3} \\ @@ -556,47 +548,39 @@ \subsubsection{Beausoleil Morrison Mixed Opposing Wall}\label{beausoleil-morriso 0.8\cdot \left\{\left[\frac{T_{surf}-T_{SAT}}{\left|\Delta T\right|}\right]\cdot\left[-0.199+0.190\cdot ACH^{0.8}\right]\right\} \end{array} \right. -\end{equation} +\end{equation}} \subsubsection{Beausoleil Morrison Mixed Stable Floor}\label{beausoleil-morrison-mixed-stable-floor} Beausoleil-Morrison (2000) used blending techniques to combine correlations originally developed by Alamdari and Hammond (1983) and Fisher and Pedersen (1997) to create the following correlation is for floors where the flow driving forces include both mechanical forces and thermally stable buoyancy. \begin{equation} -h = {\left( {{{\left\{ {0.6 \cdot {{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_H}}}} \right)}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}}}} \right\}}^3} + {{\left\{ {\left[ {\frac{{{T_{surf}} - {T_{SAT}}}}{{\left| {\Delta T} \right|}}} \right]\cdot\left[ {0.159 + 0.116AC{H^{0.8}}} \right]} \right\}}^3}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} +h = {\left( {{{\left\{ {0.6 \cdot {{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_H}}}} \right)}^{{\frac{1}{5}}}}} \right\}}^3} + {{\left\{ {\left[ {\frac{{{T_{surf}} - {T_{SAT}}}}{{\left| {\Delta T} \right|}}} \right]\cdot\left[ {0.159 + 0.116AC{H^{0.8}}} \right]} \right\}}^3}} \right)^{{\frac{1}{3}}}} \end{equation} \subsubsection{Beausoleil Morrison Mixed Unstable Floor}\label{beausoleil-morrison-mixed-unstable-floor} Beausoleil-Morrison (2000) used blending techniques to combine correlations originally developed by Alamdari and Hammond (1983) and Fisher and Pedersen (1997) to create the following correlation is for floors where the flow driving forces include both mechanical forces and thermally unstable buoyancy. +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -h = {\left( {{{\left\{ {{{\left[ {1.4{{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_h}}}} \right)}^{^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}}}} \right]}^6} + {{\left[ {1.63{{\left| {\Delta T} \right|}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}}} \right]}^6}} \right\}}^{{\raise0.7ex\hbox{3} \!\mathord{\left/ {\vphantom {3 6}}\right.}\!\lower0.7ex\hbox{6}}}} + {{\left\{ {\left[ {\frac{{{T_{surf}} - {T_{SAT}}}}{{\left| {\Delta T} \right|}}} \right]\cdot\left[ {0.159 + 0.116AC{H^{0.8}}} \right]} \right\}}^3}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} -\end{equation} +h = {\left( {{{\left\{ {{{\left[ {1.4{{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_h}}}} \right)}^{^{{\frac{1}{4}}}}}} \right]}^6} + {{\left[ {1.63{{\left| {\Delta T} \right|}^{{\frac{1}{3}}}}} \right]}^6}} \right\}}^{{\frac{3}{6}}}} + {{\left\{ {\left[ {\frac{{{T_{surf}} - {T_{SAT}}}}{{\left| {\Delta T} \right|}}} \right]\cdot\left[ {0.159 + 0.116AC{H^{0.8}}} \right]} \right\}}^3}} \right)^{{\frac{1}{3}}}} +\end{equation}} \subsubsection{Beausoleil Morrison Mixed Stable Ceiling}\label{beausoleil-morrison-mixed-stable-ceiling} Beausoleil-Morrison (2000) used blending techniques to combine correlations originally developed by Alamdari and Hammond (1983) and Fisher and Pedersen (1997) to create the following correlation is for ceilings where the flow driving forces include both mechanical forces and thermally Stable buoyancy. \begin{equation} -h = {\left( {{{\left\{ {0.6 \cdot {{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_H}}}} \right)}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}}}} \right\}}^3} + {{\left\{ {\left[ {\frac{{{T_{surf}} - {T_{SAT}}}}{{\left| {\Delta T} \right|}}} \right]\cdot\left[ { - 0.166 + 0.484AC{H^{0.8}}} \right]} \right\}}^3}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} +h = {\left( {{{\left\{ {0.6 \cdot {{\left( {\frac{{\left| {\Delta T} \right|}}{{{D_H}}}} \right)}^{{\frac{1}{5}}}}} \right\}}^3} + {{\left\{ {\left[ {\frac{{{T_{surf}} - {T_{SAT}}}}{{\left| {\Delta T} \right|}}} \right]\cdot\left[ { - 0.166 + 0.484AC{H^{0.8}}} \right]} \right\}}^3}} \right)^{{\frac{1}{3}}}} \end{equation} \subsubsection{Beausoleil Morrison Mixed Unstable Ceiling}\label{beausoleil-morrison-mixed-unstable-ceiling} Beausoleil-Morrison (2000) used blending techniques to combine correlations originally developed by Alamdari and Hammond (1983) and Fisher and Pedersen (1997) to create the following correlation is for ceilings where the flow driving forces include both mechanical forces and thermally unstable buoyancy. +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt h = \left( \left( \left[ @@ -628,14 +612,14 @@ \subsubsection{Beausoleil Morrison Mixed Unstable Ceiling}\label{beausoleil-morr \right] \right)^3 \right)^{1/3} -\end{equation} +\end{equation}} \subsubsection{Fohanno Polidori Vertical Wall}\label{fohanno-polidori-vertical-wall} Fohanno and Polidori (2006) developed the following equation for \emph{h\(_{c}\)} for vertical walls under simple buoyancy flow conditions. \begin{equation} -h = \left\{ \begin{array}{l}1.332{\left( {\frac{{\left| {\Delta T} \right|}}{H}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}}\quad ,\quad Ra_H^* \le 6.3 \times {10^9}\\1.235{e^{\left( {0.0467H} \right)}}{\left| {\Delta T} \right|^{0.316}}\quad ,\quad Ra_H^* > 6.3 \times {10^9}\end{array} \right. +h = \left\{ \begin{array}{l}1.332{\left( {\frac{{\left| {\Delta T} \right|}}{H}} \right)^{{\frac{1}{4}}}}\quad ,\quad Ra_H^* \le 6.3 \times {10^9}\\1.235{e^{\left( {0.0467H} \right)}}{\left| {\Delta T} \right|^{0.316}}\quad ,\quad Ra_H^* > 6.3 \times {10^9}\end{array} \right. \end{equation} where, @@ -693,33 +677,33 @@ \subsubsection{ISO 15099 Windows}\label{iso-15099-windows} Case A. \({0^o } \leq \gamma < 15^o\) \begin{equation} -Nu = 0.13Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}} +Nu = 0.13Ra_H^{{\frac{1}{3}}} \end{equation} Case B. \(15^o \leq \gamma \leq 90^o\) \begin{equation} -R{a_{cv}} = 2.5 \times {10^5}{\left( {\frac{{{e^{0.72\gamma }}}}{{\sin \lambda }}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}}} +R{a_{cv}} = 2.5 \times {10^5}{\left( {\frac{{{e^{0.72\gamma }}}}{{\sin \lambda }}} \right)^{{\frac{1}{5}}}} \end{equation} \begin{equation} -Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}};\;for\;R{a_H} \le R{a_{CV}} +Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\frac{1}{4}}}};\;for\;R{a_H} \le R{a_{CV}} \end{equation} \begin{equation} -Nu = 0.13\left( {Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}} - Ra_{CV}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} \right) + 0.56{\left( {R{a_{CV}}\sin \gamma } \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}};\;R{a_H} > R{a_{CV}} +Nu = 0.13\left( {Ra_H^{{\frac{1}{3}}} - Ra_{CV}^{{\frac{1}{3}}}} \right) + 0.56{\left( {R{a_{CV}}\sin \gamma } \right)^{{\frac{1}{4}}}};\;R{a_H} > R{a_{CV}} \end{equation} Case C. \(90^o < \gamma \leq 179^o\) \begin{equation} -Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 4}}\right.}\!\lower0.7ex\hbox{4}}}};\;{10^5} \le R{a_H}\sin \gamma < {10^{11}} +Nu = 0.56{\left( {R{a_H}\sin \gamma } \right)^{{\frac{1}{4}}}};\;{10^5} \le R{a_H}\sin \gamma < {10^{11}} \end{equation} Case D. \(179^o < \gamma \leq 180^o\) \begin{equation} -Nu = 0.58Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}};\;R{a_H} \le {10^{11}} +Nu = 0.58Ra_H^{{\frac{1}{5}}};\;R{a_H} \le {10^{11}} \end{equation} The material properties are evaluated at the mean film temperature.~ Standard EnergyPlus psychrometric functions are used for \(\rho\) ~and \({c_p}\) .~ Thermal conductivity is calculated using: @@ -825,31 +809,31 @@ \subsubsection{Simple Natural Convection Algorithm}\label{simple-natural-convect For a vertical surface: \begin{equation} -{\rm{h = 3}}{\rm{.076}} +{\mathrm{h = 3}}{\mathrm{.076}} \end{equation} For a horizontal surface with reduced convection: \begin{equation} -{\rm{h = 0}}{\rm{.948}} +{\mathrm{h = 0}}{\mathrm{.948}} \end{equation} For a horizontal surface with enhanced~ convection: \begin{equation} -{\rm{h = 4}}{\rm{.040}} +{\mathrm{h = 4}}{\mathrm{.040}} \end{equation} For a tilted surface with reduced convection: \begin{equation} -{\rm{h = 2}}{\rm{.281}} +{\mathrm{h = 2}}{\mathrm{.281}} \end{equation} For a tilted surface with enhanced convection: \begin{equation} -{\rm{h = 3}}{\rm{.870}} +{\mathrm{h = 3}}{\mathrm{.870}} \end{equation} \subsubsection{Ceiling Diffuser Algorithm}\label{ceiling-diffuser-algorithm} @@ -918,11 +902,11 @@ \subsubsection{Trombe Wall Algorithm}\label{trombe-wall-algorithm} \end{equation} \begin{equation} -{\rm{NU2}} = 0.242{\left( {{\raise0.7ex\hbox{{{\rm{Ra}}}} \!\mathord{\left/ {\vphantom {{{\rm{Ra}}} {\rm{A}}}}\right.}\!\lower0.7ex\hbox{{\rm{A}}}}} \right)^{0.272}} +{\mathrm{NU2}} = 0.242{\left( {{\frac{{{\mathrm{Ra}}}}{{\mathrm{A}}}}} \right)^{0.272}} \end{equation} \begin{equation} -{\rm{NU = MAX(NU1,NU2)}} +{\mathrm{NU = MAX(NU1,NU2)}} \end{equation} where @@ -938,7 +922,7 @@ \subsubsection{Trombe Wall Algorithm}\label{trombe-wall-algorithm} Net convection coefficient from glazing to wall is: \begin{equation} -{h_{net}} = {\rm{k}}\left( {{\raise0.7ex\hbox{{{\rm{NU}}}} \!\mathord{\left/ {\vphantom {{{\rm{NU}}} {\rm{L}}}}\right.}\!\lower0.7ex\hbox{{\rm{L}}}}} \right) +{h_{net}} = {\mathrm{k}}\left( {{\frac{{{\mathrm{NU}}}}{{\mathrm{L}}}}} \right) \end{equation} where @@ -1006,7 +990,7 @@ \subsubsection{ASTM C1340 Algorithm}\label{ASTM-C1340-algorithm} $Nu_n = 0.56 \: (Ra \, sin (\Phi))^{1/4} \qquad \Phi = tilt \: angle$ \item Tilted surfaces, heat flow up \\ $Nu_n = 0.56 \: (Ra \, sin (\Phi))^{1/4} \enspace for \enspace Ra/Pr < Gr_c$ \\ - $Nu_n = 0.14 \: (Ra^{1/3}- (Gr_c\,Pr)^{1/3}) \\ + $Nu_n = 0.14 \: (Ra^{1/3}- (Gr_c\,Pr)^{1/3}) \enspace + 0.56\,(Gr_c \, Pr \, sin (\Phi))^{1/4} \enspace for \enspace Ra/Pr > Gr_c$ \\ $Gr_c = 1 * 10^6 \enspace for \enspace \Phi < 15^o $ \\ $Gr_c = 10^{(\Phi / (1.1870\:+\:0.0870*\Phi))} \enspace for \enspace 15^o < \Phi < 75^o $ \\ diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex index 57c95f194ac..3529b0ceef8 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex @@ -764,7 +764,7 @@ \subsubsection{Adaptive Convection Algorithm}\label{adaptive-convection-algorith As discussed above for the TARP algorithm, a Sparrow et al. (1979) conducted flat plate measurements and develop the following correlation for finite-size flat plates oriented to windward. \begin{equation} -{h_f} = 2.53{R_f}{\left( {\frac{{P{V_z}}}{A}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 2}}\right.}\!\lower0.7ex\hbox{2}}}} +{h_f} = 2.53{R_f}{\left( {\frac{{P{V_z}}}{A}} \right)^{{\frac{1}{2}}}} \end{equation} \paragraph{Sparrow Leeward}\label{sparrow-leeward} @@ -772,7 +772,7 @@ \subsubsection{Adaptive Convection Algorithm}\label{adaptive-convection-algorith Sparrow et al. (1979) conducted flat plate measurements and develop the following correlation for finite-size flat plates oriented to leeward. \begin{equation} -{h_f} = \frac{{2.53}}{2}{R_f}{\left( {\frac{{P{V_z}}}{A}} \right)^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 2}}\right.}\!\lower0.7ex\hbox{2}}}} +{h_f} = \frac{{2.53}}{2}{R_f}{\left( {\frac{{P{V_z}}}{A}} \right)^{{\frac{1}{2}}}} \end{equation} \paragraph{MoWITT Windward}\label{mowitt-windward} @@ -780,7 +780,7 @@ \subsubsection{Adaptive Convection Algorithm}\label{adaptive-convection-algorith As discussed above, Yazdanian and Klems (1994) used outdoor laboratory measurements to develop the following correlation for smooth surfaces oriented to windward. Booten et al. (2012) developed revised coefficients for use with local surface wind speeds. \begin{equation} -{h_c} = \sqrt {{{\left[ {0.84{{\left| {\Delta T} \right|}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}}} \right]}^2} + {{\left[ {2.38{\kern 1pt} {\kern 1pt} V_z^{0.89}} \right]}^2}} +{h_c} = \sqrt {{{\left[ {0.84{{\left| {\Delta T} \right|}^{{\frac{1}{3}}}}} \right]}^2} + {{\left[ {2.38 V_z^{0.89}} \right]}^2}} \end{equation} This model equation is for the total film coefficient and includes the natural convection portion. Therefore it should not be used in conjunction with a second natural convection model equation. @@ -790,7 +790,7 @@ \subsubsection{Adaptive Convection Algorithm}\label{adaptive-convection-algorith Yazdanian and Klems (1994) used outdoor laboratory measurements to develop the following correlation for smooth surfaces oriented to leeward. Booten et al. (2012) developed revised coefficients for use with local surface wind speeds. \begin{equation} -{h_c} = \sqrt {{{\left[ {0.84{{\left| {\Delta T} \right|}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}}} \right]}^2} + {{\left[ {2.86{\kern 1pt} {\kern 1pt} V_z^{0.617}} \right]}^2}} +{h_c} = \sqrt {{{\left[ {0.84{{\left| {\Delta T} \right|}^{{\frac{1}{3}}}}} \right]}^2} + {{\left[ {2.86 V_z^{0.617}} \right]}^2}} \end{equation} This model equation is for the total film coefficient and includes the natural convection portion. Therefore it should not be used in conjunction with a second natural convection model equation. @@ -815,7 +815,7 @@ \subsubsection{Adaptive Convection Algorithm}\label{adaptive-convection-algorith Clear et al. (2003) developed correlations from measurements for horizontal roofs on two commercial buildings. In EnergyPlus the implementation uses the model for natural convection plus turbulent forced convection (eq. 8A in the reference) and applies it to the center point of each surface section that makes up the roof. \begin{equation} -{h_c} = \eta \frac{k}{{{L_n}}}0.15Ra_{{L_n}}^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}} + \frac{k}{x}{R_f}0.0296{\mathop{\rm Re}\nolimits}_x^{{\raise0.7ex\hbox{4} \!\mathord{\left/ {\vphantom {4 5}}\right.}\!\lower0.7ex\hbox{5}}}{\Pr ^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 3}}\right.}\!\lower0.7ex\hbox{3}}}} +{h_c} = \eta \frac{k}{{{L_n}}}0.15Ra_{{L_n}}^{{\frac{1}{3}}} + \frac{k}{x}{R_f}0.0296\operatorname{Re}_x^{{\frac{4}{5}}}{\Pr ^{{\frac{1}{3}}}} \end{equation} Where @@ -834,7 +834,7 @@ \subsubsection{Adaptive Convection Algorithm}\label{adaptive-convection-algorith \item \(G{r_{{L_n}}} = \frac{{g{\rho ^2}{L_n}^3\Delta T}}{{{T_f}{\mu ^2}}}\) is the Grashof number \item - \({{\mathop{\rm Re}\nolimits}_x} = \frac{{{V_z}\rho x}}{\mu }\) is the Reynolds number at x + \({\operatorname{Re}_x} = \frac{{{V_z}\rho x}}{\mu }\) is the Reynolds number at x \item Pr is the Prandtl number \end{itemize} diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex index 2361fd81948..b526f776ca0 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex @@ -89,27 +89,27 @@ \subsection{Outside Heat Balance Cases for Exterior Moveable Insulation}\label{o TARP includes four possible representations for the basic outside surface heat balance. The first two depend on which of the optimal surface conductance algorithms the user selects. The simple outside surface conductance that includes both the convective and thermal interchange between the surface and the environment in a single coefficient, is represented by the thermal network in Figure~\ref{fig:thermal-network-for-simple-outside-surface}. Equation~\ref{eq:BasicSteadyStateHeatBalanceEquation} can also be expressed as: \begin{equation} -\left[ {{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {{\rm{Y}}_{\rm{0}}}\cdot {\rm{T}}{{\rm{I}}_t} - {{\rm{X}}_{\rm{0}}}\cdot {\rm{T}}{{\rm{O}}_{\rm{t}}}} \right]{\rm{ + }}\left[ {{\rm{HO}}\cdot \left( {{{\rm{T}}_{\rm{a}}} - {\rm{T}}{{\rm{O}}_t}} \right)} \right]{\rm{ + QSO = 0}} +\left[ {{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {{\mathrm{Y}}_{\mathrm{0}}}\cdot {\mathrm{T}}{{\mathrm{I}}_t} - {{\mathrm{X}}_{\mathrm{0}}}\cdot {\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}} \right]{\mathrm{ + }}\left[ {{\mathrm{HO}}\cdot \left( {{{\mathrm{T}}_{\mathrm{a}}} - {\mathrm{T}}{{\mathrm{O}}_t}} \right)} \right]{\mathrm{ + QSO = 0}} \end{equation} This can be solved for the outside surface temperature. \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{Y}}_0}\cdot {\rm{T}}{{\rm{I}}_{\rm{t}}}{\rm{ + HO}}\cdot {{\rm{T}}_{\rm{a}}}}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + HO}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{Y}}_0}\cdot {\mathrm{T}}{{\mathrm{I}}_{\mathrm{t}}}{\mathrm{ + HO}}\cdot {{\mathrm{T}}_{\mathrm{a}}}}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + HO}}}}} \right]{\mathrm{ }} \label{eq:OutsideSurfTempHeatBalEq} \end{equation} The detailed outside surface conductance model considers convection and radiant interchange with the sky and with the ground as separate factors. Its use in the outside thermal balance is shown in Figure~\ref{fig:thermal-network-for-detailed-outside-surface}. In this case, Equation~\ref{eq:BasicSteadyStateHeatBalanceEquation} can be expanded to give: \begin{equation} -\left[ {{\rm{KO}}{{\rm{P}}_{\rm{t}}}{\rm{ + }}{{\rm{Y}}_{\rm{0}}}\cdot {\rm{T}}{{\rm{I}}_{\rm{t}}}{\rm{ - }}{{\rm{X}}_{\rm{0}}}\cdot {\rm{T}}{{\rm{O}}_{\rm{t}}}} \right]{\rm{ + }}\left[ {{\rm{HA}}\cdot \left( {{{\rm{T}}_{\rm{a}}}{\rm{ - T}}{{\rm{O}}_{\rm{t}}}} \right){\rm{ + HS}}\cdot \left( {{{\rm{T}}_{\rm{s}}}{\rm{ - T}}{{\rm{O}}_{\rm{t}}}} \right){\rm{ + HG}}\cdot \left( {{{\rm{T}}_{\rm{g}}}{\rm{ - T}}{{\rm{O}}_{\rm{t}}}} \right)} \right]{\rm{ + QSO = 0 }} +\left[ {{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}}{\mathrm{ + }}{{\mathrm{Y}}_{\mathrm{0}}}\cdot {\mathrm{T}}{{\mathrm{I}}_{\mathrm{t}}}{\mathrm{ - }}{{\mathrm{X}}_{\mathrm{0}}}\cdot {\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}} \right]{\mathrm{ + }}\left[ {{\mathrm{HA}}\cdot \left( {{{\mathrm{T}}_{\mathrm{a}}}{\mathrm{ - T}}{{\mathrm{O}}_{\mathrm{t}}}} \right){\mathrm{ + HS}}\cdot \left( {{{\mathrm{T}}_{\mathrm{s}}}{\mathrm{ - T}}{{\mathrm{O}}_{\mathrm{t}}}} \right){\mathrm{ + HG}}\cdot \left( {{{\mathrm{T}}_{\mathrm{g}}}{\mathrm{ - T}}{{\mathrm{O}}_{\mathrm{t}}}} \right)} \right]{\mathrm{ + QSO = 0 }} \label{eq:MoreDetailedOutsideSurfHeatBalEq} \end{equation} This can be solved for the outside surface temperature: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{Y}}_0}\cdot {\rm{T}}{{\rm{I}}_{\rm{t}}}{\rm{ + HA}}\cdot {{\rm{T}}_{\rm{a}}}{\rm{ + HS}}\cdot {{\rm{T}}_{\rm{s}}}{\rm{ + HG}}\cdot {{\rm{T}}_{\rm{g}}}}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + HA + HS + HG}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{Y}}_0}\cdot {\mathrm{T}}{{\mathrm{I}}_{\mathrm{t}}}{\mathrm{ + HA}}\cdot {{\mathrm{T}}_{\mathrm{a}}}{\mathrm{ + HS}}\cdot {{\mathrm{T}}_{\mathrm{s}}}{\mathrm{ + HG}}\cdot {{\mathrm{T}}_{\mathrm{g}}}}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + HA + HS + HG}}}}} \right]{\mathrm{ }} \end{equation} The third and fourth representations occur when the outside surface has been covered with movable insulation. The insulation has a conductance of UM. The thermal network in Figure~\ref{fig:thermal-network-for-outside-moveable} represents this case.The insulation must be mass-less because it is not generally possible to perform a correct thermal balance at the juncture of two surfaces each modeled by CTF. @@ -117,27 +117,27 @@ \subsection{Outside Heat Balance Cases for Exterior Moveable Insulation}\label{o The equation for the thermal balance between the surface and the insulation is: \begin{equation} -\left[ {{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {{\rm{Y}}_{\rm{0}}}\cdot {\rm{T}}{{\rm{I}}_t} - {{\rm{X}}_{\rm{0}}}\cdot {\rm{T}}{{\rm{O}}_{\rm{t}}} + {\rm{UM}}\cdot \left( {{\rm{TM - T}}{{\rm{O}}_{\rm{t}}}} \right)} \right]{\rm{ + QSO = 0}} +\left[ {{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {{\mathrm{Y}}_{\mathrm{0}}}\cdot {\mathrm{T}}{{\mathrm{I}}_t} - {{\mathrm{X}}_{\mathrm{0}}}\cdot {\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}} + {\mathrm{UM}}\cdot \left( {{\mathrm{TM - T}}{{\mathrm{O}}_{\mathrm{t}}}} \right)} \right]{\mathrm{ + QSO = 0}} \end{equation} Which can be rewritten to solve for TO: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{Y}}_0}\cdot {\rm{T}}{{\rm{I}}_{\rm{t}}}{\rm{ + UM}}\cdot {\rm{TM}}}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + UM}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{Y}}_0}\cdot {\mathrm{T}}{{\mathrm{I}}_{\mathrm{t}}}{\mathrm{ + UM}}\cdot {\mathrm{TM}}}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + UM}}}}} \right]{\mathrm{ }} \label{eq:HeatBalEqforTo} \end{equation} Depending on whether or not the detailed or simple algorithm for surface conductance is being used, there are two expressions for TM, the outside temperature of the insulation. For the simple conductance: \begin{equation} -{\rm{TM}} = \left[ {\frac{{{\rm{QSM + UM}}\cdot {\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ + HO}}\cdot {{\rm{T}}_{\rm{a}}}}}{{{\rm{UM + HO}}}}} \right] +{\mathrm{TM}} = \left[ {\frac{{{\mathrm{QSM + UM}}\cdot {\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ + HO}}\cdot {{\mathrm{T}}_{\mathrm{a}}}}}{{{\mathrm{UM + HO}}}}} \right] \label{eq:OutTempMovableInsulation} \end{equation} For the detailed conductance: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{QSM}} + {\rm{UM}}\cdot {\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ + HA}}\cdot {{\rm{T}}_{\rm{a}}}{\rm{ + HS}}\cdot {{\rm{T}}_{\rm{s}}}{\rm{ + HG}}\cdot {{\rm{T}}_{\rm{g}}}}}{{{\rm{UM + HA + HS + HG}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{QSM}} + {\mathrm{UM}}\cdot {\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ + HA}}\cdot {{\mathrm{T}}_{\mathrm{a}}}{\mathrm{ + HS}}\cdot {{\mathrm{T}}_{\mathrm{s}}}{\mathrm{ + HG}}\cdot {{\mathrm{T}}_{\mathrm{g}}}}}{{{\mathrm{UM + HA + HS + HG}}}}} \right]{\mathrm{ }} \label{eq:TOtEquationDetailedConductance} \end{equation} @@ -166,7 +166,7 @@ \subsection{Heat Balance Cases}\label{heat-balance-cases} TO\(_{t}\) and TI\(_{t}\) are related through the Y\(_{0}\)CTF. However TI\(_{t}\) is also unknown. While it is possible to combine the outside and the inside surface heat balances to compute TO\(_{t}\) and TI\(_{t}\) simultaneously, TARP uses a simpler procedure where TO\(_{t}\) is based on a previous value of TI. When Y\(_{0}\) is small, as occurs in well insulated or very massive surfaces, TI\(_{t}\) can be replaced by TI\(_{t-1}\) (which is known for the previous hour's heat balance) without significantly effecting the value of TO\(_{t}\) When Y\(_{0}\) is large, TO and TI can so strongly be coupled that separate outside and inside heat balances do not work because the environment and zone temperatures have negligible influence on the heat balances. The TARP uses the inside surface heat balance to couple TO\(_{t}\) with TZ and TR. These two temperatures are less strongly influenced by TO and allow a reasonable heat balance. On the first heat balance iteration, TZ and TR are the values at time t-1. The user may optionally require that TO\(_{t}\) be recomputed with every iteration of TI\(_{t}\). ~In this case TZ and TR have values from the previous iteration and a true simultaneous solution is achieved. In most conventional constructions, recomputing TO\(_{t}\) does not significantly change the computed zone loads and temperatures. The inside surface heat balance is given by: \begin{equation} -{\rm{T}}{{\rm{I}}_{\rm{t}}} = \left[ {\frac{{KI{P_t} + QSI + HC\cdot TZ + HR\cdot TR + {Y_0}\cdot TO}}{{{Z_0} + HC + HR}}} \right] +{\mathrm{T}}{{\mathrm{I}}_{\mathrm{t}}} = \left[ {\frac{{KI{P_t} + QSI + HC\cdot TZ + HR\cdot TR + {Y_0}\cdot TO}}{{{Z_0} + HC + HR}}} \right] \label{eq:InsideSurfTempHeatBalEq} \end{equation} @@ -189,7 +189,7 @@ \subsubsection{Case1: Y\(_{0}\)~ small, simple conductance, no movable insulatio From Equation~\ref{eq:OutsideSurfTempHeatBalEq}, \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{Y}}_0}\cdot {\rm{T}}{{\rm{I}}_{{\rm{t - 1}}}}{\rm{ + HO}}\cdot {{\rm{T}}_{\rm{a}}}}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + HO}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{Y}}_0}\cdot {\mathrm{T}}{{\mathrm{I}}_{{\mathrm{t - 1}}}}{\mathrm{ + HO}}\cdot {{\mathrm{T}}_{\mathrm{a}}}}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + HO}}}}} \right]{\mathrm{ }} \end{equation} \subsubsection{Case2: Y\(_{0}\) not small, simple conductance, no movable insulation:}\label{case2-yux5f0-not-small-simple-conductance-no-movable-insulation} @@ -197,7 +197,7 @@ \subsubsection{Case2: Y\(_{0}\) not small, simple conductance, no movable insula From Equations~\ref{eq:OutsideSurfTempHeatBalEq} and~\ref{eq:InsideSurfTempHeatBalEq}: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {\rm{HO}}\cdot {{\rm{T}}_{\rm{a}}} + {{\rm{F}}_1}\cdot \left( {{\rm{KI}}{{\rm{P}}_{\rm{t}}}{\rm{ + QSI + HI}}\cdot {\rm{TZ + HR}}\cdot {\rm{TR}}} \right)}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + HO - }}{{\rm{F}}_{\rm{1}}}\cdot {{\rm{Y}}_0}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {\mathrm{HO}}\cdot {{\mathrm{T}}_{\mathrm{a}}} + {{\mathrm{F}}_1}\cdot \left( {{\mathrm{KI}}{{\mathrm{P}}_{\mathrm{t}}}{\mathrm{ + QSI + HI}}\cdot {\mathrm{TZ + HR}}\cdot {\mathrm{TR}}} \right)}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + HO - }}{{\mathrm{F}}_{\mathrm{1}}}\cdot {{\mathrm{Y}}_0}}}} \right]{\mathrm{ }} \end{equation} \subsubsection{Case3: Y\(_{0}\)~ small, detailed conductance, no movable insulation:}\label{case3-yux5f0-small-detailed-conductance-no-movable-insulation} @@ -205,7 +205,7 @@ \subsubsection{Case3: Y\(_{0}\)~ small, detailed conductance, no movable insulat From Equation~\ref{eq:MoreDetailedOutsideSurfHeatBalEq}: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{Y}}_0}\cdot {\rm{T}}{{\rm{I}}_{{\rm{t - 1}}}}{\rm{ + HA}}\cdot {{\rm{T}}_{\rm{a}}} + {\rm{HS}}\cdot {{\rm{T}}_{\rm{s}}} + {\rm{HG}}\cdot {{\rm{T}}_{\rm{g}}}}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + HA + HS + HG}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{Y}}_0}\cdot {\mathrm{T}}{{\mathrm{I}}_{{\mathrm{t - 1}}}}{\mathrm{ + HA}}\cdot {{\mathrm{T}}_{\mathrm{a}}} + {\mathrm{HS}}\cdot {{\mathrm{T}}_{\mathrm{s}}} + {\mathrm{HG}}\cdot {{\mathrm{T}}_{\mathrm{g}}}}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + HA + HS + HG}}}}} \right]{\mathrm{ }} \end{equation} \subsubsection{Case4: Y\(_{0}\) not small, detailed conductance, no movable insulation:}\label{case4-yux5f0-not-small-detailed-conductance-no-movable-insulation} @@ -213,7 +213,7 @@ \subsubsection{Case4: Y\(_{0}\) not small, detailed conductance, no movable insu From Equations~\ref{eq:MoreDetailedOutsideSurfHeatBalEq} and~\ref{eq:InsideSurfTempHeatBalEq}: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {\rm{HA}}\cdot {{\rm{T}}_{\rm{a}}} + {\rm{HS}}\cdot {{\rm{T}}_{\rm{s}}} + {\rm{HG}}\cdot {{\rm{T}}_{\rm{g}}} + {{\rm{F}}_{\rm{1}}}\cdot \left( {{\rm{KI}}{{\rm{P}}_{\rm{t}}}{\rm{ + QSI + HI}}\cdot {\rm{TZ + HR}}\cdot {\rm{TR}}} \right)}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + HA + HS + HG - }}{{\rm{F}}_1}\cdot {{\rm{Y}}_0}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {\mathrm{HA}}\cdot {{\mathrm{T}}_{\mathrm{a}}} + {\mathrm{HS}}\cdot {{\mathrm{T}}_{\mathrm{s}}} + {\mathrm{HG}}\cdot {{\mathrm{T}}_{\mathrm{g}}} + {{\mathrm{F}}_{\mathrm{1}}}\cdot \left( {{\mathrm{KI}}{{\mathrm{P}}_{\mathrm{t}}}{\mathrm{ + QSI + HI}}\cdot {\mathrm{TZ + HR}}\cdot {\mathrm{TR}}} \right)}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + HA + HS + HG - }}{{\mathrm{F}}_1}\cdot {{\mathrm{Y}}_0}}}} \right]{\mathrm{ }} \end{equation} \subsubsection{Case5: Y\(_{0}\)~ small, simple conductance, with movable insulation:}\label{case5-yux5f0-small-simple-conductance-with-movable-insulation} @@ -230,7 +230,7 @@ \subsubsection{Case6: Y\(_{0}\) not small, simple conductance, with movable insu From Equations~\ref{eq:HeatBalEqforTo}, ~\ref{eq:OutTempMovableInsulation} and~\ref{eq:InsideSurfTempHeatBalEq}: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{F}}_2}\cdot \left( {{\rm{QSM + HO}}\cdot {{\rm{T}}_{\rm{a}}}} \right) + {{\rm{F}}_1}\cdot \left( {{\rm{KI}}{{\rm{P}}_{\rm{t}}}{\rm{ + QSI + HI}}\cdot {\rm{TZ + HR}}\cdot {\rm{TR}}} \right)}}{{{{\rm{X}}_{\rm{0}}} + {\rm{UM - }}{{\rm{F}}_{\rm{2}}}\cdot {\rm{UM - }}{{\rm{F}}_{\rm{1}}}\cdot {{\rm{Y}}_{\rm{0}}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{F}}_2}\cdot \left( {{\mathrm{QSM + HO}}\cdot {{\mathrm{T}}_{\mathrm{a}}}} \right) + {{\mathrm{F}}_1}\cdot \left( {{\mathrm{KI}}{{\mathrm{P}}_{\mathrm{t}}}{\mathrm{ + QSI + HI}}\cdot {\mathrm{TZ + HR}}\cdot {\mathrm{TR}}} \right)}}{{{{\mathrm{X}}_{\mathrm{0}}} + {\mathrm{UM - }}{{\mathrm{F}}_{\mathrm{2}}}\cdot {\mathrm{UM - }}{{\mathrm{F}}_{\mathrm{1}}}\cdot {{\mathrm{Y}}_{\mathrm{0}}}}}} \right]{\mathrm{ }} \label{eq:HeatBalanceEquationCase6} \end{equation} @@ -239,7 +239,7 @@ \subsubsection{Case7: Y\(_{0}\)~ small, detailed conductance, with movable insul From Equations~\ref{eq:HeatBalEqforTo} and~\ref{eq:TOtEquationDetailedConductance}: \begin{equation} -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{Y}}_0}\cdot {\rm{T}}{{\rm{I}}_{{\rm{t - 1}}}}{\rm{ + }}{{\rm{F}}_{\rm{3}}}\left( {{\rm{QSM + HA}}\cdot {{\rm{T}}_{\rm{a}}}{\rm{ + HS}}\cdot {{\rm{T}}_{\rm{s}}}{\rm{ + HG}}\cdot {{\rm{T}}_{\rm{g}}}} \right)}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + UM - }}{{\rm{F}}_{\rm{3}}}\cdot {\rm{UM}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{Y}}_0}\cdot {\mathrm{T}}{{\mathrm{I}}_{{\mathrm{t - 1}}}}{\mathrm{ + }}{{\mathrm{F}}_{\mathrm{3}}}\left( {{\mathrm{QSM + HA}}\cdot {{\mathrm{T}}_{\mathrm{a}}}{\mathrm{ + HS}}\cdot {{\mathrm{T}}_{\mathrm{s}}}{\mathrm{ + HG}}\cdot {{\mathrm{T}}_{\mathrm{g}}}} \right)}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + UM - }}{{\mathrm{F}}_{\mathrm{3}}}\cdot {\mathrm{UM}}}}} \right]{\mathrm{ }} \label{eq:HeatBalanceEquationCase7} \end{equation} @@ -247,15 +247,11 @@ \subsubsection{Case8: Y\(_{0}\) not small, detailed conductance, with movable in From Equations~\ref{eq:HeatBalEqforTo}, ~\ref{eq:TOtEquationDetailedConductance} and~\ref{eq:InsideSurfTempHeatBalEq}: +{\medmuskip=0mu\thinmuskip=0mu\thickmuskip=0mu\nulldelimiterspace=0pt\scriptspace=0pt \begin{equation} -\medmuskip=0mu -\thinmuskip=0mu -\thickmuskip=0mu -\nulldelimiterspace=0pt -\scriptspace=0pt -{\rm{T}}{{\rm{O}}_{\rm{t}}}{\rm{ = }}\left[ {\frac{{{\rm{KO}}{{\rm{P}}_{\rm{t}}} + {\rm{QSO}} + {{\rm{F}}_1}\cdot \left( {{\rm{KI}}{{\rm{P}}_{\rm{t}}}{\rm{ + QSI + HI}}\cdot {\rm{TZ + HR}}\cdot {\rm{TR}}} \right){\rm{ + }}{{\rm{F}}_{\rm{3}}}\left( {{\rm{QSM + HA}}\cdot {{\rm{T}}_{\rm{a}}}{\rm{ + HS}}\cdot {{\rm{T}}_{\rm{s}}}{\rm{ + HG}}\cdot {{\rm{T}}_{\rm{g}}}} \right)}}{{{{\rm{X}}_{\rm{0}}}{\rm{ + UM - }}{{\rm{F}}_{\rm{3}}}\cdot {\rm{UM - }}{{\rm{F}}_{\rm{1}}}\cdot {{\rm{Y}}_{\rm{0}}}}}} \right]{\rm{ }} +{\mathrm{T}}{{\mathrm{O}}_{\mathrm{t}}}{\mathrm{ = }}\left[ {\frac{{{\mathrm{KO}}{{\mathrm{P}}_{\mathrm{t}}} + {\mathrm{QSO}} + {{\mathrm{F}}_1}\cdot \left( {{\mathrm{KI}}{{\mathrm{P}}_{\mathrm{t}}}{\mathrm{ + QSI + HI}}\cdot {\mathrm{TZ + HR}}\cdot {\mathrm{TR}}} \right){\mathrm{ + }}{{\mathrm{F}}_{\mathrm{3}}}\left( {{\mathrm{QSM + HA}}\cdot {{\mathrm{T}}_{\mathrm{a}}}{\mathrm{ + HS}}\cdot {{\mathrm{T}}_{\mathrm{s}}}{\mathrm{ + HG}}\cdot {{\mathrm{T}}_{\mathrm{g}}}} \right)}}{{{{\mathrm{X}}_{\mathrm{0}}}{\mathrm{ + UM - }}{{\mathrm{F}}_{\mathrm{3}}}\cdot {\mathrm{UM - }}{{\mathrm{F}}_{\mathrm{1}}}\cdot {{\mathrm{Y}}_{\mathrm{0}}}}}} \right]{\mathrm{ }} \label{eq:HeatBalanceEquationCase8} -\end{equation} +\end{equation}} \subsection{C++ Algorithm Examples}\label{c++-algorithm-examples} diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/transparent-insulation-material.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/transparent-insulation-material.tex index f87d8da087e..a9223f4bda6 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/transparent-insulation-material.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/transparent-insulation-material.tex @@ -49,7 +49,7 @@ \subsection{TIM- Basic Mathematical Model}\label{tim--basic-mathematical-model} Mathematical model to calculate amount of energy absorbed at the surface of moveable insulation (TIM) and at the Outside surface of the Wall. \begin{equation} -QSM = {\alpha_{TIM}}\cdot Incident\;Solar +QSM = {\alpha_{TIM}}\cdot Incident\;{Solar} \label{eq:QSMalphaIncSolar} \end{equation} diff --git a/doc/external-interfaces-application-guide/CMakeLists.txt b/doc/external-interfaces-application-guide/CMakeLists.txt index d43fde328f0..f42d9735314 100644 --- a/doc/external-interfaces-application-guide/CMakeLists.txt +++ b/doc/external-interfaces-application-guide/CMakeLists.txt @@ -30,3 +30,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/external-interfaces-application-guide/media/image037.png) create_doc_target("external-interfaces-application-guide" "ExternalInterfacesApplicationGuide") + +if(BUILD_HTML_DOCS) + create_html_doc_target("external-interfaces-application-guide" "external-interfaces-application-guide") +endif() diff --git a/doc/external-interfaces-application-guide/src/external-interface-s/coupling-energyplus-with-functional-mock-up.tex b/doc/external-interfaces-application-guide/src/external-interface-s/coupling-energyplus-with-functional-mock-up.tex index 8d296cb3d52..f5642e9d8f6 100644 --- a/doc/external-interfaces-application-guide/src/external-interface-s/coupling-energyplus-with-functional-mock-up.tex +++ b/doc/external-interfaces-application-guide/src/external-interface-s/coupling-energyplus-with-functional-mock-up.tex @@ -109,7 +109,7 @@ \subsection{Case 1: Linking two systems through differential variables}\label{ca dx\(_{1}\)/dt = f\(_{1}\)(x\(_{1}\), x\(_{2}\)), with x\(_{1}\)(0) = x\(_{1,0}\) , -dx\(_{2}\)/dt = f\(_{2}\)(x\(_{2}\), x\(_{1}\)), with x\(_{2}\)(0) = x\(_{2,0\\ .}\) +dx\(_{2}\)/dt = f\(_{2}\)(x\(_{2}\), x\(_{1}\)), with x\(_{2}\)(0) = x\(_{2,0}\). Let \(N\in\textbf{N}\) ~denote the number of time steps and let \emph{t\(_{k}\)} with \(k\in\left\{1,...,N\right\}\) denote the time steps. We will use the subscripts \emph{1} and \emph{2} to denote the variables and the functions that compute the next state variable of the simulator \emph{1} and \emph{2}, respectively. diff --git a/doc/getting-started/CMakeLists.txt b/doc/getting-started/CMakeLists.txt index 57c1e3319de..755faa8c622 100644 --- a/doc/getting-started/CMakeLists.txt +++ b/doc/getting-started/CMakeLists.txt @@ -70,3 +70,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/getting-started/media/image024.jpg) create_doc_target("getting-started" "GettingStarted") + +if(BUILD_HTML_DOCS) + create_html_doc_target("getting-started" "getting-started") +endif() diff --git a/doc/header.tex b/doc/header.tex index d8f10696f47..20d48f9822d 100644 --- a/doc/header.tex +++ b/doc/header.tex @@ -55,18 +55,6 @@ keepspaces=true, } -% An environment for describing variables in equations -\newcommand*\wherelistlabel[1]{\ensuremath{#1 =}} -\newenvironment{wherelist} - {\begin{list} - {} - {\addtolength{\leftmargin}{2em} - \setlength{\itemsep}{0pt} - \let\makelabel=\wherelistlabel - } - } -{\end{list} } - % Provide better table spacing % From https://www.inf.ethz.ch/personal/markusp/teaching/guides/guide-tables.pdf \renewcommand{\arraystretch}{1.2} diff --git a/doc/html/bootstrap-tables.lua b/doc/html/bootstrap-tables.lua new file mode 100644 index 00000000000..8e392259ea7 --- /dev/null +++ b/doc/html/bootstrap-tables.lua @@ -0,0 +1,125 @@ +local function trim(value) + return value:gsub("\194\160", ""):match("^%s*(.-)%s*$") +end + +local function split_cells(line) + local cells = {} + local start = 1 + while #cells < 9 do + local separator = line:find("&", start, true) + if not separator then + return nil + end + table.insert(cells, trim(line:sub(start, separator - 1))) + start = separator + 1 + end + table.insert(cells, trim(line:sub(start))) + return cells +end + +local function extract_lines(el) + local lines = {} + for _, block in ipairs(el.content) do + local current = pandoc.Inlines({}) + for _, inline in ipairs(block.content or {}) do + if inline.t == "LineBreak" then + table.insert(lines, trim(pandoc.utils.stringify(current))) + current = pandoc.Inlines({}) + elseif inline.t ~= "Span" then + current:insert(inline) + end + end + table.insert(lines, trim(pandoc.utils.stringify(current))) + end + return lines +end + +local function is_description(value) + return value:match("^Air mass 1%.5") + or value:match("^37 degree tilted") + or value:match("^Based on ISO") + or value:match("^ISO%-9845") + or value:match("^Photopic response") + or value:match("^Based on CIE") + or value:match("^derived from Optics5") + or value:match("^which is the same") + or value:match("^Wavelengths %(microns%)") +end + +local function text_blocks(value) + return { pandoc.Plain({ pandoc.Str(value) }) } +end + +function Div(el) + if not el.classes:includes("tabular") then + return nil + end + + local lines = extract_lines(el) + local rows = {} + local identifier + local caption + + for _, line in ipairs(lines) do + local values = split_cells(line) + if values then + if values[1]:match("^Air mass 1%.5") then + identifier = "table:solar-spectral-irradiance-function" + caption = "Solar spectral irradiance function." + elseif values[1]:match("^Photopic response") then + identifier = "table:photopic-response-function" + caption = "Photopic response function." + end + + local cells = {} + if is_description(values[1]) then + cells[1] = pandoc.Cell(text_blocks(values[1]), pandoc.AlignLeft, 1, 10) + else + for column, value in ipairs(values) do + cells[column] = pandoc.Cell(text_blocks(value), pandoc.AlignRight) + end + end + table.insert(rows, pandoc.Row(cells)) + end + end + + if not identifier then + return nil + end + + local colspecs = {} + for _ = 1, 10 do + table.insert(colspecs, { pandoc.AlignRight }) + end + + return pandoc.Table( + { long = text_blocks(caption) }, + colspecs, + pandoc.TableHead({}), + { + { + attr = pandoc.Attr(), + head = {}, + body = rows, + row_head_columns = 0, + }, + }, + pandoc.TableFoot({}), + pandoc.Attr(identifier, { "table", "table-bordered", "table-striped", "table-sm" }) + ) +end + +function Span(el) + if el.identifier == "table:solar-spectral-irradiance-function" + or el.identifier == "table:photopic-response-function" then + return {} + end +end + +function Table(el) + el.attr.classes:insert("table") + el.attr.classes:insert("table-bordered") + el.attr.classes:insert("table-striped") + el.attr.classes:insert("table-sm") + return el +end diff --git a/doc/html/footer.html b/doc/html/footer.html new file mode 100644 index 00000000000..78e6716a70f --- /dev/null +++ b/doc/html/footer.html @@ -0,0 +1,7 @@ + +
+
+ EnergyPlus is funded by the U.S. Department of Energy and is developed by LBNL, ORNL, NLR, PNNL, and other academic and private contributors.
+ EnergyPlus License. +
+
diff --git a/doc/html/header.html b/doc/html/header.html new file mode 100644 index 00000000000..4a5ce6546af --- /dev/null +++ b/doc/html/header.html @@ -0,0 +1,2 @@ + + diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 00000000000..479a674645c --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,121 @@ + + + + + + EnergyPlus Documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+ EnergyPlus is funded by the U.S. Department of Energy and managed by the National Laboratory of the Rockies + (NLR).
+ EnergyPlus is developed in collaboration with NLR, various DOE National Laboratories, academic institutions, and private firms.
+ EnergyPlus License. +
+
+ + + + + + diff --git a/doc/html/media/ep_nobg.png b/doc/html/media/ep_nobg.png new file mode 100644 index 00000000000..2517f4bcca9 Binary files /dev/null and b/doc/html/media/ep_nobg.png differ diff --git a/doc/html/media/ep_nobg.svg b/doc/html/media/ep_nobg.svg new file mode 100644 index 00000000000..4a91e57f30f --- /dev/null +++ b/doc/html/media/ep_nobg.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/numbered-cross-references.lua b/doc/html/numbered-cross-references.lua new file mode 100644 index 00000000000..60a100ba6a8 --- /dev/null +++ b/doc/html/numbered-cross-references.lua @@ -0,0 +1,465 @@ +-- Add the table, figure, and equation numbering that Pandoc's LaTeX reader +-- does not preserve completely in HTML. The report document class resets +-- all three counters at every chapter, so the HTML numbers use +-- chapter.counter too. + +local chapter = 0 +local table_counter = 0 +local figure_counter = 0 +local equation_counter = 0 +local references = {} +local source_table_numbers = {} +local source_figure_numbers = {} + +local numbered_environments = { + equation = "single", + align = "rows", + gather = "rows", + multline = "single", + eqnarray = "rows", +} + +local function attr(identifier, classes, attributes) + return pandoc.Attr(identifier or "", classes or {}, attributes or {}) +end + +local function number_string(counter) + return tostring(chapter) .. "." .. tostring(counter) +end + +local function has_class(el, class_name) + return el.classes and el.classes:includes(class_name) +end + +local function read_file(path) + local file = io.open(path, "r") + if not file then + return nil + end + local contents = file:read("*a") + file:close() + return contents +end + +local function without_comments(source) + local lines = {} + for line in (source .. "\n"):gmatch("(.-)\n") do + local search_from = 1 + while true do + local comment = line:find("%", search_from, true) + if not comment then + break + end + + local backslashes = 0 + local index = comment - 1 + while index > 0 and line:sub(index, index) == "\\" do + backslashes = backslashes + 1 + index = index - 1 + end + if backslashes % 2 == 0 then + line = line:sub(1, comment - 1) + break + end + search_from = comment + 1 + end + lines[#lines + 1] = line + end + return table.concat(lines, "\n") +end + +local function with_tex_extension(path) + if path:match("%.tex$") then + return path + end + return path .. ".tex" +end + +local function expanded_source(path, document_directory, active) + path = with_tex_extension(path) + local source = read_file(path) + if not source or active[path] then + return "" + end + + active[path] = true + local current_directory = pandoc.path.directory(path) + source = without_comments(source) + source = source:gsub("\\input%s*{([^}]+)}", function(input) + local candidates = { + pandoc.path.join({ document_directory, with_tex_extension(input) }), + pandoc.path.join({ current_directory, with_tex_extension(input) }), + } + for _, candidate in ipairs(candidates) do + if read_file(candidate) then + return expanded_source(candidate, document_directory, active) + end + end + return "" + end) + active[path] = nil + return source +end + +local function next_source_structure(source, position) + local candidates = {} + local chapter_start, chapter_end = source:find("\\chapter%s*%b{}", position) + if chapter_start then + candidates[#candidates + 1] = { chapter_start, chapter_end, "chapter" } + end + for _, environment in ipairs({ "table", "longtable", "figure" }) do + local start_at, end_at = source:find("\\begin%s*{" .. environment .. "}", position) + if start_at then + candidates[#candidates + 1] = { start_at, end_at, environment } + end + end + table.sort(candidates, function(left, right) return left[1] < right[1] end) + return candidates[1] +end + +local function collect_source_object_numbers() + local input_file = PANDOC_STATE.input_files[1] + if not input_file or input_file == "-" then + return + end + + local document_directory = pandoc.path.directory(input_file) + local source = expanded_source(input_file, document_directory, {}) + local source_chapter = 0 + local source_table_counter = 0 + local source_figure_counter = 0 + local position = 1 + + while true do + local item = next_source_structure(source, position) + if not item then + break + end + + if item[3] == "chapter" then + source_chapter = source_chapter + 1 + source_table_counter = 0 + source_figure_counter = 0 + position = item[2] + 1 + else + local environment = item[3] + local _, environment_end = source:find("\\end%s*{" .. environment .. "}", item[2] + 1) + if not environment_end then + position = item[2] + 1 + else + local body = source:sub(item[2] + 1, environment_end) + local has_numbered_caption = body:find("\\caption%s*[%[{]") ~= nil + if environment == "figure" then + if has_numbered_caption then + source_figure_counter = source_figure_counter + 1 + end + for label in body:gmatch("\\label%s*{([^}]+)}") do + source_figure_numbers[label] = tostring(source_chapter) .. "." .. tostring(source_figure_counter) + end + else + if environment == "longtable" or has_numbered_caption then + source_table_counter = source_table_counter + 1 + end + for label in body:gmatch("\\label%s*{([^}]+)}") do + if label:match("^table:") or label:match("^tab:") then + source_table_numbers[label] = tostring(source_chapter) .. "." .. tostring(source_table_counter) + end + end + end + position = environment_end + 1 + end + end + end +end + +collect_source_object_numbers() + +local function prepend_caption_number(caption, kind, number) + local prefix = pandoc.Inlines({ + pandoc.Str(kind), + pandoc.Space(), + pandoc.Str(number .. ":"), + pandoc.Space(), + }) + + if #caption.long == 0 then + caption.long = pandoc.Blocks({ pandoc.Plain(prefix) }) + return + end + + local first = caption.long[1] + if first.t == "Plain" or first.t == "Para" then + for index = #prefix, 1, -1 do + first.content:insert(1, prefix[index]) + end + else + caption.long:insert(1, pandoc.Plain(prefix)) + end +end + +local function strip_outer_environment(tex) + local environment = tex:match("^%s*\\begin%s*{([^}]+)}") + if not environment then + return nil, nil + end + + local body = tex:gsub("^%s*\\begin%s*{[^}]+}%s*", "", 1) + body = body:gsub("%s*\\end%s*{[^}]+}%s*$", "", 1) + return environment, body +end + +local function split_top_level_rows(body) + local rows = {} + local row_start = 1 + local nested_depth = 0 + local index = 1 + + while index <= #body do + if body:sub(index, index + 6) == "\\begin{" then + nested_depth = nested_depth + 1 + index = index + 7 + elseif body:sub(index, index + 4) == "\\end{" then + nested_depth = math.max(0, nested_depth - 1) + index = index + 5 + elseif nested_depth == 0 and body:sub(index, index + 1) == "\\\\" then + rows[#rows + 1] = body:sub(row_start, index - 1) + row_start = index + 2 + index = index + 2 + else + index = index + 1 + end + end + + rows[#rows + 1] = body:sub(row_start) + return rows +end + +local function labels_in(value) + local labels = {} + for label in value:gmatch("\\label%s*{([^}]+)}") do + labels[#labels + 1] = label + end + return labels +end + +local function clean_equation_tex(tex) + tex = tex:gsub("\\label%s*{[^}]+}", "") + tex = tex:gsub("\\nonumber", "") + tex = tex:gsub("\\notag", "") + return tex +end + +local function number_equation(math) + local environment, body = strip_outer_environment(math.text) + local mode = environment and numbered_environments[environment] + if not mode or environment:sub(-1) == "*" then + return nil + end + + local rows = mode == "rows" and split_top_level_rows(body) or { body } + local numbers = {} + + for _, row in ipairs(rows) do + local suppressed = row:match("\\nonumber") or row:match("\\notag") + if not suppressed then + equation_counter = equation_counter + 1 + local number = number_string(equation_counter) + local labels = labels_in(row) + numbers[#numbers + 1] = { number = number, labels = labels } + for _, label in ipairs(labels) do + references[label] = { number = number, kind = "equation" } + end + end + end + + math.text = clean_equation_tex(math.text) + return numbers +end + +local function equation_number_blocks(numbers) + local blocks = pandoc.Blocks({}) + for _, entry in ipairs(numbers) do + local identifier = entry.labels[1] or "" + local number = pandoc.Span( + { pandoc.Str("(" .. entry.number .. ")") }, + attr(identifier, { "equation-number" }, { ["data-number"] = entry.number }) + ) + local inlines = pandoc.Inlines({ number }) + + -- It is unusual for one equation row to have multiple labels, but every + -- LaTeX label still needs a valid HTML destination. + for index = 2, #entry.labels do + inlines:insert(pandoc.Span({}, attr(entry.labels[index], { "equation-alias" }))) + end + blocks:insert(pandoc.Plain(inlines)) + end + return blocks +end + +local function display_equation(math, numbers) + local number_values = {} + for _, entry in ipairs(numbers) do + number_values[#number_values + 1] = entry.number + end + + return pandoc.Div( + { + pandoc.Div({ pandoc.Plain({ math }) }, attr("", { "equation-math" })), + pandoc.Div(equation_number_blocks(numbers), attr("", { "equation-numbers" })), + }, + attr("", { "equation" }, { ["data-number"] = table.concat(number_values, ",") }) + ) +end + +local function inline_equation(math, numbers) + local number_inlines = pandoc.Inlines({}) + for _, block in ipairs(equation_number_blocks(numbers)) do + for _, inline in ipairs(block.content) do + number_inlines:insert(inline) + end + end + return pandoc.Span( + { + pandoc.Span({ math }, attr("", { "equation-math" })), + pandoc.Span(number_inlines, attr("", { "equation-numbers" })), + }, + attr("", { "equation", "equation-inline" }) + ) +end + +local function meaningful_inlines(inlines) + local result = {} + for _, inline in ipairs(inlines) do + if inline.t ~= "Space" and inline.t ~= "SoftBreak" and inline.t ~= "LineBreak" then + result[#result + 1] = inline + end + end + return result +end + +local numbering_filter = { + traverse = "topdown", + + Header = function(el) + if el.level == 1 and not has_class(el, "unnumbered") then + chapter = chapter + 1 + table_counter = 0 + figure_counter = 0 + equation_counter = 0 + end + end, + + Table = function(el) + -- LaTeX advances the table counter at \caption, not at \begin{table}. + -- Pandoc also represents bare tabular environments as Table nodes, so do + -- not number those uncaptioned layout tables. + if pandoc.utils.stringify(el.caption) == "" then + return nil + end + + local number = source_table_numbers[el.identifier] + if number then + table_counter = tonumber(number:match("%.(%d+)$")) or table_counter + else + table_counter = table_counter + 1 + number = number_string(table_counter) + end + el.attributes["data-number"] = number + prepend_caption_number(el.caption, "Table", number) + + if el.identifier ~= "" then + references[el.identifier] = { number = number, kind = "table" } + end + return el + end, + + Figure = function(el) + if pandoc.utils.stringify(el.caption) == "" then + return nil + end + + local number = source_figure_numbers[el.identifier] + if number then + figure_counter = tonumber(number:match("%.(%d+)$")) or figure_counter + else + figure_counter = figure_counter + 1 + number = number_string(figure_counter) + end + el.attributes["data-number"] = number + prepend_caption_number(el.caption, "Figure", number) + + if el.identifier ~= "" then + references[el.identifier] = { number = number, kind = "figure" } + local remove_duplicate_anchor = { + Span = function(span) + if span.identifier == el.identifier then + return {} + end + end, + } + el.caption.long = el.caption.long:walk(remove_duplicate_anchor) + el.content = el.content:walk(remove_duplicate_anchor) + end + return el + end, + + Para = function(el) + local meaningful = meaningful_inlines(el.content) + if #meaningful == 1 and meaningful[1].t == "Math" and meaningful[1].mathtype == "DisplayMath" then + local numbers = number_equation(meaningful[1]) + if numbers and #numbers > 0 then + return display_equation(meaningful[1], numbers), false + end + return nil + end + + local changed = false + for index, inline in ipairs(el.content) do + if inline.t == "Math" and inline.mathtype == "DisplayMath" then + local numbers = number_equation(inline) + if numbers and #numbers > 0 then + el.content[index] = inline_equation(inline, numbers) + changed = true + end + end + end + if changed then + return el, false + end + return nil + end, + + -- Some LaTeX grouping commands cause Pandoc to put a display equation + -- inside a Span. Those equations are not direct children of their Para, + -- so handle them during the normal inline traversal. + Math = function(el) + if el.mathtype ~= "DisplayMath" then + return nil + end + local numbers = number_equation(el) + if numbers and #numbers > 0 then + return inline_equation(el, numbers), false + end + return nil + end, +} + +local reference_filter = { + Link = function(el) + local label = el.attributes.reference or el.target:match("^#(.+)$") + local reference = label and references[label] + if not reference then + return nil + end + + local reference_type = el.attributes["reference-type"] + local text = reference.number + if reference.kind == "equation" and reference_type == "eqref" then + text = "(" .. text .. ")" + end + el.content = pandoc.Inlines({ pandoc.Str(text) }) + return el + end, +} + +return { numbering_filter, reference_filter } diff --git a/doc/html/object-index.lua b/doc/html/object-index.lua new file mode 100644 index 00000000000..56ec7b13f17 --- /dev/null +++ b/doc/html/object-index.lua @@ -0,0 +1,34 @@ +-- Collect all h3 headings (object class names) and append an alphabetical Object Index + +local objects = {} + +function Header(el) + if el.level == 3 and el.identifier ~= "" then + table.insert(objects, { + text = pandoc.utils.stringify(el), + id = el.identifier + }) + end +end + +function Pandoc(doc) + if #objects == 0 then return doc end + + -- Sort alphabetically (case-insensitive) + table.sort(objects, function(a, b) + return a.text:lower() < b.text:lower() + end) + + -- Build the index list + local items = {} + for _, obj in ipairs(objects) do + local link = pandoc.Link(obj.text, "#" .. obj.id) + table.insert(items, {pandoc.Plain({link})}) + end + + -- Append as a new top-level section + table.insert(doc.blocks, pandoc.Header(1, "Object Index", pandoc.Attr("object-index"))) + table.insert(doc.blocks, pandoc.BulletList(items)) + + return doc +end diff --git a/doc/html/style.css b/doc/html/style.css new file mode 100644 index 00000000000..97eb8464771 --- /dev/null +++ b/doc/html/style.css @@ -0,0 +1,314 @@ +/* Global Variables */ +:root { + --navbar-padding: 8px; + --navbar-height: calc(42px + 2 * var(--navbar-padding)); + --navbar-font-color: 255, 255, 255; + --navbar-bg-color: 41, 128, 185; + --bd-toc-color: #404040; + --bd-pre-bg: #f3f6f6; + --ep-content-bg: #fcfcfc; + --ep-heading-color: #404040; + --ep-link-color: #2980b9; + --ep-link-hover-color: #1f618d; + --bs-primary: var(--ep-link-color); + --bs-primary-rgb: 41, 128, 185; + --bs-link-color: var(--ep-link-color); + --bs-link-color-rgb: 41, 128, 185; + --bs-link-hover-color: var(--ep-link-hover-color); + --bs-link-hover-color-rgb: 31, 97, 141; +} + +/* Offset anchor scroll for fixed navbar */ +html { + scroll-padding-top: calc(var(--navbar-height) + 1rem); +} + +body { + color: #404040; + background-color: var(--ep-content-bg); + font-family: Lato, proxima-nova, "Helvetica Neue", Arial, sans-serif; + line-height: 1.5; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: var(--ep-heading-color); + font-family: "Roboto Slab", ff-tisa-web-pro, Georgia, Arial, sans-serif; + font-weight: 700; +} + +h1 { + font-size: 1.75rem; +} + +h2 { + font-size: 1.5rem; +} + +h3 { + font-size: 1.25rem; +} + +h4 { + font-size: 1.15rem; +} + +h5 { + font-size: 1.1rem; +} + +/* General Link Styles */ +a { + color: var(--ep-link-color); + text-decoration: none; +} + +a:hover, +a:focus { + color: var(--ep-link-hover-color); + text-decoration: underline; +} + +/* Layout Styles */ +.bd-layout { + margin-top: calc(var(--navbar-height) + 1.5rem); + max-width: 1500px; + padding-right: 3.236rem; + padding-left: 3.236rem; +} + +/* Code Block Styles */ +.hljs { + padding: 1.25rem 1em !important; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + background-color: var(--bd-pre-bg); +} + +/* Heading Anchor Links */ +.anchor-link { + opacity: 0; + margin-left: 0.25rem; + font-size: 0.75em; + transition: opacity 0.15s; +} + +h1:hover .anchor-link, +h2:hover .anchor-link, +h3:hover .anchor-link, +h4:hover .anchor-link, +h5:hover .anchor-link, +h6:hover .anchor-link { + opacity: 0.5; +} + +.anchor-link:hover { + opacity: 1 !important; +} + +/* I/O Reference heading hierarchy: h2 Group, h3 Object, h4 Inputs/Outputs, h5 Field */ +.doc-input-output-reference .bd-content h2 { + border-bottom: 2px solid var(--bs-primary); + padding-bottom: 0.5rem; + margin-top: 2.5rem; +} + +.doc-input-output-reference .bd-content h3 { + border-left: 4px solid var(--bs-primary); + padding-left: 0.75rem; + border-bottom: 1px solid var(--bs-border-color); + padding-bottom: 0.4rem; + margin-top: 2rem; +} + +.doc-input-output-reference .bd-content h4 { + display: inline-block; + padding: 0.2rem 0.75rem; + border-radius: var(--bs-border-radius); + font-size: 1.1rem; + margin-top: 1.5rem; + background-color: var(--bs-tertiary-bg); + border: 1px solid var(--bs-border-color); +} + +.doc-input-output-reference .bd-content h4.heading-inputs { + background-color: rgba(var(--bs-success-rgb), 0.1); + border-color: rgba(var(--bs-success-rgb), 0.3); +} + +.doc-input-output-reference .bd-content h4.heading-outputs { + background-color: rgba(var(--bs-info-rgb), 0.1); + border-color: rgba(var(--bs-info-rgb), 0.3); +} + +.doc-input-output-reference .bd-content h5 { + border-left: 3px solid rgba(var(--bs-secondary-rgb), 0.4); + padding-left: 0.6rem; + font-size: 1rem; + margin-top: 1.25rem; +} + +/* Blockquote Styles */ +blockquote { + font-size: 1rem; + color: #606060; + margin: 1rem 0 1.5rem; + padding-left: 1.5rem; + border-left: 3px solid var(--bs-secondary-border-subtle); +} + +/* Numbered display equations */ +.equation { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + align-items: stretch; + column-gap: 1rem; + margin: 1rem 0; +} + +.equation-math { + align-self: center; + min-width: 0; + overflow-x: auto; + overflow-y: hidden; + padding-block: 0.25rem; + text-align: center; +} + +.equation-math math[display="block"] { + margin: 0 auto; +} + +.equation-numbers { + display: flex; + flex-direction: column; + justify-content: space-around; + min-width: max-content; +} + +.equation-numbers > p { + margin: 0; +} + +.equation-number:target { + background-color: rgba(var(--bs-warning-rgb), 0.35); +} + +.equation-inline { + display: grid; + margin: 1rem 0; + text-align: initial; + width: 100%; +} + +/* Pagination Styles */ +.pagination { + margin-top: 3rem; +} + +/* Footer Styles */ +.footer { + font-size: 0.875rem; +} + +/* Navbar Styles */ +.navbar, +.navbar::after { + padding-top: var(--navbar-padding); + padding-bottom: var(--navbar-padding); + background-image: linear-gradient(rgba(var(--navbar-bg-color), 1), rgba(var(--navbar-bg-color), 0.95)); +} + +/* Navbar Brand Styles */ +.navbar .navbar-brand, +.navbar .navbar-brand:hover { + color: rgba(var(--navbar-font-color), 1); + display: flex; + align-items: center; + gap: 0.5rem; + font-weight: 700; + transform: none; + text-decoration: none; +} + +/* Navbar Items Styles */ +.navbar .nav-link, +.navbar .nav-line, +.navbar .navbar-toggler { + color: rgba(var(--navbar-font-color), 0.85); +} + +.navbar .nav-link:hover, +.navbar .nav-link.active, +.navbar .nav-link.show, +.navbar .navbar-toggler:hover { + color: rgba(var(--navbar-font-color), 1); +} + +/* Navbar Dropdown Menu Styles */ +.navbar .dropdown-menu { + --bs-dropdown-link-active-bg: unset; + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); +} + +/* Navbar Toggler Styles */ +.navbar .navbar-toggler { + border: none; +} + +/* Search trigger button */ +.search-trigger { + font-size: 0.875rem; + white-space: nowrap; +} + +.search-trigger kbd { + font-size: 0.7rem; + padding: 0.1rem 0.35rem; + border-radius: 3px; + border: 1px solid rgba(255, 255, 255, 0.3); + background: rgba(255, 255, 255, 0.1); +} + +/* Search modal */ +#searchModal .modal-body { + max-height: 60vh; +} + +#searchModal .search-result { + padding: 0.6rem 1rem; + border-left: 3px solid transparent; +} + +#searchModal .search-result.active { + border-left-color: var(--bs-primary); +} + +#searchModal .search-result mark { + padding: 0; + background-color: rgba(var(--bs-warning-rgb), 0.35); + border-radius: 2px; +} + +/* Scrollable Navbar for Small Screens */ +@media (max-width: 992px) { + .bd-layout { + padding-right: 1rem; + padding-left: 1rem; + } + + .scrollable-navbar { + max-height: calc(100vh - var(--navbar-height)); + overflow-y: auto; + scrollbar-width: none; /* Hide scrollbar in Firefox */ + } + + /* Hide scrollbar in Chrome, Edge, Safari */ + .scrollable-navbar::-webkit-scrollbar { + display: none; + } +} diff --git a/doc/html/template_chunked.html b/doc/html/template_chunked.html new file mode 100644 index 00000000000..8c25b97261d --- /dev/null +++ b/doc/html/template_chunked.html @@ -0,0 +1,363 @@ + + + + + + + $for(author-meta)$ + + $endfor$ + $if(date-meta)$ + + $endif$ + $if(keywords)$ + + $endif$ + $if(description-meta)$ + + $endif$ + $if(title-prefix)$$title-prefix$ – $endif$$pagetitle$ + + + + + + + + + + + + + + + $for(css)$ + + $endfor$ + + + $for(header-includes)$ + $header-includes$ + $endfor$ + + $if(math)$ + $math$ + $endif$ + + + + + +
+
+ + $if(top)$ + $-- top is set on sub-pages (provides link back to index); skip title block here + $else$ + $-- top is unset: we ARE the index page; show title block + $if(title)$ +
+

$title$

+ $if(subtitle)$ +

$subtitle$

+ $endif$ + $for(author)$ +

$author$

+ $endfor$ + $if(date)$ +

$date$

+ $endif$ +
+ $endif$ + $endif$ + + $if(toc)$ + +
+

Table of contents

+ +
+ $endif$ + + +
+ $body$ +
+ + + + +
+
+ + + $for(include-after)$ + $include-after$ + $endfor$ + + + + + + + + + + + + + + + $if(mathjax)$ + + + $endif$ + + + + + diff --git a/doc/input-output-reference/CMakeLists.txt b/doc/input-output-reference/CMakeLists.txt index c1182b974bf..4c472adac89 100644 --- a/doc/input-output-reference/CMakeLists.txt +++ b/doc/input-output-reference/CMakeLists.txt @@ -317,3 +317,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/input-output-reference/media/HW_reset.png) create_doc_target("input-output-reference" "InputOutputReference") + +if(BUILD_HTML_DOCS) + create_html_doc_target("input-output-reference" "input-output-reference") +endif() diff --git a/doc/input-output-reference/html.sh b/doc/input-output-reference/html.sh new file mode 100755 index 00000000000..9974aa05dce --- /dev/null +++ b/doc/input-output-reference/html.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Convenience wrapper for manually building the chunked HTML doc without going through CMake. +# The actual build (used by `cmake --build . --target zHTML_input-output-reference` when +# BUILD_HTML_DOCS=ON) lives in ../cmake/BuildHtmlDocumentation.cmake and ../cmake/build_search_index.py. +set -euo pipefail +cd "$(dirname "$0")" + +ASSETS=../html + +rm -Rf chunked/ + +pandoc --to=chunkedhtml \ + --mathml \ + --standalone=true \ + --table-of-contents=true \ + --split-level=2 \ + --output=chunked \ + --template "$ASSETS/template_chunked.html" \ + --css=style.css \ + --number-sections=false \ + --include-in-header "$ASSETS/header.html" \ + --include-after-body "$ASSETS/footer.html" \ + --lua-filter="$ASSETS/bootstrap-tables.lua" \ + --lua-filter="$ASSETS/object-index.lua" \ + input-output-reference.tex + +# Build search index from sitemap (levels 2, 3 & 5) +python3 "../cmake/build_search_index.py" chunked/sitemap.json chunked/search-index.js + +# Copy assets that pandoc doesn't copy for chunked output +cp "$ASSETS/style.css" chunked/ +mkdir -p chunked/media +cp ../../release/ep_nobg.svg chunked/media/ diff --git a/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex b/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex index a9f7dcdb00b..3ffefe5e1c9 100644 --- a/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex +++ b/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex @@ -3165,7 +3165,7 @@ \subsubsection{Inputs}\label{inputs-14-005} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil (C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil (C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air (C) diff --git a/doc/input-output-reference/src/input-for-output.tex b/doc/input-output-reference/src/input-for-output.tex index 59dd6ad94a2..048ffe61fbe 100644 --- a/doc/input-output-reference/src/input-for-output.tex +++ b/doc/input-output-reference/src/input-for-output.tex @@ -2503,13 +2503,13 @@ \subsection{OutputControl:Timestamp}\label{outputcontrol_timestamp} Controls the format of the timestamp used in the native CSV and JSON outputs when requested using \hyperref[outputcontrolfiles]{OutputControl:Files}. The default timestamp is formatted as ``$MM$/$DD$ $hh$:$mm$:$ss$'', where -\begin{wherelist} -\item[MM] the two-digit month, -\item[DD] the two-digit day of the month, -\item[hh] the two-digit hours since the beginning of the day, -\item[mm] the two-digit minutes since the beginning of the last hour, and -\item[ss] the two-digit seconds (which is always ``00''). -\end{wherelist} +\begin{description} +\item[\(MM =\)] the two-digit month, +\item[\(DD =\)] the two-digit day of the month, +\item[\(hh =\)] the two-digit hours since the beginning of the day, +\item[\(mm =\)] the two-digit minutes since the beginning of the last hour, and +\item[\(ss =\)] the two-digit seconds (which is always ``00''). +\end{description} % The time portion of this timestamp has traditionally been the elapsed time since the beginning of the day and associates values with the elapsed time at the end of the interval of interest. For example, the timestamp for the interval from 1~AM to 2~AM on @@ -2519,14 +2519,14 @@ \subsection{OutputControl:Timestamp}\label{outputcontrol_timestamp} 2~AM on December 7 is written as ``12/07 01:00:00'' and 24 will never appear as the hours value (but 00 will). The ISO 8601 timestamp format is ``$YYYY$-$MM$-$DD$T$hh$:$mm$:$ss$'' where -\begin{wherelist} -\item[YYYY] the four-digit year, -\item[MM] the two-digit month, -\item[DD] the two-digit day of the month, -\item[hh] the two-digit hours since the beginning of the day, -\item[mm] the two-digit minutes since the beginning of the last hour, -\item[ss] the two-digit seconds (which is always ``00''), -\end{wherelist} +\begin{description} +\item[\(YYYY =\)] the four-digit year, +\item[\(MM =\)] the two-digit month, +\item[\(DD =\)] the two-digit day of the month, +\item[\(hh =\)] the two-digit hours since the beginning of the day, +\item[\(mm =\)] the two-digit minutes since the beginning of the last hour, +\item[\(ss =\)] the two-digit seconds (which is always ``00''), +\end{description} % and a capital letter ``T'' separates the time portion of the timestamp from the date portion. The timestamp for the interval from 1~AM to 2~AM on December 7, 2022 is written either as diff --git a/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex b/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex index 1585603cf82..e07679430da 100644 --- a/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex +++ b/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex @@ -2276,7 +2276,7 @@ \subsubsection{Inputs}\label{inputs-13} This field is used to enter a value for the coefficient used to determine natural air exchanges from wind. Wind will cause exterior air to move in and out of the cavity. Cv is an arbitrary coefficient used to model the effectiveness of openings and depends on opening geometry and the orientation with respect to the wind. Cv should probably be in the range 0.05 to 0.65. Increasing Cv will increase the amount of natural ventilation. The following equation shows how Cv is used in the program to predict the volumetric flow rate due to wind: \begin{equation} - \dot{V}_{\rm{wind}} = C_v A_{\rm{in}} U_{\infty} + \dot{V}_{\mathrm{wind}} = C_v A_{\mathrm{in}} U_{\infty} \end{equation} \paragraph{Field: Discharge Coefficient for Openings with Respect to Buoyancy Driven Flow}\label{field-discharge-coefficient-for-openings-with-respect-to-buoyancy-driven-flow} diff --git a/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex b/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex index f05ddfc5b88..3b9ab2cfc32 100644 --- a/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex +++ b/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex @@ -450,11 +450,11 @@ \subsubsection{Inputs}\label{inputs-3-000} The control tolerance for the unit heating output. The unit is controlled by matching the unit output to the zone demand. The model must be numerically inverted to obtain a specified output. The convergence tolerance is the error tolerance used to terminate the numerical inversion procedure. Basically, this is the fraction: \begin{equation} - \frac{\left| Q_{\rm{unit, out}} - Q_{\rm{zone load}} \right|}{Q_{\rm{zone load}}} \le \rm{ConvergenceTolerance} + \frac{\left| Q_{\mathrm{unit, out}} - Q_{\mathrm{zone load}} \right|}{Q_{\mathrm{zone load}}} \le \mathrm{ConvergenceTolerance} \end{equation} % \begin{equation} -% \frac{\left| Q_{\rm{PIU, out}} - Q_{\rm{zone load}} \right|}{Q_{\rm{zone load}}} \le \rm{ConvergenceTolerance} +% \frac{\left| Q_{\mathrm{PIU, out}} - Q_{\mathrm{zone load}} \right|}{Q_{\mathrm{zone load}}} \le \mathrm{ConvergenceTolerance} % \end{equation} The default is 0.001. diff --git a/doc/input-output-reference/src/overview/group-airflow-network.tex b/doc/input-output-reference/src/overview/group-airflow-network.tex index 61f3b7c38e8..6d7d1ce55c7 100644 --- a/doc/input-output-reference/src/overview/group-airflow-network.tex +++ b/doc/input-output-reference/src/overview/group-airflow-network.tex @@ -301,7 +301,7 @@ \subsubsection{Inputs}\label{inputs-004} \paragraph{Field: Relative Airflow Convergence Tolerance}\label{field-relative-airflow-convergence-tolerance} -The solution is assumed to have converged when \({{\left| {\,\sum\limits_{} {{{\mathop m\limits^ \bullet }_{_i}}} } \right|} \mathord{\left/ {\vphantom {{\left| {\,\sum\limits_{} {{{\mathop m\limits^ \bullet }_{_i}}} } \right|} {\sum\limits_{} {\left| {{{\mathop m\limits^ \bullet }_{_i}}} \right|} }}} \right. } {\sum\limits_{} {\left| {{{\mathop m\limits^ \bullet }_{_i}}} \right|} }}\) is less than the value specified for this input field. This convergence criteria is equivalent to the ratio of the absolute value of the sum of all network airflows (\(\left| {\sum {{{\mathop m\limits^ \bullet }_{_i}}} } \right|\) ) to the sum of network airflow magnitudes (\(\sum\limits_{}^{} {\left| {{{\mathop m\limits^ \bullet }_{_i}}} \right|}\) ). The default value is 1.0x10\(^{-4}\). +The solution is assumed to have converged when \({\frac{{\left| {\,\sum\limits_{} {{{\mathop m\limits^ \bullet }_{_i}}} } \right|}}{\sum\limits_{} {\left| {{{\mathop m\limits^ \bullet }_{_i}}} \right|} }}\) is less than the value specified for this input field. This convergence criteria is equivalent to the ratio of the absolute value of the sum of all network airflows (\(\left| {\sum {{{\mathop m\limits^ \bullet }_{_i}}} } \right|\) ) to the sum of network airflow magnitudes (\(\sum\limits_{}^{} {\left| {{{\mathop m\limits^ \bullet }_{_i}}} \right|}\) ). The default value is 1.0x10\(^{-4}\). \paragraph{Field: Absolute Airflow Convergence Tolerance}\label{field-absolute-airflow-convergence-tolerance} @@ -958,7 +958,7 @@ \subsection{AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea}\label{airflow \(\dot m\) = Air mass flow rate {[}kg/s{]} -\(\rm{ELA}\) = Effective leakage area {[}m\(^{2}\){]} +\(\mathrm{ELA}\) = Effective leakage area {[}m\(^{2}\){]} \(\rho\) = Air density {[}kg/m\(^{3}\){]} @@ -2019,7 +2019,7 @@ \subsection{AirflowNetwork:Distribution:Component:Duct}\label{airflownetworkdist The friction factor can be calculated using the nonlinear Colebrook equation (ASHRAE Handbook of Fundamentals, 1997. p.~2.9, Eq. 29b) \begin{equation} -\frac{1}{{\sqrt f }} = 1.44 + 2*\log \left( {\frac{D}{\varepsilon }} \right) - 2*\log \left( {1 + \frac{{9.3}}{{{\mathop{\rm Re}\nolimits} *\varepsilon /D*\sqrt f }}} \right) +\frac{1}{{\sqrt f }} = 1.44 + 2*\log \left( {\frac{D}{\varepsilon }} \right) - 2*\log \left( {1 + \frac{{9.3}}{{\operatorname{Re} *\varepsilon /D*\sqrt f }}} \right) \end{equation} where diff --git a/doc/input-output-reference/src/overview/group-airflow.tex b/doc/input-output-reference/src/overview/group-airflow.tex index 5fc36cd4878..0df4a98f9e7 100644 --- a/doc/input-output-reference/src/overview/group-airflow.tex +++ b/doc/input-output-reference/src/overview/group-airflow.tex @@ -9,7 +9,7 @@ \subsection{ZoneInfiltration:DesignFlowRate}\label{zoneinfiltrationdesignflowrat Infiltration is the unintended flow of air from the outdoor environment directly into a thermal zone. Infiltration is generally caused by the opening and closing of exterior doors, cracks around windows and exterior doors, and even in very small amounts through building elements. The basic equation used to calculate infiltration with this object is: \begin{equation} - \rm{Infiltration} = \left( {{I_{design}}} \right)\left( {{F_{schedule}}} \right)\left[ {A + B\left| {\left( {{T_{zone}} - {T_{odb}}} \right)} \right| + C\left( {WindSpeed} \right) + D\left( {Windspee{d^2}} \right)} \right] + \mathrm{Infiltration} = \left( {{I_{design}}} \right)\left( {{F_{schedule}}} \right)\left[ {A + B\left| {\left( {{T_{zone}} - {T_{odb}}} \right)} \right| + C\left( {WindSpeed} \right) + D\left( {Windspee{d^2}} \right)} \right] \end{equation} More advanced infiltration calculations are possible using the EnergyPlus AirflowNetwork model for natural infiltration driven by wind and/or by forced air. Infiltration described by the equation shown above is entered into EnergyPlus using the following syntax. Exfiltration (the leakage of zone air to the outside) is generally handled better as zone exhaust air in the zone equipment description. The equation must always yield a non-negative results; negative values are set to 0.0. diff --git a/doc/input-output-reference/src/overview/group-fans.tex b/doc/input-output-reference/src/overview/group-fans.tex index 90f82e26213..96b589dc06c 100644 --- a/doc/input-output-reference/src/overview/group-fans.tex +++ b/doc/input-output-reference/src/overview/group-fans.tex @@ -548,26 +548,26 @@ \subsubsection{Inputs}\label{inputs-2-016} The constant coefficient (C\(_{1}\)) in a fourth order polynomial curve giving the fraction of full load power (PLF) as a function of flow fraction (FF). Flow fraction is the air mass flow rate divided by the maximum air mass flow rate. The curve is: -PLF = C\(_{1}\) + C\(_{2}\)\(^{.}\) FF + C\(_{3}\)\(^{.}\) FF\(^{2\\ +}\) C\(_{4}\)\(^{.}\) FF\(^{3}\) + C\(_{5}\)\(^{.}\) FF\(^{4}\) +PLF = C\(_{1}\) + C\(_{2}\)\(^{.}\) FF + C\(_{3}\)\(^{.}\) FF\(^{2 +}\) C\(_{4}\)\(^{.}\) FF\(^{3}\) + C\(_{5}\)\(^{.}\) FF\(^{4}\) \paragraph{Field: Fan Power Coefficient 2}\label{field-fan-power-coefficient-2} The linear coefficient (C\(_{2}\)) in a fourth order polynomial curve giving the fraction of full load power (PLF) as a function of flow fraction (FF). Flow fraction is the air mass flow rate divided by the maximum air mass flow rate. The curve is: -PLF = C\(_{1}\) + C\(_{2}\)\(^{.}\) FF + C\(_{3}\)\(^{.}\) FF\(^{2\\ +}\) C\(_{4}\)\(^{.}\) FF\(^{3}\) + C\(_{5}\)\(^{.}\) FF\(^{4}\) +PLF = C\(_{1}\) + C\(_{2}\)\(^{.}\) FF + C\(_{3}\)\(^{.}\) FF\(^{2 +}\) C\(_{4}\)\(^{.}\) FF\(^{3}\) + C\(_{5}\)\(^{.}\) FF\(^{4}\) \paragraph{Field: Fan Power Coefficient 3}\label{field-fan-power-coefficient-3} The quadratic coefficient (C\(_{3}\)) in a fourth order polynomial curve giving the fraction of full load power (PLF) as a function of flow fraction (FF). Flow fraction is the air mass flow rate divided by the maximum air mass flow rate. The curve is: -PLF = C\(_{1}\) + C\(_{2}\)\(^{.}\) FF + C\(_{3}\)\(^{.}\) FF\(^{2\\ +}\) C\(_{4}\)\(^{.}\) FF\(^{3}\) + C\(_{5}\)\(^{.}\) FF\(^{4}\) +PLF = C\(_{1}\) + C\(_{2}\)\(^{.}\) FF + C\(_{3}\)\(^{.}\) FF\(^{2 +}\) C\(_{4}\)\(^{.}\) FF\(^{3}\) + C\(_{5}\)\(^{.}\) FF\(^{4}\) \paragraph{Field: Fan Power Coefficient 4}\label{field-fan-power-coefficient-4} The cubic coefficient (C\(_{1}\)) in a fourth order polynomial curve giving the fraction of full load power (PLF) as a function of flow fraction (FF). Flow fraction is the air mass flow rate divided by the maximum air mass flow rate. The curve is: \begin{lstlisting} - PLF = C$_{1}$ + C$_{2}$$^{.}$ FF + C$_{3}$$^{.}$ FF$^{2\\ +}$ C$_{4}$$^{.}$ FF$^{3}$ + C$_{5}$$^{.}$ FF$^{4}$ + PLF = C$_{1}$ + C$_{2}$$^{.}$ FF + C$_{3}$$^{.}$ FF$^{2 +}$ C$_{4}$$^{.}$ FF$^{3}$ + C$_{5}$$^{.}$ FF$^{4}$ \end{lstlisting} \paragraph{Field: Fan Power Coefficient 5}\label{field-fan-power-coefficient-5} @@ -575,7 +575,7 @@ \subsubsection{Inputs}\label{inputs-2-016} The coefficient C\(_{5}\) in a fourth order polynomial curve giving the fraction of full load power (PLF) as a function of flow fraction (FF). Flow fraction is the air mass flow rate divided by the maximum air mass flow rate. The curve is: \begin{lstlisting} - PLF = C$_{1}$ + C$_{2}$$^{.}$ FF + C$_{3}$$^{.}$ FF$^{2\\ +}$ C$_{4}$$^{.}$ FF$^{3}$ + C$_{5}$$^{.}$ FF$^{4}$ + PLF = C$_{1}$ + C$_{2}$$^{.}$ FF + C$_{3}$$^{.}$ FF$^{2 +}$ C$_{4}$$^{.}$ FF$^{3}$ + C$_{5}$$^{.}$ FF$^{4}$ \end{lstlisting} \paragraph{Field: Air Inlet Node Name}\label{field-air-inlet-node-name-2-000} @@ -1007,95 +1007,95 @@ \subsubsection{Inputs}\label{inputs-5-011} \paragraph{Field: Normalized Fan Static Efficiency Curve Name Non-Stall Region}\label{field-normalized-fan-static-efficiency-curve-name-non-stall-region} -The required alpha name of the exponential-modified skew normal performance curve (ref: \hyperref[curveexponentialskewnormal]{Curve:ExponentialSkewNormal} in Performance Curves) that parameterizes the normalized fan static efficiency (\(\eta_{\rm{fan}}(x_{\rm{fan}}) / \eta_{\rm{fan, max}}\)) at each time step for the normal operating (non-stall) region of the fan performance map as a function of \(x_{\rm{fan}}\), which is defined as log-base-10 of Eu at the fan flow and pressure rise operating point divided by Eu at maximum fan static efficiency \([log_{10}(Eu / Eu_{\rm{max}})]\). In this region, \(x_{\rm{fan}} \le 0\). +The required alpha name of the exponential-modified skew normal performance curve (ref: \hyperref[curveexponentialskewnormal]{Curve:ExponentialSkewNormal} in Performance Curves) that parameterizes the normalized fan static efficiency (\(\eta_{\mathrm{fan}}(x_{\mathrm{fan}}) / \eta_{\mathrm{fan, max}}\)) at each time step for the normal operating (non-stall) region of the fan performance map as a function of \(x_{\mathrm{fan}}\), which is defined as log-base-10 of Eu at the fan flow and pressure rise operating point divided by Eu at maximum fan static efficiency \([log_{10}(Eu / Eu_{\mathrm{max}})]\). In this region, \(x_{\mathrm{fan}} \le 0\). -The output of this curve is used to calculate the fan efficiency \(\eta_{\rm{fan}} (x_{\rm{fan}})\) at each time step by modifying \(\eta_{\rm{fan, max}}\) (see \emph{Maximum Fan Static Efficiency} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the fan efficiency \(\eta_{\mathrm{fan}} (x_{\mathrm{fan}})\) at each time step by modifying \(\eta_{\mathrm{fan, max}}\) (see \emph{Maximum Fan Static Efficiency} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. \paragraph{Field: Normalized Fan Static Efficiency Curve Name Stall Region}\label{field-normalized-fan-static-efficiency-curve-name-stall-region} -The required alpha name of the exponential-modified skew normal performance curve (ref: \hyperref[curveexponentialskewnormal]{Curve:ExponentialSkewNormal} in Performance Curves) that parameterizes the normalized fan static efficiency (\(\eta_{\rm{fan}} (x_{\rm{fan}}) / \eta_{\rm{fan, max}}\)) at each time step for the stall region of the fan performance map as a function of \(x_{\rm{fan}}\) (see \emph{Normalized Fan Static Efficiency Curve Name Non-Stall Region} field). In this region, \(x_{\rm{fan}} > 0\). +The required alpha name of the exponential-modified skew normal performance curve (ref: \hyperref[curveexponentialskewnormal]{Curve:ExponentialSkewNormal} in Performance Curves) that parameterizes the normalized fan static efficiency (\(\eta_{\mathrm{fan}} (x_{\mathrm{fan}}) / \eta_{\mathrm{fan, max}}\)) at each time step for the stall region of the fan performance map as a function of \(x_{\mathrm{fan}}\) (see \emph{Normalized Fan Static Efficiency Curve Name Non-Stall Region} field). In this region, \(x_{\mathrm{fan}} > 0\). -The output of this curve is used to calculate the fan efficiency \(\eta_{\rm{fan}} ( x_{\rm{fan}} )\) at each time step by modifying \(\eta_{\rm{fan, max}}\) (see \emph{Maximum Fan Static Efficiency} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the fan efficiency \(\eta_{\mathrm{fan}} ( x_{\mathrm{fan}} )\) at each time step by modifying \(\eta_{\mathrm{fan, max}}\) (see \emph{Maximum Fan Static Efficiency} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. \paragraph{Field: Normalized Dimensionless Airflow Curve Name Non-Stall Region}\label{field-normalized-dimensionless-airflow-curve-name-non-stall-region} -The required alpha name of the sigmoid performance curve (ref: \hyperref[curvesigmoid]{Curve:Sigmoid} in Performance Curves) that parameterizes the normalized dimensionless airflow through the fan (\(\varphi (x_{\rm{fan}}) / \varphi_{\rm{max}}\)) at each time step for the normal operating (non-stall) region of the fan performance map as a function of \(x_{\rm{fan}}\), which is defined as log-base-10 of Eu at the fan flow and pressure rise operating point divided by Eu at maximum fan static efficiency \([log_{10}(Eu / Eu_{\rm{max}})]\). In this region, \(x_{\rm{fan}} \le 0\). +The required alpha name of the sigmoid performance curve (ref: \hyperref[curvesigmoid]{Curve:Sigmoid} in Performance Curves) that parameterizes the normalized dimensionless airflow through the fan (\(\varphi (x_{\mathrm{fan}}) / \varphi_{\mathrm{max}}\)) at each time step for the normal operating (non-stall) region of the fan performance map as a function of \(x_{\mathrm{fan}}\), which is defined as log-base-10 of Eu at the fan flow and pressure rise operating point divided by Eu at maximum fan static efficiency \([log_{10}(Eu / Eu_{\mathrm{max}})]\). In this region, \(x_{\mathrm{fan}} \le 0\). -The output of this curve is used to calculate the dimensionless airflow \(\varphi (x_{\rm{fan}})\) at each time step by modifying \(\varphi_{\rm{max}}\) (see \emph{Maximum Dimensionless Fan Airflow} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the dimensionless airflow \(\varphi (x_{\mathrm{fan}})\) at each time step by modifying \(\varphi_{\mathrm{max}}\) (see \emph{Maximum Dimensionless Fan Airflow} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. \paragraph{Field: Normalized Dimensionless Airflow Curve Name Stall Region}\label{field-normalized-dimensionless-airflow-curve-name-stall-region} -The required alpha name of the sigmoid performance curve (ref: \hyperref[curvesigmoid]{Curve:Sigmoid} in Performance Curves) that parameterizes the normalized dimensionless airflow through the fan (\(\varphi (x_{\rm{fan}}) / \varphi_{\rm{max}}\)) at each time step for the stall region of the fan performance map as a function of \(x_{\rm{fan}}\) (see \emph{Normalized Dimensionless Airflow Curve Name Non-Stall Region} field). In this region, \(x_{\rm{fan}} > 0\). +The required alpha name of the sigmoid performance curve (ref: \hyperref[curvesigmoid]{Curve:Sigmoid} in Performance Curves) that parameterizes the normalized dimensionless airflow through the fan (\(\varphi (x_{\mathrm{fan}}) / \varphi_{\mathrm{max}}\)) at each time step for the stall region of the fan performance map as a function of \(x_{\mathrm{fan}}\) (see \emph{Normalized Dimensionless Airflow Curve Name Non-Stall Region} field). In this region, \(x_{\mathrm{fan}} > 0\). -The output of this curve is used to calculate the dimensionless airflow \(\varphi (x_{\rm{fan}})\) at each time step by modifying \(\varphi_{\rm{max}}\) (see \emph{Maximum Dimensionless Fan Airflow} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the dimensionless airflow \(\varphi (x_{\mathrm{fan}})\) at each time step by modifying \(\varphi_{\mathrm{max}}\) (see \emph{Maximum Dimensionless Fan Airflow} field). This curve should have a maximum of 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. \paragraph{Field: Maximum Belt Efficiency Curve Name}\label{field-maximum-belt-efficiency-curve-name} -The alpha name of the quartic polynomial performance curve (ref: \hyperref[curvequartic]{Curve:Quartic} in Performance Curves) that determines the maximum fan drive belt efficiency in logarithmic space (\(\eta_{\rm{belt, max, ln}}\)) as a function of \(x_{\rm{belt, max}}\). The curve is: +The alpha name of the quartic polynomial performance curve (ref: \hyperref[curvequartic]{Curve:Quartic} in Performance Curves) that determines the maximum fan drive belt efficiency in logarithmic space (\(\eta_{\mathrm{belt, max, ln}}\)) as a function of \(x_{\mathrm{belt, max}}\). The curve is: \begin{equation} -\eta_{\rm{belt, max, ln}} = C_1 + C_2 \cdot x_{\rm{belt, max}} + C_3 \cdot x_{\rm{belt, max}}^2 + C_4 \cdot x_{\rm{belt, max}}^3 + C_5 \cdot x_{\rm{belt, max}}^4 +\eta_{\mathrm{belt, max, ln}} = C_1 + C_2 \cdot x_{\mathrm{belt, max}} + C_3 \cdot x_{\mathrm{belt, max}}^2 + C_4 \cdot x_{\mathrm{belt, max}}^3 + C_5 \cdot x_{\mathrm{belt, max}}^4 \end{equation} -where \(x_{\rm{belt, max}} = ln(F_{\rm{belt}} \cdot H_{\rm{fan, max}})\) with \(H_{\rm{fan, max}}\) expressed in terms of hp. +where \(x_{\mathrm{belt, max}} = ln(F_{\mathrm{belt}} \cdot H_{\mathrm{fan, max}})\) with \(H_{\mathrm{fan, max}}\) expressed in terms of hp. -Note that \(\eta_{\rm{belt, max}} = exp(\eta_{\rm{belt, max, ln}})\). +Note that \(\eta_{\mathrm{belt, max}} = exp(\eta_{\mathrm{belt, max, ln}})\). -The output of this curve must be greater than zero and less than or equal to 1.0. If \(\eta_{\rm{belt, max}}\) is known, it is represented by coefficient \(C_1\) (\(= ln(\eta_{\rm{belt, max}})\)). In this case, coefficients \(C_2\) through \(C_5\) are set to zero. If this field is left blank (e.g., there is no belt), the model assumes that the output of the modifier curve is 1.0 for the entire simulation (maximum belt efficiency = 1.0). +The output of this curve must be greater than zero and less than or equal to 1.0. If \(\eta_{\mathrm{belt, max}}\) is known, it is represented by coefficient \(C_1\) (\(= ln(\eta_{\mathrm{belt, max}})\)). In this case, coefficients \(C_2\) through \(C_5\) are set to zero. If this field is left blank (e.g., there is no belt), the model assumes that the output of the modifier curve is 1.0 for the entire simulation (maximum belt efficiency = 1.0). \paragraph{Field: Normalized Belt Efficiency Curve Name Region 1}\label{field-normalized-belt-efficiency-curve-name-region-1} -The alpha name of the single rectangular hyperbola type 2 performance curve (ref: \hyperref[curverectangularhyperbola2]{Curve:RectangularHyperbola2} in Performance Curves) that determines the normalized (par-load) fan drive belt efficiency (\(\eta_{\rm{belt}}(x_{\rm{belt}}) / \eta_{\rm{belt, max}}\)) as a function of \(x_{\rm{belt}}\). Normalized belt efficiency is represented by a segmented curve with three different regions. The curve for Region 1 (\(0 \le x_{\rm{belt}} < x_{\rm{belt, trans}}\)) is: +The alpha name of the single rectangular hyperbola type 2 performance curve (ref: \hyperref[curverectangularhyperbola2]{Curve:RectangularHyperbola2} in Performance Curves) that determines the normalized (par-load) fan drive belt efficiency (\(\eta_{\mathrm{belt}}(x_{\mathrm{belt}}) / \eta_{\mathrm{belt, max}}\)) as a function of \(x_{\mathrm{belt}}\). Normalized belt efficiency is represented by a segmented curve with three different regions. The curve for Region 1 (\(0 \le x_{\mathrm{belt}} < x_{\mathrm{belt, trans}}\)) is: \begin{equation} - \frac{\eta_{\rm{belt}} ( x_{\rm{belt}} )}{\eta_{\rm{belt, max}}} = \frac{(C_1 \cdot x_{\rm{belt}})}{(C_2 + x_{\rm{belt}})} + C_3 \cdot x_{\rm{belt}} + \frac{\eta_{\mathrm{belt}} ( x_{\mathrm{belt}} )}{\eta_{\mathrm{belt, max}}} = \frac{(C_1 \cdot x_{\mathrm{belt}})}{(C_2 + x_{\mathrm{belt}})} + C_3 \cdot x_{\mathrm{belt}} \end{equation} -where \(x_{\rm{belt}}\) = \(\tau_{\rm{belt}} / \tau_{\rm{belt, max}}\); \(\tau_{\rm{belt}}\) is the belt output torque that corresponds to the calculated power input to the fan shaft (\(H_{\rm{fan}}\), W) by the drive belt and the calculated fan shaft speed (\(\omega_{\rm{fan}}\), rpm). +where \(x_{\mathrm{belt}}\) = \(\tau_{\mathrm{belt}} / \tau_{\mathrm{belt, max}}\); \(\tau_{\mathrm{belt}}\) is the belt output torque that corresponds to the calculated power input to the fan shaft (\(H_{\mathrm{fan}}\), W) by the drive belt and the calculated fan shaft speed (\(\omega_{\mathrm{fan}}\), rpm). -The output of this curve is used to calculate the belt efficiency \(\eta_{\rm{belt}} (x_{\rm{belt}})\) in Region 1 at each time step by modifying \(\eta_{\rm{belt, max}}\) (see \emph{Maximum Belt Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the belt efficiency \(\eta_{\mathrm{belt}} (x_{\mathrm{belt}})\) in Region 1 at each time step by modifying \(\eta_{\mathrm{belt, max}}\) (see \emph{Maximum Belt Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. -If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant belt efficiency at \(\eta_{\rm{belt, max}}\) in Region 1). +If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant belt efficiency at \(\eta_{\mathrm{belt, max}}\) in Region 1). \paragraph{Field: Normalized Belt Efficiency Curve Name Region 2}\label{field-normalized-belt-efficiency-curve-name-region-2} -The alpha name of the exponential decay performance curve (ref: \hyperref[curveexponentialdecay]{Curve:ExponentialDecay} in Performance Curves) that determines the normalized (part-load) fan drive belt efficiency (\(\eta_{\rm{belt}} (x_{\rm{belt}}) / \eta_{\rm{belt, max}}\)) as a function of \(x_{\rm{belt}}\). Normalized belt efficiency is represented by a segmented curve with three different regions. The curve for Region 2 (\(x_{\rm{belt, trans}} \le x_{\rm{belt}} \le 1\)) is: +The alpha name of the exponential decay performance curve (ref: \hyperref[curveexponentialdecay]{Curve:ExponentialDecay} in Performance Curves) that determines the normalized (part-load) fan drive belt efficiency (\(\eta_{\mathrm{belt}} (x_{\mathrm{belt}}) / \eta_{\mathrm{belt, max}}\)) as a function of \(x_{\mathrm{belt}}\). Normalized belt efficiency is represented by a segmented curve with three different regions. The curve for Region 2 (\(x_{\mathrm{belt, trans}} \le x_{\mathrm{belt}} \le 1\)) is: \begin{equation} - \eta_{\rm{belt}} (x_{\rm{belt}}) / \eta_{\rm{belt, max}} = C_1 + C_2 \cdot exp(C_3 \cdot x_{\rm{belt}}) + \eta_{\mathrm{belt}} (x_{\mathrm{belt}}) / \eta_{\mathrm{belt, max}} = C_1 + C_2 \cdot exp(C_3 \cdot x_{\mathrm{belt}}) \end{equation} -where \(x_{\rm{belt}} = \tau_{\rm{belt}} / \tau_{\rm{belt, max}}\); \(\tau_{\rm{belt}}\) is the belt output torque that corresponds to the calculated power input to the fan shaft (\(H_{\rm{fan}}\), W) by the drive belt and the calculated fan shaft speed (\(\omega_{\rm{fan}}\), rpm). +where \(x_{\mathrm{belt}} = \tau_{\mathrm{belt}} / \tau_{\mathrm{belt, max}}\); \(\tau_{\mathrm{belt}}\) is the belt output torque that corresponds to the calculated power input to the fan shaft (\(H_{\mathrm{fan}}\), W) by the drive belt and the calculated fan shaft speed (\(\omega_{\mathrm{fan}}\), rpm). -The output of this curve is used to calculate the belt efficiency \(\eta_{\rm{belt}} (x_{\rm{belt}}\) in Region 2 at each time step by modifying \(\eta_{\rm{belt, max}}\) (see \emph{Maximum Belt Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the belt efficiency \(\eta_{\mathrm{belt}} (x_{\mathrm{belt}}\) in Region 2 at each time step by modifying \(\eta_{\mathrm{belt, max}}\) (see \emph{Maximum Belt Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. -If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant belt efficiency at \(\eta_{\rm{belt, max}}\) in Region 2). +If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant belt efficiency at \(\eta_{\mathrm{belt, max}}\) in Region 2). \paragraph{Field: Normalized Belt Efficiency Curve Name Region 3}\label{field-normalized-belt-efficiency-curve-name-region-3} -The alpha name of the single rectangular hyperbola type 2 performance curve (ref: \hyperref[curverectangularhyperbola2]{Curve:RectangularHyperbola2} in Performance Curves) that determines the normalized (part-load) fan drive belt efficiency (\(\eta_{\rm{belt}} (x_{\rm{belt}}) / \eta_{\rm{belt, max}}\)) as a function of \(x_{\rm{belt}}\). Normalized belt efficiency is represented by a segmented curve with three different regions. The curve for Region 3 (\(x_{\rm{belt}} > 1\)) is: +The alpha name of the single rectangular hyperbola type 2 performance curve (ref: \hyperref[curverectangularhyperbola2]{Curve:RectangularHyperbola2} in Performance Curves) that determines the normalized (part-load) fan drive belt efficiency (\(\eta_{\mathrm{belt}} (x_{\mathrm{belt}}) / \eta_{\mathrm{belt, max}}\)) as a function of \(x_{\mathrm{belt}}\). Normalized belt efficiency is represented by a segmented curve with three different regions. The curve for Region 3 (\(x_{\mathrm{belt}} > 1\)) is: \begin{equation} - \eta_{\rm{belt}} ( x_{\rm{belt}} ) / \eta_{\rm{belt, max}} = ( C_1 \cdot x_{\rm{belt}} ) / ( C_2 + x_{\rm{belt}} ) + C_3 \cdot x_{\rm{belt}} + \eta_{\mathrm{belt}} ( x_{\mathrm{belt}} ) / \eta_{\mathrm{belt, max}} = ( C_1 \cdot x_{\mathrm{belt}} ) / ( C_2 + x_{\mathrm{belt}} ) + C_3 \cdot x_{\mathrm{belt}} \end{equation} -where \(x_{\rm{belt}} = \tau_{\rm{belt}} / \tau_{\rm{belt, max}}\); \(\tau_{\rm{belt}}\) is the belt output torque that corresponds to the calculated power input to the fan shaft (\(H_{\rm{fan}}\), W) by the drive belt and the calculated fan shaft speed (\(\omega_{\rm{fan}}\), rpm). +where \(x_{\mathrm{belt}} = \tau_{\mathrm{belt}} / \tau_{\mathrm{belt, max}}\); \(\tau_{\mathrm{belt}}\) is the belt output torque that corresponds to the calculated power input to the fan shaft (\(H_{\mathrm{fan}}\), W) by the drive belt and the calculated fan shaft speed (\(\omega_{\mathrm{fan}}\), rpm). -The output of this curve is used to calculate the belt efficiency \(\eta_{\rm{belt}} (x_{\rm{belt}})\) in Region 3 at each time step by modifying \(\eta_{\rm{belt, max}}\) (see \emph{Maximum Belt Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. +The output of this curve is used to calculate the belt efficiency \(\eta_{\mathrm{belt}} (x_{\mathrm{belt}})\) in Region 3 at each time step by modifying \(\eta_{\mathrm{belt, max}}\) (see \emph{Maximum Belt Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. -If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant belt efficiency at \(\eta_{\rm{belt, max}}\) in Region 3). +If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant belt efficiency at \(\eta_{\mathrm{belt, max}}\) in Region 3). \paragraph{Field: Maximum Motor Efficiency Curve Name}\label{field-maximum-motor-efficiency-curve-name} -The alpha name of the single rectangular hyperbola type 1 performance curve (ref: Curve: RectangularHyperbola1 in Performance Curves) that determines the maximum fan motor efficiency (\(\eta_{\rm{motor, max}}\)) as a function of \(x_{\rm{motor, max}}\). The curve is: +The alpha name of the single rectangular hyperbola type 1 performance curve (ref: Curve: RectangularHyperbola1 in Performance Curves) that determines the maximum fan motor efficiency (\(\eta_{\mathrm{motor, max}}\)) as a function of \(x_{\mathrm{motor, max}}\). The curve is: \begin{equation} - \eta_{\rm{motor, max}} = (C_1 \cdot x_{\rm{motor, max}}) / (C_2 + x_{\rm{motor, max}}) + C_3 + \eta_{\mathrm{motor, max}} = (C_1 \cdot x_{\mathrm{motor, max}}) / (C_2 + x_{\mathrm{motor, max}}) + C_3 \end{equation} -where \(x_{\rm{motor, max}} = ln(F_{\rm{motor}} \cdot H_{\rm{belt, max}})\) with \(H_{\rm{belt, max}}\) expressed in terms of hp. \(H_{\rm{belt, max}}\) is the maximum output power from the motor to the belt, which corresponds to the calculated maximum power input to the fan shaft (\(H_{\rm{fan, max}}\), W). +where \(x_{\mathrm{motor, max}} = ln(F_{\mathrm{motor}} \cdot H_{\mathrm{belt, max}})\) with \(H_{\mathrm{belt, max}}\) expressed in terms of hp. \(H_{\mathrm{belt, max}}\) is the maximum output power from the motor to the belt, which corresponds to the calculated maximum power input to the fan shaft (\(H_{\mathrm{fan, max}}\), W). -The output of this curve must be greater than zero and less than or equal to 1.0. If \(\eta_{\rm{motor, max}}\) is known, it is represented by coefficient \(C_3\). In this case, coefficients \(C_1\) and \(C_2\) are set to zero. +The output of this curve must be greater than zero and less than or equal to 1.0. If \(\eta_{\mathrm{motor, max}}\) is known, it is represented by coefficient \(C_3\). In this case, coefficients \(C_1\) and \(C_2\) are set to zero. If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (maximum motor efficiency = 1.0). @@ -1103,17 +1103,17 @@ \subsubsection{Inputs}\label{inputs-5-011} The name of the HVAC system node to which the fan sends its outlet air. -The alpha name of the single rectangular hyperbola type 2 performance curve (ref: \hyperref[curverectangularhyperbola2]{Curve:RectangularHyperbola2} in Performance Curves) that determines the normalized (part-load) fan motor efficiency (\(\eta_{\rm{motor}} (x_{\rm{motor}}) / \eta_{\rm{motor, max}}\)) as a function of the motor load fraction \(x_{\rm{motor}}\). The curve is: +The alpha name of the single rectangular hyperbola type 2 performance curve (ref: \hyperref[curverectangularhyperbola2]{Curve:RectangularHyperbola2} in Performance Curves) that determines the normalized (part-load) fan motor efficiency (\(\eta_{\mathrm{motor}} (x_{\mathrm{motor}}) / \eta_{\mathrm{motor, max}}\)) as a function of the motor load fraction \(x_{\mathrm{motor}}\). The curve is: \begin{equation} - \eta_{\rm{motor}} (x_{\rm{motor}}) / \eta_{\rm{motor, max}} = (C_1 \cdot x_{\rm{motor}}) / (C_2 + x_{\rm{motor}}) + (C_3 \cdot x_{\rm{motor}} + \eta_{\mathrm{motor}} (x_{\mathrm{motor}}) / \eta_{\mathrm{motor, max}} = (C_1 \cdot x_{\mathrm{motor}}) / (C_2 + x_{\mathrm{motor}}) + (C_3 \cdot x_{\mathrm{motor}} \end{equation} -where \(x_{\rm{motor}} = H_{\rm{belt}} / H_{\rm{belt, max}}\). \(H_{\rm{belt}}\) is the calculated output power from the motor to the belt (W), which corresponds to the calculated power input to the fan shaft (\(H_{\rm{fan}}\), W). +where \(x_{\mathrm{motor}} = H_{\mathrm{belt}} / H_{\mathrm{belt, max}}\). \(H_{\mathrm{belt}}\) is the calculated output power from the motor to the belt (W), which corresponds to the calculated power input to the fan shaft (\(H_{\mathrm{fan}}\), W). - The output of this curve is used to calculate the motor efficiency (\(\eta_{\rm{motor}} (x_{\rm{motor}})\)) at each time step by modifying \(\eta_{\rm{motor, max}}\) (see \emph{Maximum Motor Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. + The output of this curve is used to calculate the motor efficiency (\(\eta_{\mathrm{motor}} (x_{\mathrm{motor}})\)) at each time step by modifying \(\eta_{\mathrm{motor, max}}\) (see \emph{Maximum Motor Efficiency Curve Name} field). The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. -If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant motor efficiency at \(\eta_{\rm{motor, max}}\)). +If this field is left blank, the model assumes that the output of the modifier curve is 1.0 for the entire simulation (i.e., constant motor efficiency at \(\eta_{\mathrm{motor, max}}\)). \paragraph{Field: VFD Efficiency Curve Name}\label{field-vfd-efficiency-curve-name} @@ -1123,7 +1123,7 @@ \subsubsection{Inputs}\label{inputs-5-011} \eta_{VFD}(x_{VFD}) = (C_1 \cdot x_{VFD}) / (C_2 + x_{VFD}) + C_3 \cdot x_{VFD} \end{equation} -where \(x_{VFD} = H_{\rm{motor}} / H_{\rm{motor, max}}\) or \(\omega_{\rm{motor}} / \omega_{\rm{motor, max}}\). +where \(x_{VFD} = H_{\mathrm{motor}} / H_{\mathrm{motor, max}}\) or \(\omega_{\mathrm{motor}} / \omega_{\mathrm{motor, max}}\). The output of this curve is used to calculate the VFD efficiency \(\eta_{VFD}(x_{VFD})\) at each time step. The output of this curve must be greater than zero and less than or equal to 1.0 and should be valid for the range of volumetric flows and fan pressure rises anticipated for the simulation period. diff --git a/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex b/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex index f49bb215813..076b4bc59b5 100644 --- a/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex +++ b/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex @@ -689,7 +689,7 @@ \subsubsection{Inputs}\label{inputs-1-020} q = UA \times ({T_{water,avg}} - {T_{air,avg}}) \end{equation} -where q is the heat transferred from water to the air in watts; T\(_{water,\\ avg}\) is the average water temperature in degrees Celsius ($^\circ$C); and T\(_{air,\\ avg}\) is the average air temperature in degrees C. Or the LMTD temperature difference can be used. This field is used when \emph{Performance Input Method} = \emph{UFactorTimesAreaAndDesignWaterFlowRate}.This field is autosizable. +where q is the heat transferred from water to the air in watts; T\(_{water, avg}\) is the average water temperature in degrees Celsius ($^\circ$C); and T\(_{air, avg}\) is the average air temperature in degrees C. Or the LMTD temperature difference can be used. This field is used when \emph{Performance Input Method} = \emph{UFactorTimesAreaAndDesignWaterFlowRate}.This field is autosizable. \paragraph{Field: Maximum Water Flow Rate}\label{field-maximum-water-flow-rate-000} @@ -2154,7 +2154,7 @@ \subsubsection{Inputs}\label{inputs-13-004} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil (C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil (C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air (C) @@ -2421,7 +2421,7 @@ \subsubsection{Inputs}\label{inputs-14-004} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil (C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil (C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air (C) @@ -2453,7 +2453,7 @@ \subsubsection{Inputs}\label{inputs-14-004} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil (C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil (C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air (C) @@ -2919,7 +2919,7 @@ \subsubsection{Inputs}\label{inputs-16-003} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil (C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil (C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air (C) @@ -3268,16 +3268,16 @@ \subsubsection{Inputs}\label{inputs-17-001} The gross rated total cooling capacity is used to determine a capacity scaling factor, as compared to the Reference Unit capacity at the nominal speed level. \begin{equation} -{\rm{CapacityScaleFactor}} = \frac{{{\rm{Gross RatedTotalCoolingCapacity}}}}{{{\rm{ReferenceUnitCapacity}}@{\rm{NominalSpeedLevel}}}} +{\mathrm{CapacityScaleFactor}} = \frac{{{\mathrm{Gross RatedTotalCoolingCapacity}}}}{{{\mathrm{ReferenceUnitCapacity}}@{\mathrm{NominalSpeedLevel}}}} \end{equation} And then, this scaling factor is used to determine capacities at rated conditions for other speed levels, as below, \begin{equation} \begin{array}{l} - \rm{Gross RatedCapacity} @ \rm{SpeedLevel} \left( {\rm{x}} \right) = \\ - \quad \quad \quad \rm{CapacityScaleFactor} \times \\ - \quad \quad \quad \rm{ReferenceUnitCapacity} @ {\rm{SpeedLevel}}(\rm{x}) + \mathrm{Gross RatedCapacity} @ \mathrm{SpeedLevel} \left( {\mathrm{x}} \right) = \\ + \quad \quad \quad \mathrm{CapacityScaleFactor} \times \\ + \quad \quad \quad \mathrm{ReferenceUnitCapacity} @ {\mathrm{SpeedLevel}}(\mathrm{x}) \end{array} \end{equation} @@ -3286,17 +3286,17 @@ \subsubsection{Inputs}\label{inputs-17-001} This numeric field contains the rated volumetric air flow rate on the load side of the DX unit, corresponding to the nominal speed level. This field is autosizable. The value is used to determine an internal scaling factor, and calculate the air flow rates in the parent objects. It is recommended that the ratio of the rated volumetric air flow rate to the rated capacity is the same as the unit performance from the Reference Unit data. \begin{equation} -\rm{AirFlowScaleFactor} = \frac{\rm{RatedVolumetricAirFlowRate}}{\rm{ReferenceUnitVolAirFlowRate} @ \rm{NominalSpeedLevel} \times \rm{CapacityScaleFactor}} +\mathrm{AirFlowScaleFactor} = \frac{\mathrm{RatedVolumetricAirFlowRate}}{\mathrm{ReferenceUnitVolAirFlowRate} @ \mathrm{NominalSpeedLevel} \times \mathrm{CapacityScaleFactor}} \end{equation} And the volumetric air flow rates in the parent objects are calculated as below, \begin{equation} \begin{array}{l} - \rm{LoopVolumetricAirFlowRate} @ \rm{SpeedLevel} \left( \rm{x} \right) = \\ - \quad \quad \quad \rm{AirFlowScaleFactor} \times \\ - \quad \quad \quad \rm{ReferenceUnitVolAirFlowRate} @ \rm{SpeedLevel}(\rm{x}) \times \\ - \quad \quad \quad \rm{CapacityScaleFactor} + \mathrm{LoopVolumetricAirFlowRate} @ \mathrm{SpeedLevel} \left( \mathrm{x} \right) = \\ + \quad \quad \quad \mathrm{AirFlowScaleFactor} \times \\ + \quad \quad \quad \mathrm{ReferenceUnitVolAirFlowRate} @ \mathrm{SpeedLevel}(\mathrm{x}) \times \\ + \quad \quad \quad \mathrm{CapacityScaleFactor} \end{array} \end{equation} @@ -3899,7 +3899,7 @@ \subsubsection{Inputs}\label{inputs-18-001} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil (C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil (C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air (C) @@ -4723,16 +4723,16 @@ \subsubsection{Inputs}\label{inputs-21-001} This numeric field contains the rated capacity at the nominal speed level. This field is autosizable. The gross rated heating capacity is used to determine a capacity scaling factor, as compared to the Reference Unit capacity at the nominal speed level. \begin{equation} -\rm{CapacityScaleFactor} = \frac{{{\rm{Gross RatedTotalHeatingCapacity}}}}{{{\rm{ReferenceUnitCapacity}}@{\rm{NominalSpeedLevel}}}} +\mathrm{CapacityScaleFactor} = \frac{{{\mathrm{Gross RatedTotalHeatingCapacity}}}}{{{\mathrm{ReferenceUnitCapacity}}@{\mathrm{NominalSpeedLevel}}}} \end{equation} And then, this scaling factor is used to determine capacities at rated conditions for other speed levels, as below, \begin{equation} \begin{array}{l} - \rm{Gross RatedCapacity} @ \rm{SpeedLevel} \left( \rm{x} \right) = \\ - \quad \quad \quad \rm{CapacityScaleFactor} \times \\ - \quad \quad \quad \rm{ReferenceUnitCapacity} @ \rm{SpeedLevel}(\rm{x}) + \mathrm{Gross RatedCapacity} @ \mathrm{SpeedLevel} \left( \mathrm{x} \right) = \\ + \quad \quad \quad \mathrm{CapacityScaleFactor} \times \\ + \quad \quad \quad \mathrm{ReferenceUnitCapacity} @ \mathrm{SpeedLevel}(\mathrm{x}) \end{array} \end{equation} @@ -4741,17 +4741,17 @@ \subsubsection{Inputs}\label{inputs-21-001} This numeric field contains the rated volumetric air flow rate on the load side of the heat pump corresponding to the nominal speed level. This field is autosizable. The value is used to determine an internal scaling factor, and calculate the air flow rates in the parent objects. It is recommended that the ratio of the rated volumetric air flow rate to the rated capacity is the same as the unit performance from the Reference Unit data. \begin{equation} -{\rm{AirFlowScaleFactor}} = \frac{{{\rm{RatedVolumetricAirFlowRate}}}}{{{\rm{ReferenceUnitVolAirFlowRate}}@{\rm{NominalSpeedLevel}} \times {\rm{CapacityScaleFactor}}}} +{\mathrm{AirFlowScaleFactor}} = \frac{{{\mathrm{RatedVolumetricAirFlowRate}}}}{{{\mathrm{ReferenceUnitVolAirFlowRate}}@{\mathrm{NominalSpeedLevel}} \times {\mathrm{CapacityScaleFactor}}}} \end{equation} And the volumetric air flow rates in the parent objects are calculated as below, \begin{equation} \begin{array}{l} - {\rm{LoopVolumetricAirFlowRate}}@{\rm{SpeedLevel}}\left( {\rm{x}} \right) = \\ - \quad \quad \quad {\rm{AirFlowScaleFactor}} \times \\ - \quad \quad \quad {\rm{ReferenceUnitVolAirFlowRate}}@{\rm{SpeedLevel}}({\rm{x}}) \times \\ - \quad {\kern 1pt} {\kern 1pt} \quad \quad {\rm{CapacityScaleFactor}} + {\mathrm{LoopVolumetricAirFlowRate}}@{\mathrm{SpeedLevel}}\left( {\mathrm{x}} \right) = \\ + \quad \quad \quad {\mathrm{AirFlowScaleFactor}} \times \\ + \quad \quad \quad {\mathrm{ReferenceUnitVolAirFlowRate}}@{\mathrm{SpeedLevel}}({\mathrm{x}}) \times \\ + \quad \quad \quad {\mathrm{CapacityScaleFactor}} \end{array} \end{equation} @@ -7514,8 +7514,8 @@ \subsubsection{Inputs}\label{inputs-31} \begin{equation} \begin{array}{l} - \rm{GrossRatedCapacity} @ \rm{SpeedLevel} \left( x \right) = \rm{CapacityScaleFactor} \\ - \quad \quad \quad \quad \times \rm{ReferenceUnitCapacity} @ \rm{SpeedLevel}( x ) + \mathrm{GrossRatedCapacity} @ \mathrm{SpeedLevel} \left( x \right) = \mathrm{CapacityScaleFactor} \\ + \quad \quad \quad \quad \times \mathrm{ReferenceUnitCapacity} @ \mathrm{SpeedLevel}( x ) \end{array} \end{equation} @@ -7533,9 +7533,9 @@ \subsubsection{Inputs}\label{inputs-31} \begin{equation} \begin{array}{l} - \rm{LoopVolumetricAirFlowRate} @ \rm{SpeedLevel} \left( x \right) = \rm{AirFlowScaleFactor} \\ - \quad \quad \quad \times \rm{ReferenceUnitVolAirFlowRate} @ \rm{SpeedLevel}(x) \\ - \quad \quad \quad \times \rm{CapacityScaleFactor} + \mathrm{LoopVolumetricAirFlowRate} @ \mathrm{SpeedLevel} \left( x \right) = \mathrm{AirFlowScaleFactor} \\ + \quad \quad \quad \times \mathrm{ReferenceUnitVolAirFlowRate} @ \mathrm{SpeedLevel}(x) \\ + \quad \quad \quad \times \mathrm{CapacityScaleFactor} \end{array} \end{equation} @@ -7556,9 +7556,9 @@ \subsubsection{Inputs}\label{inputs-31} \begin{equation} \begin{array}{l} - \rm{LoopVolumetricWaterFlowRate} @ \rm{SpeedLevel} \left( x \right) = \rm{WaterFlowScaleFactor} \\ - \quad \quad \quad \times \rm{ReferenceUnitVolWaterFlowRate} @ \rm{SpeedLevel}(x) \\ - \quad \quad \quad \times \rm{CapacityScaleFactor} + \mathrm{LoopVolumetricWaterFlowRate} @ \mathrm{SpeedLevel} \left( x \right) = \mathrm{WaterFlowScaleFactor} \\ + \quad \quad \quad \times \mathrm{ReferenceUnitVolWaterFlowRate} @ \mathrm{SpeedLevel}(x) \\ + \quad \quad \quad \times \mathrm{CapacityScaleFactor} \end{array} \end{equation} @@ -7656,11 +7656,11 @@ \subsubsection{Inputs}\label{inputs-31} \begin{equation} \begin{array}{l} - \rm{ActualCapacity} @ \rm{SpeedLevel} \left( x \right) = \rm{CapacityScaleFactor} \\ - \quad \quad \quad \times \rm{ReferenceUnitCapacity} @ \rm{SpeedLevel}(x) \\ - \quad \quad \quad \times \rm{TotCapTempModFac} @ \rm{SpeedLevel}(x) \\ - \quad \quad \quad \times \rm{TotCapAirFlowModFac} @ \rm{SpeedLevel}(x) \\ - \quad \quad \quad \times \rm{TotCapWaterFlowModFac} @ \rm{SpeedLevel}(x) + \mathrm{ActualCapacity} @ \mathrm{SpeedLevel} \left( x \right) = \mathrm{CapacityScaleFactor} \\ + \quad \quad \quad \times \mathrm{ReferenceUnitCapacity} @ \mathrm{SpeedLevel}(x) \\ + \quad \quad \quad \times \mathrm{TotCapTempModFac} @ \mathrm{SpeedLevel}(x) \\ + \quad \quad \quad \times \mathrm{TotCapAirFlowModFac} @ \mathrm{SpeedLevel}(x) \\ + \quad \quad \quad \times \mathrm{TotCapWaterFlowModFac} @ \mathrm{SpeedLevel}(x) \end{array} \end{equation} diff --git a/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex b/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex index 566e3884c74..2d5bf3d66e2 100644 --- a/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex +++ b/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex @@ -1232,7 +1232,7 @@ \subsubsection{Inputs}\label{inputs-2-021} \caption[]{Approximate values of Return Air Fraction, Fraction Radiant and Fraction Visible for overhead fluorescent lighting for different luminaire configurations.} \tabularnewline \toprule -Fixture No. & Luminaire Feature & Return Air Fraction & Fraction Radiant & Fraction Visible & \(f_{\rm{convected}}\) \tabularnewline +Fixture No. & Luminaire Feature & Return Air Fraction & Fraction Radiant & Fraction Visible & \(f_{\mathrm{convected}}\) \tabularnewline \midrule \endhead @@ -1284,17 +1284,17 @@ \subsubsection{Inputs}\label{inputs-2-021} If ``Return Air Fraction Is Calculated from Plenum Temperature'' = Yes, the return air fraction is calculated \emph{each timestep} from the following empirical correlation: \begin{equation} - (\rm{Return Air Fraction})_{\rm{calculated}} = C_{1} - C_{2} \times T_{\rm{plenum}} + (\mathrm{Return Air Fraction})_{\mathrm{calculated}} = C_{1} - C_{2} \times T_{\mathrm{plenum}} \end{equation} -where T\(_{\rm{plenum}}\) is the previous-time-step value of the return plenum air temperature (C), +where T\(_{\mathrm{plenum}}\) is the previous-time-step value of the return plenum air temperature (C), and C\(_{1}\) and C\(_{2}\) are the values of the coefficients entered in the next two fields. -To compensate for the change in the return air fraction relative to its input value, the program modifies Fraction Radiant and \(f_{\rm{convected}}\) by a scale factor such that +To compensate for the change in the return air fraction relative to its input value, the program modifies Fraction Radiant and \(f_{\mathrm{convected}}\) by a scale factor such that \begin{equation} - (\rm{Return Air Fraction})_{\rm{calculated}} + (\rm{Fraction Radiant})_{\rm{modified}} + (f_{\rm{convected}})_{\rm{modified}} + (\rm{Fraction Visible})_{\rm{input}} = 1.0 + (\mathrm{Return Air Fraction})_{\mathrm{calculated}} + (\mathrm{Fraction Radiant})_{\mathrm{modified}} + (f_{\mathrm{convected}})_{\mathrm{modified}} + (\mathrm{Fraction Visible})_{\mathrm{input}} = 1.0 \end{equation} It is assumed that Fraction Visible is a constant equal to its input value. @@ -1707,17 +1707,17 @@ \subsubsection{Inputs}\label{inputs-2-lightsdefinition} If ``Return Air Fraction Is Calculated from Plenum Temperature'' = Yes, the return air fraction is calculated \emph{each timestep} from the following empirical correlation: \begin{equation} - (\rm{Return Air Fraction})_{\rm{calculated}} = C_{1} - C_{2} \times T_{\rm{plenum}} + (\mathrm{Return Air Fraction})_{\mathrm{calculated}} = C_{1} - C_{2} \times T_{\mathrm{plenum}} \end{equation} -where T\(_{\rm{plenum}}\) is the previous-time-step value of the return plenum air temperature (C), +where T\(_{\mathrm{plenum}}\) is the previous-time-step value of the return plenum air temperature (C), and C\(_{1}\) and C\(_{2}\) are the values of the coefficients entered in the next two fields. -To compensate for the change in the return air fraction relative to its input value, the program modifies Fraction Radiant and \(f_{\rm{convected}}\) by a scale factor such that +To compensate for the change in the return air fraction relative to its input value, the program modifies Fraction Radiant and \(f_{\mathrm{convected}}\) by a scale factor such that \begin{equation} - (\rm{Return Air Fraction})_{\rm{calculated}} + (\rm{Fraction Radiant})_{\rm{modified}} + (f_{\rm{convected}})_{\rm{modified}} + (\rm{Fraction Visible})_{\rm{input}} = 1.0 + (\mathrm{Return Air Fraction})_{\mathrm{calculated}} + (\mathrm{Fraction Radiant})_{\mathrm{modified}} + (f_{\mathrm{convected}})_{\mathrm{modified}} + (\mathrm{Fraction Visible})_{\mathrm{input}} = 1.0 \end{equation} It is assumed that Fraction Visible is a constant equal to its input value. @@ -1795,7 +1795,7 @@ \subsubsection{Inputs}\label{inputs-3-019} The electrical input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from electric equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -1975,7 +1975,7 @@ \subsubsection{Inputs}\label{inputs-3-electricequipmentdefinition} The electrical input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from electric equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2055,7 +2055,7 @@ \subsubsection{Inputs}\label{inputs-4-017} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from gas equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{convected} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{convected} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2240,7 +2240,7 @@ \subsubsection{Inputs}\label{inputs-4-gasequipmentdefinition} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from gas equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{convected} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{convected} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2324,7 +2324,7 @@ \subsubsection{Inputs}\label{inputs-5-015} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from hot water equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2503,7 +2503,7 @@ \subsubsection{Inputs}\label{inputs-5-hotwaterequipmentdefinition} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from hot water equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2583,7 +2583,7 @@ \subsubsection{Inputs}\label{inputs-6-012} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from steam equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2723,7 +2723,7 @@ \subsubsection{Inputs}\label{inputs-6-steamequipmentdefinition} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from steam equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} You will get an error message if Fraction Latent + Fraction Radiant + Fraction Lost exceeds 1.0. @@ -2807,10 +2807,10 @@ \subsubsection{Inputs}\label{inputs-8-010} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from other equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} -You will get an error message if \(\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}\) exceeds 1.0. +You will get an error message if \(\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}\) exceeds 1.0. \paragraph{Field: Fraction Latent}\label{field-fraction-latent-4} @@ -2961,10 +2961,10 @@ \subsubsection{Inputs}\label{inputs-8-otherequipmentdefinition} The fuel input to the equipment ultimately appears as heat that contributes to zone loads. In EnergyPlus this heat is divided into four different fractions. Three of these are given by the input fields Fraction Latent, Fraction Radiant and Fraction Lost. A fourth, defined as the fraction of the heat from other equipment convected to the zone air, is calculated by the program as: \begin{equation} - f_{\rm{convected}} = 1.0 - (\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}) + f_{\mathrm{convected}} = 1.0 - (\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}) \end{equation} -You will get an error message if \(\rm{Fraction Latent} + \rm{Fraction Radiant} + \rm{Fraction Lost}\) exceeds 1.0. +You will get an error message if \(\mathrm{Fraction Latent} + \mathrm{Fraction Radiant} + \mathrm{Fraction Lost}\) exceeds 1.0. \paragraph{Field: Fraction Latent}\label{field-fraction-latent-4-other-definition} @@ -5227,7 +5227,7 @@ \subsection{ZoneContaminantSourceAndSink:Generic:CutoffModel}\label{zonecontamin \(F_{G}\) = Fraction value from the source fraction schedule at a given time {[}dimensionless{]} -\(C_{\rm{cutoff}}\) = Cutoff concentration at which emission ceases {[}ppm{]} +\(C_{\mathrm{cutoff}}\) = Cutoff concentration at which emission ceases {[}ppm{]} \(C_{f}\) = Generic contaminant concentration value at a given previous time step {[}ppm{]} @@ -5452,7 +5452,7 @@ \subsection{Sur\-face\-Contaminant\-Source\-And\-Sink:\-Generic:\-Deposition\-Ve \(C_f (t)\) = Concentration of contaminant generic contaminant at the previous time step {[}ppm{]} -\(\rm{F}_{R}\) = Schedule or control signal value at time \(t\) {[}-{]} +\(\mathrm{F}_{R}\) = Schedule or control signal value at time \(t\) {[}-{]} \subsubsection{Inputs}\label{inputs-16-005} diff --git a/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex b/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex index 251d36aa327..0d45611b315 100644 --- a/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex +++ b/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex @@ -1672,7 +1672,7 @@ \subsection{Site:GroundReflectance}\label{sitegroundreflectance} Ground reflectance values are used to calculate the ground reflected solar amount. This fractional amount (entered monthly) is used in this equation: \begin{equation} -\rm{GroundReflectedSolar} = \left( \rm{BeamSolar} \cdot cos \left( \rm{SunZenithAngle} \right) + \rm{DiffuseSolar} \right) \cdot \rm{GroundReflectance} +\mathrm{GroundReflectedSolar} = \left( \mathrm{BeamSolar} \cdot cos \left( \mathrm{SunZenithAngle} \right) + \mathrm{DiffuseSolar} \right) \cdot \mathrm{GroundReflectance} \end{equation} Of course, the Ground Reflected Solar is never allowed to be negative. The ground reflectance can be further modified when snow is on the ground by the Snow Ground Reflectance Modifier. To use no ground reflected solar in your simulation, enter 0.0 for each month. @@ -1712,7 +1712,7 @@ \subsubsection{Inputs}\label{inputs-20-003} This field is a decimal number which is used to modified the basic monthly ground reflectance when snow is on the ground (from design day input or weather data values). \begin{equation} -\rm{GroundReflectance}_{\rm{used}} = \rm{GroundReflectance} \cdot \rm{Modifier}_{\rm{Snow}} +\mathrm{GroundReflectance}_{\mathrm{used}} = \mathrm{GroundReflectance} \cdot \mathrm{Modifier}_{\mathrm{Snow}} \end{equation} The actual Ground Reflectance is limited to {[}0.0,1.0{]}. @@ -1722,7 +1722,7 @@ \subsubsection{Inputs}\label{inputs-20-003} This field is a decimal number which is used to modified the basic monthly ground reflectance when snow is on the ground (from design day input or weather data values). \begin{equation} -\rm{DaylightingGroundReflectance}_{\rm{used}} = \rm{GroundReflectance} \cdot \rm{Modifier}_{\rm{Snow}} +\mathrm{DaylightingGroundReflectance}_{\mathrm{used}} = \mathrm{GroundReflectance} \cdot \mathrm{Modifier}_{\mathrm{Snow}} \end{equation} The actual Ground Reflectance is limited to {[}0.0,1.0{]}. @@ -1817,11 +1817,11 @@ \subsection{Site:Precipitation}\label{siteprecipitation} A set of schedules for site precipitation have been developed for USA weather locations and are provided with EnergyPlus in the data set called PrecipitationSchedulesUSA.idf. The user can develop schedules however they want. The schedules in the data set were developed using EnergyPlus' weather file (EPW) observations and the average monthly precipitation for the closest weather site provided by NOAA. EPW files for the USA that were based on TMY or TMY2 include weather observations for Light/Moderate/Heavy rainfall, however most international locations do not include these observations. The values were modeled by taking the middle of the ranges quoted in the EPW data dictionary. The assumed piecewise function is shown below. \begin{equation} -\rm{Amount} \, (m/hour) = \, \left\{ - \begin{array}{*{20}{c}} - \rm{Light} = 0.0125 \\ - \rm{Moderate} = 0.052 \\ - \rm{Heavy} = 0.1 +\mathrm{Amount} \, (m/hour) = \, \left\{ + \begin{array}{ccc} + \mathrm{Light} = 0.0125 \\ + \mathrm{Moderate} = 0.052 \\ + \mathrm{Heavy} = 0.1 \end{array} \right. \end{equation} @@ -2144,9 +2144,9 @@ \subsubsection{Site Ground Reflected Solar Radiation Rate per Area {[}W/m2{]}}\l The ground reflected solar amount (\si{W/m^2}) is derived from the Beam Solar, Diffuse Solar, User specified Ground Reflectance (for month) and Solar Altitude Angle: \begin{multline} - \rm{Groundreflectedsolar} + \mathrm{Groundreflectedsolar} \\ - = \left( \rm{Beamsolar} \cdot cos \left( \rm{SolarAltitudeAngle} \right) + \rm{Diffusesolar} \right) \cdot \rm{Groundreflectance}_{\rm{month}} + = \left( \mathrm{Beamsolar} \cdot cos \left( \mathrm{SolarAltitudeAngle} \right) + \mathrm{Diffusesolar} \right) \cdot \mathrm{Groundreflectance}_{\mathrm{month}} \end{multline} where if the calculation returns a value \textless{} 0.0, then 0.0 will be reported. diff --git a/doc/input-output-reference/src/overview/group-plant-equipment.tex b/doc/input-output-reference/src/overview/group-plant-equipment.tex index 38db854fadd..77ea25b9e76 100644 --- a/doc/input-output-reference/src/overview/group-plant-equipment.tex +++ b/doc/input-output-reference/src/overview/group-plant-equipment.tex @@ -863,8 +863,8 @@ \subsubsection{Inputs}\label{inputs-2-030} Where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} - = {\rm{TempEvapOut - TempCondIn }} +{\Delta_{{\mathrm{Temp}}}} + = {\mathrm{TempEvapOut - TempCondIn }} \end{equation} \paragraph{Field: Thermosiphon Minimum Temperature Difference}\label{thermosiphon-minimum-temperature-difference1} @@ -970,8 +970,8 @@ \subsection{Chiller:Electric}\label{chillerelectric} This chiller model is the empirical model from the Building Loads and System Thermodynamics (BLAST) program. Capacity, power, and full load are each defined by a set of performance curves (quadratics). Chiller performance curves are generated by fitting catalog data to third order polynomial equations. The nominal inputs and curves described below are combined as follows to calculate the chiller power: \begin{equation} -{\rm{Power = FracFullLoadPower }} - \cdot {\rm{ FullLoadPowerRat }}\cdot {\rm{ AvailToNominalCapacityRatio }}\cdot \frac{{{\rm{NominalCapacity}}}}{{{\rm{COP}}}} +{\mathrm{Power = FracFullLoadPower }} + \cdot {\mathrm{ FullLoadPowerRat }}\cdot {\mathrm{ AvailToNominalCapacityRatio }}\cdot \frac{{{\mathrm{NominalCapacity}}}}{{{\mathrm{COP}}}} \end{equation} where: @@ -1077,8 +1077,8 @@ \subsubsection{Inputs}\label{inputs-3-026} Where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} - = \frac{{{\rm{TempCondIn - TempCondInDesign }}}}{{{\rm{TempRiseCoefficient}}}} - ({\rm{TempEvapOut - TempEvapOutDesign)}} +{\Delta_{{\mathrm{Temp}}}} + = \frac{{{\mathrm{TempCondIn - TempCondInDesign }}}}{{{\mathrm{TempRiseCoefficient}}}} - ({\mathrm{TempEvapOut - TempEvapOutDesign)}} \end{equation} TempCondIn = Temperature entering the condenser (water or air temperature depending on condenser type). @@ -1208,8 +1208,8 @@ \subsubsection{Inputs}\label{inputs-3-026} Where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} - = {\rm{TempEvapOut - TempCondIn }} +{\Delta_{{\mathrm{Temp}}}} + = {\mathrm{TempEvapOut - TempCondIn }} \end{equation} \paragraph{Field: Thermosiphon Minimum Temperature Difference}\label{thermosiphon-minimum-temperature-difference2} @@ -1809,8 +1809,8 @@ \subsubsection{Inputs}\label{inputs-4-023} Where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} - = {\rm{TempEvapOut - TempCondIn }} +{\Delta_{{\mathrm{Temp}}}} + = {\mathrm{TempEvapOut - TempCondIn }} \end{equation} \paragraph{Field: Thermosiphon Minimum Temperature Difference}\label{thermosiphon-minimum-temperature-difference3} @@ -2234,8 +2234,8 @@ \subsubsection{Inputs}\label{inputs-5-021} Where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} - = {\rm{TempEvapOut - TempCondIn }} +{\Delta_{{\mathrm{Temp}}}} + = {\mathrm{TempEvapOut - TempCondIn }} \end{equation} \paragraph{Field: Thermosiphon Minimum Temperature Difference}\label{thermosiphon-minimum-temperature-difference4} @@ -2467,7 +2467,7 @@ \subsubsection{Inputs}\label{inputs-6-018} The Full Load Ratio Curve is a quadratic equation that determines the fraction of full load power. The defining equation is: \begin{equation} -{\rm{CoolingLoadtoFuelCurve}} +{\mathrm{CoolingLoadtoFuelCurve}} = {C_1} + {C_2} * PLR + {C_3} * PL{R^2} \end{equation} @@ -3424,8 +3424,8 @@ \subsubsection{Inputs}\label{inputs-8-016} \begin{equation} \begin{array}{l} - \rm{CoolFuelInput} = \\ - \rm{AvailCoolCap} \cdot \rm{RunFrac} \cdot \rm{CFIR} \cdot \rm{CFIRfT}( T_{cw,l}, {T_{\rm{cond}}}) \cdot \rm{CFIRfPLR}( \rm{CPLR} ) + \mathrm{CoolFuelInput} = \\ + \mathrm{AvailCoolCap} \cdot \mathrm{RunFrac} \cdot \mathrm{CFIR} \cdot \mathrm{CFIRfT}( T_{cw,l}, {T_{\mathrm{cond}}}) \cdot \mathrm{CFIRfPLR}( \mathrm{CPLR} ) \end{array} \end{equation} @@ -3439,8 +3439,8 @@ \subsubsection{Inputs}\label{inputs-8-016} \begin{equation} \begin{array}{l} - \rm{CoolElectricPower} = \\ - \rm{NomCoolCap} \cdot \rm{RunFrac} \cdot \rm{CEIR} \cdot \rm{CEIRfT}(T_{cw,l}, T_{cond}) \cdot \rm{CEIRfPLR}(\rm{CPLR}) + \mathrm{CoolElectricPower} = \\ + \mathrm{NomCoolCap} \cdot \mathrm{RunFrac} \cdot \mathrm{CEIR} \cdot \mathrm{CEIRfT}(T_{cw,l}, T_{cond}) \cdot \mathrm{CEIRfPLR}(\mathrm{CPLR}) \end{array} \end{equation} @@ -3822,8 +3822,8 @@ \subsubsection{Inputs}\label{inputs-9-014} \begin{equation} \begin{array}{l} - \rm{CoolThermalEnergyInput} = \rm{AvailCoolCap} \cdot \rm{RunFrac} \cdot \rm{TeFIR} \cdot \\ - \quad \quad \quad \quad \quad \quad \rm{TeFIRfT} \left( T_{cw,l}, T_{cond} \right) \cdot \rm{TeFIRfPLR}( \rm{CPLR} ) + \mathrm{CoolThermalEnergyInput} = \mathrm{AvailCoolCap} \cdot \mathrm{RunFrac} \cdot \mathrm{TeFIR} \cdot \\ + \quad \quad \quad \quad \quad \quad \mathrm{TeFIRfT} \left( T_{cw,l}, T_{cond} \right) \cdot \mathrm{TeFIRfPLR}( \mathrm{CPLR} ) \end{array} \end{equation} @@ -4223,8 +4223,8 @@ \subsubsection{Inputs}\label{inputs-10-013} \begin{equation} \begin{array}{l} - \rm{Bicubic} \to \rm{Eff} = A_0 + A_1 \cdot \rm{PLR} + A_2 \cdot \rm{PLR}^2 + A_3 \cdot T_w + A_4 T_w^2 + A_5 \rm{PLR} \cdot T_w + A_6 \rm{PLR}^3 \\ - \quad \quad \quad \quad \quad \quad \quad + A_7 \cdot T_w^3 + A_8 \cdot \rm{PLR}^2 \cdot T_w + A_9 \cdot \rm{PLR} \cdot T_w^2 + \mathrm{Bicubic} \to \mathrm{Eff} = A_0 + A_1 \cdot \mathrm{PLR} + A_2 \cdot \mathrm{PLR}^2 + A_3 \cdot T_w + A_4 T_w^2 + A_5 \mathrm{PLR} \cdot T_w + A_6 \mathrm{PLR}^3 \\ + \quad \quad \quad \quad \quad \quad \quad + A_7 \cdot T_w^3 + A_8 \cdot \mathrm{PLR}^2 \cdot T_w + A_9 \cdot \mathrm{PLR} \cdot T_w^2 \end{array} \end{equation} @@ -5623,8 +5623,8 @@ \subsubsection{Inputs}\label{plhp_eir_cooling_inputs} Where the Delta Temperature is defined as: \begin{equation} -{\Delta_{{\rm{Temp}}}} - = {\rm{TempEvapOut - TempCondIn }} +{\Delta_{{\mathrm{Temp}}}} + = {\mathrm{TempEvapOut - TempCondIn }} \end{equation} \paragraph{Field: Thermosiphon Minimum Temperature Difference}\label{thermosiphon-minimum-temperature-difference5} diff --git a/doc/input-output-reference/src/overview/group-radiative-convective-units.tex b/doc/input-output-reference/src/overview/group-radiative-convective-units.tex index 72eac38beb2..fd574e16b75 100644 --- a/doc/input-output-reference/src/overview/group-radiative-convective-units.tex +++ b/doc/input-output-reference/src/overview/group-radiative-convective-units.tex @@ -210,7 +210,7 @@ \subsection{ZoneHVAC:Baseboard:RadiantConvective:Water:Design}\label{zonehvac-ba This field is the control tolerance for the unit heating output. The unit is controlled by matching the unit output to the zone demand. For hot water baseboards, the model must be numerically inverted to obtain a specified output. The convergence tolerance is the error tolerance used to terminate the numerical inversion procedure. Basically this is the fraction: \begin{equation} -\frac{{\left| {({Q_{bb,out}} - {Q_{ZoneLoad}})} \right|}}{{{Q_{ZoneLoad}}}} \le Convergence{\kern 1pt} Tolerance +\frac{{\left| {({Q_{bb,out}} - {Q_{ZoneLoad}})} \right|}}{{{Q_{ZoneLoad}}}} \le Convergence Tolerance \end{equation} The default is 0.001. @@ -408,7 +408,7 @@ \subsection{ZoneHVAC:Baseboard:RadiantConvective:Steam:Design}\label{zonehvac-ba This field is the control tolerance for the unit heating output. The unit is controlled by matching the unit output to the zone demand. For steam baseboards, the model must be numerically inverted to obtain a specified output. The convergence tolerance is the error tolerance used to terminate the numerical inversion procedure. Basically this is the fraction: \begin{equation} -\frac{{\left| {({Q_{bb,out}} - {Q_{ZoneLoad}})} \right|}}{{{Q_{ZoneLoad}}}} \le Convergence{\kern 1pt} Tolerance +\frac{{\left| {({Q_{bb,out}} - {Q_{ZoneLoad}})} \right|}}{{{Q_{ZoneLoad}}}} \le Convergence Tolerance \end{equation} The default is 0.001. @@ -858,7 +858,7 @@ \subsubsection{Inputs}\label{inputs-3-028} q = UA \times ({T_{water,avg}} - {T_{air,avg}}) \end{equation} -where q is the heat transferred from water to the air in watts; T\(_{water,\\ avg}\) is the average water temperature in degrees C; and T\(_{air,\\ avg}\) is the average air temperature in degrees C. Or the LMTD temperature difference can be used. +where q is the heat transferred from water to the air in watts; T\(_{water, avg}\) is the average water temperature in degrees C; and T\(_{air, avg}\) is the average air temperature in degrees C. Or the LMTD temperature difference can be used. \paragraph{Field: Maximum Water Flow Rate}\label{field-maximum-water-flow-rate-1-000} @@ -869,7 +869,7 @@ \subsubsection{Inputs}\label{inputs-3-028} The control tolerance for the unit heating output. The unit is controlled by matching the unit output to the zone demand. For hot water baseboards, the model must be numerically inverted to obtain a specified output. The convergence tolerance is the error tolerance used to terminate the numerical inversion procedure. Basically this is the fraction: \begin{equation} -\frac{{\left| {({Q_{bb,out}} - {Q_{ZoneLoad}})} \right|}}{{{Q_{ZoneLoad}}}} \le Convergence{\kern 1pt} Tolerance +\frac{{\left| {({Q_{bb,out}} - {Q_{ZoneLoad}})} \right|}}{{{Q_{ZoneLoad}}}} \le Convergence Tolerance \end{equation} The default is 0.001. diff --git a/doc/input-output-reference/src/overview/group-room-air-models.tex b/doc/input-output-reference/src/overview/group-room-air-models.tex index 2226fe2afbf..48644acb2e2 100644 --- a/doc/input-output-reference/src/overview/group-room-air-models.tex +++ b/doc/input-output-reference/src/overview/group-room-air-models.tex @@ -472,11 +472,11 @@ \subsection{RoomAirSettings:ThreeNodeDisplacementVentilation}\label{roomairsetti \begin{itemize} \item - A foot level temperature (T\(_{\rm{FLOOR}}\)). The floor region is 0.2 meters deep and T\(_{\rm{FLOOR}}\) represents the temperature at the mid-point of the region. + A foot level temperature (T\(_{\mathrm{FLOOR}}\)). The floor region is 0.2 meters deep and T\(_{\mathrm{FLOOR}}\) represents the temperature at the mid-point of the region. \item - An occupied subzone temperature (T\(_{\rm{OC}}\)), representing the temperature in the region between the floor layer and the upper, mixed layer. + An occupied subzone temperature (T\(_{\mathrm{OC}}\)), representing the temperature in the region between the floor layer and the upper, mixed layer. \item - An upper node representing the mixed-layer/outflow temperature (T\(_{\rm{MX}}\)) essential for overall energy budget calculations and for modeling comfort effects of the upper layer temperature. + An upper node representing the mixed-layer/outflow temperature (T\(_{\mathrm{MX}}\)) essential for overall energy budget calculations and for modeling comfort effects of the upper layer temperature. \end{itemize} \begin{figure}[hbtp] % fig 45 @@ -742,9 +742,9 @@ \subsection{RoomAirSettings:UnderFloorAirDistributionInterior}\label{roomairsett \begin{itemize} \item - An occupied subzone temperature (T\(_{\rm{OC}}\)), representing the temperature in the region between the floor and the boundary of the upper subzone. + An occupied subzone temperature (T\(_{\mathrm{OC}}\)), representing the temperature in the region between the floor and the boundary of the upper subzone. \item - An upper subzone temperature (T\(_{\rm{MX}}\)) essential for overall energy budget calculations and for modeling comfort effects of the upper layer temperature. + An upper subzone temperature (T\(_{\mathrm{MX}}\)) essential for overall energy budget calculations and for modeling comfort effects of the upper layer temperature. \end{itemize} The following fields are used to define an instance of the `UCSD UFAD Interior Model Controls' object. @@ -915,9 +915,9 @@ \subsection{RoomAirSettings:UnderFloorAirDistributionExterior}\label{roomairsett \begin{itemize} \item - An occupied subzone temperature (T\(_{\rm{OC}}\)), representing the temperature in the region between the floor and the boundary of the upper subzone.. + An occupied subzone temperature (T\(_{\mathrm{OC}}\)), representing the temperature in the region between the floor and the boundary of the upper subzone.. \item - An upper subzone temperature (T\(_{\rm{MX}}\)) essential for overall energy budget calculations and for modeling comfort effects of the upper layer temperature. + An upper subzone temperature (T\(_{\mathrm{MX}}\)) essential for overall energy budget calculations and for modeling comfort effects of the upper layer temperature. \end{itemize} The following fields are used to define an instance of the `UCSD UFAD Exterior Model Controls' object. diff --git a/doc/input-output-reference/src/overview/group-simulation-parameters.tex b/doc/input-output-reference/src/overview/group-simulation-parameters.tex index 6706ac39b7f..fa157c6d0cc 100644 --- a/doc/input-output-reference/src/overview/group-simulation-parameters.tex +++ b/doc/input-output-reference/src/overview/group-simulation-parameters.tex @@ -990,7 +990,7 @@ \subsection{PerformancePrecisionTradeoffs}\label{performanceprecisiontradeoffs} The Part Load Ratio (PLR) for a single speed coil or a multiple speed coil at speed 1 is calculated using the equation below: \begin{equation} - \textnormal{PLR} = \frac{\textnormal{SystemLoad} - \textnormal{OutputOff}}{\textnormal{OutputFull} - \textnormal{OutputOff}} + \textrm{PLR} = \frac{\textrm{SystemLoad} - \textrm{OutputOff}}{\textrm{OutputFull} - \textrm{OutputOff}} \end{equation} where @@ -1006,7 +1006,7 @@ \subsection{PerformancePrecisionTradeoffs}\label{performanceprecisiontradeoffs} The Speed Ratio for a multiple speed coil at speed > 1 is calculated using the equation below: \begin{equation} - \textnormal{SpeedRatio} = \frac{\textnormal{SystemLoad} - \textnormal{OutputFull}_{i-1}}{\textnormal{OutputFull}_{i} - \textnormal{OutputFull}_{i-1}} + \textrm{SpeedRatio} = \frac{\textrm{SystemLoad} - \textrm{OutputFull}_{i-1}}{\textrm{OutputFull}_{i} - \textrm{OutputFull}_{i-1}} \end{equation} where @@ -1026,7 +1026,7 @@ \subsection{PerformancePrecisionTradeoffs}\label{performanceprecisiontradeoffs} The Part Load Ratio (PLR) for a single speed coil or a multiple speed coil at speed 1 is calculated using the equation below: \begin{equation} - \textnormal{PLR} = \frac{\textnormal{DesOutTemp} - \textnormal{InletTemp}}{\textnormal{OutTempFull} - \textnormal{InletTemp}} + \textrm{PLR} = \frac{\textrm{DesOutTemp} - \textrm{InletTemp}}{\textrm{OutTempFull} - \textrm{InletTemp}} \end{equation} where @@ -1042,7 +1042,7 @@ \subsection{PerformancePrecisionTradeoffs}\label{performanceprecisiontradeoffs} The Speed Ratio for a multiple speed coil at speed > 1 is calculated using the equation below: \begin{equation} - \textnormal{SpeedRatio} = \frac{\textnormal{DesOutTemp} - \textnormal{OutTempFull}_{i-1}}{\textnormal{OutTempFull}_{i} - \textnormal{OutTempFull}_{i-1}} + \textrm{SpeedRatio} = \frac{\textrm{DesOutTemp} - \textrm{OutTempFull}_{i-1}}{\textrm{OutTempFull}_{i} - \textrm{OutTempFull}_{i-1}} \end{equation} where diff --git a/doc/input-output-reference/src/overview/group-surface-construction-elements.tex b/doc/input-output-reference/src/overview/group-surface-construction-elements.tex index 1c07482cc1f..49db7053c19 100644 --- a/doc/input-output-reference/src/overview/group-surface-construction-elements.tex +++ b/doc/input-output-reference/src/overview/group-surface-construction-elements.tex @@ -2295,23 +2295,23 @@ \subsubsection{Inputs}\label{inputs-22-005} Effective long-wave emissivity. Assumed same on both sides of shade. We can approximate this~ effective emissivity, \(\varepsilon_{eff}\), as follows. Let \(\eta\) be the ``openness'' the shade, i.e.,~ the ratio of the area of openings in the shade to the overall shade area (see Field: Air-Flow Permeability, below). Let the emissivity of the shade material be \(\varepsilon\). Then \begin{equation} -{\varepsilon_{{\rm{eff}}}} \approx \varepsilon \left( {1 - \eta } \right) +{\varepsilon_{{\mathrm{eff}}}} \approx \varepsilon \left( {1 - \eta } \right) \end{equation} For most non-metallic materials \(\varepsilon\) is about 0.9. \paragraph{Field: Infrared Transmittance}\label{field-infrared-transmittance} -Effective long-wave transmittance. Assumed independent of incidence angle. We can approximate this effective long-wave transmittance, \(T_{\rm{eff}}\) as follows. Let \(\eta\) be the ``openness'' of the shade, i.e., the ratio of the area of openings in the shade to the overall shade area. Let the long-wave transmittance of the shade material be \(T\). Then +Effective long-wave transmittance. Assumed independent of incidence angle. We can approximate this effective long-wave transmittance, \(T_{\mathrm{eff}}\) as follows. Let \(\eta\) be the ``openness'' of the shade, i.e., the ratio of the area of openings in the shade to the overall shade area. Let the long-wave transmittance of the shade material be \(T\). Then \begin{equation} -T_{\rm{eff}} \approx \eta + T \left( 1 - \eta \right) +T_{\mathrm{eff}} \approx \eta + T \left( 1 - \eta \right) \end{equation} For most materials \(T\) is very close to zero, which gives \begin{equation} -T_{\rm{eff}} \approx \eta +T_{\mathrm{eff}} \approx \eta \end{equation} \paragraph{Field: Thickness}\label{field-thickness-6} @@ -2351,13 +2351,13 @@ \subsubsection{Inputs}\label{inputs-22-005} \begin{figure}[hbtp] % fig 12 \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/image033.png} -\caption{Vertical section (a) and perspective view (b) of glass and interior shade layers showing variables used in the gap air flow analysis. In (b), the air-flow opening areas \(A_{\rm{bot}}\), \(A_{\rm{top}}\), \(A_{l}\), \(A_{r}\) and \(A_{h}\) are shown schematically. See \emph{Engineering Manual} for definition of thermal variables. \protect \label{fig:vertical-section-a-and-perspective-view-b-of}} +\caption{Vertical section (a) and perspective view (b) of glass and interior shade layers showing variables used in the gap air flow analysis. In (b), the air-flow opening areas \(A_{\mathrm{bot}}\), \(A_{\mathrm{top}}\), \(A_{l}\), \(A_{r}\) and \(A_{h}\) are shown schematically. See \emph{Engineering Manual} for definition of thermal variables. \protect \label{fig:vertical-section-a-and-perspective-view-b-of}} \end{figure} \begin{figure}[hbtp] % fig 13 \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/image034.png} -\caption{Examples of air-flow openings for an interior shade covering glass of height \(H\) and width \(W\). Not to scale. (a) Horizontal section through shade with openings on the left and right sides (top view). (b) Vertical section through shade with openings at the top and bottom (side view). In (a) Left-Side Opening Multiplier = \(A_{l}/sH = min(l/s, 1)\) and Right-Side Opening Multiplier = \(A_{r}/sH = min(r/s, 1)\). In (b) Top Opening Multiplier = \(A_{\rm{top}}/sW = t/s\) and Bottom Opening Multiplier = \(A_{\rm{bot}}/sW = b/s\). \protect \label{fig:examples-of-air-flow-openings-for-an-interior}} +\caption{Examples of air-flow openings for an interior shade covering glass of height \(H\) and width \(W\). Not to scale. (a) Horizontal section through shade with openings on the left and right sides (top view). (b) Vertical section through shade with openings at the top and bottom (side view). In (a) Left-Side Opening Multiplier = \(A_{l}/sH = min(l/s, 1)\) and Right-Side Opening Multiplier = \(A_{r}/sH = min(r/s, 1)\). In (b) Top Opening Multiplier = \(A_{\mathrm{top}}/sW = t/s\) and Bottom Opening Multiplier = \(A_{\mathrm{bot}}/sW = b/s\). \protect \label{fig:examples-of-air-flow-openings-for-an-interior}} \end{figure} An IDF example: diff --git a/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex b/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex index 8bae11127af..b2c8b595179 100644 --- a/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex +++ b/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex @@ -307,7 +307,7 @@ \subsubsection{Inputs}\label{inputs-051} where -\emph{T\(_{cond\\ inlet}\)} = the temperature of the air entering the condenser coil ($^\circ$C) +\emph{T\(_{cond inlet}\)} = the temperature of the air entering the condenser coil ($^\circ$C) \emph{T\(_{wb,o}\)} = the wet-bulb temperature of the outdoor air ($^\circ$C) diff --git a/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex b/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex index 65c047c4be8..cfd32b42ad1 100644 --- a/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex +++ b/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex @@ -1409,7 +1409,7 @@ \subsubsection{Inputs}\label{inputs-3-043} The unit is controlled by matching the unit output to the zone demand. For units with water coils, the model must be numerically inverted to obtain a specified output. The heating convergence tolerance is the error tolerance used to terminate the numerical inversion procedure. Basically this is the fraction: \begin{equation} -\frac{{\left| {{Q_{unit{\kern 1pt} heater,out}} - {Q_{zoneload}}} \right|}}{{{Q_{zoneload}}}} \le HeatingConvergenceTolerance +\frac{{\left| {{Q_{unit heater,out}} - {Q_{zoneload}}} \right|}}{{{Q_{zoneload}}}} \le HeatingConvergenceTolerance \end{equation} \paragraph{Field: Availability Manager List Name}\label{field-availability-manager-list-name-2} @@ -2040,7 +2040,7 @@ \subsubsection{Inputs}\label{inputs-7-031} The window air conditioner is controlled by matching its sensible (temperature) cooling output to the zone sensible load (demand). Because the performance of the DX coil is frequently non-linear, the air conditioner model must call the DX coil model several times (iterate) to determine the proper run time fraction to meet the zone load. The cooling convergence tolerance is the error tolerance used to terminate the iteration procedure when the following equation is satisfied: \begin{equation} -\frac{{\left| {{Q_{ZoneLoad}} - {Q_{WindowAirConditioner,out}})} \right|}}{{{Q_{ZoneLoad}}}} \le Cooling{\kern 1pt} Convergence{\kern 1pt} Tolerance +\frac{{\left| {{Q_{ZoneLoad}} - {Q_{WindowAirConditioner,out}})} \right|}}{{{Q_{ZoneLoad}}}} \le Cooling Convergence Tolerance \end{equation} The maximum number of iterations is limited, with a warning message generated if the above equation is not satisfied within the maximum number of iterations. @@ -2640,7 +2640,7 @@ \subsubsection{Inputs}\label{inputs-9-026} The heat pump is controlled by matching its sensible (temperature) heating output to the zone sensible load (demand). Because the performance of the DX heating coil is frequently non-linear, the heat pump model must call the DX heating coil model several times (iterate) to determine the proper run time fraction to meet the zone load. The heating convergence tolerance is the error tolerance used to terminate the iteration procedure when the following equation is satisfied: \begin{equation} -\frac{{\left| {({Q_{ZoneLoad}} - {Q_{HeatPump,out}})} \right|}}{{{Q_{ZoneLoad}}}}\,\, \le \,\,Heating{\kern 1pt} Convergence{\kern 1pt} Tolerance +\frac{{\left| {({Q_{ZoneLoad}} - {Q_{HeatPump,out}})} \right|}}{{{Q_{ZoneLoad}}}}\,\, \le \,\,Heating Convergence Tolerance \end{equation} The maximum number of iterations is limited, with a warning message generated if the above equation is not satisfied within the maximum number of iterations. @@ -2671,7 +2671,7 @@ \subsubsection{Inputs}\label{inputs-9-026} The heat pump is controlled by matching its sensible (temperature) cooling output to the zone sensible load (demand). Because the performance of the DX cooling coil is frequently non-linear, the heat pump model must call the DX cooling coil model several times (iterate) to determine the proper run time fraction to meet the zone load. The cooling convergence tolerance is the error tolerance used to terminate the iteration procedure when the following equation is satisfied: \begin{equation} -\frac{{\left| {({Q_{ZoneLoad}} - {Q_{HeatPump,out}})} \right|}}{{{Q_{ZoneLoad}}}}\,\, \le \,\,Cooling{\kern 1pt} Convergence{\kern 1pt} Tolerance +\frac{{\left| {({Q_{ZoneLoad}} - {Q_{HeatPump,out}})} \right|}}{{{Q_{ZoneLoad}}}}\,\, \le \,\,Cooling Convergence Tolerance \end{equation} The maximum number of iterations is limited, with a warning message generated if the above equation is not satisfied within the maximum number of iterations. diff --git a/doc/interface-developer/CMakeLists.txt b/doc/interface-developer/CMakeLists.txt index 081edc733d4..a0d7c5d8c33 100644 --- a/doc/interface-developer/CMakeLists.txt +++ b/doc/interface-developer/CMakeLists.txt @@ -28,3 +28,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/interface-developer/media/image001.png ${PROJECT_SOURCE_DIR}/interface-developer/media/image003.png) create_doc_target("interface-developer" "InterfaceDeveloper") + +if(BUILD_HTML_DOCS) + create_html_doc_target("interface-developer" "interface-developer") +endif() diff --git a/doc/module-developer/CMakeLists.txt b/doc/module-developer/CMakeLists.txt index 2340e3e47fb..510a7ffcdda 100644 --- a/doc/module-developer/CMakeLists.txt +++ b/doc/module-developer/CMakeLists.txt @@ -81,3 +81,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/module-developer/media/image001.png ${ ${PROJECT_SOURCE_DIR}/module-developer/media/image003.jpg) create_doc_target("module-developer" "ModuleDeveloper") + +if(BUILD_HTML_DOCS) + create_html_doc_target("module-developer" "module-developer") +endif() diff --git a/doc/output-details-and-examples/CMakeLists.txt b/doc/output-details-and-examples/CMakeLists.txt index 9ef60339990..a9850ec5fbc 100644 --- a/doc/output-details-and-examples/CMakeLists.txt +++ b/doc/output-details-and-examples/CMakeLists.txt @@ -51,3 +51,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/output-details-and-examples/media/image027.jpg) create_doc_target("output-details-and-examples" "OutputDetailsAndExamples") + +if(BUILD_HTML_DOCS) + create_html_doc_target("output-details-and-examples" "output-details-and-examples") +endif() diff --git a/doc/output-details-and-examples/src/output-files/eplustbl-lt-ext-gt.tex b/doc/output-details-and-examples/src/output-files/eplustbl-lt-ext-gt.tex index afdd58b8d14..791987d9cfe 100644 --- a/doc/output-details-and-examples/src/output-files/eplustbl-lt-ext-gt.tex +++ b/doc/output-details-and-examples/src/output-files/eplustbl-lt-ext-gt.tex @@ -4362,4 +4362,4 @@ \subsection{XML Tabular Output}\label{xml-tabular-output} ~ \textless{}/SiteAndSourceEnergy\textgreater{} -\emph{An actual file will be much longer than this example but follows this format.} +\textit{An actual file will be much longer than this example but follows this format.} diff --git a/doc/plant-application-guide/CMakeLists.txt b/doc/plant-application-guide/CMakeLists.txt index 1fbbc6cde40..0a39caed690 100644 --- a/doc/plant-application-guide/CMakeLists.txt +++ b/doc/plant-application-guide/CMakeLists.txt @@ -158,3 +158,7 @@ set(INCLUDED_IMAGES ${PROJECT_SOURCE_DIR}/plant-application-guide/media/image127.png) create_doc_target("plant-application-guide" "PlantApplicationGuide") + +if(BUILD_HTML_DOCS) + create_html_doc_target("plant-application-guide" "plant-application-guide") +endif() diff --git a/doc/readthedocs/README.md b/doc/readthedocs/README.md index 5bcd205453e..8ae040f21fd 100644 --- a/doc/readthedocs/README.md +++ b/doc/readthedocs/README.md @@ -1,7 +1,11 @@ -# ReadTheDocs Stuff +# Read the Docs development guide -OK, so we are going to start pushing a little of the more dynamic documentation out into ReadTheDocs. -We have a bit of a mixed bag of stuff to document, including Python, C, and Freeform documentation. +This README covers building, contributing to, and publishing the EnergyPlus documentation site. +For the reader-facing documentation, visit the +[EnergyPlus documentation home](https://energyplus.readthedocs.io/en/latest/). + +The site combines Sphinx documentation, Doxygen-generated C API documentation, and LaTeX user +guides converted to HTML with Pandoc. ## Building the Doxygen (C) Documentation The C documentation is built with Doxygen, which is available on Debian with `apt install doxygen`. @@ -16,6 +20,8 @@ Move into the Python API doc folder: `cd doc/readthedocs/sphinx/`. Run the Sphinx built Makefile: `make html`. Browse the built docs at: `doc/readthedocs/sphinx/_build/html/index.html` +To build the LaTeX ones via pandoc, **AFTER** running `make html`, run `make -j $(nproc) guides` + ## Adding Documentation The Python and C API documentation are generated directly from the API sources (.py files and .h files) in the api source directory: `src/EnergyPlus/api`. - To edit the documentation, just edit the code there and rebuild the documentation. diff --git a/doc/readthedocs/install_pandoc.sh b/doc/readthedocs/install_pandoc.sh new file mode 100644 index 00000000000..05d86c3faa0 --- /dev/null +++ b/doc/readthedocs/install_pandoc.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -euo pipefail + +readonly PANDOC_VERSION="3.11" +readonly PANDOC_SHA256="37edb3bbcf722f921a009941bf5874e2e0c09263226c9b4a2d980788cb062ab6" +readonly INSTALL_ROOT="${1:?usage: install_pandoc.sh INSTALL_ROOT}" +readonly ARCHIVE_NAME="pandoc-${PANDOC_VERSION}-linux-amd64.tar.gz" +readonly ARCHIVE_PATH="${INSTALL_ROOT}/${ARCHIVE_NAME}" +readonly DOWNLOAD_URL="https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/${ARCHIVE_NAME}" + +mkdir -p "${INSTALL_ROOT}" +curl --fail --location --silent --show-error --retry 3 \ + --output "${ARCHIVE_PATH}" \ + "${DOWNLOAD_URL}" + +printf '%s %s\n' "${PANDOC_SHA256}" "${ARCHIVE_PATH}" | sha256sum --check --status +tar --extract --gzip --file "${ARCHIVE_PATH}" --directory "${INSTALL_ROOT}" + +"${INSTALL_ROOT}/pandoc-${PANDOC_VERSION}/bin/pandoc" --version diff --git a/doc/readthedocs/sphinx/.templates/footer.html b/doc/readthedocs/sphinx/.templates/footer.html index cb42197fb2e..216bb09c14f 100644 --- a/doc/readthedocs/sphinx/.templates/footer.html +++ b/doc/readthedocs/sphinx/.templates/footer.html @@ -1,6 +1,6 @@ {% extends "!footer.html" %} {%- block contentinfo %} - EnergyPlus Web Site
- EnergyPlus Github Repo
- API Documentation Home
+ EnergyPlus website
+ EnergyPlus GitHub repository
+ EnergyPlus documentation home
{%- endblock %} diff --git a/doc/readthedocs/sphinx/Makefile b/doc/readthedocs/sphinx/Makefile index 51285967a7d..30be214d0e1 100644 --- a/doc/readthedocs/sphinx/Makefile +++ b/doc/readthedocs/sphinx/Makefile @@ -7,11 +7,25 @@ SPHINXBUILD = sphinx-build SOURCEDIR = . BUILDDIR = _build +# Root of the doc/ tree (source dir for the pandoc-based guides build), and where CMake +# configures/builds it -- matches the paths .readthedocs.yml's post_build steps use (doc, doc/build). +DOC_ROOT = ../.. +DOC_BUILD_DIR = _build_pandoc + # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -.PHONY: help Makefile +# Build the pandoc-based chunked HTML guides (Engineering Reference, I/O Reference, etc.) and +# copy them into $(BUILDDIR)/html/guides, the same layout .readthedocs.yml's post_build produces. +# Run `make html guides` for full local parity with what gets published to Read the Docs. +guides: + cmake -S "$(DOC_ROOT)" -B "$(DOC_BUILD_DIR)" -DBUILD_HTML_DOCS:BOOL=ON + cmake --build "$(DOC_BUILD_DIR)" --target html_docs -j 4 + mkdir -p "$(BUILDDIR)/html/guides" + cp -r "$(DOC_BUILD_DIR)/html/." "$(BUILDDIR)/html/guides/" + +.PHONY: help guides Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). diff --git a/doc/readthedocs/sphinx/conf.py b/doc/readthedocs/sphinx/conf.py index 5e938b649e3..6d0207caced 100644 --- a/doc/readthedocs/sphinx/conf.py +++ b/doc/readthedocs/sphinx/conf.py @@ -39,7 +39,7 @@ # -- Options for HTML output ------------------------------------------------- html_theme = "sphinx_rtd_theme" -html_logo = "../../../release/favicon_white_plus.png" +html_logo = "../../../release/ep_nobg.svg" html_show_sphinx = False html_show_copyright = True html_extra_path = ["_build_c"] @@ -50,12 +50,23 @@ html_js_files = [ "main.js", ] -extra_nav_links = {"Blah": "https://energyplus.net"} templates_path = [".templates"] html_theme_options = { "titles_only": True, } numfig = True + +# Link contributor-facing documentation to the exact source revision used by Read the Docs. +# Local builds fall back to develop, where this README normally lives. +documentation_source_ref = os.environ.get("READTHEDOCS_GIT_COMMIT_HASH", "develop") +repository_source_url = f"https://github.com/NatLabRockies/EnergyPlus/blob/{documentation_source_ref}" +project_readme_url = f"{repository_source_url}/README.md" +documentation_readme_url = f"{repository_source_url}/doc/readthedocs/README.md" +rst_epilog = f""" +.. _EnergyPlus project README: {project_readme_url} +.. _documentation contributor guide: {documentation_readme_url} +""" + # html_sidebars = { # '**': [ # 'about.html', diff --git a/doc/readthedocs/sphinx/guides/engineering-reference/index.rst b/doc/readthedocs/sphinx/guides/engineering-reference/index.rst new file mode 100644 index 00000000000..0a65d7cbbd8 --- /dev/null +++ b/doc/readthedocs/sphinx/guides/engineering-reference/index.rst @@ -0,0 +1,2 @@ +Engineering Reference +===================== diff --git a/doc/readthedocs/sphinx/guides/external-interfaces-application-guide/index.rst b/doc/readthedocs/sphinx/guides/external-interfaces-application-guide/index.rst new file mode 100644 index 00000000000..3bf787f08df --- /dev/null +++ b/doc/readthedocs/sphinx/guides/external-interfaces-application-guide/index.rst @@ -0,0 +1,2 @@ +External Interfaces Application Guide +===================================== diff --git a/doc/readthedocs/sphinx/guides/getting-started/index.rst b/doc/readthedocs/sphinx/guides/getting-started/index.rst new file mode 100644 index 00000000000..3ce1d78a117 --- /dev/null +++ b/doc/readthedocs/sphinx/guides/getting-started/index.rst @@ -0,0 +1,2 @@ +Getting Started +=============== diff --git a/doc/readthedocs/sphinx/guides/input-output-reference/index.rst b/doc/readthedocs/sphinx/guides/input-output-reference/index.rst new file mode 100644 index 00000000000..c842d2d345b --- /dev/null +++ b/doc/readthedocs/sphinx/guides/input-output-reference/index.rst @@ -0,0 +1,3 @@ +====================== +Input Output Reference +====================== diff --git a/doc/readthedocs/sphinx/guides/interface-developer/index.rst b/doc/readthedocs/sphinx/guides/interface-developer/index.rst new file mode 100644 index 00000000000..69394e4455a --- /dev/null +++ b/doc/readthedocs/sphinx/guides/interface-developer/index.rst @@ -0,0 +1,2 @@ +Interface Developer +=================== diff --git a/doc/readthedocs/sphinx/guides/module-developer/index.rst b/doc/readthedocs/sphinx/guides/module-developer/index.rst new file mode 100644 index 00000000000..08114322af5 --- /dev/null +++ b/doc/readthedocs/sphinx/guides/module-developer/index.rst @@ -0,0 +1,2 @@ +Module Developer +================ diff --git a/doc/readthedocs/sphinx/guides/output-details-and-examples/index.rst b/doc/readthedocs/sphinx/guides/output-details-and-examples/index.rst new file mode 100644 index 00000000000..34e23e87c2d --- /dev/null +++ b/doc/readthedocs/sphinx/guides/output-details-and-examples/index.rst @@ -0,0 +1,2 @@ +Output Details and Examples +=========================== diff --git a/doc/readthedocs/sphinx/guides/plant-application-guide/index.rst b/doc/readthedocs/sphinx/guides/plant-application-guide/index.rst new file mode 100644 index 00000000000..4f677300a3e --- /dev/null +++ b/doc/readthedocs/sphinx/guides/plant-application-guide/index.rst @@ -0,0 +1,2 @@ +Plant Application Guide +======================= diff --git a/doc/readthedocs/sphinx/guides/using-energyplus-for-compliance/index.rst b/doc/readthedocs/sphinx/guides/using-energyplus-for-compliance/index.rst new file mode 100644 index 00000000000..14eacb8a048 --- /dev/null +++ b/doc/readthedocs/sphinx/guides/using-energyplus-for-compliance/index.rst @@ -0,0 +1,2 @@ +Using EnergyPlus for Compliance +=============================== diff --git a/doc/readthedocs/sphinx/index.rst b/doc/readthedocs/sphinx/index.rst index 4ad111ccd4c..b0e77175c44 100644 --- a/doc/readthedocs/sphinx/index.rst +++ b/doc/readthedocs/sphinx/index.rst @@ -1,17 +1,49 @@ -Welcome to EnergyPlus Live documentation! -========================================= +EnergyPlus Documentation +======================== -We are going to start making use of ReadTheDocs for some of our more "live" documentation. -For now that is primarily the documentation of our growing API. -Over time, that scope may grow much further. +EnergyPlus is an open-source whole-building energy simulation program used by engineers, +architects, and researchers to model energy consumption and water use in buildings. This site +brings together the user guides, application guidance, developer documentation, and API references. + +New to EnergyPlus? Begin with the :doc:`Quick Start Guide ` or the +:doc:`Getting Started guide `. + +Downloads and releases +---------------------- + +EnergyPlus is released twice each year, usually in March and September. Formal public releases are +recommended for production workflows because development and prerelease versions may introduce +input syntax changes that are not supported by the release transition tools. + +`Download the latest EnergyPlus release `_ +or browse `all available releases `_. .. toctree:: :maxdepth: 1 - :caption: Contents: + :caption: Start here quick_start/quick_start - tips_and_tricks/tips_and_tricks essentials/essentials + tips_and_tricks/tips_and_tricks + +.. toctree:: + :maxdepth: 1 + :caption: User guides + + guides/getting-started/index + guides/input-output-reference/index + guides/engineering-reference/index + guides/external-interfaces-application-guide/index + guides/output-details-and-examples/index + guides/plant-application-guide/index + guides/module-developer/index + guides/interface-developer/index + guides/using-energyplus-for-compliance/index + +.. toctree:: + :maxdepth: 1 + :caption: APIs and supporting documentation + schema c api @@ -19,9 +51,42 @@ Over time, that scope may grow much further. ems-application-guide/ems-application-guide acknowledgments/acknowledgments -Indices and tables -================== +Support and project resources +----------------------------- + +* Visit the `EnergyPlus website `_ for program information and resources. +* Ask usage and building-simulation questions on `Unmet Hours `_. +* Request in-depth, developer-supported assistance from the + `EnergyPlus Helpdesk `_. +* Consult the `developer wiki `_ for development + and build information. + +Quality, licensing, and contributions +------------------------------------- + +Every EnergyPlus commit and release is exercised by unit, integration, API, and regression tests. +EnergyPlus is distributed under a `BSD-3-like license +`_ and accepts contributions +to source code, utilities, tests, documentation, and other project materials. Start with the +`EnergyPlus contribution policy `_. + +For the repository overview and current development information, see the `EnergyPlus project +README`_. On Read the Docs, this link follows the exact source revision used to build the page. + +About this documentation +------------------------ + +This site combines documentation produced by several tools: + +* Sphinx builds the documentation site and Python API reference. +* Doxygen generates the C API reference from the EnergyPlus API headers. +* Pandoc converts the LaTeX user guides into navigable HTML. + +Read the Docs publishes two continuously maintained versions: + +* `latest `_ follows the ``develop`` branch. +* `stable `_ follows the most recent EnergyPlus release. -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` +For local build instructions, source locations, contribution guidance, and publication details, +see the `documentation contributor guide`_. On Read the Docs, this link follows the exact source +revision used to build the page. diff --git a/doc/using-energyplus-for-compliance/CMakeLists.txt b/doc/using-energyplus-for-compliance/CMakeLists.txt index cd7257af5c7..2e2edd1d42a 100644 --- a/doc/using-energyplus-for-compliance/CMakeLists.txt +++ b/doc/using-energyplus-for-compliance/CMakeLists.txt @@ -17,3 +17,7 @@ set(INCLUDED_TEX set(INCLUDED_IMAGES) create_doc_target("using-energyplus-for-compliance" "UsingEnergyPlusForCompliance") + +if(BUILD_HTML_DOCS) + create_html_doc_target("using-energyplus-for-compliance" "using-energyplus-for-compliance") +endif() diff --git a/release/ep_nobg.svg b/release/ep_nobg.svg new file mode 100644 index 00000000000..4a91e57f30f --- /dev/null +++ b/release/ep_nobg.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +