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