packagePropyleneGlycolWater
Extends from Modelica.Media.Interfaces.PartialSimpleMedium (Medium model with linear dependency of u, h from temperature. All other quantities, especially density, are constant.).
Information
This medium package models propylene glycol - water mixtures.
The mass density, specific heat capacity, thermal conductivity and viscosity are assumed constant and evaluated at a set temperature and mass fraction of propylene glycol within the mixture. The dependence of the four properties are shown on the figure below.
The accuracy of the thermophysical properties is dependent on the temperature variations encountered during simulations. The figure below shows the relative error of the the four properties over a 10 °C range around the temperature used to evaluate the constant properties. The maximum errors are 0.8 % for mass density, 1.5 % for specific heat capacity, 3.2 % for thermal conductivity and 250 % for dynamic viscosity.
The figure below shows the relative error of the the four properties over a 20 °C range around the temperature used to evaluate the constant proepties. The maximum errors are 1.6 % for mass density, 3.0 % for specific heat capacity, 6.2 % for thermal conductivity and 950 % for dynamic viscosity.
The enthalpy is computed using the convention that h=0 if T=0 °C.
Limitations
Density, specific heat capacity, thermal conductivity and viscosity are constant. The propylene glycol/water mixture is modeled as an incompressible liquid. There are no phase changes. The medium is limited to temperatures below 100 °C and mass fractions below 0.60. As is the case for Buildings.Media.Water, this medium package should not be used if the simulation relies on the dynamic viscosity.
Typical use and important parameters
The temperature and mass fraction must be specified for the evaluation of the constant thermophysical properties. A typical use of the package is (e.g. for a temperature of 20 °C and a mass fraction of 0.40):
Medium = Buildings.Media.Antifreeze.PropyleneGlycolWater(property_T=293.15, X_a=0.40)
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Media.Interfaces.Choices.IndependentVariables | ThermoStates (from PartialMedium) | Enumeration type for independent variables | |
| String | mediumName (from PartialMedium) | "unusablePartialMedium" | Name of the medium |
| String[:] | substanceNames (from PartialMedium) | {mediumName} | Names of the mixture substances. Set substanceNames={mediumName} if only one substance. |
| String[:] | extraPropertiesNames (from PartialMedium) | fill("", 0) | Names of the additional (extra) transported properties. Set extraPropertiesNames=fill("",0) if unused |
| Boolean | singleState (from PartialMedium) | = true, if u and d are not a function of pressure | |
| Boolean | reducedX (from PartialMedium) | true | = true, if medium contains the equation sum(X) = 1.0; set reducedX=true, if only one substance (see docu for details) |
| Boolean | fixedX (from PartialMedium) | false | = true, if medium contains the equation X = reference_X |
| AbsolutePressure | reference_p (from PartialMedium) | 101325 | Reference pressure of Medium: default 1 atmosphere |
| Temperature | reference_T (from PartialMedium) | 298.15 | Reference temperature of Medium: default 25 deg Celsius |
| MassFraction[nX] | reference_X (from PartialMedium) | fill(1/nX, nX) | Default mass fractions of medium |
| AbsolutePressure | p_default (from PartialMedium) | 101325 | Default value for pressure of medium (for initialization) |
| Temperature | T_default (from PartialMedium) | Modelica.Units.Conversions.from_degC(20) | Default value for temperature of medium (for initialization) |
| SpecificEnthalpy | h_default (from PartialMedium) | specificEnthalpy_pTX(p_default, T_default, X_default) | Default value for specific enthalpy of medium (for initialization) |
| MassFraction[nX] | X_default (from PartialMedium) | reference_X | Default value for mass fractions of medium (for initialization) |
| ExtraProperty[nC] | C_default (from PartialMedium) | fill(0, nC) | Default value for trace substances of medium (for initialization) |
| Integer | nS (from PartialMedium) | size(substanceNames, 1) | Number of substances |
| Integer | nX (from PartialMedium) | nS | Number of mass fractions |
| Integer | nXi (from PartialMedium) | if fixedX then 0 else if reducedX then nS - 1 else nS | Number of structurally independent mass fractions (see docu for details) |
| Integer | nC (from PartialMedium) | size(extraPropertiesNames, 1) | Number of extra (outside of standard mass-balance) transported properties |
| Real[nC] | C_nominal (from PartialMedium) | 1.0e-6*ones(nC) | Default for the nominal values for the extra properties |
| SpecificHeatCapacity | cp_const (from PartialSimpleMedium) | Constant specific heat capacity at constant pressure | |
| SpecificHeatCapacity | cv_const (from PartialSimpleMedium) | Constant specific heat capacity at constant volume | |
| Density | d_const (from PartialSimpleMedium) | Constant density | |
| DynamicViscosity | eta_const (from PartialSimpleMedium) | Constant dynamic viscosity | |
| ThermalConductivity | lambda_const (from PartialSimpleMedium) | Constant thermal conductivity | |
| VelocityOfSound | a_const (from PartialSimpleMedium) | Constant velocity of sound | |
| Temperature | T_min (from PartialSimpleMedium) | Minimum temperature valid for medium model | |
| Temperature | T_max (from PartialSimpleMedium) | Maximum temperature valid for medium model | |
| Temperature | T0 (from PartialSimpleMedium) | reference_T | Zero enthalpy temperature |
| MolarMass | MM_const (from PartialSimpleMedium) | Molar mass | |
| FluidConstants | fluidConstants (from PartialSimpleMedium) | Fluid constants | |
| Modelica.Units.SI.Temperature | property_T | Temperature for evaluation of constant fluid properties | |
| Modelica.Units.SI.MassFraction | X_a | Mass fraction of propylene glycol in water |
Contents
| Name | Description |
|---|---|
| BaseProperties | Base properties |
Revisions
-
April 15, 2026, by Michael Wetter:
Refactored implementation to use media properties from function calls in the package Buildings.Media.Antifreeze.Functions while avoiding code duplication.
This is for #2115. -
October 26, 2018, by Filip Jorissen and Michael Wetter:
Now printing different messages if temperature or mass fraction is above or below its limit, and adding instance name as JModelica does not print the full instance name in the assertion. This is for #1045. -
March 16, 2018, by Massimo Cimmino:
First implementation.