Community Tip - Did you get an answer that solved your problem? Please mark it as an Accepted Solution so others with the same problem can find the answer easily. X
I have problem when running my mechanism analysis it says "The mechanism could not be assembled because some mechanism constraints weren't met". Is it because the joint/assembly isn't properly constraint or what ? Whats the easiest way to know if my parts are connected incorrectly?
Solved! Go to Solution.
You need to ensure you are not forcing the position outside of the joint limits. There is a graph function in various dialogs that allow checking/converting the position / velocity / acceleration. For example a velocity of 90 degrees per second applied for one second, but the joint only allows 45 degrees of travel. Another example is if a joint travels from 45 degrees to 90 degrees but at the start the motor tries to put it at zero degrees. Also, adding a realistic coefficient of restitution at the travel limits can help. Also, if your model starts right against a travel limit, try starting it just a teensy bit away / free of the travel limit. Even starting mid-travel can help discover if the problem is only at the initial configuration. I keep thinking of more things, like do not have two joints with their travel stops hitting at the exact moment such that both take the load. Since these are rigid bodies this is a statically redundant situation. Increase the travel on one of them slightly so all the end/start stop condition force is only taken by one joint limit.
Another thing that can happen is the model is moving too quickly or without enough precision. There is a setting in FILE-PREPARE-MODEL PROPERTIES for Mechanism - CHANGE that and you can make a tighter relative tolerance like 1E-6. This may increase simulation time but it is worthwhile investigating results sensitivity to the relative tolerance to ensure you are not too loose.
My general advice is where possible to try to test individual elements or simpler versions of your model and build gradually to the full mechanism.
If you can zip and share your models it would be easier to tell what is going on. Also, there is the option of sharing to someone privately if you do not want the model posted to the entire community.
as you build your assembly and add the components make sure that you are using a mechanism style constraint like pins and sliders. Also, after addin each part, use the drag component feature to see if the operation kinematics are constrained properly. in order for mechanism to work you must not have standard mates, use mechanism, constraints,
Thanks for answering. Yes, slider and pin are already added, and I have tested with drag components, so it seems there is no problem. However, still have problem when running analysis
Check to make sure that when you define each joint, you are 100% consistent with the 2 different bodies you select to establish it for every constraint of that one joint you're creating. For example, you might have two different bodies that have a reference that occupy the same place in space that you unknowingly selected the "wrong" one for. It will give all appearance of being set-up properly, but when it comes time to analyze it, it will bark at you with that message. Even if they are both "ground" parts, MDX might still toss that error.
There are many possible reasons for this. If the assembly drags fine, one that comes up more often is when a motor is applied that drives the component to a value that is not valid. Do you have limits on any joints? Are you using velocity or acceleration motors? Does it does this message immediately or does it come some time in the middle of the run? Are you initializing the analysis with a snapshot and initial conditions? Have you checked redundancies and degrees of freedom from the measures? Does everything that moves have proper material/mass/inertia properties assigned?.....
Yes, I am doing it with velocity motors with joint limits, and make sure with proper mass and material. Does it mean I have to calculate an appropriate velocity on the motors to ensure it won't exceed joint limits? Thanks
You need to ensure you are not forcing the position outside of the joint limits. There is a graph function in various dialogs that allow checking/converting the position / velocity / acceleration. For example a velocity of 90 degrees per second applied for one second, but the joint only allows 45 degrees of travel. Another example is if a joint travels from 45 degrees to 90 degrees but at the start the motor tries to put it at zero degrees. Also, adding a realistic coefficient of restitution at the travel limits can help. Also, if your model starts right against a travel limit, try starting it just a teensy bit away / free of the travel limit. Even starting mid-travel can help discover if the problem is only at the initial configuration. I keep thinking of more things, like do not have two joints with their travel stops hitting at the exact moment such that both take the load. Since these are rigid bodies this is a statically redundant situation. Increase the travel on one of them slightly so all the end/start stop condition force is only taken by one joint limit.
Another thing that can happen is the model is moving too quickly or without enough precision. There is a setting in FILE-PREPARE-MODEL PROPERTIES for Mechanism - CHANGE that and you can make a tighter relative tolerance like 1E-6. This may increase simulation time but it is worthwhile investigating results sensitivity to the relative tolerance to ensure you are not too loose.
My general advice is where possible to try to test individual elements or simpler versions of your model and build gradually to the full mechanism.
If you can zip and share your models it would be easier to tell what is going on. Also, there is the option of sharing to someone privately if you do not want the model posted to the entire community.
Thanks for the answer gurus, it works!😊