Version 8.0.0 is a major release that contains the first version of the Spawn of EnergyPlus coupling. The library has been tested with Dymola 2021, JModelica (revision 14023), and OPTIMICA (revision OCT-stable-r19089_JM-r14295).
The following major changes have been done:
Buildings.ThermalZones.EnergyPlus
contains the first version of the Spawn of EnergyPlus coupling that
is being developed at https://lbl-srg.github.io/soep.
The Spawn coupling allows to model HVAC and controls in Modelica,
and graphically connect to EnergyPlus models for thermal zones,
schedules, EMS actuators and output variables. This allows for
example to model HVAC systems, HVAC controls and controls for
active facade systems in Modelica, and use the EnergyPlus envelope
model to simulate heat transfer through the building envelope,
including the heat and light transmission through the windows for
the current control signal of the active shade.Buildings.DHC contains models for
district heating and cooling systems that are being developed for
the URBANopt District Energy System software.Buildings.Media.Antifreeze.PropyleneGlycolWater allows
modeling of propylene-glycol water mixtures.Buildings.Fluid.HeatExchangers.WetCoilEffectivenessNTU
has been added. This model is applicable for fully-dry,
partially-wet, and fully-wet regimes. In contrast to
Buildings.Fluid.HeatExchangers.WetCoilCounterFlow and
to Buildings.Fluid.HeatExchangers.WetCoilDiscretized,
this model uses the epsilon-NTU relationship rather than a spatial
discretization of the coil. This leads to fewer state variables and
generally to a faster simulation.Buildings.Airflow.Multizone.For more details, please see the release notes below.
The following new libraries have been added:
| Buildings.BoundaryConditions | |
| Buildings.BoundaryConditions.Validation.BESTEST | Packages with validation models for the weather
data BESTEST. This is for IBPSA, issue 1314. |
| Buildings.Experimental | |
| Buildings.DHC | Packages for modeling district heating and cooling
systems. These packages contain components supporting the integration within the URBANopt SDK. The development is in progress. |
| Buildings.Media | |
| Buildings.Media.Antifreeze.PropyleneGlycolWater | Package with medium model for propylene glycol water mixtures. This is for IBPSA, issue 1410. |
| Buildings.ThermalZones | |
| Buildings.ThermalZones.EnergyPlus | Package for Spawn of EnergyPlus that couples
Modelica directly to the EnergyPlus envelope model. The models in this package allow simulating the envelope heat transfer of one or several buildings in EnergyPlus, and simulating HVAC and controls in Modelica. EnergyPlus objects are represented graphically as any other Modelica models, and the coupling and co-simulation is done automatically based on these models. |
The following new components have been added to existing libraries:
| Buildings.Airflow.Multizone | |
| Buildings.Airflow.Multizone.DoorOpen Buildings.Airflow.Multizone.DoorOperable |
Simplified model for large openings with
bi-directional, buoyancy-induced air flow, such as open
doors. This is for IBPSA, issue 1353. |
| Buildings.Controls.OBC | |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.GroupStatus | Find minimum and maximum values regarding the
status of zones in one group. This is needed for specifying the
group operating mode according to ASHRAE Guideline 36, May 2020
version. This is for # 1893. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.SetPoints.ModeAndSetPoints | Moved from
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints,
reimplemented to use the operating mode specified according to
ASHRAE G36 official release and changed the heating and cooling
demand limit level to be inputs. This is for # 1893. |
| Buildings.Controls.OBC.CDL.Continuous.PID | New implementation of the PID controller. This is for # 2056 and for # 2182. |
| Buildings.Controls.OBC.CDL.Continuous.PIDWithReset | New implementation of the PID controller with
output reset based on a boolean trigger. This implementation allows
to reset the output of the controller to a parameter value.
(Resetting it to an input was never used and is now removed for
simplicity.) This is for # 2056 and for # 2182. |
| Buildings.Controls.OBC.CDL.Logical.TimerAccumulating | New timer that accumulates time. The output will
be reset to zero when the reset input becomes
true.This is for # 2101. |
| Buildings.Controls.OBC.CDL.Integers.Sources.Pulse | Integer pulse source signal.This is for # 2125 and # 2282. |
| Buildings.Controls.OBC.CDL.Integers.Sources.TimeTable | Time table for Integer outputs.Each output is held constant between two consecutive entries in each column of the table parameters.This is for # 2125. |
| Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable | Time table for Boolean outputs.This is for # 2125. |
| Buildings.Examples | |
| Buildings.Examples.VAVReheat.Controls.SupplyAirTemperature | Control block for tracking the supply air
temperature set point. This is for # 2024. |
| Buildings.Examples.VAVReheat.Controls.SupplyAirTemperatureSetpoint | Computation of the supply air temperature set
point based on the operation mode. This is for # 2024. |
| Buildings.Fluid | |
| Buildings.Fluid.Actuators.Valves.TwoWayButterfly | Two way valve with the flow characteristic of a
butterfly valve. This is for IBPSA, issue 975. |
| Buildings.Fluid.HeatExchangers.WetCoilEffectivenessNTU | Cooling coil model applicable for fully-dry,
partially-wet, and fully-wet regimes. In contrast to
Buildings.Fluid.HeatExchangers.WetCoilCounterFlow and
to Buildings.Fluid.HeatExchangers.WetCoilDiscretized,
this model uses the epsilon-NTU relationship rather than a spatial
discretization of the coil. This leads to fewer state variables and
generally to a faster simulation.This is for # 622. |
The following existing components have been improved in a backward compatible way:
| Buildings.Air | |
| Buildings.Air.Systems.SingleZone.VAV.Examples.Guideline36 | Updated AHU controller which applies the sequence
of specifying operating mode according to G36 official
release. This is for # 1893. |
| Buildings.Controls.OBC.ASHRAE | |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller | Changed the default heating maximum airflow
setpoint to 30% of the zone nominal airflow. This is for # 2172. |
| Buildings.Controls.OBC.CDL | |
|
Buildings.Controls.OBC.CDL.Continuous.MovingMean Buildings.Controls.OBC.CDL.Continuous.PID Buildings.Controls.OBC.CDL.Continuous.PIDWithReset Buildings.Controls.OBC.CDL.Continuous.SlewRateLimiter Buildings.Controls.OBC.CDL.Continuous.Sources.CalendarTime Buildings.Controls.OBC.CDL.Continuous.Sources.Pulse Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp Buildings.Controls.OBC.CDL.Continuous.Sources.Sin Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable Buildings.Controls.OBC.CDL.Discrete.DayType Buildings.Controls.OBC.CDL.Discrete.FirstOrderHold Buildings.Controls.OBC.CDL.Discrete.Sampler Buildings.Controls.OBC.CDL.Discrete.UnitDelay Buildings.Controls.OBC.CDL.Discrete.ZeroOrderHold Buildings.Controls.OBC.CDL.Logical.Sources.Pulse Buildings.Controls.OBC.CDL.Logical.Sources.SampleTrigger Buildings.Controls.OBC.CDL.Logical.Timer Buildings.Controls.OBC.CDL.Logical.TimerAccumulating Buildings.Controls.OBC.CDL.Logical.TriggeredTrapezoid Buildings.Controls.OBC.CDL.Logical.TrueDelay Buildings.Controls.OBC.CDL.Logical.TrueFalseHold Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset Buildings.Controls.OBC.CDL.Psychrometrics.DewPoint_TDryBulPhi Buildings.Controls.OBC.CDL.Psychrometrics.SpecificEnthalpy_TDryBulPhi Buildings.Controls.OBC.CDL.Psychrometrics.WetBulb_TDryBulPhi Buildings.Controls.OBC.Utilities.SetPoints.SupplyReturnTemperatureReset Buildings.Controls.OBC.CDL.Utilities.SunRiseSet |
Reformulated to remove dependency to
Modelica.Units.SI.This is for issue 2243. |
|
Buildings.Controls.OBC.CDL.Continuous.Greater Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold Buildings.Controls.OBC.CDL.Continuous.Less Buildings.Controls.OBC.CDL.Continuous.LessThreshold |
Added option to specify a hysteresis, which by default is set to 0. |
| Buildings.Controls.OBC.Utilities | |
| Buildings.Controls.OBC.Utilities.OptimalStart | Refactored sampling of history of temperature
slope to only sample when control error requires optimal start
up. This is for #2345. |
| Buildings.Examples | |
| Buildings.Examples.HydronicHeating.TwoRoomsWithStorage | Changed dpVal_nominal to 6 kPa. This
is for issue
2378. |
| Buildings.Examples.VAVReheat.BaseClasses.Floor | Refactored model to extend from the newly added
Buildings.Examples.VAVReheat.BaseClasses.PartialFloor
model.This is for issue 1502. |
| Buildings.Examples.VAVReheat.BaseClasses.PartialOpenLoop | Declared the rooms in a new model
Buildings.Examples.VAVReheat.BaseClasses.Floor to
allow use of the model with the Modelica or the Spawn envelope
model. |
|
Buildings.Examples.DualFanDualDuct.ClosedLoop Buildings.Examples.ScalableBenchmarks.BuildingVAV.Examples.OneFloor_OneZone Buildings.Examples.ScalableBenchmarks.BuildingVAV.Examples.TwoFloor_TwoZone Buildings.Examples.VAVReheat.ASHRAE2006 Buildings.Examples.VAVReheat.Guideline36 |
Adapted the model to the updated control of supply
air temperature. This is for issue 2024. |
| Buildings.Examples.VAVReheat.Guideline36 | Upgraded sequence of specifying operating mode
according to G36 official release. This is for issue 1893. |
| Buildings.Examples.VAVReheat.Guideline36 | Change component name yOutDam to
yExhDam and update documentation graphic to include
relief damper.This is for #2399. |
| Buildings.Examples.VAVReheat.ASHRAE2006 | Update documentation graphic to include relief
damper. This is for #2399. |
| Buildings.Fluid | |
| Buildings.Fluid.FixedResistances.PlugFlowPipe | Improved calculation of time constant to avoid
negative values in some special cases. This is for IBPSA, issue 1427. |
|
Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTU Buildings.Fluid.HeatExchangers.PlateHeatExchangerEffectivenessNTU Buildings.Fluid.HeatExchangers.PartialEffectivenessNTU |
Added a warning for when
Q_flow_nominal is specified with the wrong sign. |
| Buildings.Fluid.HeatExchangers.RadiantSlabs Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions.AverageResistance |
Corrected inequality test on alpha,
and changed print statement to an assertion with assertion level
set to warning.This is for issue 2009. |
|
Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTU Buildings.Fluid.HeatExchangers.PlateHeatExchangerEffectivenessNTU Buildings.Fluid.HeatExchangers.PartialEffectivenessNTU |
Added a warning for when
Q_flow_nominal is specified with the wrong sign. |
| Buildings.Fluid.HeatExchangers.RadiantSlabs Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions.AverageResistance |
Corrected inequality test on alpha,
and changed print statement to an assertion with assertion level
set to warning.This is for issue 2009. |
| Buildings.Fluid.Sensors.EnthalpyFlowRate Buildings.Fluid.Sensors.EntropyFlowRate Buildings.Fluid.Sensors.LatentEnthalpyFlowRate Buildings.Fluid.Sensors.SensibleEnthalpyFlowRate Buildings.Fluid.Sensors.VolumeFlowRate |
Changed parameter values to use as default a
steady-state sensor signal. This is for IBPSA, issue 1406. |
| Buildings.Media | |
| Buildings.Media.Refrigerants.R410A | Improved implementation, which now works with
OpenModelica. This is for IBPSA, issue 1414. |
| Buildings.Utilities | |
| Buildings.Utilities.Cryptographics.sha | Corrected memory leak. |
The following existing components have been improved in a non-backward compatible way:
| Buildings.Air | |
| Buildings.Air.Systems.SingleZone.VAV | Updated parameters of the two HVAC controllers
such as PI gains, damper positions, and supply air temperature
limits to make example models comparable. Added CO2
monitoring. This is for issue 1608. |
| Buildings.Air.Systems.SingleZone.VAV.ChillerDXHeatingEconomizerController | Moved and renamed to
Buildings.Air.Systems.SingleZone.VAV.BaseClasses.ControllerChillerDXHeatingEconomizer.
Also a bug fix was implemented that enables the fan when cooling
needed during unoccupied hours.This is for issue 2265. For Dymola, a conversion script makes this change. |
| Buildings.Controls.Continuous | |
| Buildings.Controls.Continuous.LimPID Buildings.Controls.Continuous.PIDHysteresis Buildings.Controls.Continuous.PIDHysteresisTimer |
Corrected wrong convention of reverse and direct
action. The previous parameter reverseAction with a
default of false has been removed, and a new parameter
reverseActing with a default of true has
been added. This was done because the previous implementation
wrongly interpreted reverse action as the control output changing
in reverse to the change in control error, but the industry
convention is that reverse action means that the control output
changes in reverse to the measurement signal.This is for IBPSA, #1365. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1 | |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulation | Removed parameter samplePeriod and
removed delay on actuator signal to avoid a large delay in this
feedback loop.This is for issue 2454. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller | Updated the block of specifying operating mode and
setpoints. This is for issue 1893. |
| Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.OperationMode | Upgraded the sequence according to ASHRAE
Guideline 36, May 2020 version. This is for issue 1893. |
| Buildings.Controls.OBC.CDL.Continuous | |
|
Buildings.Controls.OBC.CDL.Continuous.ChangeSign Buildings.Controls.OBC.CDL.Continuous.HysteresisWithHold |
Moved blocks to Obsolete package
because they can be implemented with other blocks and have only
rarely been used.This is for issue 2134. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.LimPID | Corrected wrong convention of reverse and direct
action. The previous parameter reverseAction with a
default of false has been removed, and a new parameter
reverseActing with a default of true has
been added. This was done because the previous implementation
wrongly interpreted reverse action as the control output changing
in reverse to the change in control error, but the industry
convention is that reverse action means that the control output
changes in reverse to the measurement signal.This is for IBPSA, #1365. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.LimPID | Moved model to
Building.Obsolete.Controls.OBC.CDL.Continuous.Instead of this model, use the new model Buildings.Controls.Continuous.PID or
Buildings.Controls.Continuous.PIDWithReset.This is for issue 2056. |
|
Buildings.Controls.OBC.CDL.Continuous.GreaterEqualThreshold Buildings.Controls.OBC.CDL.Continuous.GreaterEqual Buildings.Controls.OBC.CDL.Continuous.LessEqualThreshold Buildings.Controls.OBC.CDL.Continuous.LessEqual |
Moved blocks to obsolete package. Instead of these
blocks, use the ones that do not contain the word
Equal in their name. This was done because for
real-valued, measured quantities, there is no reason to distinguish
between weak and strict inequality (due to sensor noise, or within
a simulation, due to solver noise or rounding errors).This is for #2076. For Dymola, a conversion script makes this change. |
|
Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold Buildings.Controls.OBC.CDL.Continuous.LessThreshold Buildings.Controls.OBC.CDL.Continuous.NumberOfRequests |
Renamed parameter threshold to
t.This is for #2076. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.NumberOfRequests | Moved block to obsolete package because this block
is not needed, and it would need to be refactored to add
hysteresis. This is for #2124. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.Sources.Pulse | Removed startTime parameter.
Introduced shift parameter.This is for issue 2170 and issue 2282. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Continuous.Sources.Pulse | Removed parameter nperiod.This is for issue 2170. |
| Buildings.Controls.OBC.CDL.Logical | |
| Buildings.Controls.OBC.CDL.Logical.Latch Buildings.Controls.OBC.CDL.Logical.Toggle |
Removed the parameter pre_y_start,
and made the initial output to be equal to latch or toggle input
when the clear input is false.This is for #2177. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Logical.Timer | Removed reset boolean input and added
boolean output passed to show if the time becomes
greater than threshold time.This is for #2101. |
|
Buildings.Controls.OBC.CDL.Logical.Sources.SampleTrigger Buildings.Controls.OBC.CDL.Logical.Sources.Pulse |
Removed startTime parameter.
Introduced shift parameter.This is for issue 2170 and issue 2282. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Integers | |
|
Buildings.Controls.OBC.CDL.Integers.GreaterEqualThreshold Buildings.Controls.OBC.CDL.Integers.LessEqualThreshold Buildings.Controls.OBC.CDL.Integers.GreaterThreshold Buildings.Controls.OBC.CDL.Integers.LessThreshold |
Renamed parameter threshold to
t.This is for #2076. For Dymola, a conversion script makes this change. |
| Buildings.Controls.OBC.CDL.Psychrometrics | |
|
Buildings.Controls.OBC.CDL.Psychrometrics.TDewPoi_TDryBulPhi Buildings.Controls.OBC.CDL.Psychrometrics.TWetBul_TDryBulPhi Buildings.Controls.OBC.CDL.Psychrometrics.h_TDryBulPhi |
Renamed blocks and removed input connector for
pressure. This is for #2139. For Dymola, a conversion script will rename existing instance to use the old versions which have been moved to the Buildings.Obsolete package. |
| Buildings.Controls.OBC.Utilities | |
| Buildings.Controls.OBC.Utilities.SetPoints | Moved package from
Buildings.Controls.OBC.CDL.SetPoints.This is for #2355. |
| Buildings.Controls.OBC.UnitConversions | |
|
Buildings.Controls.OBC.UnitConversions.From_Btu Buildings.Controls.OBC.UnitConversions.From_quad Buildings.Controls.OBC.UnitConversions.To_Btu Buildings.Controls.OBC.UnitConversions.To_quad |
Corrected quantity from Work to
Energy.This is for #2245. |
| Buildings.Examples.VAVReheat | |
| Buildings.Examples.VAVReheat.ASHRAE2006 Buildings.Examples.VAVReheat.Guideline36 Buildings.Examples.VAVReheat.BaseClasses.PartialOpenLoop |
Refactored model to implement the economizer
dampers directly in
Buildings.Examples.VAVReheat.BaseClasses.PartialOpenLoop
rather than through the model of a mixing box. Since the version of
the Guideline 36 model has no exhaust air damper, this leads to
simpler equations.This is for issue #2454. |
| Buildings.Examples.VAVReheat.BaseClasses.VAVBranch | Moved to
Buildings.Obsolete.Examples.VAVReheat.BaseClasses.VAVBranch
and replaced by
Buildings.Examples.VAVReheat.BaseClasses.VAVReheatBox.This is for issue #2059. For Dymola, a conversion script makes this change. |
| Buildings.Examples.VAVReheat.Controls.Economizer | Updated the block with an input for enabling
outdoor air damper opening and an input for economizer cooling
signal. This is for issue 2024. |
| Buildings.Examples.VAVReheat.Controls.EconomizerTemperatureControl | This block is now retired. This is for issue 2024. |
| Buildings.Experimental | |
| Buildings.Experimental.DistrictHeatingCooling | Moved package to
Buildings.Obsolete.DistrictHeatingCooling.Generic components for DHC system modeling are now developed under Buildings.DHC. |
The following critical errors have been fixed (i.e., errors that can lead to wrong simulation results):
| Buildings.Applications.DataCenters.ChillerCooled.Equipment | |
|
Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.FourPortResistanceChillerWSE Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialChillerWSE Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialCoolingCoilHumidifyingHeating Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialHeatExchanger Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialIntegratedPrimary Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPlantParallel Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPumpParallel Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.ThreeWayValveParameters Buildings.Applications.DataCenters.ChillerCooled.Equipment.IntegratedPrimaryLoadSide Buildings.Applications.DataCenters.ChillerCooled.Equipment.IntegratedPrimaryPlantSide Buildings.Applications.DataCenters.ChillerCooled.Equipment.IntegratedPrimarySecondary Buildings.Applications.DataCenters.ChillerCooled.Equipment.NonIntegrated Buildings.Applications.DataCenters.ChillerCooled.Equipment.WatersideEconomizer |
Corrected fixed flow resistance settings and added
ideal mixing junctions. This is for issue 2446. |
| Buildings.Controls.OBC.CDL.Integers | |
| Buildings.Controls.OBC.CDL.Integers.Change | Corrected initialization of previous value of
input to use the current input rather than 0.This is for issue 2294. |
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.Continuous | |
|
Buildings.Controls.OBC.CDL.Continuous.Greater Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold Buildings.Controls.OBC.CDL.Continuous.Less Buildings.Controls.OBC.CDL.Continuous.LessThreshold |
Corrected documentation. This is for issue 2246. |
Note: