一种机器学习数据库的自动构建方法与流程

文档序号:23653646发布日期:2021-01-15 13:50阅读:64来源:国知局
本发明涉及计算机
技术领域
:,特别涉及一种机器学习数据库自动构建方法。
背景技术
::机器学习的实现必须建立在大量数据的基础上,因此获取大量数据是机器学习应用的基础。通常优质数据的获取会具有较大的难度,特别是在很多的专业领域,很少存在大量可直接运用的数据。因此,在多数情况下,科研人员需要自己创建大量用于机器学习的数据。在cfd研究领域中,进行机器学习研发工作时,同样难以找到直接有用的大量数据,因此需要自己创建。但由于cfd数据的复杂性,每个有效的模拟结果文件都需要进行大量的操作以及长时间的运算。当需要得到成千上万条在不同情形下的数据时,每次都通过人工操作和设置,将花费大量时间精力。技术实现要素:本发明所要解决的技术问题是现有用于机器学习的cfd数据库自动构建方法需要人工操作设置的问题。为解决上述技术问题,本申请实施例公开了一种机器学习数据库的自动构建方法,包括:建立模型和网格文件;制作fluent脚本文件;制作cfd-post脚本文件;编写python程序,所述python程序用于读取和修改ansys脚本文件;启动批处理文件运行所述ansys脚本文件;通过所述批处理文件调用并执行所述fluent脚本文件,所述fluent脚本文件自动计算求解获得fluent结果文件;通过所述批处理文件调用并执行所述cfd-post脚本文件,所述cfd-post脚本文件自动后处理获得cfd-post结果文件。进一步的,所述建立模型和网格文件,包括:通过ansys中的icem软件建立基础模型;在所述基础模型上进行的网格划分;将网格划分后的所述基础模型保存为.msh文件。进一步的,所述制作fluent脚本文件,包括:启动fluent脚本录制;将所述.msh文件导入;对所述.msh文件进行基础参数设置;将计算结果保存为.cas文件和.dat文件;结束所述fluent脚本录制并生成.jou文件。进一步的,所述制作cfd-post脚本文件,包括:启动cfd-post脚本录制;将所述.cas文件导入;对所述.cas文件进行设置,定义后处理对象和变量;生成后处理文件,所述后处理文件为.png图片或.csv文件;导出所述后处理文件;结束所述cfd-post脚本录制并生成.cse文件。进一步的,所述编写python程序,包括:编写python代码;建立所述fluent脚本文件和所述cfd-post脚本文件的连接接口;修改所述ansys脚本文件,使每次运行所述ansys脚本文件计算不同参数结果。进一步的,所述方通过所述批处理文件调用并执行所述cfd-post脚本文件之后,还包括:建立循环,每次循环调用所述fluent脚本文件、所述cfd-post脚本文件和所述批处理文件,得到所述fluent结果文件和所述cfd-post结果文件;根据全部的所述fluent结果文件和全部的所述cfd-post结果文件生成数据库。进一步的,所述启动所述ansys脚本文件中的批处理文件之前,还包括:运用所述python程序读取和修改所述ansys脚本文件;运用所述python程序读取所述ansys脚本文件的命令为:f=open('cylinder.jou',"r+",encoding='utf-8'):其中,f=open():打开文件;'cylinder.jou':fluent脚本的文件名,名称为cylinder,后缀为.jou;"r+":以读写的方式打开文件;encoding='utf-8':编码格式。进一步的,所述fluent脚本文件的语句为:(cx-gui-docx-set-real-entry-list"velocityinlet*frame3*frame1(momentum)*table1*table8*realentry2(velocitymagnitude)"'(5)):fluent脚本文件,定义进口边界速度为5;和/或,所述cfd-post脚本文件的语句为:hardcopyfilename=d:/rl/post/data/cylinder5.png:cfd-post脚本文件,保存云图语句;d:/rl/post/data/cylinder5.png:路径为d:/rl/post/data,文件名为cylinder5.png。进一步的,所述通过所述批处理文件调用并执行所述fluent脚本文件,所述fluent脚本文件自动计算求解获得fluent结果文件,其中,运行fluent批处理方法和fluent批处理文件包括:启动fluent命令为:proc=subprocess.popen('fluent.bat'):使用subprocess模块中的popen类启动文件名为fluent.bat的批处理文件;并将程序的返回值赋给proc;fluent批处理文件内容包括:"c:\programfiles\ansysinc\v180\fluent\ntbin\win64\fluent.exe"2d-t2-icylinder.jou;其中,"c:\programfiles\ansysinc\v180\fluent\ntbin\win64\fluent.exe":fluent软件的应用程序路径;2d-t2-i:2d”表示2d求解器,"t2"表示用两个核心进行并行计算;cylinder.jou:fluent脚本文件的名称。进一步的,所述通过所述批处理文件调用并执行所述cfd-post脚本文件,所述cfd-post脚本文件自动后处理获得cfd-post结果文件,其中,运行cfd-post批处理的方法和cfd-post批处理文件包括:启动cfd-post命令为:os.system(r'post.bat')其中,os.system:用os模块启动程序;r:启动类型为只读;post.bat:cfd-post批处理文件的名称;cfd-post批处理文件内容包括:"c:\programfiles\ansysinc\v180\cfd-post\bin\cfdpost.exe"-sessioncylinder.cse其中,"c:\programfiles\ansysinc\v180\cfd-post\bin\cfdpost.exe":cfd-post的应用程序路径;cylinder.cse:cfd-post脚本文件的名称。采用上述技术方案,具有如下有益效果:本实施例所述的机器学习数据库的自动构建方法,通过python修改脚本和调用批处理文件,从而实现自动获取不同参数下的cfd仿真结果。弥补了数据库人工建模周期长、成本高、效率低的不足,节省了大量时间和人力,解决了cfd机器学习数据库的自动构建需求。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请一个实施例的机器学习数据库的自动构建方法流程图;图2为本申请一个实施例的圆柱绕流模型结构示意图;图3为本申请一个实施例的圆柱绕流模型网格图;图4为本申请一个实施例的自动生成结果示意图;以下对附图作补充说明:201-流体入口;202-圆柱;203-墙面;204-流体出口。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。python作为一门高级的面向对象的语言,得到越来越多的应用,在调用文件和修改文件方面的能力强大,适合用于与其他软件进行耦合开发设计,以获得更好的使用效果,通过读取ansys的各种脚本文件并进行修改,可以大大提高ansys的运行效率。请参见图1,图1为本申请一个实施例的机器学习数据库的自动构建方法流程图,本申请实施例公开了一种机器学习数据库的自动构建方法,包括:建立模型和网格文件;制作fluent脚本文件;制作cfd-post脚本文件;编写python程序,python程序用于读取和修改ansys脚本文件;启动批处理文件运行ansys脚本文件;;通过批处理文件调用并执行fluent脚本文件,fluent脚本文件自动计算求解获得fluent结果文件;通过批处理文件调用并执行cfd-post脚本文件,cfd-post脚本文件自动后处理获得cfd-post结果文件。本申请实施例所述的机器学习数据库的自动构建方法,通过python修改脚本和调用批处理文件,从而实现自动获取不同参数下的cfd仿真结果。对于cfd仿真,ansys的数值模拟能力较强,但是需要繁琐的操作设定基本参数,本发明借助python省去了在获取大量数据时的重复操作,加快了ansys的执行速度,提高了参数设置的正确性和操作的有效性,也省去了人工监督的需求,自动获取各参数下的所有数据。本发明弥补了数据库人工建模周期长、成本高、效率低的不足,节省了大量时间和人力,解决了cfd机器学习数据库的自动构建需求。本申请实施例中,基于cfd数值计算的机器学习数据库自动自动构建方法,利用python实现全部自动化。首先自动修改ansys脚本文件,再创建新的脚本后,启动ansys批处理文件,并运行新建的脚本,最终得到大量不同参数下的结果,并循环以上过程,以此创建数据库。具体的,首先,制作基础文件,建立模型,绘制网格,制作fluent脚本文件和cfd-post脚本文件,编写python程序。然后,运行fluent批处理:利用批处理文件调用并执行fluent脚本,从而实现fluent的自动计算求解,获得fluent结果文件。其技术原理为:python启动fluent批处理文件,运行修改过的fluent脚本文件,加载网格文件,执行新的参数设置,进行运算,生成新的计算结果文件。最后,运行cfd-post批处理:利用批处理文件调用并执行cfd-post脚本,从而实现cfd-post的自动后处理,获得cfd-post结果文件。其技术原理为:python启动修改过的cfd-post脚本文件,导入fluent结果文件,再进行新的参数设置及生成后处理文件并保存。建立模型和网格文件,包括:通过ansys中的icem软件建立基础模型;在基础模型上进行的网格划分;将网格划分后的基础模型保存为.msh文件。制作fluent脚本文件,包括:启动fluent脚本录制;将.msh文件导入;对.msh文件进行基础参数设置;将计算结果保存为.cas文件和.dat文件;结束fluent脚本录制并生成.jou文件。制作cfd-post脚本文件,包括:启动cfd-post脚本录制;将.cas文件导入;对.cas文件进行设置,定义后处理对象和变量;生成后处理文件,后处理文件为.png图片或.csv文件;导出后处理文件;结束cfd-post脚本录制并生成.cse文件。编写python程序,包括:编写python代码;建立fluent脚本文件和cfd-post脚本文件的连接接口;修改ansys脚本文件,使每次运行ansys脚本文件计算不同参数结果,实现启动批处理文件的功能。方通过批处理文件调用并执行cfd-post脚本文件之后,还包括:建立循环,每次循环调用fluent脚本文件、cfd-post脚本文件和批处理文件,得到fluent结果文件和cfd-post结果文件;根据全部的fluent结果文件和全部的cfd-post结果文件生成数据库。启动ansys脚本文件中的批处理文件之前,还包括:运用python程序读取和修改ansys脚本文件;运用python程序读取ansys脚本文件的命令为:f=open('cylinder.jou',"r+",encoding='utf-8'):其中,f=open():打开文件;'cylinder.jou':fluent脚本的文件名,名称为cylinder,后缀为.jou;"r+":以读写的方式打开文件;encoding='utf-8':编码格式。fluent脚本文件的语句为:(cx-gui-docx-set-real-entry-list"velocityinlet*frame3*frame1(momentum)*table1*table8*realentry2(velocitymagnitude)"'(5)):fluent脚本文件,定义进口边界速度为5;cfd-post脚本文件的语句为:hardcopyfilename=d:/rl/post/data/cylinder5.png:cfd-post脚本文件,保存云图语句;d:/rl/post/data/cylinder5.png:路径为d:/rl/post/data,文件名为cylinder5.png。通过批处理文件调用并执行fluent脚本文件,fluent脚本文件自动计算求解获得fluent结果文件,其中,运行fluent批处理方法和fluent批处理文件包括:启动fluent命令为:proc=subprocess.popen('fluent.bat'):使用subprocess模块中的popen启动文件名为fluent.bat的批处理文件;并将程序的返回值赋给proc;fluent批处理文件内容包括:"c:\programfiles\ansysinc\v180\fluent\ntbin\win64\fluent.exe"2d-t2-icylinder.jou;其中,"c:\programfiles\ansysinc\v180\fluent\ntbin\win64\fluent.exe":fluent软件的应用程序路径;2d-t2-i:2d”表示2d求解器,"t2"表示用两个核心进行并行计算;cylinder.jou:fluent脚本文件的名称。通过批处理文件调用并执行cfd-post脚本文件,cfd-post脚本文件自动后处理获得cfd-post结果文件,其中,运行cfd-post批处理的方法和cfd-post批处理文件包括:启动cfd-post命令为:os.system(r'post.bat')其中,os.system:用os模块启动程序;r:启动类型为只读;post.bat:cfd-post批处理文件的名称;cfd-post批处理文件内容包括:"c:\programfiles\ansysinc\v180\cfd-post\bin\cfdpost.exe"-sessioncylinder.cse其中,"c:\programfiles\ansysinc\v180\cfd-post\bin\cfdpost.exe":cfd-post的应用程序路径;cylinder.cse:cfd-post脚本文件的名称。基于上述描述,下面介绍一种具体的实施方式:首先构建初始模型,图2为本申请一个实施例的圆柱绕流模型结构示意图,如图2所示,左端边界为流体入口201,右端为流体出口204,中间圆为圆柱202,上下边界为墙面203,水流从入口进入,在流场中受到圆柱202的影响,造成流场速度的分布差异。为了自动构建圆柱绕流数据库,采用如下技术方案:基于cfd数值计算的机器学习数据库自动自动构建方法,利用python实现全自动。首先自动修改ansys脚本文件,启动ansys批处理文件,并运行新建的脚本,最终得到大量不同参数下的结果,并循环该过程,以此创建数据库。首先制作基础文件,建立模型,绘制网格,制作fluent脚本文件和cfd-post脚本文件,编写python程序。图3为本申请一个实施例的圆柱绕流模型网格图,如图3所示,建立模型及网格:通过ansys中的icem软件建立基础模型,然后在建立的模型上进行合适的网格划分,保存为.msh文件。制作fluent脚本文件:通过fluent启动脚本录制,导入建立的icem网格模型.msh文件,对模型进行基础参数设置,并将计算结果保存为.cas文件和.dat文件,结束脚本录制并生成.jou文件。制作cfd-post脚本文件:通过cfd-post启动脚本录制,导入fluent求解得出的.cas文件,进行设置,定义后处理对象和变量,生成后处理文件,.png图片或.csv文件,导出结果文件,结束脚本录制,并生成脚本.cse文件。编写python代码,建立以上文件的连接接口,并修改脚本,使每次运行ansys计算不同参数结果,实现启动批处理文件的功能,建立循环,反复调用脚本和批处理文件,从而生成大量结果文件。运用python读取ansys脚本文件的命令如下:f=open('cylinder.jou',"r+",encoding='utf-8'):f=open():打开文件;'cylinder.jou':fluent脚本的文件名,名称为cylinder,后缀为.jou;"r+":以读写的方式打开文件;encoding='utf-8':编码格式。fluent脚本语句示例:(cx-gui-docx-set-real-entry-list"velocityinlet*frame3*frame1(momentum)*table1*table8*realentry2(velocitymagnitude)"'(5)):fluent脚本文件,定义进口边界速度为5。通过对速度的修改,使得每次循环中仿真的参数变化,从而得到不同的结果。cfd-post脚本语句示例:hardcopyfilename=d:/rl/post/data/cylinder5.png:cfd-post脚本文件,保存云图,文件名为cylinder5.png。每次重新定义保存的文件名,防止文件覆盖。运行fluent批处理:利用批处理文件调用并执行fluent脚本,从而实现fluent的自动计算求解,获得fluent结果文件。技术原理:python启动fluent批处理文件,运行修改过的fluent脚本文件,加载网格文件,执行新的参数设置,进行运算,生成新的计算结果文件。启动fluent命令如下:proc=subprocess.popen('fluent.bat'):使用subprocess模块中的popen启动文件名为fluent.bat的批处理文件;并将程序的返回值赋给proc;fluent批处理文件内容如下:"c:\programfiles\ansysinc\v180\fluent\ntbin\win64\fluent.exe"2d-t2-icylinder.jou其中各参数具体内容如下:"c:\programfiles\ansysinc\v180\fluent\ntbin\win64\fluent.exe":fluent软件的应用程序路径。2d-t2-i:2d”表示2d求解器,"t2"表示用两个核心进行并行计算。cylinder.jou:fluent脚本文件名称和格式。运行cfd-post批处理:利用批处理文件调用并执行cfd-post脚本,从而实现cfd-post的自动后处理,获得cfd-post结果文件。技术原理:python启动修改过的cfd-post脚本文件,导入fluent结果文件,再进行新的参数设置及生成后处理文件并保存。①启动cfd-post脚本如下:os.system(r'post.bat')os.system:用os模块启动程序;r:启动类型为只读;post.bat:cfd-post批处理文件的名称和后缀名。cfd-post批处理文件内容:"c:\programfiles\ansysinc\v180\cfd-post\bin\cfdpost.exe"-sessioncylinder.cse其中各参数的具体内容如下:"c:\programfiles\ansysinc\v180\cfd-post\bin\cfdpost.exe":cfd-post的应用程序路径cylinder.cse:cfd-post的文件名和格式。图4为本申请的一个实施例的自动生成结果示意图,如图4所示,在完成以上操作后,启动python代码文件,将会自动创建所有需要的结果文件。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1