Main Content

Code Generation Setup

Before You Begin

Simscape™ Multibody™ software supports code generation for fast simulation in the Simulink® environment or for model deployment onto external targets. If your goal is to obtain standalone C/C++ code for real-time simulation on an external target, you must have an active Simulink Coder™ installation.

Solver Selection

Simscape Multibody models have continuous states and require a continuous or hybrid Simulink solver. You can change solvers from the Solver pane of the Model Configuration Parameters window. Select any solver but that marked discrete (no continuous states). Consider the ODE1 fixed-step solver if you need to approximate the behavior of a discrete solver.

Target Selection

The choice of code generation target depends on the Simulink solver used. If you select a variable-step solver, you must set rsim.tlc as the system target file. You can specify the system target file from the Model Configuration Parameters window. Look for the System target file parameter in the Target selection area of the Code Generation pane.

Run-Time Parameters

You can configure most numerical block parameters as Compile-time (default) or Run-time using a drop-down list that appears beside configurable parameters. The figure shows the run-time drop-down list in a solid block dialog box. All parameters are by default Compile-time. The drop-down list is disabled when the model is in Fast Restart mode.

Compile-time parameters update in value when you recompile the model. Leave parameters as Compile-time when performing tasks that rely on inlined parameters such as model optimization. Run-time parameters update in value without the need for extra compilations. Set parameters to Run-time when tuning their values in Fast Restart mode or when simulating models that rely at least in part on generated C code.

To set a parameter as Run-time from the block dialog box, you must configure your Simscape preferences. Open the MATLAB® Preferences window, select the Simscape node, and check the Show run-time parameter settings check box. Parameters without a run-time option or with a run-time option that is inactive (i.e., “grayed out”) cannot be configured. The Length parameter in the figure is an example.

For more information about Simscape run-time parameters, see About Simscape Run-Time Parameters.

Compiler Optimization

You can set your C/C++ compiler to optimize generated code. Optimized code runs faster but compiles slower. Compilation can be especially slow in large models with many bodies. The choice of compiler can exacerbate the slow compilation times. With certain versions of Microsoft Visual C++, Simulink software may appear to hang as the model is compiled.

If a model takes unusually long to compile, consider switching to a different installed compiler or disabling compiler optimization for your model. The Clang compiler provides a suitable alternative to Microsoft Visual C++. You can perform both tasks from the Code Generation menu of the Model Configuration Parameters window.

To switch compilers, in the Toolchain settings area of the Code Generation menu, set the Toolchain parameter to a different compiler. To disable code optimization, set the Build configuration parameter to Faster Builds.