This content is specific to Simscape™ Multibody™ First Generation software. First-generation features are slated to be deprecated and should be avoided.

About Simscape Multibody and Simulink Limitations

Some Simulink® features and tools either do not work with models containing Simscape Multibody blocks or work only with restrictions. Others work with Simscape Multibody models but only on the normal Simulink blocks in those models.

Continuous Sample Times Required

The sample times of all Simscape Multibody blocks are always continuous, and you cannot use them with discrete solvers. You also cannot override the sample time of a nonvirtual subsystem containing Simscape Multibody blocks.

Restricted Simulink Tools

Certain Simulink tools are restricted in use with Simscape Multibody software.

  • A Simscape Multibody model with closed loops cannot be linearized with the Simulink linmod2 command.

  • Enabled subsystems can contain Simscape Multibody blocks. But you should always set the States when enabling parameter in the Enable dialog to held for the subsystem's Enable port.

    Setting States when enabling to reset is not supported and can lead to simulation errors.

  • Simulink configurable subsystems work with Simscape Multibody blocks only if all of the block choices have consistent port signatures.

  • For Iterator, Function-Call, Triggered, and While Iterator nonvirtual subsystems cannot contain Simscape Multibody blocks.

  • An atomic subsystem with a user-specified (noninherited) sample time cannot contain Simscape Multibody blocks.

  • Simscape Multibody software supports external mode, but without visualization.

  • Simscape Multibody software supports Simulink model referencing, with the following restrictions. For more information on model referencing, see Overview of Model Referencing (Simulink) in the Simulink documentation.

    • A Simscape Multibody model can be referenced only once by another model.

    • Simscape Multibody software does not support reparameterization in a referencing block.

    • A Simscape Multibody model cannot be visualized if it is referenced in Model Reference Accelerated Mode.

      You can both reference and visualize a Simscape Multibody model in Model Reference Normal Mode.

  • The Simulink Profiler is not optimized for Simscape Multibody. The Profiler cannot list Simscape Multibody functions block by block, as it does with Simulink models. Function names do not correspond to well-defined Simscape Multibody blocks.

Simulink Tools Not Compatible with Simscape Multibody Blocks

Some Simulink tools and features do not work with Simscape Multibody blocks:

  • Simscape Multibody block dialogs do not accept Simulink.Parameter objects as parameter values.

  • Execution order tags do not appear on Simscape Multibody blocks.

  • Simscape Multibody blocks do not invoke optional callbacks that you define.

  • You cannot set breakpoints on Simscape Multibody blocks.

  • Reusable subsystems cannot contain Simscape Multibody blocks.

  • You cannot use the Simulink Fixed-Point Tool with Simscape Multibody blocks.

  • The Report Generator reports Simscape Multibody block properties incompletely.

  • SimState is not supported with Simscape Multibody blocks and supports only regular Simulink states, not the mechanical ones.

    Use mech_stateVectorMgr and related Simscape Multibody functions to work with the mechanical states.

Most Tunable Parameters Not Supported by Simscape Multibody Software

You cannot tune most Simscape Multibody block parameters during simulation.

The exceptions that you can tune are:

Restrictions on Two-Dimensional Simulation

Certain blocks are not supported in two-dimensional simulation mode. These include disassembled joints, massless connectors, and joints that can move in three dimensions. See Choosing Your Machine's Dimensionality.

Restrictions with Generated Code

Code generated from models containing Simscape Multibody blocks has certain limitations.

Stiction-Related Algebraic Loops Disabled

Stiction implemented with Joint Stiction Actuator blocks requires algebraic loops iterated at a single time step to detect discrete events. In generated code versions of models with stiction, the mode iteration to determine joint locking and unlocking instead occurs over multiple time steps, possibly reducing simulation accuracy.

Closed-Loop Limitations

Closed-loop models in certain analysis mode configurations use nonlinear solvers with no upper limit on iterations. Code generated from such models is valid but, in general, not truly “real time.” These configurations include:

  • Forward Dynamics mode when Constraint solver type in the Machine Environment block is set to Machine Precision or Tolerancing

  • Kinematics mode

Restrictions on Code Generated from Two-Dimensional Machines

If you generate code from a model containing one or more machines simulated in two dimensions, the generated code is also restricted to two-dimensional motion. Thus, if you change run-time parameters in the generated code, you must ensure that the new values do not violate the two-dimensional motion restriction.

The choice of machine dimensionality is either automatic or manual, but this restriction on generated code applies in either case. See Choosing Your Machine's Dimensionality.

Restriction on S-Functions Generated from Simscape Multibody

You cannot generate code from a Simscape Multibody model that itself contains one or more S-functions generated from other Simscape Multibody models.

Was this topic helpful?