SimMechanics | ![]() ![]() |
Motion Singularity and Inconsistency Errors
Motion simulation errors often occur because of singularities or dividing by very small numbers. SimMechanics can integrate certain singularities, at a cost (see Choosing an ODE Solver in this chapter).
Inconsistencies in motion arise from misapplication of constraints, drivers, and actuators and from conflicting stiction requirements.
Zero Masses and Moments of Inertia
A body moving on a prismatic axis must have nonzero mass if you actuate it with forces. A body rotating about a revolute axis or pivoting about a spherical must have nonzero inertial moments about the axis or pivot if you actuate it with torques. If you want a massless rigid body, consider using a Massless Connector from the Joints/Massless Connectors sublibrary.
Alignment of Distinct Primitives
Within a single Joint block, two distinct prismatic axes or two distinct revolute axes should never align during the simulation. If either occurs, a translational or rotational DoF is lost, and SimMechanics cannot determine the subsequent motion. An example of primitive axis alignment singularity is "gimbal lock." Two of the three revolute primitive axes in the Gimbal block become parallel, reducing the number of independent DoFs in the Joint from three to two.
No Degrees of Freedom
Your machine cannot move if it has no degrees of freedom. Each Constraint, Driver, and motion-actuating Actuator block you add to a model reduces the number of independent DoFs. (See Counting Degrees of Freedom in the Modeling Mechanical Systems chapter.) Cure such errors by removing one or more of these blocks from your model, until you have at least one independent DoF.
Redundant Constraints
Some constraints can restrict what another constraint is already restricting. Fix these errors by identifying and removing the redundancies.
Violated Constraints
Some machine motions or simulations might not be able to maintain assembly tolerances at a particular simulation step while simultaneously satisfying the constraints. One or more joints become disassembled, followed by an error.
You can correct this situation in several ways. First, identify the joint, constraint, or driver causing the error and examine its physical configuration when the error occurs to isolate the conflict. Then try any combination of these steps:
See Choosing an ODE Solver, Choosing a Constraint Solver, and Constraints Pane in this chapter.
SimMechanics tries to harmonize your choices of ODE solver and solver tolerances, constraint solver and tolerances, and assembly tolerances in this dynamic hierarchy:
Conflicting Actuators
You cannot put more than one actuator on a joint primitive. The Joint Stiction Actuator block does accept an input signal for nonfrictional forces/torques, which the block adds to the stiction.
Note You can simultaneously place an initial condition actuator and a force/torque actuator on a joint primitive. |
Sticky Joints in Conflict
If your machine has two or more stiction-actuated ("sticky") joints, a conflict among them can put SimMechanics into an infinite loop and prevent determination of the machine motion. Or one locked joint can prevent the other joints, sticky or not, from moving. The machine stops.
For example, one sticky joint becomes unlocked and requires the other to lock, which then requires the first to lock.
Remove these conflicts by removing one or more stiction actuators or by changing the Joint Stiction Actuator locking thresholds.
Analysis Mode Errors
Certain restrictions apply to the analysis modes presented in Choosing an Analysis Mode in this chapter. Consult individual analysis modes for more:
![]() | Troubleshooting Simulation Errors | SimMechanics Limitations | ![]() |