1 引言
随着现代社会的发展,科学技术的进步,世界上出现了众多的高层建筑和智能化建筑。电梯,作为高层大厦内部的一种交通重要,甚至是唯一的交通工具,其应用规模日益扩大、复杂化,人们对电梯系统的性能也提出了越来越高的要求,并且往往有多台电梯在同时在同一幢建筑物内被使用。电梯群控系统(Elevator Group Control System: EGCS)正是应这样一种需求而产生和发展的。
电梯群控制系统是一种对同一建筑物内部多台电梯进行优化调度的系统,群控系统追求的目标是在给定的电梯设备空间内求得最优的调度方案,如最大的乘客输送能力、尽可能短的乘客候梯时间和尽可能低的能耗等等。对电梯群的控制,一方面,工程技术人员在硬件上不断改进电梯群控制系统的拓扑结构和群内梯间的通信方式,以争取做到高速、可靠的调度控制和通信连接,另一方面,国内外的研究人员也从研究电梯交通系统的统计特性和动态特性入手,利用专家系统、人工神经网络、模糊神经网络、免疫算法等人工智能技术对电梯群控制系统进行建模,以期建立更为优化的控制算法对电梯群施以控制。
在电梯群控制系统的设计与实现方面,有一些方法被提了出来。例如分布式控制方法 ,模糊神经网络控制方法,模糊专家系统控制方法 。而本文则提出了一种面向对象的电梯群控系统的设计与实现方法。
2 面向对象方法介绍
2.1 面向对象方法的特点
人们认识世界是以一种“面向对象”的方式进行的。客观世界的问题都是由客观世界的实体及客观实体间的相互关系构成的。我们把客观世界的实体称为问题空间(问题域)的对象,而复杂的对象可以由相对比较简单的对象以某种方式组成。
而传统地,人们分析解决问题却是以一种面向问题或者说面向过程的方式,分析过程不关心今后的设计和实现过程,系统的问题模型和设计模型之间没有直接的联系,是一种自顶向下,功能分解的方法。
面向对象方法的提出正是为了解决认识一个系统的过程和方法与分析、设计一个系统的过程和方法不一致这一问题。所谓对象,是指问题领域中,现实世界和具体的或抽象的事务,在面向对象的方法中,首先将问题分解为多个对象,然后对对象进行数据抽象以及在该数据集合上的操作集合,得到抽象数据类型(Abstract Data Type)【4】。对象一般至少具有一下的特征【4】【5】:
(1) 模块性。一个对象事一个可以独立存在的实体,通过功能接口与外界进行信息交换。
(2) 继承和类比性。同属某一分类的对象中下一层次的对象应具有上一层次的对象的某些属性。
(3) 动态连接性。对象和对象之间应具有一种统一、方便、动态的连接和传递消息的能力和机制。
(4) 易维护性。对象功能的实现细节都会被隐藏在该对象的内部,因此,对象功能的完善或者修正都不会传递到对象外部,这就增强了整个系统的易维护性。
2.2 面向对象分析方法
在处理复杂问题域或系统任务时,抽象(abstraction)、封装(encapsulation)、继承(inheritance)、相关(association)、消息通信(commuNIcation with messages)、组织方法(method of organization)、比例(scale)和行为范畴(categories of behavior)等是通常的考虑原则。而面向对象法可以表示为:
面向对象法=对象+类+继承+消息通信
面向对象分析是建立在信息模拟(实体关系图和语义数据类型)和面向对象程序设计语言的概念基础上的,如图1所示【5】。

图1 面向对象分析的形成
面向对象分析方法从信息模拟中吸取了属性、关系、结构以及对象作为问题域中某些事物的实例的表示方法等概念;也从面向对象的程序设计语言中吸取了属性和方法的封装、属性和方法作为一个不可分割的整体,以及分类结构和继承性等概念。面向对象分析方法都是直接将问题域映射成模型的,在本文中,我们将之映射成一个群控电梯运行模型。
3 面向对象方法在电梯群控系统设计中的应用
3.1 电梯群控系统的分析
电梯群控系统是一类复杂的非线性动力系统,在时间和空间上具有离散性和随机性。为了更好的研究电梯群控技术和检验群控算法的运行效果,首先应该建立电梯群控系统的数学模型。有多种理论和方法可以应用在建立电梯群控模型。在利用细胞自动机模型模拟电梯运动行为的基础上,本文建立了完整的电梯群控系统模型。如图2所示。

图2 电梯群控模型
3.2 电梯群控系统的面向对象实现
图2所示模型采用了Coad/Yourdon提出的面向对象分析(OOA)方法进行分析,用 Visual C++计算机编程语言进行程序编写。根据上面陈述的面向对象分析原理,将整个模型分为类及对象层、属性层和服务层、结构层和主题层五个层次。类及对象层描述待开发电梯群控系统的基本类模块;属性层定义类与对象的属性;服务层定义对象的服务,即类的操作及其消息连接。图3则给出电梯群控系统模型的基本类模块关系图。

图3 电梯群控系统模型的类模块关系图
图3具体描述了系统模型中五大基本类的属性、服务以及各个类模块之间的关系。模型中各个类模块通过消息传递进行通讯。由乘客(PASSENGER)按键产生的呼梯信号(CALL),被存入呼梯信号缓冲队列(CALLQUEUE),将其中的外呼信号(Hall call)送入群控算法模块(GROUP-CONTROL)进行派梯计算,把成功的派梯命令放入派梯队列(ALLOCATION)并由分派的电梯(ELEVATOR)进行呼梯响应,电梯完成呼梯命令后对该次停梯进行信息记录。尚未被分派的呼梯信号以及由于轿厢满员、群控策略等原因造成的派梯失败的呼梯信号仍然存放在缓冲队列中,等待下次电梯分派计算。内呼信号(Car call)不需进行群控计算,而直接按照逻辑关系放入相应电梯的派梯队列。细胞自动机模型对电梯行为的模拟在ALLOCATION和ELEVATOR类中共同完成。
4 群控算法实际运行结果
以下表1是实际运行中检验得到的几组数据的对比。
表1 群控运行效果比较

从表中我们可以看出,采用面向对象方法分析和实现的群控算法具有良好的效果,群控系统各评价指标都有明显的改善和提高,最大待梯时间和长时间候梯率更是减少到原来的1/2强。
5 结论
针对作为一类复杂的非线性动力系统,在时间和空间上具有离散性和随机性的电梯群控制系统这一问题域,本文提出了基于面向对象分析的一种分析和实现方法。在提出电梯群控模型的基础上将群控系统分为5个层次,并给出了系统模型的基本类关系图。运行结果表明,该用面向对象分析方法实现的电梯群控系统具有良好的实际应用效果。
本文作者创新点:在电梯群系统细胞自动机模型的基础上给出并分析了电梯群系统的各基本类以及它们之间的关系。




