首页/文章/ 详情

双角度学习Adams作用力—窗口面板&二次开发

7小时前浏览15

🌺这里是小刀的不定时更新,喜欢我的文章就关注我吧🌺


前言:“如果你愿意一层一层一层的剥开它的心,你会发现,你会讶异,Adams的学习竟然如此简单……”在Adams的世界观中,Adams作用力施加是建模过程中最关键的部分,虽然作用力创建的面板比较简单,但你真的了解它吗?越是简单的“洋葱”,越包裹了深深的外衣,我们需要把这些伪装依次撕下,才能化被动为主动。而没有理论基础的Adams就像一盘散沙,风一吹就散了……只有掌握理论基础,才能更加灵活的使用Adams。

主题:本文共分两个内容进行介绍,由浅入深介绍Adams作用力施加方法,在这里,①“浅”—你不光可以学习到最基础、完善的Forces窗口及力创建规则;②“深”—从CMD二次开发命令行的角度,进一步介绍作用力的理论概念。完全打通任督二脉,随心所欲的使用Adams的作用力创建。关于二次开发部分,可以查看我的视频课程《零基础小白Adams建模二次开发18讲》进行免费学习,其中包括了很多实例与思考。

文章两个模块的介绍有点长,大家可以根据自己的需求,快速跳到对应的地方进行学习。我在书写的过程中加入了自己的思考与技巧,纯纯干货,帮助大家更好的学习相关内容。当然,如果你有耐心的读完,你会看见一个不一样的“力世界”。

模块一:“浅”

概要:在这个模块中,你可以更详细的学到Adams作用力的创建方法以及相关技巧应用。如果可以,希望你本身会最基础的力创建命令。同时,我总结了在Adams建模过程中的一些心得体会和实用技巧,不同于Adams相关书籍,加入了一些自己的小方法并为一些概念起了易懂的名字,希望可以加深大家的印象。

1、从自由度的角度看待力

在Adams/View中,力定义了部件的载荷和柔度。力本身并不绝对的禁止或阻止部件运动,因此,力并不会增加或减少模型的自由度(这与驱动motion是不同的,驱动在一定程度上强制了部件的运动规律并约束模型的自由度)。有些力可以抵抗运动,比如弹簧阻尼,有些可以引起部件运动,比如单自由度作用力,但是这些力并不会改变模型自由度。

2、力的分类

施加作用力在Adams中的“Forces”工具栏下面,分为“Applied Forces”作用力、“Flexible Connections”柔性连接、“Special Forces”特殊力三种情况。

1)柔性连接Connections

柔性连接在部件运动过程中会阻止或抵抗运动,在使用过程中只需要输入固定的参数就可以,方式比较简单,关于力的大小,Adams会自动计算。柔性连接定义了部件的柔度,主要成员包括:梁(beams)、衬套(bushing)、线性弹簧阻尼器(translational spring dampers)、扭力弹簧(torsion springs),这些力提供了具有弹性的力响应关系。

image.png

2)特殊力Special-Forces

特殊力是日常中常遇到的力,比如重力(Gravity)、接触力(Contact),这部分力的创建比较简单,只需要按照窗口提示进行设置即可。

image.png

3)作用力Applied-Forces

作用力是实际应用中最常用的部分,本小节也主要针对作用力进行讲解,追根溯源,全面掌握该模块相关知识。

image.png

作用力是指作用在部件上的载荷以促使部件沿着预定的方式移动。Adams/View提供了一系列的作用力以供选择。作用力分为单自由度力/扭矩、三自由度力/扭矩、六自由度力/扭矩。作用力按照窗口提示进行创建即可,比较简单,这里选取单自由度作用力创建以及四个重点问题进行介绍。

①  重点一:两个Part问题

力可以作用在两个部件上,或者一个部件和大地上。在进行作用力创建时,系统需要我们依次选择两个Part,这两个Part的选择顺序也有一定技巧。选择的第一个部件part1为作用体action body,主要承受施加的作用力,选择的第二个部件part2为受力体reaction body,接受相应的反作用力。如果所选的部件为大地,则反作用力为0。这两个Part的选择顺序在后处理输出部件受力的正负问题时,尤为重要。

image.png

②  重点二:四个类型问题

On One Body,Fixed in Space:力作用在单个部件上且力的方向为空间固定。

image.png

On One Body,Moving with Body:力作用在单个部件上且力的方向跟随部件的移动而移动。

On one Body,Moving with Other Body:力作用在第一个部件上且力的方向始终随着第二个部件移动。

image.png

Between Two Bodies:力作用在两个部件上且力的方向始终在两个部件连线之间。

image.png

③重点三:Z轴定律

Z轴是Adams建模中最关键的坐标轴,无论是创建作用力还是创建运动副,大多数的方向判断都可以归到Z轴判断上,我把它叫做“Z轴定律”。同样,关于作用力方向的选择,也遵守“Z轴定律”,Adams创建单自由度力时,共有下述两种方式:

选择平行于草图(Normal to Grid)。如果开启工作草图,默认力的方向是平行于草图的z轴方向;如果关闭工作草图,默认力的方向是平行于当期视图的z轴方向。

image.png

选择自定义方向(Pick Feature)。此时需要自定义力的方向,可以选择两个点、部件的边、部件表面的法向。此时会自动生成两个marker点,而这两个marker点的Z轴方向确定了力的方向。

image.png

④重点四:幅值定义

幅值顾名思义是力的大小,在Adams/View中,力的大小通常可以选择以下内容:

数值输入(Constant force/torque)。用户可以直接指定一个数值或者使用Adams默认的数值。

输入弹簧阻尼系数(Spring-Damper)。用户可以输入弹簧和阻尼系数,Adams会自动计算对应的函数,需要注意的是这个功能在主面板中可能无法显示,一般不使用。

定制函数(Custom)。若使用这个功能,Adams不会创建任何的数值,也就是作用力大小为0。但是用户需要使用用户子程序来进行修改链接。

 

小结:作用力创建最关键的就是掌握四个重点问题,也是我认为最难区分的点,只要捋清楚了这四个问题,相信大家可以更加游刃有余的创建作用力。 

模块二:“深”

概要:在这个模块中,将通过二次开发的角度来解释Adams/View创建力的底层逻辑。通过用户窗口进行作用力创建只是Adams的表层现象,如果想进一步学习掌握作用力的创建逻辑,二次开发是个不错的选择。相比于传统的窗口模式,二次开发cmd命令可以更加灵活、方便。本模块同样使用单自由度作用力进行介绍。

 

1、单自由度作用力创建函数

Force create direct single_component_force

1)single_component_force_name=new single component force

5)action_only=on/off

10)i_part_name=an existing body

11)j_part_name=an existing body

12)location=         location

13)orientation=orientation

17)i_marker_name=existing marker

18)j_marker_name=existing marker


篇幅有限,截取部分代码段,可以留言获取资料或查看视频教程获取整个代码段

2、代码段注释

本节也只选取重要的代码段进行注释,其余部分可以同样留言进行获取。

除第一行的代码行说明外,共有18个参数可以选择,相比于仅使用主面板创建力的方法,选择更加灵活,且18个参数并不是都会用到,可以选择需要的参数进行排列组合。

1)单自由度力的名称

5)选择是否设置反作用力

这个参数主要用来区分action-reaction和action-only。

10)输入力作用的第一个部件名称

11)输入力作用的第二个部件名称

12)输入力作用点

13)输入作用力方向。如果输入一个marker点,则认为方向是marker点的z轴方向,如果输入两个marker点,则认为方向是两个marker间的连线方向。

17)直接通过选择i marker点来确定作用部件

所选择的marker点必须是已经存在的

18)直接通过选择j marker点来确定反作用力部件及力方向

 

3、两个力类型

在二次开发代码段中,作用力可以分为两种类型:

①action--reaction forces(力—反作用力):这种类型的作用力包含两个部分,分别是受力物体本身first body会受到力的作用,同时,选取的第二个物体second body也会受到反作用力。这种类型的差异在后处理中尤为常见。

②action-only forces(单部件作用力):这种类型的作用力只会施加在第一个部件,也就是受力物体first body上,选择的第二个物体不会受到反作用力。

4、Marker点定律—重点

marker点是Adams建模中最重要的一个概念,也是Adams建模的基础,对于Adams底层逻辑来说,所有的参数建模结构都可以用marker点进行链接。也可以理解为marker点是组成Adams建模的细胞。

力在创建时是依托于marker点进行的,作用力连接了两个部件,并在两个部件上分别放置marker点作为标识符,也可以理解为力独特的“暗号”。其中I marker点决定了力的作用对象,也就是我们选择的第一个部件(first part),该点存放在第一个部件中。J marker点的Z轴决定了力的作用方向,该点存放在第二个部件上。

如果选择action-reaction forces模式,则力会作用于I marker点和J marker点;如果选择了action-only forces模式,则力只会作用于I marker点上。

image.png

5、两个创建模式

Adams单自由度作用力宏代码在编写时需要注意,10-13部分即使用part创建作用力和17-18部分即使用marker创建作用力不能同时使用。

①使用指定part方法创建的力:Adams会自动生成marker点,用户无需指定marker点。

缺点:在实际编写cmd命令的时候,通过part创建力,会生成一系列的marker点,且这些marker点没有特殊的、可辨别的名字,会使整个模型变得冗余。

优点:无需提前查找marker点,出错率低。

②使用指定marker点方法创建的力:marker点的前缀名字需要加上。

缺点:需要提前设置或生成marker点才可以进行指定,i marker点的位置需要格外注意,因为它决定了受力部件,j marker点的方向需要格外注意,因为它决定了力的方向。

优点:不会生成较多的marker点,整个模型清晰明了。是较为常用的方法。

6、“Z轴定律”

Adams代码进行建模时,同样遵循“Z轴定律”。

 

小结:文章只是介绍了作用力创建过程中二次开发代码的编写重点,我也写了几行简单的代码行为参考,可以留言进行领取,大家需要亲自进行编写创建,才可以发现其中的魅力和乐趣,如果你在编写过程中遇到了问题,不妨回过头来看看这篇文章,你会找到你想要的答案。

 

问题思考:在第一个模块中,我们提到,Adams/View在创建作用力时分为空间固定、跟随部件、两个部件之间……类型,而Adams二次开发代码并没有明确的展示出不用作用力类型的区别,那么你会用Adams二次开发实现不同的作用力类型吗?大家可以自己动手进行编写学习,也可以在我的视频课程中进行查看。

 

文章总结想不到小小的作用力创建居然可以有这么多的门道,希望可以通过这篇文章的介绍,让你对作用力创建有一个更加全面的理解,无论是浅显的窗口创建还是深层次的二次开发内容,只要用心去理解,你会发现不一样的天地。

ACTAdams二次开发航空航天汽车工程车多体动力学理论
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-02-11
最近编辑:7小时前
孙小刀
硕士 女攻城狮也有大志向
获赞 88粉丝 45文章 9课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈