图1 图2
希望通过简单运动副来构建长方体沿轴的转动和移动(即圆柱副)、移动、转动
(1)添加垂直轴(简单运动副),来长方体的一个自由度,比如我们打算长方体绕Marker_1的Z轴的转动,在垂直轴选项中选择2_Bodies 2_Location,实体分别选取长方体和大地,位置分别选取长方体上的Marker_2大地上的Marker_1,方向选取Marker_1的X轴和Y轴,那么生成的Marker_3(长方体)和Marker_4(大地)的Z轴应该与Marker_1的X轴和Y轴一直,如图3,此时要保证Marker_3和Marker_4的Z轴垂直,那么长方体绕Marker_1的Z轴的转动将被,即长方体只有五个自由度,即绕Marker_1的X、Y轴的转动,和沿Marker_1的X、Y、Z轴的移动
图3 图4
(2)在步骤(1)的基础上,添加点+线约束,使长方体的自由度再次减少,选择2_Bodies 1_ocation,实体分别选取长方体和大地,位置选取长方体上的Marker_1,方向选择X轴,那么生成的Marker_6长方体)和Marker_7(大地)的Z轴应该与Marker_1的X轴一直,如图4,此时长方体沿Marker_1的Y、Z轴的移动将被,加上步骤(1)中垂直约束,长方体只剩下沿Marker_1的X轴的移动,和绕Marker_1的X、Y轴的转动三个自由度。
(3)在步骤(1)和(2)的基础上再次添加垂直轴(简单运动副)来长方体绕Marker_1的Y轴的转动,选择2_Bodies +2_Location,实体分别选取长方体和大地,位置分别选取长方体上的Marker_2大地上的Marker_1方向选取Marker_1的X轴和Z轴,那么生成的Marker_8长方体)和Marker_9大地)的Z轴应该与Marker_1的X轴和Z轴一直,如图5,要保证Marker_8和Marker_9的Z轴垂直,那么长方体绕Marker_1的Y轴的转动将被,到现在长方体只剩下了两个自由度,即沿Marker_1的X轴的移动和绕Marker_1的X轴的转动两个自由度,通过在ADAMS中定义Motion仿真验证可得,自由度的个数和方向是正确的,
图5
分别按照步骤(1)、(2)、(3)得到长方体自由度如图6-1、6-2、6-3、6-4;定义Motion如图7-1、7-2,位置选择Marker_1,方向选择Z方向,此时运行成功,如果按照图7-3定义绕Y轴转动的话,运行提示仿真错误,如图7-4
图6-1
图6-2
图6-3
图6-4
图7-1 图7-2
图7-3
图7-4
(4)在步骤(1)、(2)、(3)的基础上,要使长方体只能绕X轴移动的一个自由度,再添加垂直轴(简单运动副),选择2_Bodies +2_Location,实体分别选取长方体和大地,位置分别选取长方体上的Marker_2和大地上的Marker_1,方向选取Marker_1的Y和Z轴,那么生成的Marker_10(长方体)和Marker_11(Groud)的Z轴与Marker_1的Y轴和Z轴一直,如图8,要保证Marker_10和Marker_11的Z轴垂直,那么长方体绕Marker_1的X轴的转动将被,到现在长方体只剩下了一个自由度,即沿Marker_1的X轴的移动,通过在ADAMS中定义Motion仿真验证可得,自由度的个数和方向是正确的
图8
(5)在步骤(1)、(2)、(3)的基础上,要使长方体只能绕X轴转动的一个自由度,再添加点+面(简单运动副),选择2_Bodies +1_Location,实体分别选取长方体和大地,选取大地上的Marker_1,方向选取Marker_1的X轴,那么生成的Marker_10(长方体)和Marker_11(Groud)的Z轴与Marker_1的X轴一致,如图9,那么长方体绕Marker_1的X轴的移动将被,现在长方体只剩下了一个自由度,即沿Marker_1的X轴的转动,通过在ADAMS中定义Motion仿真验证可得,自由度的个数和方向是正确的
图9
(6)如果步骤(5)采用添加点+线约束来长方体沿Marker_1的X轴移动,使其达到绕Marker_1的X轴转动,选择2_Bodies +1_Location,实体分别选取长方体和大地,选取大地上的Marker_1,方向选取Marker_1的Z轴,那么长方体沿Marker_1的X、Y轴的移动被此时验证模型提示只有一个自由度,但是出现冗余约束情况,
如下.model_1.JPRIM_2 (Inline Primitive_Joint) Translation Along Xj,
如图10,也就是说步骤(2)中的点+线约束已经约束过长方体沿Marker_6和Marker_7的X方向的移动,在坐标系Marker_1中就是Y轴方向移动被约束,如果你再用步骤(6)中点+线约束(沿Marker_1的Z轴方向)约束的话,那么长方体沿Marker_1中就是Y轴方向又被约束一次,出现过约束即冗余约束。
图10
(7) 用简单运动副(点+线、点+曲线、垂直轴等)来构造基本运动副(转动副、移动副等)的基本方法:用简单运动副构建基本运动副的时候,要保证已经约束过的自由度,不再被约束(即自由状态);添加简单运动副时,要在存在的自由度中移除不需要的自由度,同时使已经约束的自由度成自由状态。下面的话表示同时垂直于Z轴与Y轴的X轴的转动自由度不必要,过约束 ,需要移除。
unnecessarily removes this DOF:
Revolution Between Zi&Yj
(8)谢谢大家多多给我找出错误,谢谢
Warning about redundant constraint equations.
This article applies to ADAMS/Chassis, ADAMS/View, ADAMS/Solver, ADAMS/Car, ADAMS/Driveline, ADAMS/Pre, ADAMS/Motorsports, ADAMS/Aircraft, ADAMS/Rail, ADAMS/Engine (no specific release) on all platforms.
--------------------------------------------------------------------------------
Question
What does it mean when I get a warning that certain constraints are redundant
or unnecessarily remove certain DOF?
--------------------------------------------------------------------------------
Answer
Constraints in ADAMS remove degrees of freedom (DOF) from the system by adding
algebraic constraint equations to the governing system of DAEs (Differential and Algebraic equations). The different constraints in the ADAMS constraints library remove different types and number of DOF. Joints can remove anywhere from 1 to 6 DOF, depending on their type. For instance: Fixed joints remove 6 DOF: 3 translational & 3 rotational; Revolute joints remove 5 DOF: 3 translational & 2 rotational; Spherical joint remove 3 DOF: 3 translational & 0 rotational;
Translational joints remove 5 DOF: 2 translational & 3 rotational; InLine joints remove 2 DOF: 2 translational & 0 rotational; etc., etc.
(For more information on the type and number of DOF removed, or conversely allowed, by each joint in ADAMS, see the section on Constraints in the Using ADAMS/View manual.)
Mathematically, however, ADAMS represents similar constrained DOF with similar algebraic equations. Six algebraic equations used by ADAMS to represent DOF constrained by joints are as follows:
Xi-Xj = 0 (eq. 1)
Yi-Yj = 0 (eq. 2)
Zi-Zj = 0 (eq. 3)
Zi.Xj = 0 (eq. 4)
Zi.Yj = 0 (eq. 5)
Xi.Yj = 0 (eq. 6)
Eq. 1-3 constrain translational DOF while eq. 4-6 constrain rotational DOF. The English translation of these mathematical equations is as follows where, of the 2 parts connected by the joint, the I marker is on the first part and the J marker is on the second part:
1) Xi-Xj = 0 means that the global X coordinate of the I marker must always remain identical to the X coordinate of the J marker.
2) Yi-Yj = 0 means that the global Y coordinate of the I marker must always remain identical to the Y coordinate of the J marker.
3) Zi-Zj = 0 means that the global Z coordinate of the I marker must always remain identical to the Z coordinate of the J marker.
4) Zi.Xj = 0 means that the Z axis of the I marker must always remain perpendicular to the X axis of the J marker (which means no rotation about the common Y axis).
5) Zi.Yj = 0 means that the Z axis of the I marker must always remain perpendicular to the Y axis of the J marker (which means no rotation about the common X axis).
6) Xi.Yj = 0 means that the X axis of the I marker must always remain perpendicular to the Y axis of the J marker (which means no rotation about the common Z axis).
(The . notation in equations 4-6 signifies a dot product operation. Recall that when the dot product of two vectors = 0, the vectors are perpendicular.)
Each Fixed joint in your model uses 6 equations (eq. 1-6) while a Spherical uses 3 equations (eq. 1-3), a Revolute uses 5 equations (eq. 1-5), a Translational uses a different 5 equations (eq. 1,2,4-6), an InLine uses 2 equations (eq. 1-2), etc.
Notice how each of these five joints uses equations #1 & 2? Any such duplication of constrained DOF can lead to overconstraining your system, or introduce what are known as redundant constraint equations.
ADAMS outputs warning messages to try to help you understand which equations are redundant and therefore which DOF are unnecessarily removed.
____________________________
Example 1) If, in your model, Joint_7 is a Revolute joint and ADAMS gives you the 2 warning messages that:
WARNING:
Joint_7 unnecessarily removes Rotation Between Zi and Xj
Joint_7 unnecessarily removes Rotation Between Zi and Yj
then you have 2 redundant constraint equations. To get rid of them, you could
change Joint_7 from a Revolute to a Spherical joint. These messages indicate
that the rotational constraint eqs. 4 & 5 introduced by the Revolute joint are
not needed. Therefore you could safely replace it with a Spherical joint that
does not use these equations).
____________________________
Example 2) If, in your model, Joint_29 is a Translational joint and ADAMS
gives you the 3 warning messages that:
WARNING:
Joint_29 unnecessarily removes Rotation Between Zi and Xj
Joint_29 unnecessarily removes Rotation Between Zi and Yj
Joint_29 unnecessarily removes Rotation Between Xi and Yj
then you could change Joint_29 from a Translational to an InLine joint.
____________________________
Example 3) If you build a fourbar mechanism with 4 revolute joints you will
receive something similar to the following warning messages:
Joint_1 unnecessarily removes Rotation Between Zi and Xj
Joint_1 unnecessarily removes Rotation Between Zi and Yj
Joint_3 unnecessarily removes Rotation Between Zi and Xj
These messages indicate that Revolute Joint_1 could safely be changed to a
Spherical joint and Revolute Joint_4 could be changed to a Universal or Hooke
joint. Doing so would get rid of your redundant constraint warnings and could
possibly improve the performance of your solution. Alternatively, by changing
just one of the Revolute joints to an InLine joint you would also remove your
redundancies. There is almost always more than one way to remove redundant
constraints. The best way to proceed is to select your joint types to make
them match the way your physical system can move. .
Remember that ADAMS will not be able to calculate joint reaction forces in any
directions associated with redundant constraint equations since it
automatically removes these equations when it performs a simulation. So you
might also want to select your joint types based on where you want to measure
joint reaction forces.
说说我自己关于红色部分的理解。
多余自由度是你加的约束有重合的部分而造成的。Adams怎么表示自由度的呢?就是你在加载约束时,Adams会自动在First rigid body和Second rigid body自动添加I marker和J marker,而I marker标记在First rigid body上,而J marker标记在Second rigid body上。
(eq. 1) 当I marker的X坐标和J marker的X坐标相减始终为零的时候,就说明了First rigid body和Second rigid body在坐标系的X轴方向没有相对运动,也就是了First rigid body和Second rigid body在X轴方向上的相对移动,也就了X轴方向上的移动自由度。
同理,(eq. 2) 和(eq. 3) 了在Y轴方向上的移动自由度和Z轴方向上的移动自由度
(eq. 4) 说的是I marker的Z轴坐标和J marker的X轴坐标的乘积始终为零,那就意味着First rigid body和Second rigid body在I marker和J marker所拥有的共同的Y轴方向上没有相对转动,也就了Y轴方向上的转动自由度。
同理,(eq. 5)和 (eq. 6)是不能围绕着X轴和 Z轴做相对的转动,也就是了I marker或者J marker X轴和Z轴方向上的转动自由度。
最重要的是最后一段话,你说加载的约束是应该根据你的模型来调整的。你所认为关键的部分的约束一定不要变,其他地方地方出现过约束了,你可以改变。
如果有不对的地方,还请高手补充修改。
很不错啊,原来这种有问题我只会删MARKER,paor兄真是厉害,学习能力超强 下载本文