Release Notes

Introduction

Overview

In the course of the product support for SimulationX, the software receives ongoing updates and improvements. The basis for the continuous development of our software products are the requirements and suggestions from our customers in industry and education. These Release Notes document the changes between the versions of SimulationX and cover new features, enhancements and extensions of existing functionalities as well as bug fixes. For any support query, please use the HelpDesk which is our primary point of contact: http://helpdesk.simulationx.com

Release Notes Structure

The Release Notes are given as a list and follow the manual’s structure. The left side of the table contains a key which stems from processing. Please note the following:

Nxxxxx

New features in the program

Hxxxxx

Processed queries, requests addressed to the HelpDesk; the number here corresponds with the reference number at the HelpDesk

Bxxxxx

Bugs that were fixed. Changes (or new features) are described on the right-hand side.

Version 4.4.1 (October 2022) Hotfix

Solved Problems

B29381
H31176
Loading or saving parameter files in the properties dialog of components causes SimulationX to crash.
B29458
H31186
In certain models, the Variants Wizard crashes when the parameter page is opened.
B29626 The library of discrete-time signal blocks ( SignalBlocks.TimeDiscrete ) is not displayed in the library bar.

Version 4.4.1 (September 2022) Hotfix

Solved Problems

B29038 External user-defined fluids are not loaded.
B29055 Using the hydraulic interface (type InterfacesGeneral.BRSLInterfaces.HI) triggers an incorrect warning.
B29150
H30877
Exported code (for executable models and FMI) with runtime license cannot be compiled with GCC compiler.
B29151
H31085
The module Powertrain Concepts (Vehicles) has unnecessary dependencies (licenses).
B29164
H31071
Models of the GreenCity library always require a new GSA when they are simulated with CVode.

Version 4.4.1 (July 2022)

News and Changes

Software

Licensing
N10001 Customers can choose between a module-based and a token-based licensing model. This decision is usually made before purchasing SimulationX.
SimulationX 4.4 requires version V11.18.2 of the FlexNet license management. You can download it from https://myesi.esi-group.com/downloads/licensing. It also works with licenses for older SimulationX versions.
N10002 Library management has been improved. Licenses for individual libraries can now be managed directly in the Library Bar. Libraries are no longer loaded all at once during the start of the program. Instead, the Library Bar now includes preview icons to configure a library's loading behavior as well as license and version management.Unlicensed components are now also shown (grayed out) in the Library Bar. They can only be used with a valid license (on demand). Including them in the Library Bar gives the user an overview of all the available libraries that can be used in conjunction with the new token-based licensing model.
N10003 With the improved license borrowing, you can now check out and return licenses without restarting SimulationX.
Solvers
N10004 The new implicit Euler solver is a fixed-step solver which employs the DAE formulation of the model. It can be exported with an executable model or with an FMI for Co-Simulation 2.0 target. It is intended for soft real-time computations of large and stiff systems.
N10005 In order to customize the default settings for the solvers in new models, the configured model can be saved as a template to Documents\SimulationX 4.4\Settings\modelDefaults.isx which SimulationX then uses whenever a new model is created.
Code Export
N10006 Licenses for several code export targets have been merged into two general licenses valid for all target types. Code Export is now available with license check at runtime excluding the source code or without license check, but including the source code.
N10007 Code generation and code compilation in the Code Export Wizard are now available on a single page. The source code is only accessible if a valid license is available. To use the generated binaries, a special runtime license is required. Currently, only the Windows platform (x64) is supported. There is now also only one target project type for FMI. Type (co-simulation or model exchange) as well as version are specified on the project page.
N10008 The number of instructions per split function can now be set on the project page in the Code Export Wizard if the code splitting option is selected.
System Reliability Analysis
N10009 A user-defined Python path can now be specified in the Fault Data Analysis (FDA).
N10010 Handling of imbalanced classes in the Fault Data Analysis (FDA) has been improved.
Other Features
N10011 SimulationX now supports physical connectors (terminals) for SimulationX connectors, a core feature of the new FMI version 3.0, as well as Icons, Early Return, EventMode and IntermediateUpdateMode. For more details, please refer to the release of FMI 3.0.
N10012 The integrated Jupyter Notebook in SimulationX allows users to write, document and execute Python scripts directly in SimulationX. The scripts can be used to automate workflows, for pre- and post-processing tasks or result visualization, for example. The scripts are saved together with the model in the SimulationX project file (*.isx).
N10013 Displaying large tables in the output area, e.g. Jacobian matrices, has been improved.
N10014 A new button for warnings now allows you to jump to the full message in the output area.
N10015 Handling of time-varying signals from assert conditions in the steady-state simulation has been improved.
N10016 Elements which can implement noise can now use the new parameter seed0 to generate random number sequences. The same seed always yields the same number sequence.
N10017 In chemical equations, the SI-derived unit J/mol is now available for molar energy.

Libraries

Battery Library
N10018 This new library allows for modeling the electrical and thermal behavior of battery cells and stacks. The battery parameters depend on operating conditions, such as current, open-circuit voltage or temperature. Aging and frequency response behavior are currently not taken into account.
BRSL — Rexroth Simulation Library
N10019 The new BRSL — Rexroth Simulation Library from Bosch Rexroth is a 1D simulation library with the focus on hydraulic and electric drive technology. It is the one-stop shop solution for modeling the static, dynamic and kinematic properties of an entire machine or plant as a digital twin. The library can be easily combined with other Modelica libraries in one model. It includes generic components for manual parameterization with the help of data sheets for greater flexibility as well as pre-configured and validated models of Bosch Rexroth products, such as cylinders, drives, pumps and valves.
Driving Maneuvers
N10020 The SXTire sub-library for wheel contacts includes a new Curve-Based Tire Contact model without inertia (type VehiclesMBS.Components.Wheels.SXTire.CBTireContact) and a Curve-Based Wheel model with inertia (VehiclesMBS.Components.Wheels.SXTire.CBWheel) which can be used for for real-time models on smooth, uneven surfaces with low dynamic effects (e.g. roads).
Green City
N10021 The Green City library has been updated. In the model Environment2, the calculation of time has been improved (new DST calculation, updated GMT data integration, better UTC synchronization). In addition, the control logic of the HeatPump element has been adjusted.
Heat Transfer
N10022 The Wall element (type HeatTransfer.BasicElements.Solids.Wall) includes a 2D multiChart diagram for the new visualization of temperature distribution.
N10023 An additional term was introduced for the mass balance to avoid numerical mass losses.
MBS Mechanics
N10024 The new model for a circular contact with triangulated surfaces (type Mechanics.MechanicsMBS.Contacts.SurfaceContacts.Circle), which can be connected to MBS elements, can be used for the detection and force calculation of a contactBetween a parameterized circle and a global surface, which allows for easy modeling of a wheel or a curved contact area on a subsurface.
N10025 The internal forces and moments of the elements SDBcartesian, SDBcylindric and SDBsymmetric from the Force Elements can now be scaled with the spring force factors scaleFs, the damping force factors scaleFd, the spring moment factors scaleTs and the damping moment factors scaleTd.
General
N10026 Elements of the Pre- and Post-Processing Tools sub-library can now be used with Python virtual environments (parameter venv) (see Python installation).
Electrical and Electronics
N10027 Various models now compute with fewer state variables and thus faster.
Vehicle Pneumatics
N10028 An additional option in the air spring model is available to describe the load capacity of the air spring with an effective area characteristic.
Belt Conveyors
N10029 The calculation of the force FM is based on a new formula for more accurate results at 0°< gamma< 360° and when the strand forces F1 and F2 differ greatly.
Thermal-Fluid
N10030 The library was updated with the two new table-based fluids R1224ydz and R1234zee.
N10031 The new Filler2 (type ThermoFluidics.Filler2) can be used to specify the initial conditions in closed thermodynamic cycles with a script.

Example Models

New Models
N10032 Five new example models demonstrate how the new Batteries Library is used for component tests with HPPC profile, for the combination with the drive concepts library, for parameterization and for thermal coupling.
N10033 Bosch Rexroth AG has provided a new example model of a hydraulic axis consisting of BRSL components. The same model shows in an additional version how the SimulationX Hydraulics library can be coupled with the BRSL.
N10034 For the simulation of a vehicle driving over cobblestones, potholes and ramps, there are now three new FTire models available. The existing FTire models have been revised.
N10035 Two new models demonstrate the use of the new tire element based on characteristic curves (type VehiclesMBS.Components.Wheels.SXTire.CBWheel) in a car and on a test rig.
N10036 A tracked demolition crane travels over uneven ground in the new example model with circle contacts (type Mechanics.MechanicsMBS.Contacts.SurfaceContacts.Circle).
N10037 For Python users, three new example models illustrate the use of the Jupyter Notebook in the Script View.
N10038 Five new models demonstrate the advanced parameterization of electric actuators with the help of JSOL's JMAG-RT interface.
N10039 The operation of an omega drive along a belt with 3D point contacts on uneven ground is shown in the OmegaDrive.isx example model.
Updated Models
N10040 Two models GasTurbineEngineCycleWithWaterCooling.isx and LoadSensingHydraulicMotor.isx now compute infinitely using the new implicit Euler solver with fixed step-sizes.
N10041 The sample collection includes the updated model FourWheelVehicle.isx.

Solved Problems

Software

B25953 If a package version specified with a uses annotation cannot be found when SimulationX is trying to load a model or library, another existing version is loaded without warning.
B26097 Resetting the calculation triggers a new symbolic analysis (GSA).
B26153 Code generation can take a long time for models with non-scalar, discrete variables.
B26703
H28915
The cross section's axes in the free visualization are swapped.
B26908
H30557
The IncludeDirectory and LibraryDirectory annotations of external functions are ignored if they relate to the function's class but not to the external statement.
B27113
H30599
Components of protectedBase classes are not protected.
B27149 Solving algebraic blocks during the calculation of the model may cause an infinite loop. Errors are sometimes ignored when algebraic blocks are computed.
B27157 Nested function calls in derivatives may cause compiled solvers to use more memory.
B27257
H30667
Files which were not modified during the conversion (Modelica Conversion Scripts) are not saved, which leaves the uses annotation unchanged.
B27258
H30466
As a piston accumulator, the hydropneumatic accumulator has an incorrect exponent (0.46 instead of 0.49) in the equation for the thermal eigentime constant tau0.
B27275 Code-generated models may in rare cases cause the assert error "Cast string is not supported.".
B27287
H30703
The annotation Protection(access = Access.hide) is also evaluated for unencrypted classes.
B27290
H30630
Dragging results into an existing result window with manual scaling may cause the new curve to be displayed incorrectly.
B27294
H30700
The CAD import crashes if the DXF file contains lines with more than 200 characters.
B27322 Logging cannot be switched on for parameters with the hideResult=false annotation.
B27328 The for operator does not create an empty vector if SimulationX iterates over an empty range.
B27336
H30386
The function to save the initial state at a control point does not work.
B27351
H30712
Characteristic curves in replaceable models cannot be changed.
B27374
H30591
SimulationX may crash during the calculation/animation of models from the Driving Maneuvers library.
B27379 Reloading a loaded package from a different directory causes SimulationX to crash.
B27391 Non-alphanumeric characters in PLCSIM Advanced names may cause errors in the communication between the SimulationX model and the PLCSIM Advanced instance.
B27397 During code export, the include paths are sometimes populated incorrectly in the project files for Visual Studio, which renders the project unusable in Visual Studio.
B27399
H30694
The Excel AddIn does not transfer all of the multidimensional parameters correctly to SimulationX.
B27401 The use of homotopy may cause SimulationX to crash during the computation of executable models generated through code export.
B27419 Opening models that previously included embedded data (e.g. in the Resources folder of an ISX model), causes the archiveDirectory() function to return an incomplete path to the external data.
B27421 Incorrect names for parameters as well as for inputs and outputs cause unexpected results during the code export via the COM interface.
B27439
H30686
Optimization during symbolic analysis takes a long time for models with a large number of simple equations.
B27450
H30736
The size(,) operator in vectorized components produces incorrect results.
B27452
H30753
States with negative height or width cannot be selected in the StateChart Designer.
B27460 Relative path names for ModelicaTables do not work in FMUs.
B27482 Exporting results as TXT or CSV files causes SimulationX to crash if the file is used by another application.
B27503
H30677
The vectorized application of functions may cause a general error (Check.GeneralError) during the symbolic analysis.
B27516
H30770
During code export, vector components for inputs, outputs and parameters are stored incorrectly in the model.
B27858 Undoing the deletion of a text box restores the box at an incorrect, partially invisible position.
B27864 The help files of local types cannot be displayed.
B27870
H30792
If a top-level type has the name Parameter and derives from SignalBlocks.Function, SimulationX freezes on loading.
B27881 Characteristic curves are not displayed in the tree for the NI VeriStand project type in the Code Export Wizard.
B27900 Modifying a replaceable component may cause the corresponding frames to be displayed at the wrong position.
B27904 The FFT analysis ignores user-defined time intervals in the result window.
B27930
H30819
Compiled solvers cause translation problems with examples of the ExternalData library (https://github.com/modelica-3rdparty/ExternData/).
B27947
H30820
The ResultWindow.Save function of the COM interface always saves curves related to the current page. The iPage parameter is ignored.
B27953
H30819
The simulation of examples from the ExternData Modelica library causes syntax errors during the computation.
B27954 Tables are displayed incorrectly in the output area.
B28135
H30822
If the warning level is set to "pedantic", instances of SignalBlocks.BSpline cause a warning about a non-initialized function output from SignalBlocks.BSpline.BSplineEvalDer.
B28289
H30811
Variant calculations with the SRA Add-In fail if termCond is used.
B28296 If there is insufficient space, curves in the result window are mirrored.
B28299 Text in formatted text boxes wraps differently in edit mode.
B28300 Using the arrow keys in edit mode for text boxes may cause display errors in the Diagram View.
B28302
H30788
The TestCase annotation (Modelica 3.4) is not implemented.
B28318 Special characters in the compiler's output are displayed incorrectly in the output area.
B28344 Characteristic curves in partitions of Synchronous models may cause translation errors with compiled solvers.
B28371 An entry in the PAM_LMD_LICENSE_FILE environment variable overrides the license settings of SimulationX.
B28384 The view of a model camera is shifted in an exported video.
B28385
H30862
The Collision modification in the 3D Scene Explorer is not restricted to model elements.
B28399 Loops inside Modelica functions cause errors with compiled solvers.
B28442 Importing text files into 2D curves may cause errors.
B28464
H30862
Collision detection does not work with all available geometries.
B28490
H30905
The symbolic analysis of models with a great number of variables and attributes takes a long time.
B28508
H30876
Exporting code for MATLAB/Simulink S-Function causes an error during compilation if MinGW is used as the compiler.
B28511
H30873
Generated code under Linux with compiler in ANSI mode causes errors.
B28529 Component symbols of compounds are not displayed correctly in rare occasions.
B28540 The symbolic analysis takes a long time for models with a great number of multi-dimensional string variables.
B28542 The animation of loading belt segments (belt and pipe conveyors) does not work.
B28567
H30884
If a calculated model is loaded and a symbolic analysis for the animation is performed without errors, occurring warning messages are not displayed.
B28744
H30975
OBJ import does not support special file formats.
B28756 Freezing signals in result windows of a steady-state simulation causes SimulationX to crash.

Libraries

B26731 The Thermal-Fluid library exhibits a mass loss in areas of phase transition.
B27114 The calculation of the normal force for the HuntCrossley and Flores options in the point contact element (type Mechanics.MechanicsMBS.Contacts.SurfaceContacts.Point) are incorrect.
B27268 SignalBlocks.Special.Analysis cannot be defined as a vector.
B27492 The element type Mechanics.MechanicsMBS.Contacts.SurfaceContacts.Ground is not shown in the 3D Scene Explorer.
B27672
H30777
An incorrect friction torque is calculated for element type PowerTransmissionMBS.BeltDrives.Pulleys.Pulley in case of kindF=="Rigid Friction (with Stick-Slip).
B27849 The element type VehiclesMBS.Vehicles.Bodies.Vehicle.velRel2 is calculated in the wrong coordinate system, and the element type VehiclesMBS.Vehicles.Bodies.Vehicle.omRel2 has an incorrect unit.
B27948 Transitions in the elastic friction point always assume the adhesive state, which may cause an infinite loop in the iteration of the initialization event.
B28457 The pressure valve of type Hydraulics.Valves.PressureValves.PressureValveExtXYb does not start opening at the initial value.
B28576 The components of type Mechanics.MechanicsMBS.Contacts.SurfaceContacts.Ground disappears when the model is reset.
B28812 Duplicates of types with ActivityGroup may in rare cases cause the model to become singular.

Known Issues

  • GCC compiler in all SimulationX versions: Due to a bug in the GCC compiler that comes with SimulationX, the program may freeze or crash during or after a simulation. Until a newer and fixed version of the GCC compiler becomes available, resort to one of the following workarounds:
    1. Use a supported Visual Studio compiler. It may require a valid license. For more information about the various Visual Studio products and their license conditions, go to Visual Studio: IDE and Code Editor for Software Developers and Teams
    2. Enable Code SplittingBy setting the b.SplitCodeGen entry in the advanced solver settings of the preferences for transient simulations to true. For new models, this is the default setting. For models created with a previous version of SimulationX, check this setting before you run a simulation and save the model after making any changes.

Useful Tips

System Requirements

For the installation and execution of SimulationX you need Windows 8 (64 bit) or later.

Some features of SimulationX need a C/C++ compiler. It is recommended to install the Microsoft Visual Studio 2015. About the conditions for use of the free Express editions or Community editions of Visual Studio inform you at www.visualstudio.com

Support of the Modeling Language Modelica

SimulationX 4.4 supports the modeling language Modelica in accordance with the Modelica Language Specification Version 3.4 with certain exceptions. The following features are currently not supported (the statements in brackets refer to the corresponding section in the Modelica Language Specification 3.4):
  • Annotations for user input (section 17.5.7)
    • OnMouseDownSetBoolean
    • OnMouseUpSetBoolean
    • OnMouseMoveXSetReal
    • OnMouseMoveYSetReal
    • OnMouseDownEditReal
    • OnMouseDownEditInteger
    • OnMouseDownEditString

Support of the Modelica Standard Library

SimulationX 4.4 includes version 4.0 of the Modelica Standard Library.

Performance

There are several ways to improve the performance of SimulationX:

  • Animating the Diagram View during simulations is especially demanding for older computers with only one CPU core. Disable this feature if you do not need it for real-time displays like bars, tachometers or Modelica graphics (Extras/Options/GeneralAnimation).
  • Providing trace information requires a great deal of computing resources even if the output window is minimized. Enable only those options under Simulation/Transient Settings/Tracing that you really need. Use the model parameter traceOn (tracing enabled) to limit the output to the relevant range (e.g.traceOn == time>0.6).

Using External Solvers for Simulations

  • Before the computation, C code generation of the model and a subsequent automated compilation is performed. Thus, the restrictions described below regarding supported model features apply. In order to use external solvers, a Microsoft Compiler.
  • It is recommended to install the Microsoft Visual Studio 2015.
  • Only certain tracing functions are supported.
  • Currently, not every type of analysis is supported for this solver. This affects:
    • Equilibrium computations
    • Linear system analysis (frequency response, pole-zero plot, export of system matrices)
  • Please employ the BDF or MEBDF solver for these analyses.
  • Reset points are not taken into account.
  • Initializing the model to a specific state is not possible.

Code Export

  • If external functions or objects are used in the model, the exported code has to be updated. During the export, a warning is displayed for these cases.
  • Exported C code of thermal-fluid models containing NIST fluids runs exclusively on Windows. The fluid properties are computed in external modules which are only available as binary files for Windows.

Rigid Mechanical End Stops and other Model Features

Code export of models with certain specific features is currently not supported. This predominantly affects systems of equations whose structure changes considerably during simulation. This applies especially to rigid mechanical end stops, ideal electrical diodes, and models featuring unipolar stepping motors. If the model contains a rigid mechanical end stop or an ideal electrical diode (Electricity.Analog.Ideal.IdealDiode), a corresponding error message is displayed during code export. A number of model objects can be parameterized to internally use rigid mechanical end stops:

  • The end stop model of the Mechanics library: Mechanics.Translation.EndStop, Mechanics.Rotation.EndStop
  • Basic mechanical elements which can be switched to rigid with backlash: Mechanics.Translation.SpringDamper, Mechanics.Rotation.SpringDamper
  • Joint models included in the MBS Mechanics library
  • Couplings, clutches, actuating elements, and transmissions included in the Power Transmission library
  • Hydraulic and pneumatic cylinder models

For the code export to succeed, it is necessary to switch to the option “Elastic End Stop”. A spring damper element is inserted in this case; Thus, it is necessary to make sure during parameterization to provide a sufficiently high damping. If the end stop is not applied between two masses or inertias but against absolute, the end stop models Mechanics.Translation.AbsEndStop or Mechanics.Rotation.AbsEndStop, respectively, can be used and set to “rigid”. The code export supports these objects.

Periodic Steady State Simulation

Periodic steady state simulations with dynamic state selection may cause wrong results or convergence errors. Currently, the index reduction forces dynamic state selection for certain models, such as multi-body systems with general joints. A warning is generated for those models. If the variables which are appropriate to describe the motion throughout the whole simulation are known in advance the stateSelect attribute of those variables can be set to "always". This can completely avoid dynamic state selection and the connected restrictions. Alternatively the index reduction can be switched off by checking the box "No index reduction" on the page "Symbolic Analysis" of the simulation settings dialog for the periodic steady state simulation. If the model contains nonlinear hidden constraints such as a crank drive with rigid shaft or a transmission gear one of the nonlinear methods should be selected for the periodic steady state simulation. The nonlinear periodic steady state simulation computes all result quantities except the excitation results correctly without index reduction.

Choices Annotations in the typeDesigner

Choices annotations generated with the TypeDesigner do not contain any modifications. The modifications can be subsequently defined in the Modelica source code.

Choices without modifications can be defined by the typeDesigner:

replaceable typeBase model1 annotation(

choices(choice(redeclare replaceable typeA)));

end Container;

Choices with modifications can only defined in the Modelica view:

replaceable typeBase model1 annotation(

choices(choice(redeclare replaceable typeA(p1=10))));

end Container;