赵书彬,徐诚,蒋弘毅,步春辰
(南京理工大学 机械工程学院,江苏 南京 210094)
产品族设计以及基于平台的产品开发已在过去20年得到广泛研究[1]。产品族可以视为一组共享许多共同功能和组件的产品,但各个产品又有各自特定的规格,以满足客户的不同需求。产品族设计需要在规划阶段通过对市场考察、客户需求分析,考虑产品的工程属性,完成基于共性需求的产品通用部件设计,采用面向产品族的设计思路进行产品开发。为了实现基于通用部件的产品族设计,模块化以及基于模块的知识建模是其中的重要研究内容[1-2]。
在枪械设计领域,由于枪械的功能结构较为固定,近年来模块化设计成为国内外枪械研制的主要趋势[3]。借鉴产品族设计的流程,枪族产品模块化设计规划也大致分为枪族定义阶段和模块设计阶段两个阶段。前者需要完成的任务是枪族系列、模块的划分以及基本参数的确定,后者需要完成各个模块的详细设计。模块化枪族在设计方面能够最大程度地实现以往设计知识、经验的重用,在作战效能方面能够实现灵活的模块转换、互换,各国的模块化枪械正在大力发展中。国内模块化枪族研究尚处于起步阶段,尤其是未能结合知识建模以及有效的智能求解策略,形成一套完整的、高效的枪族设计方法和软件平台。
智能化辅助设计是指通过引入知识工程、推理技术、检索技术、机器学习等理论和方法解决设计中的建模、推理和评价等问题[4]。由于枪械的设计很大程度上是对以往设计案例的重用、基于某个流程的计算模型分析或者依据某些经验规则进行推理、判断,实现智能化辅助的产品设计是必然趋势,而知识表示是实现智能化设计的基础。面向对象的方法因其具有封装性、模块性、继承性、易于维护和扩展的优点,广泛用于信息系统的开发中[5-6]。
本文结合面向对象的知识表示方法和专家系统推理技术[7-8]、机器学习算法,针对枪族设计的特点以及自动化、智能化需求,提出适用于枪族智能化辅助设计两个阶段的求解策略,以提高枪族设计的质量和效率。
根据枪族设计特点,本文拟用的基于模块化枪族智能化辅助设计流程与求解策略如图1所示。
图1 枪族智能化辅助设计总体流程
在枪族设计的枪族定义阶段,需要根据相应的性能及功能指标完成枪族系列的划分。弹丸的终点效应是评价枪械性能的重要指标,因此一般从终点效应计算出发,结合内外弹道分析,完成枪族定义阶段的指标论证。冉景禄等[9]通过外弹道、内弹道参数的求解,表明模块化枪族采用不同枪管形成短步枪、步枪、轻机枪、狙击步枪等能够满足其相应的射程及侵彻威力需求。但在传统的求解过程中,多采用经验公式或结合大量实验方法求解其中的变量,在得出结果后仍需结合专家经验对其进行修正或者再次进行内外弹道验算,这个过程往往费时费力。因此,俞立[10]、羊柳等[11]在产品参数预测中采用机器学习算法进行求解。本文提出在枪族定义阶段,采用有监督学习方法对已有设计数据进行回归分析与预测的求解策略。以步枪、短步枪、班用机枪为研究对象,以战术技术指标作为输入、枪族系列产品的主参数(枪管长度、全枪重)作为输出进行训练,以期在获得新的战术技术需求时,能够对主参数进行求解,作为枪族设计的参考。
枪族模块划分任务是对族内共享的通用模块和满足特殊定制要求的专用模块加以区分,并制定模块间的接口方案。本文的求解策略为:借鉴国内外成熟的模块化枪械模块划分经验以及先前的研究成果[3,12],对枪族的专用模块、通用模块、拓展模块分别进行划分,提取分类方案模板。对该阶段确定的模块划分、接口方案以及各个模块的基本参数,应采用知识模板的形式存储于系统中,对设计知识的组织形式以及设计过程起到约束、规范的作用,并为将来的设计提供参考。
在枪族设计的模块设计阶段,设计任务转变为面向每个模块的选型、匹配和参数设计。为了快速、准确地设计出满足设计需求的枪族产品,本文提出采用基于实例推理、规则与计算推理相结合的混合推理求解策略。其中实例推理的相似性检索采用基于距的计算方法[13],同时引入枪族模块间的接口方案,形成适用于枪族设计的综合实例推理方法。在确定各模块的设计参数时,利用现有设计规则与计算的交叉推理方法对参数设计进行主动的、被动的约束[14]。针对枪械设计领域存在的形式多样的设计知识,在产生式规则基础上进行了补充,将较复杂的计算流程与模型以设计计算程序、校核计算的形式进行代码编写,并存储于知识库中。而针对语义丰富的、数据量大的文本型知识,采用问答系统技术进行处理,在预训练基础上实现对设计者提问的自动解答。在模块组合与装配时,结合枪族定义阶段导引获得的方案,基于参数化计算机辅助设计(CAD)模块库,完成枪族设计方案的参数化CAD建模与装配任务。
根据枪族智能化辅助设计的现实需求,本文拟开发的软件系统总体结构框架如图2所示。系统由知识模板、随机森林回归算法、混合推理模机、问答系统和各种类型的知识库等组成。其中混合推理模块由实例推理、规则推理、设计与校核计算推理三部分构成。系统各功能模块分别支持枪族设计各个阶段的求解策略,实现智能化辅助设计。
图2 枪族智能化辅助设计系统总体框架与流程控制
知识是实现智能快速设计的基础[15]。在信息时代,设计者面对的原始数据和知识是海量的,只有合理的、易于计算机系统识别的知识表示才能帮助设计者从数据和知识中进行筛选,并实现有效的知识重用。随着人工智能研究的发展,知识表示方法呈现多样性:产生式规则[15]、面向对象的[16-17]以及本体表示[18]等。除了自动化、结构化,知识表示方法还应考虑到下游设计过程的知识重用方式,结合工程实际应用完成知识的概念建模。本文根据混合推理的需要,采用面向对象的知识表示方法对产品模块实例、各种形式的设计规则、设计计算进行封装,并在系统设计中考虑各个实例化对象之间的参数传递,以保证其在设计流程前后的一致性,提高枪族设计的自动化程度。以统一建模语言(UML)模型表示的面向对象知识表示框架图如图3所示。
图3 UML模型表示的面向对象知识表示框架
3.1.1 模块划分及接口方案知识模板的生成
本文研究对象为5.8 mm/7.62 mm口径枪族,包含步枪、短步枪和班用机枪。除枪管长度及全枪重以外,枪族其他主方案结构表达包括导气式自动方式、枪机回转式开闭锁方式、弹匣供弹方式以及击锤回转式发射机构。针对不同枪种采用不同长度的枪管,以分别满足其射程及侵彻威力的需求,并尽量保持枪族结构外形一致性。针对不同的口径,枪族设计模块包含枪管、机头、供弹具等专用模块;其中针对不同口径的弹匣尺寸,枪族还应设计有弹匣转换模块。针对短步枪、步枪和班用机枪的特点,借鉴国内外成熟的模块化枪械模块划分经验以及先前的研究成果[3],对模块化枪族采用如图4所示划分方案模板,其中弹匣转换模块的三维模型如图5所示,并制定了模块间的接口方案如表1所示。该接口方案将在模块选型与匹配计算中被计入,影响实例方案的选择。模块划分方案、接口方案以及各个模块的基本设计参数,在软件系统后台均以可拓展标记语言(XML)文件的形式编写为知识模板。在实际设计过程中,这些模板文件将被软件系统调用,或作为参考进行修改、补充,进而对枪族知识库的组织、查询形式,以及枪族模块化设计过程起到规范、制约的作用。
表1 枪族模块接口定义
图4 枪族模块划分方案
图5 弹匣转换模块CAD模型
3.1.2 基于随机森林算法的主参数计算
如第1节中枪族定义阶段的指标论证相关内容所述,不同枪种的射程及侵彻威力需求主要通过枪管长度的设计来满足。传统的枪族主参数求解往往要经过侵彻威力需求、枪弹参数→终点效应分析→外弹道计算→内弹道计算→枪管长度的流程,最终根据规整化的枪管长度和子弹出膛速度再次进行全弹道计算,验证是否满足有效射程和侵彻威力要求。这个计算过程复杂,耗时费力。
随机森林算法[19]是一种在没有太大运算量前提下具有较高拟合精度的典型集成学习算法,作为决策树算法的改进,其对于样本量较少、样本稀疏的情况不容易陷入过拟合,且对于有噪声的数据集具有很好的适应能力,广泛应用于各种数据分类和非参数回归问题中[20]。本文拟采用随机森林算法,以战术技术指标为输入,以枪族系列产品的主参数枪管长度、全枪重为输出进行有监督训练。
在特征选择上,依据对终点效应及内外弹道计算的分析,排除中间变量,选取特征口径d(mm)、射程r(m)、初速v0(m/s)、枪口动能E(J)、最大膛压p(MPa)、枪械种类C作为输入,以及主参数枪管长度l(mm)、全枪质量m(kg)为输出。经过对国内外枪械设计数据的搜集,共整理相关数据76组,部分样本如表2所示。
表2 随机森林算法的有监督训练样本(部分)
随机森林算法的基础是分类回归树(CART)决策树算法,设有训练集{(x1,y1),(x2,y2),…,(xi,yi),…,(xN,yN)},N为训练样本个数,则随机森林回归算法的步骤如下:
1)对每一棵CART,用Bootstrap法从N个训练样本中以随机、有放回抽样的方式取样N次,形成该树的训练集D.
2)指定特征数目q,q≪M,M为样本的特征数,从M个特征中随机抽取q个形成特征子集A,选择最优的切分点L进行本次分裂,该切分点使得对于特征集A和切分成的两个数据集D1和D2各自的均方差最小,同时D1和D2的均方差之和最小,即
(1)
式中:c1为D1数据集的样本输出均值;c2为D2数据集的样本输出均值。
3)每棵树尽最大可能生长,不进行剪枝。
4)根据叶子节点的均值确定该树的预测值,根据所有树预测值的平均值确定随机森林的预测值。
在实验中,以7∶3的比例切割样本集分别进行训练和测试,并采用适用于回归模型的R2值来评判模型的拟合程度。R2值使用均值作为误差基准,计算预测误差与均值基准误差相比较的大小关系,公式如下:
(2)
实验过程中可以发现,尽管采用了随机森林算法,但由于可搜集的实验样本较少,枪管长度、全枪重的计算结果不可避免地存在过拟合。经过参数调整,枪管长度在训练集和测试集上的R2值分别为0.94和0.85;全枪重在训练集和测试集上的R2值分别为0.93和0.82.以5.8 mm口径为例的不同枪种枪族定义阶段主参数预测结果如表3所示。近似地取步枪、短步枪、班用机枪的枪管长度为440 mm、333 mm、556 mm,7.62 mm口径枪械的枪管长度通过该算法可以同样获得。
表3 随机森林算法预测结果
针对需求,本文采用产生式规则推理、基于实例推理和设计、校核计算相结合的混合推理方法,完成基于模块的枪族结构设计任务,其流程如图6所示。设计者基于参数计算与问答系统提供的知识参考完成基本参数的初步设计后,由系统自动判断是否满足规则约束;根据基本参数完成模块实例的索引和推理后,基于计算校核完成实例的修改。在后续的枪族参数化CAD模型生成中,同样需要校验模块的组合与装配是否满足相应的设计规则,如人机工效规则等,否则需进一步进行实例修改。
图6 混合推理流程
3.2.1 设计规则与计算交叉推理方法
枪族设计进入模块详细设计阶段后,系统的智能化辅助设计功能主要依赖混合推理机及其相应的知识库来完成。以产生式规则来表示工程设计中的知识单元之间的因果关系[7,15,21],符合设计者的思维方式,是一种方便有效的方法。在产生式表示方法中,规则前提与结论中的知识单元是多样的,它可以是事实陈述、用逻辑运算符连接的事实组合或者简单的数学运算等。尽管如此,产生式规则所能表示的知识复杂程度仍是有限的。例如,当前提和结论是复杂的公式运算时,规则库的封装和使用、规则的检索和重用将会变得困难。针对以上问题,本文提出对不同复杂程度的设计知识采取不同的处理方法,在设计规则与计算知识库的基础上形成设计规则与计算的交叉推理方法,如表4所示。实验和原型系统建立中所采用的各种形式设计知识均来自于中国知网CNKI数据库和南京理工大学自动武器数据库。
表4 不同类型工程知识的推理方法
在设计规则与计算交叉推理的具体实现方面,考虑设计过程中知识重用的主动或者被动[14]两种方式。判断规则和较简单的规则经过产生式形式化表达以及系统能够自动、实时处理的语言编写,在设计中能够根据设计者的输入自动触发,判断参数设计是否满足规则约束;提供参数设计与校核的复杂计算过程,则采用C#语言编程、单独设计界面的方式编写在系统中,并由设计者自行调用。
3.2.2 综合实例推理
实例推理是一种将以往设计实例用于现有需求的快速设计方法。实例的匹配是推理过程中的核心任务,而合理的相似度衡量方法是进行有效匹配的基础。与枪族模块划分及其接口方案相对应,实例的匹配除了计算各个模块之间的相似性[8],还应考虑模块与模块之间的接口问题,将其计入枪族实例匹配的总体相似度计算中。
考虑两个模块对于同一属性的取值v1、v2,在工程设计问题中它们通常属于以下4种情况:
1)都是数值,则它们之间的相似度为
(3)
2)都是数值区间,且v1∈(V1,V2)、v2∈(V3,V4),其中V1、V2、V3、V4为常数,则
(4)
3)都是枚举型或布尔型[8],则
(5)
4)一个是数值、一个是区间,则
(6)
在属性相似度基础上计入不同属性的权重,模块之间的相似度为
(7)
式中:P为该模块具有的属性个数;wp为各属性的权重;sp为属性相似度。计入模块与模块之间的接口差异度D,则枪族实例的总体相似度为
(8)
在枪族模块化设计过程中,问答系统主要用于快速获得设计信息,为设计者推送知识和答疑解惑。本文使用适用于中文的、在BERT模型[22]基础上改进的RoBERTa[23]中文预训练词向量模型,根据问答任务进行微调,使原本只能对小段落文本进行提问的模型能够针对大量文本自动寻找最佳匹配段落,并回答问题。在问答训练库方面,考虑到工程设计者的提问方式、工程文本的语法习惯与通用库的不同,在现有问答库[24]基础上补充了一部分枪械相关语料(约2 000个问答对)。
BERT模型在结构上引入Transformer的“注意力”(Attention)机制[25],借助若干个编码器处理输入的文本序列,学习其中单词与上下文文本的关系。对应于问答任务,在模型最后一层的输出结果后增加一个全连接层,输出答案所在的位置。与其他模型不同的是,BERT模型在输入方面使用遮蔽语言模型(Masked LM)随机抹去一个句子中的某些词进行双向训练,增强模型的情境意识;使用下一句预测(NSP)机制实现句子级别的语义训练。采用这两种机制BERT模型能够在中文自然语言处理(NLP)任务中获得优于其他模型的准确率、召回率[26]。RoBERTa模型则针对BERT中文模型中视字为构成文本的基本单位问题,在分词基础上采用全词遮蔽,在中文NLP任务中取得了更好的表现。在枪族问答系统的实现中,本文针对大文本,采取先进行文本切割、计算问题与切割段落词向量矩阵之间的欧式距离,从最相似3个段落中抽取答案的方式,弥补原本BERT模型只能对小段落文本进行问答的缺点。总体任务流程示意图如图7所示。
图7 问答系统任务流程示意图
实验在NVIDIA TITAN Xp GPU(12GB RAM)环境下进行。为避免内存不足问题,更改训练批量大小train_batch_size为12,其他参数设置如下:最大输入序列长度max_sequence_length为200,初始学习率learning_rate为0.000 03,训练迭代次数num_train_epochs为2.0,最大问题长度max_query_length为64,最大答案长度max_answer_length为30.模型训练在测试集上取得的成绩(平均)F1为83.5,EM为70.4.部分问答结果示例如表5所示。
表5 问答系统部分实验结果展示
在系统的总体结构层面,本文使用C#语言进行原型系统的开发,将不同功能组件封装成应用程序拓展(DLL)文件,并在系统中实现集成调用。系统中所需使用的知识模板以及各个功能组件的用户端配置文件等,统一用XML语言进行书写,并在系统中使用C#语言进行解析。将以知识模板为依据的、面向模块的知识组织形式称为知识模块。图8所示为枪管知识模块与枪族总体知识模板、枪管模块智能化设计功能界面之间的关系。以知识模块作为知识组织的单位,采用图3所示的知识表示框架组织相关知识。系统需要调用的机器学习算法,如随机森林回归算法及BERT模型等,则另用Python语言进行编写,并在系统中提供相应的调用接口;系统同时还提供了UG NX三维建模软件的接口。
图8 枪管知识模块以及枪管模块智能化设计功能界面
在混合推理流程的实现层面,判断规则和较简单的规则依赖IF…THEN语句以及逻辑运算符的组合和嵌套完成,并在后台由推理机解析。例如对于规则“枪托抵肩端面到扳机的距离不小于310 mm且不大于340 mm”和“步枪的全枪长不得长于970 mm,冲锋枪的全枪长不得长于750 mm”,分别书写为IF(AND(E15<=340,E15>=310),TRUE)、IF(AND(E6="步枪",E14<=970),TRUE,IF(AND(E6="冲锋枪",E14<=750),TRUE,FALSE)),其中E15、E6等为软件界面的单元格编号。复杂的设计、校核计算则编程为独立的用户界面由系统调用。图9所示为枪管强度校核计算界面,其校核结果将直接返回至图8所示面板的相应单元格中。问答系统的接口由软件系统与后端的异步通信完成,流程为前端发送问题→后端接收问题,计算并返回答案→前端接收并显示答案,前端用户界面如图10所示。以7.62 mm口径步枪各模块的设计为例,完整的综合实例推理输入、输出参数界面如图11(a)所示。其中:专用模块可单独进行推理,以满足不同口径以及其他主参数的定制需求;通用模块由于其在模块化枪族设计、装配中的通用性,应直接参与综合实例推理,确保其接口具有适配性。用户完成13个模块的基本参数输入后交由推理机运算,并在图11(b)所示的考虑到接口问题的相似度运算结果中挑选符合设计要求的案例组合,输出参数结果返回至图11(a)界面。在完成枪族各个模块参数的详细设计后,参数化CAD模型装配校核界面以及5.8 mm口径(左)、7.62 mm(右)口径的短步枪、步枪、班用机枪的装配模型输出结果分别如图12(a)、图12(b)所示。
图9 枪管强度校核计算界面
图10 枪族设计知识问答系统用户界面
图11 枪族综合实例推理用户输入输出界面
图12 5.8 mm/7.62 mm口径步枪三维模型校核界面与模型生成
枪族模块化设计是当前国内外枪械设计的热门领域,其设计过程的智能化、计算机辅助化对节约设计成本、提高设计质量具有至关重要的意义。本文在现有研究基础上,提出枪族定义阶段、模块设计阶段两大阶段的枪族模块化设计流程和求解策略;发展了实例推理、规则与计算交叉推理相结合的枪族模块混合推理技术、基于随机森林算法的枪族系列产品基本参数估计技术以及基于BERT模型的问答系统技术,提高了模块化枪族设计过程的智能化、自动化程度。通过软件原型系统的建立以及枪族设计案例研究,证实了所提出方法与流程的有效性。