基于知识的枪管CAD系统的研究与开发
引 言
枪管是自动武器中最重要的零部件之一,枪管设计是自动武器设计中最基础的一环。当前枪管设计过程中主要是借助一些通用CAD软件完成一些诸如绘图、三维实体建模等方面的工作,计算机对设计人员的辅助作用非常有限,设计的自动化程度很低。为了提高枪管设计中CAD智能化的程度,解决枪管设计自动化的问题,本文采用AI技术和参数化设计技术,对开发基于知识的枪管CAD系统进行了研究和实践。基于知识的系统,是人工智能中最活跃的分支之一,旨在研究利用计算来模仿人类专家的智能活动。在自动武器设计中引入AI技术,目的在于提高自动武器行业中CAD智能化的程度。参数化设计使设计人员通过变动某些参数来更新设计,是基于尺寸驱动,可变化几何图形的技术。
1 基于知识的枪管CAD系统总体结构及其功能
基于知识的枪管CAD系统的总体结构见图1。
图1 基于知识的枪管CAD系统结构示意图
(1) 知识获取模块 用于对知识库中的知识进行修正和更新。其中添加功能可以使专家或用户把自己在设计过程中发现的知识库中所缺乏的相应知识按一定的方式加入知识库;删改功能有来删除不必要的或过时的知识;修改功能则完成对知识不能完全反映设计的本质过程但仍有运用价值的知识更新。通过该模块可以使知识库保持与用户或专家交流,使系统中的知识更趋于合理。
(2) 系统总控模块 用于接受用户输入的最初设计要求。依次调用初始方案设计功能,评价与决策功能以及再设计功能等,通过推理机激活知识库中与之匹配的知识,对设计过程进行推理、运算,把各阶段所得设计结果存入数据库,并通过解释机制向用户显示系统运行情况。
(3) 解释机制 旨在对系统运行过程、运行情况进行说明。采用预置文本的方法,将每一问题求解方式的解释框架采用自然语言事先组织好,插入相应的程序段中。
(4) 知识库与数据库 知识库中存放进行初始方案设计、评估与决策、方案再设计过程所需运用的各种专业知识。这些知识包括经验性知识、原理性知识和常识性知识。数据库中存放设计所需的原始数据、设计过程所产生的中间数据、以及经再设计后的最终数据等。
(5) 图形处理模块 从数据库中读取推理、计算所得出的枪管的参数,并检索公差,然后通过与商用CAD软件的应用程序接口(API—application program interface),来对系统所求得的枪管方案进行二维、三维显示输出。
(6) 分析计算与规整 由枪管设计中需要依据一定的公式、算法进行求解的规模比较大的子程序库组成。除进行分析计算之外,还对计算所得结果进行规整。这类计算主要包括求解内弹道和强度计算及校核等。
2 系统中知识的表示
(1) 枪管设计的特点 枪管设计过程是把设计者的构思、设想转化为现实的实践活动,其中不仅包含了公理性的知识,而且也包含了诸多经验性的知识。其目的是为了使设计目标能够容纳枪弹、赋予弹头一定的方向和初速,并符合全枪外形设计要求,具有足够的强度、刚度工和使用寿命等。枪管设计的内容见图2。
图2 枪管设计内容
(2) 系统中知识表示形式的选择 常用的知识表示形式有产生式规则、框架表示、语义网络表示、一阶谓词逻辑表示、过程表示等。枪管设计的知识是属扩散型的,其中包括有大量经验性知识,而设计又可以分解为外部构造设计、内膛设计、强度设计这样一些可以相对独立进行的子问题,子问题又可以分解为更细小的子问题,如内膛设计又可以分解为线膛设计与弹膛设计。最终的分解成为一些公式性、规则性的知识。产生式规则是一种适合表示因果关系的表示模式。它在语义上表示“IF A THEN B”的因果关系。运用产生式规则就可以基本上来表达一系列设计中可以分解出来的最小的设计元素。框架表示则层次化、模块化地表示客观事物所具有的属性或所处的状态,以及它与其它事物的关系。但是单一的产生式规则表示知识存在着不足,这种方法不宜于表达各规则之间的层次关系,因为这些规则在概念上、功能上的层次深浅是不一样的。从这种层次深度出发,选择框架表示知识是必要的。从枪管设计知识结构的实际出发,选用产生式与框架相结合的知识表示体系。这里框架的槽值可以为一产生式,从而可以使所要表达的知识充分、清晰、易懂。表1说明了用产生式与框架相结合来表示的关于枪管设计的知识。
在构建本系统过程中,选用了专家系统工具CLIPS(C language integrated production system)作为专家系统的开发软件。CLIPS是美国航空航天局(NASA)推出的一种基于产生式规则的通用型专家系统开发工具,在1997年的6.0版本中,又加入了基于过程,基于模块,面向对象的方法。用CLIPS构建专家系统比用高级语言(C++、Ada、Prolog等)具有更高的效率。CLIPS是基于规则的系统,本文采用CLIPS的结构命令deftemple来定义框架。deftemple命令表示框架的一般形式为
(deftemple〈框架名〉[〈功能描述〉]
(slot〈规则名〉)
(slot〈规则名〉)
(… …))
当定义规则时,使用结构命令defrule,相当于IF〈模式〉THEN〈动作〉,即
(defrule〈规则名〉[〈功能描述〉]
《模式》
?
《动作》
这样就可以实现规则/框架混合的知识表示。
表 产生式/框架相结合的枪管设计知识的表示
框架名 | 槽名 | 槽值 | 槽名 | 槽值 | 槽名 | 槽值 |
枪管
设计 |
外部 构造 |
外部构造 框架 |
内膛 | 内膛设计 框架 |
强度 | 强度设计 框架 |
外部 构造 |
枪管 尾部 |
枪管尾部 设计框架 |
枪管 外形 |
枪管外形 设计框架 |
枪口 形状 |
枪口形状 设计框架 |
… | … | … | … | … | … | … |
… | … | … | … | … | … | … |
枪管 尾部 |
尾端面 形状 |
尾端面形状 设计规划 |
||||
… | … | … | … | … | … | … |
3 系统数据库
枪管设计推理的启动参数,如膛压、线膛的长度等;设计过程中产生的各类过渡型参数;以及最终所选定的枪管的尺寸、公差、材料等,都存放在系统数据库中。为了有效地管理这些数据,采用了面向对象的方法。
面向对象的方法中有两个重要概念“类”和“对象”。在CLIPS6.0中,分别称为“Class”、“Instance”。CLIPS有一个最高级的类OBJECT,它有一个子类USER。USER类用来定义用户自定义类。在本系统中类的定义如下:
(defclass BARREL(is-a USER))
(defclass BORE(is-a BARREL))
(defclass CHAMBER(is-a BORE))
对象的定义如下:
(definstances NEW_CHAMBER
(new_chamber of CHAMBER))
设计过程中所产生的各种参数,都存放在各实例对象对应的属性中。这种面向对象的数据库结构简单,一目了然。在系统运行中只需对数据库中某一对象的属性进行读、写操作即可。
数据库中除了存放新的设计内容,还包括一些成熟的设计实例。一些国内外装备过的制式枪械的枪管,如56冲、M16步枪的枪管等,都放在数据库中。这样不仅使设计者在设计过程中可随时调用以作参考,而且可以适应基于实例的推理方式。CLIPS是以基于规则的推理为主,但基于实例的推理也是可以适当采用的。譬如在设计时采用某种制式弹,那么在设计弹膛时,系统提出两套设计方法——基于规则和基于实例。基于实例的设计使设计者在为制式枪弹设计弹膛时,可以通过人机对话,选择一种制式枪械枪管的弹膛作为新设计枪管的弹膛的原型,新的设计可通过对这种原型在满足一定条件(规则)的前提下进行修改而得出。这样可以使设计过程得以简化。
4 设计计算及计算结果的规整
枪管设计中涉及计算的部分主要由三部分组成:内弹道计算、主要断面处壁厚的计算、安全系数的校核。
内弹道计算的目的在于计算出装填条件一定和弹头一定的发射条件下膛压、弹头速度与弹头行程、时间的关系。通过分析,认为在枪弹已知的条件下,膛压的峰值(最大膛压)、该峰值出现的位置、线膛总长、膛口压力这四个量在枪管设计中最为重要。
当膛压特性确定之后,对膛压曲线进行处理,就可以根据膛压曲线确定枪管主要断面处壁厚。壁厚由下式计算:
r2=r1[(3σs+2np)/(3σs-4np)]1/2 (1)
式中,r1、r2分别为枪管内、外半径;σs为材料屈服极限;n为断面处完全系数;p为断面处膛压。
由式(1)计算得出主要断面处的外径、壁厚,并形成枪管的理论外形之后,还需要考虑与枪管结合零部件的大小和所在位置,工艺性要求,壁厚差的容许量等,并按这些因素对枪管理论外形进行规整。本系统既可采用人机交互的方式进行尺寸规整,也可以采用知识库和推理机进行外形尺寸规整。
5 枪管参数化图形设计原理与应用
本系统中选用美国SDRC公司的微机版本IDEAS MS6.0作为图形参数化模块的CAD支撑平台。IDEAS是一个功能强大的CAD/CAE/CAM集成软件包。在IDEAS中,物体的某些尺寸可以设置为参数关系式,以参数来控制物体的几何元素。用户可以产生两种类型的参数:驱动参数型和等式参数型。驱动参数型的尺寸值是用户在产生该物体时输入的初始值,这种尺寸可以参数化,从而在等式参数型中作为变量。等式参数型定义了物体上相关参数间的数学等式关系。该等式由用户定义,其中包含有驱动参数或其它等式参数。物体的关键尺寸、轮廓约束尺寸等设为参数变量(可以赋一初始值)。物体的参数化过程实际上就给这些参数赋予某个具体尺寸的过程。
本系统通过对IDEAS的二次开发来实现枪管图形的参数化三维显示。系统中推理、计算所得的枪管的外形尺寸、尺寸约束关系记录在数据库中。系统总控模块以一定的顺序读取数据,并生成专用数据文件。之后通过C语言编写的接口程序启动IDEAS,并执行一个相应的由IDEAS自带的高级语言编写的程序文件,将数据文件中的数据赋给预先建好的枪管三维实体参数化模型。
具体实现方法如下:
(1) 参数化实体模型的建立 在IDEAS实体建模模块中生成一个枪管实体模型,存放在参数化模型库中。可以手工建立模型,并记录在程序文件中;或者用IDEAS自带的高级语言编写程序文件。这个模型包括了典型枪管所具有的结构特征。该模型所具有的结构参数中有一部分可以设置为驱动参数型变量,定义、命名这些变量。之后定义、命名与这些驱动参数型相关的等式参数型变量,并给出约束关系(尺寸链要求、联接件的形状约束等)。
(2) 几何尺寸与结构形式的确定 通过推理、计算所确定的结构及尺寸存放在数据库中,以便于图形处理模块调用。
(3) 参数变量赋值 系统总控模块从数据库中读取数据,生成专用数据文件,并启动IDEAS。数据读取的顺序依据前面所产生的数据文件的格式确定。依次读取各段的数据,放入指定的数据结构中。读取完成后,将读取成功的枪管的尺寸、结构参数数据传给参数化实体模型,在屏幕上输出显示,并生成二维工程图。
6 结论
知识的表达与数据库的构造是运用专家系统工具CLIPS过程中的两个最基本的问题,也是该系统能否有效运行的关键。在系统中采用规则与框加混合的知识表达体系,允许框加的槽值为一组产生式,将产生式局部化,比单一的产生式有更高的效率。数据库的构造中运用了面向对象的方法以及基于实例的方法,使得数据库中数据间的关系表达易于理解,便于维护。参数化设计思想可以实现数据与图形的结合,有效地解决了设计结果向图形的转化。综合运用上述技术开发的智能化枪管CAD系统,较好地解决了枪械主要零部件——枪管的自动化设计问题。
文章版权归西部工控xbgk所有,未经许可不得转载。