SCARA Robot simulation not work

10 views (last 30 days)
DOREL COMSA
DOREL COMSA on 21 Jan 2023
Answered: Sakshay on 16 Mar 2023
Hello,
I am trying to do a simulation for a SCARA robot with inverse kinematics implemented and close loop.
When I try to simulate I receive next error:
"An error occurred while running the simulation and the simulation was terminated
Caused by:
  • Simulink cannot solve the algebraic loop containing 'Simulation_Scara_Step/Inverse Kinematic' at time 0.0716851955825622 due to one of the following reasons: the model is ill-defined i.e., the system equations do not have a solution; or the nonlinear equation solver failed to converge due to numerical issues. To rule out solver convergence as the cause of this error, follow either of the suggested actions. If the error persists in spite of the above changes, then the model is likely ill-defined and requires modification.
Suggested Actions
Reduce the RelTol parameter so that the solver takes smaller time steps.Open
Component:Simulink | Category:Block error"
I tried to reduce Relative tolerance to 1e-100 but it doesn't work, when I changed this value I encountered the next error:
"['Simulation_Scara_Step/Subsystem/Solver Configuration']: The product of consistency relative tolerance and consistency tolerance factor falls below 1e-14. Increase the relative tolerance or the tolerance factor to keep their product greater than 1e-14.
Component:Simulink | Category:Block error"
What can cause this issue?
Thank you in advence.

Answers (1)

Sakshay
Sakshay on 16 Mar 2023
Hello DOREL,
As per my understanding, you are trying to model the Forward and Inverse Kinematics of the SCARA Robot in Simulink.
The error that you shared seems to suggest that your model has an Algebraic Loop present. An algebraic loop occurs when a signal loop in a model contains only blocks that have direct feedthrough. A signal loop that contains only blocks with direct feedthrough creates a circular dependency of block output and input values in the same time step. The resulting equation is an algebraic equation that requires a solution at each time step and adds computational cost.
Because of this certain Simulink models may face problems during simulation. Hence, it would be good if you could find and remove them from your model.
To improve your model further, you should make use of more Simulink based blocks compared to MATLAB functions. Inclusion of MATLAB functions should only be done when Simulink blocks for the same purpose are not available. For your case, you can either use other Mathematical Simulink Blocks or Simulink blocks for Forward and Inverse Kinematics.
For more information, you can refer to the following documentations:

Categories

Find more on Simulink in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!