摘要:探讨了集分析、设计、计算与图形处理于一体的齿轮设计专家系统(GDES),论述了GDES的结构组成、知识库、推理机等部分的构建和系统的实现方法。
关键词:齿轮设计;专家系统;面向对象;ADO
1 引言
专家系统(Expert System, ES)是人工智能(Artificial Intelligence, AI)技术应用中最成功的一个分支。专家系统是一个智能计算机程序系统,其内部含有某个领域专家级水平的大量知识与经验,并能利用这些知识与经验解决该领域中的实际问题。专家系统的应用,为解决生产实践中大量存在的、难于用严格数学模型描述的问题,提供了有效的解决途径。
目前,专家系统的发展趋势是:将人工神经网络和遗传算法等知识处理技术与专家系统结合起来,开发平台由DOS操作系统转向以Windows为代表的图形界面操作系统,开发方法由面向过程的程序设计方法转向面向对象的系统分析方法和面向对象的程序设计方法。
用专家系统进行计算机辅助机械设计(Computer Aided Mechanical Design,CAMD)是机械设计领域的一个重要发展趋势。以常见的齿轮设计为例,设计时会遇到大量的图表、数据以及设计规范和调查试验结果,这些资料是专家学者们智慧的结晶,对设计人员具有十分重要的价值。但这些资料涉及门类繁多,有些经验和智慧尚不能归纳成数学公式,因而不便于一般设计人员使用,此外无论多么详尽全面的数据也无法代替设计专家的经验和智慧。所以研制齿轮设计专家系统是非常必要的。本文介绍笔者研制的集分析、设计、计算与图形处理于一体的齿轮设计专家系统(GDES)。
2 系统组成
该系统由参数计算模块、参数化绘图模块和专家系统模块组成。各模块既可以单独作为一个子系统使用,也可以通过系统框架有机结合起来,相互组合与协作,以满足用户的需要。系统总体结构如图1所示。 (图片)
圈1齿轮设计专家系统总体结构 2.1 参数计算模块
在进行齿轮设计时,需首先确定一些修正系数,才能计算出齿面接触应力和齿根弯曲应力。这些修正系数,如动载系数和齿形系数的确定相当复杂,通常采用图解法,而图解法不便直接用于编程或进行优化设计,虽然有些文献给出了它们的计算公式,但由于影响因素较多、计算过程繁杂,不便使用。在齿轮设计专家系统中,笔者利用BP神经网络映射动载系数和复合齿形系数,取得了较好效果。
人工神经网络(ANN, Artificial Neural Network)是反映人脑结构及功能的一种抽象数学模型,一个人工神经网络是由大量神经元节点互连而成的复杂网络,用以模拟人类进行知识的表示与存储以及利用知识进行推理的行为。
目前,应用最多也最有成效的神经网络结构模型是前向多层神经网络,由于该网络在学习(训练)过程中采用了误差反向传播BP(Error Back-propagation)算法,故又称为BP网络。它的训练学习过程由正向传播与反向传播两部分组成。在正向传播过程中,输人信号经输人层、隐含层逐层向前处理,并传向输出层,每层的神经元结点的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,即计算输出值与期望输出值之间的误差过大,则将该误差沿原来的连接通路反传,通过修改各层神经元的连接权系数,使误差逐步减小,并最终达到规定的要求。标准的BP网络由三层神经元组成,即输人层、隐含层和输出层,网络中相邻层采取全互连方式连接,同层各神经元之间没有任何连接,输人层与输出层之间也没有直接的联系,其结构如图2所示。(图片)
图2BP网络模型结构 在进行BP网络设计前,一般应从网络的层数、每层中的神经元个数、初始值以及学习方法等方面来进行考虑。
理论上早已证明:增加层数可以进一步降低误差、提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。通过增加隐含层中的神经元数目来提高精度,将比增加层数更容易观察和调整,所以一般情况下,应优先考虑增加隐含层中的神经元数。在实际应用中,原始的BP算法很难胜任,因此出现了很多改进算法。BP算法的改进主要有两种途径,一种是采用启发式学习方法,另一种则是采用更有效的优化算法。
本文借助MATLAB神经网络工具箱,来实现改进的BP算法,进而确定齿轮系数。
齿轮系数的具体确定方法如下:
动载系数Kv的网络结构为三层:输人层有两个结点C、V,其中C为齿轮精度,V为齿轮节线速度;输出层有一个结点Kv,采用线性传递函数purelin;隐含层选用对数S型传递函数logsig,结点数为20;训练函数采用trainbpx。
复合齿形系数YR=Yfa X Ysa的网络结构为四层:输入层两个结点X、Zn,其中X为变位系数,Zn为当量齿数;输出层一个结点Yfs,采用线性传递函数purelin;两个隐含层均选用对数S型传递函数logsig,其结点数分别为15、10;训练函数采用trainlm。
计算结果表明,以上两个网络输出的最大相对误差精度分别为0.85%和0.90%,这个精度对于工程设计来讲是足够的。所以这两个网络的输出可用来确定齿轮动载系数凡和复合齿形系数Y。的值。
2.2 参数化绘图模块
参数化设计(ParametricDesign)方法大致可分为尺寸驱动法和变量几何法。
本系统采用尺寸驱动法实现参数化绘图,所谓尺寸驱动法就是根据尺寸约束,用计算的方法自动将尺寸的变化转换成几何形体的相应变化,并且使变化前后的机构约束保持不变。
2.3 专家系统模块
GDES专家系统由主控模块、知识库模块、数据库模块、推理机及解释机构等五个子功能模块组成,如图3所示。(图片)
图3GDES专家系统模块结构 2.3.1 GDES的知识库模块
知识库模块用于建立知识库,获取知识,并且把各条知识链接起来,形成“知识库规则链表”。此外,它还对包含最终结论的规则进行检测,做上标记。
知识库是一个知识存储器,它存储学科专家的经验知识、书本知识和常识性知识。GDES采用产生式知识表示法将知识存人计算机中而形成知识库。
产生式通常用于表示具有因果关系的知识,其基本形式是:
P→Q或者IF P THEN Q
其中,P是产生式的前提,亦可称为前件、条件、前提条件,用于指出该产生式是否可用的条件;Q是产生式的结论或操作,亦可称为后件,用于指出当前提P所指示的条件被满足时,应该得出的结论或应该执行的操作。整个产生式的含义是:如果前提P满足,则可推出结论Q或执行Q所规定的操作。
产生式知识表示法利用“IF THEN”的规则形式表示人类求解问题的行为特征,其表现形式单一、直观,符合人的认知过程,计算机程序容易实现,是使用最多的知识表示法。例如,齿轮设计中的一条规则是:
IF闭式软齿面传动,不满足弯曲强度,THEN增加模数
规则描述的数据结构如下:
//规则类
class RULETYPE
{
public:
char* result;//1规则结论的字符串描述
int lastflag;//结论性规则标志
class CAUSE_TYPE* cause-chain;//规则的前提链表
class RULE_TYPE* next;//指向下一条规则的指针
RULE_TYPE();
virtual~RULE_TYPE();
};
GDES中设计了一个半自动式的知识获取模块,设计人员可以对知识库进行编辑修改,删除不需要的知识,添加需要的新知识,使系统性能不断提高。
2.3.2GDES的数据库模块
数据库模块用来把用户提供的已知事实以及推理中推出的新事实放人综合数据库中,并分别形成“已知事实链表”和“结论事实链表”。
综合数据库又称全局数据库,或称事实库、黑板、上下文等。它用于存放问题求解过程中各种当前信息,例如问题的初始事实、原始证据、推理中得到的中间结论以及最终结论。当知识库中某一条产生式的前提可与综合数据库中的某些已知事实匹配时,该产生式就被激活,并把用它推出的结论放人综合数据库中,作为其后推理的已知事实。
描述事实的数据结构如下:
//事实类,已知事实用字符串描述,并且连成链表
class CAUSETYPE
{
public:
char* cause; //事实的字符串描述
class CAUSE_TYPE* next; //刃指向下一个事实的指针
CAUSE_TYPE();
virtual~CAUSE_TYPE();
};
2.3.3 GDES的推理机
推理机是一组程序,它根据用户当前提出的要求,利用知识库中的知识,按一定的推理方式,去解决当前的问题,得到用户可接受的结论,推理中凡是被选中参加推理的规则形成“已使用规则链表”。由于齿轮设计具有问题的可分解性和专家知识的多样性等特点,系统采用适宜于产生式知识表示法的正向推理方式。正向推理的基本思想是:从用户提供的初始已知事实出发,在知识库KB中找出当前可适用的知识,构成可适用知识集KS,然后按某种冲突消解策略,从KS中选出一条知识进行推理,并将推出的新事实加人到数据库DB中作为下一步推理的已知事实,在此之后再在知识库中选取可适用知识进行推理,如此重复进行这一过程,直到求得了所要求的解或者知识库中再无可适用的知识为止。
2.3.4 GDES的解释机构
解释功能是专家系统区别于其它软件系统的重要特征之一。解释机构能以用户易于理解的方式,对推理过程给出必要的解释,回答用户“为什么?”和“怎样做?”等问题,大大提高了用户对专家系统的信任程度,增加了对求解复杂问题所得到的结论的可接受性。解释机制通常采用的方法是预置文本和路径跟踪法。
GDES系统采用路径跟踪法,即对推理过程进行跟踪,将问题求解所使用的知识自动记录下来,当用户需要解释时,解释器将根据“已使用规则链表”进行解释,向用户显示问题求解路径。
GDES的专家系统模块可作为一个单独的通用咨询型专家系统运行,如将知识库的内容换成其它领域的知识,该模块就可成为所选领域的专家系统。
3 系统的实现
本系统采用面向对象的软件开发方法构建。面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送和多态性等概念来构造系统的软件开发方法。它的基本思想是从现实世界中客观存在的事物出发,来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
本系统适用的操作系统为Windows98/WindowsNT/Windows2000。系统选用C++作为开发语言,它支持面向对象的程序设计方法,比较接近于人类的思维活动,在知识库的表示中,可方便地实现产生式知识表示法。开发工具为VisualC++6.0和ObjectARX2000,并通过在VisualC++6.0集成开发环境中调用MATLAB引擎启动MATLAB6.1,开发平台为AutoCAD2000。通过系统集成,即可充分发挥VisualC++6.0在界面友好性和事件驱动方面的优势,又可利用AutoCAD2000强大的绘图功能和MATLAB6.1在计算、数据处理方面的强大功能,实现许多原来开发环境难以实现的功能。
系统的数据库管理系统为Access2000,数据库接口采用了ADO技术。ADON(ActiveX Data Object,ActiveX数据对象)是新的微软数据库访问技术,它是位于
ODBC(Open Database Connectivity,开放数据库连接)和OLE DB(OLE Data Base,OLE数据库)之上的高性能的数据操作接口,定义了一组COM(ComponentObjectModel)对象以操作不同数据源的数据,且允许开发者使用任何语言在OLEDB上编写数据库应用系统。它是真正的基于自动化的数据库访问编程接口。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量,高性能的接口。
4 结论
GDES齿轮设计专家系统融合了面向对象的软件开发技术、参数化技术、数据库技术、人工神经网络技术和专家系统技术,集齿轮的分析、设计、计算与图形处理等功能于一体,具有较强的智能性和实用性,提高了齿轮设计的水平和效率。
参考文献
[1]中国机械设计大典编委会. 中国机械设计大典,第1卷[M]. 南昌:江西科学出版社, 2002.
[2]毕春长,丁予展. 基于BP神经网络的齿轮计算应力修正系数计算研究[J]. 机械设计与研究, 2000(3):50-52.
[3]闻新,周露,王丹力等. MATLAB神经网络应用设计[M]. 北京:科学出版社,2001.
[4]肖刚,李学志. 机械CAD原理与实践[M] 北京:清华大学出版社,1999.
[5]尹朝庆,尹皓. 人工智能与专家系统[M]. 北京:中国水利水电出版社, 2002.
[6]夏庆云. VisualC++6.0数据库高级编程[M]. 北京:北京希望电子出版社,2002。
作者简介:强增(1978-),男,硕士研究生,研究方向为智能系统及软件开发。
1/3/2006
|