一种基于产品族脚本的推导规则自动生成方法与流程

文档序号:17161473发布日期:2019-03-20 00:47阅读:267来源:国知局
一种基于产品族脚本的推导规则自动生成方法与流程

本发明涉及有限元模型的参数化技术、正则文法等技术领域,具体涉及一种基于产品族脚本的推导规则自动生成方法。



背景技术:

有限元分析(fea,finiteelementanalysis)是利用数学近似的方法对真实物理系统(几何和载荷工况)进行模拟的过程。现代产品设计已经离不开有限元分析,它是提升产品质量和缩短设计周期的有效技术手段。随着计算机技术的快速发展,有限元分析也已经在航天、汽车、机械制造、船舶和特种装备等领域广泛使用。有限元分析过程一般包括三个步骤:前处理、加载求解和后处理。常用的有限元分析软件,如ansys、abaqus、msc等,在解决实际问题中起到了关键作用,能够有效提高企业研发设计能力。

fea的主要工作是构建fea模型,fea模型包括了被分析几何模型的形状尺寸、受力情况等信息,fea模型构建完成之后即可进行求解并得到分析结果。工程中的fea工作需要由专业的分析人员来完成,在有限元分析的过程中,有限元软件会自动记录分析人员的每步操作,形成fea脚本。有经验的分析人员常通过编辑fea脚本的方法来构建fea模型,从而达到快速分析的目的,这种方法被称为fea参数化技术。常见的fea参数化技术有以下几种:1)模板重用,如四川大学殷国富等(.基于web的远程有限元分析服务系统[j].中国机械工程.2004,15)构建了基于web的远程有限元分析服务系统,将前人做过的案例放进数据库里,用户传进需求时,系统会根据输入检索出用户想要的模板或者方案;2)脚本替换,如西安电子科技大学孔宪光等(rapidintegratedparametriccaemodelingmethodoflinearvariabledifferentialtransformerbasedonascripttemplate,2015,advanceinsoftwareeginnering)提出在fea脚本中插入标志符,将两个标志符之间的脚本替换来构建新fea模型的方法;3)模板参数化,如太原理工大学王学文等(studyoncloudsimulationcaeservicesystemforminingmachineryequipment[j].journalofmechanicalengineering.2013,49(19):111.)提出对模板做参数化处理,并形成模板数据库,当用户有需求时从数据库中调取模板,传入参数形成新的模型;4)专家系统,如厦门大学侯亮等(基于网络的有限元分析专家系统[j].计算机集成制造系统.2008,14)提出一种通过构建领域专家系统和需求表达机制来生成fea模型的方法,将用户的需求输入系统,系统根据专家知识来构建fea模型。

然而,fea模型与几何模型紧密耦合,上述方法中的每个fea模型只针对一个几何模型构建,在几何模型的结构发生变化时,上述方法就不再适用。为解决该问题,可以采用面向产品族的fea模型自动生成方法,该方法利用推导规则来自动生成fea脚本,能够完成对相似结构的几何模型(产品族几何模型)的有限元分析。该推导规则是根据产品族所有几何模型的fea脚本构建的,因此当输入的几何模型发生变化时,仍然能从推导规则中推导出fea脚本,从而构建fea模型。然而以上方法中的推导规则是人工设定的,这使得该方法的智能化和自动化程度还存在不足。为了能自动产生推导规则,本发明设计了根据产品族fea脚本来自动生成推导规则的方法。



技术实现要素:

针对现有技术中存在的上述问题,为了能自动生成不同产品族的推导规则,本发明的目的在于提供一种基于产品族脚本的推导规则自动生成方法。

所述的一种基于产品族脚本的推导规则自动生成方法,其特征在于利用fea建模知识构建fea本体,同时收集产品族内各个产品的fea脚本,建立产品族fea脚本库,将产品族fea脚本库中的所有fea脚本输入fea本体,以fea本体为根据,从产品族fea脚本中将有限元分析过程转化为fea文法,即自动生成推导规则。

所述的一种基于产品族脚本的推导规则自动生成方法,其特征在于包括如下步骤:

1)构建fea本体

利用fea本体来描述fea过程,所述fea本体是对特定领域之中某套实体及其相互之间关系的形式化表达,fea本体为三元组,表示为o={c,r,is-a},其中,c={c1,c2,…,cn}是fea过程各个实体的实体集,每个实体cn都有唯一明确的定义;r是实体间的约束关系集,包含或、和;is-a是实体之间的从属关系集,is-a定义的关系只能从上级实体指向下级实体;

所述fea本体构建过程如下:1)将fea过程拆分为前处理、加载求解和后处理三个阶段,将三个阶段分别向下进一步拆分成fea阶段、功能设置,fea阶段继续拆分为功能设置;2)将拆分后的fea阶段、功能设置等定义为实体c;3)将各fea阶段之间、fea阶段与功能设置之间的包含结构定义为从属关系is-a;4)实体间的约束关系定义为r:如果同属于一个上层实体的下层fea阶段或功能设置能够同时出现,则将它们的关系定义为“和”,如不能同时出现,则将它们的关系定义为“或”;5)将步骤2)、步骤3)及步骤4)的定义生成fea本体;

2)建立产品族fea脚本库

收集产品族的fea脚本,形成产品族fea脚本库;

3)生成产品族fea文法

以fea本体为根据,从步骤2)的产品族fea脚本库中提取实体及实体之间的关系,然后将提取得到的实体、实体关系等转化成推导规则,并用正则文法来描述推导规则,转化产品族fea文法。

所述的一种基于产品族脚本的推导规则自动生成方法,其特征在于步骤3)的生成产品族fea文法具体包括如下步骤:

3.1)文法

文法g为描述了给定语言的句子集合,该正则文法定义为四元组,即g={vn,vt,p,s},其中,vn表示非终结符集;vt表示终结符集;p是产生式集合,包含了a→α的产生式,a→α表示a用α进行替换,并且a属于vn中的一个元素,α包括了vt或vn中的若干元素,vt中的元素是语言中句子的组成要素,s为开始符号,所有脚本的推导均从s开始进行;将产品族fea脚本库中所有fea脚本定义为语言l,一个脚本为语言l中的一个句子,将fea过程中的前处理、加载求解和后处理等fea阶段定义为非终结符,将前处理中的单元类型、材料参数、实常数定义等功能设置定义为终结符,fea阶段之间、fea阶段与功能设置之间的从属关系为产生式;

3.2)构建算法

算法执行过程如下:1)读取fea脚本并提取其中的关键字,其中每个关键字对应一个功能设置;2)在fea本体中寻找与1)中关键字对应的实体,作为下层实体;3)从步骤2)得到的下层实体开始,依次寻找与该下层实体存在从属关系的上层实体;4)将步骤3)中得到的上层实体及下层实体关系转换成文法;

3.3)程序实现

用python编程语言实现步骤3.2)的算法,利用python语言中的数据可视化工具pydot来绘制文法的结构图,实现推导规则自动生成。

所述的一种基于产品族脚本的推导规则自动生成方法,其特征在于步骤3.3)程序实现的具体过程如下:

3.3.1)数据准备

fea脚本为有限元软件对于每个fea过程的记录,每个功能设置都有其对应的关键字,提取关键字即为提取了该fea脚本的所有功能设置;

将整理好的产品族fea脚本放在同一个文件夹下,在程序中建立列表list0来存储实体,list0中元素形式如下:[0,实体]或[1,实体],其中,0代表该实体与同级实体间的关系为“和”,1则代表该实体与同级实体间的关系为“或”,建立字典dict1来存储fea本体,dict1中的键值对记录实体及实体之间的is-a关系;建立字典dict2来存储关键字和实体的对应关系;

3.3.2)读取文件获得关键字

利用python中的os工具包依次读取文件夹中的fea脚本,将fea脚本逐行读入,去除空格、换行符,按照逗号来分割fea脚本的每行,得到关键字,建立列表list1来存储关键字;

3.3.3)利用关键字得到实体及实体关系

将list1去掉重复项后得列表list2,以list2为输入,从dict2中获取关键字对应的实体,将获取的实体存储在列表list3中,以list3为输入,从dict1中依次查找各下层实体及上层实体,将得到的所有实体记录在双层列表list4中,list4中的元素形式如下:[c1,c2,c3,…,ck-1,ck,…,cn],其中ck-1从属于ck;

3.3.4)将list4转化成文法、绘制文法树

a.利用python语言编写程序实现数据转化;遍历list4,依次按照终结符cn、cn-1…c2将元素分类、存储,统计具有共同上级的实体,最终将实体数据整理成一个嵌套结构的字典,具体形式如下:dict_fina={s:[{cn:{cn-1:{…c2:[…]}}},{…},,,[…],]},其中,s代表最上层实体,中括号[]里的内容为从属于s的所有子实体;

b.利用python语言编写程序将dict_fina转换成文法,利用python语言中的数据可视化工具pydot来绘制文法的结构图,实现推导规则自动生成,其中关系为“或”的实体用虚线,关系为“和”的实体用实线。

通过采用上述技术,与现有技术相比,本发明的有益效果如下:

本发明通过采用面向产品族的fea模型自动生成方法,用推导规则来自动生成fea脚本,能够完成对相似结构的几何模型(产品族几何模型)的有限元分析,所生成的推导规则是根据产品族所有几何模型的fea脚本构建的,因此当输入的几何模型发生变化时,仍然能从推导规则中推导出fea脚本,从而构建fea模型,该方法在几何模型的结构发生变化时仍能适用。

附图说明

图1为本发明方法的工作流程图;

图2为压力容器fea本体结构图;

图3为本发明封头产品族fea脚本库;

图4为本发明法兰产品族fea脚本库;

图5为封头产品族文法树;

图6为法兰产品族文法树;

图7为封头产品族fea文法示意图;

图8为法兰产品族fea文法示意图;

图9为文法生成算法示意图。

具体实施方式

以下结合说明书附图对本发明作进一步的描述,但本发明的保护范围并不仅限于此:

如图1-9所示,本发明的基于产品族脚本的推导规则自动生成方法,它是利用fea建模知识构建fea本体,同时收集产品族内各个产品的fea脚本,建立产品族fea脚本库,将产品族fea脚本库中的所有fea脚本输入fea本体,以fea本体为根据,从产品族fea脚本中将有限元分析过程转化为fea文法,具体包括如下步骤:

1)构建fea本体

本发明将利用fea本体来描述有fea过程,所述fea本体是对特定领域之中某套实体及其相互之间关系的形式化表达,fea本体为三元组,表示为o={c,r,is-a},其中,c={c1,c2,…,cn}是fea过程各个实体的实体集,每个实体cn都有唯一明确的定义;r是实体间的约束关系集,包含或、和;is-a是实体之间的从属关系集,is-a定义的关系只能从上级实体指向下级实体;

本发明的fea本体构建过程如下:1)将fea过程拆分为前处理、加载求解和后处理三个阶段,将三个阶段分别向下进一步拆分成fea阶段、功能设置,fea阶段继续拆分为功能设置,如前处理可拆分为实常数、几何参数、单元类型、材料参数和网格划分五个部分,实常数、几何参数、单元类型和材料参数等功能设置不可再分,网格划分可向下继续拆分成各功能设置,加载求解、后处理的拆分过程与前处理类似;将以上拆分后的结构转化成fea本体,建立的本体如图2所示;图2中,白色方框为fea阶段,灰色方框为功能设置。最上层实体为有限元分析(s),其下三个实线箭头指向三个实体表示有限元分析可以拆分成前处理(pr)、加载求解(ls)、后处理(po)三个分析阶段,每个阶段都必不可少。类似地,pr下的五个实线箭头分别指向实常数(r)、几何参数(mo)、单元类型(et)、材料参数(mp)、网格划分(me),me下的四个虚线箭头分别指向划分方式(ds)、剖分体(dv)、网格控制(wc)、网格细化(re)四个实体,虚线箭头表示四个同级实体不能够同时出现,图中的其他实体和实体之间的连线可做类似说明;

2)收集产品族fea脚本

压力容器是一类特种装备,在我国工业、民用、军工等许多部门,尤其是石油化工行业中,有着重要的作用。压力容器发生事故,不仅容器本身遭到破坏,而且还会直接关系到人员生命安全、环境污染等。为保证压力容器的安全性,需要对压力容器的封头、法兰、裙座等部分进行有限元分析;

本发明以压力容器中的封头产品族、法兰产品族为例,两个产品族主要有限元分析类型有结构分析、热分析、耦合分析等,相应的其脚本也可分为三类。收集两个产品族的fea脚本,建立如图3、图4所示的脚本库,矩形框内的所有内容为一个脚本,如图5和图6所示,脚本中符号“{”)标记的是一个功能设置,下划线“__”标记的为关键字,脚本内的省略号“..….”表示脚本中其他未出现的脚本片段,两个脚本之间的省略号“……”表示未详细展示出来的脚本;

3)脚本推导规则的生成

3.1)文法g为描述了给定语言的句子集合,该正则文法定义为四元组,即g={vn,vt,p,s},其中,vn表示非终结符集;vt表示终结符集;p是产生式集合,包含了a→α的产生式,a→α表示a用α进行替换,并且a属于vn中的一个元素,α包括了vt或vn中的若干元素,vt中的元素是语言中句子的组成要素,s为开始符号,所有脚本的推导均从s开始进行;将产品族fea脚本库中所有fea脚本定义为语言l,一个脚本为语言l中的一个句子,将fea过程中的前处理、加载求解和后处理等fea阶段定义为非终结符,将前处理中的单元类型、材料参数、实常数定义等功能设置定义为终结符,fea阶段之间、fea阶段与功能设置之间的从属关系为产生式;

3.2)构建算法

如图9所示,算法执行过程如下:1)读取fea脚本并提取其中的关键字,其中每个关键字对应一个功能设置;2)在fea本体中寻找与1)中关键字对应的实体,作为下层实体;3)从步骤2)得到的下层实体开始,依次寻找与该下层实体存在从属关系的上层实体;4)将步骤3)中得到的上层实体及下层实体关系转换成文法;

3.3)程序实现

用python编程语言实现步骤3.2)的算法,利用python语言中的数据可视化工具pydot来绘制文法的结构图,实现推导规则自动生成,具体过程如下:

3.3.1)数据准备

fea脚本为有限元软件对于每个fea过程的记录,每个功能设置都有其对应的关键字,提取关键字即为提取了该fea脚本的所有功能设置;

将整理好的产品族fea脚本放在同一个文件夹下,在程序中建立列表list0来存储实体,list0中元素形式如下:[0,实体]或[1,实体],其中,0代表该实体与同级实体间的关系为“和”,1则代表该实体与同级实体间的关系为“或”,建立字典dict1来存储fea本体,dict1中的键值对记录实体及实体之间的is-a关系;建立字典dict2来存储关键字和实体的对应关系;

3.3.2)读取文件获得关键字

利用python中的os工具包依次读取文件夹中的fea脚本,将fea脚本逐行读入,去除空格、换行符,按照逗号来分割fea脚本的每行,得到关键字,建立列表list1来存储关键字;

3.3.3)利用关键字得到实体及实体关系

将list1去掉重复项后得列表list2,以list2为输入,从dict2中获取关键字对应的实体,将获取的实体存储在列表list3中,以list3为输入,从dict1中依次查找各下层实体及上层实体,将得到的所有实体记录在双层列表list4中,list4中的元素形式如下:[c1,c2,c3,…,ck-1,ck,…,cn],其中ck-1从属于ck;

3.3.4)将list4转化成文法、绘制文法树

a.利用python语言编写程序实现数据转化;遍历list4,依次按照终结符cn、cn-1…c2将元素分类、存储,统计具有共同上级的实体,最终将实体数据整理成一个嵌套结构的字典,具体形式如下:dict_fina={s:[{cn:{cn-1:{…c2:[…]}}},{…},,,[…],]},其中,s代表最上层实体,中括号[]里的内容为从属于s的所有子实体;

b.利用python语言编写程序将dict_fina转换成文法,利用python语言中的数据可视化工具pydot来绘制文法的结构图,实现推导规则自动生成。

本发明中,在得到封头、法兰两个产品族的fea脚本库之后,将产品族fea脚本库及fea本体作为输入,利用算法1来生成推导规则,推导规则以文法的形式展示,具体程序运行过程不再详述。最终生成的推导规则结构如图5、图6所示,图中的圆圈表示实体,连线表示实体间的从属关系。生成的推导规则如图7、图8所示。

以图7为例对文法1作如下说明,文法1的起始符为封头有限元分析(s),所有标记大写字母的符号(如pr、po)组成了文法1的非终结符集vn,所有标记小写字母的符号(如mo、et)组成了文法1的终结符集vt,文法1所示的是所有产生式(p)。产生式如“封头有限元分析(s)→前处理(pr)加载求解(ls)后处理(po)”表示前处理可拆分成pr、ls、po三个阶段,每个阶段都必不可少。产生式如“后处理(po)→通用后处理(cp)|特殊后处理(sp)”表示后处理包含通用后处理(cp)或特殊后处理(sp)两种后处理方式,具体采用哪种后处理方式需根据需求确定。其余产生式可作类似说明。图8的说明可以参照图7。

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