How to avoid kinematic singularities in a 3D externally loaded and actuated SimMechanics model?

10 views (last 30 days)
In an attempt to model multiple independently actuated kinematic systems in SimMechanics (2nd gen, Matlab 2014a), I fail to simulate the model singularity-free. It seems that adding loads to some solids somehow lets SimMechanics think it should override particular degrees of freedom.
My case (see image) is a system of:
  • Two frames (red) hinged on their own hinge axis.
  • Both hinged frames are connected by a rotary actuated linkage (dark blue).
  • The hinged frames are interconnected by two bars in between them (light blue).
  • The bars are externally loaded at equally spaced points (indicated by the green spheres).
  • The hinged frames are set to a sine angular velocity input. The hinged blue link is set to computed torque.
My attempt at simulating the whole system:
  • Add a spherical joint and bearing joint (respectively) at the ends of the connecting bars. This way any asynchronous motion is allowed to occur.
  • Removing the loads sometimes leads to a successful simulation, not always though.
Typical error:
  • There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)
  • In the dynamically coupled component containing [...] there is insufficient force or torque actuation to achieve the specified motion trajectories. This could be due to a kinematic singularity or due to a lack of adjustable force or torque in the necessary directions. Solve this problem by changing the specified motion trajectory to avoid singularities and non-realizable directions, or by changing the sets of joint primitives with input motion or computed torque actuation.
The main goal of simulating the system is extracting the constraint forces at each time step. All bodies are massless (density or mass set to zero).

Answers (1)

Steve Miller
Steve Miller on 6 Mar 2018
I tested this model in R2017b. The model showed the error indicated in the question. The problem was that a fixed-step solver with too large of a step size was selected. Changing to a variable-step solver allows the solver to choose an appropriate step size and solve the equations properly.
--Steve

Categories

Find more on Simulation and Analysis in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!