本发明涉及有限元模型领域,具体是一种二维三角网格有限元模型的优化方法。
背景技术:
当前,针对二维三角网格有限元模型的优化方法以改变节点位置为主,由于节点位置的改变,造成三角单元的连接方式以及三角单元的形状改变,因此改变节点位置的优化方法往往算法复杂;部分优化方法从局部优化入手,而对于给定的任意初始模型容易陷入较差的局部极小值点,造成生成的网格质量也并不高。
因此,需要一种简单易实现并生成高质量网格的优化方法。
技术实现要素:
本发明的目的是提供一种二维三角网格有限元模型的优化方法,包括以下步骤:
1)获取初始三角网格有限元模型。
2)建立节点优化模型。
节点优化模型的目标函数δφ如下所示:
式中,fi为节点vi的度数。所述节点度数表示以该节点为顶点之一的相邻三角单元的数量。fi为节点vi的正规度数。δφ为当前三角网格有限元模型的不规则度数。
3)确定每个节点的正规度数,并写入正规度数集合f={f1,f2,…,fn}中。
确定每个节点的正规度数的步骤如下:
3.1)判断节点vi的类型。
当节点vi为内部节点时,记正规度数fi=6,并转入步骤3)。当节点vi为边界节点时,转入步骤2)。
所述内部节点为位于初始三角网格有限元模型内部的节点。所述边界节点为位于初始三角网格有限元模型边界的节点。i初始值为1。
3.2)获取节点vi相邻2条边界线的夹角
当
当
当
当
当
当
在确定节点vi的正规度数后,转入步骤3)。
3.3)判断i≥n是否成立,若是,则结束,否则,令i=i+1,并返回步骤3.1)。
4)计算当前三角网格有限元模型所有节点的度数,并写入度数集合f={f1,f2,…,fn}中。n为当前三角网格有限元模型的节点个数。
5)将初始三角网格有限元模型的度数集合f和正规度数集合f输入到节点优化模型中,计算节点优化模型的目标函数
6)对当前三角网格有限元模型的节点vi进行优化。i初始值为1。
对当前三角网格有限元模型节点进行优化的步骤如下:
6.1)判断内部节点vi的度数fi=6是否成立,若是,则结束优化;否则,转入步骤6.2);
6.2)判断内部节点vi的度数fi=3是否成立,若是,则转入步骤3),否则转入步骤6.4);
6.3)删除内部节点vi,并将以内部节点vi作为顶点的三个三角单元融合为一个三角单元,结束优化;
6.4)判断内部节点vi的度数fi=4是否成立,若是,则转入步骤5),否则转入步骤6.6);
6.5)删除内部节点vi,并将以内部节点vi作为顶点的四个三角单元融合为一个四边形单元;连接所述四边形单元的一条对角线,将四边形单元划分为2个锐角三角形单元,结束优化;
6.6)确定节点vt的度数ft和正规度数ft;
若度数ft=ft-1,则分别获取距离节点vt最近且满足度数fj1=fj1-1的节点vj1、距离内部节点vi最近且满足度数fn1=fn1+1的节点vn1和距离节点vj1最近且满足度数fm1=fm1+1的节点vm1;连接内部节点vt、节点vj1、节点vn1、节点vm1,构成对角四边形结构;其中,节点vt和节点vj1位于同一对角线上;节点vn1和节点vm1位于同一对角线上;节点vt、节点vn1连接线长度≤节点vt、节点vm1连接线长度;
若度数ft=ft+1,则分别获取距离节点vt最近且满足度数fj2=fj2+1的节点vj2、距离节点vt最近且满足度数fn2=fn2-1的节点vn2和距离节点vj2最近且满足度数fm2=fm2-1的节点vm2;连接节点vt、节点vj2、节点vn2、节点vm2,构成对角四边形结构;其中,节点vt和节点vj2位于同一对角线上;节点vn2和节点vm2位于同一对角线上;节点vt、节点vn2连接线长度≤节点vt、节点vm2连接线长度;
6.7)确定对角四边形区域,主要步骤如下:
6.7.1)选取位于节点vt与节点vmx之间、与节点vt+q1相连且度数与正规度数相等的节点,记为vt+q1+1;q1初始值为0;x=1或2;
6.7.2)判断q1>q1是否成立,若是,则进入步骤6.7.3),否则,令q1=q1+1,并返回步骤6.7.1);其中,节点vt+q1为位于节点vt与节点vmx之间、与节点vmx相连且度数与正规度数相等的节点;
6.7.3)选取位于节点vn与节点vjx之间、与节点vn+q2和节点vt+q1相连且度数与正规度数相等的节点,记为vn+q2+1;q2初始值为0;x=1或2;q1和q2的值相等。
6.7.4)判断q2>q2是否成立,若是,则进入步骤6.7.5),否则,令q2=q2+1,并返回步骤6.7.3);其中,节点vn+q2为位于节点vn与节点vjx之间、与节点vjx相连且度数与正规度数相等的节点;
6.7.5)以由节点vt+q1、节点vn+q2、节点vjx、节点vmx为顶点的三角形单元组成对角四边形区域;其中,q1=[0,1,2,…,q1];q2=[0,1,2,…,q2];
6.8)将所述对角四边形区域划分为若干四边形单元。每个四边形单元由相邻两个三角单元组成。其中,四边形的对角线为两个相邻三角单元的共边。
6.9)删除每个四边形单元当前的对角线,并连通四边形单元另一条对角线,结束优化。
7)判断i≥n是否成立。若是,则更新三角网格有限元模型,并返回步骤5),否则,令i=i+1,并返回步骤6)。
8)判断当前三角网格有限元模型中是否存在非锐角三角形,若是,则转入步骤9),否则,输出当前三角网格有限元模型。
9)对三角网格单元的角度进行优化,并返回步骤8)。
对三角网格单元角度进行优化的步骤如下:
9.1)基于当前三角网格有限元模型,建立若干三角网格单元集群。任一个三角网格单元集群为相邻的三个三角网格单元组成的凸多边形。三个三角网格单元中至少有一个为非锐角三角形。
9.2)分别以三角网格单元集群每条边的中点为圆心,以圆心所在边的长度为直径作圆。
9.3)利用间隙处理方法在所有圆不相交的区域内部有效位置插入随机采样的节点g。连接节点g和三角网格单元集的顶点,完成三角网格单元角度优化。
9.4)重复步骤9.2)和步骤9.3),直到所有三角网格单元集群均处理完毕。
本发明的技术效果是毋庸置疑的,本发明针对生成的初始三角网格有限元模型存在节点度数不正规以及角度不规范的问题,分别提出了节点度数优化方法以及插入新节点的单元角度优化方法。优化后的模型节点度数均为正规度数,单元中不存在非锐角三角形,提高了模型整体的协调性,降低了模型的扭曲程度,能够满足实际的工业需求。
附图说明
图1为方法流程图;
图2为边界节点正规度数的取值示意图;
图3(a)为单元融合及再划分优化流程图i;
图3(b)为单元融合及再划分优化流程图ii;
图3(c)为单元融合及再划分优化流程图iii;
图3(d)为单元融合及再划分优化流程图iv;
图4(a)为边换向前的有限元模型。
图4(b)为边换向后的有限元模型。
图5(a)为插入新节点前的有限元模型。
图5(b)为插入新节点后的有限元模型。
图6(a)为某样件初始三角网格有限元模型。
图6(b)为某样件优化后的三角网格有限元模型。
具体实施方式
下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。
实施例1:
参见图1至图6,一种二维三角网格有限元模型的优化方法,包括以下步骤:
1)获取工件的初始三角网格有限元模型。
2)建立节点优化模型。
节点优化模型的目标函数δφ如下所示:
式中,fi为节点vi的度数。所述节点度数表示以该节点为顶点之一的相邻三角单元的数量。例如,fi表示节点vi被fi个相邻三角单元所共有。fi为节点vi的正规度数。δφ为当前三角网格有限元模型的不规则度数。
3)确定每个节点的正规度数,并写入正规度数集合f={f1,f2,…,fn}中。
确定每个节点的正规度数的步骤如下:
3.1)判断节点vi的类型。
当节点vi为内部节点时,记正规度数fi=6,并转入步骤3)。当节点vi为边界节点时,转入步骤2)。
所述内部节点为位于初始三角网格有限元模型内部的节点。所述边界节点为位于初始三角网格有限元模型边界的节点。i初始值为1。
3.2)获取节点vi相邻2条边界线的夹角
当
当
当
当
当
当
在确定节点vi的正规度数后,转入步骤3)。
3.3)判断i≥n是否成立,若是,则结束,否则,令i=i+1,并返回步骤3.1)。
4)计算当前三角网格有限元模型所有节点的度数,并写入度数集合f={f1,f2,…,fn}中。n为当前三角网格有限元模型的节点个数。
5)将初始三角网格有限元模型的度数集合f和正规度数集合f输入到节点优化模型中,计算节点优化模型的目标函数
6)对当前三角网格有限元模型的节点vi进行优化。i初始值为1。
对当前三角网格有限元模型节点进行优化的步骤如下:
对当前三角网格有限元模型节点进行优化的步骤如下:
6.1)判断内部节点vi的度数fi=6是否成立,若是,则结束优化;否则,转入步骤6.2);
6.2)判断内部节点vi的度数fi=3是否成立,若是,则转入步骤3),否则转入步骤6.4);
6.3)删除内部节点vi,并将以内部节点vi作为顶点的三个三角单元融合为一个三角单元,结束优化;
6.4)判断内部节点vi的度数fi=4是否成立,若是,则转入步骤5),否则转入步骤6.6);
6.5)删除内部节点vi,并将以内部节点vi作为顶点的四个三角单元融合为一个四边形单元;连接所述四边形单元的一条对角线,将四边形单元划分为2个锐角三角形单元,结束优化;
6.6)确定节点vt的度数ft和正规度数ft;
若度数ft=ft-1,则分别获取距离节点vt最近且满足度数fj1=fj1-1的节点vj1、距离内部节点vi最近且满足度数fn1=fn1+1的节点vn1和距离节点vj1最近且满足度数fm1=fm1+1的节点vm1;连接内部节点vt、节点vj1、节点vn1、节点vm1,构成对角四边形结构;其中,节点vt和节点vj1位于同一对角线上;节点vn1和节点vm1位于同一对角线上;节点vt、节点vn1连接线长度≤节点vt、节点vm1连接线长度;
若度数ft=ft+1,则分别获取距离节点vt最近且满足度数fj2=fj2+1的节点vj2、距离节点vt最近且满足度数fn2=fn2-1的节点vn2和距离节点vj2最近且满足度数fm2=fm2-1的节点vm2;连接节点vt、节点vj2、节点vn2、节点vm2,构成对角四边形结构;其中,节点vt和节点vj2位于同一对角线上;节点vn2和节点vm2位于同一对角线上;节点vt、节点vn2连接线长度≤节点vt、节点vm2连接线长度;
6.7)确定对角四边形区域,主要步骤如下:
6.7.1)选取位于节点vt与节点vmx之间、与节点vt+q1相连且度数与正规度数相等的节点,记为vt+q1+1;q1初始值为0;x=1或2;
6.7.2)判断q1>q1是否成立,若是,则进入步骤6.7.3),否则,令q1=q1+1,并返回步骤6.7.1);其中,节点vt+q1为位于节点vt与节点vmx之间、与节点vmx相连且度数与正规度数相等的节点;
6.7.3)选取位于节点vn与节点vjx之间、与节点vn+q2和节点vt+q1相连且度数与正规度数相等的节点,记为vn+q2+1;q2初始值为0;x=1或2;在每次迭代时,q1和q2的值相等。
6.7.4)判断q2>q2是否成立,若是,则进入步骤6.7.5),否则,令q2=q2+1,并返回步骤6.7.3);其中,节点vn+q2为位于节点vn与节点vjx之间、与节点vjx相连且度数与正规度数相等的节点;
6.7.5)以由节点vt、节点vt+1、…、节点vt+q1、节点vn、节点vn+1、…、节点vn+q2、节点vjx、节点vmx为顶点的三角形单元组成对角四边形区域;即对角四边形区域包括以上述节点为顶点为若干三角形。
6.8)将所述对角四边形区域划分为若干四边形单元。每个四边形单元由相邻两个三角单元组成。其中,四边形的对角线为两个相邻三角单元的共边。
6.9)删除每个四边形单元当前的对角线,并连通四边形单元另一条对角线,结束优化。
7)判断i≥n是否成立。若是,则更新三角网格有限元模型,并返回步骤5),否则,令i=i+1,并返回步骤6)。
8)判断当前三角网格有限元模型中是否存在非锐角三角形,若是,则转入步骤9),否则,输出当前三角网格有限元模型。
9)对三角网格单元的角度进行优化,并返回步骤8)。
对三角网格单元角度进行优化的步骤如下:
9.1)基于当前三角网格有限元模型,建立若干三角网格单元集群。任一个三角网格单元集群为相邻的三个三角网格单元组成的凸多边形。三个三角网格单元中至少有一个为非锐角三角形。
9.2)分别以三角网格单元集群每条边的中点为圆心,以圆心所在边的长度为直径作圆。
9.3)利用间隙处理方法在所有圆不相交的区域内部有效位置插入随机采样的节点g。连接节点g和三角网格单元集的顶点,完成三角网格单元角度优化。
9.4)重复步骤9.2)和步骤9.3),直到所有三角网格单元集群均处理完毕。
实施例2:
一种二维三角网格有限元模型的优化方法,包括以下步骤:
1)获取初始三角网格有限元模型。
2)建立节点优化目标函数:
设定节点vi的度数为fi,正规的度数为fi,则当vi为内部节点时,fi=6;当节点vi为边界节点时,根据vi相邻的2条边界线的夹角
当fi=2,3,…,7时,分别求得:
当
边界节点的不正规程度需要引入合适的评价指标来进行衡量,定义
整个有限元网格的不规则度数δφ定义为单个节点度数偏差的累加和:
则公式(1)为节点度数优化目标函数,目标函数为0时,则网格模型的规范程度最高。优化网格的过程就是最小化目标函数的值。
3)获取初始三角网格有限元模型中所有节点的度数,根据节点所在位置的不同,规定如下:
i)位于模型内部的节点定义为内部节点,其正规度数应为6;
ii)位于模型边界上的节点定义为边界节点,根据临界角的不同,其正规度数的取值如图2所示。
4)若内部节点的实际度数为3,如图3(a)中的节点b,不满足内部节点正规度数为6的要求。则去掉节点b,将由节点b引出的三角单元1、2、3融合为一个三角单元,得到图3(b)所示的结果。
若内部节点的实际度数为4,如图3(c)中的节点d,不满足内部节点正规度数为6的要求。则去掉节点d,将由节点d引出的三角单元1、2、3、4融合为一个四边形i1i2i3i4。此时,要对四边形i1i2i3i4进行再划分,可以连接i1i3或者连接i2i4,由于不能存在非锐角三角形,则连接i2i4。
针对其他不满足正规度数的节点,采用边换向法实现优化。如图4(a)所示,若节点ta的正规度数为fa,其实际度数为fa-1;节点tb的正规度数为fb,其实际度数为fb+1;节点tc的正规度数为tc,其实际度数为tc-1;节点td的正规度数为td,其实际度数为td+1;这四个节点构成一个类似于四边形的结构,定义为“对角四边形结构”,实际度数为fa-1的节点与实际度数为tc-1的节点位于四边形的同一对角线上,实际度数为fb+1的节点与实际度数为td+1的节点位于四边形的同一对角线上,中间节点ta+1,tb+1,…,ta+n,tb+n的度数均为正规度数6。此时,可以将连接节点tb、td方向上的连接线(如图4(a)中的蓝色连接线)换向,重新连接节点ta、tc方向(如图4(b)中的红色连接线)上的连接线。
图4所示三角网格的边换向具体步骤如下:
i)选取位于ta与td之间,度数正规并直接与ta相连的节点记为ta+1;
ii)选取位于ta+1与td之间,度数正规并直接与ta+1相连的节点记为ta+2;
iii)依次类推,直至选取出节点ta+n,并且ta+n与tb直接相连;
iv)同理,选取位于tb与tc之间,度数正规并直接与ta+1,tb相连的节点记为tb+1;
v)选取位于tb+1与tc之间,度数正规并直接与ta+2,tb+1相连的节点记为tb+2;
vi)依次类推,直至选取出节点tb+n,并且tb+n与tc直接相连;
vii)换向描述为,将连接ta+1tb,ta+2tb+1……tdtb+n的边去掉,再连接tatb+1,ta+1tb+2……ta+ntc;n的有效值有若干,为了保证效率,取n最小的方式,对边进行换向。
5)由于三角网格有限元模型中不允许存在非锐角三角形,则节点度数优化完成后,还需要进行单元角度优化。定义集群,集群需同时满足以下三个条件:
i)由网格中相邻的三个三角形组成;
ii)三个三角形组成的多边形为凸多边形;
iii)三个三角形中至少有一个为钝角或直角三角形。
单元角度优化的实质就是在集群中插入新节点。如图5(a)所示,三角形t3t7t8、三角形t2t3t7、三角形t2t6t7构成一个集群,以组成凸多边形的各边为直径,边界中点为圆心,分别作圆,在凸多边形t2t3t6t7t8的内部存在所有圆不相交的区域,该区域构成一个多边形s,采用间隙处理技术在多边形s内部的有效位置插入随机采样的新点g作为节点,连接该节点与凸多边形t2t3t6t7t8的各个顶点,得到该集群优化后的网格,如图5(b)所示。
遍历所有三角单元,不存在非锐角三角单元,则整个优化结束。