This section summarizes the changes that have been performed on the Modelica standard library. Furthermore, it is explained here how the versions are managed with the subversion management systems. This is especially important for maintenance (bug-fix) releases where the main version number is not changed.
Name | Description |
---|---|
VersionManagement | Version Management |
Version_3_1_BugFixes | Version 3.1 with bug fixes |
Version_3_1 | Version 3.1 (August 14, 2009) |
Version_3_0_1 | Version 3.0.1 (Jan.27, 2009) |
Version_3_0 | Version 3.0 (Feb., 2008) |
Version_2_2_2 | Version 2.2.2 (Aug. 31, 2007) |
Version_2_2_1 | Version 2.2.1 (March 24, 2006) |
Version_2_2 | Version 2.2 (April 6, 2005) |
Version_2_1 | Version 2.1 (Nov. 11, 2004) |
Version_1_6 | Version 1.6 (June 21, 2004) |
Version_1_5 | Version 1.5 (Dec. 16, 2002) |
Version_1_4 | Version 1.4 (June 28, 2001) |
Maintenance of the Modelica Standard Library is performed with three branches on the subversion server of the Modelica Association (https://svn.modelica.org/projects/Modelica):
Example: "/tags/v3.0.1/Modelica"
This branch contains the released Modelica versions (e.g., version 3.0.1), where all available test cases and compatibility checks with other Modelica libraries have been performed on the respective release. This version is usually shipped with a Modelica modeling and simulation environment and utilized by a Modelica user.
Example: "/trunk/Modelica"
This branch contains the actual development version, i.e., all bug fixes and new features based on the last Modelica release. New features should have been tested before including them. However, the exhaustive tests for a new version are (usually) not performed. This version is usually only be used by the developers of the Modelica Standard Library and is not utilized by Modelica users.
Example: "/branches/maintenance/3.0.1/Modelica"
This branch contains the released Modelica version (e.g., version 3.0.1) where all bug fixes since this release date are included (up to a new release, when becoming available; i.e., after a new release, the previous maintenance versions are no longer changed). These bug fixes might be not yet tested with all test cases or with other Modelica libraries. The goal is that a vendor may take this version at any time for a new release of its software, in order to incorporate the latest bug fixes, without changing the version number of the Modelica Standard Library.
Incorporation of bug fixes (subversion "commit") shall be performed in the following way:
annotation(version = "3.1", versionDate = "2009-06-22", versionBuild = 3, dateModified = "2009-06-21 08:13:18Z", revisionId = "$Id: Modelica_UsersGuide_ReleaseNotes.html,v 1.1.1.2 2010/03/01 11:00:03 Dag Exp $").
A valid "commit" to the maintenance branch may contain one or more of the following changes.
In this section bug fixes are summarized that have been incorporated for version 3.1-build 6:
An "unassignedMessage" annotation was added to the electrical connector variables (Modelica.Electrical.Analog.Interfaces.*Pin). If appropriate support in the Modelica tool is available, then missing ground objects (Electrical.Analog.Basic.Ground) lead to a meaningful error message.
In this section bug fixes are summarized that have been incorporated for release of version 3.1-build 5.
The following critical errors have been fixed (i.e. errors
that can lead to wrong simulation results):
Electrical.Analog.SemiConductors. | |
NPN PNP HeatingPNP |
LossPower was wrongly calculated. This was corrected (changeset:2925, changeset:3115). |
Fluid. | |
Pipes | ticket:215:
|
Fluid.Examples | |
HeatExchanger | Wrong heat transfer modifier "perimeter" removed. New parameter use_heatTransfer added, in order that heat transfer can be switched on (was previously always switched off) |
Media.Interfaces.PartialMedium. | |
IsobaricExpansionCoefficient | Changed minimum from 1e-8 to 0. |
Media.Interfaces.PartialLinearFluid. | |
setState_psX isentropicEnthalpy |
Wrong equations corrected. |
density_derX | Missing function added. |
Media.Interfaces.PartialSimpleMedium. | |
specificInternalEnergy specificEntropy specificGibbsEnergy specificHelmholtzEnergy isentropicEnthalpy isobaricExpansionCoefficient isothermalCompressibility density_derp_T density_derT_p density_derX molarMass |
Missing functions added. |
Media.Interfaces.PartialSimpleIdealGasMedium. | |
specificInternalEnergy | wrong equation corrected |
isentropicEnthalpy isobaricExpansionCoefficient isothermalCompressibility density_derp_T density_derT_p density_derX molarMass |
Missing functions added. |
Media.CompressibleLiquids.LinearColdWater. | |
dynamicViscosity thermalConductivity |
Wrong values corrected (computed from IF97 with reference values) |
Media.CompressibleLiquids.LinearWater_pT_Ambient. | |
dynamicViscosity thermalConductivity |
Missing functions added |
Media.IdealGases.Common.SingleGasNasa. | |
density_derX | Wrong equation corrected. |
Media.Water.IF97_Utilities. | |
waterBaseProp_dT | Fixed dpT-calculation (ticket: 224). |
StateGraph.Examples.Utilities. | |
TankController | A graphical annotation was wrong leading to a syntax error in some Modelica tools. This has been corrected (ticket:206, changeset:2926). |
Additionally, the following (backward compatible and uncritical) bug fixes have been applied:
Version 3.1 is backward compatible to version 3.0 and 3.0.1, i.e., models developed with version 3.0 or 3.0.1 will work without any changes also with version 3.1.
Version 3.1 is slightly based on the Modelica Specification 3.1. It uses the following new language elements (compared to Modelica Specification 3.0):
The following new libraries have been added:
Modelica.Fluid | Components to model 1-dim. thermo-fluid flow in networks of vessels, pipes, fluid machines, valves and fittings. All media from the Modelica.Media library can be used (so incompressible or compressible, single or multiple substance, one or two phase medium). The library is using the stream-concept from Modelica Specification 3.1. |
Modelica.Magnetic.FluxTubes | Components to model magnetic devices based on the magnetic flux tubes concepts. Especially to model electro-magnetic actuators. Nonlinear shape, force, leackage, and Material models. Material data for steel, electric sheet, pure iron, Cobalt iron, Nickel iron, NdFeB, Sm2Co17, and more. |
ModelicaServices | New top level package that shall contain functions and models to be used in the Modelica Standard Library that requires a tool specific implementation. ModelicaServices is then used in the Modelica package. In this first version, the 3-dim. animation with model Modelica.Mechanics.MultiBody.Visualizers.Advanced.Shape was moved to ModelicaServices. Tool vendors can now provide their own implementation of the animation. |
The following new components have been added
to existing libraries:
Modelica. | |
versionBuild versionDate dateModified revisionId |
New annotations from Modelica 3.1 for version handling added. |
Modelica.UsersGuide.ReleaseNotes. | |
VersionManagement | Copied from info layer of previous ReleaseNotes (to make it more visible) and adapted it to the new possibilities in Modelica Specification 3.1. |
Modelica.Blocks.Math. | |
RectangularToPolar PolarToRectangular |
New blocks to convert between rectangular and polar form of space phasors. |
Modelica.Blocks.Routing. | |
Replicator | New block to replicate an input signal to many output signals. |
Modelica.Electrical.Analog.Examples. | |
AmplifierWithOpAmpDetailed HeatingResistor CompareTransformers OvervoltageProtection ControlledSwitchWithArc SwitchWithArc ThyristorBehaviourTest |
New examples to demonstrate the usage of new components. |
Modelica.Electrical.Analog.Basic. | |
OpAmpDetailed TranslationalEMF M_Transformer |
New detailed model of an operational amplifier. New electromotoric force from electrical energy into mechanical translattional energy. Generic transformer with choosable number of inductors |
Modelica.Electrical.Analog.Ideal. | |
OpenerWithArc CloserWithArc ControlledOpenerWithArc ControlledCloserWithArc |
New switches with simple arc model. |
Modelica.Electrical.Analog.Interfaces. | |
ConditionalHeatPort | New partial model to add a conditional HeatPort to an electrical component. |
Modelica.Electrical.Analog.Lines. | |
M_Oline | New multiple line model, both the number of lines and the number of segmants choosable. |
Modelica.Electrical.Analog.Semiconductors. | |
ZDiode Thyristor |
Zener Diode with 3 working areas and simple thyristor model. |
Modelica.Electrical.MultiPhase.Ideal. | |
OpenerWithArc CloserWithArc |
New switches with simple arc model (as in Modelica.Electrical.Analog.Ideal. |
Modelica.Mechanics.MultiBody.Examples.Elementary. | |
RollingWheel RollingWheelSetDriving RollingWheelSetPulling |
New examples to demonstrate the usage of new components. |
Modelica.Mechanics.MultiBody.Joints. | |
RollingWheel RollingWheelSet |
New joints (no mass, no inertia) that describe an ideal rolling wheel and a ideal rolling wheel set consisting of two wheels rolling on the plane z=0. |
Modelica.Mechanics.MultiBody.Parts. | |
RollingWheel RollingWheelSet |
New ideal rolling wheel and ideal rolling wheel set consisting of two wheels rolling on the plane z=0. |
Modelica.Mechanics.MultiBody.Visualizers. | |
Ground | New model to visualize the ground (box at z=0). |
Modelica.Mechanics.Rotational.Interfaces. | |
PartialElementaryOneFlangeAndSupport2 PartialElementaryTwoFlangesAndSupport2 |
New partial model with one and two flanges and the support flange with a much simpler implementation as previously. |
Modelica.Mechanics.Translational.Interfaces. | |
PartialElementaryOneFlangeAndSupport2 PartialElementaryTwoFlangesAndSupport2 |
New partial model with one and two flanges and the support flange with a much simpler implementation as previously. |
Modelica.Media.IdealGases.Common.MixtureGasNasa. | |
setSmoothState | Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b. |
Modelica.Utilities.Internal. | |
PartialModelicaServices | New package containing the interface description of models and functions that require a tool dependent implementation (currently only "Shape" for 3-dim. animation, but will be extended in the future) |
Modelica.Thermal.HeatTransfer.Components. | |
ThermalCollector | New auxiliary model to collect the heat flows from m heatports to a single heatport; useful for multiphase resistors (with heatports) as a junction of the m heatports. |
Modelica.Icons. | |
VariantLibrary BaseClassLibrary ObsoleteModel |
New icons (VariantLibrary and BaseClassLibrary have been moved from Modelica_Fluid.Icons to this place). |
Modelica.SIunits. | |
ElectricalForceConstant | New type added (#190). |
Modelica.SIunits.Conversions. | |
from_Hz to_Hz |
New functions to convert between frequency [Hz] and angular velocity [1/s]. (#156) |
The following existing components
have been improved in a
backward compatible way:
Modelica. | |
Blocks Mechanics StateGraph |
Provided missing parameter values for examples (these parameters had only start values) |
Modelica.Electrical.Analog.Basic | |
Resistor, Conductor, VariableResistor, VariableConductor | Conditional heatport added for coupling to thermal network. |
Modelica.Electrical.Analog.Ideal | |
Thyristors, Switches, IdealDiode | Conditional heatport added for coupling to thermal network. |
Modelica.Electrical.Analog.Semiconductors | |
Diode, ZDiode, PMOS, NMOS, NPN, PNP | Conditional heatport added for coupling to thermal network. |
Modelica.Electrical.MultiPhase.Basic | |
Resistor, Conductor, VariableResistor, VariableConductor | Conditional heatport added for coupling to thermal network (as in Modelica.Electrical.Analog). |
Modelica.Electrical.MultiPhase.Ideal | |
Thyristors, Switches, IdealDiode | Conditional heatport added for coupling to thermal network (as in Modelica.Electrical.Analog). |
Modelica.Mechanics.MultiBody.Visualizers.Advanced. | |
Shape | New implementation by inheriting from ModelicaServices. This allows a tool vendor to provide its own implementation of Shape. |
Modelica.StateGraph. | |
Examples | Introduced "StateGraphRoot" on the top level of all example models. |
Modelica.StateGraph.Interfaces. | |
StateGraphRoot PartialCompositeStep CompositeStepState |
Replaced the wrong Modelica code "flow output Real xxx" by "Real dummy; flow Real xxx;". As a side effect, several "blocks" had to be changed to "models". |
PartialStep | Changed model by packing the protected outer connecter in to a model. Otherwise, there might be differences in the sign of the flow variable in Modelica 3.0 and 3.1. |
Modelica.Utilities.Examples. | |
expression | Changed local variable "operator" to "opString" since "operator" is a reserved keyword in Modelica 3.1 |
The following critical errors have been fixed (i.e. errors
that can lead to wrong simulation results):
Mechanics.Translational.Components | |
ElastoGap | The ElastoGap component was changed in a non backwards
compatible way. This was fixed in the versionBuild=3 version of Modelica Standard Library 3.1
(see also Ticket #203). |
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):
Modelica. | |
Many models | Removed wrong usages of annotations fillColor and fillPattern in text annotations (#155, #185). |
Modelica.Electrical.Machines | |
All machine models | The conditional heatports of the instantiated resistors (which are new in Modelica.Electrical.Analog and Modelica.Electrical.MultiPhase) are finally switched off until a thermal connector design for machines is implemented. |
Modelica.Media.Air.MoistAir | |
saturationPressureLiquid sublimationPressureIce saturationPressure |
For these three functions, an error in the derivative annotation was corrected. However, the effect of
this bug was minor, as a Modelica tool was allowed to compute derivatives automatically via
the smoothOrder annotation. |
Modelica.Math.Matrices. | |
eigenValues | Wrong documentation corrected (#162) |
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):
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 menue 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 occured, 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. |
Version 3.0 is not backward compatible to previous versions. A conversion script is provided to transform models and libraries of previous versions to the new version. Therefore, conversion should be automatic.
The following changes are present for the whole library:
parameter Modelica.SIunits.Resistance R=1;Physical parameters, such as a resistance, mass, gear ratio, do not have a meaningful default and in nearly all cases, the user of the corresponding component has to provide values for such parameters. If the user forgets this, a tool cannot provide diagnostics, since a default value is present in the library (such as 1 Ohm for the resistance). In most cases the model will simulate but will give wrong results due to wrong parameter values. To improve this situation, all physical parameter declarations in the Modelica Standard Library have been changed, so that the previous default becomes a start value. For example, the above declaration is changed to:
parameter Modelica.SIunits.Resistance R(start=1);This is a backward compatible change and completely equivalent from the perspective of the Modelica language. It is, however, advised that tools will print a warning or optionally an error message, if the start value of a parameter is defined, but no value for the parameter is given via a modification. Furthermore, it is expected, that the input field of a parameter menu is empty, if no default equation is defined, but only a start value. This shows clearly to the modeler that a value has to be provided.
The following new components have been added
to existing libraries (note, the names in paranthesis
are the new sublibrary names that are introduced in version 3.0):
Blocks.Examples. | |
InverseModel | Demonstrates the construction of an inverse model. |
Blocks.Math. | |
InverseBlockConstraints | Construct inverse model by requiring that two inputs and two outputs are identical (replaces the previously, unbalanced, TwoInputs and TwoOutputs blocks). |
Electrical.Machines.Utilities | |
TransformerData | A record that calculates required impedances (parameters) from nominal data of transformers. |
Mechanics.MultiBody.Examples.Rotational3DEffects | |
GyroscopicEffects ActuatedDrive MovingActuatedDrive GearConstraint |
New examples to demonstrate the usage of the Rotational library in combination with multi-body components. |
Mechanics.MultiBody.Sensors | |
AbsolutePosition AbsoluteVelocity AbsoluteAngles AbsoluteAngularVelocity RelativePosition RelativeVelocity RelativeAngles RelativeAngularVelocity |
New sensors to measure one vector. |
TransformAbsoluteVector TransformRelativeVector |
Transform absolute and/or relative vector into another frame. |
Mechanics.Rotational.(Components) | |
Disc | Right flange is rotated by a fixed angle with respect to left flange |
IdealRollingWheel | Simple 1-dim. model of an ideal rolling wheel without inertia |
Mechanics.Translational.Sensors | |
RelPositionSensor RelSpeedSensor RelAccSensor PowerSensor |
Relative position sensor, i.e. distance between two flanges Relative speed sensor Relative acceleration sensor Ideal power sensor |
Mechanics.Translational(.Components) | |
SupportFriction Brake InitializeFlange |
Model of friction due to support Model of a brake, base on Coulomb friction Initializes a flange with pre-defined postion, speed and acceleration . |
Mechanics.Translational(.Sources) | |
Force2 LinearSpeedDependentForce QuadraticSpeedDependentForce ConstantForce ConstantSpeed ForceStep |
Force acting on 2 flanges Force linearly dependent on flange speed Force quadratic dependent on flange speed Constant force source Constant speed source Force step |
The following existing components
have been changed in a
non-backward compatible way
(the conversion script transforms models and libraries
of previous versions to the new version. Therefore, conversion
should be automatic):
Blocks.Continuous. | |
CriticalDamping | New parameter "normalized" to define whether filter is provided in normalized or non-normalized form. Default is "normalized = true". The previous implementation was a non-normalized filter. The conversion script automatically introduces the modifier "normalized=false" for existing models. |
Blocks.Interfaces. | |
RealInput RealOutput |
Removed "SignalType", since extending from a replaceable class
and this is not allowed in Modelica 3. The conversion script removes modifiers to SignalType. |
RealSignal IntegerSignal BooleanSignal |
Moved to library ObsoleteModelica3, since these connectors
are no longer allowed in Modelica 3 (prefixes input and/or output are required). |
Blocks.Interfaces.Adaptors. | |
AdaptorReal AdaptorBoolean AdaptorInteger |
Moved to library ObsoleteModelica3, since the models are not "balanced".
These are completely obsolete adaptors between the Real, Boolean, Integer signal connectors of version 1.6 and version ≥ 2.1 of the Modelica Standard Library. |
Blocks.Math. | |
ConvertAllUnits | Moved to library ObsoleteModelica3, since extending from a replaceable class
and this is not allowed in Modelica 3. It would be possible to rewrite this model to use a replaceable component. However, the information about the conversion cannot be visualized in the icon in this case. |
Blocks.Math.UnitConversions. | |
TwoInputs TwoOutputs |
Moved to library ObsoleteModelica3, since the models are not "balanced".
A new component "InverseBlockConstraints" is provided instead that has the same feature, but is "balanced". |
Electrical.Analog.Baisc. | |
HeatingResistor | The heatPort has to be connected; otherwise the component Resistor (without heatPort) has to be used. cardinality() is only used to check whether the heatPort is connected. |
Electrical.MultiPhase.Examples. | |
Changed the instance names of components used in the examples to more up-to-date style. | |
Electrical.Machines. | |
Moved package Machines.Examples.Utilities to Machines.Utilities | |
Removed all nonSIunits; especially in DCMachines parameter NonSIunits.AngularVelocity_rpm rpmNominal was replaced by parameter SIunits.AngularVelocity wNominal | |
Changed the following component variable and parameter names to be more concise: Removed suffix "DamperCage" from all synchronous induction machines since the user can choose whether the damper cage is present or not. RotorAngle ... RotorDisplacementAngle J_Rotor ... Jr Rr ........ Rrd (damper of synchronous induction machines) Lrsigma ... Lrsigmad (damper of synchronous induction machines) phi_mechanical ... phiMechanical w_mechanical ..... wMechanical rpm_mechanical ... rpmMechanical tau_electrical ... tauElectrical tau_shaft ........ tauShaft TurnsRatio ....... turnsRatio (AIMS) VsNom ............ VsNominal (AIMS) Vr_Lr ............ VrLockedRotor (AIMS) DamperCage ....... useDamperCage (synchronous induction machines) V0 ............... VsOpenCicuit (SMPM) Ie0 .............. IeOpenCicuit (SMEE) | |
Interfaces. | Moved as much code as possible from specific machine models to partials to reduce redundant code. |
Interfaces.Adapter | Removed to avoid cardinality; instead, the following solution has been implemented: |
Sensors.RotorDisplacementAngle Interfaces.PartialBasicMachine |
Introduced parameter Boolean useSupport=false "enable / disable (=fixed stator) support" The rotational support connector is only present with useSupport = true; otherwise the stator is fixed internally. |
Electrical.Machines.Examples. | |
Changed the names of the examples to more meaninglful names. Changed the instance names of components used in the examples to more up-to-date style. | |
SMEE_Generator | Initialization of smee.phiMechanical with fixed=true |
Mechanics.MultiBody. | |
World | Changed default value of parameter driveTrainMechanics3D from false to true. 3-dim. effects in Rotor1D, Mounting1D and BevelGear1D are therefore taken into account by default (previously this was only the case, if world.driveTrainMechanics3D was explicitly set). |
Mechanics.MultiBody.Forces. | |
FrameForce FrameTorque FrameForceAndTorque |
Models removed, since functionality now available via Force, Torque, ForceAndTorque |
WorldForce WorldTorque WorldForceAndTorque Force Torque ForceAndTorque |
Connector frame_resolve is optionally enabled via parameter resolveInFrame . Forces and torques and be resolved in all meaningful frames defined by enumeration resolveInFrame. |
Mechanics.MultiBody.Frames. | |
length normalize |
Removed functions, since available also in Modelica.Math.Vectors
The conversion script changes the references correspondingly. |
Mechanics.MultiBody.Joints. | |
Prismatic ActuatedPrismatic Revolute ActuatedRevolute Cylindrical Universal Planar Spherical FreeMotion |
Changed initialization, by replacing initial value parameters with
start/fixed attributes. When start/fixed attributes are properly supported in the parameter menu by a Modelica tool, the initialization is considerably simplified for the user and the implementation is much simpler. Replaced parameter "enforceStates" by the more general built-in enumeration stateSelect=StateSelection.xxx. The conversion script automatically transforms from the "old" to the "new" forms. |
Revolute ActuatedRevolute |
Parameter "planarCutJoint" in the "Advanced" menu of "Revolute" and of
"ActuatedRevolute" removed. A new joint "RevolutePlanarLoopConstraint" introduced that defines the constraints of a revolute joint as cut-joint in a planar loop. This change was needed in order that the revolute joint can be properly used in advanced model checking. ActuatedRevolute joint removed. Flange connectors of Revolute joint can be enabled with parameter useAxisFlange. |
Prismatic ActuatedPrismatic |
ActuatedPrismatic joint removed. Flange connectors of Prismatic joint can be enabled with parameter useAxisFlange. |
Assemblies | Assembly joint implementation slightly changed, so that
annotation "structurallyIncomplete" could be removed (all Assembly joint models are now "balanced"). |
Mechanics.MultiBody.Joints.Internal | |
RevoluteWithLengthConstraint PrismaticWithLengthConstraint |
These joints should not be used by a user of the MultiBody library. They are only provided to built-up the MultiBody.Joints.Assemblies.JointXYZ joints. These two joints have been changed in a slightly not backward compatible way, in order that the usage in the Assemblies.JointXYZ joints results in balanced models (no conversion is provided for this change since the user should not have used these joints and the conversion would be too complicated): In releases before version 3.0 of the Modelica Standard Library, it was possible to activate the torque/force projection equation (= cut-torque/-force projected to the rotation/translation axis must be identical to the drive torque/force of flange axis) via parameter axisTorqueBalance. This is no longer possible, since otherwise this model would not be "balanced" (= same number of unknowns as equations). Instead, when using this model in version 3.0 and later versions, the torque/force projection equation must be provided in the Advanced menu of joints Joints.SphericalSpherical and Joints.UniversalSpherical via the new parameter "constraintResidue". |
Mechanics.MultiBody.Parts. | |
BodyBox BodyCylinder |
Changed unit of parameter density from g/cm3 to the SI unit kg/m3
in order to allow stricter unit checking. The conversion script multiplies previous density values with 1000. |
Body BodyShape BodyBox BodyCylinder PointMass Rotor1D |
Changed initialization, by replacing initial value parameters with
start/fixed attributes. When start/fixed attributes are properly supported in the parameter menu by a Modelica tool, the initialization is considerably simplified for the user and the implementation is much simpler. The conversion script automatically transforms from the "old" to the "new" form of initialization. |
Mechanics.MultiBody.Sensors. | |
AbsoluteSensor RelativeSensor CutForceAndTorque |
New design of sensor components: Via Boolean parameters signal connectors for the respective vectors are enabled/disabled. It is not possible to automatically convert models to this new design. Instead, references in existing models are changed to ObsoleteModelice3. This means that these models must be manually adapted. |
CutForce CutTorque |
Slightly new design. The force and/or torque component can be
resolved in world, frame_a, or frame_resolved. Existing models are automatically converted. |
Mechanics.Rotational. | |
Moved components to structured sub-packages (Sources, Components) | |
Inertia SpringDamper RelativeStates |
Changed initialization, by replacing initial value parameters with
start/fixed attributes. When start/fixed attributes are properly supported in the parameter menu by a Modelica tool, the initialization is considerably simplified for the user and the implementation is much simpler. Parameter "stateSelection" in "Inertia" and "SpringDamper" replaced by the built-in enumeration stateSelect=StateSelection.xxx. Introduced the "stateSelect" enumeration in "RelativeStates". The conversion script automatically transforms from the "old" to the "new" forms. |
LossyGear GearBox |
Renamed gear ratio parameter "i" to "ratio", in order to have a
consistent naming convention. Existing models are automatically converted. |
SpringDamper ElastoBacklash Clutch OneWayClutch |
Relative quantities (phi_rel, w_rel) are used as states, if possible
(due to StateSelect.prefer). In most cases, relative states in drive trains are better suited as absolute states. This change might give changes in the selected states of existing models. This might give rise to problems if, e.g., the initialization was not completely defined in a user model, since the default initialization heuristic may give different initial values. |
Mechanics.Translational. | |
Moved components to structured sub-packages (Sources, Components) | |
Adaptions corresponding to Rotational | |
Stop | Renamed to Components.MassWithStopAndFriction to be more concise. MassWithStopAndFriction is not available with a support connector, since the reaction force can't be modeled in a meaningful way due to reinit of velocity v. Until a sound implementation of a hard stop is available, the old model may be used. |
Media. | |
constant nX constant nXi constant reference_X BaseProperties |
The package constant nX = nS, now always, even for single species media. This also allows to define mixtures with only 1 element. The package constant nXi=if fixedX then 0 else if reducedX or nS==1 then nS - 1 else nS. This required that all BaseProperties for single species media get an additional equation to define the composition X as {1.0} (or reference_X, which is {1.0} for single species). This will also mean that all user defined single species media need to be updated by that equation. |
SIunits. | |
CelsiusTemperature | Removed, since no SI unit. The conversion script changes references to SIunits.Conversions.NonSIunits.Temperature_degC |
ThermodynamicTemperature TemperatureDifference |
Added annotation "__Dymola_absoluteValue=true/false"
in order that unit checking is possible (the unit checker needs to know for a unit that has an offset, whether it is used as absolute or as a relative number) |
SIunits.Conversions.NonSIunits. | |
Temperature_degC Temperature_degF Temperature_degRk |
Added annotation "__Dymola_absoluteValue=true"
in order that unit checking is possible (the unit checker needs to know for a unit that has an offset, whether it is used as absolute or as a relative number) |
StateGraph.Examples. | |
ControlledTanks | The connectors of the ControlledTanks did not fulfill the new restrictions of Modelica 3. This has been fixed. |
Utilities | Replacing inflow, outflow by connectors inflow1, inflow2, outflow1, outflow2 with appropriate input/output prefixes in order to fufill the restrictions of Modelica 3 to arrive at balanced models. No conversion is provided, since too difficult and since the non-backward compatible change is in an example. |
Thermal.FluidHeatFlow.Sensors. | |
pSensor TSensor dpSensor dTSensor m_flowSensor V_flowSensor H_flowSensor |
renamed to: PressureSensor TemperatureSensor RelPressureSensor RelTemperatureSensor MassFlowSensor VolumeFlowSensor EnthalpyFlowSensor |
Thermal.FluidHeatFlow.Sources. | |
Ambient PrescribedAmbient |
available as one combined component Ambient Boolean parameters usePressureInput and useTemperatureInput decide whether pressure and/or temperature are constant or prescribed |
ConstantVolumeFlow PrescribedVolumeFlow |
available as one combined component VolumeFlow Boolean parameter useVolumeFlowInput decides whether volume flow is constant or prescribed |
ConstantPressureIncrease PrescribedPressureIncrease |
available as one combined component PressureIncrease Boolean parameter usePressureIncreaseInput decides whether pressure increase is constant or prescribed |
Thermal.FluidHeatFlow.Examples. | |
Changed the instance names of components used in the examples to more up-to-date style. | |
Thermal.HeatTransfer.(Components) | |
HeatCapacitor | Initialization changed: SteadyStateStart removed. Instead
start/fixed values for T and der_T (initial temperature and its derivative). |
HeatCapacitor ThermalConductor ThermalConvection BodyRadiation TemperatureSensor RelTemperatureSensor HeatFlowSensor FixedTemperature PrescribedTemperature FixedHeatFlow PrescribedHeatFlow |
Moved components to sub-packages: Components.HeatCapacitor Components.ThermalConductor Components.ThermalConvection Components.BodyRadiation Sensors.TemperatureSensor Sensors.RelTemperatureSensor Sensors.HeatFlowSensor Sources.FixedTemperature Sources.PrescribedTemperature Sources.FixedHeatFlow Sources.PrescribedHeatFlow |
Thermal.FluidHeatFlow.Examples. | |
Changed the instance names of components used in the examples to more up-to-date style. |
The following existing components
have been improved in a
backward compatible way:
Modelica.* | Parameter declarations, input and output function arguments without description
strings improved by providing meaningful description texts. |
Modelica.Blocks.Continuous. | |
TransferFunction | Internal scaling of the controller canonical states introduced in order to enlarge the range of transfer functions where the default relative tolerance of the simulator is sufficient. |
Butterworth CriticalDamping |
Documentation improved and plots of the filter characteristics added. |
Electrical.Analog.Basic. | |
EMF | New parameter "useSupport" to optionally enable a support connector. |
Icons. | |
TranslationalSensor RotationalSensor |
Removed drawing from the diagram layer (kept drawing only in
icon layer), in order that this icon can be used in situations where components are dragged in the diagram layer. |
Math.Vectors. | |
normalize | Implementation changed, so that the result is awalys continuous (previously, this was not the case for small vectors: normalize(eps,eps)). |
Mechanics.MultiBody. | |
Renamed non-standard keywords defineBranch, defineRoot, definePotentialRoot,
isRooted to the standard names: Connections.branch/.root/.potentialRoot/.isRooted. | |
Frames | Added annotation "Inline=true" to all one-line functions (which should be all inlined). |
Mechanics.MultiBody.Parts. | |
Mounting1D Rotor1D BevelGear1D |
Changed implementation so that no longer modifiers for connector
variables are used, because this violates the restrictions on "balanced models" of Modelica 3. |
Mechanics.Rotational. | |
InitializeFlange | Changed implementation so that counting unknowns and equations is possible without actual values of parameters. |
Thermal.FluidHeatFlow.Interfaces.Partials. | |
TwoPort | Introduced parameter Real tapT(final min=0, final max=1)=1 that defines the temperature of the heatPort betwen inlet and outlet. |
StateGraph. | |
InitialStep InitialStepWithSignal Step StepWithSignal |
Changed implementation so that no longer modifiers for output
variables are used, because this violates the restrictions on "balanced models" of Modelica 3. |
The following critical errors have been fixed (i.e. errors
that can lead to wrong simulation results):
Electrical.Analog.Examples. | |
CauerLowPassSC | Wrong calculation of Capacitor1 both in Rn and Rp corrected (C=clock/R instead of C=clock*R) |
Mechanics.MultiBody.Parts. | |
Rotor1D | The 3D reaction torque was not completely correct and gave in some situations a wrong result. This bug should not influence the movement of a multi-body system, but only the constraint torques are sometimes not correct. |
Mechanics.Rotational. | |
ElastoBacklash | If the damping torque was too large, the reaction torque could "pull" which is unphysical. The component was newly written by limiting the damping torque in such a case so that "pulling" torques can no longer occur. Furthermore, during initialization the characteristics is made continuous to reduce numerical errors. The relative angle and relative angular velocities are used as states, if possible (StateSelect.prefer), since relative quantities lead usually to better behavior. |
Position Speed Accelerate Move |
The movement of the flange was wrongly defined as absolute;
this is corrected as relative to connector support. For Accelerate, it was necessary to rename RealInput a to a_ref, as well as the start values phi_start to phi.start and w_start to w.start. The conversion script performs the necessary conversion of existing models automatically. |
Media.Interfaces. | |
PartialSimpleIdealGasMedium | Inconsisteny in reference temperature corrected. This may give
different results for functions: specificEnthalpy, specificInternalEnergy, specificGibbsEnergy, specificHelmholtzEnergy. |
Media.Air. | |
specificEntropy | Small bug in entropy computation of ideal gas mixtures corrected. |
Media.IdealGases.Common.MixtureGasNasa | |
specificEntropy | Small bug in entropy computation of ideal gas mixtures 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.Tables. | |
CombiTable2D | Documentation improved. |
Electrica.Digital.Gates | |
AndGate NandGate OrGate NorGate XorGate XnorGate |
The number of inputs was not correctly propagated
to the included base model. This gave a translation error, if the number of inputs was changed (and not the default used). |
Electrica.Digital.Sources | |
Pulse | Model differently implemented, so that warning message about "cannot properly initialize" is gone. |
Mechanics.Rotational. | |
BearingFriction Clutch OneWayClutch Brake Gear |
Declaration of table parameter changed from table[:,:] to table[:,2]. |
Modelica.Mechanics.MultiBody.Examples.Loops.Utilities. | |
GasForce | Unit of variable "press" corrected (from Pa to bar) |
StateGraph.Examples. | |
SimpleFriction | The internal parameter k is defined and calculated with the appropriate unit. |
Thermal.FluidHeatFlow.Interfaces.Partials. | |
SimpleFriction | The internal parameter k is defined and calculated with the appropriate unit. |
Version 2.2.2 is backward compatible to version 2.2.1 and 2.2 with the following exceptions:
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 here. This comparison file was generated automatically with Dymolas ModelManagement.compare function.
In this version, no new libraries have been added. The documentation of the whole library was improved. Especially, the documentation is now also available as one pdf file.
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 tangens (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 elemination 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 |
LinerWater_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:
|
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 defaut value "reference_X" for input argument "X". |
Media.Interfaces.PartialSimpleMedium. | |
setState_pTX setState_phX setState_psX setState_dTX |
Introduced defaut value "reference_X" for input argument "X". |
Media.Interfaces.PartialSimpleIdealGasMedium. | |
setState_pTX setState_phX setState_psX setState_dTX |
Introduced defaut value "reference_X" for input argument "X". |
Media.Air.MoistAir. | |
setState_pTX setState_phX setState_dTX |
Introduced defaut value "reference_X" for input argument "X". |
Media.IdealGases.Common.SingleGasNasa. | |
setState_pTX setState_phX setState_psX setState_dTX |
Introduced defaut value "reference_X" for input argument "X". |
Media.IdealGases.Common.MixtureGasNasa. | |
setState_pTX setState_phX setState_psX setState_dTX h_TX |
Introduced defaut 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 seldomly in practice):
|
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:
|
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". |
Version 2.2.1 is backward compatible to version 2.2.
In this version, no new libraries have been added. The following major improvements have been made:
The following new components have been added to existing libraries:
Modelica.Blocks.Examples. | |
PID_Controller | Example to demonstrate the usage of the Blocks.Continuous.LimPID block. |
Modelica.Blocks.Math. | |
UnitConversions.* | New package that provides blocks for unit conversions. UnitConversions.ConvertAllBlocks allows to select all available conversions from a menu. |
Modelica.Electrical.Machines.BasicMachines.SynchronousInductionMachines. | |
SM_ElectricalExcitedDamperCage | Electrical excited synchronous induction machine with damper cage |
Modelica.Electrical.Machines.BasicMachines.Components. | |
ElectricalExcitation | Electrical excitation for electrical excited synchronous induction machines |
DamperCage | Unsymmetrical damper cage for electrical excited synchronous induction machines. At least the user has to specify the dampers resistance and stray inductance in d-axis; if he omits the parameters of the q-axis, the same values as for the d.axis are used, assuming a symmetrical damper. |
Modelica.Electrical.Machines.Examples. | |
SMEE_Gen | Test example 7: ElectricalExcitedSynchronousInductionMachine as Generator |
Utilities.TerminalBox | Terminal box for three-phase induction machines to choose either star (wye) ? or delta ? connection |
Modelica.Math.Matrices. | |
equalityLeastSquares | Solve a linear equality constrained least squares problem: min|A*x-a|^2 subject to B*x=b |
Modelica.Mechanics.MultiBody. | |
Parts.PointMass | Point mass, i.e., body where inertia tensor is neglected. |
Interfaces.FlangeWithBearing | Connector consisting of 1-dim. rotational flange and its 3-dim. bearing frame. |
Interfaces.FlangeWithBearingAdaptor | Adaptor to allow direct connections to the sub-connectors of FlangeWithBearing. |
Types.SpecularCoefficient | New type to define a specular coefficient. |
Types.ShapeExtra | New type to define the extra data for visual shape objects and to have a central place for the documentation of this data. |
Modelica.Mechanics.MultiBody.Examples.Elementary | |
PointGravityWithPointMasses | Example of two point masses in a central gravity field. |
Modelica.Mechanics.Rotational. | |
UsersGuide | A User's Guide has been added by using the documentation previously present in the package documentation of Rotational. |
Sensors.PowerSensor | New component to measure the energy flow between two connectors of the Rotational library. |
Modelica.Mechanics.Translational. | |
Speed | New component to move a translational flange according to a reference speed |
Modelica.Media.Interfaces.PartialMedium. | |
specificEnthalpy_pTX | New function to compute specific enthalpy from pressure, temperature and mass fractions. |
temperature_phX | New function to compute temperature from pressure, specific enthalpy, and mass fractions. |
Modelica.Icons. | |
SignalBus | Icon for signal bus |
SignalSubBus | Icon for signal sub-bus |
Modelica.SIunits. | |
UsersGuide | A User's Guide has been added that describes unit handling. |
Resistance Conductance |
Attribute 'min=0' removed from these types. |
Modelica.Thermal.FluidHeatFlow. | |
Components.Valve | Simple controlled valve with either linear or exponential characteristic. |
Sources. IdealPump | Simple ideal pump (resp. fan) dependent on the shaft?s speed; pressure increase versus volume flow is defined as a linear function. Torque * Speed = Pressure invrease * Volume flow (without losses). |
Examples.PumpAndValve | Test example for valves. |
Examples.PumpDropOut | Drop out of 1 pump to test behavior of semiLinear. |
Examples.ParallelPumpDropOut | Drop out of 2 parallel pumps to test behavior of semiLinear. |
Examples.OneMass | Cooling of 1 hot mass to test behavior of semiLinear. |
Examples.TwoMass | Cooling of 2 hot masses to test behavior of semiLinear. |
The following components have been improved:
Modelica. | |
UsersGuide | User's Guide and package description of Modelica Standard Library improved. |
Modelica.Blocks.Interfaces. | |
RealInput BooleanInput IntegerInput |
When dragging one of these connectors the width and height is a factor of 2 larger as a standard icon. Previously, these connectors have been dragged and then manually enlarged by a factor of 2 in the Modelica standard library. |
Modelica.Blocks. | |
Continuous.* | Initialization options added to all blocks (NoInit, SteadyState, InitialState, InitialOutput). New parameter limitsAtInit to switch off the limits of LimIntegrator or LimPID during initialization |
Continuous.LimPID | Option to select P, PI, PD, PID controller. Documentation significantly improved. |
Nonlinear.Limiter Nonlinear.VariableLimiter Nonlinear.Deadzone |
New parameter limitsAtInit/deadZoneAtInit to switch off the limits or the dead zone during initialization |
Modelica.Electrical.Analog. | |
Sources | Icon improved (+/- added to voltage sources, arrow added to current sources). |
Modelica.Electrical.Analog.Semiconductors. | |
Diode | smooth() operator included to improve numerics. |
Modelica.Electrical.Machines.BasicMachines.SynchronousInductionMachines. | |
SM_PermanentMagnetDamperCage SM_ElectricalExcitedDamperCage SM_ReluctanceRotorDamperCage |
The user can choose "DamperCage = false" (default: true) to remove all equations for the damper cage from the model. |
Modelica.Electrical.Machines.BasicMachines.AsynchronousInductionMachines. | |
AIM_SlipRing | Easier parameterization: if the user selects "useTrunsRatio = false" (default: true, this is the same behavior as before), parameter TurnsRatio is calculated internally from Nominal stator voltage and Locked-rotor voltage. |
Modelica.Math.Matrices. | |
leastSquares | The A matrix in the least squares problem might be rank deficient. Previously, it was required that A has full rank. |
Modelica.Mechanics.MultiBody. | |
all models |
|
Frames.resolveRelative | The derivative of this function added as function and defined via an annotation. In certain situations, tools had previously difficulties to differentiate the inlined function automatically. |
Forces.* | The scaling factors N_to_m and Nm_to_m have no longer a default value of 1000 but a default value of world.defaultN_to_m (=1000) and world.defaultNm_to_m (=1000). This allows to change the scaling factors for all forces and torques in the world object. |
Interfaces.Frame.a Interfaces.Frame.b Interfaces.Frame_resolve |
The Frame connectors are now centered around the origin to ease the usage. The shape was changed, such that the icon is a factor of 1.6 larger as a standard icon (previously, the icon had a standard size when dragged and then the icon was manually enlarged by a factor of 1.5 in the y-direction in the MultiBody library; the height of 16 allows easy positioning on the standard grid size of 2). The double line width of the border in icon and diagram layer was changed to a single line width and when making a connection the connection line is dark grey and no longer black which looks better. |
Joints.Assemblies.* | When dragging an assembly joint, the icon is a factor of 2 larger as a standard icon. Icon texts and connectors have a standard size in this enlarged icon (and are not a factor of 2 larger as previously). |
Types.* | All types have a corresponding icon now to visualize the content in the package browser (previously, the types did not have an icon). |
Modelica.Mechanics.Rotational. | |
Inertia | Initialization and state selection added. |
SpringDamper | Initialization and state selection added. |
Move | New implementation based solely on Modelica 2.2 language (previously, the Dymola specific constrain(..) function was used). |
Modelica.Mechanics.Translational. | |
Move | New implementation based solely on Modelica 2.2 language (previously, the Dymola specific constrain(..) function was used). |
Modelica.Thermal.FluidHeatFlow.Interfaces.Partials. | |
SimpleFriction | Calculates friction losses from pressure drop and volume flow. |
Modelica.Thermal.FluidHeatFlow.Components. | |
IsolatedPipe HeatedPipe |
Added geodetic height as a source of pressure change; feeds friction losses as calculated by simple friction to the energy balance of the medium. |
Modelica.Media.Interfaces.PartialMedium.FluidConstants. | |
HCRIT0 | Critical specifc enthalpy of the fundamental equation (base formulation of the fluid medium model). |
SCRIT0 | Critical specifc entropy of the fundamental equation (base formulation of the fluid medium model). |
deltah | Enthalpy offset (default: 0) between the specific enthalpy of the fluid model and the user-visible specific enthalpy in the model: deltah = h_model - h_fundamentalEquation. |
deltas | Entropy offset (default: 0) between the specific entropy of the fluid model and the user-visible specific entropy in the model: deltas = s_model - s_fundamentalEquation. |
T_default | Default value for temperature of medium (for initialization) |
h_default | Default value for specific enthalpy of medium (for initialization) |
p_default | Default value for pressure of medium (for initialization) |
X_default | Default value for mass fractions of medium (for initialization) |
The following errors have been fixed:
Modelica.Blocks.Tables. | |
CombiTable1D CombiTable1Ds CombiTable2D |
Parameter "tableOnFile" determines now whether a table is read from
file or used from parameter "table". Previously, if "fileName" was not
"NoName", a table was always read from file "fileName", independently
of the setting of "tableOnFile". This has been corrected. Furthermore, the initialization of a table is now performed in a when-clause and no longer in a parameter declaration, because some tools evaluate the parameter declaration in some situation more than once and then the table is unnecessarily read several times (and occupies also more memory). |
Modelica.Blocks.Sources. | |
CombiTimeTable | Same bug fix/improvement as for the tables from Modelica.Blocks.Tables as outlined above. |
Modelica.Electrical.Analog.Semiconductors. | |
PMOS NMOS HeatingPMOS HeatingNMOS |
The Drain-Source-Resistance RDS had actually a resistance of
RDS/v, with v=Beta*(W+dW)/(L+dL). The correct formula is without
the divison by "v". This has now been corrected. This bug fix should not have an essential effect in most applications. In the default case (Beta=1e-5), the Drain-Source-Resistance was a factor of 1e5 too large and had in the default case the wrong value 1e12, although it should have the value 1e7. The effect was that this resistance had practically no effect. |
Modelica.Media.IdealGases.Common.SingleGasNasa. | |
dynamicViscosityLowPressure | Viscosity and thermal conductivity (which needs viscosity as input) were computed wrong for polar gases and gas mixtures (i.e. if dipole moment not 0.0). This has been fixed in version 2.2.1. |
Modelica.Utilities.Streams. | |
readLine | Depending on the C-implementation, the stream was not correctly closed. This has been corrected by adding a "Streams.close(..)" after reading the file content. |
Version 2.2 is backward compatible to version 2.1.
The following new libraries have been added:Modelica.Media | Property models of liquids and gases, especially
|
Modelica.Thermal.FluidHeatFlow | Simple components for 1-dim., incompressible thermo-fluid flow to model coolant flows, e.g., of electrical machines. Components can be connected arbitrarily together (= ideal mixing at connection points) and fluid may reverse direction of flow. |
The following changes have been performed in the Modelica.Mechanics.MultiBody library:
This is a major change with respect to previous versions of the Modelica Standard Library, because many new libraries and components are included and because the input/output blocks (Modelica.Blocks) have been considerably simplified:
The discussed changes of Modelica.Blocks are not backward compatible. A script to automatically convert models to this new version is provided. There might be rare cases, where this script does not convert. In this case models have to be manually converted. In any case you should make a back-up copy of your model before automatic conversion is performed.
The following new libraries have been added:
Modelica.Electrical.Digital | Digital electrical components based on 2-,3-,4-, and 9-valued logic according to the VHDL standard |
Modelica.Electrical.Machines | Asynchronous, synchronous and DC motor and generator models |
Modelica.Math.Matrices | Functions operatinng on matrices such as solve() (A*x=b), leastSquares(), norm(), LU(), QR(), eigenValues(), singularValues(), exp(), ... |
Modelica.StateGraph | Modeling of discrete event and reactive systems in a convenient way using hierarchical state machines and Modelica as action language. It is based on JGraphChart and Grafcet and has a similar modeling power as StateCharts. It avoids deficiences of usually used action languages. This library makes the ModelicaAdditions.PetriNets library obsolet. |
Modelica.Utilities.Files | Functions to operate on files and directories (copy, move, remove files etc.) |
Modelica.Utilities.Streams | Read from files and write to files (print, readLine, readFile, error, ...) |
Modelica.Utilities.Strings | Operations on strings (substring, find, replace, sort, scanToken, ...) |
Modelica.Utilities.System | Get/set current directory, get/set environment variable, execute shell command, etc. |
The following existing libraries outside of the Modelica standard library have been improved and added as new libraries (models using the previous libraries are automatically converted to the new sublibraries inside package Modelica):
Modelica.Blocks.Discrete | Discrete input/output blocks with fixed sample period (from ModelicaAdditions.Blocks.Discrete) |
Modelica.Blocks.Logical | Logical components with Boolean input and output signals (from ModelicaAdditions.Blocks.Logical) |
Modelica.Blocks.Nonlinear | Discontinuous or non-differentiable algebraic control blocks such as variable limiter, fixed, variable and Pade delay etc. (from ModelicaAdditions.Blocks.Nonlinear) |
Modelica.Blocks.Routing | Blocks to combine and extract signals, such as multiplexer (from ModelicaAdditions.Blocks.Multiplexer) |
Modelica.Blocks.Tables | One and two-dimensional interpolation in tables. CombiTimeTable is available in Modelica.Blocks.Sources (from ModelicaAdditions.Tables) |
Modelica.Mechanics.MultiBody | Components to model the movement of 3-dimensional mechanical systems. Contains body, joint, force and sensor components, analytic handling of kinematic loops, force elements with mass, series/parallel connection of 3D force elements etc. (from MultiBody 1.0 where the new signal connectors are used; makes the ModelicaAdditions.MultiBody library obsolet) |
As a result, the ModelicaAdditions library is obsolet, because all components are either included in the Modelica library or are replaced by much more powerful libraries (MultiBody, StateGraph).
The following new components have been added to existing libraries.
Modelica.Blocks.Logical. | |
Pre | y = pre(u): Breaks algebraic loops by an infinitesimal small time delay (event iteration continues until u = pre(u)) |
Edge | y = edge(u): Output y is true, if the input u has a rising edge |
FallingEdge | y = edge(not u): Output y is true, if the input u has a falling edge |
Change | y = change(u): Output y is true, if the input u has a rising or falling edge |
GreaterEqual | Output y is true, if input u1 is greater or equal as input u2 |
Less | Output y is true, if input u1 is less as input u2 |
LessEqual | Output y is true, if input u1 is less or equal as input u2 |
Timer | Timer measuring the time from the time instant where the Boolean input became true |
Modelica.Blocks.Math. | |
BooleanToReal | Convert Boolean to Real signal |
BooleanToInteger | Convert Boolean to Integer signal |
RealToBoolean | Convert Real to Boolean signal |
IntegerToBoolean | Convert Integer to Boolean signal |
Modelica.Blocks.Sources. | |
RealExpression | Set output signal to a time varying Real expression |
IntegerExpression | Set output signal to a time varying Integer expression |
BooleanExpression | Set output signal to a time varying Boolean expression |
BooleanTable | Generate a Boolean output signal based on a vector of time instants |
Modelica.Mechanics.MultiBody. | |
Frames.from_T2 | Return orientation object R from transformation matrix T and its derivative der(T) |
Modelica.Mechanics.Rotational. | |
LinearSpeedDependentTorque | Linear dependency of torque versus speed (acts as load torque) |
QuadraticSpeedDependentTorque | Quadratic dependency of torque versus speed (acts as load torque) |
ConstantTorque | Constant torque, not dependent on speed (acts as load torque) |
ConstantSpeed | Constant speed, not dependent on torque (acts as load torque) |
TorqueStep | Constant torque, not dependent on speed (acts as load torque) |
The following bugs have been corrected:
Modelica.Mechanics.MultiBody.Forces. | |
LineForceWithMass Spring |
If mass of the line force or spring component is not zero, the mass was (implicitly) treated as "mass*mass" instead of as "mass" |
Modelica.Mechanics.Rotational. | |
Speed | If parameter exact=false, the filter was wrong (position was filtered and not the speed input signal) |
Other changes:
Added 1 new library (Electrical.MultiPhase), 17 new components, improved 3 existing components in the Modelica.Electrical library and improved 3 types in the Modelica.SIunits library. Furthermore, this User's Guide has been started. The improvements in more detail:
New components
Modelica.Electrical.Analog.Basic. | |
SaturatingInductor | Simple model of an inductor with saturation |
VariableResistor | Ideal linear electrical resistor with variable resistance |
VariableConductor | Ideal linear electrical conductor with variable conductance |
VariableCapacitor | Ideal linear electrical capacitor with variable capacitance |
VariableInductor | Ideal linear electrical inductor with variable inductance |
Modelica.Electrical.Analog.Semiconductors. | |
HeadingDiode | Simple diode with heating port |
HeadingNMOS | Simple MOS Transistor with heating port |
HeadingPMOS | Simple PMOS Transistor with heating port |
HeadingNPN | Simple NPN BJT according to Ebers-Moll with heating port |
HeadingPNP | Simple PNP BJT according to Ebers-Moll with heating port |
Modelica.Electrical.MultiPhase A new library for multi-phase electrical circuits |
New examples
The following new examples have been added to Modelica.Electrical.Analog.Examples:
CharacteristicThyristors, CharacteristicIdealDiodes, HeatingNPN_OrGate, HeatingMOSInverter, HeatingRectifier, Rectifier, ShowSaturatingInductor ShowVariableResistor
Improved existing components
In the library Modelica.Electrical.Analog.Ideal, a knee voltage has been introduced for the components IdealThyristor, IdealGTOThyristor, IdealDiode in order that the approximation of these ideal elements is improved with not much computational effort.
In the Modelica.SIunits library, the following changes have been made:
Inductance | min=0 removed |
SelfInductance | min=0 added |
ThermodynamicTemperature | min=0 added |
Added 55 new components. In particular, added new package Thermal.HeatTransfer for modeling of lumped heat transfer, added model LossyGear in Mechanics.Rotational to model gear efficiency and bearing friction according to a new theory in a robust way, added 10 new models in Electrical.Analog and added several other new models and improved existing models.
New components
Modelica.Blocks. | |
Continuous.Der | Derivative of input (= analytic differentations) |
Examples | Demonstration examples of the components of this package |
Nonlinear.VariableLimiter | Limit the range of a signal with variable limits |
Modelica.Blocks.Interfaces. | |
RealPort | Real port (both input/output possible) |
IntegerPort | Integer port (both input/output possible) |
BooleanPort | Boolean port (both input/output possible) |
SIMO | Single Input Multiple Output continuous control block |
IntegerBlockIcon | Basic graphical layout of Integer block |
IntegerMO | Multiple Integer Output continuous control block |
IntegerSignalSource | Base class for continuous Integer signal source |
IntegerMIBooleanMOs | Multiple Integer Input Multiple Boolean Output continuous control block with same number of inputs and outputs |
BooleanMIMOs | Multiple Input Multiple Output continuous control block with same number of inputs and outputs of boolean type |
BusAdaptors | Components to send signals to the bus or receive signals from the bus |
Modelica.Blocks.Math. | |
RealToInteger | Convert real to integer signals |
IntegerToReal | Convert integer to real signals |
Max | Pass through the largest signal |
Min | Pass through the smallest signal |
Edge | Indicates rising edge of boolean signal |
BooleanChange | Indicates boolean signal changing |
IntegerChange | Indicates integer signal changing |
Modelica.Blocks.Sources. | |
IntegerConstant | Generate constant signals of type Integer |
IntegerStep | Generate step signals of type Integer |
Modelica.Electrical.Analog.Basic. | |
HeatingResistor | Temperature dependent electrical resistor |
OpAmp | Simple nonideal model of an OpAmp with limitation |
Modelica.Electrical.Analog.Ideal. | |
IdealCommutingSwitch | Ideal commuting switch |
IdealIntermediateSwitch | Ideal intermediate switch |
ControlledIdealCommutingSwitch | Controlled ideal commuting switch |
ControlledIdealIntermediateSwitch | Controlled ideal intermediate switch |
IdealOpAmpLimited | Ideal operational amplifier with limitation |
IdealOpeningSwitch | Ideal opener |
IdealClosingSwitch | Ideal closer |
ControlledIdealOpeningSwitch | Controlled ideal opener |
ControlledIdealClosingSwitch | Controlled ideal closer |
Modelica.Electrical.Analog.Lines. | |
TLine1 | Lossless transmission line (Z0, TD) |
TLine2 | Lossless transmission line (Z0, F, NL) |
TLine2 | Lossless transmission line (Z0, F) |
Modelica.Icons. | |
Function | Icon for a function |
Record | Icon for a record |
Enumeration | Icon for an enumeration |
Modelica.Math. | |
tempInterpol2 | temporary routine for vectorized linear interpolation (will be removed) |
Modelica.Mechanics.Rotational. | |
Examples.LossyGearDemo1 | Example to show that gear efficiency may lead to stuck motion |
Examples.LossyGearDemo2 | Example to show combination of LossyGear and BearingFriction |
LossyGear | Gear with mesh efficiency and bearing friction (stuck/rolling possible) |
Gear2 | Realistic model of a gearbox (based on LossyGear) |
Modelica.SIunits. | |
Conversions | Conversion functions to/from non SI units and type definitions of non SI units |
EnergyFlowRate | Same definition as Power |
EnthalpyFlowRate | Real (final quantity="EnthalpyFlowRate", final unit="W") |
Modelica. | |
Thermal.HeatTransfer | 1-dimensional heat transfer with lumped elements |
ModelicaAdditions.Blocks.Discrete. | |
TriggeredSampler | Triggered sampling of continuous signals |
TriggeredMax | Compute maximum, absolute value of continuous signal at trigger instants |
ModelicaAdditions.Blocks.Logical.Interfaces. | |
BooleanMIRealMOs | Multiple Boolean Input Multiple Real Output continuous control block with same number of inputs and outputs |
RealMIBooleanMOs | Multiple Real Input Multiple Boolean Output continuous control block with same number of inputs and outputs |
ModelicaAdditions.Blocks.Logical. | |
TriggeredTrapezoid | Triggered trapezoid generator |
Hysteresis | Transform Real to Boolean with Hysteresis |
OnOffController | On-off controller |
Compare | True, if signal of inPort1 is larger than signal of inPort2 |
ZeroCrossing | Trigger zero crossing of input signal |
ModelicaAdditions. | |
Blocks.Multiplexer.Extractor | Extract scalar signal out of signal vector dependent on IntegerRealInput index |
Tables.CombiTable1Ds | Table look-up in one dimension (matrix/file) with only single input |
Package-specific Changes
Class-specific Changes
Modelica.SIunits
Removed final from quantity attribute for Mass and MassFlowRate.
Modelica.Blocks.Math.Sum
Implemented avoiding algorithm section, which would lead to expensive function calls.
Modelica.Blocks.Sources.Step
block Step "Generate step signals of type Real" parameter Real height[:]={1} "Heights of steps"; // parameter Real offset[:]={0} "Offsets of output signals"; // parameter SIunits.Time startTime[:]={0} "Output = offset for time < startTime"; // extends Interfaces.MO (final nout=max([size(height, 1); size(offset, 1); size(startTime, 1)])); extends Interfaces.SignalSource(final nout=max([size(height, 1); size(offset, 1); size(startTime, 1)]));
Modelica.Blocks.Sources.Exponentials
Replaced usage of built-in function exp by Modelica.Math.exp.
Modelica.Blocks.Sources.TimeTable
Interface definition changed from
parameter Real table[:, :]=[0, 0; 1, 1; 2, 4] "Table matrix (time = first column)";
to
parameter Real table[:, 2]=[0, 0; 1, 1; 2, 4] "Table matrix (time = first column)";
Did the same for subfunction getInterpolationCoefficients.
Bug in getInterpolationCoefficients for startTime <> 0 fixed:
... end if; end if; // Take into account startTime "a*(time - startTime) + b" b := b - a*startTime; end getInterpolationCoefficients;
Modelica.Blocks.Sources.BooleanStep
block BooleanStep "Generate step signals of type Boolean" parameter SIunits.Time startTime[:]={0} "Time instants of steps"; parameter Boolean startValue[size(startTime, 1)]=fill(false, size(startTime, 1)) "Output before startTime"; extends Interfaces.BooleanSignalSource(final nout=size(startTime, 1)); equation for i in 1:nout loop // outPort.signal[i] = time >= startTime[i]; outPort.signal[i] = if time >= startTime[i] then not startValue[i] else startValue[i]; end for; end BooleanStep;
Modelica.Electrical.Analog
Corrected table of values and default for Beta by dividing them by 1000 (consistent with the values used in the NAND-example model):
Corrected parameter defaults, unit and description for TrapezoidCurrent. This makes the parameters consistent with their use in the model. Models specifying parameter values are not changed. Models not specifying parameter values did not generate trapezoids previously.
Icon layer background changed from transparent to white:
Basic.Transformer: Replaced invalid escape characters '\ ' and '\[newline]' in documentation by '|'.
Modelica.Mechanics.Rotational
Removed arrows and names documentation from flanges in diagram layer
Modelica.Mechanics.Rotational.Interfaces.FrictionBase
Modelica.Mechanics.Rotational.Position
Replaced reinit by initial equation
Modelica.Mechanics.Rotational.RelativeStates
Bug corrected by using modifier stateSelect = StateSelect.prefer as implementation
Modelica.Mechanics.Translational.Interfaces.flange_b
Attribute fillColor=7 added to Rectangle on Icon layer, i.e. it is now filled with white and not transparent any more.
Modelica.Mechanics.Translational.Position
Replaced reinit by initial equation
Modelica.Mechanics.Translational.RelativeStates
Bug corrected by using modifier stateSelect = StateSelect.prefer as implementation
Modelica.Mechanics.Translational.Stop
Use stateSelect = StateSelect.prefer.
Modelica.Mechanics.Translational.Examples.PreLoad
Improved documentation and coordinate system used for example.
ModelicaAdditions.Blocks.Nonlinear.PadeDelay
Replaced reinit by initial equation
ModelicaAdditions.HeatFlow1D.Interfaces
Definition of connectors Surface_a and Surface_b:
flow SIunits.HeatFlux q; changed to flow SIunits.HeatFlowRate q;
MultiBody.Parts.InertialSystem
Icon corrected.
Adapted to Modelica 1.4
IdealGearR2T Ideal gear transforming rotational in translational motion. Position Forced movement of a flange with a reference angle given as input signal RelativeStates Definition of relative state variables
replaceable type SignalType = Realin order that the type of the signal of an input/output block can be changed to a physical type, for example:
Sine sin1(outPort(redeclare type SignalType=Modelica.SIunits.Torque))
First official release of the library.