本发明涉及一种确定再结晶元胞自动机中晶界斜率的方法,属于微观组织模拟技术领域。
背景技术:
再结晶元胞自动机模型被广泛应用于模拟金属材料热成形过程中的微观组织演变,这种模型有助于理解微观组织演变的机理及规律,更好地调控坯料内部微观组织,获得满足使用要求的高品质锻件。中国专利申请:“一种模拟GH4169合金静态再结晶行为的元胞自动机方法”(申请号:CN201610060605.9,公开号:CN105653822A)介绍了一种模拟GH4169合金静态再结晶的元胞自动机模型,所建立的模型可以很好地预测静态再结晶晶粒尺寸的演变。中国专利申请:“一种焊接过程热影响区组织演变的模拟方法”(专利号:CN102750425B)介绍了一种模拟钛合金在焊接过程中微观组织演变的元胞自动机模型。中国专利申请:“预测板带钢热变形中奥氏体动态再结晶组织演变的方法”(专利号:CN101591729B)介绍了一种模拟板带钢动态再结晶行为的元胞自动机模型。
然而,目前大多数再结晶元胞自动机模型面向的只是单相金属或合金材料,尚无完善的面向多相合金材料的再结晶元胞自动机模型。这主要是因为多相合金材料热成形过程中的微观组织演变涉及到析出相的溶解和析出,机理十分复杂。多相合金会在晶界上或者晶内析出析出相,而传统的再结晶元胞自动机模型无法有效地模拟这一析出过程,因此,实际研究中急需能够有效地模拟析出相在晶界上或者晶内析出的方法。析出相在晶界上的析出方向与晶界呈一定角度,若晶界斜率已知,则可以根据析出相与晶界之间的角度关系进而得到析出相的斜率,从而模拟出析出后的析出相。因此,本发明提供了一种确定再结晶元胞自动机中晶界斜率的方法,可以为多相合金微观组织模拟提供新方法。
技术实现要素:
本发明的目的在于提供一种确定再结晶元胞自动机中晶界斜率的方法,该方法总结了再结晶元胞自动机中晶界顶点的特征,可以准确地计算再结晶元胞自动机中的晶界斜率。
为达到上述目的,本发明采取的技术方案是:一种确定再结晶元胞自动机中晶界斜率的方法,该方法包括以下步骤:
步骤1:确定晶界顶点;
步骤2:判断晶界顶点是否相邻;
步骤3:计算相邻晶界顶点之间的斜率,并赋值给晶界顶点之间的晶界元胞;
步骤1包括如下子步骤:
(1)对模拟区域内所有晶粒进行编号,每个晶粒的编号是唯一的;
(2)采用冯诺依曼邻居类型,统计晶界顶点个数,并记录晶界顶点元胞的坐标;晶界顶点包含4个晶界元胞,晶界顶点的统计步骤为:首先统计邻居元胞分别隶属于3个不同晶粒的元胞,并标记为第一晶界顶点元胞;然后基于第一晶界顶点元胞,统计剩余的晶界顶点元胞,并标记为第二晶界顶点元胞;设第一晶界顶点元胞的坐标为(i,j),第一晶界顶点元胞的邻居元胞有4种情况:
若邻居元胞(i-1,j)为第一晶界顶点元胞,则判断元胞(i-1,j-1)的晶粒编号是否等于元胞(i,j-1)的晶粒编号,元胞(i-1,j-1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i,j-1)的晶粒编号是否不等于元胞(i-1,j)的晶粒编号,若满足上述条件,则标记元胞(i-1,j-1)和(i,j-1)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i-1,j+1)和(i,j+1)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录这两个第一晶界顶点元胞和两个第二晶界顶点元胞的坐标;
若邻居元胞(i,j-1)为第一晶界顶点元胞,则判断元胞(i+1,j-1)的晶粒编号是否等于元胞(i+1,j)的晶粒编号,元胞(i+1,j-1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i+1,j)的晶粒编号是否不等于元胞(i,j-1)的晶粒编号,若满足上述条件,则标记元胞(i+1,j-1)和(i+1,j)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i-1,j-1)和(i-1,j)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录这两个第一晶界顶点元胞和两个第二晶界顶点元胞的坐标;
若邻居元胞(i+1,j)为第一晶界顶点元胞,则判断元胞(i+1,j+1)的晶粒编号是否等于元胞(i,j+1)的晶粒编号,元胞(i+1,j+1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i,j+1)的晶粒编号是否不等于元胞(i+1,j)的晶粒编号,若满足上述条件,则标记元胞(i+1,j+1)和(i,j+1)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i,j-1)和(i+1,j-1)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录这两个第一晶界顶点元胞和两个第二晶界顶点元胞的坐标;
若邻居元胞(i,j+1)为第一晶界顶点元胞,则判断元胞(i-1,j+1)的晶粒编号是否等于元胞(i-1,j)的晶粒编号,元胞(i-1,j+1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i-1,j)的晶粒编号是否不等于元胞(i,j+1)的晶粒编号,若满足上述条件,则标记元胞(i-1,j+1)和(i-1,j)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i+1,j+1)和(i+1,j)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录这两个第一晶界顶点元胞和两个第二晶界顶点元胞的坐标。
步骤2中判断晶界顶点是否相邻的方法为:对比所有晶界顶点所隶属的晶粒,若两个晶界顶点各自所隶属的晶粒中,存在2个相同晶粒,则这两个晶界顶点是相邻晶界顶点,两个晶界顶点之间存在一条晶界;
步骤3中斜率的计算方法为:若两个晶界顶点为相邻晶界顶点,则根据两个晶界顶点的坐标,计算晶界斜率k,
其中,和分别为两个晶界顶点纵坐标的平均值,和分别为两个晶界顶点的横坐标的平均值,并将斜率k赋值给点和划定的矩形范围内的晶界元胞。
本发明的创新性和有益效果为:(1)总结了再结晶元胞自动机中晶界顶点的特点,提出了一种确定晶界斜率的方法;(2)本发明为多相合金微观组织模拟提供了一种新方法。
附图说明
图1再结晶元胞自动机模拟区域;
图2邻居元胞示意图;
图3晶界顶点示意图;
图4相邻晶界顶点示意图;
图5相对于晶界呈不同角度不同长度的线段;
具体实施方式
下面结合具体实施例来进一步说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明是一种确定再结晶元胞自动机中晶界斜率的方法,如图1所示,模拟区域内共有10个晶粒,黑色线段为晶界。
步骤1:(1)为这10个晶粒进行编号,如图1所示,每个晶粒的编号是唯一的。
(2)采用冯诺依曼邻居类型,统计晶界顶点个数,并记录晶界顶点元胞的坐标。图2所示为冯诺依曼邻居类型,黑色区域为中心元胞(i,j)的4个邻居元胞,首先统计邻居元胞分别隶属于3个不同晶粒的元胞,并标记为第一晶界顶点元胞,以图3为例,图中灰色区域的2号元胞的4个邻居元胞分别隶属于2号、3号、5号晶粒,因此标记灰色区域2号元胞为第一晶界顶点元胞,同理,标记灰色区域3号元胞为第一晶界顶点元胞。全部的第一晶界顶点元胞都标记出来以后,检查所有第一晶界顶点元胞的邻居元胞,并统计晶界顶点个数N;然后基于第一晶界顶点元胞,统计剩余的晶界顶点元胞,并标记为第二晶界顶点元胞;设第一晶界顶点元胞的坐标为(i,j),如图2所示,黑色元胞分别为第一晶界顶点元胞(i,j)的4个邻居元胞,
第一晶界顶点元胞的邻居元胞有4种情况:
若①号邻居元胞为第一晶界顶点元胞,则判断元胞(i-1,j-1)的晶粒编号是否等于元胞(i,j-1)的晶粒编号,元胞(i-1,j-1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i,j-1)的晶粒编号是否不等于元胞(i-1,j)的晶粒编号,若满足上述条件,则标记元胞(i-1,j-1)和(i,j-1)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i-1,j+1)和(i,j+1)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录4个晶界顶点元胞的坐标;
若②号邻居元胞为第一晶界顶点元胞,则判断元胞(i+1,j-1)的晶粒编号是否等于元胞(i+1,j)的晶粒编号,元胞(i+1,j-1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i+1,j)的晶粒编号是否不等于元胞(i,j-1)的晶粒编号,若满足上述条件,则标记元胞(i+1,j-1)和(i+1,j)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i-1,j-1)和(i-1,j)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录4个晶界顶点元胞的坐标;
若③号邻居元胞为第一晶界顶点元胞,则判断元胞(i+1,j+1)的晶粒编号是否等于元胞(i,j+1)的晶粒编号,元胞(i+1,j+1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i,j+1)的晶粒编号是否不等于元胞(i+1,j)的晶粒编号,若满足上述条件,则标记元胞(i+1,j+1)和(i,j+1)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i,j-1)和(i+1,j-1)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录4个晶界顶点元胞的坐标;
若④号邻居元胞为第一晶界顶点元胞,则判断元胞(i-1,j+1)的晶粒编号是否等于元胞(i-1,j)的晶粒编号,元胞(i-1,j+1)的晶粒编号是否不等于元胞(i,j)的晶粒编号,以及元胞(i-1,j)的晶粒编号是否不等于元胞(i,j+1)的晶粒编号,若满足上述条件,则标记元胞(i-1,j+1)和(i-1,j)为第二晶界顶点元胞;若不满足上述条件,则标记元胞(i+1,j+1)和(i+1,j)为第二晶界顶点元胞;同时晶界顶点个数在原来的基础上加1,并记录4个晶界顶点元胞的坐标;
以图3为例,灰色区域2号元胞为第一晶界顶点元胞,其灰色区域3号元胞也是第一晶界顶点元胞,是灰色区域2号元胞的③号邻居元胞,因此套用③号邻居元胞为第一晶界顶点元胞的情况,发现灰色区域中的2个5号元胞满足此时的条件,因此标记灰色区域中的2个5号元胞为第二晶界顶点元胞,同时晶界顶点个数在原来的基础上加1,并记录4个晶界顶点元胞的坐标。
检查完全部的第一晶界顶点元胞后,就可以得到模拟区域内晶界顶点元胞的个数,图1所示模拟区域内晶界顶点的个数为10个。
步骤2:判断晶界顶点是否相邻;对比所有晶界顶点所隶属的晶粒,若两个晶界顶点各自所隶属的晶粒中,存在2个相同晶粒,则这两个晶界顶点是相邻晶界顶点,两个晶界顶点之间存在一条晶界;图4所示灰色区域为两个晶界顶点,这两个晶界顶点各自所隶属的晶粒分别为2、3、5和3、5、6,其中有2个相同晶粒3和5,所以这两个晶界顶点为相邻晶界顶点。
步骤3:计算相邻晶界顶点之间的斜率,并赋值给晶界顶点之间的晶界元胞;若两个晶界顶点为相邻晶界顶点,则根据两个晶界顶点的坐标,计算晶界斜率k,
其中,和分别为两个晶界顶点纵坐标的平均值,和分别为两个晶界顶点的横坐标的平均值,将斜率k赋值给点和划定的矩形范围内的晶界元胞。
确定晶界斜率后,可以方便地生成与晶界成任意角度的任意长度线段,如图5所示,其中α为所生成的线段与晶界之间的角度,L为元胞长度。