孙振川, 张合沛, 凌美杰, 万建军
(1.盾构与掘进国家重点实验室, 河南郑州 450001; 2.郑州大学数学与统计学院, 河南郑州 450001)
随着城市中可开发空间的减少和交通压力的增大,地铁成为一个城市用来缓解交通压力的首选[1]。实际生活中,地铁的在建数量和需求量都很大,盾构法进行地铁建设主要是在地面以下工作,盾构机由推进系统支持,沿着设计路线前进,但是盾构系统复杂,如果姿态控制不当会导致盾构机偏离路线,出现蛇形轨迹等问题。这不仅仅影响盾构的掘进速度和隧道建成的精准度, 还可能引发工程事故[2-3]。 盾构的姿态控制对于快速准确的建成隧道和施工的安全性都很重要。 目前国内盾构姿态控制主要依赖司机的经验, 但我国隧道建设需求和实际在建隧道都在不断增长,具有丰富经验的司机却需要培养。盾构行业通过盾构姿态测量系统积累了大量的施工数据, 这为数据挖掘和机器学习提供了数据资源[4]。 为使地铁工程迅猛前进,不仅需要科学技术水平的提升,更需要紧随时代的进步进行研究[5]。盾构自动化已经成为盾构未来发展方向。本文旨在通过盾构实验室的设备采集器提取的线路数据,对数据进行筛选清理后,用机器学习中的提升树算法搭建XGBoost 模型, 从而得到较为合理和稳定的姿态控制策略,为实现姿态控制的自动化做准备。
XGBoost(Extreme GradientBoosting) 即极致梯度提升,是陈天奇等人开发的一个开源机器学习项目[6],高效地实现了梯度提升决策算法,简称为GBDT,并进行了算法和工程上的许多改进, 被广泛应用在Kaggle 竞赛及其他许多机器学习竞赛处理分类预测问题。
XGBoost 又称极端梯度上升,它是大规模并行Boosted Tree,也是一种改进的提升树算法[7]。 算法的核心思想是不断地添加树, 新添加的树的原理是拟合上一次预测的残差值,构造下一棵树,添加树的过程就是学习新函数的过程[8-9]。 简单说,就是一个树的预测结果表现不好,我们在原来树的基础上对误差进行修正, 继续生成第二棵树模型,依次类推,下一棵树都是建立在上一棵树的基础,并对之给与改进。 XGBoost 方法的目标函数,可以分为两个部分,一部分是损失函数,一部分是增加的惩罚项[10],正则项用于控制模型的复杂度, 防止模型过拟合。 进一步,我们可以得到目标函数,如下:
正则项一般需要我们根据经验来定义, 认为其与树的结构复杂度、叶节点个数和叶权值有关。
由上式我们可知,提升第t 步(即建立第t 棵树)时的损失函数为:
根据这种求损失函数的方法,逐步迭代,使损失函数达到最小。
控制盾构掘进姿态, 使得掘进线路保持正常的过程叫做盾构姿态控制[11]。姿态控制主要靠盾构的千斤顶来实现图1 所示,在这个过程中,盾构通过改变千斤顶杆行程差来改变盾构的当前姿态, 千斤顶呈环形布置并通过液压油缸来控制,液压油缸一般为了方便控制,会为上下左右四组(图A 区、B 区、C 区和D 区),然后对每组油缸进行单独控制。
图1 盾构千斤顶布置及分区
实验室设备采集器提取福州地铁5 号线1 标1 工区荆溪站~中间风井区间右线、福州地铁5 号线1 标1 工区荆溪站~中间风井区间左线、洛阳市轨道交通2 号线2 标3 工区九~博区间右等8 条泥水线路, 之后线路分别用线路1、线路2……线路8 来表示。 提取到的线路数据含有四十多个参数,这些参数来自盾构的各个组件,描述了泥水盾构的掘进状态,表1 展示了泥水盾构的部分属性。
表1 部分数据属性
泥水盾构机主要是通过调整油缸压力进而来调整姿态[12]。 通过查阅资料和咨询相关专家,为了更好地建立模型我们需要筛去与目标值无关的属性, 构造与目标值相关的新属性。 考虑当前司机的历史操作数据,选取了当前时刻的前一个和前两个时刻的油缸压力值作为参数,同时考虑油缸压力随时间的变化率。盾构通过AC 组油缸控制水平方向压力、BD 组油缸控制垂直方向压力, 通过让两组油缸产生压力差控制盾构姿态,基于此构造了AC 组位移差和BD 组位移差[13]。由于土仓和注浆压力经常会出现部分属性缺失, 所以将部分压力属性值求平均构造了新的属性。 为了更准确的描述盾构状态,通过地铁线路规划图得到线路的上下坡、左右转信息,将其也作为构建模型的参数。 至此用来建立XGBoost 模型的参数分别为100301变化率、100302 变化率、100303 变化率、100304 变化率、100002、100003、100004、100005、101403、101404、100301、100302、100303、100304、100030、100031、100032、100033、注浆压力均值、 泥水仓压力均值、100030-1、100031-1、100032 -1、100033 -1、100030 -2、100031 -2、100032 -2、100033-2、AC 位移差、DB 位移差、AC 压力差、DB 压力差、水平偏差和、垂直偏差和、转向、转向半径、上下坡、标贯值。 部分参数线路数据见表2。
表2 部分参数线路数据
对数据进行建模要使用优质的数据, 所以要对数据进行预处理。我们首先剔除缺少参数(含有空值)的数据。再具体地观察数据后,发现数据中总存在一些异常点,这可能是在设备测量和数据传输过程产生的。 采取剔除小于各属性值0.025 分位点或大于各属性值0.975 分位点的操作对数据进行筛选,发现数据中的噪声减小,异常值数量较少,且数据分布更集中,见图2。
图2 数据筛选后四组油缸压力
将数据预处理后,每条线路的数据量会大幅减少,这会导致训练得到的模型学习能力不足,模型泛化能力差。所以为增加数据量,提高模型预测正确率,我们将不同线路多个区间的数据进行融合, 提高数据量使模型训练数据足够多。为减少不同线路融合带来的数据差异,将多条线路合并后再按地质情况分为软土、岩石和卵石三类。因为在不同的地质情况下,盾构机的各参数值会差别很大,导致油缸压力也会有明显差异, 按照不同的地质情况建模可以防止数据之间差异太大,使预测相对更加合理。
选取了两条线路比较四组油缸压力的最大值、 最小值、平均数、标准差、中位数,见表3、表4。
表3 线路2 油缸压力描述统计
表4 线路5 油缸压力描述统计
由上表数据的描述性分析结果可以看出,两条线路数据的各个统计指标值均存在明显差异,将数据进行融合会使数据混乱, 这就要求我们选取的推荐区间不应该太大。所以在融合数据后, 选取四组油缸压力中的最小0.025 分位点和最大0.975 分位点, 然后比较盾构设备设计的油缸压力最大值和融合数据中油缸压力实际最大值来设置上限值,至此得到了油缸压力上下界限值。 对上下界长度进行均匀分割得到十一个推荐区间, 软土地质的线路划分水平见表5,我们可以将软土地质线路的目标预测值转化为类别预测,卵石和岩石地质水平划分类似。
表5 软土划分水平
至此,数据准备工作已经完成,可以搭建XGBoost 模型进行建模。
用筛选好8 条泥水线路, 超过100 万条优质数据来建立模型, 数据量已经足够大可以保证模型进行充分的学习。
盾构地铁线路的区间规划以环为单位, 每环长度在1.5 米左右,整个隧道长度可能会有几万环。 将每条线路数据进行合并后, 再根据线路每环对应的地质信息将其分为软土,岩石,卵石三类。 在每一类地质下再根据标贯值这一属性将每一类地质再分为三个水平。 如将软土地质根据标贯值分为三个水平, 标贯值小于6.61 为第一水平,记为under_6.61;标贯值大于等于6.61 小于10.64 为第二水平, 记为under_10.64; 大于等于10.64 为第三水平,记为under_max。 将每一类地质再细分三个水平便于很好地建模,使模型预测结果更好。
将所处同一地质, 同一划分水平的线路数据进行汇总后, 从每一条线路抽取70%的数据作为训练集, 剩下30%数据作为测试集, 然后将所有的线路汇总成测试集和训练集。 运用python 中的XGBoost 模块来构建XGBoost 模型,为了提高模型的准确率,需要对模型的主要参数进行调试,选择出较好的参数值。损失函数选择多分类的交叉熵损失函数,学习率的取值范围在0~1,经过不断调试选择学习率为0.3,选取0.08 为步长值,太大会导致模型无法收敛, 太小又会使模型收敛太慢训练时间过长。树的个数为80 棵,防止模型过拟合,树的层数为6 层。
模型建立完成以后,我们就可以利用训练好的模型对测试集数据预测。如果测试线路的数据量少于10 万条,由于数据量太少,不对该条线路进行预测,进而来观察测试数据的油缸压力值预测的推荐区间,并且用输出的每条线路的混淆矩阵和正确率来判断线路模型预测效果。
表6~表8 给出部分地质水平下训练完成后得到的线路油缸压力预测正确率。
表7 软土under_6.61
表8 岩石under_max
由此可知, 预测线路的四组油缸压力正确率都比较高,几乎都在0.9 以上,说明模型效果符合预期。
以软土under_10.64 水平中的一条线路为例, 查看其A 组油缸压力的混淆矩阵,更加清晰地查看线路预测结果的情况。其它线路预测结果类似,得到的准确率都比较高。
表9 线路1 A 组油缸压力混淆矩阵
本文以正在施工的地铁线路实时数据为输入, 利用所构建的XGBoost 模型来预测盾构机的各组油缸压力值,输出目标参数的建议区间,并推送至盾构司机操控界面,让司机根据此推荐值来调整盾构的姿态。 上线线路南京地铁7 号线D7-TA02 标七工区莫愁湖站~清凉山站区间右线的四组油缸压力测试结果正确率分别为0.91,0.87,0.94,0.90。 模型投入上线,将预测结果和司机的司机操作值进行对比,发现模型的准确率较高,则就可以认为模型已经充分的学习了数据并给出了合理的推荐值。
地铁盾构掘进施工地质情况和施工环境复杂, 是影响盾构隧道施工质量的重要因素[14]。 盾构掘进过程中出现的姿态问题会影响整条隧道的质量[15]。在XGBoost 方法强大的数学理论支持下,我们将其方法运用到对地铁线路盾构机油缸压力的预测上,并对所建立的模型进行实验测试及结果分析,得出不同地质水平下的优质数学模型和结果。但该模型建模时使用的泥水数据较少,而且只来自四个城市, 希望以后能够使用来自多个城市的多条线路数据来优化此模型,增大模型的泛化能力,让泥水线路用此模型预测都能得到较好的预测结果。