Jump to content
Sign in to follow this  
pramodh k

Constraining the degree of rotation for a revolute joint

Recommended Posts

Hi all,

I would like to know if there exists an option or possibility in MotionView to constrain the degree of rotation of a revolute joint. For example, a revolute joint provides the possibility for a body to rotate 360 degrees with respect to another body to which it is connected to, but I would like to restrict this angle to only 30 degrees.

Share this post


Link to post
Share on other sites

Just add a Motion to your model, attach the Motion to that revolute Joint, and se the angle in the properties panel to 30/57.3 (the units of rotation in MotionView are radians).   Note that this rotation is relatively large, so you may have initial issues getting the model to solve successfully, but I would still attempt this first.  If you have trouble getting this to solve with that angle, you can use the first part of your simulation to ramp up from 0 to 30 degrees.  You could use an expression to do this:

 

Change the Motion properties from Liner to Expression, and then define the expression using a STEP function:

`STEP(TIME,0,0,1,30/57.3)`

 

Note the "carat" character (`) is critical here.  Don't use single quotes around the expression, or you will get an error

 

 

If you are trying to restrict the range of Motion of the revolute joint to +/- 30 degrees, then you need to add a rotational force between those two bodies constrained by the joint, and then use a BISTOP function to define the range of rotation motion, as well as the stiffness of contact  (BISTOP function examples exist in our tutorials, as well as the function help).

pramodh k likes this

Share this post


Link to post
Share on other sites

Okay, thank you for the suggestion. I have tried to implement this and it successfully worked, but I would like to know how I can make the BISTOP function to work only after a certain period of time and not during the entire simulation.

Share this post


Link to post
Share on other sites

There are a couple of ways to handle this:

 

1.  Use a STEP function to multiply the BISTOP function in your expression. I can look something like this:

STEP(TIME, 0,1,1.1,1)*BISTOP(xxyyzz)

 

Explanation:

The STEP function uses Time as the input,  When the time is less than 1 section, STEP evaluates to 0, and multiples the BISTOP by 0.  At 1.1 seconds, the value of the STEP=1, which then multiplies the BISTOP by 1. In between 1 second and 1.1 second, the value is a cubic interpolation between 0 and 1.

 

2. Use Sequential Simulation

You can create a series of commands, to DEACTIVATE and ACTIVATE various entities in your model, at specific times in the simulation.

This previous forum topic has discussed this before (and there are some tutorials about this topic as well)

 

RoKet likes this

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...