Version 1.23

AirConditioning Library 1.23 is part of Modelon's 2022.1 release. New versions of Modelon's libraries are sold and distributed directly from Modelon, as well as approved resellers.

Version 1.23 contains the changes described below.

Build 1 (2022-01-25)

New features

  • New three-way, distributing valve has been added
  • Added a model of Propane using the spline-based tabular look-up approach. Validity region is 50 kPa < p < 12 MPa, 135 K < T < 475 K
  • PlateRefLCLCoolantHX is newly added to the library. This heat exchanger is similar to PlateRefCoolantHX except for we can connect this model directly to coolant networks or circuits modeled with the Liquid Cooling Library. But user need to be careful while replacing calibrated PlateRefCoolantHX with this heat exchanger as the correlations can be different, and recalibration might be needed


  • Several pressure loss correlations have gotten an option to use relaxation, resulting in reduced chattering in low flow scenarios
  • Improved robustness when solving pressure and enthalpy from density and temperature in all SBTL media
  • SBTL media can now compute partial derivatives and time derivatives at vapor and liquid lines.
  • New init record CoolantBasedCondenserInit is added for coolant based condenser test benches
  • Init record is added for AirConditioning.Heating.Examples.ChevronPlateHX and AirConditioning.Heating.Examples.CoolantRefrigerant test benches. Now user can easily opt for different ways of calibration using the initType in the init record. (Note: These three test benches are different from earlier test benches in terms of initialization. For the current models, initialization is linked to the init record. So users need to take care if they have extended these test models earlier and done calibration.)
  • Modified the equation for d_smooth in terms of dp_smooth in FrictionLoss. Changed the parameter mdot_smooth to dp_smooth and handled by conversion script. This results in a non-linear systems being removed by computing upstream air density based on the sign of the pressure gradient instead of the mass flow rate. It improves simulation performance for those models.
  • Improved the visualization of ThermodynamicPropCalc by having different connectors for temperature T_pin/T_pout and T_in/T_out based on the knownStates and desiredStates. It's not possible to convert this change using the conversion script. So, the user has to manually remove the old temperature connection and reconnect it to make it work.
  • In the component AirConditioning.HeatExchangers.CondReceiver the air medium model was previously not replaceable. This has been fixed.
  • Several backwards-compatible code improvements have been implemented for Modelica compliance and reduced number of warnings in model compilation.
  • The default nominal attribute for pressure differences has been changed from 1 Pa to 1 kPa. This can be changed by the parameter nominal_dp_ref in the System_ACL component.
  • In R134a models with Helmholtz equation of state, protected a log function call from non-positive input, which might happen during iteration and result in model error print-outs.
  • In MoistAir, protected division by temperature in 4 functions from non-positive temperature, which might happen during iteration and result in model error print-outs.
  • It is now possible to change states in all refrigerant channels via a new parameter stateChoice in the System_ACL component.

Changed default AirModel in flattube heat exchangers

Heat exchangers have different AirModel options (Advanced tab) that determine modeling approach for the air flow. There are four options, analytic solution or finite volume approach and dry or moist air. The analyitic approach is generally recommended as the best accuracy and performance trade-off, and it has been used in examples and heat-exchanger test benches for a long time. However, some heat exchanger components had the finite volume approach as default choice and that has now changed to analytical. If an existing model uses a heat exchanger component with unchanged default AirModel, the results will change due to a different modelling approach. To restore previous results, the following parameter changes can be made for components in AirConditioning.HeatExchangers:

  • Evaporator & CondEvap: n_segAir = 5 and AirModel = Finite volume air flow model (moist)
  • LayeredVertical, LayeredHorizontal, PlateEvaporator, HXHorizontal & HXVertical: AirModel = Finite volume air flow model (moist)


Several improvements have been made to simplify steady-state initialization, mostly by improving how initial value parameters are propagated to start-attributes of variables. Some components have small changes in which initial value parameters are available. Some changes are not fully backwards-compatible. See the list below for more details.

In all refrigerant and liquid flow channels, including heat exchanger channels and pipes:

  • For initial inlet and outlet pressures, temperatures and enthalpies, the specified initial values should now be interpreted as values in the connectors. Previously, those initial parameters have been applied from the first to the last control volume. The problem with this was that the temperature & enthalpy at inlet might not be the same as in the first volume due to heat transfer, similarly at the outlet, the pressure in the last volume and in the connector isn't the same due to a flow resistance model between them. Previoulsy it has been recommended to specify a lower pressure at the inlet of a downstream connected component relative to the outlet of the upstream conencted component, to ensure initial pressure gratient. This is no longer neccessary. The reccomendation is now to specify the same initial pressure for inlet / outlet of two connected components. This change also ensures initial values closer to the steady state solution for internal control volumes when the specified guess values are closer to the solution. For initial value initialization, this change results in a small shift of the initial state values. For steady-state initialization, only the initial guess is affected. While generally this has proved to improve robustness, it is possible that some previously converging model can fail to converge due to changed start values.

In all heat exchangers:

  • The parameter to specify initial wall temperature HX_Init.dT_ref (interpreted as temperature difference between refrigerant or liquid channel and wall) has been removed. Instead the initial wall temperature is now determined from the initial temperatures of the local connected fluids on both sides. A new parameter wt_wall has been introduced which allows all wall segment temperatures to be closer to the primary or secondary fluid initial temperatures. This formulation should require less adaptation for different operating points, and ensure that all wall segment temperatures are initially between the temperatures of the adjacent connected fluids. Arbitrary other initial wall temperatures (pre-conditioned cases) can be simulated by modifying parameter T0 of the wall sub-component manually as before.

In all flat-tube heat exchangers:

  • The parameter HX_Init.dT_air was previously unused but is now defined as an initial guess for air temperature change from inlet to outlet (positive for air heating, negative for cooling). The local air temperatures will now get start attributes assuming a linear temperature change through the heat exchanger. Previousy, outlet air temperature start attributes were the same as for the inlet. For multi-layered heat exchangers the temperature gradient is assumed uniform over the layers. Via the new computation of wall initial temperatures, the parameter has an effect also for non steady-state initialization.
  • The start attribute on internal air mass flow variables, representing a section of the heat exchanger, was previously set to the total initial air flow. This has been corrected and start attributes are now set from total initial air flow and heat exchanger geometry and discretization information.
  • In case of air side condensation, the outlet water fraction initial guess values are now taken from the specified inlet air humidity, instead of previously a constant hard-coded value.

In the condenser with integrated receiver component, AirConditioning.HeatExchangers.CondReceiver:

  • Added a parameter cond_dpfraction0 that allows specifying a guess for how large fraction of initial pressure loss that occur over the condensing part (between inlet and receiver). The default value is 0.5 and it was previously enforced and not possible the change
  • Added a parameter cond_sc0 which allows specifying an initial subcooling at the receiver inlet. The default is 0, which was previously enforced and not possible to change.
  • If the receiver is configured to include static head, this will now be taken into account when distributing start values to internal pressure variables.
  • Removed the parameter dp_rec, which was unused

Other initial value changes:

  • All valve components have a new initial pressure drop guess parameter init.dp0 with a default value of 10 kPa. This is propagated to a start attribute on the variable dp.
  • The initial compressor pressure difference guess parameter, init.dp0, was previously not propagated to any start attribute. This is now start attribute for variable dp in compressor models. The parameter has been assigned in system examples and templates from already provided p_high and p_low start values.
  • Start attributes of variables mdot and d in refrigerant channels in heat exchangers were previously not taken from values specified in init parameters. This has been fixed.
  • In all refrigerant channel models, including pipes, reduced pressure p_red and pressure loss Ploss now have start attributes from user specified initial pressures. p_red now also has a min=0 attribute.
  • In all heat exchanger test benches, now the refrigerant sink also has an initial specific enthalpy guess from the user specified bondary conditions, as this is solved for in steady-state initialization.
  • The PI-controller AirConditioning.ControllersAndSensors.LimPI, now has start attributes for more internal variables that might have to be solved for. The guess is taken in the middle of the allowed output signal interval by default.

Removed classes

The equivalent class can found in Modelon Based Library: (If below components are duplicated, then these changes cannot be converted using conversion script. These can be updated manually.)

  • Removed the AirConditioning.Visualizers.Internal.SpatialPlotWithBackground which was used as a template for PH diagram. The new template is available in XYDiagramBackgroundImage. All the PH diagrams are updated with new template and also this will be converted using conversion script for customer package.
  • AirConditioning.Visualizers.Internal.RGBColor → Modelon.Visualizers.Internal.Types.RGBColor
  • AirConditioning.Visualizers.Internal.Converter_toRelCoord → Modelon.Visualizers.Internal.Converter_toRelCoord
  • AirConditioning.Visualizers.Internal.Converter_fromRelCoordl → Modelon.Visualizers.Internal.Converter_fromRelCoord
  • AirConditioning.Visualizers.Internal.XYLine → Modelon.Visualizers.XYLine

Modelica version

AirConditioning library now uses Modelica Standard library 4.0.0 and follows Modelica Language Specification 3.5.