SCARA Robot simulation not work
3 views (last 30 days)
Show older comments
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.
0 Comments
Answers (1)
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:
Algebraic Loops: Algebraic Loop Concepts - MATLAB & Simulink (mathworks.com)
Removing Algebraic Loops: Remove Algebraic Loops - MATLAB & Simulink (mathworks.com)
Inverse Kinematics Block Simulink: Compute joint configurations to achieve an end-effector pose - Simulink (mathworks.com)
Get Transform Block Simulink: Get transform between body frames - Simulink (mathworks.com)
0 Comments
See Also
Categories
Find more on Robotics 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!