第八章现代仿真技术.ppt
《第八章现代仿真技术.ppt》由会员分享,可在线阅读,更多相关《第八章现代仿真技术.ppt(133页珍藏版)》请在三一办公上搜索。
1、第八章 现代仿真技术,在本书的前七章,已向读者系统地介绍了控制系统计算机仿真的基本原理方法和仿真软件。在上世纪80年代,由于对复杂大系统的分析与设计的需要,以及计算机技术的突飞猛进和周边学科的某些理论与技术问题的突破,使得计算机仿真这一学科得以迅速发展,其应用领域也在日益拓宽和加深。为使读者能更好地了解仿真技术的一些最新发展,以及今后能在仿真领域做进一步的研究,或将仿真技术应用于一些比较复杂的系统之中,本书的后两章将向读者介绍仿真这一学科的新思想新概念和新方法。由于篇幅有限,涉及问题均是基本的,有兴趣的读者可以参考有关文献。,8.1面向对象仿真技术 8.1.1面向对象的概念和特点,面向对象的方
2、法是一种在分析和设计阶段独立于程序设计语言的概念化过程。它不仅仅是一种程序设计技术,更重要的它是一种新的思维方式。它能够帮助分析者、设计者以及用户清楚地描述抽象的概念,使相互之间容易进行信息交流。在面向对象的设计方法中,对象(Object)和传递消息(Message Passing)分别是表现事物及事物间相互联系的概念;类(Class)和继承(Inheritance)是适应人们一般思维方式的描述范式;方法(Method)是允许作用于该类对象上的各种操作,以及对象的封装性(encapsulation)、实体的多态性(polymorphism)以及动态联编(dynamic binding)等特点。
3、下面介绍这些有关的术语。,8.1面向对象仿真技术,(1)对象客观世界中的任何事物在一定的前提下都可以成为认识的对象。一个人可以是一个对象,一个学校也可以是一个对象。对象不仅仅是物理对象,还可以是某一类概念实体的实例。例如操作系统中的进程、室内照明的等级等。可见,世界上的任何事物都是对象,或是某一个对象类的一个元素。复杂的对象可由相对比较简单的对象以某种方法组成,甚至整个客观世界可认为是一个最复杂的对象。为了研究对象,必须用某种形式去表示对象。在面向对象的系统中,对象是基本的运行实体,它有两个方面的内容需要表示,一是对象的种类所属,即属性,二是对象的行为活动。属性和活动是相互影响的,属性界定了对
4、象的可能活动,而活动又能改变对象自身的属性状态,同时对象之间存在相互作用于依存关系。因此,对象表示包括三个方面,即属性、活动、关联关系。在计算机内部,对象通常可用三元关系来表示:对象:其中接口描述对象与其他对象的关系,数据描述对象的属性,操作描述对象的行为活动。,8.1面向对象仿真技术,(2)消息消息是描述对象间的相互作用的一种方法。在面向对象方法中,对象间的相互作用用对象间的通信收发消息来实现。当一个消息发送给某个对象时,该消息包含要求接收对象去执行某些活动的信息,接到消息的对象经过解释,然后予以响应,这种通信机制称为消息传递。程序的执行是由对象间传递消息来完成的。发送消息的对象称为发送者,
5、接收消息的对象称为接收者。消息中只包含发送者的要求,它告诉接收者需要完成哪些处理,但并不指示接收者应该怎样完成这些处理。发送消息的对象不需要知道接收消息的对象如何对请求予以响应。,8.1面向对象仿真技术,(3)类类是一组相似对象的集合,它描述了该组的共同行为和属性。例如,Integer是一个类,它描述了所有整数的共有性质(包括整数的大小和算术运算)。3、4、5等具体的整数都是类的对象,都具备算术和大小比较能力。类是在对象之上的抽象,有了类以后,对象则是类的具体化,是类的实例。对象在软件运行过程中由其所属的类动态生成。一个类可以生成多个不同的对象,这些对象虽然外部特性和内部实现都相同,但它们可以
6、有不同的内部状态值。,8.1面向对象仿真技术,(4)方法方法是指在对象中被定义的过程,即对类的某些属性进行操作以达到某一目的的过程。它的实现类似于非面向对象语言中的过程和函数,它是与类的属性封装在一起的。如果一个类的公有方法可用在许多领域,这个类就可作为重复利用的软件组件。(5)继承性一个类可以有父类和子类,继承性描述了它们之间的关系,是父类和子类之间共享数据和方法的机制。一个类能继承其父类的全部属性与操作,在定义和实现一个类时,可以在一个已存在的类的基础上进行,把这个已存在的类所定义的内容做为自己的内容,并加入若干新的内容。一个类如果只从一个父类得到继承称为单继承,如果有两个或两个以上的父类
7、,则称为多继承。继承性是面向对象程序设计语言不同于其他语言的最主要的特点,是其他语言所没有的。,8.1面向对象仿真技术,(6)封装性将一个对象的数据和操作过程组合起来,然后将其封装并限定在一严格的范围内,只能被同类中的操作过程直接访问,不允许其它类的对象的介入,这称为封装。可以理解为一个模块的内部状态和实现方法完全隐藏在模块内部,模块间的依赖性很小,或者说封装的方法就是把应用程序分解为较小的功能组件。(7)多态性在收到消息后,对象要予以响应,不同的对象收到同一消息可产生不同的结果,这一现象称为多态性。应用多态性,用户可以发送一个通用的消息给多个对象,每个对象按自身的情况决定是否响应和如何响应,
8、这样,同一消息就可以调用不同的方法。,8.1面向对象仿真技术,(8)动态联编在面向对象程序设计语言中,消息的传递用过程调用的方式来实现。联编是把过程调用和响应调用的执行码结合在一起的过程。在一般的程序设计语言中,这个过程在编译时进行,叫做静态联编,而面向对象程序设计语言采用动态联编的方式,即在运行过程中进行联编。这是由类的继承性和多态性决定的,面向对象程序难以静态地确定要执行的代码,而只能在运行过程中动态找到响应方法,并把它和代码加以结合。,8.1.2 UML统一建模语言,20世纪80年代末90年代初,在专著、论文或技术报告等形式提出的OOA/OOD方法或OO建模语言有近50种以上,这些面向对
9、象方法各自有一套概念、定义、表示法、术语和使用的开发过程,它们之间的细微差别使人觉得不知依据哪个概念更好,特别是对于非专业的读者。从1994年开始,美国Rational软件公司的G.Booch、J.Rumbaugh和L.Jacobson把他们各自提出的方法统一并吸收了许多其他面向对象的方法,于1997年9推出了UML1.1并提交到OMG(Object Management Group),同年11月被OMG采纳。统一建模语言(UML:Unified Modeling Language)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系
10、统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。,8.1.2 UML统一建模语言,UML的概念模型包括三方面的内容:UML的基本构造块、支配这些构造块如何放在一起的规则和一些运用于整个UML的公共机制。本书简单介绍UML的基本构造块的内容,请感兴趣的同学参考有关UML的书籍。UML的构造块有3种构造块:事物、关系和图。(1)事物事物是对模型中最有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。在UML中的事物有4
11、种:结构事物(structural thing)、行为事物(behavioral thing)、分组事物(grouping thing)和注释事物(annotational thing)。结构事物:通常是模型的静态部分,描述概念或物理元素。包括类、接口、协作、用况、主动类、构件和节点这7种元素。,8.1.2 UML统一建模语言,行为事物:是UML模型的动态部分,描述了跨越时间和空间的行为,共有2类行为事物:交互和状态机。前者由在特定语境中共同完成一定任务的一组对象之间交换的消息组成,后者描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。分组事物:是UML模型的组织部分,是一些由模型
12、分解成的“盒子”,最主要的分组事物是包。注释事物:是UML模型的解释部分,这些注释事物用来描述、说明和标注模型的任何元素。(2)关系UML中有4种关系:依赖(dependency)、关联(association)、泛化(generalization)和实现(realization)。,8.1.2 UML统一建模语言,依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义;关联是一种结构关系,描述对象之间的连接;泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象;实现是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执
13、行的契约,实现关系主要用在一是接口和实现它们的类或构件之间,二是用况和实现它们的协作之间。(3)图UML最常用的9种图是:类图;对象图;用况图;顺序图;协作图;状态图;活动图;构件图;实施图。,8.1.2 UML统一建模语言,类图(class diagram):类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。图8.1.1为自动柜员机(ATM)系统的取钱使用案例的类图。,8.1.2 UML统一建模语言,图8.1.1 ATM系统的取钱使用案例的类图,8.1.2 UM
14、L统一建模语言,对象图(object diagram):对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。用况图(Use Case diagram)它显示用况与角色及其相互关系,从用户角度描述系统功能,并指出各功能的操作者。图8.1.2表示了自动柜员机(ATM)系统的用况图,8.1.2 UML统一建模语言,图8.1.2 自动柜员机(ATM)系统的用况图,8.1.2 UML统一建模语言,顺序图(sequence diagram):顺序图显示对象之间的动
15、态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。合作图(collaboration diagram):合作图和顺序图相似,显示对象间的动态关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。,8.1.2 UML统一建模语言,状态图(statechartdiagram):状态图在UML中也称状态机。它表现一个对象或一个交互在整个生存周期内接受刺激时的状态序列以及它的反应与活动,附属于一个类或一个方法。状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充,在实际效用上并
16、不需要为所有的类画状态图,仅为那些有多个状态、其行为受外界环境的影响并且发生改变的类画状态图。图 8.1.3表示了银行中帐目的状态图。,图 8.1.3 银行中帐目的状态图,8.1.2 UML统一建模语言,活动图(activity diagram):活动图描述满足用况要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。构件图(component diagram):构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包括逻辑类或实现类的有关信息,有助于分析和理解部件之间的相互影响程度。,8.1.2 UML统一建模语言,实施图
17、(deployment diagram):实施图定义了系统中软硬件的物理体系结构。它可以显示实际的计算面和设备(用节点表示)以及它们之间的连接关系,可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。UML是一种建模语言而不是一种方法。它不包含任何过程指导。也就是说,它并不讲述如何运用面向对象的概念与原则去进行系统建模,而只是定义了用于建模的各种元素,以及由这些元素所构成的各种图的构成规则。UML的功能(表达能力)无疑是很强的,它吸取了多种面向对象方法的概念和图形表示法,但UML也是复杂的,这意味着,无论是学习它还是在工程中使用它,都要付出
18、比以往高得多的代价。但是如果UML的使用是普遍的,复杂的问题又会变得简单,这就是面向对象方法的优点。,8.1.3面向对象的建模与仿真,传统仿真软件主要提供仿真运行的机制和通用的数据结构和函数。建模的任务就是把实际系统中对象之间的相互作用关系转换成在数据结构内部对数据的操作。不同的仿真软件使用不同术语、概念,采用不同仿真建模策略,具有不同语义和语法。因此使用这些软件进行研究就必须利用软件提供的设施来建立仿真模型。面向对象的仿真试图消除这种过程,使用户能够以应用领域熟悉的直观的对象概念来建立仿真模型。建模观念与人们认识现实世界的思维方式一致,因此不需要多少概念上的转换。,8.1.3面向对象的建模与
19、仿真,在面向对象的仿真系统中,系统中的对象往往与现实世界的实际对象一一对应,建模的主要任务就是把系统类库中提供的对象,进行适当的修改与组合形成仿真模型,而且用户也可以根据问题的需要自己建立适当的对象,并可以保存在系统类库中。这种方法既有利于预定义对象的方便性,也具有用户建立对象的灵活性。在面向对象的仿真中组成系统的对象是仿真的主要成分。Shannon清楚地描述了仿真对象的概念,指出:“仿真模型的目的就是用一组杂乱五章的对象及其相互关系组织成一个系统的整体,而这个整体将显示这些关系相互作用的效果”。Booch研究了面向对象的分解与功能分解之间的区别,认为在许多情况下,面向对象分解是更为自然的分解
20、,并提出了面向对象建模的一般步骤:,8.1.3面向对象的建模与仿真,确定构成系统的各个组成 部分和它们的属性;确定每个对象的操作和功 能;确定每个对象相对于其他 对象的可见度;,确定每个对象的接口;实现每个对象。,具体地说就是,第一步把系统分解成在问题空间活动的实体或对象,这些对象应当是系统中的活动实体,相似的对象可以分组成对象类。第二步,定义对象的操作,用以刻画对象或对象类的行为特征。操作的定义确定了对象的静态语义,通过定义每个对象必须遵守关于时间和空间上的约束,可以确定每个对象动态行为。第三步确定对象或对象类之间的静态关联性,即确定每个对象需要与哪些对象进行通信。第四步确定对象的接口。接口
21、是对象与外界进行通信的唯一通道,它确定了对象之间以及与仿真环境进行通信的形式。最后一步是为每个对象选择一种适当的表达,并实现上一步确定的接口。,8.1.3面向对象的建模与仿真,面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具。它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体,从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机和人工智能的结合。其优点体现在:(1)可理解性 面向对象仿真对设计者、实现者以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类
22、似人们熟悉的实际系统的对象的图形或图像来表示。用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。,8.1.3面向对象的建模与仿真,(2)可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库,用以保存以前建立的模型。模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以建立新的对象,并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施,通过修改现有的类,可以建立各种应用中所需要的特殊对象。(3)模块性 面向对象的仿真是模块化的,对象作为模型,已知对象的
23、所有信息都保存在该模块中,因此不需要特殊的过程来寻找相应的信息。这种信息的封装意味着容易改变一个对象的含义或修改其性能,而且不会影响其他的对象。,8.1.3面向对象的建模与仿真,(4)图形用户界面 面向对象仿真系统中的对象往往表示实际系统中的真实实体,因而在系统中可以用相似的图形或图像来表示,因此更便于建立非常直观的图形用户界面。用户可以直接在屏幕上建立系统的图形描述,直观地构造仿真模型。在仿真过程中利用动画显示仿真模型地运行过程,各种仿真统计数据也可以利用图形来显示。这种图形表达能力对于用户了解仿真过程、理解仿真结果都有很大帮助。(5)仿真与人工智能的结合 在面向对象的仿真中,对象封装了它们
24、的功能,而功能可以包含智能。因而利用人工智能与专家系统的方法可以在功能中嵌入智能,使对象也具有决策与学习能力。仿真与人工智能的结合可以增强仿真的能力。在基于知识的仿真系统和专家仿真系统方面,许多学者已进行了广泛的研究,表明了人工智能与专家系统在辅助仿真建模、仿真结果的解释和仿真模型灵敏度分析等方面的重要作用。,8.1.3面向对象的建模与仿真,(6)并行仿真 面向对象的仿真是在多处理器上并行执行的面向对象的仿真。对于仿真封装了所有的信息,因而每个对象都能按分配给自己的处理程序执行它的功能。这样,对象在某种程度上可以相对独立地运行。正是由于对象之间地这种相对独立性,产生了并行仿真执行的可能性。仿真
25、的并行执行可以极大地降低仿真时间,允许仿真更多的对象,能够实现更详细的仿真。离散事件系统仿真是面向对象方法最适合的应用领域之一,这是因为面向对象的离散事件系统仿真和面向对象的程序设计一样都是以对象为基础建立系统的结构,面向对象与仿真的一致性在这里得到很好的体现。目前主要应用在制造系统,因为制造系统的物理组成部分很容易直观的用对象来进行描述。,8.1.3面向对象的建模与仿真,由于连续系统的模型通常是用微分方程来描述的,仿真算法主要是数值积分法及离散相似法,它与离散事件系统的模型及算法有很大的不同,所以在应用面向对象方法上,也有所不同。对连续系统进行面向对象建模,可以把常用的模块化建模看作是一种广
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 现代 仿真技术
链接地址:https://www.31ppt.com/p-5313520.html