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. |