Skip to content

Commit

Permalink
Updated report
Browse files Browse the repository at this point in the history
  • Loading branch information
mwetter committed Oct 27, 2017
1 parent d810cb5 commit ae5e34b
Show file tree
Hide file tree
Showing 7 changed files with 166 additions and 39 deletions.
5 changes: 2 additions & 3 deletions specification/fixLatex.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from io import open
print(sys.version)

oldFil=os.path.join("build", "latex", "cdl_specification.tex")
newFil=os.path.join("build", "latex", "cdl_specification.tex-new")
oldFil=os.path.join("build", "latex", "cdl_report.tex")
newFil=os.path.join("build", "latex", "cdl_report.tex-new")

def freplace(old, new):
with open(oldFil, mode="rt", encoding="utf-8") as fin, open(newFil, mode="wt", encoding="utf-8") as fout:
Expand Down Expand Up @@ -34,4 +34,3 @@ def freplace(old, new):

freplace('\\begin{Verbatim}[',
'\\begin{Verbatim}[fontsize=\\footnotesize, ')

2 changes: 1 addition & 1 deletion specification/source/_static/bootstrap_custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ h2 {
}

h3 {
margin: 1em 0 -0.3em 0;
margin: 1em 0 0.5em 0;
font-size: 1em;
}

Expand Down
2 changes: 1 addition & 1 deletion specification/source/_static/sphinxdoc.css
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ h2 {
}

h3 {
margin: 1em 0 -0.3em 0;
margin: 1em 0 0.5em 0 !important;
font-size: 1em;
}

Expand Down
21 changes: 18 additions & 3 deletions specification/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index',
'cdl_specification.tex',
'cdl_report.tex',
u'Control Description Language',
'', 'manual'),
]
Expand All @@ -284,10 +284,13 @@
#'classoptions': ',openany' : remove blank pages in PDF.
#'babel': '\\usepackage[english]{babel}' : suppress error message caused by undefined language.
#'maketitle': '\\pagenumbering{gobble}\\maketitle' : switch off the page numbering in the tile and the index.
release = ''
latex_elements = {'classoptions': ', openany', # remove blank pages in PDF.
'releasename': 'Version',
'releasename': '',
'babel': '\\usepackage[english]{babel}'}



# 'fontpkg': '\\usepackage[scaled]{helvet}'

# The name of an image file (relative to this directory) to place at the top of
Expand Down Expand Up @@ -440,7 +443,19 @@
\belowcaptionskip=5pt
\pagestyle{fancy}
\pagestyle{normal}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers
\renewcommand{\headrulewidth}{0pt} % and the line
}
%%\fancyhf{}
%%\rhead[LE,RO]{\thechapter .}
%\lhead{Guides and tutorials}
Expand Down
137 changes: 108 additions & 29 deletions specification/source/example.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,15 @@ The physics implemented in the building model is further described in
There is no moisture buffering in the envelope, but the room volume
has a dynamic equation for the moisture content.

.. _sec_int_gai:

Internal loads
..............

.. _fig_internal_loads:

.. figure:: img/case_study1/results/internal_loads.*
:scale: 80%

Internal load schedule.

Expand All @@ -102,6 +105,7 @@ The multizone airflow models are further described in
:cite:`Wetter2006:2`.



Control sequences
.................

Expand Down Expand Up @@ -181,7 +185,7 @@ Our implementation differs from guideline 36 in the following points:
Site electricity use
....................

To convert cooling and heating energy as transfered by the coil to site electricity
To convert cooling and heating energy as transferred by the coil to site electricity
use, we apply the conversion factors from EnergyStar :cite:`EnergyStar2013`.
Therefore, for an electric chiller, we assume an average coefficient of performance (COP) of
:math:`3.2` and for a geothermal heat pump, we assume a COP of :math:`4.0`.
Expand Down Expand Up @@ -221,9 +225,11 @@ according to guideline 36, part 5.B.3.
Composite block that computes the zone air temperature setpoints
for heating and cooling.


All simulations were done with Dymola 2018 FD01 beta3 using Ubuntu 16.04 64 bit.
We used the Radau solver with a tolerance of :math:`10^{-6}`.
This solver adaptively changes the time step to control the integration error.
Also, the time step is adapted to properly simulate :term:`time events<time event>`
and :term:`state events<state event>`.

The base case and the guideline 36 case use the same HVAC and building model,
which is implemented in the base class
Expand All @@ -239,7 +245,7 @@ variables reflect that the guideline 36 control is significantly more
detailed than what may otherwise be used for simulation of what the authors
believe represents a realistic implementation of a feedback control sequence.
The entry approximate number of control I/O connections
counts the number of input and ouput connections among the
counts the number of input and output connections among the
control blocks of the two implementations. For example,
If a P controller receives one set point, one measured quantity
and sends it signal to a limiter and the limiter output is
Expand All @@ -248,6 +254,7 @@ Any connections inside the PI controller would not be counted,
as the PI controller is an elementary building block
(see :numref:`sec_ele_bui_blo`) of CDL.


.. _tab_mod_sta:

.. table:: Model and simulation statistics.
Expand All @@ -269,8 +276,10 @@ Performance comparison
.. _fig_cas_stu1_energy:

.. figure:: img/case_study1/results/energy_all.*
:scale: 80%

Comparison of energy use.
Comparison of energy use. For the cases labeled :math:`\pm 50\%`, the internal gains
have been increased and decreased as described in :numref:`sec_int_gai`.

.. _tab_site_energy:

Expand All @@ -284,29 +293,27 @@ the annual simulations with the base case control
and the Guideline 36 control.
The bars labeled "div. gains" were obtained with simulations in which we
changed the diversity of the internal loads.
Specifically, we reduced the internal loads for the north zone by :math:`25\%`
Specifically, we reduced the internal loads for the north zone by :math:`50\%`
and increased them for the south zone by the same amount.

The Guideline 36 control saves around :math:`25\%`
site electrical energy. These are signficant savings
site electrical energy. These are significant savings
that can be achieved through software only, without the need
for additional hardware or equipment.
Our experience, however, was that it is rather challenging to
program guideline 36 sequence due to their complex logic
that contains various mode changes, interlocks and timers.
Various programming errors and misinterpretations or ambiguities
of the standard were only discovered in closed loop simulations.
of the guideline were only discovered in closed loop simulations.
We therefore believe it is important to provide robust, validated
implementations of the sequence that encapsulates the complexity for the
energy modeller and the control provider.
implementations of guideline 36 that encapsulates the complexity for the
energy modeler and the control provider.


:numref:`fig_TRoom_base` to :numref:`fig_TRoom_g36`
compare time trajectories of the room air temperatures for
a period in winter, spring and summer. These periods will also
be used in other plots below.
The horizontal axis is the day of the year.

a period in winter, spring and summer for the base case and
guideline 36.
The figures show that the room air temperatures are controlled
within the setpoints for both cases. Small set point violations
have been observed due to the dynamic nature of the control sequence
Expand All @@ -324,9 +331,6 @@ and the controlled process.

Room air temperatures for guideline 36.


**Next, in xxx to xxx, we show**

.. _fig_vav_all:

.. figure:: img/case_study1/results/vav_all.*
Expand All @@ -337,7 +341,6 @@ and the controlled process.
and the VAV damper :math:`y_{vav}`
for the north and south zones.


.. _fig_TAHU_all:

.. figure:: img/case_study1/results/TAHU_all.*
Expand All @@ -349,8 +352,8 @@ The figure shows the outside air temperature temperature :math:`T_{out}`,
the supply air temperature after the fan :math:`T_{sup}`,
the mixed air temperature after the economizer :math:`T_{mix}`
and the return air temperature from the building :math:`T_{ret}`.
A notable difference that can be seen is that guideline 36 resets
the supply air temperature whereas the base case is controlled
A notable difference is that guideline 36 resets
the supply air temperature, whereas the base case is controlled
for a supply air temperature of :math:`10^\circ \mathrm C`
for heating and :math:`12^\circ \mathrm C` for cooling.

Expand All @@ -369,7 +372,7 @@ speed is at its minimum.

.. figure:: img/case_study1/results/normalized_flow_all.*

Fan and outside air volumen flow rates, normalized by the room air volume.
Fan and outside air volume flow rates, normalized by the room air volume.

:numref:`fig_normalized_flow_all` shows the volume flow rate of the fan
:math:`\dot V_{fan,sup}/V_{bui}`, where :math:`V_{bui}` is the volume of the building,
Expand All @@ -385,19 +388,23 @@ We have however not further analyzed this trade-off.

.. _fig_TRoom_load_diversity:

.. figure:: img/case_study1/results/TRoom_with_without_div_IHG.pdf
.. figure:: img/case_study1/results/TRoom_with_without_div_IHG.*

Outdoor air and room air temperatures for the north and south zone with
equal internal loads, and with diversity added to the internal loads.

:numref:`fig_TRoom_load_diversity` compares the room air temperatures for the
north and south zone for the standard internal loads, and the case where we
reduced the internal loads in the north zone by :math:`25\%` and increased it
by the same amount in the south zone. The room air temperature trajectories
are practically on top of each other, except for a few hours such as for the
base case in the afternoon of day 198.
reduced the internal loads in the north zone by :math:`50\%` and increased it
by the same amount in the south zone.
The trajectories with subscript :math:`\pm 50\%` are the simulations with
the internal heat gains reduced or increased by :math:`50\%`.
The room air temperature trajectories
are practically on top of each other for winter and spring, but
the guideline 36 sequence shows somewhat better setpoint tracking
during summer.
Both control sequences are comparable in terms of compensating for this
diversity, and as we saw in :math:`fig_cas_stu1_energy`,
diversity, and as we saw in :numref:`fig_cas_stu1_energy`,
their energy consumption is not noticeably affected.

Improvement to Guideline 36 specification
Expand All @@ -406,6 +413,7 @@ Improvement to Guideline 36 specification
This section describes improvements that we recommend for the Guideline 36
specification, based on the first public review draft :cite:`ASHRAE2016`.

.. _sec_fre_pro:

Freeze protection for mixed air temperature
...........................................
Expand All @@ -428,7 +436,7 @@ was controlled by the heating coil
to around :math:`18^\circ \mathrm C`, but the mixed air temperature :math:`T_{mix}` was below freezing.
Hence, this control would not have been active.
Adding a feedback control that regulates the economizer outdoor air damper such that the mixed air temperature
is above :math:`4^\circ \mathrm C` yields the trajectory labelled :math:`T_{mix,with}`.
is above :math:`4^\circ \mathrm C` yields the trajectory labeled :math:`T_{mix,with}`.
In plants with an oversized coil that has variable water mass flow rate, there
is a risk of freezing the coil. Hence we recommend controlling the outdoor air damper
also for the mixed air temperature of :math:`4^\circ \mathrm C`.
Expand All @@ -441,6 +449,7 @@ also for the mixed air temperature of :math:`4^\circ \mathrm C`.
and without freeze protection.


.. _sec_dea_har_swi:

Deadbands for hard switches
...........................
Expand Down Expand Up @@ -480,9 +489,79 @@ The guideline states:
When a control loop is enabled or re-enabled, it and all its constituents (such as the
proportional and integral terms) shall be set initially to a Neutral value.

The proportional term should be removed as this cannot be reset.
This should be changed to "...such as the integral terms..." because the
proportional term cannot be reset.


Cross-referencing and modularization
....................................

For citing individual sections or blocks of the guideline,
it would be helpful if the guideline where available at a permanent web site
as html, with a unique url and anchor to each section.
This would allow cross-referencing the guideline from a particular implementation
in a way that allows the user to quickly see the original specification.

As part of such a restructuring, it would be helpful for the reader
to clearly state what are the input signals, what are configurable parameters,
such as the control gain, and what are the output signals.
This in turn would structure the guideline into distinct modules,
for which one could also provide a reference implementation
in software.

Discussion and conclusions
^^^^^^^^^^^^^^^^^^^^^^^^^^

xxx
The guideline 36 sequence reduced annual site energy by :math:`25\%`
compared to the baseline implementation, by comparable thermal comfort.
Such savings are significant, and have been achieved by software only
that can relatively easy be deployed to buildings.

Implementing the sequence was however rather challenging due to its
complexity caused by the various mode changes, interlocks and timers.
As a consequence, various programming errors and misinterpretations or ambiguities
of the guideline were only discovered in closed loop simulations,
despite of having implemented open-loop test cases for each block of the sequence.
We therefore believe it is important to provide robust, validated
implementations of the sequences published in guideline 36.
Such implementations would encapsulate the complexity and provide
assurances that energy modeler and control providers have correct implementations.
With the implementation in
the Modelica package `Buildings.Controls.OBC.ASHRAE.G36_PR1`, we made a start
for such an implementation and laid out the structure and conventions,
but have not covered all of the standard yet. Furthermore, conducting field validations
would be useful too.

A key short-coming from an implementer point of view was that the
sequence was only available in English language, and as an implementation
in ALC EIKON of sequences that are "close to the currently used version of the
guideline". Neither allowed a validation of the CDL implementation
because the English language version leaves room for interpretation (and cannot
be executed) and because EIKON has quite limited simulation support
that is cumbersome to use for testing the dynamic response of
control sequences for different input
trajectories. Therefore, a benefit of the Modelica implementation is that
such reference trajectories can now easily be generated to validate alternate
implementations.

A benefit of the simulation based assessment was that it allowed
detecting potential issues such as a mixed air temperature below the
freezing point (:numref:`sec_fre_pro`) and chattering due to hard switches
(:numref:`sec_dea_har_swi`).
Having a simulation model of the controlled process also allowed
verification of work-arounds for these issues.

One can, correctly, argue that the magnitude of the energy savings
are higher the worse the baseline control is. However, the baseline control was
carefully implemented, following the author's interpretation of
ASHRAE's Sequences of Operation for
Common HVAC Systems :cite:`ASHRAESeq2006:1`. While higher efficiency
of the baseline may be achieved through supply air temperature reset
or different economizer control, such potential improvements were only
recognized after seeing the results of the guideline 36 sequence.
Thus, regardless of whether a building is using guideline 36,
having a baseline control against which alternative implementations
can be compared and benchmarked is an immensely valuable feature
of a library of standardized control sequences. Without a benchmark,
one can easily claim to have a good control, while not recognizing what
potential savings one may miss.
Loading

0 comments on commit ae5e34b

Please sign in to comment.