一种立方系材料母相与子相间位向关系的确定方法与流程

文档序号:12825696阅读:378来源:国知局
一种立方系材料母相与子相间位向关系的确定方法与流程

本发明涉及材料晶体学技术领域,特别是指一种立方系材料母相与子相间位向关系的确定方法。



背景技术:

近年来,由于电子背散射衍射(electronbackscattereddiffraction,ebsd)技术及其相关系统出现的越来越多,使对相变前原始母相组织的取向回归成为可能,并且这种过程也越来越受到大家的关注。对原始母相取向的回归需要知道其相变产物子相的取向信息以及母相与子相间的位向关系,由此可知,位向关系的获取非常重要。

但是,现有技术中,还未有方法能准确地计算出立方系材料母相与子相间位向关系。



技术实现要素:

本发明要解决的技术问题是提供一种立方系材料母相与子相间位向关系的确定方法,以解决现有技术所存在的不能准确地计算出立方系材料母相与子相间位向关系的问题。

为解决上述技术问题,本发明实施例提供一种立方系材料母相与子相间位向关系的确定方法,包括:

s1,获取立方系钢材料的取向点数据,其中,所述取向点数据包括:取向点的欧拉角;

s2,初始化种群pop,并将种群pop和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵popfit,其中,θ表示所有取向点的理论取向与实际取向的取向差角;

s3,对种群pop进行变异操作,得到矩阵u;

s4,对种群pop和矩阵u进行交叉操作,得到矩阵t;

s5,判断矩阵t中的元素是否超出预设的取值范围;

s6,若矩阵t中的元素没有超出预设的取值范围,则将矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;

s7,若矩阵t中的元素超出预设的取值范围,则利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换,将变换后的矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;

s8,将矩阵popfit和矩阵tempfit做选择操作,选择出矩阵popfit和矩阵tempfit中的最小θ值,在种群中选择出最小θ值所对应的个体进入下一次迭代;

s9,判断是否达到最大迭代次数;若没有达到最大迭代次数,则返回执行s3;若达到最大迭代次数,则获取最后一次迭代生成的矩阵popfit中的最小θ值,通过最后一次迭代得到的最小θ值所在的位置,得到待求的位向关系。

进一步地,在初始化种群pop之前,所述方法还包括:

设置参数,所述参数包括:种群规模,缩放因子、交叉概率,最大迭代次数max、全零矩阵vmin、最大值矩阵vmax;

其中,全零矩阵vmin的大小为1*6,全零矩阵vmin的前三列对应预设的位向关系式中的位向关系v,全零矩阵vmin的后三列对应预设的位向关系式中的母相的取向信息m,最大值矩阵vmax的大小为1*6。

进一步地,所述预设的位向关系式表示为:

其中,θ表示所有取向点的理论取向与实际取向的取向差角,n为取向点的个数,arccos(·)表示反余弦函数,trace(·)表示对矩阵取迹操作,v表示位向关系,m表示母相的取向信息,mm表示取向点的欧拉角,sj和sk分别为母相与子相对应的晶体学对称性因子的等效矩阵,j和k分别代表母相与子相的晶体学对称性因子。

进一步地,所述初始化种群pop包括:

将全零矩阵vmin和最大值矩阵vmax分别转化为np*6的矩阵,并利用随机生成一个np*6的矩阵r,其中,np表示种群规模;

利用公式pop=vmin+r*(vmax-vmin),生成初始种群pop。

进一步地,所述对种群pop进行变异操作,得到矩阵u包括:

将种群pop赋值给矩阵u;

在第t次迭代中,当i在1~np中时,在np中随机生成3个数x1、x2、x3;

利用公式ui=popx1+f*(popx2-popx3)进行变异操作,对矩阵u进行更新;

其中,f表示缩放因子,x1、x2、x3分别表示种群pop中的第x1、x2、x3行,popx1、popx2、popx3分别表示种群pop中的第x1、x2、x3行的数据,ui表示矩阵u中的第i行数据。

进一步地,所述对种群pop和矩阵u进行交叉操作,得到矩阵t包括:

将种群pop赋值给矩阵t;

随机生成一个np*6的矩阵r,将矩阵r中的每个元素和交叉概率cr进行比较,其中,np表示种群规模;

若矩阵r中的元素小于交叉概率cr,则将矩阵u中相应位置的元素赋值给矩阵t中相同位置的元素。

进一步地,所述预设的取值范围为:大于等于预设的下边界且小于等于预设的上边界,其中,所述预设的下边界为全零矩阵vmin,所述预设的上边界为最大值矩阵vmax;

所述判断矩阵t中的元素是否超出预设的取值范围包括:

将矩阵t中的每个元素和vmin及vmax中对应的元素进行比较。

进一步地,所述若矩阵t中的元素超出预设的取值范围,则利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换包括:

若矩阵t中的元素超出预设的取值范围,则随机生成一个np*6的矩阵r,并利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换,其中,所述预设的变换公式表示为:

t(i)=vmin(i)+r(i)*(vmax(i)-vmin(i))

其中,np表示种群规模,vmin表示全零矩阵、vmax表示最大值矩阵,i表示矩阵t中超出预设的取值范围的元素位置。

进一步地,所述将矩阵popfit和矩阵tempfit做选择操作,选择出矩阵popfit和矩阵tempfit中的最小θ值,在种群中选择出最小θ值所对应的个体进入下一次迭代包括:

将矩阵popfit中的元素和tempfit中相应位置上的元素进行比较;

若矩阵popfit中的元素大于矩阵tempfit中相应位置上的元素,则将矩阵tempfit中相应位置的元素赋值给矩阵popfit中相同位置的元素,更新矩阵popfit;

获取更新后的矩阵popfit中的最小θ值,并在种群中选择出最小θ值所对应的个体进入下一次迭代。

本发明的上述技术方案的有益效果如下:

上述方案中,通过获取立方系钢材料的取向点数据,其中,所述取向点数据包括:取向点的欧拉角;初始化种群pop,并将种群pop和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵popfit,其中,θ表示所有取向点的理论取向与实际取向的取向差角;对种群pop进行变异操作,得到矩阵u;对种群pop和矩阵u进行交叉操作,得到矩阵t;判断矩阵t中的元素是否超出预设的取值范围;若矩阵t中的元素没有超出预设的取值范围,则将矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;若矩阵t中的元素超出预设的取值范围,则利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换,将变换后的矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;将矩阵popfit和矩阵tempfit做选择操作,选择出矩阵popfit和矩阵tempfit中的最小θ值,在种群中选择出最小θ值所对应的个体进入下一次迭代;判断是否达到最大迭代次数;若没有达到最大迭代次数,则返回执行对种群pop进行变异操作,得到矩阵u的步骤;若达到最大迭代次数,则获取最后一次迭代生成的矩阵popfit中的最小θ值,通过最后一次迭代得到的最小θ值所在的位置,得到待求的位向关系。这样,通过运用差分进化算法,即利用变异、交叉、选择操作,并通过多次迭代,选择出最小θ值所对应的个体进入下一次迭代,从而保留优良个体,淘汰劣质个体,引导位向关系中的θ值逐渐向全局最优解逼近,当θ达到最小值时,可以得到待求的位向关系。

附图说明

图1为本发明实施例提供的立方系材料母相与子相间位向关系的确定方法的流程示意图;

图2为本发明实施例提供的立方系材料母相与子相间位向关系的确定方法的详细流程示意图;

图3为本发明实施例提供的交叉操作示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明针对现有的不能准确地计算出立方系材料母相与子相间位向关系的问题,提供一种立方系材料母相与子相间位向关系的确定方法

参看图1所示,本发明实施例提供的立方系材料母相与子相间位向关系的确定方法,包括:

s1,获取立方系钢材料的取向点数据,其中,所述取向点数据包括:取向点的欧拉角;

s2,初始化种群pop,并将种群pop和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵popfit,其中,θ表示所有取向点的理论取向与实际取向的取向差角;

s3,对种群pop进行变异操作,得到矩阵u;

s4,对种群pop和矩阵u进行交叉操作,得到矩阵t;

s5,判断矩阵t中的元素是否超出预设的取值范围;

s6,若矩阵t中的元素没有超出预设的取值范围,则将矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;

s7,若矩阵t中的元素超出预设的取值范围,则利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换,将变换后的矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;

s8,将矩阵popfit和矩阵tempfit做选择操作,选择出矩阵popfit和矩阵tempfit中的最小θ值,在种群中选择出最小θ值所对应的个体进入下一次迭代;

s9,判断是否达到最大迭代次数;若没有达到最大迭代次数,则返回执行s3;若达到最大迭代次数,则获取最后一次迭代生成的矩阵popfit中的最小θ值,通过最后一次迭代得到的最小θ值所在的位置,得到待求的位向关系。

本发明实施例所述的立方系材料母相与子相间位向关系的确定方法,通过获取立方系钢材料的取向点数据,其中,所述取向点数据包括:取向点的欧拉角;初始化种群pop,并将种群pop和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵popfit,其中,θ表示所有取向点的理论取向与实际取向的取向差角;对种群pop进行变异操作,得到矩阵u;对种群pop和矩阵u进行交叉操作,得到矩阵t;判断矩阵t中的元素是否超出预设的取值范围;若矩阵t中的元素没有超出预设的取值范围,则将矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;若矩阵t中的元素超出预设的取值范围,则利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换,将变换后的矩阵t和获取的取向点的欧拉角代入预设的位向关系式计算,生成存储最小θ值的矩阵tempfit;将矩阵popfit和矩阵tempfit做选择操作,选择出矩阵popfit和矩阵tempfit中的最小θ值,在种群中选择出最小θ值所对应的个体进入下一次迭代;判断是否达到最大迭代次数;若没有达到最大迭代次数,则返回执行对种群pop进行变异操作,得到矩阵u的步骤;若达到最大迭代次数,则获取最后一次迭代生成的矩阵popfit中的最小θ值,通过最后一次迭代得到的最小θ值所在的位置,得到待求的位向关系。这样,通过运用差分进化算法,即利用变异、交叉、选择操作,并通过多次迭代,选择出最小θ值所对应的个体进入下一次迭代,从而保留优良个体,淘汰劣质个体,引导位向关系中的θ值逐渐向全局最优解逼近,当θ达到最小值时,可以得到待求的位向关系。

本发明实施例中,由于位向关系式中要求θ最小,为了避免其出现过早收敛而陷入局部最优解的情况,为了尽可能地获得一个全局最优解,本发明实施例采用差分进化算法来求取待求的位向关系;所述差分进化算法可对非线性不可微连续空间函数进行最小化,其基本原理简单,受控参数较少,在人工智能,模式识别等多个领域都得到了广泛应用;所述差分进化算法的三个主要步骤是变异、交叉、选择。

本实施例中,采用差分进化算法确定立方系材料母相与子相间位向关系的方法,如图2所示,具体可以包括以下步骤:

步骤一:获取立方系钢材料的取向点数据,该数据中的每一行代表一个取向点,该数据中的每一行数据代表一个取向点的取向信息,所述取向点的取向信息包括:取向点的三个欧拉角,本实施例主要利用取向点的取向信息(即三个欧拉角)做运算,采用的取向点的数据量(即取向点个数)可达三十万。

步骤二:设置参数,所述参数包括:种群规模np,缩放因子f、交叉概率0.4,最大迭代次数max、全零矩阵vmin、最大值矩阵vmax,全零矩阵besttr;假设,种群规模np为30,缩放因子f和交叉概率cr均为0.4,最大迭代次数max为100;全零矩阵vmin的大小为1*6,全零矩阵vmin的前三列对应预设的位向关系式中的位向关系v,全零矩阵vmin的后三列对应预设的位向关系式中的母相的取向信息m;最大值矩阵vmax的大小为1*6,可以设置最大值矩阵vmax为[90,90,90,360,90,90],全零矩阵besttr的大小为100*1,全零矩阵besttr用来存储每一代的最小θ值。

步骤三:初始化种群(第一次迭代时,需对种群进行初始化,第一次迭代生成的种群pop可以称为初始种群pop),将全零矩阵vmin和最大值矩阵vmax分别利用repmat()函数转化为30*6的矩阵,然后用rand()函数随机生成一个30*6的矩阵r,利用公式(1)

pop=vmin+r*(vmax-vmin)(1)

生成初始种群pop,其中,种群pop的信息以矩阵的形式进行存储;

接着,将种群pop赋值给矩阵u;然后将种群pop的每一行值及获取的取向点的欧拉角代入位向关系式(2)中进行计算,其中,取向点的欧拉角对应位向关系式中的变量mm,矩阵pop的每一行有6列数据,前3列数据对应位向关系式中的变量v,后3列数据对应位向关系式中的变量m,其中,所述位向关系式表示为:

式(2)中,θ表示所有取向点的理论取向与实际取向的取向差平均偏差(取向)差角,trace(·)表示对矩阵取迹操作,arccos(·)表示反余弦函数,v表示位向关系,n为取向点的个数,j和k分别代表母相与子相的晶体学对称性因子,取值范围均为[1,24],sj和sk分别为母相与子相对应的晶体学对称性因子的等效矩阵,m是母相的取向信息,mm表示取向点的欧拉角。

由于j、k的取值范围均为[1,24],故对于每一个取向点i都要进行24*24次的计算,针对每个取向点,最终取所有值中的最小值θmin(i)存储下来,所有取向点都计算完之后,对得到的所有θmin值求和取平均,得到种群中相应行数据对应的平均θmin。种群pop共有30行数据,故所有计算完成后会得到一个1*30的矩阵,每一列数值表示利用种群pop的每一行数据计算出的平均θmin,将此矩阵定义为popfit,为之后的步骤使用。

本实施例中,作为一可选实施例,所述初始化种群pop包括:

将全零矩阵vmin和最大值矩阵vmax分别转化为np*6的矩阵,并利用随机生成一个np*6的矩阵r,其中,np表示种群规模;

利用公式pop=vmin+r*(vmax-vmin),生成初始种群pop。

步骤四:变异操作;在第t次迭代中,当i在1~np中时,在np中随机生成3个数x1、x2、x3,利用公式(3):

ui=popx1+f*(popx2-popx3)(3)

进行变异操作,对矩阵u进行更新;

其中,f表示缩放因子,x1、x2、x3分别表示种群pop中的第x1、x2、x3行,popx1、popx2、popx3分别表示种群pop中的第x1、x2、x3行的数据,ui表示矩阵u中的第i行数据。

步骤五:交叉操作;将种群pop赋值给矩阵t,用矩阵t和经过变异操作后得到的矩阵u进行交叉操作。具体过程为:用rand()函数随机生成一个30*6的矩阵r,将矩阵r中的每个元素和交叉概率cr做进行比较,若矩阵r中的元素大于等于交叉概率cr,则在矩阵t中,与矩阵r中该元素位置相同的元素值不变;若矩阵r中的元素小于交叉概率cr,则将矩阵u中相应位置的元素赋值给矩阵t中相同位置的元素,从而完成交叉操作,实现代码为:t(r<cr)=u(r<cr),交叉操作的示意图如3所示,图3中,ri表示一个个体中的第i个元素,xi(g)表示第i个个体在第g次迭代时的值,vi(g+1)表示第i个个体在第g+1次迭代时的值,ui(g+1)表示第i个个体在第g+1次迭代时经过交叉操作后的结果。

本实施例中,作为一可选实施例,所述对种群pop和矩阵u进行交叉操作,得到矩阵t包括:

将种群pop赋值给矩阵t;

随机生成一个np*6的矩阵r,将矩阵r中的每个元素和交叉概率cr进行比较,其中,np表示种群规模;

若矩阵r中的元素小于交叉概率cr,则将矩阵u中相应位置的元素赋值给矩阵t中相同位置的元素。

步骤六:边界检查;所述预设的取值范围为:大于等于预设的下边界且小于等于预设的上边界,其中,所述预设的下边界为全零矩阵vmin,所述预设的上边界为最大值矩阵vmax;对于经过交叉操作后得到的矩阵t检查其是否满足最先设定的取值范围,即检查矩阵t中的元素是否超过了边界vmin和vmax。首先再随机生成一个30*6的矩阵r,然后将矩阵t中的每个元素和vmin及vmax中对应的元素进行比较,若矩阵t中元素没有超出边界,则矩阵t中的元素值不变,若矩阵t中元素超出边界值,则对矩阵t中相应元素利用预设的变换公式(4)做变换:

t(i)=vmin(i)+r(i)*(vmax(i)-vmin(i))(4)

边界检查后得到更新后的矩阵t,将矩阵t的每一行值及获取的取向点的欧拉角再代入位向关系式(2)中进行计算,最终得到一个存储了30个最小θ值的矩阵,记为矩阵tempfit。

本实施例中,作为一可选实施例,所述若矩阵t中的元素超出预设的取值范围,则利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换包括:

若矩阵t中的元素超出预设的取值范围,则随机生成一个np*6的矩阵r,并利用预设的变换公式对矩阵t中超出预设的取值范围的元素做变换,其中,所述预设的变换公式表示为:

t(i)=vmin(i)+r(i)*(vmax(i)-vmin(i))

其中,np表示种群规模,vmin表示全零矩阵、vmax表示最大值矩阵,i表示矩阵t中超出预设的取值范围的元素位置。

步骤七:选择操作;将步骤三得到的矩阵popfit和步骤六得到的矩阵tempfit进行选择操作,选择出矩阵popfit和矩阵tempfit中的最小θ值,在种群中选择出最小θ值所对应的个体进入下一次迭代。具体过程为:将矩阵popfit中的元素和矩阵tempfit中相应位置上的元素进行比较,若矩阵popfit中的元素小于等于tempfit中相应位置上的元素,则popfit中该位置的元素值保持不变;若矩阵popfit中的元素大于tempfit中相应位置上的元素,则将tempfit中该位置的元素赋值给popfit中相同位置的元素,更新矩阵popfit,实现代码为:popfit(popfit>tempfit)=tempfit(popfit>tempfit);由于,矩阵popfit和矩阵tempfit分别是由矩阵pop和矩阵t中的元素计算得到,即矩阵popfit和矩阵tempfit中的第i个元素,分别是矩阵pop和矩阵t中第i行数据所得,故如果矩阵popfit中的第i个元素被更新,相应地,矩阵pop中的第i行数据也应根据矩阵t被更新,也就是说,要将矩阵popfit和矩阵tempfit中最优值(最小θ值)所对应的个体筛选出来让其进入下一代,即:要将更新后的矩阵popfit中的最小θ值所对应的个体筛选出来让其进入下一代,实现代码为:pop(popfit>tempfit,:)=t(popfit>tempfit,:);

其中,pop(popfit>tempfit,:)=t(popfit>tempfit,:)中的“:”是matlab的代码,“:”表示所有的列。此外,将更新后的矩阵popfit中的最小值取出存入最先设定的矩阵besttr(t)中,besttr(t)表示这是第t次迭代后产生的最优解。

步骤八:重复步骤四、五、六、七,直到达到最大迭代次数。

步骤九:迭代结束后,besttr(100)中存储的就是最终得到的最小θ值,该值也是最后一次迭代生成的矩阵popfit中的最小值,通过该值所在的位置,便可得到计算出该值的是矩阵pop中的哪一行数据,而该行的前三列数据正是我们最终要求的位向关系。

综上所述,本实施例主要思想就是运用差分进化算法,通过多次迭代,保留优良个体,淘汰劣质个体,引导位向关系中的θ值逐渐向全局最优解逼近,当达到最小值时,位向关系式中计算出这个值所用的变量v就是待求的位向关系。对于该算法中参数的选取,首先是种群规模np,从计算复杂度分析,一般种群规模越大,搜索到的全局最优解的可能性越大,但是计算量和计算时间也会增加。而且当np增大到一定个数时,解的精度反而会出现降低的情况,np也不能小于3,这样就无法进行变异操作。一般情况,在给定最大迭代次数下,种群规模np在15~50之间能很好的保持种群多样性和收敛速度的平衡,故本发明实施例选取30为种群规模大小。对于缩放因子f,如果f较大,就会产生较大的扰动,对保持种群的多样性有利;如果f较小,扰动也小,f可以起到局部精细化搜索的作用。但是如果f太大,虽然能保持种群多样性,但会导致搜索效率低下,求得的全局最优解精度低;如果f太小,种群多样性无法得到保障,算法容易过早收敛而陷入局部最优解。一般的缩放因子在0~1范围内,根据上述分析,本发明实施例选取缩放因子f为0.4。对于交叉概率cr,如果cr较小,收敛速度会慢但是成功率较高,算法稳定性也好;如果cr较大,会加速收敛,容易发生早熟现象,成功率和稳定性都会降低。为了保证较高的成功率和较快的收敛速度,一般对于单峰函数,cr取值在0.6~0.8之间,对于复杂、多峰函数,cr取值要小些,在0.1~0.5之间,根据要解决的问题,本发明实施例选择cr的值为0.4。

本发明实施例运用计算机技术较好地解决了材料领域的难题,对于求得的位向关系,可以运用到母相取向回归的过程中,使材料领域在对母相取向回归技术研究的道路上又前进了一步,这是计算机与材料领域的一个很好的结合,也是国内这方面研究中的一个创新。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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