# ReleaseNotes.Version_2_2_2

## Information

Version 2.2.2 is backward compatible to version 2.2.1 and 2.2 with the following exceptions:

- Removal of package Modelica.Media.Interfaces.PartialTwoPhaseMediumWithCache (this was not yet utilized).
- Removal of the media packages in Modelica.Media.IdealGases.SingleGases that are not type compatible to Modelica.Media.Interfaces.PartialMedium, because a FluidConstants record definition is missing, for details, see Modelica.Media.IdealGases (this is seen as a bug fix).

An overview of the differences between version 2.2.2 and the previous version 2.2.1 is given below. The exact differences (but without differences in the documentation) are available in Differences-Modelica-221-222.html. This comparison file was generated automatically with Dymola's ModelManagement.compare function.

In this version, no new libraries have been added. The documentation of the whole library was improved.

The following new components have been added to existing libraries:

Blocks.Logical.
TerminateSimulation | Terminate a simulation by a given condition.
Blocks.Routing.
RealPassThrough IntegerPassThrough BooleanPassThrough | Pass a signal from input to output (useful in combination with a bus due to restrictions of expandable connectors).
Blocks.Sources.
KinematicPTP2 | Directly gives q,qd,qdd as output (and not just qdd as KinematicPTP).
Electrical.Machines.Examples.
TransformerTestbench | Transformer Testbench
Rectifier6pulse | 6-pulse rectifier with 1 transformer
Rectifier12pulse | 12-pulse rectifier with 2 transformers
AIMC_Steinmetz | Asynchronous induction machine squirrel cage with Steinmetz connection
Electrical.Machines.BasicMachines.Components.
BasicAIM | Partial model for asynchronous induction machine
BasicSM | Partial model for synchronous induction machine
PartialAirGap | Partial airgap model
BasicDCMachine | Partial model for DC machine
PartialAirGapDC | Partial airgap model of a DC machine
BasicTransformer | Partial model of threephase transformer
PartialCore | Partial model of transformer core with 3 windings
IdealCore | Ideal transformer with 3 windings
Electrical.Machines.BasicMachines.
Transformers | Sub-Library for technical 3phase transformers
Electrical.Machines.Interfaces.
Adapter | Adapter to model housing of electrical machine
Math.
Vectors | New library of functions operating on vectors
atan3 | Four quadrant inverse tangent (select solution that is closest to given angle y0)
asinh | Inverse of sinh (area hyperbolic sine)
acosh | Inverse of cosh (area hyperbolic cosine)
Math.Vectors
isEqual | Determine if two Real vectors are numerically identical
norm | Return the p-norm of a vector
length | Return length of a vector (better as norm(), if further symbolic processing is performed)
normalize | Return normalized vector such that length = 1 and prevent zero-division for zero vector
reverse | Reverse vector elements (e.g., v[1] becomes last element)
sort | Sort elements of vector in ascending or descending order
Math.Matrices
solve2 | Solve real system of linear equations A*X=B with a B matrix (Gaussian elimination with partial pivoting)
LU_solve2 | Solve real system of linear equations P*L*U*X=B with a B matrix and an LU decomposition (from LU(..))
Mechanics.Rotational.
InitializeFlange | Initialize a flange according to given signals (useful if initialization signals are provided by a signal bus).
Media.Interfaces.PartialMedium.
density_pTX | Return density from p, T, and X or Xi
Media.Interfaces.PartialTwoPhaseMedium.
BaseProperties | Base properties (p, d, T, h, u, R, MM, x) of a two phase medium
molarMass | Return the molar mass of the medium
saturationPressure_sat | Return saturation pressure
saturationTemperature_sat | Return saturation temperature
saturationTemperature_derp_sat | Return derivative of saturation temperature w.r.t. pressure
setState_px | Return thermodynamic state from pressure and vapour quality
setState_Tx | Return thermodynamic state from temperature and vapour quality
vapourQuality | Return vapour quality
Media.Interfaces.
PartialLinearFluid | Generic pure liquid model with constant cp, compressibility and thermal expansion coefficients
Media.Air.MoistAir.
massFraction_pTphi | Return the steam mass fraction from relative humidity and T
saturationTemperature | Return saturation temperature from (partial) pressure via numerical inversion of function saturationPressure
enthalpyOfWater | Return specific enthalpy of water (solid/liquid) near atmospheric pressure from temperature
enthalpyOfWater_der | Return derivative of enthalpyOfWater()" function
PsychrometricData | Model to generate plot data for psychrometric chart
Media.CompressibleLiquids. New sub-library for simple compressible liquid models
LinearColdWater | Cold water model with linear compressibility
LinearWater_pT_Ambient | Liquid, linear compressibility water model at 1.01325 bar and 25 degree Celsius
SIunits.
TemperatureDifference | Type for temperature difference

The following existing components have been improved:

Blocks.Examples.
BusUsage | Example changed from the "old" to the "new" bus concept with expandable connectors.
Blocks.Discrete.
ZeroOrderHold | Sample output ySample moved from "protected" to "public" section with new attributes (start=0, fixed=true).
TransferFunction | Discrete state x with new attributes (each start=0, each fixed=0).
Electrical.
Analog MultiPhase | Improved some icons.
Electrical.Digital.Interfaces.
MISO | Removed "algorithm" from this partial block.
Electrical.Digital.Delay.
DelayParams | Removed "algorithm" from this partial block.
Electrical.Digital.Delay.
DelayParams | Removed "algorithm" from this partial block.
TransportDelay | If delay time is zero, an infinitely small delay is introduced via pre(x) (previously "x" was used).
Electrical.Digital.Sources.
Clock Step | Changed if-conditions from "xxx < time" to "time >= xxx" (according to the Modelica specification, in the second case a time event should be triggered, i.e., this change leads potentially to a faster simulation).
Electrical.Digital.Converters.
BooleanToLogic LogicToBoolean RealToLogic LogicToReal | Changed from "algorithm" to "equation" section to allow better symbolic preprocessing
Electrical.
Machines | Slightly improved documentation, typos in documentation corrected
Electrical.Machines.Examples.
AIMS_start | Changed QuadraticLoadTorque1(TorqueDirection=true) to QuadraticLoadTorque1(TorqueDirection=false) since more realistic
Electrical.Machines.Interfaces.
PartialBasicMachine | Introduced support flange to model the reaction torque to the housing
Electrical.Machines.Sensors.
Rotorangle | Introduced support flange to model the reaction torque to the housing
Mechanics.MultiBody.Examples.Elementary.
PointMassesWithGravity | Added two point masses connected by a line force to demonstrate additionally how this works. Connections of point masses with 3D-elements are demonstrated in the new example PointMassesWithGravity (there is the difficulty that the orientation is not defined in a PointMass object and therefore some special handling is needed in case of a connection with 3D-elements, where the orientation of the point mass is not determined by these elements.
Mechanics.MultiBody.Examples.Systems.
RobotR3 | Changed from the "old" to the "new" bus concept with expandable connectors. Replaced the non-standard Modelica function "constrain()" by standard Modelica components. As a result, the non-standard function constrain() is no longer used in the Modelica Standard Library.
Mechanics.MultiBody.Frames.Orientation.
equalityConstraint | Use a better residual for the equalityConstraint function. As a result, the non-linear equation system of a kinematic loop is formulated in a better way (the range where the desired result is a unique solution of the non-linear system of equations becomes much larger).
Mechanics.MultiBody.
Visualizers. | Removed (misleading) annotation "structurallyIncomplete" in the models of this sub-library
Mechanics.Rotational.
Examples | For all models in this sub-library: Included a housing object in all examples to compute all support torques. Replaced initialization by modifiers via the initialization menu parameters of Inertia components. Removed "encapsulated" and unnecessary "import". Included "StopTime" in the annotations.
Mechanics.Rotational.Interfaces.
FrictionBase | Introduced "fixed=true" for Boolean variables startForward, startBackward, mode.
Mechanics.Translational.Interfaces.
FrictionBase | Introduced "fixed=true" for Boolean variables startForward, startBackward, mode.
Media.UsersGuide.MediumUsage.
TwoPhase | Improved documentation and demonstrating the newly introduced functions
Media.Examples.
WaterIF97 | Provided (missing) units for variables V, dV, H_flow_ext, m, U.
Media.Interfaces.
PartialMedium | Final modifiers are removed from nX and nXi, to allow customized medium models such as mixtures of refrigerants with oil, etc.
PartialCondensingGases | Included attributes "min=1, max=2" for input argument FixedPhase for functions setDewState and setBubbleState (in order to guarantee that input arguments are correct).
Media.Interfaces.PartialMedium.
BaseProperties | New Boolean parameter "standardOrderComponents". If true, last element vector X is computed from 1-sum(Xi) (= default) otherwise, no equation is provided for it in PartialMedium.
IsentropicExponent | "max" value changed from 1.7 to 500000
setState_pTX setState_phX setState_psX setState_dTX specificEnthalpy_pTX temperature_phX density_phX temperature_psX density_psX specificEnthalpy_psX | Introduced default value "reference_X" for input argument "X".
Media.Interfaces.PartialSimpleMedium.
setState_pTX setState_phX setState_psX setState_dTX | Introduced default value "reference_X" for input argument "X".
Media.Interfaces.PartialSimpleIdealGasMedium.
setState_pTX setState_phX setState_psX setState_dTX | Introduced default value "reference_X" for input argument "X".
Media.Air.MoistAir.
setState_pTX setState_phX setState_dTX | Introduced default value "reference_X" for input argument "X".
Media.IdealGases.Common.SingleGasNasa.
setState_pTX setState_phX setState_psX setState_dTX | Introduced default value "reference_X" for input argument "X".
Media.IdealGases.Common.MixtureGasNasa.
setState_pTX setState_phX setState_psX setState_dTX h_TX | Introduced default value "reference_X" for input argument "X".
Media.Common.
IF97PhaseBoundaryProperties gibbsToBridgmansTables | Introduced unit for variables vt, vp.
SaturationProperties | Introduced unit for variable dpT.
BridgmansTables | Introduced unit for dfs, dgs.
Media.Common.ThermoFluidSpecial.
gibbsToProps_ph gibbsToProps_ph gibbsToBoundaryProps gibbsToProps_dT gibbsToProps_pT | Introduced unit for variables vt, vp.
TwoPhaseToProps_ph | Introduced unit for variables dht, dhd, detph.
Media.
MoistAir | Documentation of moist air model significantly improved.
Media.MoistAir.
enthalpyOfVaporization | Replaced by linear correlation since simpler and more accurate in the entire region.
Media.Water.IF97_Utilities.BaseIF97.Regions.
drhovl_dp | Introduced unit for variable dd_dp.
Thermal.
FluidHeatFlow | Introduced new parameter tapT (0..1) to define the temperature of the HeatPort as linear combination of the flowPort_a (tapT=0) and flowPort_b (tapT=1) temperatures.

The following critical errors have been fixed (i.e., errors that can lead to wrong simulation results):

Electrical.Machines.BasicMachines.Components.
ElectricalExcitation | Excitation voltage ve is calculated as "spacePhasor_r.v_[1]*TurnsRatio*3/2" instead of "spacePhasor_r.v_[1]*TurnsRatio
Mechanics.MultiBody.Parts.
FixedRotation | Bug corrected that the torque balance was wrong in the following cases (since vector r was not transformed from frame_a to frame_b; note this special case occurs very seldom in practice): frame_b is in the spanning tree closer to the root (usually this is frame_a). vector r from frame_a to frame_b is not zero.
PointMass | If a PointMass model is connected so that no equations are present to compute its orientation object, the orientation was arbitrarily set to a unit rotation. In some cases this can lead to a wrong overall model, depending on how the PointMass model is used. For this reason, such cases lead now to an error (via an assert(..)) with an explanation how to fix this.
Media.Interfaces.PartialPureSubstance.
pressure_dT specificEnthalpy_dT | Changed wrong call from "setState_pTX" to "setState_dTX"
Media.Interfaces.PartialTwoPhaseMedium.
pressure_dT specificEnthalpy_dT | Changed wrong call from "setState_pTX" to "setState_dTX"
Media.Common.ThermoFluidSpecial.
gibbsToProps_dT helmholtzToProps_ph helmholtzToProps_pT helmholtzToProps_dT | Bugs in equations corrected
Media.Common.
helmholtzToBridgmansTables helmholtzToExtraDerivs | Bugs in equations corrected
Media.IdealGases.Common.SingleGasNasa.
density_derp_T | Bug in equation of partial derivative corrected
Media.Water.IF97_Utilities.
BaseIF97.Inverses.dtofps3 isentropicExponent_props_ph isentropicExponent_props_pT isentropicExponent_props_dT | Bugs in equations corrected
Media.Air.MoistAir.
h_pTX | Bug in setState_phX due to wrong vector size in h_pTX corrected. Furthermore, syntactical errors corrected: In function massFractionpTphi an equation sign is used in an algorithm. Two consecutive semicolons removed
Media.Water.
waterConstants | Bug in equation of criticalMolarVolume corrected.
Media.Water.IF97_Utilities.BaseIF97.Regions.
region_ph region_ps | Bug in region determination corrected.
boilingcurve_p dewcurve_p | Bug in equation of plim corrected.

The following uncritical errors have been fixed (i.e., errors that do not lead to wrong simulation results, but, e.g., units are wrong or errors in documentation):

Blocks.
Examples | Corrected typos in description texts of bus example models.
Blocks.Continuous.
LimIntegrator | removed incorrect smooth(0,..) because expression might be discontinuous.
Blocks.Math.UnitConversions.
block_To_kWh block_From_kWh | Corrected unit from "kWh" to (syntactically correct) "kW.h".
Electrical.Analog.Examples.
HeatingNPN_OrGate | Included start values, so that initialization is successful
Electrical.Analog.Lines.
OLine | Corrected unit from "Siemens/m" to "S/m".
TLine2 | Changed wrong type of parameter NL (normalized length) from SIunits.Length to Real.
Electrical.Digital.Delay.
TransportDelay | Syntax error corrected (":=" in equation section is converted by Dymola silently to "=").
Electrical.Digital
Converters | Syntax error corrected (":=" in equation section is converted by Dymola silently to "=").
Electrical.MultiPhase.Basic.
Conductor | Changed wrong type of parameter G from SIunits.Resistance to SIunits.Conductance.
Electrical.MultiPhase.Interfaces.
Plug | Made used "pin" connectors non-graphical (otherwise, there are difficulties to connect to Plug).
Electrical.MultiPhase.Sources.
SineCurrent | Changed wrong type of parameter offset from SIunits.Voltage to SIunits.Current.
Mechanics.MultiBody.Examples.Loops.
EngineV6 | Corrected wrong crankAngleOffset of some cylinders and improved the example.
Mechanics.MultiBody.Examples.Loops.Utilities.
GasForce | Wrong units corrected: "SIunitsPosition x,y" to "Real x,y"; "SIunits.Pressure press" to "SIunits.Conversions.NonSIunits.Pressure_bar"
GasForce2 | Wrong unit corrected: "SIunits.Position x" to "Real x".
EngineV6_analytic | Corrected wrong crankAngleOffset of some cylinders.
Mechanics.MultiBody.Interfaces.
PartialLineForce | Corrected wrong unit: "SIunits.Position eRod_a" to "Real eRod_a";
FlangeWithBearingAdaptor | If includeBearingConnector = false, connector "fr" + "ame" was not removed. As long as the connecting element to "frame" determines the non-flow variables, this is fine. In the corrected version, "frame" is conditionally removed in this case.
Mechanics.MultiBody.Forces.
ForceAndTorque | Corrected wrong unit: "SIunits.Force t_b_0" to "SIunits.Torque t_b_0".
LineForceWithTwoMasses | Corrected wrong unit: "SIunits.Position e_rel_0" to "Real e_rel_0".
Mechanics.MultiBody.Frames.
axisRotation | Corrected wrong unit: "SIunits.Angle der_angle" to "SIunits.AngularVelocity der_angle".
Mechanics.MultiBody.Joints.Assemblies.
JointUSP JointSSP | Corrected wrong unit: "SIunits.Position aux" to "Real"
Mechanics.MultiBody.Sensors.
AbsoluteSensor | Corrected wrong units: "SIunits.Acceleration angles" to "SIunits.Angle angles" and "SIunits.Velocity w_abs_0" to "SIunits.AngularVelocity w_abs_0"
RelativeSensor | Corrected wrong units: "SIunits.Acceleration angles" to "SIunits.Angle angles"
Distance | Corrected wrong units: "SIunits.Length L2" to "SIunits.Area L2" and SIunits.Length s_small2" to "SIunits.Area s_small2"
Mechanics.MultiBody.Visualizers.Advanced.
Shape | Changed "MultiBody.Types.Color color" to "Real color[3]", since "Types.Color" is "Integer color[3]" and there have been backward compatibility problems with models using "color" before it was changed to "Types.Color".
Mechanics.Rotational.Interfaces.
FrictionBase | Rewrote equations with new variables "unitAngularAcceleration" and "unitTorque" in order that the equations are correct with respect to units (previously, variable "s" can be both a torque and an angular acceleration and this lead to unit incompatibilities)
Mechanics.Rotational.
OneWayClutch LossyGear | Rewrote equations with new variables "unitAngularAcceleration" and "unitTorque" in order that the equations are correct with respect to units (previously, variable "s" can be both a torque and an angular acceleration and this lead to unit incompatibilities)
Mechanics.Translational.Interfaces.
FrictionBase | Rewrote equations with new variables "unitAngularAcceleration" and "unitTorque" in order that the equations are correct with respect to units (previously, variable "s" can be both a torque and an angular acceleration and this lead to unit incompatibilities)
Mechanics.Translational.
Speed | Corrected unit of v_ref from SIunits.Position to SIunits.Velocity
Media.Examples.Tests.Components.
PartialTestModel PartialTestModel2 | Corrected unit of h_start from "SIunits.Density" to "SIunits.SpecificEnthalpy"
Media.Examples.SolveOneNonlinearEquation.
Inverse_sh_T InverseIncompressible_sh_T Inverse_sh_TX | Rewrote equations so that dimensional (unit) analysis is correct"
Media.Incompressible.Examples.
TestGlycol | Rewrote equations so that dimensional (unit) analysis is correct"
Media.Interfaces.PartialTwoPhaseMedium.
dBubbleDensity_dPressure dDewDensity_dPressure | Changed wrong type of ddldp from "DerDensityByEnthalpy" to "DerDensityByPressure".
Media.Common.ThermoFluidSpecial.
ThermoProperties | Changed wrong units: "SIunits.DerEnergyByPressure dupT" to "Real dupT" and "SIunits.DerEnergyByDensity dudT" to "Real dudT"
ThermoProperties_ph | Changed wrong unit from "SIunits.DerEnergyByPressure duph" to "Real duph"
ThermoProperties_pT | Changed wrong unit from "SIunits.DerEnergyByPressure dupT" to "Real dupT"
ThermoProperties_dT | Changed wrong unit from "SIunits.DerEnergyByDensity dudT" to "Real dudT"
Media.IdealGases.Common.SingleGasNasa.
cp_Tlow_der | Changed wrong unit from "SIunits.Temperature dT" to "Real dT".
Media.Water.IF97_Utilities.BaseIF97.Basic.
p1_hs h2ab_s p2a_hs p2b_hs p2c_hs h3ab_p T3a_ph T3b_ph v3a_ph v3b_ph T3a_ps T3b_ps v3a_ps v3b_ps | Changed wrong unit of variables h/hstar, s, sstar from "SIunits.Enthalpy" to "SIunits.SpecificEnthalpy", "SIunits.SpecificEntropy", "SIunits.SpecificEntropy
Media.Water.IF97_Utilities.BaseIF97.Transport.
cond_dTp | Changed wrong unit of TREL, rhoREL, lambdaREL from "SIunits.Temperature", "SIunit.Density", "SIunits.ThermalConductivity" to "Real".
Media.Water.IF97_Utilities.BaseIF97.Inverses.
tofps5 tofpst5 | Changed wrong unit of pros from "SIunits.SpecificEnthalpy" to "SIunits.SpecificEntropy".
Media.Water.IF97_Utilities.
waterBaseProp_ph | Improved calculation at the limits of the validity.
Thermal.
FluidHeatFlow HeatTransfer | Corrected wrong unit "SIunits.Temperature" of difference temperature variables with "SIunits.TemperatureDifference".

Generated at 2018-08-07T07:53:32Z by OpenModelicaOpenModelica 1.13.0~dev-1195-g6d891ea