本发明属于燃烧反应流,尤其涉及一种基于在线机器学习的燃烧反应流数值模拟方法。
背景技术:
1、燃烧反应流是流体流动同时伴随燃烧化学反应的过程。由于燃烧反应释放出大量的热量,从而显著改变流体的密度、粘度等物理特性,进而引起流动速度场、压力场的变化。流体流动状态的变化亦会通过改变燃料与氧化剂的空间分布、温度分布、压力分布进而影响燃烧化学反应进程。因此,燃烧反应流表现为一种流体流动与燃烧反应紧密耦合的复杂非线性现象。
2、在燃烧反应流的计算流体力学(cfd)数值模拟中,燃烧化学反应一般采用化学反应机理进行描述。化学反应机理通过阿伦尼乌斯方程组来计算反应物、生成物以及中间产物的化学反应速率。由于该方程组具有很大的数值刚性,因此一般需要采用基于向后微分公式法等隐式求解法的常微分方程求解器进行解算。数值模拟时,每个网格点均需要求解该刚性常微分方程组,其计算量在模拟中占比相当显著。当采用的化学反应机理涉及到较多的中间产物时,求解化学反应方程组的计算耗时可以达到整体模拟耗时的90%以上。
3、机器学习方法如人工神经网络(ann)等应用于计算燃烧化学反应方程组可以显著加快计算速度:在数值模拟之前,先构建燃烧化学反应数据集训练机器学习模型;模拟时利用该模型预测燃烧化学反应速率,而无需进行传统的常微分方程组求解。但是,机器学习方法的准确度严重依赖于训练数据集的质量。如果训练数据集没有覆盖数值模拟中的全部化学反应轨迹,则机器学习模型的预测结果会严重偏离真实值。而在实际燃烧反应流问题中,存在多种燃料混合燃烧、与外界环境进行热交换等复杂情况,难以预先知晓全部的燃烧化学反应轨迹区间。
技术实现思路
1、为了解决上述现有技术存在的不足,本发明的目的在于提出一种基于在线机器学习的燃烧反应流数值模拟方法,大幅简化了模拟计算流程,提高了cfd数值模拟中机器学习方法计算燃烧化学反应的易用性。
2、为了达到上述目的,本发明采用的技术方案如下:
3、一种基于在线机器学习的燃烧反应流数值模拟方法,包括以下步骤:
4、s1:根据需要计算的燃烧反应流对象的物理尺寸,构建几何模型并划分网格,得到网格模型,结合化学反应机理对网格模型开展cfd数值模拟计算,数值模拟方法采用稳态或非稳态雷诺平均模拟方法、大涡模拟方法或直接数值模拟方法,迭代的计算步数≤设定初始步数p时,燃烧化学反应速率源项通过直接求解化学反应机理得到;
5、s2:每个计算步内,对各网格点的组分质量分数、温度以及求解化学反应机理得到的燃烧化学反应速率源项数据进行筛选,选取具有代表性的网格点数据进行保存,逐步构建燃烧化学反应数据集;
6、s3:迭代p个计算步后,随机选取步骤s2得到的燃烧化学反应数据集中的50-90%组成神经网络的训练数据集,剩余10-50%作为测试数据集,对训练数据集和测试数据集进行预处理,利用预处理后的训练数据集训练燃烧化学反应的神经网络模型,然后利用预处理后的测试数据集检验神经网络模型的预测误差;
7、s4:如步骤s3中神经网络模型的预测误差高于设定阈值s,则重复步骤s2继续构建燃烧化学反应数据集;如步骤s3中神经网络模型的预测误差等于或低于设定阈值s,则在后续模拟计算步内,利用神经网络模型计算燃烧化学反应速率源项,无需求解化学反应机理;
8、s5:每隔q个计算步,同时采用神经网络模型和化学反应机理计算燃烧化学反应速率源项,利用化学反应机理计算结果校验神经网络模型的预测精度;
9、s6:如步骤s5中神经网络模型的预测误差高于设定阈值s,则当前及后续计算步选用求解化学反应机理得到的燃烧化学反应速率源项,并重复步骤s2至s5;如步骤s5中神经网络模型的预测误差等于或低于设定阈值s,则当前及后续计算步选用神经网络模型计算得到的燃烧化学反应速率源项,并重复步骤s5直至计算结束。
10、进一步地,所述各步骤中的燃烧化学反应速率源项包括组分质量分数源项和温度源项,具体指经过单个模拟时间步长的燃烧化学反应,组分质量分数的变化量与温度的变化量。
11、进一步地,所述步骤s2中的数据筛选方法如下:对燃烧化学反应的混合分数z和进度变量yc分别离散为m和n个均匀区间,即把燃烧反应的z-yc空间离散为m×n个单元;遍历全部网格点,根据各网格点的z、yc值将其关联至某一单元;遍历各个单元,从该单元对应的所有网格点中随机抽取k个网格点,k为设定采样数,如该单元对应的网格点数量小于k,则全部抽取;将抽取的网格点数据加入燃烧化学反应数据集。
12、进一步地,所述步骤s2中,燃烧化学反应数据集采用动态链表的方式进行存储,并根据计算机内存容量大小设置数据集存储上限为n条数据;随着模拟计算进行,当存储的数据条数达到上限n后,通过动态链表的先进先出方式,删除早期存储的数据,存入最新抽取的网格点数据,实现燃烧化学反应数据集随模拟过程的动态更新。
13、进一步地,所述步骤s3中的训练数据集和测试数据集预处理方法如下:对于组分质量分数y,首先计算y'=y(1/a),再对y'进行标准化操作得到平均值为0、标准差为1的组分质量分数y”=(y'-μy')/σy',即为预处理后的组分质量分数,其中μy'为数据y'的平均值、σy'为数据y'的标准差;对于组分质量分数源项sy,首先计算sy'=(y+sy)(1/a)-y(1/a),再对sy'进行标准化操作得到sy”=(sy'-μsy')/σsy',即为预处理后的组分质量分数源项,其中μsy'为数据sy'的平均值,σsy'为数据sy'的标准差;上述公式中系数a取值范围为[1,20];对于温度t直接进行标准化操作得到t'=(t-μt)/σt,即为预处理后的温度,其中μt为温度t的平均值、σt为温度t的标准差;对于温度源项st直接进行标准化操作得到st'=(st-μst)/σst,即为预处理后的温度源项,其中μst为温度源项st的平均值、σst为温度源项st的标准差。
14、进一步地,所述步骤s3中的神经网络模型为全连接神经网络模型,包括输入层、输出层和若干层隐藏层;神经网络模型的输入为预处理后的组分质量分数与温度,神经网络模型的目标输出为预处理后的组分质量分数源项与温度源项。
15、进一步地,所述步骤s3中检验神经网络模型预测误差的方法如下:以预处理后测试数据集中的组分质量分数与温度作为输入,通过神经网络模型计算得到组分质量分数源项与温度源项的预测值;以预处理后测试数据集中的组分质量分数源项与温度源项值作为基准值,计算神经网络模型预测值与基准值之间的平均相对误差,即为神经网络模型的预测误差。
16、进一步地,所述步骤s4和s5中利用神经网络模型计算燃烧化学反应速率源项方法如下:对各网格点的组分质量分数y和温度t进行预处理,得到预处理后的组分质量分数y”和预处理后的温度t';将预处理后的组分质量分数y”和预处理后的温度t'输入神经网络模型进行计算,输出预测的组分质量分数源项sy”和温度源项st';对于sy”,首先进行逆标准化操作得到sy'=sy”×σsy'+μsy',再计算公式sy=(y(1/a)+sy')a-y,即为数值模拟所需的组分质量分数源项;对于st',直接进行逆标准化操作得到st=st'×σst+μst,即为数值模拟所需的温度源项。
17、本发明的有益效果在于:本发明利用机器学习方法计算燃烧化学反应,避免了求解阿伦尼乌斯常微分方程组,可显著加快cfd数值模拟中求解化学反应部分的计算速度;同时,本发明无需在数值模拟之前人工预先构建燃烧化学反应数据集训练神经网络模型,而是在数值模拟过程中自动在线构建数据集开展训练,大幅简化了模拟计算流程,提高了cfd数值模拟中机器学习方法计算燃烧化学反应的易用性。