小作用力门道多!探究Adams二次开发学习深浅的“力世界”
导读:“如果你愿意一层一层一层的剥开它的心,你会发现,你会讶异,Adams的学习竟然如此简单……”在Adams的世界观中,Adams作用力施加是建模过程中最关键的部分,虽然作用力创建的面板比较简单,但你真的了解它吗?越是简单的“洋葱”,越包裹了深深的外衣,我们需要把这些伪装依次撕下,才能化被动为主动。而没有理论基础的Adams就像一盘散沙,风一吹就散了……只有掌握理论基础,才能更加灵活的使用Adams。本文共分两个内容进行介绍,由浅入深介绍Adams作用力施加方法,在这里,①“浅”—你不光可以学习到最基础、完善的Forces窗口及力创建规则;②“深”—从CMD二次开发命令行的角度,进一步介绍作用力的理论概念。完全打通任督二脉,随心所欲的使用Adams的作用力创建。关于二次开发部分,可以查看我的视频课程《零基础小白Adams建模二次开发18讲》进行免费学习,其中包括了很多实例与思考。欢迎点击文尾阅读原文查看我的仿真专栏,进行技术交流与合作。文章两个模块的介绍有点长,大家可以根据自己的需求,快速跳到对应的地方进行学习。我在书写的过程中加入了自己的思考与技巧,纯纯干货,帮助大家更好的学习相关内容。当然,如果你有耐心的读完,你会看见一个不一样的“力世界”。一、模块一:“浅”
在这个模块中,你可以更详细的学到Adams作用力的创建方法以及相关技巧应用。如果可以,希望你本身会最基础的力创建命令。同时,我总结了在Adams建模过程中的一些心得体会和实用技巧,不同于Adams相关书籍,加入了一些自己的小方法并为一些概念起了易懂的名字,希望可以加深大家的印象。在Adams/View中,力定义了部件的载荷和柔度。力本身并不绝对的禁止或阻止部件运动,因此,力并不会增加或减少模型的自由度(这与驱动motion是不同的,驱动在一定程度上强制了部件的运动规律并约束模型的自由度)。有些力可以抵抗运动,比如弹簧阻尼,有些可以引起部件运动,比如单自由度作用力,但是这些力并不会改变模型自由度。施加作用力在Adams中的“Forces”工具栏下面,分为“Applied Forces”作用力、“Flexible Connections”柔性连接、“Special Forces”特殊力三种情况。柔性连接在部件运动过程中会阻止或抵抗运动,在使用过程中只需要输入固定的参数就可以,方式比较简单,关于力的大小,Adams会自动计算。柔性连接定义了部件的柔度,主要成员包括:梁(beams)、衬套(bushing)、线性弹簧阻尼器(translational spring dampers)、扭力弹簧(torsion springs),这些力提供了具有弹性的力响应关系。特殊力是日常中常遇到的力,比如重力(Gravity)、接触力(Contact),这部分力的创建比较简单,只需要按照窗口提示进行设置即可。作用力是实际应用中最常用的部分,本小节也主要针对作用力进行讲解,追根溯源,全面掌握该模块相关知识。作用力是指作用在部件上的载荷以促使部件沿着预定的方式移动。Adams/View提供了一系列的作用力以供选择。作用力分为单自由度力/扭矩、三自由度力/扭矩、六自由度力/扭矩。作用力按照窗口提示进行创建即可,比较简单,这里选取单自由度作用力创建以及四个重点问题进行介绍。力可以作用在两个部件上,或者一个部件和大地上。在进行作用力创建时,系统需要我们依次选择两个Part,这两个Part的选择顺序也有一定技巧。选择的第一个部件part1为作用体action body,主要承受施加的作用力,选择的第二个部件part2为受力体reaction body,接受相应的反作用力。如果所选的部件为大地,则反作用力为0。这两个Part的选择顺序在后处理输出部件受力的正负问题时,尤为重要。On One Body,Fixed in Space:力作用在单个部件上且力的方向为空间固定。On One Body,Moving with Body:力作用在单个部件上且力的方向跟随部件的移动而移动。On one Body,Moving with Other Body:力作用在第一个部件上且力的方向始终随着第二个部件移动。Between Two Bodies:力作用在两个部件上且力的方向始终在两个部件连线之间。Z轴是Adams建模中最关键的坐标轴,无论是创建作用力还是创建运动副,大多数的方向判断都可以归到Z轴判断上,我把它叫做“Z轴定律”。同样,关于作用力方向的选择,也遵守“Z轴定律”,Adams创建单自由度力时,共有下述两种方式:选择平行于草图(Normal to Grid)。如果开启工作草图,默认力的方向是平行于草图的z轴方向;如果关闭工作草图,默认力的方向是平行于当期视图的z轴方向。选择自定义方向(Pick Feature)。此时需要自定义力的方向,可以选择两个点、部件的边、部件表面的法向。此时会自动生成两个marker点,而这两个marker点的Z轴方向确定了力的方向。幅值顾名思义是力的大小,在Adams/View中,力的大小通常可以选择以下内容:数值输入(Constant force/torque)。用户可以直接指定一个数值或者使用Adams默认的数值。输入弹簧阻尼系数(Spring-Damper)。用户可以输入弹簧和阻尼系数,Adams会自动计算对应的函数,需要注意的是这个功能在主面板中可能无法显示,一般不使用。定制函数(Custom)。若使用这个功能,Adams不会创建任何的数值,也就是作用力大小为0。但是用户需要使用用户子程序来进行修改链接。小结:作用力创建最关键的就是掌握四个重点问题,也是我认为最难区分的点,只要捋清楚了这四个问题,相信大家可以更加游刃有余的创建作用力。二、模块二:“深”
在这个模块中,将通过二次开发的角度来解释Adams/View创建力的底层逻辑。通过用户窗口进行作用力创建只是Adams的表层现象,如果想进一步学习掌握作用力的创建逻辑,二次开发是个不错的选择。相比于传统的窗口模式,二次开发cmd命令可以更加灵活、方便。本模块同样使用单自由度作用力进行介绍。 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
篇幅有限,截取部分代码段,可以在本仿真秀APP公众 号后台回复【单自由度】获取资料或查看视频教程获取整个代码段本节也只选取重要的代码段进行注释,其余部分可以同样私信仿真秀APP公 众号后台进行获取。除第一行的代码行说明外,共有18个参数可以选择,相比于仅使用主面板创建力的方法,选择更加灵活,且18个参数并不是都会用到,可以选择需要的参数进行排列组合。这个参数主要用来区分action-reaction和action-only。13)输入作用力方向。如果输入一个marker点,则认为方向是marker点的z轴方向,如果输入两个marker点,则认为方向是两个marker间的连线方向。17)直接通过选择i marker点来确定作用部件18)直接通过选择j marker点来确定反作用力部件及力方向①action--reaction forces(力—反作用力):这种类型的作用力包含两个部分,分别是受力物体本身first body会受到力的作用,同时,选取的第二个物体second body也会受到反作用力。这种类型的差异在后处理中尤为常见。②action-only forces(单部件作用力):这种类型的作用力只会施加在第一个部件,也就是受力物体first body上,选择的第二个物体不会受到反作用力。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点上。Adams单自由度作用力宏代码在编写时需要注意,10-13部分即使用part创建作用力和17-18部分即使用marker创建作用力不能同时使用。①使用指定part方法创建的力:Adams会自动生成marker点,用户无需指定marker点。缺点:在实际编写cmd命令的时候,通过part创建力,会生成一系列的marker点,且这些marker点没有特殊的、可辨别的名字,会使整个模型变得冗余。②使用指定marker点方法创建的力:marker点的前缀名字需要加上。缺点:需要提前设置或生成marker点才可以进行指定,i marker点的位置需要格外注意,因为它决定了受力部件,j marker点的方向需要格外注意,因为它决定了力的方向。优点:不会生成较多的marker点,整个模型清晰明了。是较为常用的方法。三、写在最后
文章只是介绍了作用力创建过程中二次开发代码的编写重点,我也写了几行简单的代码行为参考,可以私信公众 号后台进行领取,大家需要亲自进行编写创建,才可以发现其中的魅力和乐趣,如果你在编写过程中遇到了问题,不妨回过头来看看这篇文章,你会找到你想要的答案。问题思考:在第一个模块中,我们提到,Adams/View在创建作用力时分为空间固定、跟随部件、两个部件之间……类型,而Adams二次开发代码并没有明确的展示出不用作用力类型的区别,那么你会用Adams二次开发实现不同的作用力类型吗?大家可以自己动手进行编写学习,也可以在我的视频课程《全程陪你编写命令脚本!零基础进阶Adams建模二次开发技能》中进行查看。以下是课程安排:
全程陪你编写命令脚本!零基础进阶Adams建模二次开发技能
VIP群答疑+持续加餐+模型资料+奖学金+企业内推想不到小小的作用力创建居然可以有这么多的门道,希望可以通过这篇文章的介绍,让你对作用力创建有一个更加全面的理解,无论是浅显的窗口创建还是深层次的二次开发内容,只要用心去理解,你会发现不一样的天地。仿真秀,致力于为每一位学习者提供优质的仿真资源与技术服务支持,让您的仿真学习之旅更加顺畅,欢迎在公 众号对话框与我互动交流!以下资料供用户永久免费下载哦(见下图)。下载地址在仿真秀APP公 众号菜单-资料库-资料下载-进入百度云盘群下载,不会失效,且永久免费更新。
获赞 10210粉丝 21712文章 3585课程 221