背景技术
随着计算机硬件水平的不断提高和仿真行业的不断发展,目前针对单一物理场的仿真已经不能满足计算的需要了。想要更加真实的通过仿真计算来预测出模型在真实世界的各项数据,需要考虑多个物理场相互作用,在此背景下多物理场耦合技术应运而生,其分析与仿真已经成为最具活力的研究方向之一。
而多物理场耦合主要分为两种,一种是直接将多个物理量的控制方程直接耦合在一起,这种方法被称为强耦合;另一种就是本专利采用的,在不同物理场的交界处,对两个物理场上的物理量进行数据交换以达到耦合的效果,这种方法被称为弱耦合。强耦合有个明显的缺陷,由于多个物理量的方程耦合在一起,求解的复杂度会提高,会较大程度的影响仿真软件的计算效率。
所以行业内使用率更高的是物理场弱耦合方法。考虑到效率问题,弱耦合方法的耦合方案基本都采用并行耦合方案,并且求解器的时间步长都是固定不变的。目前应用于弱耦合领域中的自适应调整求解器步长的研究还是空白。
目前的多物理场耦合技术,由于不同物理场的求解时间不一致,会导致两个求解器一个会先计算完成先计算完成的会开始等待另一个求解器传送数据,而另一个会继续执行求解过程。这个等待的时间,在流程中属于没有意义的被消耗的时间。
发明内容
本发明为了克服以上技术的不足,提供了一种根据预测的求解时间对参与耦合的求解器的时间步长进行自适应变换,最终实现两个求解器的同步运行的方法。
本发明克服其技术问题所采用的技术方案是:
一种基于多物理场弱耦合的自适应调整时间步长的方法,包括如下步骤:
(a)参与多物理场耦合计算的求解器共有
个,为
,
为第
个求解器,
,各个求解器互不干涉;
(b)设置第
个求解器
的求解时间步长为
,设置耦合时间步长为
;
(c)初始化每个求解器当前时刻的时间为0且初始化已完成的耦合时间步的数量为
后开始耦合;
(d)判断求解器当前的时间是否达到设置的最大时间,如果达到最大时间则执行步骤(q),如果未达到最大时间则执行步骤(e);
(e)第
个求解器
当前求解的总时间为
,判断
是否大于耦合时间步长
,如果大于则第
个求解器
执行一个求解运算并执行步骤(f),如果
小于等于耦合时间步长
,则求解器执行一个求解时间步长的求解运算后返回执行步骤(d);
(f) 如果
大于耦合时间步长
,则执行步骤(g),如果
小于等于耦合时间步长
,则返回执行步骤(d);
(g)设置第
个求解器
的每一耦合步长的时间信息集合为
;
(h)暂停第
个求解器
的求解总时间
的计时,在时间信息集合
中添加元素
,得到
,此时将耦合时间步的数量
增加1,第
个求解器
开始等待与其它求解器之间传递数据,传递数据时进行求解器间数据的映射,数据传递完成后第
个求解器
的求解总时间
继续计时;
(i)根据耦合时间步的数量
的大小得到第
个求解器
的下一耦合步长时间预测值
,当
时执行步骤(o),当
时执行步骤(j);
(j)构建一个bp神经网络,将时间信息集合
内的元素
作为输出,元素
的上角标的数字
作为神经网络的输入,构建神经网络的样本数据;
(k)bp神经网络的激活函数设置为sigmoid函数,bp神经网络的误差函数采用mse函数,通过公式
计算得到mse函数的误差最小值
,式中
为所有求解器实际计算得到的时间,
为bp神经网络预测的阻力值,
为时间
与阻力值
的方差;
(l)初始化bp神经网络的参数;
(m)在bp神经网络中迭代P次样本数据,通过迭代后的bp神经网络得到mse函数的误差最小值
;
(n)通过公式
计算得到相对误差
,如果相对误差
大于等于设定的收敛标准
,则返回执行步骤(m),如果相对误差
小于设定的收敛标准
,则完成bp神经网络的训练,将耦合时间步的数量
带入训练完成后的bp神经网络中得到每个求解器的下一耦合步长时间预测值
;
(o)当得到所有求解器的下一耦合步长时间预测值后,通过公式
计算得到更新的第
个求解器
的求解时间步长
,式中,
,
为预测时间最长的下一耦合步长时间预测值;
(q)求解器继续运行,返回执行步骤(e);
(r)求解器求解达到预先设定的最大时间,多物理场仿真过程结束,完成多物理场仿真计算。
优选的,步骤(h)中通过径向基函数映射或最近邻映射或面积加权法进行求解器间数据的映射。
进一步的,步骤(i)包括如下步骤:
优选的,步骤(j)中bp神经网络的输入层神经元个数设置为3个,bp神经网络的隐藏层设置为3层。
进一步的,步骤(l)中将bp神经网络的学习率设置为
,学习率
为[0-1]的随机数,将bp神经网络的权值矩阵
和偏置矩阵
设置为[0,1]间的随机矩阵,
为bp神经网络第
个隐藏层上的第
个神经元上的偏置值,
为bp神经网络第
个隐藏层上的第
个神经元上的权值,完成初始化参数操作。
进一步的,步骤(m)中初始时
,通过公式
计算得到偏置矩阵
迭代
次的状态值,通过公式
计算得到权值矩阵
迭代
次的状态值,式中
为偏置矩阵
第
次的状态值,
为
的一阶导数,
为权值矩阵
第
次的状态值,
为
的一阶导数,每次迭代完成后,
增加1,直至迭代P次。
优选的,P的取值为10。
本发明的有益效果是:本发明在整个耦合流程中增加了对求解器下一时间步的求解时间进行了预测,预测过程随着求解器的求解过程分为多个层次,预测方法从线性预测方法随着求解器求解时间的推进不断改变,一直到最后的BP神经网络预测方法。根据预测的求解时间对参与耦合的求解器的时间步长进行自适应变换,最终实现两个求解器的同步运行。
具体实施方式
下面结合附图1、附图2对本发明做进一步说明。
一种基于多物理场弱耦合的自适应调整时间步长的方法,包括如下步骤:
(a)参与多物理场耦合计算的求解器共有
个,为
,
为第
个求解器,
,各个求解器各自分别求解自身涉及到的物理场,互不干涉。
(b)设置第
个求解器
的求解时间步长为
,设置耦合时间步长为
。
(c)初始化每个求解器当前时刻的时间为0且初始化已完成的耦合时间步的数量为
后开始耦合。
(d)判断求解器当前的时间是否达到设置的最大时间,如果达到最大时间则执行步骤(q),如果未达到最大时间则执行步骤(e)。
(e) 第
个求解器
当前求解的总时间为
,判断
是否大于耦合时间步长
,如果大于则第
个求解器
执行一个求解运算并执行步骤(f),如果
小于等于耦合时间步长
,则求解器执行一个求解时间步长的求解运算后返回执行步骤(d)。
(f)如果
大于耦合时间步长
,则执行步骤(g),如果
小于等于耦合时间步长
,则返回执行步骤(d)。
(g)设置第
个求解器
的每一耦合步长的时间信息集合为
。
(h)暂停第
个求解器
的求解总时间
的计时,在时间信息集合
中添加元素
,得到
,此时将耦合时间步的数量
增加1,第
个求解器
开始等待与其它求解器之间传递数据,传递数据时由于每个求解器的物理模型的网格离散方式可能不同(如结构模型网格划分相对粗糙,CFD计算模型的网格划分相对细致),会采用行业内通用的方法进行求解器间数据的映射(如径向基函数映射、最近邻映射、面积加权法等)传递数据时由于每个求解器的物理模型的网格离散方式可能不同(如结构模型网格划分相对粗糙,CFD计算模型的网格划分相对细致),会采用行业内通用的方法进行求解器间数据的映射(如径向基函数映射、最近邻映射、面积加权法等),数据传递完成后第
个求解器
的求解总时间
继续计时。
(i)根据耦合时间步的数量
的大小得到第
个求解器
的下一耦合步长时间预测值
,当
时执行步骤(o),当
时执行步骤(j)。
(j)构建一个bp神经网络,将时间信息集合
内的元素
作为输出,元素
的上角标的数字
作为神经网络的输入,构建神经网络的样本数据。
(k)bp神经网络的激活函数设置为sigmoid函数,bp神经网络的误差函数采用mse函数,通过公式
计算得到mse函数的误差最小值
,式中
为所有求解器实际计算得到的时间,
为bp神经网络预测的阻力值,
为时间
与阻力值
的方差。
(l)初始化bp神经网络的参数。
(m)在bp神经网络中迭代P次样本数据,通过迭代后的bp神经网络得到mse函数的误差最小值
。在本发明的一个实施例中,优选的,P的取值为10。
(n) 通过公式
计算得到相对误差
,如果相对误差
大于等于设定的收敛标准
,则返回执行步骤(m),如果相对误差
小于设定的收敛标准
,则完成bp神经网络的训练,将耦合时间步的数量
带入训练完成后的bp神经网络中得到每个求解器的下一耦合步长时间预测值
。在本发明的一个实施例中,收敛标准
。
(o)当得到所有求解器的下一耦合步长时间预测值后,通过公式
计算得到更新的第
个求解器
的求解时间步长
,式中,
,
为预测时间最长的下一耦合步长时间预测值。
(q)求解器继续运行,返回执行步骤(e)。
(r)求解器求解达到预先设定的最大时间,多物理场仿真过程结束,完成多物理场仿真计算。
多物理场弱耦合采用显式耦合方案时,由于显式耦合方案会造成数值的不稳定性,为了保证数据的稳定性,通常采用隐式耦合方案。而隐式耦合方案则需要不断迭代直到收敛为止,所以隐式耦合计算时间较长,多物理场弱耦合的计算速度就成为了一个尚待优化的问题。本发明提出的方法,可以在一定程度上减少整个耦合流程中由于求解器求解时间不同步而引起的闲置计算资源的问题,提高耦合计算的速度。多物理场弱耦合采用显式耦合方案时,由于显式耦合方案会造成数值的不稳定性,为了保证数据的稳定性,通常采用隐式耦合方案。而隐式耦合方案则需要不断迭代直到收敛为止,所以隐式耦合计算时间较长,多物理场弱耦合的计算速度就成为了一个尚待优化的问题。本发明提出的方法,可以在一定程度上减少整个耦合流程中由于求解器求解时间不同步而引起的闲置计算资源的问题,提高耦合计算的速度。本发明是基于多物理场弱耦合的优化弱耦合流程的一种方法,对并行耦合方案的求解器的时间步长做了自适应变换,使两个或多个参与耦合计算的求解器减少因为等待其他求解器计算完成的时间,从而提高计算资源的使用效率。求解器时间步长的自适应变换是依据求解器计算消耗的时间作为历史信息,通过本发明提出的预测公式和bp神经网络来实现的。
在本发明的一个实施例中,步骤(h)中当
时,
,当
时,
。
在本发明的一个实施例中,优选的,步骤(h)中通过径向基函数映射或最近邻映射或面积加权法进行求解器间数据的映射。
在本发明的一个实施例中,步骤(i)包括如下步骤:
在本发明的一个实施例中,优选的,步骤(j)中bp神经网络的输入层神经元个数设置为3个,bp神经网络的隐藏层设置为3层。
在本发明的一个实施例中,步骤(l)中将bp神经网络的学习率设置为
,学习率
为[0-1]的随机数,将bp神经网络的权值矩阵
和偏置矩阵
设置为[0,1]间的随机矩阵,
为bp神经网络第
个隐藏层上的第
个神经元上的偏置值,
为bp神经网络第
个隐藏层上的第
个神经元上的权值,完成初始化参数操作。
在本发明的一个实施例中,步骤(m)中初始时
,通过公式
计算得到偏置矩阵
迭代
次的状态值,通过公式
计算得到权值矩阵
迭代
次的状态值,式中
为偏置矩阵
第
次的状态值,
为
的一阶导数,
为权值矩阵
第
次的状态值,
为
的一阶导数,每次迭代完成后,
增加1,直至迭代P次。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。