本发明属于油气储运及光纤传感领域,具体涉及一种输油管道管内光缆盗油及泄露监测装置及方法。
背景技术:
在油气领域中,对于输油管道的状态监测一直是难点之一,随着油气领域对智能化要求越来越高,传统的防盗油技术以及泄露监测技术也越来越难以满足油气输送管道的智能化需求。
传统输油管道防盗油多采用人工巡查、视频监控、无人机巡逻、负压波、光纤振动监测等技术,人工巡查技术多依赖于巡查人员经验,且无法实时保持巡查状态;视频监控则只能对布设摄像头区域进行监控,而且对于树林、草丛以及房屋遮挡的复杂环境无法进行监控;无人机巡逻无法24小时持续监控,容易出现漏检时段;负压波技术可以实现24小时连续监测,但对于小流量盗油不够灵敏难以及时准确发现;光纤振动监测技术通过在油气管道外部布设传感光缆,通过感知挖掘时光缆振动进行告警,可以实现24小时连续监测,但是管外光缆很容易被故意破坏,在多处蓄意破坏后,该方案将无法发挥应有效果。同时,对于输油管道泄露监测,传统技术只能通过输油流量变化发现问题,该方案对于小流量的变化不敏感,难以发现问题,同时也无法对泄露点进行定位。
传统输油管道防盗油多采用人工巡查、视频监控、无人机巡逻、负压波、光纤振动监测等技术,人工巡查技术多依赖于巡查人员经验,且无法实时保持巡查状态;视频监控则只能对布设摄像头区域进行监控,而且对于树林、草丛以及房屋遮挡的复杂环境无法进行监控;无人机巡逻无法24小时持续监控,容易出现漏检时段;负压波技术可以实现24小时连续监测,但对于小流量盗油不够灵敏难以及时准确发现;光纤振动监测技术通过在油气管道外部布设传感光缆,通过感知挖掘时光缆振动进行告警,可以实现24小时连续监测,但是管外光缆很容易被故意破坏,在多处蓄意破坏后,该方案将无法发挥应有效果。同时,对于输油管道泄露监测,传统技术只能通过输油流量变化发现问题,该方案对于小流量的变化不敏感,难以发现问题,同时也无法对泄露点进行定位。
技术实现要素:
针对现有技术中存在的上述技术问题,本发明提出了一种输油管道管内光缆盗油及泄露监测装置及方法,设计合理,克服了现有技术的不足,具有良好的效果。
为了实现上述目的,本发明采用如下技术方案:
一种输油管道管内光缆盗油及泄露监测装置,包括总服务器、管道状态监测系统、水密光缆连接器、光缆跳线、耐高压开孔短接光纤法兰套件以及耐油铠装光缆;
管道状态监测系统,包括第一管道状态监测系统和第二管道状态监测系统;
总服务器,通过有线/无线网络控制第一管道状态监测系统和第二管道状态监测系统;
第一管道状态监测系统,为处于输油管道被监测段起始位置的管道状态监测子系统,通过光缆跳线、水密光缆连接器、耐高压开孔短接光纤法兰套件与耐油铠装光缆连接;
第二管道状态监测系统,为处于输油管道被监测终点位置的管道状态监测子系统,通过光缆跳线、水密光缆连接器、耐高压开孔短接光纤法兰套件与耐油铠装光缆连接;
水密光缆连接器,通过耐高压开孔短接光纤法兰套件能够在6mpa以下的输油管道中保证光信号在耐油铠装光缆中的正常传输与测试;
光缆跳线,主要用于将第一管道状态监测系统、第二管道状态监测系统通过水密光缆连接器、耐高压开孔短接光纤法兰套件与耐油铠装光缆连接,或将被管道闸隔开的耐油铠装光缆通过水密光缆连接器、耐高压开孔短接光纤法兰套件进行连接;
耐油铠装光缆,其两端都装有水密光缆连接器。
优选地,管道状态监测系统中的第一管道监测系统、第二管道监测系统均包括如下结构:
cpu模块、第一激光器控制模块、1550nm激光器控制模块、1550nm光隔离器、1550nm1:9光耦合器、1550nm移频调制模块、1550nm脉冲调制模块、edfa、环形器、1550nm1:1耦合器、扰偏器模块、第一o/e模块、高通滤波器、第一前置放大模块、第一a/d模块、第一采集模块、wdm、第二o/e模块、第二前置放大模块、第二a/d模块、第二采集模块、第三o/e模块、第三前置放大模块、第三a/d模块、第三采集模块和被测光纤/光缆;
cpu模块、第一激光器控制模块、1550nm激光器控制模块、1550nm光隔离器、1550nm1:9光耦合器通过线路依次连接;1550nm1:9光耦合器的90%输出端口与1550nm移频调制模块连接,其10%输出端口与扰偏器模块连接;1550nm移频调制模块、1550nm脉冲调制模块、edfa、环形器的一端通过线路依次连接;1550nm1:1耦合器的两个50%输出端分别与扰偏器模块和环形器的另一端接连接,其输入端与第一o/e模块连接;环形器的第三端与wdm的1550nm端口连接;
第一o/e模块、高通滤波器、第一前置放大模块、第一a/d模块、第一采集模块、cpu模块通过线路依次连接;
第二o/e模块、第二前置放大模块、第二a/d模块、第二采集模块、cpu模块通过线路依次连接;第二o/e模块与wdm的1455nm端口连接;
第三o/e模块、第三前置放大模块、第三a/d模块、第三采集模块、cpu模块通过线路依次连接;第三o/e模块与wdm的1660nm端口连接;
wdm的输出端与被测光纤/光缆连接;
优选地,1550nm激光器的工作波长范围为1550nm±5nm;1550nm脉冲调制模块的脉冲调制范围为1ns~16380ns;第二o/e模块为光电转换模块。
此外,本发明还提到一种输油管道管内光缆盗油及泄露监测方法,该方法采用如上所述的输油管道管内光缆盗油及泄露监测装置,具体步骤如下:
步骤101:确定被测管道是旧管道改造还是新管道建设;
步骤102:确定是否旧管道改造,如果是则转步骤103,否则转步骤110;
步骤103:沿着旧管线铺设路径进行现场勘察,对管线目前状况及周围环境等做详细的调研,做好工程设计和施工计划,准备好所需材料;
步骤104:按照管道闸门数量队管道进行分段,确定分段数量dn;
步骤105:等待整段管道翻新维护排空管道;
步骤106:在管道起始端、终止端以及光缆应布设管道线路经过的闸门两侧,管内耐油铠装光缆两端出口的位置打孔;
步骤107:通过连续杆牵引分段布设管内耐油铠装光缆;
步骤108:在每个管内耐油铠装光缆出口打孔位置处,待耐高压开孔短接光纤法兰套件与管内耐油铠装光缆两端的水密光缆连接器连接好,将耐高压开孔短接光纤法兰套件从光缆出口打孔位置固定在管道上;
步骤109:待需要布设管内光缆的管道布设完毕后,通过光缆跳线将各段管道连接并接入管道状态监测系统,转步骤119;
步骤110:进入新管道建设流程;
步骤111:沿着新管线铺设路径进行现场勘察,根据新管线施工计划做好系统的工程设计和施工计划,准备好所需材料;
步骤112:按照管道闸门数量队管道进行分段,确定分段数量dn;
步骤113:等待当前分段的新管道布设好;
步骤114:在管道起始端、终止端以及光缆应布设管道线路经过的闸门两侧,管内耐油铠装光缆两端出口的位置打孔;
步骤115:通过连续杆牵引分段布设管内耐油铠装光缆;
步骤116:在每个管内耐油铠装光缆出口打孔位置处,待耐高压开孔短接光纤法兰套件与管内耐油铠装光缆两端的水密光缆连接器连接好,将耐高压开孔短接光纤法兰套件从光缆出口打孔位置固定在管道上;
步骤117:是否1~dn分段全部布设完毕判断,否则进入下一分段的布设,转步骤113,是则转步骤118;
步骤118:通过光缆跳线将各段管道连接并接入管道状态监测系统;
步骤119:通过管道状态监测系统对管内光缆进行测试;
步骤120:判断测试是否成功,失败则转步骤121,成功则转步骤122;
步骤121:依次检查全部光缆线路,排查问题;
步骤122:完成收尾工作。
优选地,管道状态监测系统的基准数据的测试方法,具体包括如下步骤:
步骤201:总服务器开机启动;
步骤202:数据库自检;
步骤203:判断自检是否通过,不通过转步骤204,通过转步骤205;
步骤204:显示、记录并上报告警信息;
步骤205:从数据库中读取测试参数,设置基准测试时间bt为10s,基准测试次数为10次;
步骤206:与第一管道状态监测系统通信自检;
步骤207:判断自检是否通过,不通过转步骤208;
步骤208:显示、记录并上报告警信息,转步骤206;
步骤209:与第二管道状态监测系统通信自检;
步骤210:判断自检是否通过,通过转步骤212,不通过转步骤211;
步骤211:显示、记录并上报告警信息,转步骤209;
步骤212:向第一管道状态监测系统与第二管道状态监测系统设置测试参数;
步骤213:启动基准测试;
步骤214:停止第二管道状态监测系统测试,启动第一管道状态监测系统基准测试功能;
步骤215:通过通信监测第一管道状态监测系统状态,等待其完成基准测试功能;
步骤216:读取第一管道状态监测系统的基准振动频率数据集bvfdata,将其作为第一管道状态监测系统的基准振动频率数据集bvfdata1,读取第一管道状态监测系统的基准温度数据集btdata,将其作为第一管道状态监测系统的基准温度数据集btdata1,并将其存入数据库;
步骤217:停止第一管道状态监测系统基准测试,启动第二管道状态监测系统基准测试功能;
步骤218:通过第二管道状态监测系统状态,等待其完成基准测试功能;
步骤219:读取第二管道状态监测系统的基准振动频率数据集bvfdata,将其作为第二管道状态监测系统的基准振动频率数据集bvfdata2,读取第二管道状态监测系统的基准温度数据集btdata,将其作为第二管道状态监测系统的基准温度数据集btdata2,并将其存入数据库;
步骤220:退出服务器系统。
优选地,管道状态监测系统的正常监测情况的工作方法,具体包括如下步骤:
步骤301:总服务器开机启;
步骤302:数据库自检,自检不通过转步骤303,自检通过转步骤304;
步骤303:显示、记录并上报告警信息,转步骤302;
步骤304:自检通过;
步骤305:从数据库中读取测试参数,设置交替测试时间tl,tl范围为30秒~10分钟;
步骤306:与第一管道状态监测系统通信自检;
步骤307:自检是否通过,不通过转步骤308,通过转步骤309;
步骤308:显示、记录并上报告警信息,转步骤306;
步骤309:与第二管道状态监测系统通信自检;
步骤310:自检是否通过,不通过转步骤311,通过转步骤312;
步骤311:显示、记录并上报告警信息,转步骤309;
步骤312:向第一管道状态监测系统和第二管道状态监测系统设置测试参数;
步骤313:测试计时器tltime清零;
步骤314:停止第二管道状态监测系统测试,启动第一管道状态监测系统测试,启动循环计时线程;
步骤315:等待第一管道状态监测系统测试报警信息;
步骤316:刷新测试计时器tltime;
步骤317:判断是否收到报警信息,未收到信息转步骤318,收到信息转步骤319;
步骤318:判断是否是tltime≥tl,是转步骤320,否转步骤315;
步骤319:显示、记录并上报告警信息,转步骤318;
步骤320:测试计时器tltime清零;
步骤321:停止第一管道状态监测系统测试,启动第二管道状态监测系统测试,启动循环计时线程;
步骤322:等待第二管道状态监测系统测试报警信息;
步骤323:刷新测试计时器tltime;
步骤324:判断是否收到报警信息,否转步骤325,是转步骤326;
步骤325:判断是否tltime≥tl,是转步骤327,否转步骤322;
步骤326:显示、记录并上报告警信息,转步骤325;
步骤327:检测管理员是否停止测试,是转步骤328,否转步骤313;
步骤328:退出服务器系统。
优选地,在步骤214中第一管道状态监测系统基准测试方法,以及在步骤217中第二管道状态监测系统基准测试方法,均包括如下步骤:
步骤401:启动基准测试功能;
步骤402:读取设置参数脉冲宽度pw;读取量程rn;读取振动距离分辨率vsd;读取温度距离分辨率tsd;读取振动测试时间vttime;读取振动频率分析时间vtanys;读取温度测试时间tttime;读取基准分析数据基数dn;
步骤403:计算振动累加次数vaddt=vttime*1m/10ns/(rn+1km);
计算温度累加次数taddt=tttime*1m/10ns/(rn+1km);
计算振动距离数据量vn=rn/vsd
计算振动时间数据量vm=vtanys/vttime
计算温度距离数据量tn=rn/tsd;
步骤404:启动1550nm激光器,启动1550nm移频调制模块,启动扰偏器模块,向1550nm脉冲调制模块发送脉冲宽度参数pw,向第一采集模块发送振动累加次数vaddt及振动距离数据量vn参数,向第二采集模块和第三采集模块发送温度累加次数taddt及温度距离数据量tn参数;
步骤405:启动采集及脉冲产生时序控制,转步骤406和步骤418;
步骤406:启动温度测试线程;
步骤407:临时计数nvti=0,初始化温度数据tdata[1~dn][1~tn];
步骤408:读取第二采集模块及第三采集模块状态;
步骤409:判断是否完成1次温度测试;是转步骤410,否转步骤408;
步骤410:从第二采集模块读取反斯托克斯采集数据tds[1~tn],从第三采集模块读取斯托克斯采集数据tdas[1~tn];
步骤411:根据tds[1~tn]与tdas[1~tn]计算温度分布数据td[1~tn],tdata[nvti][1~tn]=td[1~tn];
步骤412:判断是否nvti≥dn,是转步骤414,否转步骤413;
步骤413:nvti=nvti+1,转步骤408
步骤414:根据tdata[1~dn][1~tn],分析基准温度数据集btdata;
步骤415:结束温度测试线程,转步骤427;
步骤416:启动振动测试线程;
步骤417:临时计数nvti=0,临时计数nvtj=0,初始化振动数据vdata[1~dn][1~vm][1~vn];
步骤418:读取第一采集模块状态;
步骤419:判断是否完成1次振动测试,是转步骤420,否转步骤418;
步骤420:读取采集数据vd[1~vn],vdata[nvtj+1][nvti+1][1~vn]=vd[1~vn];
步骤421:判断是否nvti≥vm,是转步骤423,否转步骤422
步骤422:nvti=nvti+1,转步骤418;
步骤423:判断是否nvtj≥dn,是转步骤425,否转步骤424;
步骤424:nvtj=nvtj+1;
nvti=0,转步骤418;
步骤425:根据vdata[1~dn][1~vm][1~vn],分析基准振动频率数据集bvfdata;
步骤426:结束振动测试线程,转步骤427;
步骤427:等待振动测试线程与温度测试线程全部结束,向服务器传输bvfdata及btdata。
优选地,在步骤414中,基准温度数据集分析方法,具体步骤如下:
步骤41601:读取温度数据tdata[1~dn][1~tn];
步骤41602:临时计数i=0,j=0;初始化基准温度数据集btdata[1~tn];
步骤41603:临时数据tt=0;
步骤41604:tt=tt+tdata[i+1][j+1];
步骤41605:判断是否i≥dn,是转步骤41607,否转步骤41606;
步骤41606:i=i+1,转步骤41604;
步骤41607:btdata[j]=tt;
步骤41608:判断是否j≥tn,是转步骤41610,否转步骤41609;
步骤41609:j=j+1,转步骤41603;
步骤41610:返回基准温度数据集btdata。
优选地,在步骤425中,基准振动频率数据集分析方法,具体步骤如下:
步骤42701:读取振动数据vdata[1~dn][1~vm][1~vn],读取振动判定阈值vith,
初始化基准振动频率数据集bvfdata内所有数据清零,bvfdata包括振动频率波包数据bvfdata_n[1~vn]、振动频率峰值频率数据bvfdata_pf[1~vn][1~vm]、振动频率波包起始频率bvfdata_sf[1~vn][1~vm]、振动频率波包终止频率bvfdata_ef[1~vn][1~vm];
步骤42702:初始化临时变量i=0,j=0,k=0;初始化临时频率数据ftdata[1~vm]=0;
步骤42703:ftdata[1~vm]=快速傅里叶变换(vdata[i+1][1~vm][j+1]);
步骤42704:初始化临时变量p=0;
步骤42705:判断是否ftdata[p+1]≤vith,是转步骤42706,否转步骤42707;
步骤42706:ftdata[p+1]=0,转步骤42707;
步骤42707:判断是否p≤vm,是转步骤42708,否转步骤42709;
步骤42708:p=p+1,转步骤42705;
步骤42709:初始化临时变量p=0,q=0,fs=0,fe=0,fc=0,ft=0;
步骤42710:判断是否ftdata[p+1]>0,是转步骤42712,否转步骤42711;
步骤42711:p=p+1,转步骤42710;
步骤42712:p=0或ftdata[p]=0;
步骤42713:fs=p+1,q=p+1;
步骤42714:判断是否ftdata[q+1]<0或q+1≥vm,是转步骤42716,否转步骤42715;
步骤42715:q=q+1,转步骤42714;
步骤42716:判断是否q+1≥vm,是转步骤42717,否转步骤42718;
步骤42717:fe=q+1,fc=ftdata[fs~fe]所在位置下标,转步骤42719;
步骤42718:fe=q,fc=ftdata[fs~fe]所在位置下标;
步骤42719:判断是否fc==1或fc==vm或(fe-fs)<1,是转步骤42720,否转步骤42721;
步骤42720:p=q+1,ft=0,转步骤42724;
步骤42721:p=q+1,ft=0;
步骤42722:对基准振动频率数据集bvfdata内bvfdata_pf[j][1~vm]、bvfdata_sf[j][1~vm]及bvfdata_ef[j][1~vm]及bvfdata_n[j]进行频率波包数据重复分析,如果未发现重复波包数据,将fs、fe、fc数据添加至上述数据中;
步骤42723:判断是否p<vm,是转步骤42705,否转步骤42724;
步骤42724:判断是否j<vn,是转步骤42725,否转步骤42726;
步骤42725:j=j+1,转步骤42703;
步骤42726:判断是否i<dn是转步骤42727,否转步骤42728;
步骤42727:d=d+1,转步骤42702;
步骤42728:返回基准振动数据集bvfdata。
优选地,在步骤42722中,对基准振动频率数据集进行频率波包数据重复分析方法,具体包括如下步骤:
步骤42751:读取fs、fc、fe数据,开始对基准振动频率数据集bvfdata内bvfdata_pf[j][1~vm]、bvfdata_sf[j][1~vm]及bvfdata_ef[j][1~vm]及bvfdata_n[j]进行频率波包数据重复分析;
步骤42752:bvfdata_n[j]>0;
步骤42753:初始化临时计数bvfnt=1,重复标志brep=0,初始化临时变量fst、fct、fet、fn,nmax=bvfdata_n[j];
步骤42754:判断是否fc<bvfdata_ef[j][bvfnt]并且fc>bvfdata_sf[j][bvfnt],是转步骤42757,否转步骤42755;
步骤42755:判断是否bvfnt<nmax,是转步骤42756,否转步骤42758;
步骤42756:bvfnt=bvfnt+1,转步骤42754;
步骤42757:brep=1,转步骤42758;
步骤42758:判断brep值是否为0,是转步骤42760,否转步骤42759;
步骤42759:fs、fc、fe属于重复频率波包,不予增加,转步骤42787;
步骤42760:判断是否bvfdata_n[j]<1,是转步骤42763,否转步骤42761;
步骤42761:fn=1、fst=fs、fct=fc、fet=fe;
步骤42762:bvfdata_n[j]=1,bvfdata_pf[j][fn]=fct,bvfdata_sf[j][fn]=fst,bvfdata_ef[j][fn]=fet;
步骤42763:判断是否fc<bvfdata_pf[j][1],是转步骤42764,否转42769;
步骤42764:判断是否fe≥bvfdata_sf[j][1],是转步骤42766,否转步骤42765;
步骤42765:fet=fe,转步骤42767;
步骤42766:fet=bvfdata_sf[j][1]-1;
步骤42767:fn=1,fst=fs,fct=fc;
步骤42768:bvfdata_n[j]=bvfdata_n[j]+1,
bvfdata_pf[j][2~nmax]=bvfdata_pf[j][1~nmax-1],bvfdata_pf[j][1]=fc,
bvfdata_sf[j][2~nmax]=bvfdata_sf[j][1~nmax-1],bvfdata_sf[j][1]=fs,
bvfdata_ef[j][2~nmax]=bvfdata_ef[j][1~nmax-1],bvfdata_ef[j][1]=fe;
步骤42769:判断是否fc>bvfdata_pf[j][nmax],是转步骤42770,否转步骤42775;
步骤42770:判断是否fs≤bvfdata_ef[j][nmax],是转步骤42772,否转步骤42771;
步骤42771:fst=fs,转步骤42773;
步骤42772:fst=bvfdata_ef[j][namx]+1;
步骤42773:fn=nmax+1,fet=fe,fct=fc;
步骤42774:bvfdata_n[j]=bvfdata_n[j]+1,bvfdata_pf[j][fn]=fc,
bvfdata_sf[j][fn]=fs,bvfdata_ef[j][fn]=fe;
步骤42775:初始化iiii=1;
步骤42776:判断是否fc>bvfdata_pf[j][iiii],是转步骤42779和步骤42782,否转步骤42777;
步骤42777:iiii<nmax-1;
步骤42778:iiii=iiii+1,转步骤42776;
步骤42779:判断是否fs≤bvfdata_ef[j][iiii],是转步骤42781,否转步骤42780;
步骤42780:fst=fs,转步骤42785;
步骤42781:fst=bvfdata_ef[j][iiii]+1,转步骤42785;
步骤42782:判断是否fe≥bvfdata_sf[j][iiii+1],是转步骤42783,否转步骤42784;
步骤42783:fet=bvfdata_sf[j][iiii+1]-1,转步骤42785;
步骤42784:fet=fe,转步骤42785;
步骤42785:fn=iiii+1,fct=fc;
步骤42786:bvfdata_n[j]=bvfdata_n[j]+1,
bvfdata_pf[j][fn+1~nmax+1]=bvfdata_pf[j][fn~nmax],bvfdata_pf[j][fn]=fct,
bvfdata_sf[j][fn+1~nmax+1]=bvfdata_sf[j][fn~nmax],bvfdata_sf[j][fn]=fst,bvfdata_ef[j][fn+1~nmax+1]=bvfdata_ef[j][fn~nmax],bvfdata_ef[j][fn]=fet;
步骤42787:返回基准振动频率数据集bvfdata。
优选地,管道状态监测系统正常工作方法,具体包括如下步骤:
步骤501:启动报警测试功能;
步骤502:读取设置参数脉冲宽度pw、量程rn、振动距离分辨率vsd、温度距离分辨率tsd、振动测试时间vttime、振动频率分析时间vtanys、温度测试时间tttime、振动判定阈值vith、振动持续时间阈值vtth、温度判定阈值tith、温度持续时间阈值ttth、基准振动频率数据集bvfdata以及基准温度数据集btdata;
步骤503:计算振动累加次数vaddt=vttime*1m/10ns/(rn+1km);计算温度累加次数taddt=tttime*1m/10ns/(rn+1km);计算振动距离数据量vn=rn/vsd;计算振动时间数据量vm=vtanys/vttime;计算温度距离数据量tn=rn/tsd;计算温度持续次数阈值ttthn=ttth/tttime*1.1;计算振动持续次数阈值vtthn=vtth/vtanys*1.1;
步骤504:启动1550nm激光器,启动1550nm移频调制模块,启动扰偏器模块,向1550nm脉冲调制模块发送脉冲宽度参数pw,向第一采集模块发送振动累加次数vaddt及振动距离数据量vn参数,向第二采集模块和第三采集模块发送温度累加次数taddt及温度距离数据量tn参数;
步骤505:启动正常报警测试,转步骤506和步骤518;
步骤506:启动温度测试线程;
步骤507:临时计数nvti=0,初始化温度堆栈数据tdata[1~ttthn][1~tn]=0;
步骤508:读取第二采集模块及第三采集模块状态;
步骤509:判断是否完成1次温度测试,是转步骤510,否转步骤508;
步骤510:从第二采集模块读取反斯托克斯采集数据tds[1~tn],从第三采集模块读取斯托克斯采集数据tdas[1~tn];
步骤511:根据tds[1~vn]与tdas[1~tn]计算温度分布数据td[1~tn];
步骤512:将td[1~vn]压入温度堆栈数据tdata[1~ttthn][1~tn];
步骤513:判断是否nvti≥ttthn-1,是转步骤515,否转步骤514
步骤514:nvti=nvti+1,转步骤508;
步骤515:分析tdata[1~ttthn][1~tn]是否存在温度报警数据,如存在温度报警数据,将温度泄露报警信息数据集wtidata发送至总服务器;
步骤516:判断是否收到结束测试信息,是转步骤517,否转步骤514;
步骤517:结束温度测试线程,转步骤531;
步骤518:启动振动测试线程;
步骤519:临时计数nvti=0,临时计数nvtj=0,初始化振动堆栈数据vdata[1~vtthn][1~vm][1~vn]
初始化临时振动数据vdata_t[1~vm][1~vn];
步骤520:读取采集模块1状态;
步骤521:判断是否完成1次振动测试,是转步骤522,否转步骤520;
步骤522:读取采集数据vd[1~vn],
vdata_t[nvti+1][1~vn]=vd[1~vn];
步骤523:判断是否nvti≥vm,是转步骤525,否转步骤524;
步骤524:nvti=nvti+1,转步骤520;
步骤525:将vdata_t[1~vtthn][1~vn]压入振动堆栈数据vdata[1~vtthn][1~vm][1~vn];
步骤526:判断是否nvtj≥vtthn,是转步骤528,否转步骤527;
步骤527:nvtj=nvtj+1
nvti=0,转步骤520;
步骤528:分析vdata[1~vtthn][1~vm][1~vn]是否需要振动泄露报警,如需要振动泄露报警,将振动泄露报警数据集wvidata发送至总服务器;
步骤529:判断是否收到结束测试信息,是转步骤530,否转步骤527;
步骤530:结束振动测试线程;
步骤531:等待振动测试线程与温度测试线程全部结束,向服务器传输wtidata及wvidata。
优选地,在步骤515中,温度报警数据分析方法,具体包括如下步骤:
步骤51501:读取tdata[1~ttthn][1~tn],读取设置参数脉冲宽度pw、温度距离分辨率tsd、温度判定阈值tith、温度持续时间阈值ttth、温度持续次数阈值ttthn以及基准温度数据集btdata,基准温度数据集内部数据为btdata[1~tn];
步骤51502:初始化泄露报警信息数据集wtidata,包括wtidata_n=0,wtidata_dis[1~tn];
步骤51503:初始化差分数据dtdata[1~ttthn][1~tn]=0,临时计数iii=1;
步骤51504:计算差分数据dtdata[iii][1~tn]=tdata[iii][1~tn]-btdata[1~tn];
步骤51505:判断是否iii<ttthn,是转步骤51506,否转步骤51507;
步骤51506:iii=iii+1,转步骤51504;
步骤51507:计算温度事件距离阈值tdthn=pw/10ns*1m/tsd,最小值为1;
临时温度事件持续次数阈值ttn=ttth/tttime,最小值为1;;
步骤51508:初始化临时判定数据dpd[1~tn]=0,临时计数iii=1,jjj=1;
步骤51509:判断是否dtdata[iii][jjj]≤-1*titi,是转步骤51510,否转步骤51511;
步骤51510:dpd[jjj]=dpd[jjj]+1;
步骤51511:判断是否jjj<tn,是转步骤51512,否转步骤51513;
步骤51512:jjj=jjj+1,转步骤51509;
步骤51513:判断是否iii<ttthn,是转步骤51514,否转步骤51515;
步骤51514:iii=iii+1
jjj=1,转步骤51509;
步骤51515:临时计数iii=1
步骤51516:判断是否dpd[iii]≥tn,是转步骤51518,否转步骤51517;
步骤51517:iii=iii+1,转步骤51516;
步骤51518:临时计数jjj=1,bw=1
步骤51519:判断是否dpd[iii+jjj]≥tn,是转步骤51520,否转步骤51522;
步骤51520:判断是否iii+jjj>ttn,是转步骤51522,否转步骤51521
步骤51521:jjj=jjj+1,转步骤51519;
步骤51522:wtidata_n=wtidata_n+1
wtidata_dis[wtidata_n]=iii;
步骤51523:判断是否iii+jjj>tn-1,是转步骤51525,否转步骤51524;
步骤51524:iii=iii+jjj+1,转步骤51516
步骤51525:返回泄露报警信息数据集wtidata。
优选地,在步骤528中,振动泄露报警数据分析方法,具体包括如下步骤:
步骤52801:读取vdata[1~vtthn][1~vm][1~vn],读取振动判定阈值vith,基准振动频率数据集bvfdata,bvfdata包括振动频率波包数据bvfdata_n[1~vn]、振动频率峰值频率数据bvfdata_pf[1~vn][1~vm]、振动频率波包起始频率bvfdata_sf[1~vn][1~vm]、振动频率波包终止频率bvfdata_ef[1~vn][1~vm];
步骤52802:临时振动事件持续次数阈值vvn=ttth/tttime,最小值为1,初始化泄露报警信息数据集wvidata,包括wvidata_n=0,wvidata_dis[1~vn];
步骤52803:初始化临时变量i=0,j=0,k=0
初始化临时频率数据vfdata[1~vm]=0;
步骤52804:vfdata[1~vm]=快速傅里叶变换(vdata[i+1][1~vm][j+1]);
步骤52805:初始化临时变量p=0;
步骤52806:判断是否vfdata[p+1]≤vith,是转步骤52807,否转步骤52808;
步骤52807:vfdata[p+1]=0;
步骤52808:判断是否p≤vm,是转步骤52809,否转步骤52810;
步骤52809:p=p+1,转步骤52806;
步骤52810:初始化临时变量p=0,q=0,fs=0,fe=0,fc=0,ft=0;
步骤52811:判断是否vfdata[p+1]>0,是转步骤52813,否转步骤52812;
步骤52812:判断是否p=0或vfdata[p]=0,是转步骤52813,否转步骤52814;
步骤52813:p=p+1,转步骤52811;
步骤52814:fs=p+1,q=p+1;
步骤52815:判断是否vfdata[q+1]<0或q+1≥vm,是转步骤52816,否转步骤52817;
步骤52816:q=q+1,转步骤52815;
步骤52817:判断是否q+1≥vm,是转步骤52818,否转步骤52819;
步骤52818:fe=q+1,fc=vfdata[fs~fe]所在位置下标,转步骤52820;
步骤52819:fe=q,fc=vfdata[fs~fe]所在位置下标;
步骤52820:判断是否fc==1或fc==vm或(fe-fs)<1,是转步骤52822,否转步骤52821;
步骤52821:p=q+1,ft=0,转步骤52829;
步骤52822:p=q+1,ft=0;
步骤52823:初始化临时计数bvfnt=1,nmax=bvfdata_n[j];
步骤52824:判断是否fc<bvfdata_ef[j][bvfnt]并且fc>bvfdata_sf[j][bvfnt],是转步骤52825,否转步骤52827;
步骤52825:判断是否bvfnt<nmax,是转步骤52826,否转步骤52827;
步骤52826:bvfnt=bvfnt+1;
步骤52827:判断是否bvfnt≥vvn,是转步骤52828,否转步骤52829;
步骤52828:wvidata_n=wvidata_n+1,wvidata_dis[j]=fc,转步骤52830;
步骤52829:判断是否p<vm,是转步骤52830,否转步骤52824;
步骤52830:判断是否j<vn,是转步骤52831,否转步骤52832;
步骤52831:j=j+1,转步骤52804;
步骤52832:判断是否i<dn,是转步骤52833,否转步骤52834;
步骤52833:i=i+1,转步骤52804;
步骤52834:返回泄露报警信息数据集wtidata。
本发明所带来的有益技术效果:
本发明提出一种输油管道管内光缆盗油及泄露监测方法,基于光纤振动分布测试技术原理,在输油管道内布设光缆,结合对管内光缆振动分布数据以及温度分布数据的事件分析算法,既可避免不法分子对监测光缆的破坏,还可以在不法分子挖掘管道、对管道进行钻孔的时候,通过对监测输油管道内部的振动分布数据分析,结合此时振动数据与平时管道内部振动数据特征的差异,对及时盗油事件进行预警,还可以在管道油气泄露时,通过对管道泄露时产生的振动变化以及输油管道温度分布数据变化进行分析预警,及时发现泄漏点,及时处置,避免和减少由于油气泄露导致的后续环境污染问题带来的损失。
(1)可以防止传感光缆被外部破坏,影响监测效果;
(2)可以实现对油气管道的24小时连续监测,实现偷油盗油和泄露的及时预警;
(3)既可以对新建设的油气管道进行监测,也可以对已有旧管道进行改造实现监测效果。
附图说明
图1为输油管道管内光缆盗油及泄露监测方法总体方案示意图。
(a)为基于输油管道管内布设光缆的管道盗油及泄露监测方案示意图;
(b)为无盗油/泄露时本发明振动频率曲线与温度分布曲线示意图;
(c)为盗油/泄露时本发明振动频率曲线与温度分布曲线示意图;
1-总服务器;2-第一管道状态监测系统;3-第二管道状态监测系统;4-水密光缆连接器;5-光缆跳线;6-耐高压开孔短接光纤法兰套件;7-耐油铠装光缆。
图2为输油管道管内光缆盗油及泄露监测方法工作流程示意图
图3为耐高压开孔短接光纤法兰套件装配及装配后示意图;
(a)为耐高压开孔短接光纤法兰套件装配示意图;
(b)为耐高压开孔短接光纤法兰套件装配好后示意图;
图4为管道状态监测子系统典型实施例示意图。
其中,2-1-cpu模块;2-2-第一激光器控制模块;2-3-1550nm激光器控制模块;2-4-1550nm光隔离器;2-5-1550nm1:9光耦合器;2-6-1550nm移频调制模块;2-7-1550nm脉冲调制模块;2-8-edfa;2-9-环形器;2-10-1550nm1:1耦合器;2-11-扰偏器模块;2-12-第一o/e模块;2-13-高通滤波器;2-14-第一前置放大模块;2-15-第一a/d模块;2-16-第一采集模块;2-17-wdm;2-18-第二o/e模块;2-19-第二前置放大模块;2-20-第二a/d模块;2-21-第二采集模块;2-22-第三o/e模块;2-23-第三前置放大模块;2-24-第三a/d模块;2-25-第三采集模块;2-26-被测光纤/光缆。
图5为管道状态监测系统总服务器启动基准数据测试工作流程示意图。
图6为管道状态监测系统工作流程示意图。
图7为管道状态监测子系统测试分析基准数据工作流程示意图。
图8为管道状态监测子系统基准温度数据集分析流程示意图。
图9为管道状态监测子系统基准振动数据集分析流程示意图。
图10为基准振动频率数据集频率波包数据重复分析流程示意图
图11为管道状态监测子系统正常工作流程示意图。
图12为管道状态监测子系统温度报警数据分析流程示意图。
图13为管道状态监测子系统振动泄露报警数据分析流程示意图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
本发明一种输油管道管内光缆盗油及泄露监测装置,总体方案组成如图1中所示,通过总服务器控制两端的管道状态监测系统对管内布设光缆进行交替连续测试,避免管道断裂导致光缆随之致使一整段管道无法监测。
一种输油管道管内光缆盗油及泄露监测装置,包括总服务器1、第一管道状态监测系统2、处第二管道状态监测系统3、水密光缆连接器4、光缆跳线5、耐高压开孔短接光纤法兰套件6以及耐油铠装光缆7;
总服务器,通过有线/无线网络控制第一管道状态监测系统和第二管道状态监测系统;
第一管道状态监测系统,为处于输油管道被监测段起始位置的管道状态监测子系统,通过光缆跳线5、水密光缆连接器4、耐高压开孔短接光纤法兰套件6与耐油铠装光缆7连接;
第二管道状态监测系统,为处于输油管道被监测终点位置的管道状态监测子系统,通过光缆跳线5、水密光缆连接器4、耐高压开孔短接光纤法兰套件6与耐油铠装光缆7连接;
水密光缆连接器4,通过耐高压开孔短接光纤法兰套件6能够在6mpa以下的输油管道中保证光信号在耐油铠装光缆7中的正常传输与测试;
光缆跳线,主要用于将第一管道状态监测系统2、第二管道状态监测系统3通过水密光缆连接器4、耐高压开孔短接光纤法兰套件6与耐油铠装光缆7连接,或将被管道闸隔开的两端的耐油铠装光缆7通过水密光缆连接器4、耐高压开孔短接光纤法兰套件6进行连接;
耐油铠装光缆7,其两端都装有水密光缆连接器4。
本发明中输油管道管内光缆盗油及泄露监测方法流程如图2所示,具体步骤如下:
步骤101:确定被测管道是旧管道改造还是新管道建设;
步骤102:确定是否旧管道改造,如果是则转步骤103,否则转步骤110;
步骤103:沿着旧管线铺设路径进行现场勘察,对管线目前状况及周围环境等做详细的调研,做好工程设计和施工计划,准备好所需材料;
步骤104:按照管道闸门数量队管道进行分段,确定分段数量dn;
步骤105:等待整段管道翻新维护排空管道;
步骤106:在管道起始端、终止端以及光缆应布设管道线路经过的闸门两侧,管内耐油铠装光缆两端出口的位置打孔;
步骤107:通过连续杆牵引分段布设管内耐油铠装光缆;
步骤108:在每个管内耐油铠装光缆出口打孔位置处,待耐高压开孔短接光纤法兰套件与管内耐油铠装光缆两端的水密光缆连接器连接好,将耐高压开孔短接光纤法兰套件从光缆出口打孔位置固定在管道上,布设示意如图3所示;
步骤109:待需要布设管内光缆的管道布设完毕后,通过光缆跳线将各段管道连接并接入管道状态监测系统,转步骤119;
步骤110:进入新管道建设流程;
步骤111:沿着新管线铺设路径进行现场勘察,根据新管线施工计划做好系统的工程设计和施工计划,准备好所需材料;
步骤112:按照管道闸门数量队管道进行分段,确定分段数量dn;
步骤113:等待当前分段的新管道布设好;
步骤114:在管道起始端、终止端以及光缆应布设管道线路经过的闸门两侧,管内耐油铠装光缆两端出口的位置打孔;
步骤115:通过连续杆牵引分段布设管内耐油铠装光缆;
步骤116:在每个管内耐油铠装光缆出口打孔位置处,待耐高压开孔短接光纤法兰套件与管内耐油铠装光缆两端的水密光缆连接器连接好,将耐高压开孔短接光纤法兰套件从光缆出口打孔位置固定在管道上;布设示意如图3所示;
步骤117:是否1~dn分段全部布设完毕判断,否则进入下一分段的布设,转步骤113,是则转步骤118;
步骤118:通过光缆跳线将各段管道连接并接入管道状态监测系统;
步骤119:通过管道状态监测系统对管内光缆进行测试;
步骤120:判断测试是否成功,失败则转步骤121,成功则转步骤122;
步骤121:依次检查全部光缆线路,排查问题;
步骤122:完成收尾工作。
本发明中管道状态监测子系统典型实施例的组成如图4所示,通过单根光纤实现了光纤/光缆的振动及温度状态监测,其具体组成如下:
cpu模块、第一激光器控制模块、1550nm激光器控制模块、1550nm光隔离器、1550nm1:9光耦合器、1550nm移频调制模块、1550nm脉冲调制模块、edfa、环形器、1550nm1:1耦合器、扰偏器模块、第一o/e模块、高通滤波器、第一前置放大模块、第一a/d模块、第一采集模块、wdm、第二o/e模块、第二前置放大模块、第二a/d模块、第二采集模块、第三o/e模块、第三前置放大模块、第三a/d模块、第三采集模块和被测光纤/光缆;
cpu模块、第一激光器控制模块、1550nm激光器控制模块、1550nm光隔离器、1550nm1:9光耦合器通过线路依次连接;1550nm1:9光耦合器的90%输出端口与1550nm移频调制模块连接,其10%输出端口与扰偏器模块连接;1550nm移频调制模块、1550nm脉冲调制模块、edfa、环形器的一端通过线路依次连接;1550nm1:1耦合器的两个50%输出端分别与扰偏器模块和环形器的另一端接连接,其输入端与第一o/e模块连接;环形器的第三端与wdm的1550nm端口连接;
第一o/e模块、高通滤波器、第一前置放大模块、第一a/d模块、第一采集模块、cpu模块通过线路依次连接;
第二o/e模块、第二前置放大模块、第二a/d模块、第二采集模块、cpu模块通过线路依次连接;第二o/e模块与wdm的1455nm端口连接;
第三o/e模块、第三前置放大模块、第三a/d模块、第三采集模块、cpu模块通过线路依次连接;第三o/e模块与wdm的1660nm端口连接;
wdm的输出端与被测光纤/光缆连接;
1550nm激光器的工作波长范围为1550nm±5nm;1550nm脉冲调制模块的脉冲调制范围为1ns~16380ns;第二o/e模块为光电转换模块。
本发明中,当管道布设好交付使用后,进行初次测试时需要对整个系统测试基准数据,管道状态监测系统总服务器启动基准数据测试工作流程如图5所示,具体步骤如下:
步骤201:总服务器开机启动;
步骤202:数据库自检;
步骤203:判断自检是否通过,不通过转步骤204,通过转步骤205;
步骤204:显示、记录并上报告警信息;
步骤205:从数据库中读取测试参数,设置基准测试时间bt为10s,基准测试次数为10次;
步骤206:与处于输油管道被监测段起始位置的管道状态监测子系统通信自检;
步骤207:判断自检是否通过,不通过转步骤208;
步骤208:显示、记录并上报告警信息,转步骤206;
步骤209:与处于输油管道被监测终点位置的管道状态监测子系统通信自检;
步骤210:判断自检是否通过,通过转步骤212,不通过转步骤211;
步骤211:显示、记录并上报告警信息,转步骤209;
步骤212:向处于输油管道被监测段起始位置的管道状态监测子系统与处于输油管道被监测终点位置的管道状态监测子系统设置测试参数;
步骤213:启动基准测试;
步骤214:停止处于输油管道被监测终点位置的管道状态监测子系统测试,启动处于输油管道被监测段起始位置的管道状态监测子系统基准测试功能,基准测试功能具体流程可见步骤401;
步骤215:通过通信监测处于输油管道被监测段起始位置的管道状态监测子系统状态,等待其完成基准测试功能;
步骤216:读取处于输油管道被监测段起始位置的管道状态监测子系统的基准振动频率数据集bvfdata作为处于输油管道被监测段起始位置的管道状态监测子系统的基准振动频率数据集bvfdata1,以及基准温度数据集btdata作为处于输油管道被监测段起始位置的管道状态监测子系统的基准温度数据集btdata1,并将其存入数据库;
步骤217:停止处于输油管道被监测段起始位置的管道状态监测子系统基准测试,启动处于输油管道被监测终点位置的管道状态监测子系统基准测试功能;基准测试功能具体流程可见步骤401;
步骤218:通过通信监测处于输油管道被监测终点位置的管道状态监测子系统状态,等待其完成基准测试功能;
步骤219:读取处于输油管道被监测终点位置的管道状态监测子系统的基准振动频率数据集bvfdata作为处于输油管道被监测终点位置的管道状态监测子系统的基准振动频率数据集bvfdata2,以及基准温度数据集btdata作为处于输油管道被监测终点位置的管道状态监测子系统的基准温度数据集btdata2,并将其存入数据库;
步骤220:退出服务器系统。
本发明中管道状态监测系统正常监测情况的工作流程如图6示,具体步骤如下:
步骤301:总服务器开机启;
步骤302:数据库自检,自检不通过转步骤303,自检通过转步骤304;
步骤303:显示、记录并上报告警信息,转步骤302;
步骤304:自检通过;
步骤305:从数据库中读取测试参数,设置交替测试时间tl,tl范围为30秒~10分钟;
步骤306:与处于输油管道被监测段起始位置的管道状态监测子系统通信自检;
步骤307:自检是否通过,不通过转步骤308,通过转步骤309;
步骤308:显示、记录并上报告警信息,转步骤306;
步骤309:与处于输油管道被监测终点位置的管道状态监测子系统通信自检;
步骤310:自检是否通过,不通过转步骤311,通过转步骤312;
步骤311:显示、记录并上报告警信息,转步骤309;
步骤312:向处于输油管道被监测段起始位置的管道状态监测子系统和处于输油管道被监测终点位置的管道状态监测子系统设置测试参数;
步骤313:测试计时器tltime清零;
步骤314:停止处于输油管道被监测终点位置的管道状态监测子系统测试,启动处于输油管道被监测段起始位置的管道状态监测子系统测试,启动循环计时线程;
步骤315:等待处于输油管道被监测段起始位置的管道状态监测子系统测试报警信息;
步骤316:刷新测试计时器tltime;
步骤317:判断是否收到报警信息,未收到信息转步骤318,收到信息转步骤319;
步骤318:判断是否是tltime≥tl,是转步骤320,否转步骤315;
步骤319:显示、记录并上报告警信息,转步骤318;
步骤320:测试计时器tltime清零;
步骤321:停止处于输油管道被监测段起始位置的管道状态监测子系统测试,启动处于输油管道被监测终点位置的管道状态监测子系统测试测试,启动循环计时线程;
步骤322:等待处于输油管道被监测终点位置的管道状态监测子系统测试测试报警信息;
步骤323:刷新测试计时器tltime;
步骤324:判断是否收到报警信息,否转步骤325,是转步骤326;
步骤325:判断是否tltime≥tl,是转步骤327,否转步骤322;
步骤326:显示、记录并上报告警信息,转步骤325;
步骤327:检测管理员是否停止测试,是转步骤328,否转步骤313;
步骤328:退出服务器系统。
本发明中管道状态监测子系统在子系统初次正式运行之前,需要采集和分析基准数据,用于作为报警的监测基准,其管道状态监测子系统测试分析基准数据采集分析工作流程如图7所示,其具体步骤组成如下:
步骤401:启动基准测试功能;
步骤402:读取设置参数脉冲宽度pw;读取量程rn;读取振动距离分辨率vsd;读取温度距离分辨率tsd;读取振动测试时间vttime;读取振动频率分析时间vtanys;读取温度测试时间tttime;读取基准分析数据基数dn;
步骤403:计算振动累加次数vaddt=vttime*1m/10ns/(rn+1km);
计算温度累加次数taddt=tttime*1m/10ns/(rn+1km);
计算振动距离数据量vn=rn/vsd
计算振动时间数据量vm=vtanys/vttime
计算温度距离数据量tn=rn/tsd;
步骤404:启动1550nm激光器,启动1550nm移频调制模块,启动扰偏器模块,向1550nm脉冲调制模块发送脉冲宽度参数pw,向第一采集模块发送振动累加次数vaddt及振动距离数据量vn参数,向第二采集模块和第三采集模块发送温度累加次数taddt及温度距离数据量tn参数;
步骤405:启动采集及脉冲产生时序控制,转步骤406和步骤418;
步骤406:启动温度测试线程;
步骤407:临时计数nvti=0,初始化温度数据tdata[1~dn][1~tn];
步骤408:读取第二采集模块及第三采集模块状态;
步骤409:判断是否完成1次温度测试;是转步骤410,否转步骤408;
步骤410:从第二采集模块读取反斯托克斯采集数据tds[1~tn],从第三采集模块读取斯托克斯采集数据tdas[1~tn];
步骤411:根据tds[1~tn]与tdas[1~tn]计算温度分布数据td[1~tn],tdata[nvti][1~tn]=td[1~tn];
步骤412:判断是否nvti≥dn,是转步骤414,否转步骤413;
步骤413:nvti=nvti+1,转步骤408
步骤414:根据tdata[1~dn][1~tn],分析基准温度数据集btdata;具体步骤见41601;
步骤415:结束温度测试线程,转步骤427;
步骤416:启动振动测试线程;
步骤417:临时计数nvti=0,临时计数nvtj=0,初始化振动数据vdata[1~dn][1~vm][1~vn];
步骤418:读取第一采集模块状态;
步骤419:判断是否完成1次振动测试,是转步骤420,否转步骤418;
步骤420:读取采集数据vd[1~vn],vdata[nvtj+1][nvti+1][1~vn]=vd[1~vn];
步骤421:判断是否nvti≥vm,是转步骤423,否转步骤422
步骤422:nvti=nvti+1,转步骤418;
步骤423:判断是否nvtj≥dn,是转步骤425,否转步骤424;
步骤424:nvtj=nvtj+1;
nvti=0,转步骤418;
步骤425:根据vdata[1~dn][1~vm][1~vn]分析基准振动频率数据集bvfdata;具体步骤见42701;
步骤426:结束振动测试线程,转步骤427;
步骤427:等待振动测试线程与温度测试线程全部结束,向服务器传输bvfdata及btdata。
本发明中管道状态监测子系统基准温度数据集分析流程如图8中所示,其具体步骤如下:
步骤41601:读取温度数据tdata[1~dn][1~tn];
步骤41602:临时计数i=0,j=0;初始化基准温度数据集btdata[1~tn];
步骤41603:临时数据tt=0;
步骤41604:tt=tt+tdata[i+1][j+1];
步骤41605:判断是否i≥dn,是转步骤41607,否转步骤41606;
步骤41606:i=i+1,转步骤41604;
步骤41607:btdata[j]=tt;
步骤41608:判断是否j≥tn,是转步骤41610,否转步骤41609;
步骤41609:j=j+1,转步骤41603;
步骤41610:返回基准温度数据集btdata。
本发明中管道状态监测子系统基准振动数据集分析流程如图9中所示,其具体步骤如下:
步骤42701:读取振动数据vdata[1~dn][1~vm][1~vn],读取振动判定阈值vith,
初始化基准振动频率数据集bvfdata内所有数据清零,bvfdata包括振动频率波包数据bvfdata_n[1~vn]、振动频率峰值频率数据bvfdata_pf[1~vn][1~vm]、振动频率波包起始频率bvfdata_sf[1~vn][1~vm]、振动频率波包终止频率bvfdata_ef[1~vn][1~vm];
步骤42702:初始化临时变量i=0,j=0,k=0;初始化临时频率数据ftdata[1~vm]=0;
步骤42703:ftdata[1~vm]=快速傅里叶变换(vdata[i+1][1~vm][j+1]);
步骤42704:初始化临时变量p=0;
步骤42705:判断是否ftdata[p+1]≤vith,是转步骤42706,否转步骤42707;
步骤42706:ftdata[p+1]=0,转步骤42707;
步骤42707:判断是否p≤vm,是转步骤42708,否转步骤42709;
步骤42708:p=p+1,转步骤42705;
步骤42709:初始化临时变量p=0,q=0,fs=0,fe=0,fc=0,ft=0;
步骤42710:判断是否ftdata[p+1]>0,是转步骤42712,否转步骤42711;
步骤42711:p=p+1,转步骤42710;
步骤42712:p=0或ftdata[p]=0;
步骤42713:fs=p+1,q=p+1;
步骤42714:判断是否ftdata[q+1]<0或q+1≥vm,是转步骤42716,否转步骤42715;
步骤42715:q=q+1,转步骤42714;
步骤42716:判断是否q+1≥vm,是转步骤42717,否转步骤42718;
步骤42717:fe=q+1,fc=ftdata[fs~fe]所在位置下标,转步骤42719;
步骤42718:fe=q,fc=ftdata[fs~fe]所在位置下标;
步骤42719:判断是否fc==1或fc==vm或(fe-fs)<1,是转步骤42720,否转步骤42721;
步骤42720:p=q+1,ft=0,转步骤42724;
步骤42721:p=q+1,ft=0;
步骤42722:对基准振动频率数据集bvfdata内bvfdata_pf[j][1~vm]、bvfdata_sf[j][1~vm]及bvfdata_ef[j][1~vm]及bvfdata_n[j]进行频率波包数据重复分析,如果未发现重复波包数据,将fs、fe、fc数据添加至上述数据中;具体步骤见步骤42751;
步骤42723:判断是否p<vm,是转步骤42705,否转步骤42724;
步骤42724:判断是否j<vn,是转步骤42725,否转步骤42726;
步骤42725:j=j+1,转步骤42703;
步骤42726:判断是否i<dn是转步骤42727,否转步骤42728;
步骤42727:d=d+1,转步骤42702;
步骤42728:返回基准振动数据集bvfdata。
本发明中管道状态监测子系统基准振动数据集分析过程中对基准振动频率数据集的进行频率波包数据重复分析流程如图10中所示,其具体步骤如下:
步骤42751:读取fs、fc、fe数据,开始对基准振动频率数据集bvfdata内bvfdata_pf[j][1~vm]、bvfdata_sf[j][1~vm]及bvfdata_ef[j][1~vm]及bvfdata_n[j]进行频率波包数据重复分析;
步骤42752:bvfdata_n[j]>0;
步骤42753:初始化临时计数bvfnt=1,重复标志brep=0,初始化临时变量fst、fct、fet、fn,nmax=bvfdata_n[j];
步骤42754:判断是否fc<bvfdata_ef[j][bvfnt]并且fc>bvfdata_sf[j][bvfnt],是转步骤42757,否转步骤42755;
步骤42755:判断是否bvfnt<nmax,是转步骤42756,否转步骤42758;
步骤42756:bvfnt=bvfnt+1,转步骤42754;
步骤42757:brep=1,转步骤42758;
步骤42758:判断brep值是否为0,是转步骤42760,否转步骤42759;
步骤42759:fs、fc、fe属于重复频率波包,不予增加,转步骤42787;
步骤42760:判断是否bvfdata_n[j]<1,是转步骤42763,否转步骤42761;
步骤42761:fn=1、fst=fs、fct=fc、fet=fe;
步骤42762:bvfdata_n[j]=1,bvfdata_pf[j][fn]=fct,bvfdata_sf[j][fn]=fst,bvfdata_ef[j][fn]=fet;
步骤42763:判断是否fc<bvfdata_pf[j][1],是转步骤42764,否转42769;
步骤42764:判断是否fe≥bvfdata_sf[j][1],是转步骤42766,否转步骤42765;
步骤42765:fet=fe,转步骤42767;
步骤42766:fet=bvfdata_sf[j][1]-1;
步骤42767:fn=1,fst=fs,fct=fc;
步骤42768:bvfdata_n[j]=bvfdata_n[j]+1,
bvfdata_pf[j][2~nmax]=bvfdata_pf[j][1~nmax-1],bvfdata_pf[j][1]=fc,
bvfdata_sf[j][2~nmax]=bvfdata_sf[j][1~nmax-1],bvfdata_sf[j][1]=fs,
bvfdata_ef[j][2~nmax]=bvfdata_ef[j][1~nmax-1],bvfdata_ef[j][1]=fe;
步骤42769:判断是否fc>bvfdata_pf[j][nmax],是转步骤42770,否转步骤42775;
步骤42770:判断是否fs≤bvfdata_ef[j][nmax],是转步骤42772,否转步骤42771;
步骤42771:fst=fs,转步骤42773;
步骤42772:fst=bvfdata_ef[j][namx]+1;
步骤42773:fn=nmax+1,fet=fe,fct=fc;
步骤42774:bvfdata_n[j]=bvfdata_n[j]+1,bvfdata_pf[j][fn]=fc,
bvfdata_sf[j][fn]=fs,bvfdata_ef[j][fn]=fe;
步骤42775:初始化iiii=1;
步骤42776:判断是否fc>bvfdata_pf[j][iiii],是转步骤42779和步骤42782,否转步骤42777;
步骤42777:iiii<nmax-1;
步骤42778:iiii=iiii+1,转步骤42776;
步骤42779:判断是否fs≤bvfdata_ef[j][iiii],是转步骤42781,否转步骤42780;
步骤42780:fst=fs,转步骤42785;
步骤42781:fst=bvfdata_ef[j][iiii]+1,转步骤42785;
步骤42782:判断是否fe≥bvfdata_sf[j][iiii+1],是转步骤42783,否转步骤42784;
步骤42783:fet=bvfdata_sf[j][iiii+1]-1,转步骤42785;
步骤42784:fet=fe,转步骤42785;
步骤42785:fn=iiii+1,fct=fc;
步骤42786:bvfdata_n[j]=bvfdata_n[j]+1,
bvfdata_pf[j][fn+1~nmax+1]=bvfdata_pf[j][fn~nmax],bvfdata_pf[j][fn]=fct,
bvfdata_sf[j][fn+1~nmax+1]=bvfdata_sf[j][fn~nmax],bvfdata_sf[j][fn]=fst,bvfdata_ef[j][fn+1~nmax+1]=bvfdata_ef[j][fn~nmax],bvfdata_ef[j][fn]=fet;
步骤42787:返回基准振动频率数据集bvfdata。
本发明中管道状态监测子系统正常工作流程如图11中所示,其具体步骤如下:
步骤501:启动报警测试功能;
步骤502:读取设置参数脉冲宽度pw、量程rn、振动距离分辨率vsd、温度距离分辨率tsd、振动测试时间vttime、振动频率分析时间vtanys、温度测试时间tttime、振动判定阈值vith、振动持续时间阈值vtth、温度判定阈值tith、温度持续时间阈值ttth、基准振动频率数据集bvfdata以及基准温度数据集btdata;
步骤503:计算振动累加次数vaddt=vttime*1m/10ns/(rn+1km);计算温度累加次数taddt=tttime*1m/10ns/(rn+1km);计算振动距离数据量vn=rn/vsd;计算振动时间数据量vm=vtanys/vttime;计算温度距离数据量tn=rn/tsd;计算温度持续次数阈值ttthn=ttth/tttime*1.1;计算振动持续次数阈值vtthn=vtth/vtanys*1.1;
步骤504:启动1550nm激光器,启动1550nm移频调制模块,启动扰偏器模块,向1550nm脉冲调制模块发送脉冲宽度参数pw,向第一采集模块发送振动累加次数vaddt及振动距离数据量vn参数,向第二采集模块和第三采集模块发送温度累加次数taddt及温度距离数据量tn参数;
步骤505:启动正常报警测试,转步骤506和步骤518;
步骤506:启动温度测试线程;
步骤507:临时计数nvti=0,初始化温度堆栈数据tdata[1~ttthn][1~tn]=0;
步骤508:读取第二采集模块及第三采集模块状态;
步骤509:判断是否完成1次温度测试,是转步骤510,否转步骤508;
步骤510:从第二采集模块读取反斯托克斯采集数据tds[1~tn],从第三采集模块读取斯托克斯采集数据tdas[1~tn];
步骤511:根据tds[1~vn]与tdas[1~tn]计算温度分布数据td[1~tn];
步骤512:将td[1~vn]压入温度堆栈数据tdata[1~ttthn][1~tn];
步骤513:判断是否nvti≥ttthn-1,是转步骤515,否转步骤514
步骤514:nvti=nvti+1,转步骤508;
步骤515:分析tdata[1~ttthn][1~tn]是否存在报警数据,如存在报警数据,将泄露报警信息数据集wtidata发送至总服务器;
步骤516:判断是否收到结束测试信息,是转步骤517,否转步骤514;
步骤517:结束温度测试线程,转步骤531;
步骤518:启动振动测试线程;
步骤519:临时计数nvti=0,临时计数nvtj=0,初始化振动堆栈数据vdata[1~vtthn][1~vm][1~vn]
初始化临时振动数据vdata_t[1~vm][1~vn];
步骤520:读取采集模块1状态;
步骤521:判断是否完成1次振动测试,是转步骤522,否转步骤520;
步骤522:读取采集数据vd[1~vn],
vdata_t[nvti+1][1~vn]=vd[1~vn];
步骤523:判断是否nvti≥vm,是转步骤525,否转步骤524;
步骤524:nvti=nvti+1,转步骤520;
步骤525:将vdata_t[1~vtthn][1~vn]压入振动堆栈数据vdata[1~vtthn][1~vm][1~vn];
步骤526:判断是否nvtj≥vtthn,是转步骤528,否转步骤527;
步骤527:nvtj=nvtj+1
nvti=0,转步骤520;
步骤528:分析vdata[1~vtthn][1~vm][1~vn]是否需要报警,如需要报警,将振动报警数据集wvidata发送至总服务器
步骤529:判断是否收到结束测试信息,是转步骤530,否转步骤527;
步骤530:结束振动测试线程;
步骤531:等待振动测试线程与温度测试线程全部结束,向服务器传输wtidata及wvidata。
本发明中管道状态监测子系统温度报警数据分析流程如图12中所示,其具体步骤如下:
步骤51501:读取tdata[1~ttthn][1~tn],读取设置参数脉冲宽度pw、温度距离分辨率tsd、温度判定阈值tith、温度持续时间阈值ttth、温度持续次数阈值ttthn以及基准温度数据集btdata,基准温度数据集内部数据为btdata[1~tn];
步骤51502:初始化泄露报警信息数据集wtidata,包括wtidata_n=0,wtidata_dis[1~tn];
步骤51503:初始化差分数据dtdata[1~ttthn][1~tn]=0,临时计数iii=1;
步骤51504:计算差分数据dtdata[iii][1~tn]=tdata[iii][1~tn]-btdata[1~tn];
步骤51505:判断是否iii<ttthn,是转步骤51506,否转步骤51507;
步骤51506:iii=iii+1,转步骤51504;
步骤51507:计算温度事件距离阈值tdthn=pw/10ns*1m/tsd,最小值为1;
临时温度事件持续次数阈值ttn=ttth/tttime,最小值为1;;
步骤51508:初始化临时判定数据dpd[1~tn]=0,临时计数iii=1,jjj=1;
步骤51509:判断是否dtdata[iii][jjj]≤-1*titi,是转步骤51510,否转步骤51511;
步骤51510:dpd[jjj]=dpd[jjj]+1;
步骤51511:判断是否jjj<tn,是转步骤51512,否转步骤51513;
步骤51512:jjj=jjj+1,转步骤51509;
步骤51513:判断是否iii<ttthn,是转步骤51514,否转步骤51515;
步骤51514:iii=iii+1
jjj=1,转步骤51509;
步骤51515:临时计数iii=1
步骤51516:判断是否dpd[iii]≥tn,是转步骤51518,否转步骤51517;
步骤51517:iii=iii+1,转步骤51516;
步骤51518:临时计数jjj=1,bw=1
步骤51519:判断是否dpd[iii+jjj]≥tn,是转步骤51520,否转步骤51522;
步骤51520:判断是否iii+jjj>ttn,是转步骤51522,否转步骤51521
步骤51521:jjj=jjj+1,转步骤51519;
步骤51522:wtidata_n=wtidata_n+1
wtidata_dis[wtidata_n]=iii;
步骤51523:判断是否iii+jjj>tn-1,是转步骤51525,否转步骤51524;
步骤51524:iii=iii+jjj+1,转步骤51516
步骤51525:返回泄露报警信息数据集wtidata。
本发明中管道状态监测子系统振动泄露报警数据分析流程如图13中所示,其具体步骤如下:
步骤52801:读取vdata[1~vtthn][1~vm][1~vn],读取振动判定阈值vith,基准振动频率数据集bvfdata,bvfdata包括振动频率波包数据bvfdata_n[1~vn]、振动频率峰值频率数据bvfdata_pf[1~vn][1~vm]、振动频率波包起始频率bvfdata_sf[1~vn][1~vm]、振动频率波包终止频率bvfdata_ef[1~vn][1~vm];
步骤52802:临时振动事件持续次数阈值vvn=ttth/tttime,最小值为1,初始化泄露报警信息数据集wvidata,包括wvidata_n=0,wvidata_dis[1~vn];
步骤52803:初始化临时变量i=0,j=0,k=0
初始化临时频率数据vfdata[1~vm]=0;
步骤52804:vfdata[1~vm]=快速傅里叶变换(vdata[i+1][1~vm][j+1]);
步骤52805:初始化临时变量p=0;
步骤52806:判断是否vfdata[p+1]≤vith,是转步骤52807,否转步骤52808;
步骤52807:vfdata[p+1]=0;
步骤52808:判断是否p≤vm,是转步骤52809,否转步骤52810;
步骤52809:p=p+1,转步骤52806;
步骤52810:初始化临时变量p=0,q=0,fs=0,fe=0,fc=0,ft=0;
步骤52811:判断是否vfdata[p+1]>0,是转步骤52813,否转步骤52812;
步骤52812:判断是否p=0或vfdata[p]=0,是转步骤52813,否转步骤52814;
步骤52813:p=p+1,转步骤52811;
步骤52814:fs=p+1,q=p+1;
步骤52815:判断是否vfdata[q+1]<0或q+1≥vm,是转步骤52816,否转步骤52817;
步骤52816:q=q+1,转步骤52815;
步骤52817:判断是否q+1≥vm,是转步骤52818,否转步骤52819;
步骤52818:fe=q+1,fc=vfdata[fs~fe]所在位置下标,转步骤52820;
步骤52819:fe=q,fc=vfdata[fs~fe]所在位置下标;
步骤52820:判断是否fc==1或fc==vm或(fe-fs)<1,是转步骤52822,否转步骤52821;
步骤52821:p=q+1,ft=0,转步骤52829;
步骤52822:p=q+1,ft=0;
步骤52823:初始化临时计数bvfnt=1,nmax=bvfdata_n[j];
步骤52824:判断是否fc<bvfdata_ef[j][bvfnt]并且fc>bvfdata_sf[j][bvfnt],是转步骤52825,否转步骤52827;
步骤52825:判断是否bvfnt<nmax,是转步骤52826,否转步骤52827;
步骤52826:bvfnt=bvfnt+1;
步骤52827:判断是否bvfnt≥vvn,是转步骤52828,否转步骤52829;
步骤52828:wvidata_n=wvidata_n+1,wvidata_dis[j]=fc,转步骤52830;
步骤52829:判断是否p<vm,是转步骤52830,否转步骤52824;
步骤52830:判断是否j<vn,是转步骤52831,否转步骤52832;
步骤52831:j=j+1,转步骤52804;
步骤52832:判断是否i<dn,是转步骤52833,否转步骤52834;
步骤52833:i=i+1,转步骤52804;
步骤52834:返回泄露报警信息数据集wtidata。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。