Controllab is the owner and developer of the 20-sim software package. We use this software to create digital twins: simulation models that we use to develop and test control systems and to build training simulators. 20-sim is versatile, allowing models to be exported as C code for rapid prototyping and hardware-in-the-loop (HIL) simulation. With built-in tools such as the 3D Mechanics Editor, Controller Design Editor, and various wizards, building and simulating sophisticated systems becomes a seamless process. The software’s integrated editor and simulator ensure a smooth workflow, supporting both graphical and equation-based modeling.


20-sim Software

20-sim’s editor and simulator windows are tightly integrated for seamless workflow. The editor, which opens upon starting the 20-sim software, features a model library tree for easy drag-and-drop model creation. It supports both graphical and text-based editing, accommodating various types of models including bond graphs, physical systems, and block diagrams. The library is fully customizable, offering components for electric, mechanical, hydraulic, thermal systems, and more.

Graphical and Equation Models

Models in the 20-sim software are hierarchically oriented, consisting of a main model and submodels connected either by shared variables or physical connections. At the core, these models are described by equations in SIDOPS++, a language similar to Maple and Matlab.

20-sim software

Advanced Modeling Tools

the 20-sim software comes with a number of features to build advanced models:

  • Controller Design Editor: Design and analyze feedback systems using Bode and Nyquist plots.
  • 3D Mechanics Editor: Define mechanical systems in a 3D workspace with automatic differential equation generation.
  • Wizards: Simplify the creation of motion profiles, define cams, build servo motors, and more.

Simulation and Analysis

20-sim’s simulator compiles and optimizes models for accurate simulations. Users can set run properties, choose integration methods, adjust parameters, and configure plot properties. Results are displayed through simulation plots and 3D animations, providing comprehensive analysis capabilities. Tools for time domain and frequency domain analysis further enhance system optimization and robustness assessment.

Scripting and Code Generation

Automate tasks with 20-sim’s scripting functions, compatible with Matlab and GNU Octave. Generate C-code from any model for use in external systems, HIL simulators, and more. Customizable templates support various targets including 20-sim 4C, Matlab Simulink, and standalone C/C++ programs.


We have developed code to automate the design and use of our digital twins:

  • Import CAD drawings, assign the degrees of freedom and generate a 3D dynamics model in 20-sim and a 3D representation automatically\
  • Connect the variables in a 20-sim model to the variables in a Unity animation automatically
  • Connect the variables in a 20-sim model to the variables in a PLC automatically
  • Use scripts to generate simulation models automatically from library components
  • Use scripts to run simulation models automatically.