# 20-sim

20-sim is a commercial modeling and simulation program for multi-domain dynamic systems, which is developed by Controllab. 20-sim allows models to be entered as equations, block diagrams, bond graphs and physical components. 20-sim is used for modeling complex multi-domain systems and for the development of control systems.

## Use

20-sim supports four methods for modeling dynamic systems: iconic diagrams, block diagrams, bond graphs and equations. All these methods are allowed to be used in one model. The package has advanced support for bond graph modeling, making it considered versatile while retaining user-friendliness.
For modeling physical systems, the package provides libraries for electrical systems, mechanical systems, hydraulics systems and thermal systems. For block diagrams, libraries comparable to those of Simulink, are provided. A feature of the software is the option to create models with differential equations and package them as block diagram elements or physical components.
20-sim models can be simulated using state of the art numerical integration methods. After checking and processing, models are directly converted into machine code, resulting in high speed simulations. Unlike Simulink, simulation results are shown in 20-sim in a separate window called the Simulator. The simulator is versatile: plots can be displayed horizontally and vertically as time and frequency based plots and 3D animations.
20-sim is self containing, i.e. no additional software is required and all toolboxes are included. Toolboxes are available for model building, time domain analysis, frequency domain analysis and controller design. To enable scripting it is necessary to install either Matlab, GNU Octave, or Python. The last is included as an optional feature in the 20-sim installer.

## Reviews

20-sim is considered as highly rated by the bond graph community, due to its extended support of bond graph modeling. According to Borutzky, only "20-sim, MS1 and Symbols can be categorized as a fully integrated (multi-formalism) modeling and simulation environments especially supporting bond graphs".
Roddeck compares several modeling and simulation tools like Simulink, Labview and 20-sim. Although Roddeck acknowledges the market leadership of Simulink, he states that an advantage of 20-sim is the direct input of bond graphs in 20-sim and the availability of built-in tools for FFT-analysis and 3D mechanical modeling. Both of these functions are not present in Simulink.
Simulation Engineering by J. Ledin gives practical guidelines for modeling and simulation of dynamic systems, a chapter of which is spent on simulation tools. According to Ledin, "20-sim differs from other simulation tools like Simulink and VisSim in that it supports four methods for modeling dynamic systems: iconic diagrams, block diagrams, bond graphs and equations. This allows for example, the construction of electrical circuit simulations using standard symbols to represent components, such as op-amps and capacitors." A weak point, according to Ledin is the missing capability for distributed simulation in 20-sim.

## Add-on products

20-sim offers tight integration with 20-sim 4C. Any 20-sim model can be exported as C-code to 20-sim 4C where it can be used for deployment on hardware. Typical use is the development of controllers for embedded software and the creation of "virtual plants" for use in hardware-in-the-loop simulators. 20-sim can be controlled by scripting, allowing task automation and scenario building. Scripting is supported in Matlab or GNU Octave, and Python (since v4.6).
Next to scripting, 20-sim has a tight connection with Matlab, GNU Octave and Simulink allowing the import and export of data on many levels. The export of 20-sim models as M-files or S-functions is the most prominent example.

## History

20-sim is the redevelopment of the simulation software package TUTSIM, which was developed at the Control Laboratory of the University of Twente. While TUTSIM was sold in the late 70's, research into modeling and simulation continued at the laboratory. A new program was developed as part of the Ph.D. project of Jan Broenink. The program was equipped with a graphical user interface and allowed the creation of models by bond graphs. The prototype name for this modeling and simulation package was CAMAS. While CAMAS was all built around bond graphs, a new prototype package called MAX was developed to investigate object oriented modeling techniques and modeling by iconic diagrams. After extensive testing, in August 1995 version 1.0 of the software was commercially released under the trade name 20-sim (Twente Sim). The trade name refers to the origin (University of Twente) of the package and the region (Twente) where it was made. The company Controllab Products was established to further develop and distribute the package.

## Release history

* 1995: 20-sim 1.0 (first commercial release of the software)
* 1997: 20-sim 2.0 (C-code Generation)
* 1999: 20-sim 3.0 (New GUI)
* 2000: 20-sim 3.1 (Iconic Diagrams)
* 2002: 20-sim 3.2 (Wizards)
* 2002: 20-sim 3.3 (Frequency Domain)
* 2005: 20-sim 3.6 (3D Mechanics Toolbox)
* 2008: 20-sim 4.0 (New GUI)
* 2011: 20-sim 4.2 (Dynamic Error Budgeting)
* 2013: 20-sim 4.4 (Scripting)
* 2014: 20-sim 4.5 (Larger models)
* 2015: 20-sim 4.6 (FMI/FMU support, Python Scripting)