APP下载

运营轨道交通隧道管养智能决策专家系统研发

2019-10-31刘楚乔吴贤国秦文威王丙苗陈世杰

铁道标准设计 2019年11期
关键词:管养存储器病害

刘楚乔,吴贤国,秦文威,王丙苗,陈世杰,翁 顺

(1.武汉地铁集团有限公司,武汉 430030; 2.华中科技大学土木工程与力学学院,武汉 430074)

引言

近年来,为了缓解大城市地上交通拥堵、运载能力不足等问题,城市轨道交通得到了高速的发展。但是,由于受周边环境、自身负荷、列车运营等方面的影响,其在运营周期内将会发生各种病害,这些病害如果不能被及时发现并进行评估与维修,将有可能威胁公众的生命财产安全。为了确保城市轨道交通地下结构在运营期的安全与稳定,除了需要对其进行长期的监测,实时掌握其结构性能变化,并进行结构整体健康评估外,日常的管理养护工作也必不可少。因此,研发一套城市轨道交通运营阶段结构安全监测与管养系统,具有重要的实用价值与意义。

关宝树,姜松湖等[1]结合隧道维修养护的基本经验,汇集了我国隧道管养专家的知识和经验,通过建立知识库的方法,开发并研制了铁路隧道病害诊断专家系统(TDD)。日本国铁开发的隧道监测养护专家系统是由日本铁道综合技术研究所内的主机和分散在各现场微机终端构成的,终端的功能包括输入病害前置条件、评价健康状态及提示人工巡检项目[2,3]。王波等[4]以厦门翔安海底隧道作为研究背景,对处于多因素作用下的海底运营阶段隧道的结构安全性评价进行研究,开发设计了海底隧道维修养护数据库管理系统、结构安全评价系统以及计算机软件系统,为海底运营隧道安全提供技术支持。而基于Jess(Java expert system shell)的专家系统开发语言则是众多人工智能技术的一种[5],丁鼎等[6]将基于Jess的智能系统成功运用于矿井的通风设计中,该系统能对故障进行快速高效的识别分析,对减少矿井的事故发生、保障矿井安全具有较大的意义。陆耀华等[7]提出了一种使用Jess的开发方法,对提高专家系统效率具有较大作用,并对其中的各项技术进行了详细的解释,经过验证证明此方法的有效性。王溪波等[8]分析了Jess的主要特点和Web的主流开发技术,给出了将Jess嵌入Java程序这一开发基于Web的专家系统的方法,并使用该方法设计一个大学生心理测试专家系统,用系统的正常运行证明了提出方法的可行性和有效性。李存岑等[9]开发基于JESS和J2EE的自动扶梯安全检验专家系统,解决自动扶梯安全检验项目的安全风险无法量化,导致检验结论出现偏差的问题,经过实际应用证明了该系统的准确性和可行性。目前,Jess专家系统开发语言已较多的运用于机械工程、环境工程等领域的维修决策专家系统开发中[10-11],而对于土木工程领域还较少使用[12]。

为了提高管养工作的科学性与高效性,本研究通过调研并参考隧道管养规范以及专家经验总结,形成轨道交通隧道结构病害管养维修措施知识库,通过使用Jess人工智能专家系统开发语言,开发具有管养智能决策以及管养经验知识扩充两项子功能的轨道交通隧道管养决策专家系统功能模块。

1 基于Rete算法的Jess专家系统外壳原理

Jess(Java Expert System Shell)专家系统外壳是一种基于Rete算法的专家系统开发语言[13-14]。它是由美国Sandia国家实验室于1995年以Java为核心技术开发出来的一种专家系统开发语言,其核心主要由事实库、规则库、推理机[15]三部分组成。

其中事实库即工作存储器,它将存储外部传入的事实条件,同时保存推理机中Rete算法保存的上一次模式匹配的临时结果。

规则库则存储利用Jess开发语言编写的各类产生式规则,其中一个产生式规则由前件(Left-hand-side)和后件(Right-hand-side)两个部分组成,前件为规则触发的条件,而后件则是规则触发后将要执行的动作。

推理机中内嵌基于Rete算法的模式匹配引擎、议程以及执行引擎三部分。模式匹配引擎将工作存储器中的事实库与规则的前件进行模式匹配,从而确定执行哪些规则。被激活的规则可能不止一个,当出现多规则同时被激活时,所有被激活的规则就会以冲突组的方式进入议程中,议程将这些触发的规则进行优先级排序,将优先级最高的规则进行触发。被触发的规则进入到执行引擎中,执行引擎将按照规则的后件执行动作,完成推理匹配。

2 基于Jess管养专家系统规则库的建立

建立基于Jess管养专家系统的规则库,即是将现行的管养规范和标准、专家经验以及地方轨道交通集团的企业标准等管养知识归纳整理后,使用Jess专家系统开发语言,编写为一条条病害情况(前件)对应病害维修措施(后件)的产生式规则形式。本文规则库的建立依据现行管养规范、标准、文献资料[16-18],同时调研了武汉地铁集团的企业管养手册、管养工程师经验,将轨道交通盾构隧道常见的裂缝病害、渗漏水病害、劣化剥落病害、沉降及不均匀沉降、隧道断面变形等病害建立了相应的管养规则库。

如果需要推理出某一病害的管养维修措施,则首先需要描述这个病害的情况,程序才能根据病害的情况找出与其适应的管养方法。隧道渗漏水的治理应根据围岩的水文地质条件进行综合分析判断。通常采取“以排水为主,以堵为辅,综合运用截、堵、排”的治水原则进行渗漏水处置。针对不同的渗漏水形态,应采取不同的治水方法,如注浆处理、开槽处理以及修复泄水洞或集水廊道等措施。

而在Jess管养专家系统的规则库中,每条规则的前件即是各种病害措施所对应的病害描述。因此,在依据相关轨道交通管养规范并同时考虑管养专家经验后,形成了如图1所示的病害描述参数,并依此编写规则库与相关程序。

图2 裂缝病害管养规则决策树

图1 病害描述参数

限于篇幅,只给出裂缝病害管养规则库决策树,图2为依据上文所述的相关规范与专家经验建立的裂缝病害管养规则库决策树。对于宽度<0.3 mm的微小裂缝病害,规则库将根据裂缝密度与渗水情况给出针对微小裂缝的管养措施。由于裂缝病害[19]属于一种次生病害,过大宽度的裂缝产生可能是隧道管片的沉降、管片断面的过大变形、围岩空洞等因素的影响而造成的,因此当裂缝宽度达到0.3 mm时,规则库将依据《城市轨道交通隧道结构养护技术规范》对宽度>0.3 mm的裂缝需要查明裂缝产生原因的管养要求,结合监测数据与裂缝表观病害情况,对宽度过宽裂缝推理其病因,从而给出更为准确的管养措施。

建立的渗漏水病害管养规则库决策树,首先根据渗漏水发生的位置(管片环纵缝、管片螺栓孔、管片上裂缝、管片墙面)进行一级判别,判别后的病害将根据渗漏水的渗漏速度、渗漏范围、渗漏水质、螺栓孔密封圈情况等进行二级、三级判别,最终推理出相应渗漏水管养措施。

建立的劣化剥落管养规则库决策树,将根据劣化剥落的半径范围进行一级判别,不同的半径范围具有各自的子决策树,进行一级判别后的病害将进入子决策树中根据劣化剥落的程度、劣化剥落的深度进行后续判别,最终触发与病害最为匹配的管养措施。

沉降病害与断面变形病害的管养措施都比较统一,对于沉降病害,一般均采用微扰动双液注浆的方法进行注浆加固,而对于断面变形病害,主要采用钢环加固的方法以防止断面收敛过大。所以相对于其他病害,沉降病害以及断面变形的病害规则库决策树较为简单,其主要任务从管养措施的推理匹配改变为监测数据的调取,并与GB 50911—2013《城市轨道交通工程监测技术规范》中的监测控制值进行比较。当监测数据超过规范要求的控制值时,触发管养措施。

按照以上管养规则决策树编写的Jess规则库最终将形成*. clp类型的文件。为了保证程序在进行推理匹配时的高效性以及避免规则库中汉字的编码问题,本文将管养措施与规则库分离开来,即将具体的管养措施存放在数据库中,规则库中的管养措施则采用id编码代替,当规则库推理出措施编码后,程序将按照该编码进行数据库索引,最终找到相应的管养措施。

3 基于Jess管养专家系统事实库的建立

管养专家系统的Jess事实库即为一个存储外部传入的病害情况的工作存储器。因此,在建立事实库的时候应该根据描述病害情况的参数类型和参数个数设置相对应的槽,但是由于每一种病害的描述都有其不同的参数个数与参数类型,例如裂缝的病害描述有宽度、长度、深度等8个从用户输入获得的参数,以及拱顶沉降、两拱腰沉降、不均匀沉降等4个从监测数据库中获得的参数,而渗漏水的病害描述仅有渗漏现象、渗漏位置、渗漏范围等3个参数,所以如果按照每种病害的描述参数建立工作存储器,那么不同的病害类型将不能同时适配一个工作存储器。而如果对每一类病害类型都根据其病害参数建立一个固定的工作存储器,那么当需要在管养经验知识扩充模块中添加新的病害维修措施时,这个新的病害维修措施将会由于没有与其适配的工作存储器而不能进行推理匹配。

所以为了满足所建立的工作存储器适配于每一种病害类型,本文在建立的工作存储器中设置了如图3所示的4个槽,分别为两个单字符串型属性槽,一个多浮点数值型属性槽,一个多字符串型属性槽。其中两个单字符串型属性槽分别用来存储传入的病害类型和病害发生位置,而所有关于病害的数值描述类参数,例如沉降值、裂缝宽度等将拼接为数组全部存入多浮点数值型的属性槽,对于像渗漏现象、裂缝发展方向等这种病害的文字描述类参数,由于在设计时每一个文字描述参数都在数据库中存储了一个对应的id,所以程序将首先对传入的文字描述参数进行数据库索引,将其对应的id取出再拼接为数组后全部存入多字符串型的属性槽。

图3 Jess事实库的建立

因为每一种病害在进行推理匹配时都需要向工作存储器中传入病害类型和病害发生位置两个参数,而且这两个参数的类型都是单字符串型,所以依照图3所建立的工作存储器中前两个属性槽均能够适配所有病害。而对于不同病害间具有差异化的参数,由于这些参数一般分为数值型和字符串型,所以对于数值型的病害描述参数,将全部拼接为浮点型数值数组的形式传入图3所示的第三个槽中,字符串型的病害描述参数也将全部拼接为字符串型数值数组的形式传入图3所示的第四个槽中,当进行推理匹配时,程序将按照数组的索引序号将这些参数与规则库中的前件对应起来。这样,事实库中的后面两个槽也能够适配所有病害。

4 基于Jess管养专家系统经验知识扩充模块的实现

管养专家系统规则库的建立,是将各类病害的管养知识使用Jess开发语言,编写形成一个*. clp类型的文件存放至项目文件夹中。在每次进行推理匹配时,程序先按照路径寻找到该clp文件,然后再将其读取后放入推理机中进行运行。这样的推理模式使得规则库和系统软件本体是分离的,所以这不仅方便直接使用Java语言对规则库进行操作,而且其规则库的增添、修改或者删除都不会影响系统本体的运行。这也使得管养经验知识扩充功能模块的实现成为可能。

而要实现管养经验知识扩充的功能则是需要程序能够将用户输入的新的管养经验知识进行解析后自行使用Jess语言将其编写形成规则,并建立与其相适配的工作存储器。因为按照建立的工作存储器具有适配新添加的病害管养措施的能力,因此该功能的实现只需让程序能够满足解析输入的管养经验知识并自行进行规则编写这一需求。

要在规则库中新建一条规则[20],则需要编写规则的前件(Left-hand-side)和后件(Right-hand-side),在管养专家系统的规则库中,前件即为病害的描述参数,后件即为需要采取的养护维修措施,一个简单的规则模板示例如图4所示。为了让程序能够自行进行规则编写,可以预先将规则模板写入程序中存为字符变量,当用户输入新的管养知识后,程序解析其中的病害描述参数和管养措施,然后插空拼接到规则模板的留空处,这样即可形成一条新的规则。

图4 规则模板示例

规则库中存入的规则前件、后件以及传入工作存储器的病害事实均是使用与之对应的id进行推理匹配的。所以本文也通过给扩充的管养经验知识分配具有唯一性的数据库id来完成对其的解析。新扩充的管养知识由病害描述和与之对应的管养措施两个部分组成。对于管养维修措施,程序将通过Java语言将其直接存入数据库,并由数据库为其分配一个具有唯一性的id。而对于病害描述,程序首先判别其参数类型,如果参数类型为数值型,则直接进入规则模板进行拼接,如果参数类型为字符型,那么程序将根据其是否为系统中的已有病害描述进行数据库存储,并索引数据库为其分配的具有唯一性的id,具体如图5所示。

图5 管养经验知识扩充功能实现流程

5 Jess与Java语言间交互调用接口的实现

由于基于Jess的管养功能在推理过程中需要将人工巡检得到的轨道交通盾构隧道的病害情况和自动化监测数据调取作为事实条件,而这些事实数据则是由Java语言编写的调取模块从数据库中调取完毕后存储为Java变量的。但是在Jess的工作存储器中,其事实条件并不是一个变量,而是一个封装的类对象,所以Java调取得到的数据不能直接作为事实条件传入Jess中进行推理匹配,而是需要编写二者间的数据交互接口。

因为Jess专家系统开发语言的内核是由Java语言编写的,所以其数据的交互可以采用Java语言中类之间传递的方法,即通过编写与Jess中事实类对象构造相同的JavaBean,然后通过JavaBean中的set方法将变量传入JavaBean中进行对象打包,打包后的变量将以一个类对象通过Jess的add方法传入Jess的工作存储器中,交互接口编写关键技术如图6所示。

图6 Jess与Java间数据交互接口技术流程

其中,由于Jess工作存储器中的事实是以一个template为类对象进行存储的,template中有数个槽,这些槽将存储事实的不同条件,所以在构建JavaBean时,需要创建与槽相对应且命名相同的私有变量,以便Jess工作存储器能够识别每个槽对应的Java变量,并将其存入槽中。图7为一个简单的template类对象所对应的JavaBean构造。

图7 JavaBean接口构造示例

除了需要满足Java与Jess间的数据交互,开发完毕的Jess专家系统还应该集成至Java中,供软件平台调用。这方面由于Jess提供了相应的Java调用接口,所以在Java中,通过对Jess的核心类Jess. Rete进行实例化,然后将同样实例化的工作存储器放入Jess. Rete中,并声明规则库的绝对路径,即可完成Java对Jess的集成调用。

6 管养功能演示

轨道交通盾构隧道管养功能主要由两个功能模块构成,分别是专家系统管养决策模块和经验知识库扩充模块。其中,专家系统管养决策功能模块负责根据人工巡检得到的病害情况和监测数据进行推理匹配,给出相应的管养建议,其功能界面如图8所示。

图8 专家系统管养决策功能界面

功能界面分为4部分,用户在病害类型选择框中选择相应的病害类型后,右上方的病害情况输入界面将会根据用户选择的病害类型进行改变,不同的病害类型有不同的输入界面,用户输入完病害类型与病害情况后需在左下方的病害位置区间选择病害发生的里程区间以便调取该病害所在位置的监测数据,在点击诊断按钮后,用户输入的病害情况以及病害所在位置的监测数据将进入Jess推理引擎进行推理匹配,最终的推理结果将会传入到右下方的推理结果显示框中进行显示。

如表1所示的一个裂缝病害情况后系统自行推理显示的示例。

表1 裂缝病害情况

该裂缝所在区间的不均匀沉降差为0.395 mm,《城市轨道交通工程监测技术规范》对不均匀沉降的限值要求为0.04%L(L为隧道宽度)=4.776 mm。其不均匀沉降值没有超过规范限值要求。

建议:(1)对裂缝所在的管片环进行收敛变形监测,并检查周边是否存在工程施工与堆土情况;(2)若地面存在堆土,应尽快完成堆土卸载,卸载过程中尽可能分层实施;(3)若管片收敛变形超过限值,应该先待隧道变形稳定后进行钢环加固;(4)裂缝的修补建议采用钢板补强法。

由推理结果可以看出,由于裂缝是一条贯通的具有错动现象的环向裂缝,且裂缝宽度与长度都达到了管养规范的中修要求,产生原因很有可能是裂缝前后里程内的不均匀沉降引起的。所以专家系统首先调取了裂缝所在区间的沉降数据进行了不均匀沉降计算,并与规范值进行比较,在排除了裂缝的产生是不均匀沉降引起的这个原因之后,提出了加强收敛变形监测、进行钢环加固、采用钢板补强法进行裂缝修补的管养建议。

该模块可让管养专家不需要接触任何编程语言即可在系统中自行添加、扩充新的病害管养方法与技术,添加后的管养经验将编译为Jess规则存放至规则库中,供管养决策功能进行推理。

7 结论

(1)建立基于Jess管养专家系统的规则库,即是将现行的管养规范和标准、专家经验以及地方地铁集团的企业标准等管养知识归纳整理后,使用Jess专家系统开发语言编写为一条条病害情况(前件)对应病害维修措施(后件)的产生式规则形式。本文规则库的建立依据现行管养规范、标准、文献资料,同时调研了武汉地铁集团的企业管养手册、管养工程师经验,将轨道交通盾构隧道常见的裂缝病害、渗漏水病害、劣化剥落病害、沉降及不均匀沉降、隧道断面变形等病害建立了相应的管养规则库。

(2)管养专家系统的Jess事实库即为一个存储外部传入的病害情况的工作存储器。因此,在建立事实库的时候应该根据描述病害情况的参数类型和参数个数设置相对应的槽,为了满足所建立的工作存储器适配于每一种病害类型,本文在建立的工作存储器中设置了4个槽,分别为两个单字符串型属性槽,一个多浮点数值型属性槽,一个多字符串型属性槽。

(3)管养专家系统规则库的建立,是将各类病害的管养知识使用Jess开发语言,编写形成一个*. clp类型的文件存放至项目文件夹中。在每次进行推理匹配时,程序先按照路径寻找到该clp文件,然后再将其读取后放入推理机中进行运行。这样的推理模式使得规则库和系统软件本体是分离的,所以这不仅方便可以直接使用Java语言对规则库进行操作,而且其规则库的增添、修改或者删除都不会影响系统本体的运行。这也使得管养经验知识扩充功能模块的实现成为可能。

(4)由于基于Jess的管养功能在推理过程中需要将人工巡检得到的轨道交通盾构隧道的病害情况和自动化监测数据调取作为事实条件,而这些事实数据则是由Java语言编写的调取模块从数据库中调取完毕后存储为Java变量的。但是在Jess的工作存储器中,其事实条件并不是一个变量,而是一个封装的类对象,所以Java调取得到的数据不能直接作为事实条件传入Jess中进行推理匹配,编写了Jess与Java语言的调用与数据交互接口,实现了Jess与软件平台的集成。

猜你喜欢

管养存储器病害
高速公路隧道智慧管养信息化应用研究
上海浦东新区公路智能管养模式实践探析
早春养羊需防六大病害
小麦常见三种病害咋防治
葡萄病害周年防治历
静态随机存储器在轨自检算法
果树休眠期咋防病害
基于BIM的资产管养信息化系统在南京三桥的应用
如何实现市政管养文化建设与基层党建工作的有机结合
存储器——安格尔(墨西哥)▲