Version 7.0.0 is a major release that contains various new packages, new models and improvements to existing models. The library has been tested with Dymola 2020x and 2021, JModelica (revision 14023), and OPTIMICA (revision OCT-stable-r12473_JM-r14295).
The following major changes have been done:
Buildings.Controls.OBC.Utilities) and to support the
creation of emulators that compare the performance of building
control sequences in the Building Optimization Performance Tests
framework BOPTEST.Buildings.Controls.OBC.CDL.Buildings.ThermalZones.Detailed.Validation.BESTEST.UsersGuide.The following new libraries have been added:
| Buildings.Controls.OBC.Utilities | Package with utility blocks, base classes and validation models for the OpenBuildingControl (OBC) library. |
| Buildings.Utilities.IO.SignalExchange | Package with blocks that can be used to identify and activate control signal overwrites, and to identify and read sensor signals. This package is used by the Building Optimization Performance Test software BOPTEST. |
| Buildings.Utilities.IO.Python36 | Upgraded from
Buildings.Utilities.IO.Python27 since Python2.7 has
been deprecated.This is for issue #1760. |
The following new components have been added to existing libraries:
| Buildings.Controls | |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow | Package of sequences for specifying the minimum
outdoor airflow rate. This replaces
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutsideAirFlow.
The new implemented sequences separate zone level calculation from
the system level calculation. It avoids vector-valued
calculations.This is for #1829. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.ZoneStatus | Block that outputs zone temperature status by
comparing it with setpoint temperatures, with the maximum and
minimum temperature of the group which the zone is in. This allows
separating the vector-valued calculations from control
sequences. This is for #1709. |
| Buildings.Controls.OBC.CDL.Discrete.TriggeredMovingMean | Block that outputs the triggered discrete moving
mean of an input signal. This replaces
Buildings.Controls.OBC.CDL.Discrete.MovingMean, which
has been moved to Buildings.Obsolete.This is for #1588. |
| Buildings.Controls.OBC.Utilities.OptimalStart | Block that outputs optimal start time for an HVAC system prior to the occupancy. This is for #1589. |
| Buildings.Fluid | |
| Buildings.Fluid.Actuators.Valves.ThreeWayTable | Three way valves with opening characteristics based on a user-provided table. |
| Buildings.Fluid.CHPs | Package with model for combined heat and power device. |
| Buildings.Fluid.Chillers.AbsorptionIndirectSteam | Indirect steam heated absorption chiller based on performance curves. |
| Buildings.Fluid.FixedResistances.CheckValve | Check valve that prevents backflow, except for a
small leakage flow rate. This is for IBPSA, #1198 |
| Buildings.Fluid.HeatPumps.EquationFitReversible | Heat pump model that can be reversed between heating and cooling mode, that takes as a set point the leaving fluid temperature, and that computes its performance based on an equation fit. |
| Buildings.Examples.Tutorial | |
| Buildings.Examples.Tutorial.CDL | Tutorial that explains how to implement control sequences using the Control Description Language. |
The following existing components have been improved in a backward compatible way:
| Buildings.BoundaryConditions.WeatherData | |
| Buildings.BoundaryConditions.WeatherData.ReaderTMY3 | Refactored weather data reader and changed
implementation to allow exactly zero radiation rather than a small
positive value. This was required to allow simulating buildings at
steady-state, which is needed for some controls design. For
examples in which buildings are simulated at steady-state, see
Buildings.ThermalZones.Detailed.Validation.MixedAirFreeResponseSteadyState,
Buildings.Examples.VAVReheat.Validation.Guideline36SteadyState
and
Buildings.ThermalZones.ReducedOrder.Validation.RoomSteadyState.This is for IBPSA, #1340. |
| Buildings.Controls.Continuous | |
| Buildings.Controls.Continuous.LimPID | Removed homotopy that may be used during
initialization to ensure that outputs are bounded. This is for IBPSA, #1221. |
| Buildings.Controls.OBC.CDL | |
| Buildings.Controls.OBC.CDL.Continuous.Derivative | Removed parameter initType and
x_start.This is for IBPSA, #1887. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.IntegratorWithReset | Removed parameter initType.This is for IBPSA, #1887. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.LimPID | Removed homotopy that may be used during
initialization to ensure that outputs are bounded. This is for IBPSA, #1221. |
|
Buildings.Controls.OBC.CDL.Continuous.Sources.CalendarTime Buildings.Controls.OBC.CDL.Types.ZeroTime |
Revised implementation such that the meaning of
time is better explained and unix time stamps are
correctly defined with respect to GMT. Added option unix time stamp
GMT.This is for IBPSA, #1232. |
|
Buildings.Controls.OBC.CDL.Continuous.Sources.CalendarTime Buildings.Controls.OBC.CDL.Types.ZeroTime |
Revised implementation such that the meaning of
time is better explained and unix time stamps are
correctly defined with respect to GMT. Added option unix time stamp
GMT.This is for IBPSA, #1232. |
| Buildings.Controls.OBC.CDL.Logical.Latch Buildings.Controls.OBC.CDL.Logical.Toggle |
Simplified implementation, which makes them work
with OpenModelica. This is for #1823. |
| Buildings.Controls.OBC.CDL.Logical.Timer | Added a boolean input to reset the accumulated
timer. This is for #1221. |
| Buildings.Controls.OBC.CDL.Types.Init | Removed this enumeration because it is no longer
used. This is for #1887. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1 | |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.TrimAndRespond | Corrected to delay the true initial device
status. This is for #1876 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Reheat.DamperValves | Replaced multisum block with add blocks, replaced
gain block used for normalization with division block. This is for #1830 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller | Replaced the mode and setpoint calculation block
with
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints.This is for #1709 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Reheat.SetPoints.ActiveAirFlow | Used hysteresis to check occupancy. This is for #1788. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutsideAirFlow | Applied hysteresis for checking ventilation
efficiency. This is for #1787. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.TrimAndRespond | Added assertions and corrected implementation when
respond amount is negative. This is for #1503. |
| Buildings.Examples.Tutorial | |
| Buildings.Examples.Tutorial.Boiler Buildings.Examples.Tutorial.SpaceCooling |
Updated examples to use the control blocks from
the Control Description Language package
Buildings.Controls.OBC.CDL. |
| Buildings.Examples.VAVReheat | |
| Buildings.Examples.VAVReheat.BaseClasses.VAVBranch | Added output connector for returned damper position. |
| Buildings.Fluid | |
|
Buildings.Fluid.Actuators.BaseClasses.ActuatorSignal Buildings.Fluid.Actuators.Dampers.PressureIndependent |
Added the computation of the damper opening. |
|
Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve Buildings.Fluid.Actuators.Valves.TwoWayEqualPercentage Buildings.Fluid.Actuators.Valves.TwoWayLinear Buildings.Fluid.Actuators.Valves.TwoWayPolynomial Buildings.Fluid.Actuators.Valves.TwoWayPressureIndependent Buildings.Fluid.Actuators.Valves.TwoWayQuickOpening Buildings.Fluid.Actuators.Valves.TwoWayTable |
Improved implementation to guard against control
input that is negative. The new implementation constrains the input
to be bigger than 0. This is for IBPSA, #1233. |
| Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.ThermalResponseFactors.shaGFunction | Declared string as a constant due to JModelica's
tigther type checking. This is for IBPSA, #1230. |
|
Buildings.Fluid.DXSystems.AirCooled.MultiStage Buildings.Fluid.DXSystems.AirCooled.SingleSpeed Buildings.Fluid.DXSystems.AirCooled.VariableSpeed Buildings.Fluid.DXSystems.WaterCooled.MultiStage Buildings.Fluid.DXSystems.WaterCooled.SingleSpeed Buildings.Fluid.DXSystems.WaterCooled.VariableSpeed |
Corrected wrong min and
max attribute for change in humidity.This is for #1933. |
| Buildings.Fluid.Storage.Stratified Buildings.Fluid.Storage.StratifiedEnhanced Buildings.Fluid.Storage.StratifiedEnhancedInternalHex |
Provided option to initialize the tank temperature
at different values across the height of the tank. This is for IBPSA, #1246. |
| Buildings.Fluid.SolarCollectors.BaseClasses.PartialSolarCollector | In volume, set
prescribedHeatFlowRate=false.This is for #1636. |
| Buildings.HeatTransfer | |
| Buildings.HeatTransfer.Convection.Exterior | Set wind direction modifier to a constant as wind
speed approaches zero. This is for #1923. |
| Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases6xx | |
|
Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases6xx.Case600 Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases6xx.Case600FF |
Changed computation of time averaged values to
avoid a time event every hour. This is for #1714. |
| Buildings.ThermalZones.ReducedOrder | |
|
Buildings.ThermalZones.ReducedOrder.RC.OneElement Buildings.ThermalZones.ReducedOrder.RC.TwoElements Buildings.ThermalZones.ReducedOrder.RC.ThreeElements Buildings.ThermalZones.ReducedOrder.RC.FourElements |
Added option to also simulate moisture balance in
room air volume. This can be enabled by setting the parameter
use_moisture_balance = true.This is for IBPSA, #1209. |
| Buildings.Utilities | |
| Buildings.Utilities.IO.Files.CSVWriter Buildings.Utilities.IO.Files.CombiTimeTableWriter Buildings.Utilities.IO.Files.CombiTimeTableWriter |
Revised to avoid overflow of string buffer in
Dymola. This is for IBPSA, #1219. |
| Buildings.Utilities.Math.SmoothHeaviside Buildings.Utilities.Math.Functions.SmoothHeaviside |
This function is now twice instead of only once
Lipschitz continuously differentiable. This is for IBPSA, #1202. |
| Buildings.Utilities.Time.CalendarTime Buildings.Utilities.Time.Types.ZeroTime |
Revised implementation such that the meaning of
time is better explained and unix time stamps are
correctly defined with respect to GMT. Added option unix time stamp
GMT.This is for IBPSA, #1192. |
| Buildings.Utilities.Comfort.Fanger | Updated the model from ASHRAE 1997 to ANSI/ASHRAE
55-2017 and added a validation model which compares the PMV with an
implementation from the University of California at Berkeley. This is for #1936. |
| Buildings.Examples | |
|
Buildings.Examples.VAVReheat.BaseClasses.Floor Buildings.Examples.VAVReheat.ASHRAE2006 Buildings.Examples.VAVReheat.Guideline36 Buildings.Examples.DualFanDualDuct |
Updated core zone geometry parameters related to
room heat and mass balance. This change was done in
Buildings.Examples.VAVReheat.BaseClasses.Floor.This is for #1719. |
The following existing components have been improved in a non-backward compatible way:
| Buildings.Airflow | |
| Buildings.Airflow.Multizone | Set parameters m_flow_small,
m1_flow_small and m2_flow_small to
final so that they do no longer appear on the GUI.
These parameters are not used by models in this package. This is
for IBPSA,
#1362.For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL | |
| Buildings.Controls.OBC.CDL.Continuous.LimPID | Refactored model so that it is itself a CDL
conformant composite block. This refactoring removes the no longer
use parameters xd_start that was used to initialize
the state of the derivative term. This state is now initialized
based on the requested initial output yd_start which
is a new parameter with a default of 0. Also, removed
the parameters y_start and initType
because the initial output of the controller can be set by using
xi_start and yd_start. This refactoring
also removes the parameter strict that was used in the
output limiter. The new implementation enforces a strict check by
default.This is for #1878. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.LimPID | Changed the default values for the output limiter
from yMin=-yMax to yMin=0 and from
yMax being unspecified to yMax=1.This is for #1888. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Discrete.MovingMean | This block became obsolete, use
Buildings.Controls.OBC.CDL.Discrete.TriggeredMovingMean
instead.For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.Utilities.SetPoints.SupplyReturnTemperatureReset | Changed name from
HotWaterTemperatureReset to
SupplyReturnTemperatureReset.This is for #860. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1 | |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.Controller | Reimplemented to add new block for specifying the
minimum outdoor airfow setpoint. The new block avoids vector-valued
calculations. The reimplemented controller needs to work with Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Zone
and
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.SumZone,
to calculate the zone level minimum outdoor airflow setpoints and
then find the sum, the minimum and the maximum of these setpoints.
See Buildings.Examples.VAVReheat.Guideline36.This is for #1829. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.OperationMode | Reimplemented to remove the vector-valued
calculations. This is for #1709 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.ModeAndSetPoints | Removed from the library as it can be replaced by
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints.This is for #1709 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller | Added cooling coil control and the controller
validation model. This is for #1265 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable | Added the option to allow fixed plus differential dry bulb temperature cutoff. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Modulation | Added heating coil control sequences. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.SetPoints.Supply | Added a switch for fan control. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.ZoneState | Improved the implementation to avoid issues when heating and cooling controls occur at the same time. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Reheat.SystemRequests | Changed the actual damper position name from
uDam to yDam_actual.This is for #1873 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller | Added actual VAV damper position as the input for
generating system request. This is for #1873 |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Reheat.DamperValves | Added option to check if the VAV damper is
pressure independent. This is for #1873 |
| Buildings.Controls.SetPoints | |
| Buildings.Controls.SetPoints.SupplyReturnTemperatureReset | Changed name from
HotWaterTemperatureReset to
SupplyReturnTemperatureReset.This is for #860. For Dymola, a conversion script makes this change. |
| Buildings.Fluid.Actuators | |
|
Buildings.Fluid.Actuators.BaseClasses.PartialDamperExponential Buildings.Fluid.Actuators.Dampers.Exponential Buildings.Fluid.Actuators.Dampers.MixingBox Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow Buildings.Fluid.Actuators.Dampers.PressureIndependent Buildings.Fluid.Actuators.Dampers.VAVBoxExponential |
Merged VAVBoxExponential into
Exponential.Exponential now provides all modeling capabilities
previously implemented in VAVBoxExponential which is
no more needed and has been removed from the library.New parameters dpDamper_nominal and
dpFixed_nominal have been introduced in
Exponential, consistent with the valve models.Parameter k0 has been replaced by a leakage
coefficient.For Dymola, a conversion script makes this change. However the script will not make the each keyword persist in array
declarations. The keyword will have to be manually reintroduced
after applying the script.This is for IBPSA, #1188. |
| Buildings.ThermalZones.ReducedOrder | |
|
Buildings.ThermalZones.ReducedOrder.RC.OneElement Buildings.ThermalZones.ReducedOrder.RC.OneElement Buildings.ThermalZones.ReducedOrder.RC.OneElement Buildings.ThermalZones.ReducedOrder.RC.OneElement Buildings.ThermalZones.ReducedOrder.RC.ThreeElements Buildings.ThermalZones.ReducedOrder.RC.ThreeElements Buildings.ThermalZones.ReducedOrder.RC.TwoElements Buildings.ThermalZones.ReducedOrder.RC.TwoElements Buildings.ThermalZones.ReducedOrder.RC.FourElements Buildings.ThermalZones.ReducedOrder.RC.FourElements Buildings.ThermalZones.ReducedOrder.RC.OneElement Buildings.ThermalZones.ReducedOrder.EquivalentAirTemperature.BaseClasses.PartialVDI6007 Buildings.ThermalZones.ReducedOrder.EquivalentAirTemperature.BaseClasses.PartialVDI6007 Buildings.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow |
Renamed convection coefficient from
alpha* to hCon*.For Dymola, a conversion script makes this change. This is for IBPSA, #1168. |
The following critical errors have been fixed (i.e., errors that can lead to wrong simulation results):
| Buildings.Controls.OBC.CDL | |
| Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable | Corrected implementation so that it gives the
correct periodicity of the table if the simulation starts at a
negative time. This is for 1834. |
| Buildings.Electrical | |
|
Buildings.Electrical.AC.OnePhase.Sources.PVSimple Buildings.Electrical.AC.OnePhase.Sources.PVSimpleOriented Buildings.Electrical.AC.ThreePhasesBalanced.Sources.PVSimple Buildings.Electrical.AC.ThreePhasesBalanced.Sources.PVSimpleOriented Buildings.Electrical.AC.ThreePhasesUnbalanced.Sources.PVsimple Buildings.Electrical.AC.ThreePhasesUnbalanced.Sources.PVsimpleOriented Buildings.Electrical.AC.ThreePhasesUnbalanced.Sources.PVsimpleOriented_N Buildings.Electrical.AC.ThreePhasesUnbalanced.Sources.PVsimple_N Buildings.Electrical.Interfaces.PartialPV |
Corrected model so that reported power
P also includes the DCAC conversion. Note that the
power added to the elecrical system was correct, but the power
reported in the output connector P did not include
this conversion factor.This is for 1577. |
|
Buildings.Electrical.AC.OnePhase.Storage.Battery Buildings.Electrical.AC.ThreePhasesBalanced.Storage.Battery |
Corrected model and improved the documentation.
The previous model extracted from the AC connector the input power
P plus the AC/DC conversion losses, but P
should be the power exchanged at the AC connector. Conversion
losses are now only accounted for in the energy exchange at the
battery.This is for 1865. |
| Buildings.Examples.VAVReheat | |
| Buildings.Examples.VAVReheat.ASHRAE2006 Buildings.Examples.VAVReheat.Guideline36 |
Connected actual VAV damper position as the
measured input data for defining duct static pressure
setpoint. This is for #1873. |
| Buildings.Examples.VAVReheat.Controls.DuctStaticPressureSetpoint | Reverse action changed to true for
the pressure set-point controller. |
| Buildings.Examples.VAVReheat.Controls.RoomVAV | Refactored the model to implement a single maximum
control logic. The previous implementation led to a maximum air
flow rate in heating demand. The input connector TDis is removed. This is non
backward compatible.This is for #1873. |
| Buildings.Fluid | |
|
Buildings.Fluid.HeatExchangers.CoolingTowers.YorkCalc Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.Characteristics.normalizedPower |
Corrected error in computing the cooling tower fan
power consumption. This is for 1691. |
| Buildings.Utilities | |
|
Buildings/Resources/Python-Sources/KalmanFilter.py Buildings.Utilities.IO.Python27.Examples.KalmanFilter |
Changed the temporary file format from
pickle to json as the former can trigger
a segfault with JModelica simulation run in a subprocess.This is for Buildings, #1587. |
The following uncritical errors have been fixed (i.e., errors that do not lead to wrong simulation results, e.g., units are wrong or errors in documentation):
| Buildings.Controls.OBC.CDL | |
| Buildings.Controls.OBC.CDL.Continuous.LimPID | Removed wrong unit declaration for gain
k.This is for Buildings, #1821. |
| Buildings.Fluid.Sources | |
| Buildings.Fluid.Sources.Boundary_pT Buildings.Fluid.Sources.Boundary_ph Buildings.Fluid.Sources.MassFlowSource_T Buildings.Fluid.Sources.MassFlowSource_h |
Refactored handling of mass fractions which was
needed to handle media such as
Modelica.Media.IdealGases.MixtureGases.FlueGasSixComponents
and
Modelica.Media.IdealGases.MixtureGases.SimpleNaturalGas.Prior to this change, use of these media led to a translation error. This is for IBPSA, #1205. |
| Buildings.ThermalZones.Detailed | |
|
Buildings.ThermalZones.Detailed.Constructions.Examples.ExteriorWallTwoWindows Buildings.ThermalZones.Detailed.Constructions.Examples.ExteriorWallWithWindow |
Corrected wrong assignment of a parameter. This is for IBPSA, #1766. |
| Buildings/Resources | |
| Buildings/Resources/C-Sources/cryptographicsHash.c | Add a #ifndef clause.This is for IBPSA, #1278. |
The following components have become obsolete:
| Buildings.Obsolete | |
| Buildings.Obsolete.Controls.OBC.CDL.Discrete.MovingMean | The block
Buildings.Controls.OBC.CDL.Discrete.TriggeredMovingMean
replaced the original MovingMean block.For Dymola, a conversion script makes this change. This is for #1588. |
| Buildings.Obsolete.Utilities.IO.Python27 | The package
Buildings.Utilities.IO.Python27 has been upgraded to
Buildings.Utilities.IO.Python36.For Dymola, a conversion script moves the Python27 package to here. This is for issue #1760. |