Version 4.0.0 is a major new release. It is the first release that is based on the Modelica IBPSA Library (https://github.com/ibpsa/modelica). All models simulate with Dymola 2017 FD01 and with JModelica, and the results of these simulators have been cross-compared and are equal within the expected tolerance.
The following major changes have been done:
Modelica_StateGraph2
library. Instead, it uses Modelica.StateGraph which is
part of the Modelica Standard Library.Buildings.Fluid.Movers have been
refactored to increase the numerical robustness at very low speed
when the fans or pumps are switched on or off.Buildings.Obsolete.DistrictHeatingCooling with
models for district heating and cooling with bi-directional flow in
the distribution pipes.Buildings.Fluid.FMI.Adaptors and
Buildings.Fluid.FMI.ExportContainers, which allow
export of HVAC systems and of thermal zones as Functional Mockup
Units.Buildings.Fluid.HeatExchangers.ActiveBeams, with
active beams for cooling and heating.Buildings.Fluid.DXSystems.WaterCooled, with
water-cooled direct expansion cooling coils.Buildings.ThermalZones.ReducedOrder, with reduced
order models of thermal zones based on VDI 6007 that are suitable
for district energy simulation.Buildings.Rooms has been renamed to
Buildings.ThermalZones.Detailed. This was done because
of the introduction of
Buildings.ThermalZones.ReducedOrder, which is from the
Annex60 library, in order for thermal zones to be in
the same top-level package.Buildings.Rooms.Buildings.Fluid.FixedResistances.FixedResistanceDpM
has been refactored. Now, if the hydraulic diameter is not yet
known, one can use the simpler model
Buildings.Fluid.FixedResistances.PressureDrop,
otherwise the model
Buildings.Fluid.FixedResistances.HydraulicDiameter may
be used. With this refactoring, also the model
Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM
has been renamed to
Buildings.Fluid.FixedResistances.Junction and
parameters that use the hydraulic diameter have been removed.Buildings.HeatTransfer.Conduction.SingleLayer,
Buildings.HeatTransfer.Conduction.MultiLayer, and
Buildings.HeatTransfer.Windows.Window have been
refactored to add the option to place a state at the surface of a
construction. This leads in many examples that use the room model
to a smaller number of non-linear system of equations and a 20% to
40% faster simulation.Buildings.Fluid.HeatPumps.ReciprocatingWaterToWater
and Buildings.Fluid.HeatPumps.ScrollWaterToWater have
been added. Parameters to these models rely on calibration with
tabulated heat pump performance data. Python scripts for the
calibration of the heat pump models are in
Buildings/Resources/src/fluid/heatpumps/calibration.
This is for issue
587.The following new libraries have been added:
| Buildings.Obsolete.DistrictHeatingCooling | Package with models for district heating and cooling with bi-directional flow in the distribution pipes. |
| Buildings.Fluid.FMI.Adaptors Buildings.Fluid.FMI.ExportContainers |
Library with adaptors to export HVAC systems and
thermal zones as a Functional Mockup Unit for Model Exchange. This is for Buildings, #506. |
| Buildings.Fluid.HeatExchangers.ActiveBeams | Package with models of active beams for space cooling and heating. |
| Buildings.Fluid.DXSystems.WaterCooled | Package with models of water-cooled direct expansion cooling coils with single speed, variable speed or multi-stage compressor. |
| Buildings.Fluid.HeatPumps.Compressors | Package with models of compressors for heat pumps. |
| Buildings.ThermalZones.ReducedOrder | Package with reduced order models of thermal zones based on VDI 6007. |
The following new components have been added to existing libraries:
| Buildings.Fluid.Sensors | |
| Buildings.Fluid.Sensors.Velocity | Sensor for the flow velocity. |
| Buildings.Fluid.HeatExchangers | |
| Buildings.Fluid.HeatExchangers.EvaporatorCondenser | Model for evaporator/condenser with refrigerant experiencing constant temperature phase change. |
| Buildings.Fluid.HeatPumps | |
| Buildings.Fluid.HeatPumps.ReciprocatingWaterToWater | Model for water to water heat pump with a reciprocating compressor. |
| Buildings.Fluid.HeatPumps.ScrollWaterToWater | Model for water to water heat pump with a scroll compressor. |
| Buildings.HeatTransfer.Windows.BaseClasses | |
| Buildings.HeatTransfer.Windows.BaseClasses.HeatCapacity | Model for adding a state on the room-facing surface of a window. This closes issue 565. |
| Buildings.Media | |
| Buildings.Media.Refrigerants.R410A | Model for thermodynamic properties of refrigerant R410A. |
| Buildings.Media.Specialized.Water.ConstantProperties_pT | Model for liquid water with constant properties at
user-selected temperature. This closes IBPSA, #511. |
| Buildings.Utilities.Math | |
| Buildings.Utilities.Math.IntegratorWithReset | Integrator with optional input that allows
resetting the state if the input changes from false to
true.This closes IBPSA, #494. |
| Buildings.Utilities.Time | |
| Buildings.Utilities.Time.CalendarTime | Block that outputs the calendar time, time of the
week, hour of the day etc. This closes IBPSA, #501. |
The following existing components have been improved in a backward compatible way:
| Buildings.BoundaryConditions | |
|
Buildings.BoundaryConditions.WeatherData.BaseClasses.Examples.GetHeaderElement Buildings.BoundaryConditions.WeatherData.BaseClasses.getAbsolutePath Buildings.BoundaryConditions.WeatherData.BaseClasses.getHeaderElementTMY3 Buildings.BoundaryConditions.WeatherData.ReaderTMY3 Buildings.BoundaryConditions.SolarGeometry.ProjectedShadowLength |
Refactored the use of
Modelica.Utilities.Files.loadResource to make the
model work in JModelica. This closes issue
506.Removed the use of Modelica.Utilities.Files.fullPathName in
Buildings.BoundaryConditions.WeatherData.BaseClasses.getAbsolutePath
which is implicitly done in
Modelica.Utilities.Files.loadResource.Removed in Buildings.BoundaryConditions.WeatherData.BaseClasses.getAbsolutePath
the addition of file:// to file names which do not
start with file://, or modelica://. This
is not required when using
Modelica.Utilities.Files.loadResource. This closes
issue
539. |
| Buildings.BoundaryConditions.WeatherData.ReaderTMY3 | Shifted the computation of the infrared
irradiation such that the results in
Buildings.BoundaryConditions.SkyTemperature.Examples.BlackBody
are consistent for both option of the black-body sky temperature
calculation. This closes IBPSA,
#648. |
| Buildings.BoundaryConditions.SolarIrradiation.BaseClasses.SkyClearness | Reduced tolerance for regularization if the sky clearness is near one or eight. This closes IBPSA, #521. |
| Buildings.Controls | |
| Buildings.Controls.Continuous.LimPID Buildings.Controls.Continuous.PIDHysteresis Buildings.Controls.Continuous.PIDHysteresisTimer |
Added option to reset the control output when an
optional Boolean input signal changes from false to
true.This closes IBPSA, #494. |
| Buildings.Electrical | |
| Buildings.Electrical.DC.Storage.Examples.Battery | Replaced Modelica_StateGraph2 with
Modelica.StateGraph. This closes issue
504. |
| Buildings.Examples | |
|
Buildings.Examples.DualFanDualDuct.ClosedLoop Buildings.Examples.VAVReheat.ClosedLoop |
Added hysteresis to the economizer control to
avoid many events. This change was done in
Buildings.Examples.VAVReheat.Controls.EconomizerTemperatureControl.
This closes issue
502. |
| Buildings.Examples.DualFanDualDuct.ClosedLoop | Set filteredSpeed=false in fan models
to avoid a large increase in computing time when simulated between
t=1.60E7 and t=1.66E7. |
| Buildings.Examples.VAVReheat.ClosedLoop | Changed chilled water supply temperature to 6°C. This closes issue 509. |
|
Buildings.Examples.ChillerPlant.BaseClasses.Controls.BatteryControl Buildings.Examples.ChillerPlant.BaseClasses.Controls.WSEControl Buildings.Examples.HydronicHeating.TwoRoomsWithStorage Buildings.Examples.Tutorial.Boiler.System7 |
Replaced Modelica_StateGraph2 with
Modelica.StateGraph. This closes issue
504. |
| Buildings.HeatTransfer | |
| Buildings.HeatTransfer.Conduction.SingleLayer | Added option to place a state at the surface of a construction. This closes issue 565. |
| Buildings.HeatTransfer.Conduction.MultiLayer | Added option to place a state at the surface of a construction. This closes issue 565. |
| Buildings.HeatTransfer.Windows.Window | Added option to place a state at the surface of a construction. This closes issue 565. |
| Buildings.HeatTransfer.Windows.BeamDepthInRoom | Refactored the use of
Modelica.Utilities.Files.loadResource. This closes
issue
506. |
| Buildings.ThermalZones | |
| Buildings.ThermalZones.Detailed.CFD Buildings.ThermalZones.Detailed.BaseClasses.CFDExchange |
Refactored the use of
Modelica.Utilities.Files.loadResource. This closes
issue
506. |
| Buildings.ThermalZones.Detailed.MixedAir Buildings.ThermalZones.Detailed.CFD |
Refactored the distribution of the diffuse solar irradiation. Previously, the model assumed that all diffuse irradiation first hits the floor before it is diffusely reflected to all other surfaces. Now, the incoming diffuse solar irradiation is distributed to all surfaces, proportional to their emissivity plus transmissivity times area. This closes issue 451. |
The following existing components have been improved in a non-backward compatible way:
| Buildings.BoundaryConditions | |
| Buildings.BoundaryConditions.WeatherData.BaseClasses.getHeaderElementTMY3 | This function is used to read location coordinates
from the TMY3 weather data file. The call to
Buildings.BoundaryConditions.WeatherData.BaseClasses.getAbsolutePath
has been removed as it calls the function
Modelica.Utilities.Files.loadResource, whose return
value needs to be known at compilation time to store the weather
data in the FMU. This is not supported by JModelica. Most models
should still work as this call has been added at a higher level of
the model hierarchy. If models don't work, add a call to
loadResource at the top-level. This closes Buildings,
#506. |
| Buildings.Controls | |
| Buildings.Controls.Continuous.PIDHysteresis | Set zer(final k=0) and made
swi, zer and zer1 protected,
as they are for
Buildings.Controls.Continuous.PIDHysteresis. Only
models that access these instances, which typically is not the
case, are affected by this change. |
| Buildings.Controls.Continuous.LimPID Buildings.Controls.Continuous.PIDHysteresis Buildings.Controls.Continuous.PIDHysteresisTimer |
Removed the parameter limitsAtInit as
it is not used.For Dymola, the conversion script will update models that set this parameter. |
| Buildings.Controls.SetPoints.Table | Changed protected final parameter
nCol to nRow.For Dymola, the conversion script will update models that access this parameter. This is for issue 555. |
| Buildings.Fluid.Actuators | |
|
Buildings.Fluid.Actuators.Dampers.Exponential Buildings.Fluid.Actuators.Dampers.MixingBox Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow Buildings.Fluid.Actuators.Dampers.VAVBoxExponential Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear Buildings.Fluid.Actuators.Valves.ThreeWayLinear Buildings.Fluid.Actuators.Valves.TwoWayEqualPercentage Buildings.Fluid.Actuators.Valves.TwoWayLinear Buildings.Fluid.Actuators.Valves.TwoWayPressureIndependent Buildings.Fluid.Actuators.Valves.TwoWayQuickOpening Buildings.Fluid.Actuators.Valves.TwoWayTable |
Renamed the parameter filteredOpening
to use_inputFilter.For Dymola, the conversion script will update models that access this parameter. This is for IBPSA, #665 |
|
Buildings.Fluid.Actuators.Dampers.Exponential Buildings.Fluid.Actuators.Dampers.MixingBox Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow Buildings.Fluid.Actuators.Dampers.VAVBoxExponential Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow |
Renamed the parameters use_v_nominal
and all area related parameters, because
m_flow_nominal and v_nominal are used to
compute the area.For Dymola, the conversion script will update models that access this parameter. This is for IBPSA, #544 |
| Buildings.Fluid.Chillers | |
| Buildings.Fluid.Chillers.Carnot_TEva Buildings.Fluid.Chillers.Carnot_y |
Removed the parameters effInpEva and
effInpCon. Now, always the leaving water temperatures
are used to compute the coefficient of performance (COP).
Previously, the entering water temperature could be used, but this
can give COPs that are higher than the Carnot efficiency if the
temperature lift is small. For Dymola, the conversion script will
update models.This is for IBPSA, #497 |
| Buildings.Fluid.FixedResistances | |
| Buildings.Fluid.FixedResistances.FixedResistanceDpM | Renamed
Buildings.Fluid.FixedResistances.FixedResistanceDpM to
Buildings.Fluid.FixedResistances.PressureDrop and
removed the parameters use_dh, dh and
ReC. For Dymola, the conversion script will update
models. If a model needs to be used that allows specifying
dh and ReC, then the new model
Buildings.Fluid.FixedResistances.HydraulicDiameter can
be used. |
| Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM | Renamed
Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM
to Buildings.Fluid.FixedResistances.Junction and
removed the parameters use_dh, dh and
ReC. For Dymola, the conversion script will update
models. If a model needs to be used that allows specifying
dh and ReC, then use
Buildings.Fluid.FixedResistances.Junction with
dp_nominal = 0 (which removes the pressure drop) and
use Buildings.Fluid.FixedResistances.HydraulicDiameter
at each fluid port. |
| Buildings.Fluid.FMI | |
| Buildings.Fluid.FMI.InletAdaptor Buildings.Fluid.FMI.OutletAdaptor Buildings.Fluid.FMI.TwoPort Buildings.Fluid.FMI.TwoPortComponent |
Renamed
Buildings.Fluid.FMI.InletAdaptor to
Buildings.Fluid.FMI.Adaptors.Inlet,renamed Buildings.Fluid.FMI.OutletAdaptor to
Buildings.Fluid.FMI.Adaptors.Outlet,renamed Buildings.Fluid.FMI.TwoPort to
Buildings.Fluid.FMI.ExportContainers.PartialTwoPort,renamed Buildings.Fluid.FMI.TwoPortComponent to
Buildings.Fluid.FMI.ExportContainers.ReplaceableTwoPort.
This was due to the restructuring of the
Buildings.Fluid.FMI package for Buildings,
#506.For Dymola, the conversion script updates these models. |
| Buildings.Fluid.HeatExchangers | |
|
Buildings.Fluid.DXSystems.AirCooled.SingleSpeed Buildings.Fluid.DXSystems.AirCooled.VariableSpeed Buildings.Fluid.DXSystems.AirCooled.MultiStage Buildings.Fluid.DXSystems.Data |
Renamed
Buildings.Fluid.DXSystems.AirCooled.SingleSpeed
toBuildings.Fluid.DXSystems.AirCooled.SingleSpeed,Buildings.Fluid.DXSystems.AirCooled.VariableSpeed
toBuildings.Fluid.DXSystems.AirCooled.VariableSpeed,Buildings.Fluid.DXSystems.AirCooled.MultiStage
toBuildings.Fluid.DXSystems.AirCooled.MultiStage
andBuildings.Fluid.DXSystems.Data toBuildings.Fluid.DXSystems.AirCooled.Data.This was due to the addition of the new package Buildings.Fluid.DXSystems.WaterCooled. This is for
Buildings,
#635.For Dymola, the conversion script updates these models. |
| Buildings.Fluid.HeatPumps | |
| Buildings.Fluid.HeatPumps.Carnot_TEva Buildings.Fluid.HeatPumps.Carnot_y |
Removed the parameters effInpEva and
effInpCon. Now, always the leaving water temperatures
are used to compute the coefficient of performance (COP).
Previously, the entering water temperature could be used, but this
can give COPs that are higher than the Carnot efficiency if the
temperature lift is small. For Dymola, the conversion script will
update models.This is for IBPSA, #497 |
| Buildings.Fluid.HeatExchangers.Boreholes | Moved the package
Buildings.Fluid.HeatExchangers.Boreholes to
Buildings.Fluid.Geothermal.Boreholes. This is for
compatibility with an ongoing model development that will include a
borefield model.For Dymola, the conversion script will update models that use any model of the package Buildings.Fluid.HeatExchangers.Boreholes. |
| Buildings.Fluid.Movers | Removed the function
Buildings.Fluid.Movers.BaseClasses.Characteristics.flowApproximationAtOrigin
and changed the arguments of the function
Buildings.Fluid.Movers.BaseClasses.Characteristics.pressure.This was done due to the refactoring of the fan and pump model for low speed. This is for IBPSA, #458. Users who simply use the existing model in Buildings.Fluid.Movers are not affected by this change
as the function are called by a low-level implementation only. |
| Buildings.Fluid.Movers.
Buildings.Fluid.Movers.FlowControlled_dp Buildings.Fluid.Movers.FlowControlled_m_flow Buildings.Fluid.Movers.SpeedControlled_Nrpm Buildings.Fluid.Movers.SpeedControlled_y |
Renamed the parameter filteredSpeed
to use_inputFilter.For Dymola, the conversion script will update models that access this parameter. This is for IBPSA, #665 |
| Buildings.Fluid.HeatExchangers.CoolingTowers | Changed the name of the function
Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.Characteristics.efficiency
to
Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.Characteristics.normalizedPower.
Changed the name of the record
Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.Characteristics.efficiencyParameters
to
Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.Characteristics.fan,
and changed the parameter of this record from eta to
r_P. This change was done as the performance is for
the relative power consumption, and not the fan efficiency, as the
old parameter name suggests. Users who use the default parameters
are not affected by this change. If the default parameters were
changed, then for Dymola, the conversion script will update the
model. |
| Buildings.HeatTransfer | |
|
Buildings.HeatTransfer.BaseClasses.TransmittedRadiation Buildings.HeatTransfer.BaseClasses.WindowRadiation |
Refactored the model to allow separate treatment for the diffuse and direct irradiation, which is needed for issue 451. |
| Buildings.HeatTransfer.Conduction.BaseClasses.PartialConstruction | Removed parameter A as it is already
declared in
Buildings.HeatTransfer.Conduction.BaseClasses.PartialConductor
which is often used with this class. |
| Buildings.ThermalZones | |
| Buildings.ThermalZones.Detailed | Moved package from Buildings.Rooms to
Buildings.ThermalZones.Detailed. This was done because
Buildings has a new package
Buildings.ThermalZones.ReducedOrder with reduced order
building models. Hence, the more detailed room models should be in
the same top-level package as they are also for modeling of thermal
zones.For Dymola, the conversion script will update models that use any model of the package Buildings.ThermalZones. |
| Buildings.ThermalZones.Detailed.CFD Buildings.ThermalZones.Detailed.MixedAir Buildings.ThermalZones.Detailed.BaseClasses.CFDAirHeatMassBalance Buildings.ThermalZones.Detailed.BaseClasses.MixedAirHeatMassBalance Buildings.ThermalZones.Detailed.BaseClasses.PartialAirHeatMassBalance Buildings.ThermalZones.Detailed.BaseClasses.RoomHeatMassBalance |
Refactored implementation of latent heat gain for
Buildings,
#515. Users who simply use
Buildings.MixedAir.Rooms.CFD or
Buildings.MixedAir.Rooms.MixedAir will not be affected
by this change, except if they access variables related to the heat
gain. |
|
Buildings.ThermalZones.Detailed.BaseClasses.AirHeatMassBalanceMixed Buildings.ThermalZones.Detailed.BaseClasses.MixedAirHeatGain |
Removed models as these are no longer needed due after the refactoring of the room model for Buildings, #515. |
|
Buildings.ThermalZones.Detailed.BaseClasses.RoomHeatMassBalance Buildings.ThermalZones.Detailed.BaseClasses.SolarRadiationExchange |
Refactored the distribution of the diffuse solar
irradiation, which required replacing the input and output signals.
Previously, the model assumed that all diffuse irradiation first
hits the floor before it is diffusely reflected to all other
surfaces. Now, the incoming diffuse solar irradiation is
distributed to all surfaces, proportional to their emissivity plus
transmissivity times area. This closes issue 451. |
| Buildings.ThermalZones.Detailed.BaseClasses.CFDHeatGain | Renamed model from
Buildings.ThermalZones.Detailed.BaseClasses.CFDHeatGain
to
Buildings.ThermalZones.Detailed.BaseClasses.HeatGain.This is for Buildings, #515. |
| Buildings.ThermalZones.Detailed.BaseClasses.CFDExchange | Removed the parameter uStart as it is
not required. As this is in a base class, users typically won't
need to change their models unless they use this base class
directly.This is for Buildings, #579. |
| Buildings.Utilities | |
| Buildings.Utilities.Psychrometrics.WetBul_pTX | Deleted the model
Buildings.Utilities.Psychrometrics.WetBul_pTX as the
same functionality is provided by
Buildings.Utilities.Psychrometrics.TWetBul_TDryBulXi.
Users who use
Buildings.Utilities.Psychrometrics.WetBul_pTX need to
replace the model manually and reconnect the input and output
ports.This is for IBPSA, #475. |
The following critical errors have been fixed (i.e., errors that can lead to wrong simulation results):
| Buildings.Fluid | |
|
Buildings.Fluid.DXSystems.AirCooled.MultiStage Buildings.Fluid.DXSystems.AirCooled.SingleSpeed Buildings.Fluid.DXSystems.AirCooled.VariableSpeed Buildings.Fluid.DXSystems.AirCooled.BaseClasses.Evaporation |
Corrected the computation of the wet bulb state in the model that computes the reevaporation of water vapor into the air stream when the coil is switched off. The results change slightly. This closes issue 520 and integrates the change of IBPSA, #474. |
| Buildings.Fluid.Storage.StratifiedEnhancedInternalHex | Corrected computation of the heat exchanger
location which was wrong if hHex_a < hHex_b, e.g.,
the port a of the heat exchanger is below the port b. This closes
issue
531. |
| Buildings.Examples | |
| Buildings.Examples.VAVReheat.ClosedLoop Buildings.Examples.DualFanDualDuct.ClosedLoop Buildings.Examples.VAVReheat.Controls.Economizer |
Corrected the economizer controller which closed the outside air when there was no freeze concern during summer. This closes issue 511. |
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.Electrical | |
|
Buildings.Electrical.AC.OnePhase.Sources.Grid Buildings.Electrical.AC.ThreePhasesUnbalanced.Sources.Grid Buildings.Electrical.AC.ThreePhasesUnbalanced.Sources.Grid_N |
Corrected sign error in documentation string of
variable P. |
| Buildings.Fluid | |
|
Buildings.Fluid.HeatExchanger.WetCoilCounterFlow Buildings.Fluid.HeatExchanger.WetCoilDiscretized |
Redeclared Medium2 to force it to be
a subclass of
Modelica.Media.Interfaces.PartialCondensingGases.This is for issue 544. |
| Buildings.Fluid.Storage | Removed medium declaration, which is not needed
and inconsistent with the declaration in the base class. This is for issue 544. |
| Buildings.ThermalZones.Detailed.Validation.BESTEST | |
|
Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases9xx.Case900 Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases9xx.Case900 |
Added missing parameter keyword,
which is required as the variable (for the materials) is assigned
to a parameter. This is for issue
543. |