Version_4_0_0

Version 4.0.0 (June 4, 2020)

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Version 4.0.0 is not backward compatible to previous versions. A tested conversion script is provided to transform models and libraries of previous versions 3.x.y to the new version. Short Overview:

  • About 649 issues (including 432 pull requests) have been addressed for this release.
  • This version is based on the recent Modelica language standard version 3.4.
  • The library version (i.e., "4.0.0") follows semantic versioning using the convention MAJOR.MINOR.BUGFIX (see Version Management for details) and was decoupled from the version of the utilized version of the Modelica language standard.
  • Obsolete classes of previous versions 3.x.y have been replaced.
  • Obsolete classes, that could not be automatically converted to alternative implementations, have been moved to library ObsoleteModelica4.
  • Major emphasis was put on improvements of the overall quality with respect to class naming and package structuring, conventions and style guide-lines, icons, documentation style and example models. The following sublibraries have been renamed.
    1. Modelica.SIunits → Modelica.Units.{SI, NonSI, Conversions}
    2. Modelica.Electrical.MultiPhase → Modelica.Electrical.Polyphase
    3. Modelica.Electrical.QuasiStationary → Modelica.Electrical.QuasiStatic
  • The licenses of the utilized open-source third-party software components as well as the BSD 3-clause license of the Modelica Standard Library itself are available as separate resources.

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

The following Modelica packages have been tested that they work together with this release of package Modelica (alphabetical list). Hereby simulation results of the listed packages have been produced with package Modelica version 3.2.3 and compared with the simulation results produced with version 4.0.0 Beta.1. The tests have been performed with Dymola 2020/2020x/2021:

Library Version Library provider
Buildings  > 6.0.0 LBNL
BrushlessDCDrives 1.1.1 Dassault Systèmes
Clara 1.5.0 XRG Simulation GmbH and TLK-Thermo GmbH
ClaraPlus 1.3.0 XRG Simulation GmbH and TLK-Thermo GmbH
DriveControl 4.0.0 Anton Haumer
DymolaModels 1.1 Dassault Systèmes
EDrives 1.0.1 Anton Haumer and Christian Kral
ElectricalMachines 0.9.1 Anton Haumer
ElectricPowerSystems 1.3.1 Dassault Systèmes
ElectrifiedPowertrains 1.3.2 Dassault Systèmes
ElectroMechanicalDrives 2.2.0 Christian Kral
EMOTH 1.4.1 Anton Haumer
HanserModelica 1.1.0 Christian Kral
IBPSA  > 3.0.0 IBPSA Project 1
KeywordIO 0.9.0 Christian Kral
Modelica_DeviceDrivers 1.8.1 DLR, ESI ITI, and Linköping University (PELAB)
Optimization 2.2.4 DLR
PhotoVoltaics 1.6.0 Christian Kral
PlanarMechanics 1.4.1 Dirk Zimmer
Testing 1.3 Dassault Systèmes
ThermalSystems 1.6.0 TLK-Thermo GmbH
TIL 3.9.0 TLK-Thermo GmbH
TILMedia 3.9.0 TLK-Thermo GmbH
TSMedia 1.6.0 TLK-Thermo GmbH
VehicleInterfaces 1.2.5 Modelica Association
WindPowerPlants 1.2.0 Christian Kral


The following new libraries have been added:

Modelica.Clocked This library can be used to precisely define and synchronize sampled data systems with different sampling rates.
The library previously was available as separate package Modelica_Synchronous. (This library was developed by DLR in close cooperation with Dassault Systèmes Lund.)
Modelica.Electrical.Batteries This library offers simple battery models.
(This library was developed by Anton Haumer and Christian Kral.)


The following new components have been added to existing libraries:

Modelica.Blocks.Sources
SineVariableFrequencyAndAmplitude
CosineVariableFrequencyAndAmplitude
Added signal sources with variable amplitude and frequency; sine and cosine waveforms are provided.
Sinc Added signal source of amplitude*sin(2*π*f*t)/(2*π*f*t).
Modelica.Electrical.Analog.Sources
SineVoltageVariableFrequencyAndAmplitude
CosineVoltageVariableFrequencyAndAmplitude
SineCurrentVariableFrequencyAndAmplitude
CosineCurrentVariableFrequencyAndAmplitude
Added voltage and current sources with variable amplitude and frequency; sine and cosine waveforms are provided.
Modelica.Electrical.Machines.Sensors
SinCosResolver Added resolver with two sine and two cosine tracks to be used in drive control applications.
Modelica.Electrical.Machines.Utilities
SwitchYDwithArc Added wye delta switch with arc model and time delay between the two switching events.
Modelica.Electrical.PowerConverters
ACAC Added single-phase and polyphase triac models (AC/AC converters).
Modelica.Magnetic.FluxTubes.Shapes.FixedShape
HollowCylinderCircumferentialFlux
Toroid
Added circumferential flux models of hollow cylinder and toroid with circular cross section.
Magnetic.QuasiStatic.FluxTubes.Shapes.FixedShape
HollowCylinderCircumferentialFlux
Toroid
Added circumferential flux models of hollow cylinder and toroid with circular cross section.
Modelica.Mechanics.MultiBody.Visualizers.Advanced
Vector Added 3-dimensional animation for visualization of vector quantities (force, torque, etc.)
Modelica.Mechanics.Translational.Components
RollingResistance Added resistance of a rolling wheel incorporating the inclination and rolling resistance coefficient.
Vehicle Added simple vehicle model considering mass and inertia, drag and rolling resistance, inclination resistance.
Modelica.Math
BooleanVectors.andTrue Similar to allTrue, but return true on empty input vector.
Matrices.LAPACK.dgeqp3 Compute the QR factorization with column pivoting of square or rectangular matrix.
Random.Utilities.automaticLocalSeed Create an automatic local seed from the instance name.


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

Modelica.Blocks.Sources
CombiTimeTable Added second derivative and modified Akima interpolation.
Modelica.Blocks.Tables
CombiTable1Ds
CombiTable1Dv
Added second derivatives and modified Akima interpolation.
CombiTable2Ds
CombiTable2Dv
Added second derivatives.
Modelica.Electrical.Analog.Basic
Gyrator Serves as generalized gyrator model as IdealGyrator was removed.
Modelica.Electrical.Analog.Ideal
IdealizedOpAmpLimited Added homotopy to operational amplifier.
Modelica.Electrical.Semiconductors
NPN
PNP
Added optional substrate connector.


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

Modelica.Blocks
Nonlinear.Limiter
Nonlinear.VariableLimiter
The superfluous parameter limitsAtInit has been removed.
Continuous.PID The initialization option initType = InitPID.DoNotUse_InitialIntegratorState to only initialize the integrator state has been removed. This option has been converted to both initialize the integrator state and the derivative state, i.e., initType = Init.InitialState.
Continuous.LimPID The superfluous parameter limitsAtInit has been removed.
The initialization option initType = InitPID.DoNotUse_InitialIntegratorState to only initialize the integrator state has been removed. This option has been converted to both initialize the integrator state and the derivative state, i.e., initType = Init.InitialState.
Nonlinear.DeadZone The superfluous parameter deadZoneAtInit has been removed.
Interfaces.PartialNoise
Noise.UniformNoise
Noise.NormalNoise
Noise.TruncatedNormalNoise
Noise.BandLimitedWhiteNoise
As a side-effect of the updated computation in Modelica.Math.Random.Utilities.automaticLocalSeed the localSeed parameter is computed differently if useAutomaticLocalSeed is set to true.
Types.InitPID The enumeration type has been converted to Types.Init with exception of the alternative InitPID.DoNotUse_InitialIntegratorState, that was converted to Init.InitialState leading to a different initialization behaviour.
Modelica.Electrical.Machines.Utilities
SwitchYD The IdealCommutingSwitch is replaced by an IdealOpeningSwitch and an IdealClosingSwitch to allow a time delay between the two switching actions.
Modelica.Electrical.Spice3
Internal.MOS2
Semiconductors.M_NMOS2
Semiconductors.M_PMOS2
The final parameter vp has been removed.
The obsolete variables cc_obsolete, icqmGB, icqmGS, icqmGD, MOScapgd, MOScapgs, MOScapgb, qm and vDS have been removed.
Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities
SwitchYD The IdealCommutingSwitch is replaced by an IdealOpeningSwitch and an IdealClosingSwitch to allow a time delay between the two switching actions.
Modelica.Mechanics.MultiBody.Forces
WorldForce The parameters diameter and N_to_m have been removed.
WorldTorque The parameters diameter and Nm_to_m have been removed.
WorldForceAndTorque The parameters forceDiameter, torqueDiameter, N_to_m, and Nm_to_m have been removed.
Force The parameter N_to_m has been removed.
Torque The parameter Nm_to_m has been removed.
ForceAndTorque The parameters N_to_m and Nm_to_m have been removed.
Modelica.Mechanics.MultiBody.Joints
Prismatic The superfluous constant s_offset has been removed.
Revolute The superfluous constant phi_offset has been removed.
FreeMotion
FreeMotionScalarInit
The parameter arrowDiameter has been removed.
Modelica.Mechanics.MultiBody.Parts
Body The superfluous parameter z_a_start has been removed.
Modelica.Mechanics.MultiBody.Sensors
AbsoluteSensor
RelativeSensor
Distance
The parameter arrowDiameter has been removed.
CutForce The parameters forceDiameter and N_to_m have been removed.
CutForce The parameters torqueDiameter and Nm_to_m have been removed.
CutForceAndTorque The parameters forceDiameter, torqueDiameter, N_to_m, and Nm_to_m have been removed.
Modelica.Mechanics.MultiBody.Visualizers
Advanced.Arrow
Advanced.DoubleArrow
FixedArrow
SignalArrow
The parameter diameter has been removed.
Modelica.Fluid.Machines
PartialPump The superfluous parameter show_NPSHa has been removed.
Modelica.Thermal.HeatTransfer
Fahrenheit.FromKelvin
Rankine.FromKelvin
Rankine.ToKelvin
The superfluous parameter n has been removed.


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.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.MoistAir
density_derX
s_pTX
s_pTX_der
The calculation was wrong. 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.
Modelica.Media.IdealGases.Common.Functions
s0_Tlow_der The calculation was wrong. This has been corrected.
Modelica.Media.IdealGases.Common.MixtureGasNasa
T_hX The function inputs exclEnthForm, refChoice and h_off were not considered. This has been corrected.
Modelica.Media.Incompressible.TableBased
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.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.