Unable to correctly import Spherical Parallel Manipulator CAD files into Simulink. kinematic constraints cannot be maintained error
I am currently working on programming a spherical parallel manipulator. I am very new to matlab and I also have minimal knowledge of programming and calculus.
When I import my onshape assembly into simulink and try to run the simulation I get an error saying that the kinematic constraints cannot be maintained. The simulation works for about 0.007 seconds before returning this error.
This is the exact error message:
An error occurred during simulation and the simulation was terminated
Caused by:
[‘V2_SPM_Assembly/Revolute9’, ‘V2_SPM_Assembly/Solver Configuration’]: ‘V2_SPM_Assembly/Revolute9’ kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.
So far I have tried:
Turning down the tolerance. This results in the same error. Although the simulation works for about 0.108 seconds.
Changing the solver type. I tried all of the solver types and they do affect how long the simulation runs before resulting in an error but they never result in a simulation time greater than a second or so.
Redoing the CAD design. I remade the whole design and made sure that every axis of rotation is defined directly off of the origin.
Changing the order in which I assigned the revolute joints. This had no effect.
Replacing "revolute7", "revolute8", and "revolute9", with cylindrical joints. This resulted in a position violation error.
Changing how mate connectors were assigned in onshape part studios. I assigned mate connectors to be aligned with the relative axis of rotation and used those connectors in the joints. When I did not do this then the model resulted in a position violation error.
I have had minor success with:
Turning down the tolerance, and changing the way the joints are defined. I was able to get the model to simulate without an error. However, it only went through about 10 degrees of rotation on the base axis.
Changing the way the mate connectors where assigned in the onshape parts studios was the biggest improvement I have had and it made it so I stopped getting the position violation error.
Simulating the model with only one leg of the spherical parallel manipulator. This worked perfectly but it will not suffice for my project.
What I think the problem is:
I think that the part origins are the issue but I do not know how to correctly define them. The mate connectors help but I am unsure whether they act as coordinate systems for the parts. I have a Solidworks license but it is for Solidworks 2022 and it does not export to Simulink.
If anyone has any suggestions on what else I could try I would love to hear them. I linked my onshape file, and simulink file below as well as an image of the model.
https://cad.onshape.com/documents/d27868ad0436caa3f4afe2cb/w/a233bf5d473eb4ccb1022246/e/4dd27757644eec07373ecc70?renderMode=0&uiState=66542a76150c1c53248dd442I am currently working on programming a spherical parallel manipulator. I am very new to matlab and I also have minimal knowledge of programming and calculus.
When I import my onshape assembly into simulink and try to run the simulation I get an error saying that the kinematic constraints cannot be maintained. The simulation works for about 0.007 seconds before returning this error.
This is the exact error message:
An error occurred during simulation and the simulation was terminated
Caused by:
[‘V2_SPM_Assembly/Revolute9’, ‘V2_SPM_Assembly/Solver Configuration’]: ‘V2_SPM_Assembly/Revolute9’ kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.
So far I have tried:
Turning down the tolerance. This results in the same error. Although the simulation works for about 0.108 seconds.
Changing the solver type. I tried all of the solver types and they do affect how long the simulation runs before resulting in an error but they never result in a simulation time greater than a second or so.
Redoing the CAD design. I remade the whole design and made sure that every axis of rotation is defined directly off of the origin.
Changing the order in which I assigned the revolute joints. This had no effect.
Replacing "revolute7", "revolute8", and "revolute9", with cylindrical joints. This resulted in a position violation error.
Changing how mate connectors were assigned in onshape part studios. I assigned mate connectors to be aligned with the relative axis of rotation and used those connectors in the joints. When I did not do this then the model resulted in a position violation error.
I have had minor success with:
Turning down the tolerance, and changing the way the joints are defined. I was able to get the model to simulate without an error. However, it only went through about 10 degrees of rotation on the base axis.
Changing the way the mate connectors where assigned in the onshape parts studios was the biggest improvement I have had and it made it so I stopped getting the position violation error.
Simulating the model with only one leg of the spherical parallel manipulator. This worked perfectly but it will not suffice for my project.
What I think the problem is:
I think that the part origins are the issue but I do not know how to correctly define them. The mate connectors help but I am unsure whether they act as coordinate systems for the parts. I have a Solidworks license but it is for Solidworks 2022 and it does not export to Simulink.
If anyone has any suggestions on what else I could try I would love to hear them. I linked my onshape file, and simulink file below as well as an image of the model.
https://cad.onshape.com/documents/d27868ad0436caa3f4afe2cb/w/a233bf5d473eb4ccb1022246/e/4dd27757644eec07373ecc70?renderMode=0&uiState=66542a76150c1c53248dd442 I am currently working on programming a spherical parallel manipulator. I am very new to matlab and I also have minimal knowledge of programming and calculus.
When I import my onshape assembly into simulink and try to run the simulation I get an error saying that the kinematic constraints cannot be maintained. The simulation works for about 0.007 seconds before returning this error.
This is the exact error message:
An error occurred during simulation and the simulation was terminated
Caused by:
[‘V2_SPM_Assembly/Revolute9’, ‘V2_SPM_Assembly/Solver Configuration’]: ‘V2_SPM_Assembly/Revolute9’ kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.
So far I have tried:
Turning down the tolerance. This results in the same error. Although the simulation works for about 0.108 seconds.
Changing the solver type. I tried all of the solver types and they do affect how long the simulation runs before resulting in an error but they never result in a simulation time greater than a second or so.
Redoing the CAD design. I remade the whole design and made sure that every axis of rotation is defined directly off of the origin.
Changing the order in which I assigned the revolute joints. This had no effect.
Replacing "revolute7", "revolute8", and "revolute9", with cylindrical joints. This resulted in a position violation error.
Changing how mate connectors were assigned in onshape part studios. I assigned mate connectors to be aligned with the relative axis of rotation and used those connectors in the joints. When I did not do this then the model resulted in a position violation error.
I have had minor success with:
Turning down the tolerance, and changing the way the joints are defined. I was able to get the model to simulate without an error. However, it only went through about 10 degrees of rotation on the base axis.
Changing the way the mate connectors where assigned in the onshape parts studios was the biggest improvement I have had and it made it so I stopped getting the position violation error.
Simulating the model with only one leg of the spherical parallel manipulator. This worked perfectly but it will not suffice for my project.
What I think the problem is:
I think that the part origins are the issue but I do not know how to correctly define them. The mate connectors help but I am unsure whether they act as coordinate systems for the parts. I have a Solidworks license but it is for Solidworks 2022 and it does not export to Simulink.
If anyone has any suggestions on what else I could try I would love to hear them. I linked my onshape file, and simulink file below as well as an image of the model.
https://cad.onshape.com/documents/d27868ad0436caa3f4afe2cb/w/a233bf5d473eb4ccb1022246/e/4dd27757644eec07373ecc70?renderMode=0&uiState=66542a76150c1c53248dd442 onshape, simulink, smexportonshape, smimport, kinematic constraints, position violation, solidworks, cad, cad import, over defined, assembly, joints, revolute, spherical parallel manipulator, multibody MATLAB Answers — New Questions