公司介绍人才招聘新闻中心团队风采市场活动行业动态第一性原理计算软件:ASAP跨尺度分子动力学模拟软件:J-OCTA复合材料多尺度建模与仿真软件:Digimat复合材料工程软件:Fibersim工业CT数据分析与可视化软件:VG三维可视化及分析软件:AVIZO材料计算与多尺度建模软件复合材料缠绕工艺仿真软件:CADfil金属材料加工工艺仿真软件:Simufact自动化数控编程软件:Edgecam数控加工一体化解决方案:NCSIMUL工艺仿真优化与智能制造软件数字孪生与机器学习大数据优化软件:ODYSSEE通用多学科多目标优化平台:HEEDS多物理场仿真软件:HapMat - Multi传动系统设计仿真工具:Romax Nexus系统、软件、光学、虚拟现实解决方案:Ansys SBU声学与NVH解决方案:Actran多体动力学仿真解决方案:Adams全参数快速优化工具:SFE CONCEPT高级控制与系统仿真:Easy5系统级仿真软件:Simcenter Amesim电池设计软件:Simcenter BDS轮胎仿真软件:Simcenter Tire智慧研发一体化解决方案高级非线性仿真解决方案:Marc多学科 FEA 解决方案:MSC Nastran基于有限元的耐久性解决方案:MSC Fatigue专业的土木工程结构分析软件:CivilFEM完整的FEA建模解决方案:Patran用于虚拟产品开发的统一CAE环境:Apex用于桌面系统的多学科仿真:MSC Nastran Desktop结构有限元与疲劳耐久软件流体与传热分析软件:Cradle电子散热仿真分析软件:Simcenter Flotherm通用流体传热分析软件:Simcenter FLOEFD高级热仿真解决方案:Sinda流体传热分析软件材料全生命周期管理:MaterialCenter仿真过程与数据管理:SimManager可持续化的流程与产品合规性平台:iPoint系统级管理平台T3Ster热阻测试仪Power Tester功率循环及热测试平台振动噪声实验解决方案:LMSDIC全场应变测量系统传感器系列T3STER SIMicRed航空航天汽车行业电子电器兵器行业船舶行业核电工业土木建筑石油化工材料行业半导体封装案例中心资料下载培训中心教程视频
联系热线:400-633-6258

Adams变拓扑分析之回调子程序

01文章背景

变拓扑分析的相关内容在前期文章,点击可查看《Adams变拓扑分析之传感器》中已有描述,通过Adams/Sensor可以有效地完成众多变拓扑分析的工程需求。本文将进一步挖掘Adams进行变拓扑分析的相关功能,方便大家的工程应用。子程序作为Adams一种常用的高级功能,由众多熟悉Adams的工程师展开应用,实现了很多貌似不可能完成的任务。因为,子程序作为一种更加接近Adams内核的对象,可以实现很多界面功能不易实现的应用场景。为此,针对变拓扑分析这一场景,我们在众多子程序中选择CBKSUB子程序展开说明和应用,以期为有这方面需求的工程师拓展出新的使用模式。

02回调子程序

有关回调子程序的相关情况请参考《Adams回调函数功能解析》,这里不再赘述。本文主要描述用于实现仿真过程中不同脚本命令调用的回调函数子程序的内容。

1回调子程序源代码

本程序的基本逻辑是,当回调函数遇到传感器触发事件发生时,首先会进行命令字符串的构建,然后将命令传递给Modify函数,Consub可以调用Modify,在执行了Modify发出的命令后,程序控制返回到Consub,关于Consub调用Modify的机制这里不展开。但这里需要注意一个使用特点,Adams/Solver会忽略命令末尾5个空格之后的部分,因此,当使用字符功能构建命令时,需要注意将多余的空格去掉。

对于上述逻辑,如果不想对源代码有过多的认识,只需要考虑后面的使用流程就可以,核心思想是每个sensor对应一个Acf文件,在Acf文件中有相关的命令,当传感器触发事件发生后,程序会将该传感器的ID传输到Data数组中,然后,命令字符串的构建会综合这个ID,这样就形成了那个sensor触发,执行对应的Acf文件的目的。具体流程如下:

2回调函数与sensor联合使用流程

说明,上图中绿色框针对的sensor定义以及Acf文件之间有一定的对应关系,在同一个模型中可以有多个sensor的存在,当然需要每个sensor有对应的Acf文件存在。回调源程序按照常规编译流程生成DLL文件供Callback对象调用。仿真时不再需要写复杂的仿真脚本,通过脚本命令也实现不了本功能。

03应用案例

应用案例的目的,实现模型中多个sensor存在情况下,不考虑触发顺序,按照实际情况,哪个sensor触发就执行对应的命令。如果触发的顺序已知,可以采用常规的仿真脚本即可实现。

基本建模,建立四个球体,从上到下分别为Part_a,Part_b,Part_c,Part_d,其中前两个与大地建立水平滑移副,后两个与大地建立固定副,并且前两个在质心处作用水平力,分别为200N,100N(后继互换),由于重力加速度竖直向下,固定副解锁后会自由落体,以表征sensor事件触发后的动作。最后分别定义两个sensor,事件函数分别为a,b两球的水平速度,比较值分别为10米每秒和15米每秒,由于这里长度采用毫米为单位注意转化。

3基本模型

建立的sensor,由于要和回调函数联合应用,此时要求sensor必须有一个触发后的动作,因此,sensor_2类似于sensor_1具体如下:

4左侧为sensor定义,右侧为触发后的动作

这里选择了最后一个动作,其实程序并不关注这个动作的数值是什么,只关注有没有这个动作。通过命令库找到Callback的定义项,完成回调对象的定义,如下所示:

5回调对象定义

还需完成与传感器对应的Acf文件的创建,这里有两个传感器,因此定义两个Acf文件,具体如下:

6Acf文件定义

定义该文件需要注意其名称以及同sensor的ID号之间的联系,这个在源程序中以有过说明。实现的目的,当sensor_1触发后将3号joint抑制,也即part_c小球之后会自由落体;当sensor_2触发后将4号joint抑制,也即part_d小球之后会自由落体。当然,将各自的sensor在触发后关闭。

提交仿真,可以使用交互式仿真也可以使用脚本计算,但是如果使用脚本计算要注意不能再有对传感器的操作,因为本案例找的就是传感器触发事件。

7 0时刻动画

上图展示初始状态动画,红色球上施加200N载荷,绿色球上施加100N载荷,分别沿水平方向加速运动,当红色球达到10米每秒速度时sensor_1触发,当绿色球达到15米每秒速度时sensor_2触发,可以观察右侧曲线为各自触发的时刻。

8 Sensor_1触发而sensor_2没有触发动画

sensor_1触发后,黄色球体与大地之间的固定副解锁,可参考sensor_1对应的Acf命令,将Joint_3抑制,黄色球在重力作用下自由落体,可通过动画图中的白色轨迹线看到其已经在动了。

9 Sensor_2触发动画

同样地,等到sensor_2也触发后,靓色球体与大地之间的固定副解锁,可参考sensor_2对应的Acf命令,将Joint_4抑制,靓色球在重力作用下自由落体,其已经运动并且有轨迹,但是当前两个球的轨迹重合。

04文章总结

通过利用回调函数子程序的功能,拾取传感器触发事件,通过编程将每个传感器触发对应的命令选择执行,实现了多个传感器存在情况下,触发次序无关的需求。通过上述流程说明和实例展示,该方法非常简单有效,适合实际工程所需。并且,可以面对交互式仿真或者脚本仿真使用,应用范围较广,可解决这类较复杂工况问题,为多体动力学的变拓扑分析提供了新的解决方法。


相关产品链接:

https://www.anscos.com/adams.html

更多信息请关注庭田科技

全国热线:4006336258

官方邮箱:info@anscos.com

【文章来自海克斯康工业软件】


服务热线:400 633 6258    
官方邮箱:info@anscos.com
总部地址:上海市徐汇区钦州路100号2号楼1203室
设为首页 | 收藏本站
©2021 上海庭田信息科技有限公司 版权所有
关注庭田科技微信公众号
获取更多资讯!
产品与服务
技术与学习
关于我们