You are on page 1of 15

Overview of Constraints

Constraints define how parts (rigid bodies, Flexible bodies, or Point mass) are attached to one another and
how they are allowed to move relative to each other. Constraints restrict relative movement between parts
and represent idealized connections.

Types of Constraints
Adams/View provides a library of constraints including:
• Idealized joints
• Primitive joints
• Motions generators
• Higher-pair constraints

The following figure shows some of the different types of idealized joints that Adams/View supports.

Constraints and Degrees of Freedom


Degrees of freedom (DOF) are a measure of how parts can move relative to one another in a model. A
body free in space has six DOF in which it can move: three translational and three rotational. Each DOF
corresponds to at least one equation of motion. When you add a constraint, such as a revolute joint,
between two parts, you remove DOF between the parts, causing them to remain positioned with respect
2 Adams/View
Overview of Constraints

to one another regardless of any motion or force in the model. Each constraint in Adams/View removes
different DOF.
For example, a revolute joint removes all three translational DOF and two of the rotational DOF between
two parts. If each part had a point on the joint that was on the centerline of the revolute pin, then the two
points would always remain coincident. They would only rotate with respect to one another about one
axis: the centerline of the revolute joint.
The total number of DOF in a model is equal to the difference between the number of allowed part
motions and the number of active constraints in the model. When you run a simulation of your model,
Adams/Solver calculates the number of DOF in your model as it determines the algebraic equations of
motion to be solved in your model. You can also calculate the DOF in your model before running a
simulation as explained in Verifying Your Model.
For a list of the DOF that the different constraints in Adams/View remove, see the following:
• DOF Removed by Idealized Joints
• DOF Removed by Primitive Joints
• DOF Removed by Higher-Pair Constraints
• DOF Removed by Motion

Connecting Constraints to Parts


Adams/View uses the convention that the first part that you select when you create a Constraint is the part
that moves relative to the second part that you select. For example, if you join a door and a door frame
with a Joint, the first part that you select is the door so that it moves relative to the door frame.
Adams/View always applies forces at the location of the constraint. For example, for a revolute joint,
Adams/View applies any forces at the center of the joint. For joints that allow translational movement,
such as a screw joint connecting a nut and bolt, the location of the joint changes over time as the first part
moves relative to the second part and, therefore, the locations of the forces change. For the nut and bolt,
as the nut moves along the bolt, the location of the joint changes and the reaction forces also change
relative to the bolt.
When you create many of the constraints in Adams/View, including most idealized joints, primitive
joints, and some types of motion, Adams/View provides you with shortcuts for specifying the parts that
the constraints are to connect or to which the motion is to be applied. As you create a constraint, you can:
• Let Adams/View connect the constraint to the parts nearest to the constraint location. If there is
only one part, Adams/View assumes that the second part is ground. Note that letting
Adams/View select the parts is only appropriate when two parts are located near one another and
when it does not matter which part Adams/View considers the first or second part.
There are some constraints, such as revolute, translational, and cylindrical, to which you can
apply motions. If you think that you will apply a joint motion, you should explicitly select the
two parts when creating the constraints.
3
Overview of Constraints

There are other constraints, such as Hooke/universal, inline, and perpendicular, which are very
sensitive to which part is the first part and which is the second. When you create these
constraints, you should explicitly select the parts to be connected.
• Explicitly select the parts to be connected. The first part that you select moves relative to the
second part that you select.
• If you created your model in exploded view, which lets you create individual parts and then
assemble them together into a model, you can specify the parts to be connected by the constraint
and then select a different location for the constraint on each part. When you assemble the parts
into a model, Adams/View joins the parts together at the location on the first part that you
selected. Learn about Performing Initial Conditions Simulation.

Constraints and I and J Markers


When you create a Constraint, Adams/View creates Markers at the specified location on both parts.
Adams/View orients the markers in the direction of the axis along which the parts can move with respect
to each other. The marker on the first part is often called the I marker and the marker on the second part
is called the J marker.
When Adams/View creates a joint primitive, it creates an I marker on the first part and a J marker on the
second part. It connects the I marker on the first part to the J marker on the second part.
For more on the effects of I and J markers on the joint, see JOINT in the Adams/Solver online help.

Tips on Constraining Your Model


The following are some tips to help you constrain your model correctly.
• Build your model by adding constraints to a few parts and testing the constraint connections
frequently. By building your model, you can more easily pinpoint the cause of any simulation
problems.
• Be sure that you connect the right parts and that you correctly define which part should move
relative to another part.
Be sure that you connect the right parts and that you explicitly select which part is to move
relative to another part if the constraint allows translational motion.
• Be sure to orient the constraint correctly.
If you do not define constraint directions correctly, you might not remove DOF from the model
that you intended to and, in fact, you might remove DOF that you did not intend to.
For example, if you have a slider-crank model and you direct a translational joint between the
slider and ground so that it is out of the plane of desired motion, the model locks up immediately
when you run a simulation.
• Be sure to select the correct type of constraint.
4 Adams/View
Overview of Constraints

Try to find only one constraint that removes all the DOF that you need to remove. If you define
more than one constraint between two parts, you get the union of the DOF that each constraint
removes, which may not be what you expected. For example, if you have two concentric,
cylindrical parts that you want to allow to rotate and translate with respect to each other, and you
use one translational and one revolute joint between the parts, you lock the parts together. They
lock together because the translational joint allows no relative rotational movement and the
revolute joint allows no relative translational movement. In this case, instead of using the two
joints, you should use a single cylindrical joint.
• Check the DOF in your system periodically.
Use the Verify command to check the DOF in your model to make sure you have the correct
number of parts and constraints. Learn about Verifying Your Model.
• Run a Kinematic simulation to test your model without forces.
If possible, run a kinematic simulation before performing a dynamic simulation. By running a
kinematic simulation, you can ensure that connections are correct before you add forces to your
model. You may have to add temporary constraints to your model to run a kinematic simulation.
• Remove redundant constraints from your model even if a simulation of your model runs
correctly. See More on Redundant Constraint Checking.

Working with Higher-Pair Constraints


Adams/View provides you with two types of higher-pair constraints: point curve and 2D curve curve.

Point-Curve Constraints
The point-curve constraint restricts a fixed point defined on one part to lie on a curve defined on a second
part. The first part is free to roll and slide on the curve that is fixed to a second part. The curve on the
second part can be planar or spatial or open or closed. The first part cannot lift off the second part; it must
always lie on the curve. A point-curve constraint removes two translational Degrees of freedom from
your model.
When you specify the location of the point-curve constraint on the first part, Adams/View creates a
marker at that location. The marker is called the I marker. The I marker can only translate in one direction
relative to the curve. The I marker, however, is free to rotate in all three directions.
You can use the point-curve constraint to model a Pin-in-slot mechanism or a Simple Cam Follower
mechanism where a lever arm is articulated by the profile of a revolving cam.

When modeling a pin-in-slot mechanism, the point-curve constraint keeps the center of the pin in the
center of the slot, while allowing it to move freely along the slot and rotate in the slot.
5
Overview of Constraints

To create a point-curve constraint:


Before creating a point-curve constraint, read Tips on Creating Higher-Pair Constraints.
1. From the Joint palette, select the Point-Curve Constraint Tool .
2. In the settings container, set whether or not you will be selecting an edge or curve:
• Curves - Splines, chains, and data-element curves are all considered curves.
• Edge - An edge is one of the wireframe outlines drawn on a solid. For example, you can use
a Parasolid object representing a cam that you imported into Adams/View.
3. Select a point on a part that will travel along a curve.
4. Select the curve or edge along which the point will travel. The curve can be closed or open. Note
that when you select a closed curve, Adams/View highlights only a portion of the curve.
Adams/View will use the entire curve.

To Modify Point-Curve Constraints


The following procedure changes the basic properties and sets initial conditions for a point-curve
constraint. See Point-Curve Constraint Tool. Learn about Working with Higher-Pair Constraints.

Note: You can also modify constraint properties using the Table Editor.

1. Display the Constraint Modify Higher Pair Contact Point Curve dialog box as explained in
Accessing Modify Dialog Boxes.
2. Assign a unique ID number to it. Learn about Adams/Solver IDs.
3. In the Comments text box, add any comments about the cam that you want to enter to help you
manage and identify the cam. Learn about Comments.
4. Set the basic properties as explained in the table below.

For the option: Do the following:


Curve Name Change the curve that defines the shape on which the point can move. You
can enter a curve on a part or a curve element. Learn about Using Curve
Elements in Your Model.
I Marker Name Point that moves along the curve.
6 Adams/View
Overview of Constraints

For the option: Do the following:


J Floating Marker Name Enter a marker that is a floating marker. Adams/Solver positions the origin
of the floating marker at the instantaneous point of contact on the curve. It
orients the marker so that its x-axis is tangent to the curve at the contact
point, its y-axis points outward from the curve’s center of curvature at the
contact point, and its z-axis is along the binormal at the contact point.

Ref Marker Name Enter marker that is fixed on the part containing the curve on which the point
must move. Adams/Solver uses the reference marker to associate the shape
defined by the curve to the part on which the reference marker lies. The
curve coordinates are, therefore, specified in the coordinate system of the
reference marker.
Displacement Ic/ Select either:
No Displacement Ic
• Displacement Ic - Enter the initial point of contact along the curve. If
the point you specify is not exactly on the curve, Adams/View uses a
point on the curve nearest to the point you specify. By default, you
specify the initial point of contact in the coordinate system of the part
containing the curve or specify it in the coordinate system of the marker
you specify for Ic Ref Marker Name.
• No Displacement Ic - Leaves the initial displacement unset.
Learn about Higher-Pair Constraints Initial Conditions.
7
Overview of Constraints

For the option: Do the following:


Velocity Ic/ Select either:
No Velocity Ic
• Velocity Ic - Velocity with which the point (I marker) moves along the
curve. You specify the velocity in the coordinate system of the part
containing the curve.
• No I Velocity Ic - Leaves the initial velocity unset.
Ic Ref Marker Name You can:

• Enter the marker with which the initial point of contact on the curve is
specified.
• Leave blank. Adams/View uses the coordinate system of the part
containing the curve.

5. Set the initial conditions as explained in the table below, and then select OK.

For the option: Do the following:


Velocity Ic/ Select either:
No Velocity Ic
• Velocity Ic - Velocity with which the point (I marker) moves along the
curve. You specify the velocity in the coordinate system of the part
containing the curve.
• No Velocity Ic - Leaves the initial velocity unset.
Ic Ref Marker Name You can:

• Enter the marker with which the initial point of contact on the curve is
specified.
• Leave blank. Adams/View uses the coordinate system of the part containing
the curve.

Curve-Curve Constraints
A curve-curve constraint restricts a curve defined on the first part to remain in contact with a second
curve defined on a second part. The curve-curve constraint is useful for modeling cams where the point
8 Adams/View
Overview of Constraints

of contact between two parts changes during the motion of the mechanism. The curve-curve constraint
removes two Degrees of freedom from your model.

An example of a curve-curve constraint is a valve lifter where a cam lifts a plate-like object. The point
of contact between the plate and the cam changes depending on the position and shape of the cam.
The two curves of the constraint, which you define by selecting edges in your model, must lie in the same
plane. You can initially select curves that are not in the same plane, but Adams/Solver moves the parts
during Simulation to ensure that the two curves are constrained to the same plane of motion with respect
to each other. Both curves can be open or closed.
The curves always maintain contact, even when the dynamics of the model might actually lift one curve
off the other. You can examine the constraint forces to determine if any lift-off should have occurred. If
your results require an accurate simulation of intermittent contact, you should model the contact forces
directly using a vector force.
The curve-curve constraint models only one contact. Therefore, if the curves have contact at more than
one point, you need to create a curve-curve constraint for each contact, each with a initial condition
displacement near the appropriate point. Learn about Higher-Pair Constraints Initial Conditions.

Note: Instead of defining a curve by selecting a curve on a part, you can also use a curve element
that you create to define the curve. To specify a curve element, you can create geometry for
the curve and select that geometry as you create the cam or modify the cam to reference
the curve element. Learn about Creating and Modifying Curve Data Elements.

To Create a Curve-Curve Constraints


Before creating a curve-curve constraint, read Tips on Creating Higher-Pair Constraints.
1. From the Joint palette or tool stack, select the 2D Curve-Curve Constraint Tool .
9
Overview of Constraints

2. In the settings container, for each part, set whether or not you will be selecting an edge or curve:
• Curves - Splines, chains, and data element curves are all considered curves.
• Edge - An edge is one of the wireframe outlines drawn on a solid. For example, you can use
a Parasolid object representing a cam that you imported into Adams/View.
3. Select a curve or edge that will travel along a second curve.
4. Select the curve along which the first curve will travel. The curve can be closed or open. Note that
when you select a closed curve, Adams/View highlights only a portion of the curve. Adams/View
will use the entire curve.

To Modify 2D Curve-Curve Constraints


The following procedure changes the basic properties and sets initial conditions for a 2D curve-curve
constraint. See 2D Curve-Curve Constraint Tool.

Note: You can also modify constraint properties using the Table Editor.

1. Display the Constraint Modify Higher Pair Contact Curve Curve as explained in Accessing Modify
Dialog Boxes.
2. Assign a unique ID number to it. Learn about Adams/Solver IDs.
3. In the Comments text box, add any comments about the cam that you want to enter to help you
manage and identify the cam. Learn about Comments.
4. Set the basic properties as explained in the table below.

For the option: Do the following:


I Curve Name Change the curve that defines the shape of the curve that moves along the second
curve (J curve). You can enter a curve on a part or a curve element. Learn about
Curves.
J Curve Name Change the curve that defines the shape of the curve along which the first curve
(I curve) moves. You can enter a curve on a part or a curve element. Learn about
Curves.
I Ref Marker Name Enter a marker that is fixed on the part containing the first curve (I curve).
Adams/View uses the reference marker to associate the shape defined by the
curve to the part on which the reference marker lies. The curve coordinates are,
therefore, specified in the coordinate system of the reference marker.
J Ref Marker Name Enter a marker that is fixed on the part containing the second curve (J curve).
Adams/View uses the reference marker to associate the shape defined by the
curve to the part on which the reference marker lies. The curve coordinates are,
therefore, specified in the coordinate system of the reference marker.
10 Adams/View
Overview of Constraints

For the option: Do the following:


I Floating Marker Enter a floating marker. Adams/View positions the origin of the floating marker
Name at the instantaneous point of contact on the first curve, which is also the global
position of the J floating marker on the second curve. Adams/View orients the
marker so that its x-axis is along the tangent at the instantaneous contact point, its
y-axis is along the instantaneous normal, and its z-axis is along the resultant
binormal.
J Floating Marker Enter a floating marker. Adams/View positions the origin of the floating marker
Name at the instantaneous point of contact on the second curve, which is also the
position of the I floating marker on the first curve. Adams/View orients the
marker so that its x-axis is along the tangent at the instantaneous contact point, its
y-axis is along the instantaneous normal, and its z-axis is along the resultant
binormal.

5. Set the initial conditions as explained in the table below, and then select OK. Learn about Higher-
Pair Constraints Initial Conditions.

For the option: Do the following:


I Displacement Ic/ Select either:
No I Displacement Ic
• I Displacement Ic - Enter the initial point of contact along the first curve
(I curve). If the point you specify is not exactly on the curve, Adams/View
uses a point on the curve nearest to the point you specify. By default, you
specify the initial point of contact in the coordinate system of the part
containing the curve or specify it in the coordinate system of the marker
you specify for I Ic Ref Marker Name.
• No I Displacement Ic - Leaves the initial displacement unset.
J Displacement Ic/ Select either:
No J Displacement Ic
• J Displacement Ic - Enter the initial point of contact along the second
curve (J curve). If the point you specify is not exactly on the curve,
Adams/View uses a point on the curve nearest to the point you specify. By
default, you specify the initial point of contact in the coordinate system of
the part containing the curve or specify it in the coordinate system of the
marker you specify for J Ic Ref Marker Name.
• No J Displacement Ic - Leaves the initial displacement unset.
11
Overview of Constraints

For the option: Do the following:


I Velocity Ic/ Select either:
No I Velocity Ic
• I Velocity - Enter the initial velocity of the contact point along the first
curve (I curve). This is the speed at which the contact point is initially
moving relative to the curve. The velocity is:
• Negative if the contact point is moving towards the start of the curve.
• Positive if it is moving towards the end of the curve.
• Zero if it is stationary on the curve.
• No I Velocity Ic - Leaves the initial velocity unset.
J Velocity Ic or Select either:
No J Velocity Ic
• J Velocity - Enter the initial velocity of the contact point along the second
curve (J curve). This is the speed at which the contact point is initially
moving relative to the curve. The velocity is:
• Negative if the contact point is moving towards the start of the curve.
• Positive if it is moving toward the end of the curve.
• Zero if it is stationary on the curve.
• No J Velocity Ic - Leaves the initial velocity unset.
I Ic Ref Marker Name You can:

• Enter the marker with which the initial point of contact (displacement) on
the first curve (I curve) is specified.
• Leave blank. Adams/View uses the coordinate system of the part
containing the curve.
J Ic Ref Marker Name You can:

• Enter the marker with which the initial point of contact (displacement) on
the second curve (J curve) is specified.
• Leave blank. Adams/View uses the coordinate system of the part
containing the curve

Tips on Creating Higher-Pair Constraints


The following are some tips for creating point-curve and 2D curve-curve constraints. Learn more about
these constraints with Point-Curve Constraint Tool and 2D Curve-Curve Constraint Tool.
• Specify a curve with a large number of curve points.
When you select a curve, be sure that it contains a sufficiently large number of points to achieve
an acceptable fit.
12 Adams/View
Overview of Constraints

• Use closed curves whenever possible.


It is generally easier to select a closed curve, if possible. Open curves represent modeling
difficulties when the point on the follower part approaches one of the end points of the open
curve.
• Define curves that cover the entire expected range of motion of the cam.
Adams/Solver stops a Simulation if the contact point moves off the end of an open curve.
Therefore, be sure that the curve you define covers the expected range of motion of the contact
point.
• Avoid defining an initial configuration with the initial point of contact near to one of the end
points of the curve.
• Avoid curve-on-curve constraints that have more than one contact point.
Adams/Solver requires that your model contain a unique contact point during simulation. If there
is more than one contact point, Adams/Solver may be unable to find the correct contact point or
may even jump from one contact point to the next. It also may have difficulties finding the
correct solution. One way to ensure that contact points are unique is to specify curve shapes that
are convex. The following figure shows two curves, the first is convex and the second is
nonconvex. Note that for a convex curve, any line segment connecting two arbitrary points on
the curve lies in the domain of the curve (it does not intersect the curve). The same is not true for
nonconvex curves.

• You can create more than one contact using the same curve.
• It is easy to over-constrain a model using the curve-to-curve constraint. For example, in a cam-
follower configuration, the cam should usually be rotating on a cylindrical joint, not a revolute
joint. If the follower is held by a translational joint and the cam by a cylindrical joint, the curve-
to-curve cam between the follower and cam prevents the cam from translating along the axis of
rotation, which is the axis of the cylindrical joint. A revolute joint would add a redundant
constraint in that direction.
13
Overview of Constraints

Higher-Pair Constraints Initial Conditions


The initial conditions that you can set include:
• Point-curve (See Point-Curve Constraint Tool)
The initial conditions for a point-curve constraint include:
• Velocity with which the point (I marker) moves along the curve. You specify the velocity in
the coordinate system of the part containing the curve. Therefore, you specify the speed of
the I marker from the standpoint of an observer on the part containing the curve. Therefore,
if the curve, not the I marker, moves globally then the velocity of the I marker is still
nonzero.
• Initial point of contact on the curve. If the point you specify is not exactly on the curve,
Adams /View uses a point on the curve nearest to the point you specified. By default, you
specify the initial point of contact in the coordinate system of the part containing the curve.
If another coordinate system is more convenient, you can specify another initial conditions
coordinate system marker and enter the initial point in its coordinates.
If you supply an initial point, Adams/View assembles the model with the I marker at the
specified point on the curve, even if it must override part initial conditions to do so. If you do
not supply an initial point, Adams/View assumes the initial contact is at the point on the curve
closest to the I marker position. Adams/View may adjust that contact point to maintain other
part or constraint initial conditions.
• 2D Curve-Curve (See 2D Curve-Curve Constraint Tool)
The initial conditions for a 2D curve-curve constraint include:
• Velocity with which the contact point on either or both curves is moving. You specify the
velocity in the coordinate system of the part containing the second curve. If you do not
supply an initial velocity, Adams/View assumes the initial velocity is zero, but may adjust
that velocity to maintain other part or constraint initial conditions.
• Initial point of contact on either or both curves. If the point you specify is not exactly on the
curve, Adams/View uses a point on the curve nearest to the point you specify. By default,
you specify the initial point of contact in the coordinate system of the part containing the
curve. If another coordinate system is more convenient, you can specify another initial
conditions coordinate system marker and enter the initial point in its coordinates.
If you supply an initial point, Adams/View assembles the model with the marker at the specified
point on the curve, even if it must override part initial conditions to do so. If you do not supply
an initial point, Adams/View assumes the initial contact is at the point on the curve closest to the
first curve (I curve). Adams/View may adjust that contact point to maintain other part or
constraint initial conditions.
The initial conditions are only active during an Initial conditions simulation, which Adams/View runs
before it runs a Simulation of your model.
You can also leave some or all of the initial conditions unset. Leaving an initial condition unset lets
Adams/View calculate the initial conditions of the constraint during an initial conditions simulation
depending on the other forces and constraints acting on the constraint. Note that it is not the same as
14 Adams/View
Overview of Constraints

setting an initial condition to zero. Setting an initial condition to zero means that the constraint will not
be moving in the specified direction or from a specified point when the simulation starts, regardless of
any forces and constraints acting upon it. For a Kinematic simulation, the initial conditions are redundant.
Therefore, for a model with zero Degrees of freedom, you should always leave the initial conditions
unset.

DOF Removed by Higher-Pair Constraints


The following table shows the degrees of freedom that higher-pair constraints remove.

General Constraints
Available with Adams/Solver (C++) only
You can create a general constraint that defines an arbitrary constraint specific to a model. As its name
implies, it is more general than the Idealized joints, which describe physically recognizable combination
of constraints that are used to connect bodies together. You can also use the general constraint to
equivalently define an existing idealized joint. Read more about the GCON statement in Adams/Solver
(C++) help.
We advise that you use the general constraint with caution. Be sure to read the Known Limitations in the
GCON statement.
15
Overview of Constraints

To create or modify a general constraint:


1. Do one of the following:
• To create a general constraint, from the Joint palette or tool stack, select the General

Constraint tool .

• To modify a general constraint, from the Edit menu, select Modify. From the Database
Navigator that appears, select the general constraint to modify.
2. The Create/Modify General Constraint dialog box appears.
3. If you are creating a general constraint, in the Name text box, change the name for the constraint.
Adams/View assigns a default name to the constraint.
4. Enter a runtime function that Adams/Solver (C++) forces to zero during the simulation. To enter
a function expression, next to the f (q) = text box, select the More tool to display the
Adams/View Function Builder. For information on using the Function Builder, see the Function
Builder online help. Learn more about defining a runtime function for a general constraint.
5. In the Report reaction forces on marker text box, enter a marker whose reaction forces are
measured and reported as part of standard results. The reaction force reported is the force that is
exerted on the marker to satisfy the constraint equation. Note that if you specify a marker and the
runtime function has no dependency on it, the general constraint reports a zero force. The default
is the ground coordinate system (GCS).

Note: You cannot enter the Adams ID for the marker; you must enter the name of the
marker. Learn about Adams/Solver IDs.

6. Select OK.

You might also like