Modelica Standard Library 3.2.1 Released
The Modelica Standard Library 3.2.1 (Build 2) has been released on August 14, 2013. It is available from the GitHub release repository. Find below the release notes:
Version 3.2.1 is backward compatible to version 3.2, that is models developed with versions 3.0, 3.0.1, 3.1, or 3.2 will work without any changes also with version 3.2.1. 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.
(Especially, some operators used in package Modelica, such as "rooted", have been standardized in 3.2 rev. 2, as well as vendor specific annotations. Furthermore, ambiguous/unclear descriptions in the specification have been corrected/improved. One important improvement in packages Modelica and ModelicaTest is that the initialization has been fully defined in all example models, in order that all tools can produce the same result without relying on tool heuristics).
- About 400 tickets have been fixed for this release, and especially all compliance issues and all relevant defect issues.
- An open source implementation of the table blocks has been provided
by ITI GmbH. This work has been
paid by Modelica Association.
As a result, all parts of package Modelica are now available
in a free implementation. Additionally new features have been added to the table blocks
by this implementation:
- The table outputs can be differentiated once.
- Support of binary MATLAB MAT-file formats v6 and v7
- New option ConstantSegments for parameter Smoothness
- New option NoExtrapolation for parameter Extrapolation
- Support of tables provided in the C-Code (usertab.c, for realtime systems without file system)
- Icons have been re-designed by Wolfram Research to provide a more modern view .
- The Modelica.Media.Air.MoistAir media model has been improved so that it can be used in a temperature range of 190 ... 647 K (previously: 240 ... 400 K).
- New media models for air (ReferenceAir with a large operating range: 30 ... 2000 K, 0 ... 2000 MPa), for moist air (ReferenceMoistAir with a large operating range: 143.15 ... 2000 K, 0 .. 10 MPa; but 1-2 orders of magnitude slower as Modelica.Media.Air.MoistAir), and the refrigerant R134a are included in the Modelica.Media library in order to improve the modeling of air conditioning systems especially in aircrafts. These models have been developed by XRG Simulation GmbH as part of the Clean Sky JTI project (Project number: 296369; Theme: JTI-CS-2011-1-SGO-02-026). The partial financial support by the European Union for this development is highly appreciated.
- 60 models and blocks and 90 functions are newly included, for details see below.
This release of package Modelica, and the accompanying ModelicaTest, has been tested with the following tools (the tools are listed alphabetically. At the time of the test, some of the tools might not yet supported the complete Modelica package):
- Dymola 2014 (Windows 64 bit)
Regression test results with regards to Modelica 3.2 are available here.
- Dymola 2014 FD01 development with pedantic flag (Windows 64 bit)
("pedantic flag" means that strict Modelica compliance is checked. Dymola 2014 fails with pedantic flag, e.g., because the annotation DocumentationClass was not standardized when this version of Dymola was released).
- Maplesim Parser
- MWorks 3.2
- OpenModelica 1.9.0 Beta4+dev (Windows, Linux, Mac)
Test reports for the daily builds are available here. Test reports of comparisons with Dymola result files are available here.
- SimulationX 3.6
The following Modelica packages have been tested that they work together with this release of package Modelica (alphabetical list):
- Buildings 1.4 (LBNL)
- FlexibleBodies 2.0.1 (DLR)
- Modelica_Synchronous 0.91 (DLR)
- Optimization 2.2 (DLR)
- PowerTrain 2.2.0 (DLR)
The new open source tables have been tested by T. Beutlich (ITI):
- 193 Modelica test models for compatibility check with previous table implementation (available in ModelicaTest.Tables). Performed tests with SimulationX 3.5.707 (32 bit) and Dymola 2013 FD01 (32 bit). Furthermore a basic check was performed in OpenModelica to make sure it works in general.
- The two C source files (Modelica/Resources/C-Sources/ModelicaStandardTables.c; ModelicaMatIO.c)
have been tested to successfully compile for the following platforms
Windows 32 and 64 bit
Linux 32 and 64 bit
dSPACE DS1005 (no file system)
dSPACE DS1006 (no file system)
dSPACE DS1401 (no file system)
- The following compilers/environments have been used for the platform evaluation
Microsoft compilers (VC6 and ≥ VS2005 (Win32 and x64))
MinGW (GCC 4.4.0 and GCC 4.7.2)
Cygwin (GCC 4.3.0)
Open WATCOM 1.3
Borland C/C++ (free command line tools) 5.5
GCC 4.x on Linux
GCC 3.3.5 (for DS1006)
Microtec PowerPC Compiler 3.7 (for DS1005)
About 400 trac tickets have been fixed for this release. An overview is given here. Clicking on a ticket gives all information about it.
The following new components have been added to existing libraries:
|RSFlipFlop||Basic RS flip flop|
|MinMax||Output the minimum and the maximum element of the input vector|
|LinearDependency||Output a linear combination of the two inputs|
|SlewRateLimiter||Limit the slew rate of a signal|
|DLATRAM||Level sensitive Random Access Memory|
|DLATROM||Level sensitive Read Only Memory|
|MUX2x1||A two inputs MULTIPLEXER for multiple value logic (2 data inputs, 1 select input, 1 output)|
|AIMC_Initialize||Steady-State Initialization examnple of AsynchronousInductionMachineSquirrelCage|
|SMPM_VoltageSource||PermanentMagnetSynchronousInductionMachine example fed by FOC|
|TestSensors||Example for multiphase quasiRMS sensors: A sinusoidal source feeds a load consisting of resistor and inductor|
|VoltageQuasiRMSSensor||Continuous quasi voltage RMS sensor for multi phase system|
|CurrentQuasiRMSSensor||Continuous quasi current RMS sensor for multi phase system|
|QuasiRMS||Determine quasi RMS value of a multi-phase system|
|quasiRMS||Calculate continuous quasi RMS value of input|
|activePower||Calculate active power of voltage and current input|
|symmetricOrientation||Orientations of the resulting fundamental wave field phasors|
|Spice3 examples and benchmarks from the SPICE3 Version e3 Users's Manual|
|K_CoupledInductors||Inductive coupling via coupling factor K|
|N/P channel MOSFET transistor with fixed level 2|
|N/P-channel junction field-effect transistor|
|Semiconductor capacitor model|
|Multi-phase machine examples|
|Ideal mass fraction sensors|
|R134a||R134a (Tetrafluoroethane) medium model in the range (0.0039 bar .. 700 bar, 169.85 K .. 455 K)|
|ReferenceAir||Detailed dry air model with a large operating range (130 ... 2000 K, 0 ... 2000 MPa) based on Helmholtz equations of state|
|ReferenceMoistAir||Detailed moist air model (143.15 ... 2000 K)|
|MoistAir||Temperature range of functions of MoistAir medium enlarged from 240 - 400 K to 190 - 647 K.|
|Functions returning additional properties of the moist air medium model|
|ThermalResistor||Lumped thermal element transporting heat without storing it (dT = R*Q_flow)|
|ConvectiveResistor||Lumped thermal element for heat convection (dT = Rc*Q_flow)|
|Demonstrates the use of the new Joints.Constraints joints by comparing them with the standard joints.|
|Joint elements formulated as kinematic constraints. These elements are designed to break kinematic loops and result usually in numerically more efficient and reliable loop handling as the (standard) automatic handling.|
|MultiSensor||Ideal sensor to measure the torque and power between two flanges and the absolute angular velocity|
|MultiSensor||Ideal sensor to measure the absolute velocity, force and power between two flanges|
|isPowerOf2||Determine if the integer input is a power of 2|
|normalizedWithAssert||Return normalized vector such that length = 1 (trigger an assert for zero vector)|
|countTrue||Returns the number of true entries in a Boolean vector|
|enumerate||Enumerates the true entries in a Boolean vector (0 for false entries)|
|index||Returns the indices of the true entries of a Boolean vector|
|loadResource||Return the absolute path name of a URI or local file name|
|New SI unit types|