1)仿真时钟
仿真时钟用于表示仿真时间的变化。在离散事件系统仿真中,由于系统状态变化是不连续的,在相邻两个事件发生之前,系统状态不发生变化,因而仿真钟可以跨越这些“不活动”周期。从一个事件发生时刻,推进到下一个事件发生时刻。由于仿真实质上是对系统状态在一定时间序列的动态描述,因此,仿真钟一般是仿真的主要自变量。仿真钟推进方法有三大类:事件调度法、固定增量推进法和主导时钟推进法。
应该指出,仿真时钟所显示的是系统仿真所花费的时间,而不是计算机运行仿真模型的时间。因此,仿真时间与真实时间成比例关系。像物流系统这样复杂的机电系统,仿真时间可比真实时间短得多。真实系统实际运行若干天、若干月,用计算机仿真也许只需要几分钟。
2)事件调度法
事件调度法是面向事件的方法,是通过定义事件,并按时间顺序处理所发生的一系列事件。记录每一事件发生时引起的系统状态的变化来完成系统的整个动态过程的仿真。由于事件都是预定的,状态变化发生在明确的预定的时刻,所以这种方法适合于活动持续时间比较确定的系统。
事件调度法中仿真钟是按下一时间步长法来推进的。通过建立事件表,将预定的事件按时间发生的先后顺序放入事件表中。仿真钟始终推进到最早发生的时间时刻。然后处理该事件发生时的系统状态的变化,进行用户所需要的统计计算。这样,仿真钟不断从一个事件发生时间推进到下一个最早发生的事件时间,指导仿真结束。
3)随机数和随机变量的产生
物流系统中工件的到达、运输车辆的到达和运输时间等一般都是随机的。对于有随机因素影响的系统进行仿真时,首先要建立随机变量模型。即确定系统的随机变量并确定这些随机变量的分布类型和参数。对于分布类型是已知的或者是可以根据经验确定的随机变量,只要确定它们的参数就可以了。
建立了随机变量模型后还必须能够在计算机中产生一系列不同分布的随机变量的抽样值来模拟系统中的各种随机现象。随机变量的抽样值产生的实际做法通常是,首先产生一个[0,1]区间的、连续的、均匀分布的随机数,然后通过某种变换和运算产生其所需要的随机变量。
得到[0,1]区间均匀分布的、有良好的独立性、周期长的随机数后,下面的问题是如何产生与实际系统相应的随机变量。产生随机变量的前提是根据实际系统随机变量的观测值确定随机变量的分布及其参数。
(2)物流系统三维虚拟仿真的计算机实现
三维虚拟仿真(3D virtual simulation)就是利用三维建模技术,构建现实世界的三维场景并通过一定的软件环境驱动整个三维场景,响应用户的输入,根据用户的不同动作作出相应的反应,并在三维环境中显示出来。三维仿真的关键技术主要有动态环境建模技术、实时三维图形生成技术、立体显示和传感器技术、应用系统开发工具、系统集成技术等。
1)仿真平台的组成
仿真平台通常构建在基于Windows系统的PC机或图形工作站上。仿真平台主要有以下三个模块组成:特征造型数据类库、三维场景管理模块和交互接口模块。
各模块功能如下:
①特征造型数据类库,由各类设备的抽象类组成。设备类中封装了各类设备的造型特征以及设备的行为。
②三维场景管理模块,负责三维场景的构造、变换及显示。
③交互接口模块,处理人机交互输入。
2)面向对象的仿真建模方法
计算机仿真主要包括仿真建模、程序实现、仿真结果的统计分析三大部分。建模阶段,主要根据研究目的、系统的先验知识及实验观察的数据,对系统进行分析,确定各组成要素以及表征这些要素的状态变量和参数之间的数学逻辑关系,建立被研究系统的数学逻辑模型。
在面向对象系统仿真建模时,对象是基本的运行实体,既包括数据(属性),又包括作用于数据的操作(行为),所以一个对象把属性和行为封装成一个整体。一个类定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。
对象之间进行通信的方式叫消息机制。不同层次类之间共享数据和操作的机制叫继承。
一切事物以对象为唯一模型,对象间除了互相传送消息外,没有别的联系。
3)三维图形仿真工具OpenGL
OpenGL最初是SGI公司为其图形工作站开发的可以独立于操作系统和硬件环境的图形开发系统。目前,OpenGL已经成为高性能图形和交互式图像处理的工业标准,OpenGL已被多家大公司采用作为图形标准,并能够在多种平台上应用。
OpenGL实际是一个3D的API(Application Programming Interface),它独立于硬件设备和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。从程序员的角度来看,OpenGL是一组绘图命令和函数的集合。在微机版本中,OpenGL提供了三个函数库,它们是基本库、实用库和辅助库。利用这些命令或函数能够对二维和三维几何形体进行数学描述,并控制这些形体以某种方式进行绘制。
OpenGL不仅能够绘制整个三维模型,而且可以进行三维交互、动作模拟等。具体功能主要有:模型绘制、模型观察、颜色模式的指定、光照应用、图像效果增强、位图和图像处理、纹理映射、实时动画。
4)三维仿真建模场景的构造和管理
①运用OpenGL进行绘图并且最终在计算机屏幕上显示三维景物的基本步骤是:
建立物体模型,并对模型进行数学描述,通过用几何图元(点、线、多边形、位图)构造物体表面而实现。
在三维空间中布置物体,并且设置视点(viewpoint)以观察场景。
计算模型中物体的颜色,在应用程序中可以直接定义,也可以由光照条件或纹理间接给出。
光栅化(rasterization),把物体的数学描述和颜色信息转换成可在屏幕上显示的象素信息。
②几何模型的变换:仿真模型所描述的现实世界中的物体都是三维的,而计算机输出设备CRT只能显示二维图像。OpenGL通过一系列的变换实现以平面的形式来表示三维的形体。
③碰撞检测:碰撞检测是交互式场景漫游需要解决的一个重要问题。每当接收到用户漫游场景的输入,系统都要进行检测,判断根据用户的输入而得到的新的视点是否会与场景中的物体发生碰撞或进入物体内部。由于仿真场景中的设备大多以较为规则的形体叠加而成,所以根据具体设备的形状将设备简化为尽可能贴近设备的长方体包围盒或长方体包围盒的集合,并且将视点转化为一个点。这样,碰撞检测就转化为判断一个点是否与长方体相交的问题,从而加快实时响应速度,取得较好的漫游效果。
(3)国外的三维物流仿真软件
1)AUTOSIMULATION的AutoMod
AutoMod是目前市面上比较成熟的三维物流仿真软件。主要包括了三大模块:Au211toMod、AutoStat和AutoView。AutoMod模块提供给用户一系列的物流系统模块来仿真现实世界中的物流自动化系统。主要包括输送机模块(辊道、链式),自动化存取系统(立体仓库、堆垛机),基于路径的移动设备(AGV等),起重机模块等。AutoStat模块为仿真项目提供增强的统计分析工具,由用户定义测量和实验的标准,自动在AutoMod的模型上执行统计分析。
2)3i的SIM Animation
SIM Animation是美国3i公司设计开发的集成化物流仿真软件。SIM Animation使用的是先进的基于图像的仿真语言,这种语言可以简化仿真模型的创建。由于它OOP编程方法,仿真系统可以非常简单地创建模型。许多的先进软件工具都合成为一种语言,它包括布局编辑器、完全的二维和三维的动画、曲线拟合、路线优化软件、试验编辑器和完整的用户报表编辑器。同时仿真模型还包括丰富的交互特点,允许使用者去改变参数输入,其目的是通过模拟实际生产情况及市场波动对系统造成的冲击,从而避免了在理想化状态下系统设计所无法预料的各种因素,对系统的堵塞有着形象和直观的解决方案。
3)Show Flow
Show Flow仿真软件可为制造业和物流业提供建模、仿真、动画和统计分析工具。
Show Flow可以提供生产系统的生产量,确定瓶颈位置,估测提前期和报告资源利用率。
Show Flow还可以被用来支持投资决定,校验制造系统设计的合理性,通过对不同的制造策略进行仿真实验来找出最优解。
综观国外三维物流仿真软件,都具有虚拟现实、动态反映物流现实状况的显着优势,应用表现形式灵活多样。但相比之下,美国3i公司的SIM Animation具有多方面独特优势。
8.2.2 商务智能技术
1.数据仓库
(1)数据仓库的概念
数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的Buildingthe Data Warehouse(《建立数据仓库》)一书中所提出的定义被广泛接受,数据仓库是一个面向主题的(subject oriented)、集成的(integrate)、相对稳定的(non‐volatile)、反映历史变化(timevariant)的数据集合,用于支持管理决策。
数据仓库是一个过程,而不是一个项目;数据仓库是一个环境,而不是一件产品。数据仓库提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效地把操作型数据集成到统一的环境中以提供决策型数据访问的各种技术和模块的总称。所做的一切都是为了让用户能更快更方便地查询所需要的信息,提供决策支持。
(2)数据仓库的特点
数据仓库的特点包括以下几方面:
1)面向主题的
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。
2)集成的
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
3)相对稳定的
数据仓库数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
4)反映历史变化
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势作出定量分析和预测。
(3)数据仓库的组成
数据仓库由以下几个部分组成:
1)数据仓库数据库
数据仓库数据库是整个数据仓库环境的核心,可提供数据存在和对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
2)数据抽取工具
数据抽取工具把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本和SQL语句等,以访问不同的数据。数据转换包括删除对决策应用没有意义的数据段、转换到统一的数据名称和定义、计算统计和衍生数据、给缺值数据赋予缺省值和把不同的数据定义方式统一。
3)元数据
元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类:技术元数据和商业元数据。
技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库使用的数据。包括数据源信息、数据转换的描述、数据仓库内对象和数据结构的定义、数据清理和数据更新时用的规则、源数据到目的数据的映射、用户访问权限、数据备份历史记录、数据导入历史记录、信息发布历史记录等。
商业元数据从商业业务的角度描述了数据仓库中的数据。包括业务主题的描述,包含的数据、查询、报表等。
元数据为访问数据仓库提供了一个信息目录(information directory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用它来存贮和更新数据,用户通过它来了解和访问数据。
4)访问工具
访问工具为用户访问数据仓库提供手段。包括数据查询和报表工具、应用开发工具、经理信息系统(EIS)工具、联机分析处理(OLAP)工具和数据挖掘工具。