# ReleaseNotes.Version_3_2_3

## Information

Version 3.2.3 is backward compatible to version 3.2.2, that is models developed with versions 3.0, 3.0.1, 3.1, 3.2, 3.2.1 or 3.2.2 will work without any changes also with version 3.2.3. This version is a "clean-up" with major emphasis on quality improvement and tool compatibility. The goal is that all Modelica tools will support this package and will interpret it in the same way. Short Overview:

- This version of the Modelica package is fully compatible to Modelica Specification 3.2 revision 2.
- About 606 issues (including pull requests) have been addressed for this release.
  - Version 3.2.3 with respect to 3.2.2:
    - About 557 issues (including pull requests) have been addressed for this release.
    - 94 component models and blocks, 36 example models and 9 functions are newly included.
    - The license has been changed to BSD 3-clause, visit: https://modelica.org/licenses/modelica-3-clause-bsd.
  - Version 3.2.3 Build 2 with respect to 3.2.3:
    About 5 issues (including pull requests) have been addressed for this maintenance release.
  - Version 3.2.3 Build 3 with respect to 3.2.3 Build 2:
    About 8 issues (including pull requests) have been addressed for this maintenance release.
  - Version 3.2.3 Build 4 with respect to 3.2.3 Build 3:
    About 36 issues (including pull requests) have been addressed for this maintenance release.

The exact difference between package Modelica version 3.2.3 and version 3.2.2 is summarized in a comparison table.

The following new libraries have been added:

Modelica.Magnetic.QuasiStatic.FluxTubes | This library provides models for the investigation of quasi static electromagnetic devices with lumped magnetic networks in a comparable way as Modelica.Magnetic.FluxTubes. (This library was developed by Christian Kral).
Modelica.Electrical.Machines.Examples.ControlledDCDrives | This library demonstrates the control of a permanent magnet dc machine: current control, speed control and position control along with the necessary components in sublibrary Utilities. (This library was developed by Anton Haumer).

The following new components have been added to existing libraries:

Modelica.Blocks.Interfaces.Adaptors
FlowToPotentialAdaptor PotentialToFlowAdaptor | Partial adaptors for generation of FMUs, optionally taking first and second derivative into account, for consistent components in various domains.
Modelica.Blocks.Math
Power | Computes the power of the input signal.
WrapAngle | Wraps the angle signal at the input to the interval ]-π, π] or [0, 2π[.
Pythagoras | This block determines the hypotenuse from the legs or one leg from the hypotenuse and the other leg.
TotalHarmonicDistortion | This block calculates THD of the signal at the input.
RealFFT | This block samples the input and calculates the FFT, writing the result to a mat file when the simulation terminates.
Modelica.Blocks.Routing
Multiplex | Multiplexer block for arbitrary number of input signals
DeMultiplex | Demultiplexer block for arbitrary number of output signals
Modelica.Blocks.Tables
CombiTable2Dv | Variant of CombiTable2D (table look-up in two dimensions) with vector inputs and vector output
Modelica.ComplexBlocks.Routing
Replicator ExtractSignal Extractor ComplexPassThrough | Complex implementations analogous to the real implementations.
Modelica.ComplexBlocks.ComplexMath
Bode | Determine variables of a Bode diagram.
Modelica.ComplexBlocks.Sources
RampPhasor | A source of a phasor with constant angle and ramped amplitude.
Modelica.Electrical.Analog.Basic
GeneralCurrentToVoltageAdaptor GeneralVoltageToCurrentAdaptor | Adaptors for the generation of FMUs, optionally taking first and second derivative into account.
Modelica.Electrical.Analog.Sensors
MultiSensor | Measures voltage, current and power simultaneously.
Modelica.Electrical.MultiPhase.Sensors
MultiSensor | Measures voltage, current and active power for each phase as well as total power simultaneously.
AronSensor | Measures active power for a threephase system by two singlephase power sensors in an Aron circuit.
ReactivePowerSensor | Measures reactive power for a threephase system.
Modelica.Electrical.Machines.Examples
SMEE_DOL | Electrically excited synchronous machine, starting direct on line via the damper cage, synchronised by increasing excitation voltage.
SMR_DOL | Synchronous reluctance machine, starting direct on line via the damper cage, synchronised when reaching synchronous speed.
Modelica.Electrical.Machines.Sensors
HallSensor | Simple model of a hall sensor, measuring the angle aligned with the orientation of phase 1.
Modelica.Electrical.PowerConverters.DCAC.Control
PWM SVPWM IntersectivePWM | Standard three-phase pwm algorithms: space vector and intersective.
Modelica.Electrical.PowerConverters.DCDC
ChopperStepUp | Step up chopper (boost converter) model.
Modelica.Electrical.QuasiStationary.SinglePhase.Sensors
MultiSensor | Measures voltage, current and apparent power simultaneously.
Modelica.Electrical.QuasiStationary.MultiPhase.Sensors
MultiSensor | Measures voltage, current and apparent power for m phases as well as total apparent power simultaneously.
AronSensor | Measures active power for a threephase system by two singlephase power sensors in an Aron circuit.
ReactivePowerSensor | Measures reactive power for a threephase system.
Modelica.Electrical.QuasiStationary.{SinglePhase, MultiPhase}.Sources
FrequencySweepVoltageSource FrquencySweepCurrentSource | Voltage source and current source with integrated frequency sweep.
Modelica.Mechanics.MultiBody
Visualizers.Rectangle | A planar rectangular surface.
Modelica.Mechanics.Rotational.Components
GeneralAngleToTorqueAdaptor GeneralTorqueToAngleAdaptor | Adaptors for the generation of FMUs, optionally taking first and second derivative into account. Note: These adaptors give the same results as: AngleToTorqueAdaptor TorqueToAngleAdaptor but extend from Modelica.Blocks.Interfaces.Adaptors like adaptors in other domains.
Modelica.Mechanics.Rotational.Sources
EddyCurrentTorque | Rotational eddy current brake.
Modelica.Mechanics.Translational.Components
GeneralForceToPositionAdaptor GeneralPositionToForceAdaptor | Adaptors for the generation of FMUs, optionally taking first and second derivative into account.
Modelica.Mechanics.Translational.Sources
EddyCurrentForce | Translational eddy current brake.
Modelica.Magnetic.FundamentalWave.Examples
| A lot of new test examples for fundamental wave machines.
Modelica.Magnetic.QuasiStatic.FundamentalWave.Sensors
RotorDisplacementAngle | Measures the rotor displacement angle of a quasi-static machine.
Modelica.Thermal.HeatTransfer.Components
GeneralHeatFlowToTemperatureAdaptor GeneralTemperatureToHeatFlowAdaptor | Adaptors for the generation of FMUs, optionally taking first derivative into account.
Modelica.Thermal.FluidHeatFlow.Examples
WaterPump TestOpenTank TwoTanks TestCylinder | New examples testing and demonstrating the new resp. enhanced components.
Modelica.Thermal.FluidHeatFlow.Components
Pipe | A pipe model with optional heatPort which replaces the isolatedPipe and the heatedPipe.
OpenTank | A simple model of an open tank.
Cylinder | A simple model of a piston/cylinder with translational flange.
OneWayValve | A simple one way valve model (comparable to an electrical ideal diode)
Modelica.Thermal.FluidHeatFlow.Media
Water_10degC Water_90degC Glycol20_20degC Glycol50_20degC MineralOil | Several new records defining media properties.
Modelica.Thermal.FluidHeatFlow.Interfaces.Partials
SinglePortLeft | Replaces the (now obsolete) partial model Ambient and is also used for Sources.AbsolutePressure.
SinglePortBottom | Same as SinglePortLeft but with the flowPort at the bottom; used for the new Components.OpenTank model.
Modelica.Constants
q | The elementary charge of an electron.
Modelica.Icons
FunctionsPackage | This icon indicates a package that contains functions.
RecordPackage | This icon indicates a package that contains records.

The following existing components have been marked as obsolete and will be removed in a future release:

Modelica.Blocks.Interfaces.Adaptors
SendReal SendBoolean SendInteger ReceiveReal ReceiveBoolean ReceiveInteger | Use expandable connectors instead.
Modelica.StateGraph.Temporary
SetRealParameter | Use parameter Real instead.
anyTrue | Use Modelica.Math.BooleanVectors.anyTrue instead.
allTrue | Use Modelica.Math.BooleanVectors.allTrue instead instead.
RadioButton | Use future model from Modelica.Blocks.Interaction instead.
NumericValue | Use Modelica.Blocks.Interaction.Show.RealValue instead.
IndicatorLamp | Use Modelica.Blocks.Interaction.Show.BooleanValue instead.
Modelica.Electrical.Digital.Converters
LogicToXO1 LogicToXO1Z | Use LogicToX01 or LogicToX01Z instead.
Modelica.Electrical.Machines
BasicMachines.Components.BasicTransformer | Use Interfaces.PartialBasicTransformer instead.
Modelica.Electrical.Spice3.Internal
BJT | Use BJT2 instead.
Bjt3.* | Use revised classes instead.
Modelica.Mechanics.MultiBody
Examples.Loops.Utilities.GasForce | Use Examples.Loops.Utilities.GasForce2 instead.
Sensors.TansformAbsoluteVector Sensors.TansformRelativeVector | Use Sensors.TransformAbsoluteVector or Sensors.TransformRelativeVector instead.
Visualizers.Ground | Use ground plane visualization of World or Visualizers.Rectangle instead.
Modelica.Fluid.Icons
VariantLibrary BaseClassLibrary | Use icons from Modelica.Icons instead.
Modelica.Media.Examples
Tests.Components.* | Use classes from Utilities instead.
TestOnly.* Tests.MediaTestModels.* | Use test models from ModelicaTest.Media instead.
Modelica.Thermal.FluidHeatFlow
Components.IsolatedPipe Components.HeatedPipe | Extend from the new pipe model with optional heatPort.
Interfaces.Partials.Ambient | Extends from SinglePortLeft.
Modelica.Math
baseIcon1 baseIcon2 | Use icons from Modelica.Math.Icons instead.
Modelica.Icons
Library Library2 GearIcon MotorIcon Info | Use (substitute) icons from Modelica.Icons, Modelica.Mechanics.Rotational.Icons or Modelica.Electrical.Machines.Icons instead.
Modelica.SIunits.Conversions.NonSIunits
FirstOrderTemperaturCoefficient SecondOrderTemperaturCoefficient | Use Modelica.SIunits.LinearTemperatureCoefficientResistance or Modelica.SIunits.QuadraticTemperatureCoefficientResistance instead.

The following existing components have been improved in a backward compatible way:

Modelica.Blocks.Continuous
Integrator LimIntegrator | Added optional reset and set value inputs.
LimPID | Added an optional feed-forward input.
Modelica.Blocks.Sources
CombiTimeTable | The time events were not considered at the interval boundaries in case of linear interpolation and non-replicated sample points. This has been generalized by introduction of the new parameter `timeEvents` with the default option to always generate time events at the interval boundaries, which might lead to slower, but more accurate simulations.
BooleanTable IntegerTable | Added options to set start time, shift time and extrapolation kind, especially to set periodic extrapolation.
Modelica.Blocks.Tables
CombiTable1D CombiTable1Ds CombiTable2D | Added option to set the extrapolation kind and to optionally print a warning in case of extrapolated table input.

The following existing components have been changed in a non-backward compatible way:

Modelica.Blocks
Interfaces.PartialNoise Noise.UniformNoise Noise.NormalNoise Noise.TruncatedNormalNoise Noise.BandLimitedWhiteNoise | As a side-effect of the corrected computation in Modelica.Math.Random.Utilities.impureRandomInteger the `localSeed` parameter is computed differently if `useAutomaticLocalSeed` is set to true.
Modelica.ComplexBlocks.Routing
ComplexPassThrough | Fixed the connector types from Real to Complex
Modelica.Mechanics.MultiBody
World | Added new parameter `animateGround` for optional ground plane visualization. Users that have copied the World model (of MSL 3.0, 3.0.1, 3.1, 3.2, 3.2.1, or 3.2.2) as an own World model and used it as inner world component, might have broken their models. Generally, for MSL models with sub-typing (due to inner/outer), it is strongly suggested to extend from this MSL model, instead of copying it.
Modelica.Media.Interfaces
PartialMedium | Added new constant `C_default` as default value for the trace substances of medium. Users that have created an own medium by inheritance from the PartialMedium package and already added the C_default constant, might have broken their models. Users that have copied the PartialMedium package (of MSL 3.0, 3.0.1, 3.1, 3.2, 3.2.1, or 3.2.2) as an own Medium package, might have broken their models. Generally, for MSL classes with sub-typing (due to a replaceable declaration), it is strongly suggested to extend from this MSL class, instead of copying it.

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

Modelica.Blocks.Math
Pythagoras | The case with negative `y2` was not correctly considered if `u1IsHypotenuse` is `true`. This has been corrected.
Modelica.Blocks.Sources
TimeTable | The derivative of the `TimeTable` output could no longer be determined. This has been corrected.
Modelica.Electrical.Semiconductors
Diode | Fixed unit error in current equations.
Modelica.Electrical.Spice3.Additionals
poly | The case with one coefficient and one variable was not correctly considered. This has been corrected.
Modelica.Fluid.Dissipation.PressureLoss.General
dp_volumeFlowRate_DP dp_volumeFlowRate_MFLOW | The mass flow rate was not correctly computed if the pressure drop is a linear function of the volume flow rate. This has been corrected.
Modelica.Media.Air.ReferenceAir
Air_Base.BaseProperties | The unit of the specific gas constant `R_s` was not correctly considered. This has been corrected.
molarMass | The computation of the function output `MM` was wrong. This has been corrected.
Modelica.Media.Air.MoistAir
molarMass | The computation of the function output `MM` was wrong. This has been corrected.
density_derX s_pTX s_pTX_der | The calculation was wrong. This has been corrected.
Modelica.Media.IdealGases.Common.Functions
thermalConductivityEstimate | The computation of the function output `lambda` was wrong for the modified Eucken correlation, i.e., if `method` is set to 2. This has been corrected.
s0_Tlow_der | The calculation was wrong. This has been corrected.
Modelica.Media.IdealGases.Common.SingleGasesData
CH2 CH3 CH3OOH C2CL2 C2CL4 C2CL6 C2HCL C2HCL3 CH2CO_ketene O_CH_2O HO_CO_2OH CH2BrminusCOOH C2H3CL CH2CLminusCOOH HO2 HO2minus OD ODminus | The coefficients for `blow`, `ahigh` and `bhigh` were wrong. This has been corrected.
Modelica.Media.IdealGases.Common.MixtureGasNasa
mixtureViscosityChung | The computation of the function output `etaMixture` was wrong. This has been corrected.
Modelica.Media.Incompressible.TableBased
BaseProperties | The unit of the gas constant `R` for table based media was not correctly considered. This has been corrected.
T_ph | The pressure negligence was not considered. This has been corrected.
Modelica.Media.R134a.R134a_ph
setState_pTX | Only applicable in one-phase regime: The Newton iteration for the calculation of the density may possibly converge to the wrong root. This has been improved.
setState_dTX setState_psX | The calculation was wrong in two-phase regime. This has been corrected.
Modelica.Math.Random.Utilities
impureRandomInteger | The function output `y` was not computed to yield a discrete uniform distribution for a minimum value `imin` of 1. This has been corrected.
Modelica.Utilities.System
getTime | The month and year was only correctly returned if the implementing source file (ModelicaInternal.c) was compiled for Windows OS. This has been corrected.

Generated at 2020-03-13T17:27:49Z by OpenModelica 1.16.0~dev-212-g88eb889