金属U-E密封法兰几何参数识别及自动化建模方法与流程

文档序号:32312988发布日期:2022-11-23 13:22阅读:225来源:国知局
金属U-E密封法兰几何参数识别及自动化建模方法与流程
金属u-e密封法兰几何参数识别及自动化建模方法
技术领域
1.本发明涉及金属u-e密封法兰几何参数识别及自动化建模方法。


背景技术:

2.金属u-e密封法兰连接结构通常由上、下法兰,u-e密封环,紧固件组成,装配工况中受到螺栓预紧力的压紧作用,操作工况中受到高温、介质压力以及管路附加截面载荷的作用,密封泄漏、连接刚度不足、局部应力集中导致裂纹萌生以及螺栓强度不足是金属密封法兰结构的常见失效形式。结构优化设计过程中,通常伴随着多伦次的方案迭代,对于给出每一个修改方案都必须在设计工况下给出详细的密封性、强度、刚度分析结果,需要针对每个结构设计方案建立有限元分析模型,过程中包含着大量的重复性工作。此外,不同的仿真分析人员,可能会采用不一致的简化策略、网格剖分方式、单元尺寸,从而对分析结果引入了一定人为影响因素。基于此,制定统一的简化分析规范、形成一致的评价体系、开发出高效的自动化分析工具,既可以显著地提高效率,迅速地对设计师给出的每一个方案做出响应,同时采用标准化的分析工具进行建模和后处理也显著地降低了对分析工程师经验的依赖并避免了人为引入的分析失误。


技术实现要素:

3.本发明解决的技术问题是:克服现有技术的不足,提出了结构几何参数识别及自动化建立有限元分析模型的方法,可直接用于开发金属u-e密封法兰结构连接性能自动化分析工具。
4.本发明的技术方案是:金属u-e密封法兰几何参数识别及自动化建模方法,包括:
5.获取基本几何模型参数,并预设辅助参数;
6.建立金属u-e密封法兰结构一个对称周期内的几何模型;依次读入金属u-e密封法兰的5个部件,识别出每个部件并修改部件名称;
7.建立材料及截面属性,为每个部件指定截面属性;
8.为每个部件创建装配副本;
9.识别出循环对称边界的主、从面,识别出密封环的介质压力作用面;识别出上、下法兰的介质压力作用面;
10.切分螺栓,建立预紧力加载面;
11.识别出螺栓与垫片之间接触对的主、从面;识别出密封环与密封通道之间接触对的主、从面;识别出上、下法兰之间接触对的主、从面;识别出螺栓与下法兰罗纹孔之间绑定约束的主、从面;
12.建立两个隐式静态分析步,施加边界和载荷;
13.建立接触属性,建立5组接触对,即螺栓与垫片、垫片与上法兰、上法兰与下法兰、上法兰与密封环、下法兰与密封环;
14.建立周期性对称约束;
15.建立螺栓与下法兰罗纹孔之间的邦定约束关系;
16.逐个对上、下法兰,密封环,螺栓,垫片划分网格;
17.建立分析作业,提交计算并保存cae模型。
18.所述几何模型参数包括:螺栓数量n
bolt
,螺栓直径r,密封环高度h1,密封环限位台高度h2;程序辅助参数包括:容差δ,结构轴向坐标参考量h
max
和h
min

19.所述建立金属u-e密封法兰结构一个对称周期内的几何模型,包括:
20.在金属u-e密封法兰上切出含一个螺栓的周期对称扇区,周期对称扇区中包含上、下法兰、密封环、螺栓、垫片5个部件,5个部件按照装配关系同属一个几何模型;
21.几何模型采用柱坐标系,y轴经过法兰轴线向上为正,x轴沿法兰径向经过扇区的对称面向外为正,z轴正向由右手法则确定;坐标系原点沿轴向位于上、下法兰包含螺栓孔的对接面,如果对接面之间有间隙,则位于下法兰对接面。
22.所述依次读入金属u-e密封法兰5个部件,识别出每个部件并修改部件名称,包括:
23.历遍几何模型中所有的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录返回点的坐标中y向坐标最小点所属的面,该面所属的部件即为下法兰,将其命名为“lowerflange”;
24.历遍剩余4个部件中的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录返回点的坐标中x向坐标最小点所属的面,该面所属的部件即为上法兰,将其命名为“upperflange”;
25.历遍剩余3个部件中的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点所属的面,该面所属的部件即为螺栓,将其命名为“bolt”;
26.历遍剩余2个部件中的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点所属的面,该面所属的部件即为垫片,将其命名为“gasket”;
27.剩余1个部件即为密封环,将其命名为“sealue”。
28.所述建立材料及截面属性并为每个部件指定截面属性,包括:
29.采用abaqus脚本语言python中的构造函数material()创建材料属性,采用abaqus脚本语言python中的构造函数elastic()和plastic()创建材料的弹性和塑性属性;
30.采用abaqus脚本语言python中的构造函数homogeneoussolidsection()创建各向同性实体截面属性;
31.采用abaqus脚本语言python中的构造函数sectionassignment()为每个部件指定截面属性。
32.所述为每个部件创建装配副本,包括:
33.采用abaqus脚本语言python中的构造函数instance()为parts[

lowerflange’]部件创建一个装配副本并命名为“lowerflange-1”;
[0034]
采用abaqus脚本语言python中的构造函数instance()为parts[

upperflange’]部件创建一个装配副本并命名为“upperflange-1”;
[0035]
采用abaqus脚本语言python中的构造函数instance()为parts[

bolt’]部件创建一个装配副本并命名为“bolt-1”;
[0036]
采用abaqus脚本语言python中的构造函数instance()为parts[

gasket’]部件创建一个装配副本并命名为“gasket-1”;
[0037]
采用abaqus脚本语言python中的构造函数instance()为parts[

sealue’]部件创建一个装配副本并命名为“sealue-1”。
[0038]
所述识别出循环对称边界的主、从面,包括:
[0039]
计算循环对称边界施加面与模型对称面之间夹角的余弦值l=cos(π/n
bolt
);
[0040]
历遍密封环副本instances[

sealue-1’]中所有面,采用abaqus脚本语言python中面对象的方法函数getnormal()读取每个面的法向量n1,计算向量n1与对称面法向量(0,0,1)之间的方向余弦l1,如果l1=l,将n1所属的面定义为密封环循环对称边界主面,如果l1=-l,将n1所属的面定义为密封环循环对称边界从面;
[0041]
历遍下法兰副本instances[

lowerflange-1’]中所有面,采用abaqus脚本语言python中面对象的方法函数getnormal()读取每个面的法向量n2,计算向量n2与对称面法向量(0,0,1)之间的方向余弦l2,如果l2=l,将n2所属的面定义为下法兰循环对称边界主面,如果l2=-l,将n2所属的面定义为下法兰循环对称边界从面;
[0042]
历遍上法兰副本instances[

upperflange-1’]中所有面,采用abaqus脚本语言python中面对象的方法函数getnormal()读取每个面的法向量n3,计算向量n3与对称面法向量(0,0,1)之间的方向余弦l3,如果l3=l,将n3所属的面定义为上法兰循环对称边界主面,如果l3=-l,将n3所属的面定义为上法兰循环对称边界从面。
[0043]
所述识别出密封环的介质压力作用面,包括:
[0044]
历遍密封环副本instances[

sealue-1’]中所有的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最小点为p1,记录p1所属的面为face1;剔除face1,遍历密封环副本instances[

sealue-1’]中所有剩余的面,采用采用abaqus脚本语言python中面的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最小点为p2,记录p2所属的面为face2;比较p1与p2的x向坐标,坐标值较小点所在的面定义为下主密封唇曲面,坐标值较大点所在的面定义为下副密封唇曲面;
[0045]
历遍密封环副本instances[

sealue-1’]中所有的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点为p3,记录p3所属的面为face3;剔除face3,遍历密封环副本instances[

sealue-1’]中所有剩余的面,采用采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点为p4,记录p4所属的面为face4;比较p3与p4的x向坐标,坐标值较小点所在的面定义为上主密封唇曲面,坐标值较大点所在的面定义为上副密封唇曲面;
[0046]
采用abaqus脚本语言python中边对象的方法函数getsize()找到下主密封唇曲面的两个长度较短的边,采用两个短边的中点,即a点和b点,将下主密封唇曲面切分为两个面;采用abaqus脚本语言python中边对象的方法函数getsize()找到下副密封唇曲面的两个长度较短的边,采用两个短边的中点,即c和d点,将下副密封唇曲面切分为两个面;
[0047]
采用abaqus脚本语言python中边对象的方法函数getsize()找到上主密封唇曲面的两个长度较短的边,采用两个短边的中点,即a’点和b’点,将上主密封唇曲面切分为两个
面;采用abaqus脚本语言python中边对象的方法函数getsize()找到上副密封唇曲面的两个长度较短的边,采用两个短边的中点,即c’和d’点,将上副密封唇曲面切分为两个面;
[0048]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1(0,y
a-δ,0),圆心2(0,(ya+y
a'
)/2,0),半径为(x
a2
+z
a2
)
1/2
+δ,选中2个面,记作面a和面b;其中,xa、ya、za分别为a点的x、y、z向坐标,y
a'
为a’点的y向坐标;
[0049]
找到面a和面b中轴向位置较低的面,记为a面,轴向位置较高的面记为b面;采用abaqus脚本语言python中面集合对象的方法函数getadjacentfaces()找到与b面相邻的4个面,从这4个面中剔除a面以及两个周期对称面,剩余一个面记为c面;
[0050]
采用abaqus脚本语言python中面集合对象的方法函数getfacesbyfaceangle()选取一组面,记为c’面集合,选取的起始面为c面,选取角度为20
°

[0051]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1为(0,y
a'
+δ,0),圆心2为(0,(ya+y
a'
)/2,0),半径为(x
a2
+z
a2
)
1/2
+δ,选中2个面,记作面d和面e;其中,xa、ya、za分别为a点的x、y、z向坐标,y
a'
为a’点的y向坐标;
[0052]
选取到的a,b,c’,d,e面定义为密封环介质压力作用面。
[0053]
所述识别出上、下法兰的介质压力作用面,包括:
[0054]
采用abaqus脚本语言python中面集合对象的方法函数getclosest()在下法兰副本instances[

lowerflange-1’]的所有面中找到最靠近a点的面,记作face5;使用下主密封唇曲面被切分后新生成的边在face5上的投影切分face5;
[0055]
步采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对下法兰副本instances[

lowerflange-1’]中的面进行框选,圆心1(0,h
max
,0),圆心2(0,h
min
,0),半径为(x
a2
+z
a2
)
1/2
+δ;从选中的面中剔除法向量y向分量为-1以及x向分量大于0的面,剩余的面定义为下法兰的介质压力作用面;其中,xa、za分别为a点的x、z向坐标;
[0056]
采用abaqus脚本语言python中面集合对象的方法函数getclosest()在上法兰副本instances[

upperflange-1’]的所有面中找到最靠近a’点的面,记作face6;使用上主密封唇曲面被切分后新生成的边在face6上的投影切分face6;
[0057]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对上法兰副本instances[

upperflange-1’]中的面进行框选,圆心1(0,h
max
,0),圆心2(0,h
min
,0),半径为(x
a'2
+z
a'2
)
1/2
+δ;从选中的面中剔除法向量y向分量为1以及x向分量大于0的面,剩余的面定义为上法兰的介质压力作用面;其中,x
a'
、z
a'
分别为a’点的x、z向坐标。
[0058]
所述对螺栓进行切分,创建预紧力加载面,包括:
[0059]
历遍垫片副本instances[

gasket-1’]中所有面,按照外法线方向筛选出垫片的上、下端面,采用abaqus脚本语言python中面对象的方法函数getcentroid()读取上端面中心点坐标,该点记作e,读取下端面中心点坐标,该点记作f;
[0060]
采用abaqus脚本语言python中的构造函数datumaxisbytwopoint()经过两点建立螺栓轴线,两点坐标分别为g(xe,0,0)和h(xe,yf/2,0);其中,xe为e点x向坐标,yf为f点y向坐标;
[0061]
采用abaqus脚本语言python中特征对象的方法函数
partitioncellbyplanepointnormal()切分螺栓副本instances[

bolt-1’],切分参考点为g点,参考向量为螺栓轴线;
[0062]
切分后得到两个体,采用abaqus脚本语言python中特征对象的方法函数partitioncellbyplanepointnormal()继续对最靠近f点的体进行切分,参考点为h点,参考向量为螺栓轴线;
[0063]
切分后新生成的经过h点的面定义为预紧力加载面。
[0064]
所述识别出螺栓与垫片之间接触对的主、从面,包括:
[0065]
步骤901,历遍垫片副本instances[

gasket-1’]所有面,按照外法线方向筛选出垫片中外法线向量y向分量大于0的面,即为螺栓与垫片的接触从面,命名为

s_int-2’;
[0066]
步骤902,历遍螺栓副本instances[

bolt-1’]所有面,按照外法线方向筛选出垫片中外法线向量y坐标小于0的面,剔除螺栓的下端面,即为螺栓与垫片的接触主面,命名为

m_int-2’。
[0067]
所述识别出密封环与密封通道之间接触对的主、从面,包括:
[0068]
采用abaqus脚本语言python中面集合对象的方法函数getclosest()在下法兰副本instances[

lowerflange-1’]所有面中找到最靠近a点的面,记作f1面;采用abaqus脚本语言python中面集合对象的方法函数getfacesbyfaceangle()在下法兰副本instances[

lowerflange-1’]中选取一个面集合,命名为

m_int-3’,选取的起始面为f1面,选取角度为0
°


m_int-3’定义为下法兰与密封环的接触主面;
[0069]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1(0,h
min
,0),圆心2(0,ya+(h
1-h2)/2+δ,0),半径为h
max
;选中的面集合,命名为

s_int-3’,

s_int-3’定义为下法兰与密封环的接触从面;其中,ya为a点y向坐标;
[0070]
采用abaqus脚本语言python中面集合对象的方法函数getclosest()在上法兰副本instances[

upperflange-1’]所有面中找到最靠近a’点的面,记作f2面;采用abaqus脚本语言python中面集合对象的方法函数getfacesbyfaceangle()在上法兰副本instances[

upperflange-1’]中选取一个面集合,命名为

m_int-4’,选取的起始面为f2面,选取角度为0度;

m_int-4’定义为上法兰与密封环的接触主面;
[0071]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1(0,h
max
,0),圆心2(0,y
a'-(h
1-h2)/2-δ,0),半径为h
max
;选中的面集合,命名为

s_int-4’,

s_int-4’定义为上法兰与密封环的接触从面;其中,y
a'
为a’点y向坐标;
[0072]
所述识别出上、下法兰之间接触对的主、从面,包括:
[0073]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对上法兰副本instances[

upperflange-1’]中的面进行框选,圆心1(0,h
min
,0),圆心2(0,y
f-δ,0),半径为h
max
;在选中的面中剔除外法线x向分量大于0以及y向分量大于0的面,剩余面组成的面集合命名为

s_int-5’,

s_int-5’定义为上法兰与下法兰的接触主面;其中,yf为f点y向坐标;
[0074]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对下法兰副本instances[

lowerflange-1’]中的面进行框选,圆心1(0,δ,0),圆心2(0,yi,
0),半径为h
max
,其中yi为螺栓下端面中心点i的y向坐标;在选中的面中剔除外法线x向分量大于0以及y向分量小于0的面,剩余面组成的面集合命名为

m_int-5’,

m_int-5’定义为上法兰与下法兰的接触从面。
[0075]
所述识别出螺栓与下法兰罗纹孔之间绑定约束的主、从面,包括:
[0076]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对螺栓副本instances[

bolt-1’]中的面进行框选,圆心1(xe,δ,0),圆心2(xe,h
min
,0),半径为r+δ;在选中的面中剔除外法线y向分量等于-1的面,剩余的面命名为

m_int-6’,

m_int-6’定义为螺栓与下法兰螺纹孔的绑定主面;其中,xe为e点x向坐标;
[0077]
采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对下法兰副本instances[

lowerflange-1’]中的面进行框选,圆心1(xe,δ,0),圆心2(xe,h
min
,0),半径为r+δ;在选中的面中剔除外法线y向分量等于1的面,剩余的面命名为

s_int-6’,

s_int-6’定义为螺栓与下法兰螺纹孔的绑定从面;其中,xe为e点x向坐标。
[0078]
建立两个隐式静态分析步,施加边界和载荷,包括:
[0079]
采用abaqus脚本语言python中的构造函数staticstep()创建一个静态分析步steps[

step-1’];采用abaqus脚本语言python中的构造函数displacementbc()施加轴向约束;采用abaqus脚本语言python中的构造函数boltload()施加螺栓预紧力;
[0080]
采用abaqus脚本语言python中的构造函数staticstep()创建一个静态分析步steps[

step-2’];采用abaqus脚本语言python中的构造函数pressure()施加介质压力。
[0081]
建立接触属性,建立5组接触对,包括:
[0082]
采用abaqus脚本语言python中的构造函数contactproperty()创建接触属性;采用abaqus脚本语言python中的构造函数tangentialbehavior()创建切向接触行为属性;采用abaqus脚本语言python中的构造函数normalbehavior()创建法向接触行为属性;
[0083]
采用abaqus脚本语言python中的构造函数surfacetosurfacecontactstd()创建5个面对面接触对,即螺栓与垫片、垫片与上法兰、上法兰与下法兰、上法兰与密封环、下法兰与密封环。
[0084]
建立周期性对称约束,包括:采用abaqus脚本语言python中的构造函数cyclicsymmetry()创建周期性对称约束。
[0085]
建立螺栓与下法兰罗纹孔之间的邦定约束关系,包括:采用abaqus脚本语言python中的构造函数tie()创建螺栓与下法兰罗纹孔之间的邦定约束关系。
[0086]
逐个对上、下法兰,密封环,螺栓,垫片划分网格,包括:
[0087]
采用abaqus脚本语言python中的装配体对象的方法函数seedpartinstance()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,设置网格尺寸;
[0088]
采用abaqus脚本语言python中的装配体对象的方法函数setmeshcontrols()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,设置网格划分算法;
[0089]
采用abaqus脚本语言python中的装配体对象的方法函数setelementtype()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,设置网格类型;
[0090]
采用abaqus脚本语言python中的装配体对象的方法函数generatemesh()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,划分网格。
[0091]
建立分析作业,保存cae模型,包括:
[0092]
采用abaqus脚本语言python中的构造函数job()创建分析作业;
[0093]
采用abaqus脚本语言python中模型对象的方法函数saveas()保存cae模型。
[0094]
本发明的有益效果是:本发明仅需提供预紧力、介质压力、工作温度、一个具备装配关系的几何模型以及4个基本几何参数,程序即可自动识别出每个部件为其赋予材料属性、筛选出边界和载荷的施加区域、识别部件之间的接触关系作用面、计算出管路端面的平衡载荷,创建所需的参考点、面、轴线,按照要求建立标准化的分析模型,在给定工况下对金属密封法兰结构的密封性、强度和刚度进行分析,极大地提高了分析效率和模型准确性。
附图说明
[0095]
图1为密封-法兰-紧固件三维周期对称几何模型图示;
[0096]
图2为循环对称边界的主、从面图示;
[0097]
图3为密封唇曲面及其短边中点图示;
[0098]
图4为密封环介质压力作用面图示;
[0099]
图5为下法兰介质压力作用面图示;
[0100]
图6为上法兰介质压力作用面图示;
[0101]
图7为上、下法兰与密封环的接触对主面图示;
[0102]
图8为上、下法兰与密封环的接触对从面图示;
[0103]
图9为螺栓与下法兰绑定约束面图示;
[0104]
图10为载荷的施加图示。
具体实施方式
[0105]
本发明金属u-e密封法兰几何参数识别及自动化建模方法,步骤如下:
[0106]
1、输入几何模型参数:螺栓数量n
bolt
,螺栓直径r,密封环高度h1,密封环限位台高度h2。
[0107]
2、预设容差δ(与密封环尺度相比为小量,建议值为0.001)以及结构轴向坐标参考量h
max
和h
min
(h
max
远大于结构的最大轴向坐标,建议值为9999;h
max
远小于结构的最小轴向坐标,建议值为-9999)。
[0108]
3、建立金属u-e密封法兰结构一个对称周期内的几何模型,如附图1所示,包含步骤301~302:
[0109]
步骤301,在金属u-e密封法兰上切出含一个螺栓的周期对称扇区,周期对称扇区中包含上、下法兰、密封环、螺栓、垫片5个部件,5个部件按照装配关系同属一个几何模型;
[0110]
步骤302,几何模型采用柱坐标系,y轴经过法兰轴线向上为正,x轴沿法兰径向经过扇区的对称面向外为正,z轴正向由右手法则确定;坐标系原点沿轴向位于上、下法兰包含螺栓孔的对接面,如果对接面之间有间隙,则位于下法兰对接面。
[0111]
4、依次读入5个部件(part),识别出每个part并修改part名称,包含步骤401~405:
[0112]
步骤401,历遍几何模型中所有的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录返回点的坐标中y向坐标最小点所属的面,该面所属的部件即为下法兰,将其命名为“lowerflange”;
[0113]
步骤402,历遍剩余4个部件中的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录返回点的坐标中x向坐标最小点所属的面,该面所属的部件即为上法兰,将其命名为“upperflange”;
[0114]
步骤403,历遍剩余3个部件中的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点所属的面,该面所属的部件即为螺栓,将其命名为“bolt”;
[0115]
步骤404,历遍剩余2个部件中的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点所属的面,该面所属的部件即为垫片,将其命名为“gasket”;
[0116]
步骤405,剩余1个部件即为密封环,将其命名为“sealue”。
[0117]
5、创建材料及截面属性,为每个部件指定截面属性,包含步骤501~503:
[0118]
步骤501,采用abaqus脚本语言python中的构造函数material()创建材料属性,采用abaqus脚本语言python中的构造函数elastic()和plastic()创建材料的弹性和塑性属性;
[0119]
步骤502,采用abaqus脚本语言python中的构造函数homogeneoussolidsection()创建各向同性实体截面属性;
[0120]
步骤503,采用abaqus脚本语言python中的构造函数sectionassignment()为每个部件指定截面属性。
[0121]
6、为每个part创建装配副本(instance),包含步骤601~605:
[0122]
步骤601,采用abaqus脚本语言python中的构造函数instance()为parts[

lowerflange’]部件创建一个装配副本并命名为“lowerflange-1”;
[0123]
步骤602,采用abaqus脚本语言python中的构造函数instance()为parts[

upperflange’]部件创建一个装配副本并命名为“upperflange-1”;
[0124]
步骤603,采用abaqus脚本语言python中的构造函数instance()为parts[

bolt’]部件创建一个装配副本并命名为“bolt-1”;
[0125]
步骤604,采用abaqus脚本语言python中的构造函数instance()为parts[

gasket’]部件创建一个装配副本并命名为“gasket-1”;
[0126]
步骤605,采用abaqus脚本语言python中的构造函数instance()为parts[

sealue’]部件创建一个装配副本并命名为“sealue-1”。
[0127]
7、识别出循环对称边界的主、从面,如附图2所示,包含步骤701~704:
[0128]
步骤701,计算循环对称边界施加面与模型对称面之间夹角的余弦值l=cos(π/n
bolt
);
[0129]
步骤702,历遍密封环副本instances[

sealue-1’]中所有面,采用abaqus脚本语言python中面对象的方法函数getnormal()读取每个面的法向量n1,计算向量n1与对称面法向量(0,0,1)之间的方向余弦l1,如果l1=l,将n1所属的面定义为密封环循环对称边界主面,如果l1=-l,将n1所属的面定义为密封环循环对称边界从面;
[0130]
步骤703,历遍下法兰副本instances[

lowerflange-1’]中所有面,采用abaqus脚本语言python中面对象的方法函数getnormal()读取每个面的法向量n2,计算向量n2与对称面法向量(0,0,1)之间的方向余弦l2,如果l2=l,将n2所属的面定义为下法兰循环对称
边界主面,如果l2=-l,将n2所属的面定义为下法兰循环对称边界从面;
[0131]
步骤704,历遍上法兰副本instances[

upperflange-1’]中所有面,采用abaqus脚本语言python中面对象的方法函数getnormal()读取每个面的法向量n3,计算向量n3与对称面法向量(0,0,1)之间的方向余弦l3,如果l3=l,将n3所属的面定义为上法兰循环对称边界主面,如果l3=-l,将n3所属的面定义为上法兰循环对称边界从面;
[0132]
8、识别出密封环的介质压力作用面,包含步骤801~809:
[0133]
步骤801,历遍密封环副本instances[

sealue-1’]中所有的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最小点为p1,记录p1所属的面为face1;剔除face1,遍历密封环副本instances[

sealue-1’]中所有剩余的面,采用采用abaqus脚本语言python中面的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最小点为p2,记录p2所属的面为face2;比较p1与p2的x向坐标,坐标值较小点所在的面定义为下主密封唇曲面,坐标值较大点所在的面定义为下副密封唇曲面;如附图3所示;
[0134]
步骤802,历遍密封环副本instances[

sealue-1’]中所有的面,采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点为p3,记录p3所属的面为face3;剔除face3,遍历密封环副本instances[

sealue-1’]中所有剩余的面,采用采用abaqus脚本语言python中面对象的成员函数pointon()返回每个面上任意一个点的坐标,记录y向坐标最大点为p4,记录p4所属的面为face4;比较p3与p4的x向坐标,坐标值较小点所在的面定义为上主密封唇曲面,坐标值较大点所在的面定义为上副密封唇曲面;如附图3所示;
[0135]
步骤803,采用abaqus脚本语言python中边对象的方法函数getsize()找到下主密封唇曲面的两个长度较短的边,采用两个短边的中点,即a点和b点,将下主密封唇曲面切分为两个面;采用abaqus脚本语言python中边对象的方法函数getsize()找到下副密封唇曲面的两个长度较短的边,采用两个短边的中点,即c和d点,将下副密封唇曲面切分为两个面;如附图3所示;
[0136]
步骤804,采用abaqus脚本语言python中边对象的方法函数getsize()找到上主密封唇曲面的两个长度较短的边,采用两个短边的中点,即a’点和b’点,将上主密封唇曲面切分为两个面;采用abaqus脚本语言python中边对象的方法函数getsize()找到上副密封唇曲面的两个长度较短的边,采用两个短边的中点,即c’和d’点,将上副密封唇曲面切分为两个面;如附图3所示;
[0137]
步骤805,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1(0,y
a-δ,0),圆心2(0,(ya+y
a'
)/2,0),半径为(x
a2
+z
a2
)
1/2
+δ,选中2个面,记作面a和面b;其中,xa、ya、za分别为a点的x、y、z向坐标,y
a'
为a’点的y向坐标;
[0138]
步骤806,找到面a和面b中轴向位置较低的面,记为a面,轴向位置较高的面记为b面;采用abaqus脚本语言python中面集合对象的方法函数getadjacentfaces()找到与b面相邻的4个面,从这4个面中剔除a面以及两个周期对称面,剩余一个面记为c面;
[0139]
步骤807,采用abaqus脚本语言python中面集合对象的方法函数getfacesbyfaceangle()选取一组面,记为c’面集合,选取的起始面为c面,选取角度为20
度;
[0140]
步骤808,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1为(0,y
a'
+δ,0),圆心2为(0,(ya+y
a'
)/2,0),半径为(x
a2
+z
a2
)
1/2
+δ,选中2个面,记作面d和面e;其中,xa、ya、za分别为a点的x、y、z向坐标,y
a'
为a’点的y向坐标;
[0141]
步骤809,选取到的a,b,c’,d,e面定义为密封环介质压力作用面,如附图4所示。
[0142]
9、识别出上、下法兰的介质压力作用面,如附图5和6所示,包含步骤901~904:
[0143]
步骤901,采用abaqus脚本语言python中面集合对象的方法函数getclosest()在下法兰副本instances[

lowerflange-1’]的所有面中找到最靠近a点的面,记作face5;使用步骤503中下主密封唇曲面被切分后新生成的边在face5上的投影切分face5;
[0144]
步骤902,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对下法兰副本instances[

lowerflange-1’]中的面进行框选,圆心1(0,h
max
,0),圆心2(0,h
min
,0),半径为(x
a2
+z
a2
)
1/2
+δ;从选中的面中剔除法向量y向分量为-1以及x向分量大于0的面,剩余的面定义为下法兰的介质压力作用面;其中,xa、za分别为a点的x、z向坐标;
[0145]
步骤903,采用abaqus脚本语言python中面集合对象的方法函数getclosest()在上法兰副本instances[

upperflange-1’]的所有面中找到最靠近a’点的面,记作face6;使用步骤504中上主密封唇曲面被切分后新生成的边在face6上的投影切分face6;
[0146]
步骤904,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对上法兰副本instances[

upperflange-1’]中的面进行框选,圆心1(0,h
max
,0),圆心2(0,h
min
,0),半径为(x
a'2
+z
a'2
)
1/2
+δ;从选中的面中剔除法向量y向分量为1以及x向分量大于0的面,剩余的面定义为上法兰的介质压力作用面;其中,x
a'
、z
a'
分别为a’点的x、z向坐标;
[0147]
10、对螺栓进行切分,创建预紧力加载面,包含步骤1001~1005:
[0148]
步骤1001,历遍垫片副本instances[

gasket-1’]中所有面,按照外法线方向筛选出垫片的上、下端面,采用abaqus脚本语言python中面对象的方法函数getcentroid()读取上端面中心点坐标,该点记作e,读取下端面中心点坐标,该点记作f;
[0149]
步骤1002,采用abaqus脚本语言python中的构造函数datumaxisbytwopoint()经过两点建立螺栓轴线,两点坐标分别为g(xe,0,0)和h(xe,yf/2,0);其中,xe为e点x向坐标,yf为f点y向坐标;
[0150]
步骤1003,采用abaqus脚本语言python中特征对象的方法函数partitioncellbyplanepointnormal()切分螺栓副本instances[

bolt-1’],切分参考点为g点,参考向量为螺栓轴线;
[0151]
步骤1004,切分后得到两个体,采用abaqus脚本语言python中特征对象的方法函数partitioncellbyplanepointnormal()继续对最靠近f点的体进行切分,参考点为h点,参考向量为螺栓轴线;
[0152]
步骤1005,切分后新生成的经过h点的面定义为预紧力加载面。
[0153]
11、识别出螺栓与垫片之间接触对的主、从面,包含步骤1101~1102:
[0154]
步骤1101,历遍垫片副本instances[

gasket-1’]所有面,按照外法线方向筛选出
垫片中外法线向量y向分量大于0的面,即为螺栓与垫片的接触从面,命名为

s_int-2’;
[0155]
步骤1102,历遍螺栓副本instances[

bolt-1’]所有面,按照外法线方向筛选出垫片中外法线向量y坐标小于0的面,剔除螺栓的下端面,即为螺栓与垫片的接触主面,命名为

m_int-2’。
[0156]
12、识别出密封环与密封通道之间接触对的主、从面,如附图7和8所示包含步骤1201~1203:
[0157]
步骤1201,采用abaqus脚本语言python中面集合对象的方法函数getclosest()在下法兰副本instances[

lowerflange-1’]所有面中找到最靠近a点的面,记作f1面;采用abaqus脚本语言python中面集合对象的方法函数getfacesbyfaceangle()在下法兰副本instances[

lowerflange-1’]中选取一个面集合,命名为

m_int-3’,选取的起始面为f1面,选取角度为0度;

m_int-3’定义为下法兰与密封环的接触主面;

[0158]
步骤1202,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1(0,h
min
,0),圆心2(0,ya+(h
1-h2)/2+δ,0),半径为h
max
;选中的面集合,命名为

s_int-3’,

s_int-3’定义为下法兰与密封环的接触从面;其中,ya为a点y向坐标;
[0159]
步骤1203,采用abaqus脚本语言python中面集合对象的方法函数getclosest()在上法兰副本instances[

upperflange-1’]所有面中找到最靠近a’点的面,记作f2面;采用abaqus脚本语言python中面集合对象的方法函数getfacesbyfaceangle()在上法兰副本instances[

upperflange-1’]中选取一个面集合,命名为

m_int-4’,选取的起始面为f2面,选取角度为0度;

m_int-4’定义为上法兰与密封环的接触主面;
[0160]
步骤1204,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对密封环副本instances[

sealue-1’]中的面进行框选,圆心1(0,h
max
,0),圆心2(0,y
a'-(h
1-h2)/2-δ,0),半径为h
max
;选中的面集合,命名为

s_int-4’,

s_int-4’定义为上法兰与密封环的接触从面;其中,y
a'
为a’点y向坐标。
[0161]
13、识别出上、下法兰之间接触对的主、从面,包含步骤1301~1302:
[0162]
步骤1301,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对上法兰副本instances[

upperflange-1’]中的面进行框选,圆心1(0,h
min
,0),圆心2(0,y
f-δ,0),半径为h
max
;在选中的面中剔除外法线x向分量大于0以及y向分量大于0的面,剩余面组成的面集合命名为

s_int-5’,

s_int-5’定义为上法兰与下法兰的接触主面;其中,yf为f点y向坐标;
[0163]
步骤1302,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对下法兰副本instances[

lowerflange-1’]中的面进行框选,圆心1(0,δ,0),圆心2(0,yi,0),半径为h
max
,其中yi为螺栓下端面中心点i的y向坐标;在选中的面中剔除外法线x向分量大于0以及y向分量小于0的面,剩余面组成的面集合命名为

m_int-5’,

m_int-5’定义为上法兰与下法兰的接触从面。
[0164]
14、识别出螺栓与下法兰罗纹孔之间绑定约束的主、从面,包含步骤1401~1402:
[0165]
步骤1401,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对螺栓副本instances[

bolt-1’]中的面进行框选,圆心1(xe,δ,0),圆心2(xe,h
min
,0),半径为r+δ;在选中的面中剔除外法线y向分量等于-1的面,剩余的
面命名为

m_int-6’,

m_int-6’定义为螺栓与下法兰螺纹孔的绑定主面;其中,xe为e点x向坐标;
[0166]
步骤1402,采用abaqus脚本语言python中面集合对象的方法函数getbyboundingcylinder()对下法兰副本instances[

lowerflange-1’]中的面进行框选,圆心1(xe,δ,0),圆心2(xe,h
min
,0),半径为r+δ;在选中的面中剔除外法线y向分量等于1的面,剩余的面命名为

s_int-6’,

s_int-6’定义为螺栓与下法兰螺纹孔的绑定从面;其中,xe为e点x向坐标,如附图9所示。
[0167]
15、创建2个隐式静态分析步,施加边界及载荷,如附图10所示,包含步骤1501~1502:
[0168]
步骤1501,采用abaqus脚本语言python中的构造函数staticstep()创建一个静态分析步steps[

step-1’];采用abaqus脚本语言python中的构造函数displacementbc()施加轴向约束;采用abaqus脚本语言python中的构造函数boltload()施加螺栓预紧力;
[0169]
步骤1502,采用abaqus脚本语言python中的构造函数staticstep()创建一个静态分析步steps[

step-2’];采用abaqus脚本语言python中的构造函数pressure()施加介质压力。
[0170]
16、创建接触属性,创建5组接触对,包含步骤1601~1602:
[0171]
步骤1601,采用abaqus脚本语言python中的构造函数contactproperty()创建接触属性;采用abaqus脚本语言python中的构造函数tangentialbehavior()创建切向接触行为属性;采用abaqus脚本语言python中的构造函数normalbehavior()创建法向接触行为属性;
[0172]
步骤1602,采用abaqus脚本语言python中的构造函数surfacetosurfacecontactstd()创建5个面对面接触对,即螺栓与垫片、垫片与上法兰、上法兰与下法兰、上法兰与密封环、下法兰与密封环。
[0173]
17、采用abaqus脚本语言python中的构造函数cyclicsymmetry()创建周期性对称约束。
[0174]
18、采用abaqus脚本语言python中的构造函数tie()创建螺栓与下法兰罗纹孔之间的邦定约束关系。
[0175]
19、逐个对上、下法兰,密封环,螺栓,垫片划分网格,包含步骤1901~1904:
[0176]
步骤1901,采用abaqus脚本语言python中的装配体对象的方法函数seedpartinstance()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,设置网格尺寸;
[0177]
步骤1902,采用abaqus脚本语言python中的装配体对象的方法函数setmeshcontrols()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,设置网格划分算法;
[0178]
步骤1903,采用abaqus脚本语言python中的装配体对象的方法函数setelementtype()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,设置网格类型;
[0179]
步骤1904,采用abaqus脚本语言python中的装配体对象的方法函数generatemesh()为每个装配体副本,包括上、下法兰,密封环,螺栓,垫片,划分网格。
[0180]
20、建立分析作业,保存cae模型,包含步骤2001~2002:
[0181]
步骤2001,采用abaqus脚本语言python中的构造函数job()创建分析作业;
[0182]
步骤2002,采用abaqus脚本语言python中模型对象的方法函数saveas()保存cae模型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1