在多体仿真中,所面临的工况有很多种,不是简单的规定一个时间,给定一个输出步数就能满足所有工况的仿真要求,经常面临仿真过程中对系统拓扑关系的变化、模型参数的调整等需求。此时,Adams中的sensor(传感器)就有了用武之处,通过sensor可以获得某种状态,再通过脚本展开后继的模型修改,从而可以完成绝大多数变拓扑相关的任务要求。本文不再描述简单的sensor应用,而是针对稍微复杂一些的工况融合sensor展开建模和仿真说明。
PART.01 传感器功能
传感器的基本功能类似编程中的if…else语句,通过在仿真过程中实时监测所定义事件的状态,然后实现修改仿真的目的,再结合脚本命令实现修改模型的目的。这里的事件通常通过逻辑函数的方式完成定义,即利用函数表达式与给定目标的比较实现逻辑的定义。一旦返回逻辑真,sensor将会有很多方式进行仿真的修改,比如终止仿真、重启、返回等。对于sensor的深入使用,必须分清楚如下几个概念,函数表达式(function)、事件评估(evaluate)和senval()函数。
函数表达式
通过上图,可以查看函数表达式的对话框位置。这里的函数表达式是为了实现逻辑判断,通过函数构建器完成所需要的函数表达式的定义,也或者叫做事件的定义,但需要明确这里仅仅是事件定义中的函数表达式的定义,后面还需要完成比较定义后,才是完整的事件定义。Adams/Solver正是在仿真过程中,实时监测该事件获得逻辑值的真或假。
事件评估
通过上图,可以查看事件评估的对话框位置。这个地方的expression,仅当sensor事件触发时进行计算,并且可通过senval()获得其值。不要小看senval()函数的作用,它可以让仿真更加灵活,更符合实际工程所需。
PART.02 应 用
第一个实例,实现计数功能。
建模要素:创建一个水平的圆柱,在一端定义转动副,并施加驱动,确保其可以圆周回转。然后进行sensor的定义,按照图示完成定义,其中位移函数使用圆柱质心点和转动铰处点,事件评估处使用senval()函数的计数形式。比较符号采用了equal,比较值为0也即质心点通过y轴时触发事件并完成事件评估计算。
完成模型创建后,进行2秒的计算,这里的驱动设置为360度每秒,因此,可以看到下图中左侧曲线经历了两个周期,也即圆柱转动了两圈。前面已论述触发事件为质心通过Y轴,因此,整个历程中会有四次事件触发,因此,右侧曲线为每次事件触发的时间和最终的计数,两者正好对应。
当然,这类计数的效果Adams还有很多方式可以实现,但是通过sensor结合事件评估与senval()函数的方式,是我们经常采用的一种方法,总体比较简单直接。通过这个简单的实例期望对三者的功能有深入的了解,以便展开下一实例的应用。
第二个实例,当一个模型中有多个sensor时,我们并不清楚本工况下,哪个sensor首先触发,因此,在后继编写脚本时不能确定先写哪个sensor对应的相关命令,本实例应对该种需求。
建模要素:建立四个球体,从上到下分别为Part_a,Part_b,Part_c,Part_d,其中前两个与大地建立水平滑移副,后两个与大地建立竖直滑移副,并且前两个在质心处作用水平力,分别为200N,100N(后继互换),在后两个竖直滑移副上定义驱动,以表征sensor事件触发后的动作。最后分别定义两个sensor,事件函数分别为a,b两球的水平速度,比较值分别为10米每秒和15米每秒,由于这里长度采用毫米为单位注意转化。
完成所需的建模元素定义,为了实现两个sensor的触发不受次序的影响,专门将触发后的动作与之通过senval()函数进行了关联,如下所示:
当sensor没有触发时,senval()的返回值为0,造成驱动速度为0,小球固定在原位不动,当sensor触发时,senval()的返回值为1,造成驱动速度为1000,小球将沿竖直轴滑动。
模型中的建模元素保持不变,仅仅将两个驱动力的幅值进行呼唤,由于sensor的事件定义没有跟着变,两次触发的时间是不同的,再次验证这种方法的适用性。
上图为红球施加200N作用力,绿球施加100N作用力的情形。监测红球水平速度0.2秒左右达到触发条件即10米每秒,通过上图中上面的曲线可以看到在0.2秒左右其值发生了突变。监测绿球水平速度0.6秒左右达到触发条件即15米每秒,通过上图中下面的曲线可以看到0.6秒左右其值发生了突变。由于红色球的触发条件低于绿色球,且红色球的作用力又大于绿色球,这两方面都促使了红色球首先达到触发条件,基于这个工况中两球触发的事件可以横比于后面的工况。
上图为红球施加100N作用力,绿球施加200N作用力的情形(通过图中力的矢量长度也可判断力的相对大小)。监测红球水平速度0.4秒左右达到触发条件即10米每秒,通过上图中上面的曲线可以看到在0.4秒左右其值发生了突变。监测绿球水平速度0.3秒左右达到触发条件即15米每秒,通过上图中下面的曲线可以看到0.3秒左右其值发生了突变。对两球前后两次工况的横比,结合v=at,可以看到是合理的。
当然,前后两次工况下,后面两个动作球,即c和d,有对应触发后的动作体现,通过该例实现了多个传感器条件下,不受限于触发次序的工况要求。
PART.03 总 结
变拓扑分析是多体动力学中比较重要也很常见的分析类型,sensor作为Adams中获取设定事件状态的主要功能,再结合函数、脚本等功能可以有效应对各种类型的变拓扑分析应用。另外,sensor定义中包含了系列参数,如果要对其有更为灵活和深入的使用,需要对这些参数有准确的理解,前述的实例仅仅比常规的sensor应用拓展了事件评估以及senval()函数的应用。
针对变拓扑分析将展开后继子程序应用模式说明,相比单纯的sensor应用将拓展到另一维度,进一步提高应用性。待更。
(海克斯康工业软件)
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈