硕士论文——基于虚拟现实的化工厂应急救援客观对象推理系统的研究与设计_第1页
硕士论文——基于虚拟现实的化工厂应急救援客观对象推理系统的研究与设计_第2页
硕士论文——基于虚拟现实的化工厂应急救援客观对象推理系统的研究与设计_第3页
硕士论文——基于虚拟现实的化工厂应急救援客观对象推理系统的研究与设计_第4页
硕士论文——基于虚拟现实的化工厂应急救援客观对象推理系统的研究与设计_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北 京 化 工 大 学 硕士研究生学位论文硕士研究生学位论文 题题 目目 基于虚拟现实的化工厂应急救援基于虚拟现实的化工厂应急救援 客观对象推理系统的研究与设计客观对象推理系统的研究与设计 研研 究究 生生 专专 业业 软件工程软件工程 指导教师指导教师 日日 期期: 年年 月月 日日 基于虚拟现实的化工厂应急救援基于虚拟现实的化工厂应急救援 客观对象推理系统的研究与设计客观对象推理系统的研究与设计 摘摘 要要 石油化工的生产加工是我国国民经济的支柱型产业,在为国家创造 价值、为百姓提供服务的同时,石化企业运作过程中难免会出现一些安 全事故,这不仅影响了企业的正常运转,也降低了企业积极的社会影响 力。对于安全生产事故的紧急处理方案一直是石化企业工作的重点,一 般的实施办法是通过实地演练的模式来组织员工进行应急演练的培训。 但这样的工作模式需要预先组织人员,协同不同部门的工作,制定标准 演练流程,从而导致实际演练过程往往过于单一且流于形式,无法有效 提升员工素质。因此,企业迫切需要一种新的应急演练培训模式,使其 不仅能够达到培训员工处理事故应变能力的目的,也能为企业节约时间、 固有资源等成本。 根据企业的实际需求,研究人员设计出不同的模拟仿真系统,包括 案例专家系统、模糊专家系统、基于预案的推理系统等。这些仿真系统 在一定程度上解决了企业的问题,但由于企业安全事故类型多样,因而 需要花费大量的精力来根据不同的实际演练需求定制不出的仿真演练流 程,或者仿真系统只能按照标准流程进行演练,无法从根本上解决企业 训练员工处理不同类型的紧急突发生产事故应变能力的目的。 在这样的背景下,本文提出了以客观对象为推理节点的推理仿真机 制。该机制的核心思想是不依赖于标准演练流程,将演练过程所用到的 关键设备封装成独立的客观对象,客观对象自身状态的变化会导致其它 对象的状态变化,从而产生一系列连锁反应,达到训练员工在真实事故 发生情况下如何进行应急处理的目的。 该客观推理机制具体的运作流程分为如下四步。首先,根据石化厂 区真实设备运作关系建立不同客观推理对象的逻辑关系树,并将其以状 态节点的形式记录在 XML 配置文件中;其次,客观对象推理机通过读 取配置文件信息,构建以操作设备为对象的逻辑推演关系,包括正向推 演、表达式推演、可逆推演和条件分支推理;再次,通过 luabind 连接客 观推理机和脚本框架,以推理对象的状态为基本单位,编写对应的设备 执行流程内容的脚本文件;最后,基于通讯模块将逻辑推演结果包装成 消息,发送给三维虚拟仿真客户端,达到推演结果动态显示的目的。 本文提出的客观推理仿真机制已经在某石化企业罐区应用并取得显 著效果。实际应用过程中,参演人员可以选择系统内置角色来完成现场 指挥官指令的任务,其操作会直接改变关键设备的状态,客观对象推理 机根据设备状态的改变来推导出不同的演练流程。客观推理机制提高了 应急演练的适应性和多样性,同时结合虚拟现实技术将演练过程以三维 影像的形式体现出来,增加了参演人员的沉浸感体验,对于提高石化企 业员工处理突发安全事故的能力有积极的促进作用。 关键词关键词:虚拟现实,石油化工,应急救援,客观对象推理系统 THE RESERCH AND DESIGN OF OBJECTIVE INFERENCE SYSTEM OF CHEMICAL PLANT RESCUE BASED ON VIRTUAL REALITY ABSTRACT Petrochemical production and processing is the pillar industry to our national economy. It makes contribution to the economy of country and providing services for many people. As we all know, it is difficult to avoid any accident for petrochemical companies during the operation, which not only affects the operation of enterprises, but also makes some negative impact to the enterprise. So the petrochemical enterprises focus on the emergency plan for safety accident, the general way is to organize employees to perform the training of emergency drill on the real field. This kind of model needs to pre- organize staff in different departments, and to establish the standard process, which always makes the process too single to enhance the quality of staff effectively. Therefore, its urgent for enterprises to find a new emergency drill training model, which can not only improve the ability of dealing with accidents, but also save time and other natural resources for businesses. According to the actual needs of enterprises, the researchers designed different kinds of simulation system, including the case expert system, the fuzzy expert system, and reasoning systems which based on plans. To some extent, those simulation systems has already solved some business problems, but because of different kinds of safety accidents types ,enterprise must take a lot of energy to establish various exercise depending on the actual demand. On the other hand, some kinds of inference simulation system can only be carried out in accordance with the standard process drill, which will not be able to meet the purpose of the enterprise to enhance the ability of their employees when they are dealing with different types of accidents. In this background, this paper presents a reasoning mechanism of the simulation which is based an objective object node for reasoning. The main idea of this mechanism is independent on the standard procedure, this mechanism will encapsulated this key equipment into independent objective object, the states of objective object which changes itself that can lead to other states changes. Therefore, this can produce a series of chain reaction which can train employees to deal with an emergency in a real accident situation. The specific process of this mechanism can be divided into the following four steps. Firstly, according to the real equipment operations of petrochemical factory, we can create a reasoning logic tree of different objective objects, and put their state nodes into the XML configuration file; secondly, objective object inference system will build object logical relations of operating equipment by reading the configuration file information, including forward inference, expression inference, reversible inference and conditional branching inference; thirdly, we can connect objective inference system and script framework through luabind engine. And then we can write the script file of the equipment of perform process based on the states of objects; finally, the results of logical inference will be packaged into a message based on the communication module, and then sent to the virtual reality simulation client,to achieve the goal that inference results can be displayed dynamically. The simulation mechanism in this article has been applied in some petrochemical enterprise and achieved a remarkable results.In the process of practical application, real person can select virtual role in the system and perform the task of commander. His action will directly change the state of some key devices. According to the variation of device states, objective object inference system can lead to a series of different training processes. Objective reasoning mechanism can improve the adaptability and diversity of emergency drills. At the same time, the results can be displayed based on virtual reality technique which increased the immersive experience of participating personnel and improve the petrochemical enterprise staffs ability to deal with sudden accidents. KEY WORDS: virtual reality, petrochemicals, emergency rescue, inference system based on objective object 目目 录录 第一章第一章 绪论绪论1 1.1 课题的研究背景1 1.2 国内外研究现状2 1.3 课题的主要工作内容3 1.4 论文的组织结构4 第二章第二章 关键技术研究与系统框架设计关键技术研究与系统框架设计7 2.1 关键技术研究7 2.1.1 XML 和 TinyXML 7 2.1.2 Lua 和 Luabind9 2.1.3 推理冲突解除策略.10 2.1.4 虚拟现实仿真平台功能简述.10 2.1.5 网络通信交互平台功能简述.11 2.2 客观对象推理系统总体框架设计11 2.2.1 系统总体框架设计思路.12 2.2.2 客观对象推理系统运作流程.15 2.3 本章小结16 第三章第三章 客观对象推理系统功能模块的详细分析设计客观对象推理系统功能模块的详细分析设计17 3.1 状态配置解析模块的详细分析设计17 3.1.1 状态集合设计.18 3.1.2 状态转移集合设计.19 3.1.3 表达式集合设计.19 3.1.4 表达式转移集合设计.20 3.1.5 表达式状态转移集合设计.20 3.2 客观对象推理机模块的详细分析设计21 3.2.1 正向推理机制设计21 3.2.2 可逆推理机制设计.22 3.2.3 表达式推理机制设计23 3.2.4 条件分支推理机制设计24 3.3 应急救援预案脚本模块的详细分析设计25 3.3.1 推理机和 lua 脚本的协同工作机制.25 3.3.2 lua 协程和虚拟机26 3.4 通信模块的详细分析设计27 3.4.1 基于时效性和准确性选择通信协议27 3.4.2 UDP 通信协议的实现基础.27 3.5 本章小结28 第四章第四章 客观对象推理系统功能模块的业务逻辑实现客观对象推理系统功能模块的业务逻辑实现29 4.1 状态配置解析模块的实现29 4.1.1 实体对象的创建29 4.1.2 实体的状态、表达式及其映射关系的创建.31 4.2 客观对象推理机和 lua 脚本交互实现推理功能.32 4.2.1 基于状态关系的协同交互推理功能的实现32 4.2.2 基于表达式和条件分支关系的协同交互推理功能的实现35 4.3 本章小结38 第五章第五章 化工厂应急救援演练应用客观对象推理系统的效果化工厂应急救援演练应用客观对象推理系统的效果39 5.1 基于污水处理事故展现四种推理机制效果39 5.2 基于反应炉罐顶爆炸事故展现混合推理的效果43 5.3 本章小结45 第六章第六章 结论与展望结论与展望47 6.1 结论47 6.2 展望48 参参 考考 文文 献献49 致致 谢谢51 研究成果及发表的学术论文研究成果及发表的学术论文53 作者和导师简介作者和导师简介55 Contents Chapter 1 Introduction.1 1.1 The research background of this paper .1 1.2 Research status2 1.3 The main work of this paper .3 1.4 Paper organization.4 Chapter 2 Research On Kernel Techniques And Design On System Framework .7 2.1 Research On Kernel Techniques.7 2.1.1 XML and TinyXML.7 2.1.2 Lua and Luabind 9 2.1.3 Remove conflict strategy10 2.1.4 The main function of virtual reality platform 10 2.1.5 The main function of network communication platform.11 2.2 The overall framework design of inference system based on objective object.11 2.2.1 The overall design thinking of system framework.12 2.2.2 The operating process of inference system based on objective object.15 2.3 Chapter summary16 Chapter 3 The Detailed Analysis And Design Of Function Modules Of Inference System Based On Objective Object.17 3.1 The detailed analysis and design of state configuration module.17 3.1.1 The design of state set18 3.1.2 The design of state transition set19 3.1.3 The design of expression set19 3.1.4 The design of expression transition set20 3.1.5 The design of transition set based on expressions and states.20 3.2 The detailed analysis and design of inference module21 3.2.1 The design of forward inference mechanism.21 3.2.2 The design of reversible inference mechanism22 3.2.3 The design of expression inference mechanism.23 3.2.4 The design of conditional branching inference mechanism.24 3.3 The detailed analysis and design of script module based on emergency rescue.25 3.3.1 The cooperative work mechanism of inference module and script module.25 3.3.2 The coroutine and virtual machine of lua script.26 3.4 The detailed analysis and design of communication module27 3.4.1 The choice of communication protocol based on timeliness and veracity.27 3.4.2 The foundation of realization of UDP communication protocol .27 3.5 Chapter summary28 Chapter 4 The Business Logic realization of Function Modules Of Inference System Based On Objective Object.29 4.1 The realization of state configuration module 29 4.1.1 The establishment of entity object .29 4.1.2 The establishment of states, expressions and transition set .31 4.2 The realization of inference function based on inference module and script module 32 4.2.1 The realization of inference function based on cooperation of states relationship32 4.2.2 The realization of inference function based on cooperation of expressions and conditional branch relationship .35 4.3 Chapter summary38 Chapter 5 The Effect of Chemical Plant Emergency Rescue Drills applies Inference System Based On Objective Object39 5.1 The effects of four inference mechanism based on sewage treatment accident .39 5.2 The effects of mixed inference based on reactor tank explosion accident43 5.3 Chapter summary45 Chapter 6 Conclusion and outlook47 6.1 Conclusion.47 6.2 Outlook48 ReferencesReferences49 AcknowledgementsAcknowledgements51 ResearchResearch AchievementsAchievements AndAnd PublishedPublished PapersPapers53 IntroductionIntroduction OfOf AuthorAuthor AndAnd SupervisorSupervisor55 第一章第一章 绪论绪论 1.11.1 课题的研究背景课题的研究背景 化工生产作为国民经济的基础一直备受关注,从建国初期大规模建立化工厂进行 工业生产开始,时至今日,不仅部分化工设备因服役年限过长而老化,而且化工生 产过程却变得更加精细和复杂,如若此时操作工人进行施工作业时操作不当,那么 极有可能对环境造成污染,更糟糕的情况则会威胁到人民生命财产的安全。 为了把灾害造成的损失尽可能降低,石油化工企业领导人高度重视化工生产过程 中的安全问题,不仅制定了各项标准操作流程和问责制度,而且积极组织工作人员 进行实际的应急救援演练,以提高员工对灾害的应急处理能力。一般而言,安全部 门会协调车间、调度室、中控室、外操间等多个场所的员工,集中开会针对某一类 灾害指定标准应急救援预案,然后再规定时间地点,由指定的人员进行制造灾害、 拉响警报、现场消灭灾害、签到开会总结等流程1。虽然企业传统的应急救援培训模 式在一定程度上有利于降低灾害损失,但已经无法方便快捷地提高所有员工处理不 同类型安全事故的应急救援能力的目的,主要体现在:应急演练受限于时间和资金 成本,不能随时随地演练;需要各部门专门指定人员参与演练,无法对所有人员进 行训练;每次演练的参演人员只是按照标准流程完成自己的任务,以致于无法应对 其它类型的灾害。 针对这样的情况,结合新时代计算机辅助工业生产和管理的宗旨,研究人员开始 用计算机领域解决问题的思路来帮助企业建立员工辅助训练系统。典型代表是:基 于规则知识的推理系统2、基于案例的推理系统3,基于有限状态机的推理系统4-5 等。这些推理系统要么只是以输入输出的简单问答形式来培训员工,演练过程不具 有连贯性;要么是根据某一类型的灾害进行标准流程的推演,当灾害类型变化时, 就必须重新编写计算机能识别的预案流程来适应变化。 由于已经存在的计算机辅助训练系统并无法满足石化企业的切实需求,所以本文 提出了以客观对象推理基本单位的推理系统。该推理系统以石化厂区运作过程中的 关键设备为对象,建立不同对象之间的逻辑推导关系,演练过程中只要关键设备的 状态发生变化,就有可能导致不同的演练流程,从而避免了特定任务只能由特定参 演人员完成的限定,同时摆脱了演练流程必须根据既定预案进行推演的限制,让参 演人员能体会到灾害类型的多样性,从而达到训练参演人员对不同类型灾害的应急 处理能力。 1.21.2 国内外研究现状国内外研究现状 安全生产不论在任何时候都是人们关注的重点,尤其对于突发事故的应急救援处 理方案,更是直接关系到人民生命财产的安全6-7。应急救援演练的目的是为了迅速 让参演人员熟悉演练流程,掌握救援技能,减少实际救援过程的损失。随着计算机 技术的快速发展,传统的实战演练类型的应急救援已经无法满足企业的需求,研究 人员致力于利用虚拟现实技术,将现实世界对象投影到计算机虚拟世界中,让用户 产生强烈的沉浸感8以达到训练员工救援能力的目的。虚拟现实技术与传统应急救援 相结合,使得员工的训练工作不受时间、地点或者天气条件的限制。虽然虚拟现实 技术能够实时显现救援流程的进度,对于提升员工救援能力有很大帮助,但作为一 种表现手段,其内部需要具有复杂逻辑关系推演功能的模块来改变模拟演练的流程, 这便是本文所设计的推理机所应当完成的功能。 作为应急救援演练的核心模块,推理机的任务是按照已经完成的状态信息演算出 接下来需要执行的演练状态。目前,国内外对于应急救援方向的推理机制研究有以 下成果。 1.基于条件产生式的专家系统9-10 这种类型的专家系统是以条件结果为根本评判依据,将实际演练过程中所有 的情况都以 if-then 的形式进行规则库的存储。匹配的过程则是根据输入的条件在规 则库中进行匹配,匹配成功则将新产生的结果作为已知条件存储来更新知识库。如 果已知条件过多,导致符合多个 if-then 产生式规则,那么就要选择合适的冲突消解 策略来保证至少有一个产生式被执行。 这类系统通常承担着辅助人工进行应急救援策略制定的任务,当灾害发生时,指 挥人员可以利用这类专家系统,通过输入灾害发生时的特定环境因素,读取预先制 定的推理规则,这样可以在最短的时间得到最优解决方案,从而辅助指挥官进行对 救援工作进行人力资源分配。 2.基于案例的专家系统11 由于条件产生式专家系统规则库需要将所有可能涉及到的救援过程都以 if-then 的形式预先存储,规则库构建难度过大,并且可能由于缺少条件而造成推理的死锁。 因此,研究人员以面向对象的思想设计实现了基于案例的专家系统。 这类系统的特点在于规则库中存储的都是不同的事故对象,研究人员将实际的事 故按照时间、地点、天气等属性进行描述存储。案例匹配的过程就是对这些属性进 行模糊匹配的过程,这样有利于指挥官快速找到同类型事故及其应急处理方案,从 而能够辅助指挥官进行救援工作的部署。 3.基于固定预案流程的专家系统12 以上两类专家系统的根本用途还是在于辅助指挥官对事故现场进行救援工作的部 署,但却没有考虑到对普通参演人员的训练。而在实际救援过程中,救援人员的灾 害处理熟练度和应变能力会直接影响应急救援结果。正是出于这样的考虑,研究人 员摒弃了依据规则的推理机制,预先将救援流程编制成标准预案,通过状态节点推 理的机制,指导参演人员按照指定的步骤完成应急救援演练,同时利用虚拟现实技 术将演练的推理过程实时呈现出来,从而快速有效地培养救援人员的职业素质。 这类专家系统虽然具有培训不受时间地点限制、适应性和用户沉浸感强等特点, 但由于演练流程必须按照预先定制的标准流程执行,所以演练过程中常会出现状态 无法推进的情况,对于多事故类型的企业适用性并不强。 在综合了以上三种推理机制的优点后,本课题将虚拟现实技术、应急救援方案、 客观对象推理机制结合起来,使救援流程的推演基于触发式的设备状态的改变,参 演人员的不同操作就可能推演出不同的应急救援流程,以此来提高参演人员对于突 发事故的应急处理能力。 1.31.3 课题的主要工作内容课题的主要工作内容 根据石化厂区的实际项目需求,在进行需求分析和系统设计的同时考虑到系统的 扩展性13-15。采用客观对象推理机和脚本紧密结合的开发方式,客观对象推理机负 责不同设备状态之间逻辑关系的建立,脚本负责每个设备的每个状态中的具体执行 任务的编写工作16-17。这样的开发模式在系统升级时,只需要对新增设备添加逻辑 推导关系以及对应的不同状态内的执行语句序列,而不需要改变项目整体的代码框 架,不仅提高了系统的稳定性,也缩短了系统升级所花费的时间周期。本课题所做 的主要工作内容分为以下几个方面: 1. 客观对象推理系统的正向推理机制 本文所提出的正向推理机制是以客观对象为载体进行逻辑关系树形模型的建立, 不同设备维护自身的状态信息,当受到外界因素影响而改变了自身状态时,推理机 轮询是否有某个设备的某个状态满足状态迁移的条件,从而决定是否从一个状态推 导到另一个状态。这种状态迁移的具体表现可能就是阀门变成打开状态,从而导致 物料罐周围的喷淋阀开始喷水。 2. 客观对象推理系统的表达式推理机制 若想实现客观对象之间的状态迁移,不仅要保证客观对象关联的前置客观对象的 关键状态已经完成,还要保证此客观对象本身的触发条件得到满足。对于客观对象 自身执行条件的约束,便是表达式推理的本质作用。这种推理机制不是作用于设备 A 到设备 B 的转移,而是用于限制设备 A 自身运转所要达到的条件。如物料罐材质 必须达到着火点才会产生火焰。 3. 客观对象推理系统的可逆推理机制 可逆推理机制是为了防止救援过程中,救援人员因疏忽大意而做出的并非本意的 设备操作。由于在客观对象推理的过程中,任意设备的状态改变都有可能导致其它 设备产生变化,因而设计这样一种可逆推理机制十分必要,有助于在操作人员进行 错误操作后,仍可以通过这种机制返回到上一个安全状态,增加了救援演练的适应 性。 4. 客观对象推理系统的条件分支推理机制 区别于正向推理机制可以同时触发多个救援流程,条件分支推理机制用于同一时 刻之后,只能产生一个救援演练流程的情况。这种机制主要用于对关键设备状态改 变后的救援流程分支的选择问题中,参演人员对于设备运行状态的改变最终会与预 先制定的 pattern 值进行匹配,只有匹配值为 true 时,这个演练分支才有被推导的可 能。 5.化工厂应急救援客观对象推理系统的设计与实现 根据对石化厂区设备运转逻辑关系进行需求分析,同时考虑系统日后升级换代过 程中的时间成本和程序健壮性,采用面向对象的模块化编程思想,整体的客观对象 推理系统分为四个模块,分别为:状态配置解析模块、客观对象推理机模块、应急 救援预案脚本模块、通信模块。本系统先通过状态配置解析模块将 XML 文件中的信 息建立客观设备的逻辑推导关系树;接着再通过客观对象推理模块轮询检查状态集 合并执行所有满足条件的状态;然后通过 luabind 实现脚本和推理机的交互通信,完 成救援演练的执行和挂起;最后,利用通信模块将推理结果发送给应急救援三维仿 真部分,实现推理结果的实时显现功能。 本文提出的基于客观对象的推理机制,在一定程度上解决了石化厂区对于现存系 统中编制不同应急救援预案脚本的困难。系统初期需要根据石化厂区的设备运转关 系和数据建立庞大复杂的客观对象逻辑推演关系树,之后的演练流程是根据每一次 演练过程中参演人员的实际操作而动态触发的,因而有利于提高参演人员对不同灾 害的应急处理能力,同时也增加了救援演练的多样性和适应性。 1.41.4 论文的组织结构论文的组织结构 本文的基本框架分为以下六个部门,对每个章节的概括性描述如下所述: 第一章 绪论 概括性地交代了本课题的研究背景、国内外研究现状和课题的主要工作内容。本 课题是根据石化厂区需要提高员工应急救援水平的实际需求,结合计算机虚拟现实 技术、推理机制,从而完成基于虚拟现实的化工厂应急救援客观对象推理系统的研 究设计与实现。 第二章 关键技术研究与系统框架设计 主要是对本课题涉及到的理论知识和应用技术进行简单的介绍,并说明选择这些 技术和理论的原因及优点。本课题在不同的模块实现中分别采用了 XML、TinyXML、LUA、Luabind 以及 UDP 传输机制等技术。 以这些关键技术为基础,根据石化厂区提出的需求,对系统的整体框架进行总体 的分析和设计,考虑到系统的扩展性,采用模块化变成思想,将功能划分为不同模 块,由模块构成整体运转的系统。本课题所设计的系统共有四个模块,分别为:状 态配置解析模块、客观对象推理机模块、应急救援预案脚本模块和通信模块。 第三章 客观对象推理系统功能模块的详细分析设计 主要对各模块需要完成的功能进行划分,并根据划分结果,选择相关领域合适的 理论和技术对模块功能进行详细设计,以方便后期实际开发的模块定性工作。如: 对于状态配置解析模块,该模块的功能是制定特定格式的 XML 配置文件,从而让客 观对象推理机能够读取文件来构建逻辑关系推导树,因而需要提前对设备进行分类, 从而将不同设备放置在不同的 XML 节点下。 第四章 客观对象推理系统功能模块的业务逻辑实现 主要是通过算法流程图、类的继承关系图和功能的核心实现代码来描述不同模块 的具体实现策略。这一章节是基于各模块分析与设计的结果来进行实际开发,将结 果描述中的共性部分抽象成类,以类之间的关系来描述实际功能之间的关系。 第五章 化工厂应急救援演练应用客观对象推理系统的效果 结合实际的石化厂区罐体顶端爆炸的应用实例,展示客观对象推理机的触发条件 和推导结果,由此进一步说明该系统对于提高员工应急救援水平的积极意义。 第六章 结论和展望 对本课题的创新点进行总结性的描述,说明系统所能应用的场景和条件,并对系 统中有待改进的问题和未来发展方向提出个人见解。 第二章第二章 关键技术研究与系统框架设计关键技术研究与系统框架设计 基于虚拟现实的化工厂应急救援客观对象推理系统是应用于化工厂救援模拟演练 的任务流程推理的系统,目的是满足化工企业快速提高员工应急救援能力的目标。 为了达到这样的目标,就要求系统具有良好的扩展性,从而满足快速构建救援过程 推理模型的需求。因此,本章结合化工应急救援演练过程中的实际问题,先分别阐 述了解决这些问题所需要用到的关键技术,并对其特性进行简要的分析。然后以此 为基础,提出了客观对象推理系统的总体框架,同时阐述了在此框架下,客观对象 推理机完成应急救援演练任务推理的整体流程。 2.12.1 关键技术研究关键技术研究 推理系统的设计开发过程中,首先就需要考虑如何建立不同客观对象的逻辑关系, 也就相当于知识库的构建。由于推理过程中会涉及到不同状态的转移,而且还要考 虑不同类型状态的扩展性,因此本课题选用 XML 数据格式来构建推理机运行所必须 的知识库,同时利用 TinyXML 开源引擎对知识库进行存储和读取。其次,本课题设 计的推理机是以状态为推导节点,但状态中可以包含若干执行语句,这项功能是由 lua 脚本负责完成的,而 lua 脚本和推理机之间的通信功能是由开源引擎 luabind 提供 的。选择 lua 是因为其执行速度快,且 lua 的协程机制可以很好地与多线程机制相互 配合,保证应急演练按照程序可控的先后顺序执行。接着,考虑到推理过程中可能 有若干相悖的状态都得到执行权,所以引入冲突解除策略来保证演练推理流程的正 常执行。最后阐述了虚拟现实仿真平台和网络通信交互平台的基本功能,本课题依 托于这两个平台实现推理效果的展现。 2.1.12.1.1 XMLXML 和和 TinyXMLTinyXML XML 是一种简单灵活的文本数据格式18-19,最初是为了满足大规模电子出版印 刷的需要而设计,经过多年的发展,现在已经成为不同平台不同系统上进行不同类 型数据交换的有效手段。和 HTML 一样,XML 也是基于 DOM 模型20(即:文档对 象模型 Document Object Module)来进行信息数据的存储和传输。这样一种模型支持 自定义标签定义功能,从而很容易区分数据的属性字段和信息内容字段,并能将这 些数据封装成树形结构的节点,实现了数据的结构化表达。 一个 XML 文档对应一个 DOM 模型,文档中的一个嵌套属性定义格式(如 )对应模型中的一个树形节点,文档中不同属性的缩进表现形式对 应模型中不同树形节点的连接关系。经过解析后,一个 XML 文档最终形成一个由根 节点、中间节点和叶节点组成的多叉树结构。正是由于这样一种程序中间层文件格 式的出现,解决了众多应用程序开发商由于数据写入和读取格式不统一而导致无法 进行数据交换的问题。 由于 XML 支持自定义格式的标签内容,因而也常常作为静态强制类型语言的扩 展型语言来作为标准程序框架的一部分,作为配置文件实现程序运行所需资源的动 态加载。如此一来,不仅在程序升级时减少整体代码修改量,缩短二次开发周期, 同时也提高了系统稳定性。 在介绍了 XML 特性之后,本文还需要介绍如何用程序化的方法对 DOM 模型进 行新增节点、删除节点、修改节点和查询节点的操作,本课题选取优秀的轻量级开 源 XML 解析器 TinyXML21作为文本解析工具。以下案例是以 XML 格式语言对现 实生活中图书馆的抽象描述,以及经过 TinyXML 解析后形成的 DOM 模型,如图 2- 1 所示: C+ Program Design Giada De Laurentiis 2005 ISBN 7-309-04547-5 . . 图图 2-1 XML 文档解析为 DOM 模型 Fig.2-1 XML Document Transform into DOM Model 当 TinyXML 读取 XML 文档后便会生成这样一棵多叉树结构,利用其 API 可以 很方便地对树形结构的不同节点进行增删改查的操作。从案例图中就可以看出,若 想修改节点 ISBN 的 value 值,只需要先读取根节点 library,然后找到子节点 book, 对于 book 而言,又是下半部分子树的根节点,从而如此向下遍历,就可以得到树节 点 ISBN 的 value 值,并对其进行修改。 2.1.22.1.2 LuaLua 和和 LuabindLuabind 编程语言按照类型可以分为静态强制类型语言和动态非强制类型语言,后者一般 称之为脚本语言,通过解释器对代码进行解析,从而链接成可执行文件。由于脚本 语言扩展性强、无需编译即可解释运行等特点,因此常被选作静态语言的内嵌脚本 语言,以扩展宿舍程序的功能22。 LUA 脚本语言是由 ANSI C 编写而成,定位是作为嵌入式开发的编程语言而存在, 所以 LUA 仅仅包含了最基本的核心代码函数库,以达到在所有操作系统和平台可以 编译运行的特性,而对于更加高级的特性(如:网络编程和图形界面编程)则是依 靠调用其宿主程序的功能来完成23-24。 LUA 区别于其他解释型语言的特性主要有两点: 第一,内存回收机制。对于 LUA 而言,不仅有自动的内存回收机制,还有显示 的内存计算和回收机制。具体来说,LUA 将没有对象和全局变量引用的内存区域标 记为可回收,这样的内存区域会在不确定的时刻被 LUA 虚拟机回收。除此之外,LUA 还提供当前内存使用情况和显示回收机制,调用 collectgarbage(“count“)可以得到当 前 LUA 虚拟机所用内存大小,调用 collectgarbage(“collect“)可以对可回收内存进行主 动地显示回收操作。 第二,协程机制25。由于 LUA 是基于 ANSI C 编写,在这样的标准框架下并没有 引入多线程概念,可实际开发过程中又无法避免多任务处理的状况,所以 LUA 采用 了协程概念来模拟 C+的多线程机制。LUA 同一时刻只能运行一个协程,但协程的执 行、挂起和终止都是由程序主动控制的,这样的特性使得 LUA 很适合处理具有先后 顺序任务流程,因此也被魔兽世界选作游戏任务插件编写的官方语言。 本课题推理机采用 C+语言编写,而推理状态内的具体执行语言由 LUA 语言编写, 两种语言之间的交互通信在所难免,因而本课题选取了 luabind 作为二者之间通信的 桥梁。luabind 是专门为 C+和 LUA 提供交互服务的开源类库,功能特性如下:对于 lua 而言,支持读取 C+类中的类成员函数、内置类型变量和枚举类型变量;支持利 用不同的函数签名来实现两个同名 C+函数注册使用;支持重载 C+的操作符和重写 C+虚函数;支持设定 C+类对象实例的默认智能指针指向行为。而对于 C+而言, 支持读取 lua 函数;支持 lua 类的导入和继承;支持开启、暂停、终止一个 lua 协程。 正是由于以上强大的交互功能,才真正实现了 C+和 LUA 之间的无缝连接。 2.1.32.1.3 推理冲突解除策略推理冲突解除策略 推理的过程是模拟人类大脑的思考过程,根据已有的条件结论映射关系,结合 当前已经掌握的规则,试图推导出合理可解释结论的过程。在这个过程中,由于推 理中间结论会被当做条件放入规则库中,于是推理过程可能匹配多个先验条件集合, 从而产生相似的或者完全相悖的两个结论,此时就产生了冲突26-27。 对于推理冲突的处理,我们首先希望从源头上加以避免,也就是在设计推理规则 库的时候就考虑到必然存在的推理冲突,对冲突进行分类处理,如避免初始规则库 中出现循环嵌套推理的案例。但这种设计只能保证第一次推理不会产生冲突,由于 新产生的结论又加入了规则库,那么就难免会出现推理冲突的问题。 针对这样的问题,一般的解决方案有两种:其一是尝试性探索方式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论