基于APDL语言用于机床等效结合面快速定义的方法与流程

文档序号:15198655发布日期:2018-08-19 02:42阅读:605来源:国知局

本发明属于基于ansys的机床动静热仿真分析技术,特别是一种基于apdl指令用于机床等效结合面快速定义的方法。



背景技术:

机床乃至各类机械,为了满足各种功能、性能和加工要求以及运输上的方便,一般都不是一个连续的整体,而是由各种零件按照一定具体要求组合起来的。结合面是指零件、组件、部件之间相互接触的表面,也称接触面。

通常关于结合面问题的研究,主要围绕着四个方面:结合面基础理论研究、结合面特性试验研究、结合面动态特性参数识别研究和结合面应用技术研究。结合面的理论研究最终目的是为工程应用服务,具体表现为考虑结合面特性的机械结构仿真分析方法。许多学者通过建模和试验论证建立众多关于结合面特性解析模型,但是在有限元分析中,一般很难直接应用解析模型求解,需要建立相应的等效模型。

建立等效结合面首先需要确定装配体的接触面,在一般的机械结构中,“接触”顾名思义只有在几何体表面有重合部分,存在相互作用力,接触的情况多种多样,接触面的拾取和定义复杂多变。事实上,在ansys的workbench中当一个装配体的模型被导入的时候,接触关系已经自动的探测,点击connections—contacts—contactregion,ansys可以自动高亮显示出接触区域。

虽然workbench极大得提高了有限元分析的便利性,但它也并不是适用于任何情况,如参数化设计,通过调整参数,从而进行结构优化,需要对上百组参数进行分析,如果完全通过手动完成,其工作量不可想象;对于复杂的结构分析或者多场耦合分析,不但需要扎实的有限元知识,熟知分析对象的理论依据,对ansys掌握的要求也很高,通常会对分析流程方法进行研究,开发出具有专用性的分析工具,减少设计人员的学习成本。

大量学者论证了考虑等效结合面建模的有限元分析的有效性,但是经典ansys中是通过接触定义向导定义接触,定义和拾取面的过程很是繁琐,都很大程度上限制了它的应用。因此研究并设计一种基于apdl语言用于机床等效结合面快速定义的方法十分重要。



技术实现要素:

本发明的目的在于提供一种基于ansys中apdl指令实现的机床等效结合面快速建模方法,以往经典ansys中接触面需要人工选取,该方法可以对常见机床装配体中的接触面进行快速识别,从而方便快速建立等效结合面,提高仿真分析的效率。

实现本发明目的的技术方案为:一种基于apdl语言用于机床等效结合面快速定义的方法,其特征在于如下步骤:

步骤1:利用apdl语言获取ansys中机床分析对象拓扑关系信息,包括点、线、面、体及其拓扑关系,采用邻接表来存储装配体有向图;

步骤2:对步骤1获取的拓扑信息,任取装配体中不同部件的两平面,采用空间内凸平面接触判据判断两平面是否接触;

步骤3:对步骤1获取的拓扑信息,任取装配体中不同部件的两圆柱面,采用空间内圆柱面接触判据判断两圆柱面是否接触;

步骤4:根据步骤2和3得到的装配体接触面信息,使用apdl语言进行等效结合面定义,步骤为:材料属性定义——单元类型定义——建立硬点——定义结合面参数——划分网格——连接对应节点。

本发明与现有技术相比,其显著优点:经典ansys中是通过接触定义向导定义接触,定义和拾取面的过程很是繁琐,都很大程度上限制了它的应用。本发明和以往仿真分析中以来人工建立结合面相比,在保证准确性的前提下,提高了等效结合面建模速度,从而提高了仿真分析的效率。

附图说明

图1是本发明基于apdl语言用于机床等效结合面快速定义的方法的流程图。

图2是装配体拓扑结果存储模型示意图。

图3是有向图邻接表示意图。

图4是拓扑关系存储类图。

图5是平面示意图。

图6是空间曲线绕轴旋转示意图。

图7是两圆柱面相交示意图。

图8是apdl指令发送处理流程图。

图9是仿真分析界面。

图10是结合面硬点创建界面。

具体实施方式

结合图1,一种基于apdl语言用于机床等效结合面快速定义的方法,步骤如下:

步骤1:利用apdl语言获取ansys中机床分析对象拓扑关系信息,包括点、线、面、体及其拓扑关系,采用邻接表来存储装配体有向图;

步骤2:对步骤1获取的拓扑信息,任取装配体中不同部件的两平面,采用空间内凸平面接触判据判断两平面是否接触;

步骤3:对步骤1获取的拓扑信息,任取装配体中不同部件的两圆柱面,采用空间内圆柱面接触判据判断两圆柱面是否接触;

步骤4:根据步骤2和3得到的装配体接触面信息,使用apdl语言进行等效结合面定义,步骤为:材料属性定义——单元类型定义——建立硬点——定义结合面参数——划分网格——连接对应节点。

1、拓扑关系存储与加载

由图2可以看出,有向图g中各元素之间多为一对多的关系,可以转化为图型结构数据的存储问题,本文采用邻接表来存储装配体有向图。

邻接表由表头结点和表结点两部分组成,其中每个顶点对应一个存储在数组中的表头结点,表结点存放的是邻接顶点在数组中的索引。

取有向图g的子集g1={υ1,f1,e8,e1,e5,e11,p1,p2},建立表头结点。与一般的有向图不同,顶点的数据类型并不是单一的,此处表头结点顶点数据的集合中除了包括点集p(g),还包括v(g)、f(g)、e(g),集合中元素下标从0开始,顶点集合为g1。data表示顶点数据,firstedge指向第一个邻接点的指针域;adjvex表示邻接点域,next指向下一个邻接点的指针域,最终有向图如图3。

根据上述内容建立如图4所示的类图,entity类为volumes、areas、lines、points的父类,

adiacencylist<t>类使用泛型实现了图的邻接表存储结构,利用泛型list代替数组,从而不必担心内存溢出,它包含两个内部类,类中的visited成员用来标识当前结点是否访问过,vertex<t>类表示表头结点,node类表示表结点,用来存放着邻接点信息。

ansys可将输出结果保存在指定文件目录下,其格式是后缀为.txt的文本文件,对文本文件进行解析,如何关于文本转化为对应的数据结构不多赘述,但在处理ansys输出结果文件时应当注意下面几个方面:

(1)一般在cad软件中对分析对象建模后导入ansys中,会出现一定程度的失真,表现为坐标值小数位很多,如:

“51-0.49724930.2500000e-01-0.6819037”

其中51代表点的编号,此时点标号和x坐标值混合,y坐标和z坐标值混合,需要特别处理,将其分离。

(2)一条线由两个点构成,但是面由多条线构成,一个普通平面4条线便可以表示,如遇到复杂零部件拓扑结构,需要对每行的数据特征进行识别,其中number代表面号,loop代表封闭的循环,lines表示组成面的线编号。

(3)判断两面是否相交的算法中,需要点集以逆时针顺序排列,在ansys中line的是以逆时针加载,因此遍历出某面组成的点集后,可以根据line顺序迅速实现对点的逆序化处理。

2、空间内凸平面接触判据

若已知平面π上的一点p0(x0,y0,z0)和该平面的非零法向量n(a,b,c),如图5,现建立平面π的方程。

设p(x,、y,z)是平面上的任意一点,做平面内任意向量由于于是有

平面π上的点p都满足上式,而平面π外的点p′,区与n都不垂直,故都不满足上式。

已知n(a,b,c),所以上式等于

a(x-x0)+b(y-y0)+c(z-z0)=0

ax+by+cz+d=0

其中d=-(ax0+by0+cz0),a,b,c不同时为零。

设有两平面

π1:a1x+b1y+c1z+d1=0

π2:a2x+b2y+c2z+d2=0

它们的单位法向量分别为n1=(a1,b1,c1),n2=(a2,b2,c2).故两平面夹角θ可由

来计算,易得两向量平行的充要条件是

从而两面共面的充要条件是a1=a2,b1=b2,c1=c2,d1=d2

装配体中的平面是有限的平面区域,因此除了判断两个面是否共面外,还要看两个面是否有交集。平面上给定两个任意凸多边形p={p1,p2,…pn}和q={q1,q2,…qm},其中集合中的顶点按逆时针方向排列,确定他们的交集,记为p∩q,且有p∩q={c|c∈p∧c∈q}。显然两个凸多边形的交任然是一个多边形。两个多边形位置关系有相离、外切、相交、内切、包含和相等六种情况,在结合面建立时所称的两面接触属于相交、内切、包含和相等这四种位置关系,外切时只有一点或多线相交,属于点接触和线接触,不是机床常见装配体接触面讨论的范畴。

在计算几何中判断凸多边形位置关系可以转化为判断所有的边边关系:

至少有一条边相交,且交集不是顶点或多边形的边,那么多边形接触若都不相交,在p中任选一点,判断其在多边形q位置关系,若pi∈q,则反之依然;若则两多边形不接触。将空间内的凸平面分别投影到x、y、z坐标平面,利用周培德提出在二维平面内的一种凸多边形相交算法判断投影图形是否相交(周培德.计算几何:算法设计与分析[m].北京:清华大学出版社,2011),当每个投影面均有交集,则空间内两凸平面接触。这样先通过平面方程先比较,方程相等后在进行相交判断可极大提高效率。

3、空间内圆柱面接触判据

如图6,若空间内有一条曲线,

绕直线旋转一周所得曲面记为∑,

由l的方程可知直线过固定点m0(x0,y0,z0),其方向向量τ=(l,m,n),

在线γ上任取一点m1(x1,y1,z1),点m1绕直线l旋转所形成的为一个圆,

在圆上任取一点p(x,y,z),点p即为空间曲面∑上的任意一点,

易得|m0p|=|m0m1|,

且m0p的连线一定垂直于直线l的方向向量τ,即m0p⊥τ,

综上任意空间旋转曲面∑的方程为

圆柱面是空间内一平行于直线l的线段γ,绕直线l所形成的空间曲面,如图7所示,两个圆柱面接触的充要条件是(1)圆柱体半径相等,r0=r1(2)

圆柱面所绕旋转的直线方程相等,即轴线过同一点且τ0=τ1(3)圆心的连线线段有交集,即线段m0m1与线段n0n1有相交部分。

4、等效结合面建立

等效结合面建立的主要步骤为:材料属性定义——单元类型定义——建立硬点——定义结合面参数——划分网格——连接对应节点。利用c#对apdl进行二次封装,快速建立等效结合面,其关键在于apdl的通信。

apdl语言的命令具有较强的规律,许多命令都是由常用关键字加单词构成,如k代表keypoints关键点,klist则代表列出指定模型的关键点。apdl的另一个重要特点是分为前处理、求解、后处理三个部分,指定前处理模块标识为/prep7,前处理模块一般有材料定义、网格划分、单元定义、建模等,进入求解模块标识为/solu,主要包括加载命令和求解命令,后处理模块的标识为/post1,基本功能包括读取和显示处理结果。

ansys中包含一批命令的文件称为宏文件,可通过*create,filename,mac的指令创建,使用时的格式为*use,filename。

算法中ansys指令发送流程如图8。主线程获取用户在前台的选择或输入值,校验合法性后,构建出对应的指令/宏,如果用户需要发送的是宏文件,在发送之前需检查宏文件是否创建完毕,若没有完成需等待创建完成,完成后通过sendmessage方法发送给ansys。如果发送的宏文件或指令有输出,则读取输出文件并做相应的处理。

由于算法进程和ansys进程涉及到对同一输出文件的访问,多线程访问同一资源,为保证数据的完整性,需对输出文件加上读写锁,普通的锁是线程独占式访问,对程序性能有一定影响,c#中readerwriterlockslim读写锁就是支持单个写线程和多个读线程的锁。

1、enterwritelock进入写模式锁定状态

2、enterreadlock进入读模式锁定状态

如列出关键点坐标的指令处理过程:

获取“列出所有关键点坐标”需求——构建宏文件

“klist,all,,,coord”

——等待宏文件构建完毕——发送——等待ansys输出——输出完毕——读取关键点坐标——加载至前台界面

算例应用

双驱直线进给系统仿真模块是基于ansys,支持机床双驱进给系统静动热特性仿真优化分析专用工具集模块,模块极大降低了设计人员的学习和使用成本,集成了等效结合面快速建模算法,提高仿真优化的效率,图9为仿真模块主要界面,图10为对算法识别出的接触面进行等效结合面建立。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1