管道内检测漏磁和惯导子系统数据的在线同步方法与流程

文档序号:15844909发布日期:2018-11-07 08:53阅读:566来源:国知局
管道内检测漏磁和惯导子系统数据的在线同步方法与流程

本发明涉及管道检测领域,涉及一种管道内检测装置(pig)的内部子系统输出数据的同步方法,具体地说是涉及管道内检测装置中漏磁和惯导两个子系统,各种管道管径的漏磁/惯导组合内检测系统都可以使用该同步方法。

背景技术

1.管道内检测

管道内检测装置(pig)在管道内运动过程中,可以对管道缺陷或变形情况进行测量。pig通常根据当前的任务需要,可以搭载多个检测子系统。由于需要根据不同任务灵活组合各检测子系统,各子系统通常有独立的数据采集和存储能力。由于漏磁装置占用pig空间相对较大,因此不能和惯导装置安装在一个pig的腔体中,无法在空间上看成一体,无法共享一个里程数据。

2.pig内部子系统之间的同步问题

当多个检测子系统之间需要配合使用时,数据之间的同步关系非常重要。例如,当漏磁检测和惯导定位检测两个子系统搭载在同一pig平台上,同时进行在线检测,理论上下载的数据应该是高度同步的,即当检测工作结束,依照检测得到的数据,惯导定位和漏磁检测的对象必须在时间和空间上保持同一个尺度。空间尺度的问题容易解决,惯导系统和漏磁系统的相对位置是固定的,同一时刻,惯导系统测量的对象和漏磁系统测量的对象的相对位置也是固定的。

举例来说,当漏磁系统和惯导系统分别安装在两节舱体中,漏磁系统在前时,两个系统的测量中心距离为3米,如果漏磁检测器检出某个管壁缺陷,同一时间,惯导定位装置就应该给出该缺陷后面沿管道3米处对应的地理坐标。

但是,由于传感器检测原理不同,对应检测装置的电器结构也不同,采样率、信号格式、系统时钟,甚至输出数据的格式都完全不同。因此,很难确定惯导和漏磁两个子系统的输出数据在时间上的一一对应关系。

这就需要对两个子系统输出的数据进行同步操作。实质是保证两批输出数据在各自的时间轴上使用同一个时间标尺。

3.现有同步方法的局限

之前解决该问题的方法是直接使用里程数据作为同步基准的方法。这是一种离线数据处理方法。

当检测结束之后,各子系统(如里程计、漏磁、惯导)数据分别下载完毕,把同一路里程计信号分别引入不同的检测子系统,使其作为输出数据矩阵的一列。所谓输出数据矩阵,指每一行数据包括多个数据项(里程是其中之一),被称为一个采样点;采样点所有数据来源于该检测子系统同一时刻的采样;通过引入该子系统采样频率、信号格式等参数,可以计算出该行采样点在该子系统时钟下的采样时间。由于每个采样点都包含一个里程数据项,可以在输出数据时,把里程数据作为坐标的横轴。当不同的检测子系统使用共同的里程数据作为坐标系的横轴,就实现了不同子系统输出数据的同步。

上述直接使用里程数据作为同步基准信号的缺点如下:

1)误差大。里程计本身的误差较大,通常测量误差为测量长度的百分之一,也就是说,在上百公里的管道检测中误差可能达到一公里。而且由于漏磁和惯导系统安装在两个舱体中,无法共享一个空间,也无法共享一个里程数据,使里程数据和漏磁、惯导的数据都不能精确匹配。里程数据只是漏磁和惯导数据的空间位置的“参考”,只能通过研究三者在pig载体上安装的相对位置关系,才能获得大致的数据对应关系,这个过程也会带来一定的误差。因此,离线处理时,把数百公里的里程数据作为同步依据会严重影响同步精度。

2)容易失效。里程计工作在pig的保护壳体外部,相对于其他检测子系统,数据失效的概率更高。在油气管道内部,工作环境非常恶劣,里程计的机械和电气结构故障率很高。即便里程计在一百小时左右的恶劣环境下保持机械、电气结构没有变形和损坏,但高粘度原油、高度腐蚀性的天然气、管道内壁缺陷等,都可能造成里程计打滑、卡死、电气部件失效等严重问题。一旦里程数据部分或全部失效,则所有的离线同步操作无法进行。

3)里程修正导致相关的同步数据也要重新进行修正。测量之后,里程数据的精度也有修正的必要,例如对里程计打滑的补偿计算等。但里程数据作为同步基准数据,一旦进行修正,其相关的所有子系统的检测数据也要分别进行同步修正。也就是说,在两个子系统的同步操作之前,为了保证两个子系统内部的输出数据和当前的里程输出数据“绑定”在一起,必须在子系统输出数据内部先进行“内部同步”操作,而且这种子系统的“内部同步”操作还可能进行多次。这明显提高了系统数据处理的复杂性,降低了系统可靠性。



技术实现要素:

发明目的

本发明的目的是解决pig装置中漏磁和惯导两个子系统里程同步方法的上述问题,利用惯导系统时间管理精度高的特点,把惯导系统的输出数据通过usb2.0端口实时输出到pig系统的主控计算机,与通过高速数据采集卡获得的漏磁系统的实时输出数据直接进行在线的数据同步,从而实现较高的数据同步精度。

技术方案

管道内检测漏磁和惯导子系统数据的在线同步方法,pig在管道中运行,其中的漏磁和惯导检测子系统同时执行在线测量任务;两个子系统分别安装在两个仓室中,不能共享一组里程数据;惯导系统和漏磁系统的检测数据分别通过高速端口实时输入到pig的主控计算机中,在主控计算机中进行在线的实时数据同步处理,其特征在于:方法步骤如下:

步骤一,pig主控计算机实时采集惯导数据;

主控计算机提取出惯导子系统当前发送过来的惯导数据帧结构;其中至少包括如下数据项:sins_time(当前数据的采样时间,是物理时间的编码),wx、wy、wz(三维角速度),ax、ay、az(三维加速度),od1、od2、od3(三路里程),t1、t2(imu内部温度)等,全部数据不超过1k字节;

sins_time时刻的采样点的全部惯导数据定义为

sins_od_output(sins_time)={sins_time,wx,wy,wz,ax,ay,az,od1、od2、od3,t1,t2}

任何时刻,主控计算机最新接受的惯导数据采样点的采样时间定义为sins_time_on,而其上一个采样点的时间定义为sins_time_before;

usb2.0端口每隔1毫秒向主控计算机发送一个数据包,每个数据包封装至少256k字节的有效数据;imu的采样频率f_imu远小于1khz,因此usb2.0端口造成的通信延迟不超过1毫秒,相对于管道内检测工程对数据同步的精度要求(0.1秒)来说可以忽略不计;因此,当主控计算机从usb端口得到一帧数据,该帧数据中最多包含一个来自惯导系统的当前时间的数据,即sins_od_output(sins_time_on);

步骤二,pig主控计算机实时采集漏磁数据;

漏磁数据由n个传感器数据通道组成,定义主控计算机的高速数据采集卡的采样频率为m,n个传感器通道分时共享高速数据采集卡,定义f_lc为漏磁子系统的采样频率,则有

显然,当前第i(0≤i<n)路漏磁传感器数据通道的输出数据定义为lci;其采样频率为f_lc;把下标为0到n-1的传感器通道循环一次采集得到的数据集合(定义为lc_output)看成一个采样点,共享一个采样点时间lc_time,lc_output描述为

lc_output(lc_time)={lc_time,fresh,lc0,lc1,…,lcn-1}

lc_time为漏磁系统输出当前数据的采样时间,是物理时间的编码,其初值由漏磁系统提供,不考虑物理时间的精度问题,仅用于lc_output数据的排序;fresh为“时间已更新”标记,初值为0,如果令fresh=1,则表明lc_time已经刷新,当前lc_output(lc_time)数据记录已经完成了同步操作;

设计pig系统,容易实现

f_lc≥1khz

漏磁系统的采样频率通常远大于1khz,即漏磁系统输出lc_output数据的周期远小于惯导系统;系统上电后,所有lc_output(lc_time)数据按照lc_time的先后组成一个矩阵表格,定义为lc_output_list

lc_output_list={lc_output(lc_time_j)∣j=0,1,...,n-1}

步骤三,在线的实时漏磁、惯导数据同步;

所述数据同步算法如下:

1)整个pig系统上电工作后,保证漏磁系统首先生成lc_output_list,即保证lc_output_list中至少包含一条lc_output(lc_time);方法如下:

方法一,pig的电源管理子系统向惯导子系统延迟上电,电源管理子系统在漏磁子系统完成上电、启动、自检等动作后,为惯导子系统上电;

或方法二,在收到第一条lc_output(lc_time)数据后再通过usb端口下载并处理惯导子系统发来的数据;

2)由usb_imudata_reader程序监听usb端口,收到当前的惯导数据sins_od_output(sins_time_on);

3)令当前lc_output_list中的最后一条lc_output(lc_time)记录的

lc_time=sins_time_on

并且令

fresh=1

将这条漏磁数据记录标记为“时间已更新”;

4)在当前lc_output_list中提取所有fresh=0的j个lc_output,加上lc_output(sins_time_on)和lc_output(sins_time_before),按这些漏磁数据生成的顺序,能够组成下面形式的序列集合unfresh_lc_list:

unfresh_lc_list={lc_output(sins_time_before),lc_output(lc_time_1),lc_output(lc_time_2),...,lc_output(lc_time_j),lc_output(sins_time_on)∣j=0,1,...}

j为大于0的正整数,表示连续两个惯导数据之间还未更新采样点时间的漏磁数据记录个数,由于

j的数值较小,比较稳定,在后面计算算法时间复杂度时,把j当做常数处理;

5)用插值法对unfresh_lc_list中所有fresh=0的lc_output记录的lc_time_k和fresh_k,k=0,1,...,j,进行更新,对所有大等于0小等于j的正整数k的更新的插值算法如下:

然后令所有lc_time_k相关的

fresh_k=1,k=0,1,...,j

最后令

sins_time_before=sins_time_on

完成了本次惯导漏磁数据同步操作;

6)此时,当前主控计算机接收到的所有漏磁数据lc_output的lc_time数据项都得到了更新,与已经接受到的所有sins_od_output数据在时间上实现了同步;跳转到2),继续2)到6)的循环,直到所有pig子系统断电停止工作。

优点及效果

与现有技术相比,本发明的有益效果是:

首先,不依赖里程数据作为同步依据,显著的解决了里程计失效则同步操作无法进行的问题。同时解决了部分里程计数据修正导致的之前同步操作结果失效的问题。

其次,大幅度提高了同步的精度。本发明对同步精度的估计可使用如下方法:

以北京自动化控制设备研究所研制的jc-24b型号imu为例,惯导系统的时间管理精度可以达到微秒级,采样频率为300hz;在和主控计算机的通信过程中,采用usb2.0端口,可获得1毫秒的帧数据,即最多有1毫秒的延迟;可以说惯导系统向主控计算机实时数据输出的时间精度达到了毫秒级。

漏磁数据本身是连续的模拟信号;向主控计算机的实时数据输出通过高速数据采集卡实现,以dmm-32x-at采集卡为例,其最高采样率为250khz,即便有250个探头分时使用该采集卡,每一路信号也可以实现1毫秒的采样周期;可以说漏磁系统向主控计算机实时数据输出的时间精度也达到了毫秒级。

在主控计算机内部进行的数据同步计算也可以保证实时性,以pc104工控机为例,采用hs3210i的266mhz的mips处理器,指令周期可达到10纳秒,本发明算法没有复杂计算,算法的时间复杂度为o(1),即每次数据同步计算的时间近似为常数,完全可以保证每次数据同步计算的时间小于1毫秒。

综上所述,本发明充分利用现代计算机系统通信能力强、通信延迟远远超过同步需求的特点,将两个子系统输出数据同步的需求转化为在线的实时数据同步的计算过程,达到了毫秒级的同步精度,完全满足了管道内检测的工程需求。

附图说明

图1、典型漏磁-惯导子系统在pig平台的机械结构安排;

图2、典型漏磁-惯导子系统在pig平台的电气结构设计;

图3、在线实时漏磁、惯导数据同步算法流程图。

附图标记说明:

1-管道;2-动力舱;3-万向节;4-漏磁检测子系统;5-主控计算机;6-多路漏磁检测传感器励磁端;7-多路漏磁检测传感器信号接收端;8-惯导检测子系统;9-里程计;10-低频发射接收装置;11-调试部分;12-高速数据采集卡。

具体实施方式

下面结合附图对本发明做进一步的说明:

如图1所示,管道1内设有管道内检测装置(pig),其最前端设有一个动力舱2,动力舱2通过万向节3连接有漏磁检测子系统4,漏磁检测子系统4内部安装多路漏磁检测传感器的励磁端6,漏磁检测子系统4的后端通过万向节3连接主控计算机5,主控计算机5的后端连接有多路漏磁检测传感器的信号接收端7,多路漏磁检测传感器信号接收端7的后端通过万向节3连接有惯导检测子系统8,惯导检测子系统8的后端安装有里程计9。

如图2所示,pig系统的主要电气结构,其核心是主控计算机5,漏磁检测子系统4的多路漏磁检测传感器信号接收端7通过高速数据采集卡12连接到主控计算机5;动力舱2连接到主控计算机5;里程计9连接到主控计算机5;惯导检测子系统8连接到主控计算机5;调试子系统11,连接到主控计算机5;低频发射接收装置10独立运行。

如图3所示,在线实时漏磁、惯导数据同步算法流程图。

管道内检测漏磁和惯导子系统数据的在线同步方法,pig在管道中运行,其中的漏磁和惯导检测子系统同时执行在线测量任务;两个子系统分别安装在两个仓室中,不能共享一组里程数据;惯导系统和漏磁系统的检测数据分别通过高速端口实时输入到pig的主控计算机中,在主控计算机中进行在线的实时数据同步处理;其特征在于:方法步骤如下:

步骤一,pig主控计算机实时采集惯导数据;主控计算机通过实时usb数据采集设备接收惯导子系统发来的数据,该设备在主控计算机的操作系统架构上安装常驻内存的usb端口数据采集程序,该程序保证主控计算机可实时通过usb2.0端口采集惯导数据。实时usb数据采集设备的程序不是专利内容,属于usb端口设备提供商提供的设备的一部分。

主控计算机提取出惯导子系统当前发送过来的惯导数据帧结构;其中至少包括如下数据项:sins_time(当前数据的采样时间,是物理时间的编码),wx、wy、wz(三维角速度),ax、ay、az(三维加速度),od1、od2、od3(三路里程),t1、t2(imu内部温度)等,全部数据不超过1k字节。

sins_time时刻的采样点的全部惯导数据定义为

sins_od_output(sins_time)={sins_time,wx,wy,wz,ax,ay,az,od1、od2、od3,t1,t2}

任何时刻,主控计算机最新接受的惯导数据采样点的采样时间定义为sins_time_on,而其上一个采样点的时间定义为sins_time_before。

usb2.0端口每隔1毫秒向主控计算机发送一个数据包,每个数据包封装至少256k字节的有效数据;imu的采样频率f_imu远小于1khz,因此usb2.0端口造成的通信延迟不超过1毫秒,相对于管道内检测工程对数据同步的精度要求(0.1秒)来说可以忽略不计。因此,当主控计算机从usb端口得到一帧数据,该帧数据中最多包含一个来自惯导系统的当前时间的数据,即sins_od_output(sins_time_on)。

步骤二,pig主控计算机实时采集漏磁数据;

漏磁数据由n个传感器数据通道组成。定义主控计算机的高速数据采集卡的采样频率为m,n个传感器通道分时共享高速数据采集卡,定义f_lc为漏磁子系统的采样频率,则有

显然,当前第i(0≤i<n)路漏磁传感器数据通道的输出数据定义为lci;其采样频率为f_lc;把下标为0到n-1的传感器通道循环一次采集得到的数据集合(定义为lc_output)看成一个采样点,共享一个采样点时间lc_time,lc_output描述为

lc_output(lc_time)={lc_time,fresh,lc0,lc1,…,lcn-1}

lc_time为漏磁系统输出当前数据的采样时间,是物理时间的编码,其初值由漏磁系统提供,不考虑物理时间的精度问题,仅用于lc_output数据的排序。fresh为“时间已更新”标记,初值为0,如果令fresh=1,则表明lc_time已经刷新,当前lc_output(lc_time)数据记录已经完成了同步操作。

设计pig系统,容易实现

f_lc≥1khz

漏磁系统的采样频率通常远大于1khz,即漏磁系统输出lc_output数据的周期远小于惯导系统。系统上电后,所有lc_output(lc_time)数据按照lc_time的先后组成一个矩阵表格,定义为lc_output_list

lc_output_list={lc_output(lc_time_j)∣j=0,1,...,n-1}

步骤三,在线的实时漏磁、惯导数据同步;

所述数据同步算法如下:

1)整个pig系统上电工作后,保证漏磁系统首先生成lc_output_list,即保证lc_output_list中至少包含一条lc_output(lc_time)。该设定能够通过多种方法实现,可行的方法如下:

方法一,pig的电源管理子系统向惯导子系统延迟上电,电源管理子系统在漏磁子系统完成上电、启动、自检等动作后,为惯导子系统上电;

方法二,在收到第一条lc_output(lc_time)数据后再通过usb端口下载并处理惯导子系统发来的数据。

2)由usb_imudata_reader程序监听usb端口,收到当前的惯导数据sins_od_output(sins_time_on);

3)令当前lc_output_list中的最后一条lc_output(lc_time)记录的

lc_time=sins_time_on

并且令

fresh=1

将这条漏磁数据记录标记为“时间已更新”;

4)在当前lc_output_list中提取所有fresh=0的j个lc_output,加上lc_output(sins_time_on)和lc_output(sins_time_before),按这些漏磁数据生成的顺序,能够组成下面形式的序列集合unfresh_lc_list:

unfresh_lc_list={lc_output(sins_time_before),lc_output(lc_time_1),lc_output(lc_time_2),...,lc_output(lc_time_j),lc_output(sins_time_on)∣j=0,1,...}

j为大于0的正整数,表示连续两个惯导数据之间还未更新采样点时间的漏磁数据记录个数,由于

j的数值较小,比较稳定,在后面计算算法时间复杂度时,把j当做常数处理;

5)用插值法对unfresh_lc_list中所有fresh=0的lc_output记录的lc_time_k和fresh_k,k=0,1,...,j,进行更新,对所有大等于0小等于j的正整数k的更新的插值算法如下:

然后令所有lc_time_k相关的

fresh_k=1,k=0,1,...,j

最后令

sins_time_before=sins_time_on

完成了本次惯导漏磁数据同步操作;

6)此时,当前主控计算机接收到的所有漏磁数据lc_output的lc_time数据项都得到了更新,与已经接受到的所有sins_od_output数据在时间上实现了同步;跳转到2),继续2)到6)的循环,直到所有pig子系统断电停止工作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1