What is new in 20-sim 4.7?

20-sim 4.7 is the newest version. You can download 20-sim 4.7 from this website. 20-sim 4.7 has some important new features.


  • 20-sim 4.7 has been updated to support the Microsoft Windows 10 Creators Update and Fall Creators Update. While older versions of 20-sim will (mostly) work under Windows 10, 20-sim 4.7 has been specially developed and tested for latest releases of Windows 10.
  • We have continued our efforts to support the FMI standard for co-simulation.



  • You can now delete a submodel but keep the connected signals or ports with the Dissolve command.
  • FMU import: You can now import models from other programs (supporting FMI 2.0 co-simulation export) into 20-sim. Simply drag and drop the model (with the extension .fmu) into 20-sim and connect.
  • FMU export: You can now export a 20-sim model as an FMU with a variable step integration method (using VODE Adams).
  • FMU export is now part of the File – Export menu.
  • (Re-)drawing of large models in the Editor is faster.
  • In the Interface Editor use the Move Up and Move Down buttons to order the list of ports.
  • Drawing closed curves has been improved.
  • The Search box now also shows port names of graphical models.
  • Flat drawing style for new submodels. A shadow is no longer added by default.
  • The Interface Editor now has support for ordering ports.
  • “Edit Globals” added to the right-click menu.
  • Connecting boolean signals now allows for inserting And/Or/Xor/Nand/Nor blocks similator to the PlusMinus/MultiplyDivide blocks for real and integer signals.


  • In the Parameters Editor You can set initial values to zero with the Initials to Zero command.
  • In plots you can now select parameters to be displayed.
  • Faster plotting for fixed step-size simulations (pre-allocates required memory).
  • The Variable Chooser dialog for selecting plot variables now also shows parameters.
  • It is now possible to copy and paste curves from one plot to another.
  • It is now possible to copy and paste plots from one window to another.
  • Real-time simulation timer is now more accurate.


  • The function settoolsetting has been added to set specific simulation options from within the model during simulation.
  • Type casting is supported to prevent warnings when converting data types.


  • You can now play a sound during a simulation or play a sound to a specific event generated during the simulation.
  • hydraulic line model has been added.
  • Most of the valves and pumps in the Hydraulics library now have parasitic volumes to minimize algebraic loops and speed up simulations of hydraulic models.
  • The Joystick library block and example model are updated to support multiple joysticks.


  • Added a PlaySound example model.

3D Animation

  • Import of large binary STL-files in the 3D animation is faster.

3D Mechanics

  • The center of mass is shown when you select a body.

Real Time Toolbox

  • All code generation templates:
    • Support for the Event, EventUp/EventDown and TimeEvent functionality of 20-sim.
    • Generate more efficient code for matrix manipulations.
    • Extra code filtering to generate only the code necessary for the selected model
    • Visual Studio 2017 Solution and build support added
  • Arduino support: the Arduino code generation template now supports all AVR and ARM boards that are supported by the Arduino IDE and not only the Arduino Uno and Due.
  • FMU 1.0/2.0 export for 20-sim submodel:
    • Multi-instance support
    • Allow parameter updates during co-simulation.
    • Vode-Adams integration method support.
    • fmi2GetFMUstate/fmi2SetFMUstate support (fixed step-size integration methods only)
    • Many small improvements & compatibility fixes.


  • Support for Octave 4.2.0 / 4.2.1 for Windows (32-bit and 64-bit).
  • Allow set/reset of the endless simulation option from scripting using xxsimSetSettings (Octave) / set_settings (Python).
  • New Octave/Matlab scripting functions:
    • xxsimAddPlotWindow
    • xxsimAddPlotToWindow
    • xxsimAddCurveToPlot
    • xxsimGetCurveIDFromName
    • xxsimGetCurvesFromPlot
    • xxsimGetSubmodelProperties
    • xxsimHideCurve
    • xxsimHidePlot
    • xxsimHidePlotWindow
    • xxsimRemoveCurveFromPlot
    • xxsimRemovePlotFromWindow
    • xxsimReplaceSubmodel
    • xxsimSaveSubmodel
    • xxsimGotoSubmodel
    • xxsimGetWindowSize
    • xxsimSetWindowSize
  • New Python scripting functions:
    • add_plot_window
    • add_plot_to_window
    • add_curve_to_plot
    • get_curves_from_plot
    • hide_curve
    • hide_plot
    • hide_plot_window
    • remove_curve_from_plot
    • remove_plot_from_window
    • remove_plot_window
    • replace_submodel
    • save_submodel
    • goto_submodel
    • get_submodel_properties
    • get_window_size
    • set_window_size


  • Keep C-code, M-code and library path settings on 20-sim update
  • Installation in a different directory (other than the default) did uninstall an existing installation in the default directory

Bugfixes & Minor improvements


  • Use the Windows 7 “Browse for folder” dialog
  • Updated Dutch translation


  • Connection to license server now uses SSL


  • Drag-drop a new model on an equation model did not open the new model. Drag-drop only worked on graphical models
  • Fixed: Drag-drop items from the explorer to 20-sim did not work anymore in Windows 10 Fall Creators update
  • MLP Network Editor: fix faulty display of names of inputs & outputs
  • Improved: submodel implementation switching is now faster
  • Fixed: Spline figures were drawn with rounding effects
  • Quantities and units: Make sure that the domain name does not contain spaces (not supported)
  • Fixed: Tooltip evaluation of an expression could freeze 20-sim
  • Graph editor open could result in a weird window size and position on multi-display systems
  • Bond graph: Fixed: a node submodel was introduced into a bond-graph connection instead of a junction when drawing a new connection onto an existing bond
  • Fixed: Selection of items close to a submodel with long text labels was difficult
  • Fixed a stability issue when selecting a search result line
  • Fixed a stability issue during model open
  • Fixed: XML parsing error: ‘no element found’ at line 1
  • Fixed: Implode action looses non-zero initialvalues for variable names that end with numbers
  • Fixed: File Open sometimes asked twice if you would like to save the current model


  • Fixed: The model “Block Diagram Mainmodel” from “Getting Started Manual” did not open

Code generation

  • Targets.ini learned a new (optional) option to clear the target directory for code generation: cleartargetdirectory=true
  • Added: New token %INITIALIZE_PARAMETERS2% to assign parameter values to a constant array like “const XXDouble xx_P = {…};”
  • Initialize variables memory to 0.0
  • Simulink: code generation failed for initial state values that are calculated in initialequations
  • FMI Export: FMU did not create an output signal when the output is a state
  • FMI Export: 20-sim exports with hierarchical names. Add the missing “variableNamingConvention=’structured’ to the modelDescription.xml
  • FMI Export: Array index starts with 0 => should be 1


  • Plot modes documentation updates
  • Added: PhaseSensor block
  • Updated keyboard shortcut key list
  • Reference Manual: removed the non-existing 3D-animation beam element


  • Fixed: 3D plot name was not stored in the model
  • Fixed: hidden variables were not shown as initial values
  • Fixed: new plot windows did not have a default name
  • Fixed a division by zero livelock during linearization
  • Fixed: CSV file reader livelock when reading an invalid CSV file
  • Fixed: Stopping the simulation occasionally showed “Message not understood: #checkForAutoAccept’
  • Fixed a stability issue in the numerical values dialog
  • Parameter dialog: unit combo box sometimes showed the wrong unit

3D Animation

  • Fixed: 3D object spring: Lower Side Closed flag was not stored in the model
  • Fixed: Unapplying a background image in a 3D plot was not stored in the model
  • Fixed: Spot Exponent in Light 3D object was not stored in the model
  • Fixed: Light objects in 3D animation cannot get Map color types.

3D Mechanics editor

  • Fixed: Joint3D wrong if checked in UpdateHingePoints


  • Allow starting 20-sim with a non-default scripting port
  • Fixed model open/save/close/process for model names and paths that contain an ampersand