图1 面向对象数据库分析 |
虚拟数控加工仿真系统的目的是建立一个仿真的平台,并提供一个逼真的加工环境。在此平台上,操作者或研究者可以通过交互式系统实现对于数控加工过程的真实模拟。正因为如此,系统应该具有开放式、模块化的特征,以利于根据不同的需要实现数控系统、机床、加工环境的不同组合。而传统的软件系统是面向过程的并且相应的支持数据库是针对关系来建立,这就使其存在以下不足:- 传统的系统开发过程周期较长。当应用要求发生变化时,开发过程的各个阶段都要作相应的修改,因而代价较大。这是因为构成系统的各个功能单元的程序都是依据结构化程序思想设计而成的。虽然模块化程度较高,但忽视了数据对程序产生的彬响。由于在结构化语言中,几乎重要的数据都被定义为全局数据,而全局数据可以被任何一个程序所访问,所以当全局数据的结构或属性发生变化时,相关联的程序必将作相应的修改。
- 有限的建模能力和计算能力。传统数据库系统所支持的主要数据模型是层次、网状和关系,并且关系数据库要求一个关系的所有属性都必须是原子型,面对复杂数据的抽象和建模,关系数据库只能建立所谓嵌套关系数据模型,这就使得关系数据库对于客观世界中的实体很难对应,因而对现实世界中复杂数据的抽象和表达能力只能是极其有限的。同时,由于数据结构的单一性,导致计算时需要不断在客观实体与单一数据结构之间进行转换。
从上面的分析可以看出,不论足在系统级的开发上还是在数据库的设计与管理上,传统的系统开发及数据库管理都存在着缺陷,而面向对象数据库系统的开发可以解决这些传统开发系统面临的问题。1 面向对象数据库原理与实现面向对象技术是一种按照人们对现实世界习惯的认识论思维方式来研究和棋拟客观世界的方法学,它将现实世界中的任何事物均视为“对象”,客观世界看成是由许多不同种类的对象构成。每个对象都有自己的内部状态和运动规律,不同对象之间的相互联系和相互作用就构成了完整的客观世界。它主要包括三方面内容。即面向对象的系统分析与设计方法、面向对象的数据库技术和面向对象的程序设计语言。在这其中,对象的构造与分析是关键。面向对象的设计要求相应的数据库支持,而传统的数据库设计方法具有一定的缺点,因此必须设计针对面向对象设计的数据库系统来实现相应的功能。面向对象数据库管理系统(OODBMS)是一个既支持面向对象系统特性,又支持DBMS系统特点的系统。在设计和实现OODBMS中,一般有如下三种方案:- 修改(扩充)现有的数据模型,使之与面向对象模型相一致,同时增加相应的数据库特征。
- 独立开发出全新的数据榄型,直接支持面向对象风格。
- 在面向对象程序设计语言中嵌入数据库功能,形成OODBMS。
在本论文中采用第三种设计方法。根据上面的原理,在对数据库进行设计和构造时,首先进行对象分析。对象分析的目的是针对具体的问题,分析在系统中可能用到哪些对象,对象之间的继承与上下级关系。然后是确定采用什么样的数据结构来实现,最后是设计一个库表,实现数据的存储。面向对象设计的数据库设计的流程图如图2,
图2 数控仿真类关系图 |
2 数控车削仿真数据库设计如前所述,虚拟数控车削仿真的目的是以“用户”为中心的,相应的数据库的设计也必须是以“用户”为中心的,这就要求数据库具有开放性。即针对用户的要求,系统可以实现数据库内容的重新定义,以完成相应的功能。数控车削仿真数据库的实现是以软件中的对象分析为基础的,因此在进行数据库设计之前。必须首先进行系统的对象分析。 数控车削仿真对象包括环境对象、光源、机床对象、刀具对象、工件对象、切屑对象、数控系统对象、刀架、溜板、工作台等部件对象。不论是物理仿真还是几何仿真都是针对的这些对象来反映他们的状态与特征。在面向对象分析中,每个对象以类的抽象形式定义。在数控车削仿真系统中,将各个对象的“共性”加以抽象,形成类。类的形成原则是所有类对象必需具有某种共性。类中分为虚类和实类。虚类通常为类对象中的最高的类,具有最通用的一些特性。但同时其参数也相对比较少,如果按照其构造对象,通常无法在视图中加以显示。因此常采用实类实现对象的构造,但虚类往往是实类的父类,一些参数而要从中定义。虚类和实类都可以有子类,不同的是,实类和其子类都可直接构造对象。父实类和了实类可以具有不同的下级类。类关系图见图2。面向对象的数据库管理系统是实现面向对象设计的关键。开放式的数据库管理系统可以通过视图由用户实现记录的增加、删除、查询和修改:同时在数控仿真的各个阶段,数据库系统作为仿真的基础一直运行着。在数控车削智能仿真系统中,数据库的视图位于视图类中,它是用户与系统交互的窗口,消息通过视图类传递到数据库管理系统中。而数据库管理系统位于系统的文档类中,负责对数据也就是对象的管理。因此下面针对仿真进程中的各个阶段,说明数据库管理系统的实现。在仿真的进程中,尤其是在仿真初始化的时候,采用向下泊历算法来实现。算法的描述如下:- 首先在文档类中生成一个仿真对象,从面向对象数据库中得到相应的信息包括环境对象、车床对急、车削系统对象。然后根据车床对象的数据库中的信息可以得到相应的刀具、刀架、底座、导轨等部件的信息,从而形成一个完整的仿真对象,初始化完毕后,在视图类中显示。
- 等待用户响应,根据不同的操作形成不同的动态模型。
在仿真的某一时刻,只需遍历数据库中带有当前纪录标识的对象,就可以得到当前时刻的物理凡何仿真所甜要的数据。在仿真完毕后,可能用户根据仿真的结果需要对对象的属性甚至是对象的类型进行修改,这就需要对数据库中的内容进行更新,假定用户在视图中进行了对象更新,则数据库更新的算法可以描述为:- 根据用户要求确定所要更新的对象;
- 判断是整个对每需要更新(转iii),还是对象的属性需要更新(转vi):
- 如果整个对象需要更新,要得到对象的标识和ID;
- 初始化得到对象的各项属性,并根据向下遍历的原则建立下级各节点的属性:
- 如果无其他对象需要更新,则End.否则(转ii):
- 根据对象的ID更新对象属性,并存储到数据库中,改变当前记录标识:转v。
3 结论本文针对数控车削过程中数控仿真的需要,采用面向对象的数据库技术建立了开放式的数控仿真数据库,并对其中的数据库的管理和仿真对象的分析进行了详细的研究。实际应用结果表明,采用面向对象的数据库技术可以极大的实现系统功能的扩展。从而使得系统的开放性和扩展性大大的提高。 |