Version_3_0_1

Version 3.0.1 (Jan. 27, 2009)

Information

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

This Modelica package is provided under the Modelica License 2 and no longer under Modelica License 1.1. There are the following reasons why the Modelica Association changes from Modelica License 1.1 to this new license text (note, the text below is not a legal interpretation of the Modelica License 2. In case of a conflict, the language of the license shall prevail):

  1. The rights of licensor and licensee are much more clearly defined. For example:
    • The licensed work (Original Work) can be used in unmodified form in open source and commercial software (the licensee cannot change the license and the work must be provided without fees)
    • If a model component is copied out of a Modelica package under Modelica License 2 and is modified in order to adapt it to the needs of the modeler, then the result can be licensed under any license (including a commercial license).
    • It is practically not possible to change the license of a Modelica package under Modelica License 2 to another license, i.e., a licensee cannot change the license by adding material or changing classes, so the work must remain under Modelica License 2 (to be more precise, if the licensee makes modifications to the Original Work "which represents, as a whole, an original work of authorship", he/she can change the license to another license. However, for a Modelica package this would require a lot of changes which is usually unrealistic).
    • If an executable is constructed using a Modelica package under Modelica License 2, then this executable can be licensed under any license (including a commercial license).
    We hope that this compromise between open source contributors, commercial Modelica environments and Modelica users will motivate even more people to provide their Modelica packages freely under the Modelica License 2.

  2. There are several new provisions that shall make law suites against licensors and licensees more unlikely (so the small risk is further reduced).


The following new components have been added to existing libraries:

Electrical.Analog.Basic.
M_Transformer Transformer, with the possibility to choose the number of inductors. The inductances and the coupled inductances can be chosen arbitrarily.
Electrical.Analog.Lines.
M_OLine Segmented line model that enables the use of multiple lines, that means, the number of segments and the number of single lines can be chosen by the user. The model allows to investigate phenomena at multiple lines like mutual magnetic or capacitive influence.
Mechanics.Translational.Components.Examples.
Brake Demonstrates the usage of the translational brake component.
Media.Interfaces.PartialMedium.
ThermoStates Enumeration type for independent variables to identify the independent variables of the medium (pT, ph, phX, pTX, dTX).
An implementation of this enumeration is provided for every medium. (This is useful for fluid libraries that do not use the PartialMedium.BaseProperties model).
setSmoothState Function that returns the thermodynamic state which smoothly approximates: if x > 0 then state_a else state_b.
(This is useful for pressure drop components in fluid libraries where the upstream density and/or viscosity has to be computed and these properties should be smooth a zero mass flow rate)
An implementation of this function is provided for every medium.
Media.Common.
smoothStep Approximation of a general step, such that the characteristic is continuous and differentiable.
Media.UsersGuide.
Future Short description of goals and changes of upcoming release of Modelica.Media.
Media.Media.Air.MoistAir.
isentropicExponent Implemented Missing Function from interface.
isentropicEnthalpyApproximation Implemented function that approximates the isentropic enthalpy change. This is only correct as long as there is no liquid in the stream.


The following existing components have been changed (in a backward compatible way):

Mechanics.Rotational.Interfaces.
PartialFriction Improvement of friction model so that in certain situations the number of iterations is much smaller.
Mechanics.Translational.Components.Examples.
Friction Added a third variant, where friction is modelled with the SupportFriction component.
Mechanics.Translational.Components.
MassWithStopAndFriction Improvement of friction model so that in certain situations the number of iterations is much smaller.
Mechanics.Translational.Interfaces.
PartialFriction Improvement of friction model so that in certain situations the number of iterations is much smaller.
Media.Examples.
SimpleLiquidWater
IdealGasH20
WaterIF97
MixtureGases
MoistAir
Added equations to test the new setSmoothState(..) functions including the analytic derivatives of these functions.
Media.Interfaces.PartialLinearFluid.
setState_pTX
setState_phX
setState_psX
setState_dTX
Rewritten function in one statement so that it is usually inlined.
Media.Interfaces.PartialLinearFluid.
consistent use of reference_d instead of density(state Change was done to achieve consistency with analytic inverse functions.
Media.Air.MoistAir.
T_phX Interval of nonlinear solver to compute T from p,h,X changed from 200..6000 to 240 ..400 K.


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

Mechanics.MultiBody.Forces
WorldTorque Parameter "ResolveInFrame" was not propagated and therefore always the default (resolved in world frame) was used, independently of the setting of this parameter.
WorldForceAndTorque Parameter "ResolveInFrame" was not propagated and therefore always the default (resolved in world frame) was used, independently of the setting of this parameter.
Furthermore, internally WorldTorque was used instead of Internal.BasicWorldTorque and therefore the visualization of worldTorque was performed twice.
Mechanics.MultiBody.Sensors
AbsoluteSensor Velocity, acceleration and angular acceleration were computed by differentiating in the resolveInFrame frame. This has been corrected, by first transforming the vectors in to the world frame, differentiating here and then transforming into resolveInFrame. The parameter in the Advanced menu resolveInFrameAfterDifferentiation is then superfluous and was removed .
AbsoluteVelocity The velocity was computed by differentiating in the resolveInFrame frame. This has been corrected, by first transforming the velocity in to the world frame, differentiating here and then transforming into resolveInFrame
RelativeSensor If resolveInFrame <> frame_resolve and resolveInFrameAfterDifferentiation = frame_resolve, a translation error occurred, since frame_resolve was not enabled in this situation. This has been corrected.
RelativeVelocity The velocity has have been computed by differentiating in the resolveInFrame frame. This has been corrected, by first transforming the relative position in to frame_a, differentiating here and then transforming into resolveInFrame
TransformRelativeVector The transformation was wrong, since the parameters frame_r_in and frame_r_out have not been propagated to the submodel that performs the transformation. This has been corrected.
Mechanics.Translational.Components.
SupportFriction
Brake
The sign of the friction force was wrong and therefore friction accelerated instead of decelerated. This was fixed.
SupportFriction The component was only correct for fixed support. This was corrected.
Media.Interfaces.
PartialSimpleMedium
PartialSimpleIdealGasMedium
BaseProperties.p was not defined as preferred state and BaseProperties.T was always defined as preferred state. This has been fixed by Defining p,T as preferred state if parameter preferredMediumState = true. This error had the effect that mass m is selected as state instead of p and if default initialization is used then m=0 could give not the expected behavior. This means, simulation is not wrong but the numerics is not as good and if a model relies on default initial values, the result could be not as expected.


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.Math.
InverseBlockConstraint Changed annotation preserveAspectRatio from true to false.
Blocks.Sources.
RealExpression
IntegerExpression
BooleanExpression
Changed annotation preserveAspectRatio from true to false.
Electrical.Analog.Basic.
SaturatingInductor Replaced non-standard "arctan" by "atan" function.
Modelica.Electrical.Digital.
UsersGuide Removed empty documentation placeholders and added the missing release comment for version 1.0.7
Modelica.Mechanics.Translational.Components.
MassWithStopAndFriction Changed usage of reinit(..), in order that it appears only once for one variable according to the language specification (if a tool could simulate the model, there is no difference).
Media.Interfaces.PartialSimpleMedium
pressure
temperature
density
specificEnthalpy
Missing functions added.