视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
学习ADAMS已经有一段时间了
2025-09-25 17:49:21 责编:小OO
文档
  学习ADAMS已经有一段时间了,老师说ADAMS中自由度问题是一个很繁琐的问题,的确如此,现在面对自己课题的时候,老是提示出现冗余约束的问题,问了好几个老师,都没有解决,只好靠自己了,清明花了几天时间,看了好几篇文章,自己仔细琢磨了和推敲,对自由度以及冗余约束的问题有了深入了解,自我感觉挺有用的,希望大家给我指点哈。我以一个长方体为模型,其在空间的自由度为6,构建的模型和参考点如图下图1图中定义了在Groud上的参考Marker_1,用于定位和创建运动副,构建长方体的时候自动生成了一个定位点Marker_2,两个Marker的坐标轴均和全局坐标一直,如图2

    

                            图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兄真是厉害,学习能力超强 下载本文

显示全文
专题