# A Moving Look at a Solid Tool: Rigid Dynamics

Categories:

Most of us who have been doing this simulation thing  for a while (in fact, if you still call it analysis instead of simulation you probably fall in this group) always think of ADAMS or DADDS when someone brings up Rigid Body Dynamics tools. Most people forget that ANSYS, Inc. has had a strong offering in this area for some time, and at R13 it really is mature and full featured.

# Background

A good place to start is to step back and describe what Rigid Dynamics is.  That is the name ANSYS, Inc. uses, but many people refer to it as Kinematic/Dynamic, Multibody Dynamics, Rigid Body Dynamics (RBD), or motion simulation. In most case all of these names refer to a numerical simulation where:

1. More than one part is connected as an assembly
2. Joints defined between the parts
3. Large deflection motion
4. Time dependent motion (if not, then it is just kinematics)
5. Parts are rigid (not flexible) in most cases

Think back to your dynamics class, probably your sophomore year in college.  Linkages, gears, cams, etc…  You are basically solving for the full equation of motion where inertia, time, gyroscopics. And all that stuff is taken into consideration.  The key thing to remember is that you can model a rigid system as a set of point masses  (Bodies) with inertial properties and six degrees of freedom (UX/Y/Z, and ROTX/Y/Z) You then connect them by defining a relationship (Joints) between their degrees of freedom.  You then apply forces, acceleration, velocity, and/or displacement over time and solve. To solve, the problem must be fully constrained in that there may not be any free DOF’s.

The most comprehensive jumping off point I found for the topic is a website from the University of Waterloo: http://real.uwaterloo.ca/~mbody/

## Rigid Dynamics in ANSYS

You have been able to do Rigid Dynamics in ANSYS MAPDL for a long time.  MPC184 for joints and MASS21 for the bodies has been there since the Spice Girls were popular.  But, you had to use the implicit solver in MAPDL which can take some time to solve a long problem.  So ANSYS, Inc. has been working for a few releases now on an explicit rigid body solver that is much more efficient for this type of problem. You get access to the kinematic (no inertia terms, just motion) for free if you have ANSYS Professional NLS or better. To solve dynamics problems, you need a license for the Rigid Body Dynamics Solver as an add-on to ANSYS Professional NLS or better.

To create a model you simply insert a “Rigid Dynamics” system into your project:

Figure 1: Rigid Dynamics System

It looks and acts a lot like an ANSYS Mechanical system, but is set up a bit differently to deal with the needs of Rigid Dynamics and to take away the things that you need for flexible FEA in ANSYS Mechanical.

## Analysis Process

A real model can be very complicated and take some time to create, but the process of making it is the same regardless of the complexity:

 Do your normal geometry and material setup Remove auto contacts if you don’t need them (joints should constrain in most cases) Add any point masses you want to add Define Joints Fix to ground as needed Key is to make sure joints are correct and you don’t over/under constrain the problem Coordinate system orientation is critical Constrained DOF’s show up on plot for each joint – Blue=free Lots of nice options Define Springs Between geometry or geometry to ground Set Up Analysis Define step controls Solver options Nonlinear Controls Output Controls Apply Loads Acceleration Gravity Joint Loads Remote Displacement Constraint Equations Solve Post Process Deformation, Velocity, Acceleration of Parts Total or Aligned Probes on Parts, Joints, Springs Key thing is to get graphs of behavior Also makes a table you can export

# Joints, Springs & Contact

An important part of any Rigid Dynamics tool is the Joint Library. This defines what you can and can’t connect.  The ANSYS tool has all of the standard options:

Table 1: Joints (Courtesy of the ANSYS User Manual)

 Revolute ROTZ Free Cylindrical UZ, ROTZ Free Translational UX Free Slot UX, ROTX, ROTY, ROTZ Free Spherical ROTX, ROTY, ROTZ Free Bushing UX, UY, UZ, ROTX, ROTY, ROTZ Free User specified stiffness and damping in all DOF’s Planer UX, UY, ROTZ Free Universal ROTX, ROTY Free General User defines free DOF’s as well as stiffness and damping on free DOF’s

You define joints by selecting the Connections part of the tree and insert the Joint you want.  Joints can be between two bodies or between a body and fixed ground.  Each details view is a little different but most look like the one for the revolute joint:

Figure 2: Revolute Details View

In most cases, defining the joints is very easy.  You use the geometric feature that is in your real part to define the joint.  Two holes for a revolute joint or a slot for a slot.  The important thing to pay attention to for joints is which body is the reference body, and which is the mobile body. The first body you click on is the reference and the second is the mobile one.  If you get it wrong, RMB on the joint in the tree and choose Flip Reference/Mobile.

Next, pay attention to your coordinate systems for the joint. By default, the coordinate system is defined in the reference face of the details and by default is aligned with the geometry you picked to define the reference.  This is because the coordinate system needs to move with the geometry.  If the reference geometry isn’t exactly what you want, you can change it by picking a new face, line, or point.  Make sure you check the graphics window and that the coordinate system is in the right place.

Once your joints are done, you can insert the other type of connection, a spring. They work the same way except they define a force load on the bodies that is related to their relative position.  You can have tension only, compression only, or a normal spring.  They work like joints in that you specify two bodies or a body and ground to connect.  You have more control on where the endpoints of the spring are, by specifying a piece of geometry or a point in a coordinate system.  You can also add in preload.

Figure 3: Spring in Assembly

You can also specify contact.  But before you do, make sure that a joint won’t work first.  If contact makes sense, then put it in just like you would in ANSYS Mechanical.

Figure 4: Contact

# Other Stuff you Should Know

Sometimes you don’t have geometry? No worries. you can define a point mass and add in its inertia properties to get the same behavior.

The Rigid Dynamics solver has its own command language and just like when you use MAPDL as the solver, you can use code snippets to send it commands.  It uses Python and the commands are documented in the help.  The most common use for this is creating relationships between DOF’s that joints can’t do.  Gears are the best example, you can specify that body 2 rotate twice for every time body 1 rotates, etc…  It is also a good way to define a non-linear spring or a complicated stop condition.

Figure 5: Code Snippets

Speaking of stops, you can specify stops and locks on the joints to control how far a joint can move and if it reaches that stop, that it freezes (lock).

# Conclusions

And, without going into too much detail, that is Rigid Dynamics in ANSYS.  You can see some cool examples on the ANSYS website:

http://www.ansys.com/Products/Simulation+Technology/Structural+Mechanics/ANSYS+Rigid+Dynamics#/0

The key as always is to take the time to really read understand the tool then crawl-walk-run.  Don’t start with a 100 part assembly and expect it to work.  Pick a simple assembly or a simple subassembly and go from there.  In fact, regardless of your part, start with a four-bar linkage and get that going first.

Happy motion!

## Ansys Elite Channel Partner

Get Your Ansys Products & Support from the Engineers who Contribute to this Blog.

## Product Development

Keep up to date on what is going on at PADT by subscribing to our newsletter.

By submitting this form, you are consenting to receive marketing emails from: . You can revoke your consent to receive emails at any time by using the SafeUnsubscribe® link, found at the bottom of every email. Emails are serviced by Constant Contact

09/27/2023

09/26/2023

09/22/2023

09/22/2023

09/21/2023

09/20/2023

09/13/2023

09/12/2023

09/12/2023

09/08/2023

09/08/2023

09/07/2023

08/30/2023

08/23/2023

08/22/2023

08/16/2023

08/04/2023

08/01/2023

07/26/2023

07/25/2023

07/24/2023

07/19/2023

07/13/2023

07/12/2023

06/30/2023

06/29/2023

06/28/2023

06/28/2023

06/27/2023

06/27/2023

06/26/2023

06/21/2023

06/07/2023

05/31/2023

05/24/2023

05/24/2023

05/23/2023

05/10/2023

04/26/2023

04/20/2023

04/19/2023

04/19/2023

04/18/2023

04/17/2023

04/13/2023

04/12/2023

03/29/2023

03/29/2023

03/28/2023

03/27/2023

03/26/2023

03/24/2023

03/22/2023

03/22/2023

03/15/2023

03/08/2023

03/01/2023

02/22/2023

02/15/2023

02/09/2023

02/08/2023

02/07/2023

01/27/2023

01/26/2023

01/26/2023

01/26/2023

01/26/2023

01/25/2023

01/25/2023

01/25/2023

01/25/2023

01/24/2023

01/24/2023

01/18/2023

12/21/2022

12/14/2022

12/08/2022

12/07/2022

11/30/2022

11/23/2022

11/16/2022

11/10/2022

11/08/2022

11/03/2022

11/02/2022

10/26/2022

10/20/2022

10/19/2022

10/19/2022

10/17/2022

10/14/2022

10/14/2022

10/12/2022

10/06/2022

10/05/2022

09/29/2022

09/28/2022

09/28/2022

09/21/2022